Nous avons un noyau d'ontologies et de règles en logique N3 (Notation 3), et de moteurs d'Inférence, offrant la génération de formulaires et d'applications à partir d'un modèle métier et d'un minimum de spécifications annexes. EulerGUI est centré sur le langage N3, qui permet s'exprimer à la fois des données, des modèles, des règles et des requêtes.
Dans EulerGUI :
- N3 est la syntaxe de convergence, comparable en cela à JSON ou XMI.
- La modélisation de convergence est assurée par OWL du W3C.
Ceci signifie que, après lecture et traduction en N3 de fichiers eCore EMF, UML XMI, ou RDF Schéma, EulerGUI traite des modèles OWL. Avec EulerGUI on peut créer des pipelines de projets et importer des sous-projets.
Les application Swing générées utilisent un moteur Drools à l'exécution en temps réel pour créer les formulaires à partir du modèle. Positionnement
D'un côté, vous avez les systèmes experts "traditionnels" en Prolog et les moteurs de règle, tels que Drools et Jess.
De l'autre côté il y a les applications habituelles qui sont faites entièrement ou en grande partie à la main. Et même les moteurs MDA et autres générateurs d'application sont eux-mêmes codés à la main. Le projet Déductions veut appliquer des règles logiques et des moteurs d'inférence pour des tâches de génie logiciel telles que :
- Générer des applications ou des sous-Systèmes ;
- Permettre une intégration transparente de bibliothèques et composants ;
- Et plus encore.
Vision du projet Déductions
Le premier outil que le projet Déduction développe, parce qu'elle est la fonctionnalité la plus visible, est un générateur d'application centré autour d'un générateur de formulaire avec une persistance de fichiers au format N3.
La pièce principale du générateur d'application Déductions est un ensemble de règles constructives en logique N3 ; elles sont hébergées dans le projet Sourceforge Déductions.
Ensuite, pour exécuter les règles, et exécuter l'application générée, l'Environnement de Développement Intégré EulerGUI est utilisé.
La nature déclarative et logique de l'architecture rend possibles d'autres caractéristiques désirables :
- Générer des formulaires pour d'autres plateformes, par exemple HTML + PHP, Ajax, SWT, etc. ;
- Ajouter de l'intelligence à l'application générée, en intégrant un moteur logique embarqué (permet des règles de validation et de présentation, et plus).
Voici une présentation (en format Open Office), en PDF.
Le logiciel libre à la pointe
Il ne fait pas de doute que tôt ou tard, l'Intelligence Artificielle va jouer un rôle dans le logiciel. Et ça « risque » d'être tôt. Une fois de plus, le logiciel libre est à la pointe, en particulier à cause du rôle des universités et de la recherche, en IA et avec le Web sémantique. De plus, le logiciel libre est bien adapté à des projets avec équipe réduite mais forte technicité.
Il ne faut pas cacher que le passage à la programmation déclarative et logique représente un changement d'habitudes plus radical que le passage du procédural à l'Orienté Objet. Mais puisque les outils eux-mêmes deviennent intelligents, cela devrait mieux passer. La voie logique de tout ça, c'est que des non-informaticiens qui connaissent les concepts de leur métier vont pouvoir créer des applications non triviales.
Que faire dans ce projet?
Pour développer les règles en logique N3 du projet Déduction, une connaissance de la programmation logique ( Prolog, Drools, Ilog rules, ...), ou le désir d'apprendre l'Intelligence Artificielle sont nécessaires. Le livre classique AIMA (Artificial Intelligence: A Modern Approach) vient justement de sortir en Français.
Par contre, pour tester le générateur d'application Déductions, il faut juste être familier de la modélisation des données, soit en UML, langages Orientés Objet, SQL, soit avec les formats du W3C, RDF Schéma et OWL (voir « Java Swing application generator from OWL model and N3 logic rules »).
Justement, ceux qui s'intéressent au Web sémantique trouveront avec EulerGUI un des outils pour se mettre le pied à l'étrier. Il y en a d'autres comme Protégé, Sésame.
Vous pouvez participer en créant de nouvelles possibilités pour les applications générées:
- Soit générer de nouveaux langages de programmation ;
- Soit pour de nouveaux frameworks : Ajax (GWT, Wicket), PHP (Drupal, Joomla), Eclipse, …
Enfin, si vous êtes déçus par XSLT ou par QVT/ATL, et si vous voulez tâter de la transformation de graphes d'objets via des règles logiques, l'environnement EulerGUI mérite l'essai.
Voyez par exemple les règles pour UML → OWL .
Aller plus loin
- Téléchargement de EulerGUI (51 clics)
- Manuel de EulerGUI (35 clics)
- la vision du projet Déductions (34 clics)
- Présentation du projet Déductions (30 clics)
# Carton complet
Posté par Signez (site web personnel) . Évalué à 6.
[^] # Re: Carton complet
Posté par Juba (site web personnel) . Évalué à 4.
C'est pas parce qu'on comprend pas qu'on doit critiquer. Moi, par exemple, j'ai absolument rien pané à la dépêche, mais est-ce que pour autant je me laisse aller de la sorte à une agressivité facile ?
Bon.
D'accord.
FOUTAISES !
[^] # Re: Carton complet
Posté par Michel H . Évalué à -2.
[^] # Re: Carton complet
Posté par Signez (site web personnel) . Évalué à 2.
Mais bon, autant de buzzwords fait forcément au moins un heureux autour d'une table (de réunion).
[^] # Re: Carton complet
Posté par Rossel Olivier . Évalué à 1.
Mais c'est dépassé depuis longtemps.
Maintenant, une réunion, çà doit être "entertaining".
cf ce post hilarant de Dilbert:
http://rossel.free.fr/reuCool.gif
[^] # Re: Carton complet
Posté par Jean-Marc Vanel . Évalué à 2.
En fait tout est parti d'une réflexion sur "comment (ré)utiliser au mieux
les modèles métier et l'Intelligence Artificielle" pour créer des applications
de gestion. Et ensuite j'ai appris, j'ai cherché dans ce qui existe (il y a
énormément d'outils!) , et j'ai commencé quelque chose qui marche et
qui peut rendre service.
Et en cherchant je suis tombé sur les systèmes à bases de règles ( http://en.wikipedia.org/wiki/Rule_engine ) , et sur le Web Sémantique (http://fr.wikipedia.org/wiki/Web_s%C3%A9mantique) . J'ai développé EulerGUI pour m'aider à expérimenter, et en expérimentant, j'ai vu que je pouvais en grande partie réaliser mes objectifs en combinant le WS avec les moteurs de règles.
[^] # Re: Carton complet
Posté par Antoine . Évalué à 1.
Pourtant, l'IA, question vaporware, c'est pas mal.
(et « réutiliser l'IA » pour des applications de gestion... hum hum)
[^] # Re: Carton complet
Posté par Rossel Olivier . Évalué à 2.
D'autant que la syntaxe N3 est lisible par un humain, et reste processable par un programme informatique.
Si en plus, on plugge là dessus un moteur de génération automatique, moi je dirais plutôt WHY NOT !!!!!
[^] # Re: Carton complet
Posté par peck (site web personnel) . Évalué à 2.
Par un informaticien, peut-etre ...
[^] # Re: Carton complet
Posté par Jean-Marc Vanel . Évalué à 1.
Mais bien sûr il a des alternatives à l'éditeur de texte.
Vous pouvez ouvrir et créer un fichier N3 exprimant un modèle OWL avec l'éditeur graphique Protégé ( http://protege.stanford.edu/ ) ou avec Swoop ( http://code.google.com/p/swoop/ ) .
[^] # Re: Carton complet
Posté par tallion . Évalué à 3.
En même temps, je connais très peu de langage qui non pas de colorations syntaxiques sous vim ou emacs (sauf ceux de type brainfuck).
[^] # Re: Carton complet
Posté par 🚲 Tanguy Ortolo (site web personnel) . Évalué à 2.
[^] # Commentaire supprimé
Posté par Anonyme . Évalué à 1.
Ce commentaire a été supprimé par l’équipe de modération.
# Merci pour cette dépêche
Posté par Stefane Fermigier (site web personnel) . Évalué à 3.
S.
"There's no such thing as can't. You always have a choice." - Ken Gor
# Exemples ?
Posté par Maxime G (site web personnel) . Évalué à 6.
Il faudrait qq exemples, par exemple pour une appli générée.
[^] # Re: Exemples ?
Posté par Jean-Marc Vanel . Évalué à 2.
http://deductions.svn.sourceforge.net/viewvc/deductions/html(...)
Vous y verrez des images d'applications générées, et de l'environnement de dév. EulerGUI.
Vous verrez qu'après avoir téléchargé EulerGUI ( http://eulergui.sourceforge.net/ ), en un glissé-déposé et 2 clics, vous pouvez générer et lancer l'appli.
De plus, avec un moteur de recherche, vous pouvez chercher parmi des milliers de modèles RDFS, OWL ou N3 ( pas tous d'une grande qualité mais enfin il y en a ... ) . Vous pouvez alors, après avoir édité 3 lignes de N3 pour choisir la classe manipulée par l'appli., comme expliqué dans la doc., générer et lancer l'appli.
Des moteur de recherche du Web Sémantique :
http://swoogle.umbc.edu/ ( en panne à cet instant )
http://olp.dfki.de/ontoselect
http://www.schemaweb.info/
http://protegewiki.stanford.edu/index.php/Protege_Ontology_L(...)
http://watson.kmi.open.ac.uk/
http://bioportal.bioontology.org/
# Commentaire supprimé
Posté par Anonyme . Évalué à 1.
Ce commentaire a été supprimé par l’équipe de modération.
[^] # Re: J'en déduis :
Posté par Watchwolf . Évalué à 2.
oui enfin, un code de qualité c'est pas juste quelques lignes d'algo, mais plus un assemblage d'algos (au plus haut niveau on parle d'assemblage de composants).
Alors arriver à décrire des algos avec une sémantique plus naturelle je veut bien, mais réussir à décrire tout un programme avec, ça devient un peu barjo je pense. J'ai vraiment du mal à y croire. Surtout si on veut obtenir un code performant et donc adapté à notre besoin d'ensemble (et pas juste à des parties séparés du besoin). D'ailleurs l'approche réutilisation des composants peut également avoir ces limites sur ce point.
D'ailleurs si après on passe autant de temps à écrire une spécification qu'à écrire le code ça perd un peu d'intérêt. Et comment être sur d'une spécification ? Comment être sur que nos invariants sont correcte ? Qu'on en n'oublie pas ?
Ces méthodes miracles n'ont rien de miracle pour moi. C'est une autre manière de faire, peut être mieux, peut être pas.
A noter que je n'ai rien contre la recherche, continué à faire ce type de recherche, peut être que j'ai tords et que ça améliorera le travail des programmeurs/concepteurs tout comme l'approche objet l'a fait.
[^] # Re: J'en déduis :
Posté par Antoine . Évalué à 2.
Ça existe déjà, il suffit d'utiliser des bibliothèques tierce-partie disposant d'APIs documentées.
Pas besoin de se branler la nouille avec des triplets RDF ;)
[^] # Re: J'en déduis :
Posté par Jean-Marc Vanel . Évalué à 1.
Surtout pour les modèles métiers .
C'est rare du moins avec les technologies tradi. (UML et les différents langages OO).
C'est de moins en moins rare avec les technologies du Web Sémantique ( voir dans ce fil les moteurs de recherche WS ).
Demandez vous pourquoi il en est en ainsi , ne vous demandez pas pourquoi le projet Déductions en tire les conséquences.
Quand aux triplets RDF, si vous ne les comprennez pas bien, voyez :
http://www.w3.org/2000/10/swap/Primer
Il n'y a tout simplement pas de meilleur candidat que N3 au poste de format pivot universel.
Maintenant si on dit : "on n'a pas besoin de format pivot universel" , je dis que c'est comme les réseaux: avant Internet on était résigné au fait qu'il y avait plusieurs réseaux incompatibles avec des passerelles branlantes. Maintenant Internet parait évident.
[^] # Re: J'en déduis :
Posté par Antoine . Évalué à 3.
Heu, très rare selon quelles métrique ?
Que la majorité des projets logiciels, qu'ils soient open source ou proprios, ne soient pas d'une très grande qualité, je suis d'accord. Mais si l'on pondère par la popularité et le taux d'usage, je suis sûr que le résultat est différent. En d'autres termes, les principales bibliothèques que l'on est amené à utiliser au jour le jour sont, en général, de bonne qualité et bien documentées (ne serait-ce que parce que l'on a tendance à éviter les mauvaises ;-)).
Donc, non, je ne suis pas d'accord avec le diagnostic, et encore moins avec l'explication proposée ci-dessous :
C'est rare du moins avec les technologies tradi. (UML et les différents langages OO).
C'est de moins en moins rare avec les technologies du Web Sémantique
Non. La formalisation d'une API dépend de la rigueur et de la compétence des développeurs, pas de l'utilisation de telle ou telle nouveauté à la mode.
Quand aux triplets RDF, si vous ne les comprennez pas bien
Merci, mais je suis déjà intéressé à la question.
Il ne s'agit pas de comprendre (la notion de triplet est très simple, bien que RDF, comme toute norme W3C, soit un monstre bureaucratique qui enfouit la simplicité conceptuelle sous des tonnes de verbiage nuisible), mais de savoir en quoi c'est utile. Ma modeste réponse est que cela ne l'est pratiquement pas, car c'est une généralisation tellement vague que cela n'apporte rien.
Il n'y a tout simplement pas de meilleur candidat que N3 au poste de format pivot universel.
« Format pivot universel », voilà bien le genre d'expression vide de sens qui convient au business loto ;-)
Puisque vous parlez de « comprendre », vous devriez vous intéresser au fait que la formalisation d'un langage logique universel a été tentée au dix-neuvième siècle (cf. par exemple Frege) et que ce fut un échec reconnu depuis. Il n'est pas étonnant que l'IA n'arrive à rien de concret puisqu'elle s'épuise à reproduire des lubies éculées.
La devise des zélotes de RDF et du Web sémantique semble être : « on ne sait pas bien quel problème concret cela résout, mais puisqu'on arrive à l'implémenter, continuons à brasser du vent avec ».
[^] # Re: J'en déduis :
Posté par Jean-Marc Vanel . Évalué à 1.
les API de bonne qualité existent au milieu d'un déchet
important.
Mais mon propos n'était pas les API, mais les modèles métier.
Et c'est là q'il y a un manque de modèles réutilisables
réellement disponibles avec UML, et là que le Web Sémantique
apporte des modèles.
Les modèles métiers sont la clé des logiciels, mais ils sont généralement
cachés parmi des concepts informatiques. Le constat et la démarche
ressemblent à ce qui est connu sous le vocable "Model Driven" (http://fr.wikipedia.org/wiki/Model_driven_architecture), mais
en restant indépendant des technologies de l'OMG qui là, pour le coup, compliquent encore bien plus que celles du W3C.
# C'est beau l'enthousiasme
Posté par reno . Évalué à 3.
C'est vrai: je me souviens que dans les annees 80, Hebdologiciel (ca ne me rajeunit pas!!) avait annonce que la nouvelle generation d'ordinateur Japonais allais utiliser les dernieres technologie d'IA, donc cela devrait arriver bientot, je n'ai aucun doute la dessus comme tu le dis.
Patience (et quand l'IA arrivera tu lui demanderas des nouvelle du Push?)
[ Si, si j'ai le droit c'est Vendredi ]
[^] # Re: C'est beau l'enthousiasme
Posté par Antoine . Évalué à 3.
Tu as oublié la réalité virtuelle (avec les lunettes 3D et les gants cybernétiques).
# lapin con pris
Posté par alice . Évalué à 2.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.