-
Notifications
You must be signed in to change notification settings - Fork 23
Manuel utilisateur
Semantic_forms est une application générique à la fois de navigation du web sémantique et d'annotation, et un cadriciel (framework) pour construire des applications d'entreprise centrées sur les formulaires (entrée ou lecture seule). Ce manuel parle de l'application générique. Pour les autres aspects, voir le Wiki.
Toutes les données et tous les modèles de données (ontologies) s'appuient sur les recommandations du Web sémantique du W3C: https://fr.wikipedia.org/wiki/Semantic_Web
Un bac à sable est ici: http://212.47.232.171:9111/
On peut aussi télécharger la distribution et lancer l'application web sur sa machine, voir: obtaining the zipped application
Les usages peuvent être personnels (via la distribution zip qui est une application web), ou collective lorsque hébergé sur un serveur. Avec seulement les modèles par défaut et les formulaires associés, ces usages sont possibles:
-
gestionnaire de contacts,
-
gestionnaire de projets,
-
moteur de blog,
-
gestionnaire de notes,
-
...
On peut créer son profil FOAF (pour l'héberger en statique ailleurs ou le visualiser dans l'application), naviguer sur le Web de données en gardant trace, ou tout type de gestion de données structurées.
En ce qui concerne la mise en œuvre, Semantic_forms
tire parti de Jena TDB, de Play! Framework, Scala et Banana-RDF.
Semantic_forms
est fonctionnel en sortant de la boîte, une fois qu'on a dézippé le logiciel, ou qu'on l'a construit à partir des sources. Pas besoin d'installer séparément une base de données ou d'autres composants.
Vous pouvez naviguer dans vos données RDF (Turtle, JSON-LD) chargées dans la base locale Jena TDB aussi facilement que dans les profils FOAF sur Internet, ou mélanger les deux.
Semantic_forms
ressemble aux pages de DBPedia (par exemple http://dbPedia.org/resource/Cycas), mais où l'on peut aussi modifier tous les champs, et charger n'importe quelles données du LOD, y compris des modèles de données et des formulaires.
Le code et la façon de construire à partir de sources sont ici: https://github.com/jmvanel/semantic_forms/tree/master/scala/forms_play .
Avant de faire quoi que ce soit, il faut s'authentifier et/ou créer un compte avec un nom d'utilisateur et un mot de passe.
NOTE: pour l'instant il n'y a pas de mail associé aux compte. Cependant le nom d'utilisateur peut être votre mail, précédé par mailto: , ainsi transformé en URL.
ATTENTION il faut choisir un nom d'utilisateur qui soit un URI absolu (comme "u:uu"). Certaines choses ne marcheront pas avec un URI relatif (comme "bla" ou "/ble").
Essayez de glisser / déposer cet URI dans le champ "Afficher": http://dbpedia.org/resource/Bobby_Bland
Vous allez voir des paires propriété-valeur au sujet de ce chanteur, Bobby Bland. Cela constitue autant de triplets sujet-propriété-valeur, qui sont l'essence du Web Sémantique. On peut voir aussi des statistiques sur les données téléchargées depuis cet URI, par exemple:
23 subjects, 229 triples, 52 predicates, 148 objects, 148 objects from page URI
Pour s'initier au Web Sémantique, à part l'utilisation de Semantic_forms
, vous pouvez regarder cette courte introduction .
Voir aussi la page wikipedia.org Web Sémantique.
D'une manière générale, coller dans le champ "Afficher" un URI téléchargeable, disons <U1>
, que ce soit un dbpedia ou profil FOAF, ou une ontologie, affiche les triplets au sujet de <U1>
, c'est à dire:
<U1> ?P ?O.
comme l'application web DBPedia le fait aussi. Ensuite, vous pouvez naviguer de liens en liens, tout comme dans DBPedia (et dans le Web).
Il y a quelques points de départ dans le champ de saisie "URI pour afficher", cliquez sur le triangle sur la droite.
En naviguant comme ci-dessus, vous avez visualisé, et vous avez aussi chargé. Qu'est ce que des données sémantiques? Il s'agit d'URL (URI) qui contiennent non pas du contenu destiné à la visualisation directe (HTML), mais des triplets. Typiquement, ces URI téléchargeables sont:
- des profils personnels FOAF: exemple: mon profil FOAF public
- des entrées de dbpedia.orgn comme ci-dessus
- un URI d'un conteneur LDP (Linked Data Platform): exemple: les URI créés par
Semantic_forms
lui-même.
En quoi consiste le chargement des données sémantiques?
La navigation et l'affichage d'un URI téléchargeable charge également dans la base de données (base SPARQL Jena TDB). Et ensuite, les données téléchargées sont ré-utilisées partout dans l'applications: affichage des triplets, des formulaires, des libellés (à partir de rdfs:label et autres prédicats), recherche, ...
Ainsi, au fur et à mesure de la navigation, on se fait sa propre sélection de l'Internet des données.
Et si c'est une instance partagée de Semantic_forms
, on partage:
- la connaissance de ce qui a été chargé par chacun, via la page historique, historique sur localhost ),
- et surtout la possibilité de créer des liens sémantiques juste via un menu déroulant (voir édition plus bas)
La base de données Jena TDB agit comme un cache (indexé par horodatage ou par ETag) pour les données RDF Internet, ce qui signifie:
- Afficher la deuxième fois est beaucoup plus rapide;
- En tenant compte des en-têtes HTTP, les données peuvent être rechargées si la source distante est modifiée
A l'intérieur de la base de données RDF (SPARQL), les triplets téléchargés à partir de l'URI <U1>
sont chargés dans un graphe nommé dont le nom est aussi <U1>
. C'est ce qu'on appelle le "cache sémantique".
Vous pouvez avoir une vue sur les graphes nommés dans la page "outils"; ici dans le sandbox : http://212.47.232.171:9111/tools , et ici en local.
Si vous voulez juste naviguer sur la source de données dbPedia.org, par exemple dbPedia.org, sans vouloir enrichir la base commune avec les URL parcourus, il vaut mieux ne pas utiliser une instance partagée de Semantic_forms
. Dans ce cas, vous pouvez naviguer à peu près de la même façon sur dbPedia.org lui-même.
Lors de l'affichage d'un objet par son URI, cliquez sur le lien à droite après "Propriétés" pour afficher un formulaire de saisie pour cet URI. Vous pouvez modifier n'importe quel triplet, et créer plusieurs valeurs avec le bouton "+". Lorsque vous avez terminé l'édition, le bouton SAUVER met à jour la base de données.
ATTENTION: il n'y a pas de vérification que des données entrées pourraient être perdues si on appuie sur autre chose que le bouton SAUVER.
Il y a deux manières. On peut d'abord simplement se baser sur les classes prédéfinies dans la page Web. On sélectionne dans le menu déroulant à proximité du bouton "Créer" l'une des classes pré-définies (les classes FOAF, etc). on appuie sur le bouton "Créer", et le formulaire inféré pour la classe sera affiché.
Vous pouvez prendre également n'importe quelle classe OWL/RDF Schéma. C'est à dire qu'une fois que vous avez téléchargé une ontologie, vous pouvez coller l'URI d'une classe de cette ontologie dans le champ "Créer", Essayez de chercher une classe RDF dans les moteurs de recherche LOV ou Swoogle, et de le glisser / déposer dans le champ "créer une instance". Par exemple glisser-déposer cette URL pour créer une espèce biologique: http://dbpedia.org/ontology/Species
REMARQUE: par défaut de nombreuses ontologies utiles sont pré-chargées, comme l'ontologie DBPedia (voir "README updading RDF content" pour en pré-charger plus). Dans le cas où l'ontologie ne serait pas pré-chargée, vous pouvez la charger, comme les données, à partir de son URL, comme expliqué ci-dessus dans Navigation. A noter que, après le téléchargement de l'ontologie, vous ne verrez pas grand'chose, car vous ne verrez typiquement que les triplets au sujet de l'ontologie elle même. Cependant toutes les classes et propriétés sont bien là, comme le montrent les statistiques de téléchargement.
Les champs littéraux (chaînes de caractères) sont entrés en fonction de leur type de données (chaîne simple, nombre, date, ...) avec des champs d'entrée conformes à HTML5. Le bouton "EDIT" à proximité ouvre une fenêtre pour entrer un texte de plusieurs lignes.
Les champs de resources (liens sémantiques) sont saisis soit par:
- le choix d'une valeur possible par menu déroulant, et qui a été déduite des triplets
rdfs:range
etrdf:type
, - Coller, ou glisser-déposer, un URI venant d'ailleurs (page web ordinaire, ou application
Semantic_forms
), - Entrer n'importe quelle chaîne, qui sera ajoutée dans la base de données comme un URI (les espaces seront remplacés par des soulignés; le
rdf:type
de cette nouvelle URI est défini selon les ontologies dans la base de données (lors de l'enregistrement du formulaire).
L'option 3 crée une nouvelle ressource dans la base de données, qui pourrait déjà exister; il vaut mieux regarder d'abord dans le menu déroulant pour entrer une ressource déjà existante.
Remarquez les champs marqués avec "complétion dbPedia», comme compétences et points d'intérêt. Là, on tape quelques lettres, et c'est complété par les concepts pertinents de Wikipedia (en anglais). La complétion fonctionne sur Firefox, Chrome, Opéra, et Android (mais il se peut que le serveur dbPeida Lookup soit hosr service).
Les bases de données en graphe (structure mathématique avec des noeuds et des liens) sont à la mode. Justement le Web Sémantique constitue un immense graphe, dont les noeuds sont les URI des resources traitées, et les liens sont représentés par les triplets sujet-propriété-objet.
Cet immense graphe est la réunion de tous les documents RDF (ou Turtle ou JSON-LD) publics (Linked Open Data) ou même privés. Dès qu'un même URI est référencé par deux documents RDF, les graphes sont ainsi connectés.
Bien sûr, cet immense graphe (la partie publique) n'est pas couramment chargé dans une base de données. Mais c'est possible.
Ce qu'on fait, plus modestement, dans Semantic_forms
est de charger au fur et à mesure de la navigation. On maintient ainsi un graphe pertinent par rapport aux usages.
Les (multiples) chemins d'un URI à un autre prennent en compte toutes les sources chargées.
Ces chemins sont navigables par des pages de l'application, mais aussi et surtout par programme:
- requêtes SPARQL
- algorihmes de graphes
La structure de graphe est plus générale que celles d'arbre et de table. Mais les arbres et les tables peuvent facilement se reformuler en graphes.
A partir de l'application Semantic_forms
, on peut tracer des diagrammes en appuyant sur les icones au triangle avec 3 ronds. On ne peut (encore) ajouter / enlever des noeuds dans ces diagrammes, voir l'issue:
https://github.com/jmvanel/semantic_forms/issues/91