cadriciels web sémantiques pour application Web

28 views
Skip to first unread message

Jean-Marc Vanel

unread,
Apr 15, 2014, 9:29:21 AM4/15/14
to deduct...@googlegroups.com

J'ai ajouté un état des lieux des cadriciels web sémantiques pour application Web
C'est en Anglais:

On a vraiment besoin de quelque chose pour faciliter la création de formulaires Web avec stockage en SPARQL update, ou éventuellement LDP [1] .

Quelque chose qui soit comme la partie formulaires de Play! framework ou Ruby on Rails ou Drupal, mais sans SQL.
C'est à dire qu'on peut supposer que tous les champs des formulaires (éditables ou non) sont décrits par une propriété RDF.

Le but est pouvoir facilement construire des applications de type CMS, réseau social, ou gestion de projet.
Des problématiques sont importantes, mais on peut s'en passer dans une première version:
- la gestion fine des droits (ACL)
- pouvoir afficher un résumé d'une resource en fonction du contexte RDF: rdf:type, rdfs:label, foaf:img , etc ...
- parties en JavaScript pour apporter de la réactivité du pt de vue utilisateur. Pour avoir le meilleur des 2 mondes : développer en Scala , et traduire les parties  réactives du pt de vue utilisateur en JS via Scala.js

Je m'oriente vers une implémentation en Scala basée sur Banana-RDF [2] , qui soit agnostique par rapport au framework Java ou Scala, c'est à dire qui produise des fragments XHTML via interpolation XML en Scala de base.



-- 
Jean-Marc Vanel
Déductions SARL - Consulting, services, training,
Rule-based programming, Semantic Web
http://deductions-software.com/
+33 (0)6 89 16 29 52
Twitter: @jmvanel , @jmvanel_fr ; chat: irc://irc.freenode.net#eulergui

Benjamin Cogrel

unread,
Apr 15, 2014, 10:35:21 AM4/15/14
to deduct...@googlegroups.com
Bonjour Jean-Marc,

J'ai commencé à développer un projet qui va dans ce sens. Il s'agit d'un ORM (Object RDF Mapper) en Python dont les classes sont générées dynamiquement
à partir d'une description Hydra ( http://www.markus-lanthaler.com/hydra/spec/latest/core/ ) et de contextes JSON-LD.

https://gitlab.bcgl.fr/benjamin/ld-orm

Cet ORM s'appuie sur un triplestore et utilise le protocole SPARQL 1.1 pour charger et sauvegarder les objets.

Il fait de la validation (dans un premier temps : propriétés requises, typage des littéraux, adresses emails bien formatées) , distingue les ensembles des listes (bientôt) et permet d'indiquer la langue d'une chaîne de caractère.

À partir de cet ORM, on pourra ensuite faire de la validation de formulaires.
Ce code est pour l'instant indépendant de tout framework Web.
Dans un premier temps, je compte l'utiliser avec Flask. Il serait intéressant ensuite de l'intégrer à Django.

Ce projet est très jeune (quelques semaines), en plein développement et n'est pas encore documenté.
Néanmoins, les tests unitaires en donnent un bon aperçu : https://gitlab.bcgl.fr/benjamin/ld-orm/blob/master/tests/model_test.py .
À l'heure actuelle, ils passent tous.

Benjamin
--

---
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes "Déductions et EulerGUI en Français".
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse deductions-f...@googlegroups.com.
Pour obtenir davantage d'options, consultez la page https://groups.google.com/d/optout.

Message has been deleted

Sebastien Ferre

unread,
Apr 16, 2014, 3:47:06 AM4/16/14
to deduct...@googlegroups.com, Sébastien Ferre
Bonjour Jean-Marc,

merci pour cet état des lieux, c'est tres interessant.
Je me demandais si tu considererais SEWELIS, que je
developpe comme un cadriciel ? Et si non, ce qui lui
manque ?

http://www.irisa.fr/LIS/softwares/sewelis

Il permet le chargement de graphes RDF, la recherche
guidee et l'edition guidee sur le meme mode que la
recherche. Il n'y a pas encore de regles, mais il
y a l'inference RDFS et quelques elements de OWL.
Pas encore d'interface Web, meme si j'ai recemment
fait une version Javascript pour la consultation sur
des points d'acces SPARQL: Sparklis.

http://www.irisa.fr/LIS/ferre/sparklis/osparklis.html

Voila, je me disais que ces infos pourraient t'interesser
vu que tu es toujours en veille sur ces choses la.

Amicalement,
Sébastien
> <http://irc.freenode.net#eulergui>
>
> --
>
> ---
> Vous recevez ce message, car vous êtes abonné au groupe Google Groupes
> "Déductions et EulerGUI en Français".
> Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le
> concernant, envoyez un e-mail à l'adresse
> deductions-f...@googlegroups.com
> <mailto:deductions-f...@googlegroups.com>.

Jean-Marc Vanel

unread,
Apr 18, 2014, 3:54:27 AM4/18/14
to deduct...@googlegroups.com, Sébastien Ferre
Merci Sébastien et Benjamin

Sewelis , et certainement pas mal d'autres, ont échappé à mon radar.
Je vais répondre en détail ce soir;
pour l'heure je dois finir un POC pour le e-commerce sémantique.

mh...@laposte.net

unread,
Apr 18, 2014, 11:14:14 AM4/18/14
to deduct...@googlegroups.com

Merci de ces ressources.

J'ai lu ton texte sur les formulaires pour faciliter le développement d'applications-métiers. C'est probablement les CMS où il y aurait le plus d'"ouverture" car pour les autres applications (CRM, RH...), il faut apporter une valeur ajoutée forte, tant les progiciels occupent le terrain (mais ce serait le cas avec des moteurs de règles d'inférence). Drupal intègre d'alleurs des éléments du "web sémantique".


Je ne sais pas si tu connais ça: http://www-sop.inria.fr/edelweiss/software/corese/ ? Je l'ai trouvé dans le catalogue de l'INRIA par hasard, mais je ne sais si c'est encore maintenu. C'est peut-être un bon vecteur car cela s'inscrit dans les démarches classiques de conception de SI.

 

MarcH

Jean-Marc Vanel

unread,
Apr 19, 2014, 6:05:34 AM4/19/14
to deduct...@googlegroups.com
Merci Sébastien,

Je viens de mettre à jour le document avec 

Je suis arrivé à lancer Sewelis sur Ubuntu,
et je l'ai ajouté dans la liste; je dois maintenant apprendre à m'en servir; j'ai chargé mon FOAF depuis le fichier, et rien ne se passe. Je vais regarder les screenshots.

Pas encore essayé  la consultation sur des points d'accès SPARQL: Sparklis.

Ce qui manque à Sewelis ?
D'être un outil avec une communauté même petite, et utilisable pour faire des applications concrètes sémantiques comme partage de connaissance, de contacts, CMS, KM, etc.
Sewelis est maintenu depuis plusieurs années, et c'est déjà bien pour un outil issu de la recherche.


Pour obtenir davantage d'options, consultez la page
https://groups.google.com/d/optout.
--

--- Vous recevez ce message, car vous êtes abonné au groupe Google Groupes Déductions et EulerGUI en Français.
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse deductions-fr+unsubscribe@googlegroups.com.
Pour plus d'options, visitez le site https://groups.google.com/d/optout .

Jean-Marc Vanel

unread,
Apr 19, 2014, 11:07:22 AM4/19/14
to deduct...@googlegroups.com
Salut Benjamin,

Je vois que ton projet  ld-orm est en pleine activité.
Tout ce qui est RDF m'intéresse.
C'est assez classique de générer des classes à partir de l'ontologie, afin soit d'ajouter de la logique métier, soit de créer de l'affichage. Et il y a des outils de génération pour tous les langages. C'est que fait par exemple mission-critical-IT ; mais ( communication orale ) c'est surtout là pour rassurer les développeurs non sémantiques.

Mais, pour l'instant , je préfère éviter l'OSM (Object Semantic Mapping) , pour explorer des voies où l'on est sémantique de bout en bout , c à d. du stockage à l'IHM et retour.

Pourquoi ?
Il y a des raisons contre l'OSM , et d'autres arguments qui pointent sur "on n'en a pas besoin" :

- on souhaite être au maximum indépendant d'un language de programmation
- on peut inférer l'IHM à partir des données RDF + ontologies + spécifications d'IHM comme Fresnel ou ceci pour des création des resource d'une certaine classe:
- générer du code crée des complications dans la gestion de projet: si on re-génère on peut perdre  les modifications manuelles; donc ça complique le build en bas de modification des vocab' RDF
- la logique métier peut fort bien être logée ailleurs que dans les classes de donnée, c'est d'ailleurs ce que prône le domain driven Dev (DDD), et en particulier être écrite en SPARQL, N3 ou SWRL (langages de règles)

Benjamin Cogrel

unread,
Apr 19, 2014, 1:46:29 PM4/19/14
to deduct...@googlegroups.com
Bonjour Jean-Marc,

Merci pour toutes ces remarques, elles sont très intéressantes et mettent bien évidence notre différence de positionnement.

Au travers de ce petit projet, je souhaite pouvoir :
  - Interagir avec des développeurs non sémantiques et réutiliser leurs briques logicielles.
  - Écrire et valider facilement du RDF. Pour l'instant, je trouve l'écriture de triplets en Python avec RDFlib assez inefficace comparée aux ORMs ordinaires (SQLAlchemy, etc.).
  - Exposer du JSON en plus de JSON-LD et autres formats RDF. Je m'attends à écrire des fichiers de contexte JSON-LD dans mes projets persos et donc, afin de ne pas me répéter, il est intéressant d'utiliser ces métadonnées.
 - Réaliser ensuite des API hypermédia. Pour cela, il est essentiel d'exposer une partie conséquente de la logique métier en RDF (via le vocabulaire Hydra). À moyen terme, je compte réorganiser mon code afin de le réutiliser pour concevoir des clients Web aussi génériques que possible. Dans cette perspective, je n'aurai besoin d'exposer en RDF que la partie de la logique métier que doit connaître le client. Ton objectif est plus ambitieux car, si j'ai bien compris, tu souhaites que toute la logique métier soit écrite de façon déclarative.

Cet ORM exploite des métadonnées que je comptais produire de toute façon. Il n'est pas incontournable, toutes les données sont stockées dans un triplestore et peuvent être manipulées avec d'autres outils si nécessaire. D'ailleurs, j'envisage d'utiliser des règles SPARQL de validation écrites avec le vocabulaire SPIN.

Dans ce projet Python, la génération de classes est dynamique et n'implique pas de build particulier (aucun fichier supplémentaire n'est généré). Je pense que cet aspect dynamique me sera utile à l'avenir pour réaliser des clients hypermédias.

Merci pour les pointeurs (à l'occasion, j'aimerais bien essayer Fresnel) et bon courage pour l'approche sémantique de bout en bout.

Benjamin
Reply all
Reply to author
Forward
0 new messages