Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Tutoriel : "Gestion d’ontologies"

90 views

Published on

Tutoriel donné par Clement Jonquet aux 27èmes Journées Francophones d’Ingénierie des Connaissances (IC) à Montpellier, Juin 2016.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Tutoriel : "Gestion d’ontologies"

  1. 1. Tutoriel : « Gestion d’ontologies » 27èmes Journées Francophones d’Ingénierie des Connaissances Montpellier, Juin 2016
  2. 2. Présentation du tutoriel
  3. 3. Objectifs du tutoriel Manipuler la plateforme Bio/AgroPortal Décrire son ontologie en utilisant des vocabulaires standards Interconnecter son ontologie au reste du monde Annoter du texte avec des ontologies Manipuler les APIs (REST ou SPARQL) pour automatiser ses tâches
  4. 4. L’équipe Bio/AgroPortal au LIRMM Clement Jonquet Maître de Conférences en Informatique au LIRMM et visiting scholar à Stanford Porteur des projets SIFR et AgroPortal Vincent Emonet Ingénieur CNRS Développeur principal des portails du LIRMM Anne Toulet Ingénieur de recherche Gestion du contenu et des cas d’usage
  5. 5. « Disclaimer » ▪ Malgré la mise à disposition de plateformes concrètes, cela reste une activité de recherche en cours ▪ Excuser les bugs, incohérences, incompréhension, les limites ▪ Nous n’aurons pas réponse à tout
  6. 6. Déroulement du tutoriel Selection d’ontologies métadonnées recherche recommender Dépôt et usage d’une ontologie navigation visualisation api Annotation de texte annotator Gestion des alignements saisir récupérer api Accès aux API REST SPARQL
  7. 7. Présentation de l’outil BioPortal et de ses instances pour l’agronomie et la santé http://bioportal.bioontology.org http://bioportal.lirmm.fr http://agroportal.lirmm.fr NCBO BioPortal SIFR BioPortal AgroPortal
  8. 8. Matériel nécessaire  Un navigateur pour manipuler l’application web  Pour les appels REST (DHC, cURL, etc.)  Un éditeur de texte pour écrire vos requêtes REST ou SPARQL  Une ontologie (de préférence en OWL ou SKOS)
  9. 9. Ressources ▪ Documentation (plus ou moins technique, désolé) ▪ https://github.com/agroportal/documentation/wiki/ ▪ Les exemples seront souvent donnés avec AgroPortal, mais les mêmes requêtes peuvent être envoyées à n’importe lequel des portails en changeant la base de l’URL (et les paramètres concernés bien sûr) ▪ http://data.agroportal.lirmm.fr/ ▪ http://data.bioportal.lirmm.fr/ ▪ http://data.bioontology.org/
  10. 10. Tour de table ▪ Avez-vous déjà utilisé BioPortal ? Pour quelle tâche ? ▪ Garder le feedback pour la fin ▪ Votre background ? ▪ Pourquoi êtes-vous là aujourd’hui ? ▪ Super rapidement ▪ Check: Accès aux slides ? Padlet ? Web ?
  11. 11. Créer un compte et obtenir une APIkey ▪ Cliquer sur votre login > Account ▪ Copier/coller votre APIKey
  12. 12. Espace de partage pour le tutoriel: Padlet ▪ https://padlet.com/jonquet_lirmm/5iovxfx90box
  13. 13. Pour ceux qui voudrait aller voir le code d’un peu plus près https://github.com/ncbo https://github.com/agroportalhttps://github.com/sifrproject
  14. 14. Présentation rapide de la plateforme
  15. 15. Working with vocabularies & ontologies – a portal please! ▪ You’ve built an ontology, how do you let the world know? ▪ You need an ontology, where do you go to get it? ▪ How do you know whether an ontology is any good? ▪ How do you find data that are relevant to the domain of the ontology (or to specific terms)? ▪ How could you use ontologies without managing them ? 15
  16. 16. NCBO Bioportal : A “one stop shop” for Biomedical Ontologies ▪ Web repository for biomedical ontologies ▪ Make ontologies accessible and usable – abstraction on format, locations, structure, etc. ▪ Web application based on a REST a web service API ▪ Online support for ontology ▪ Publish, download ▪ Browse, visualize ▪ Peer review ▪ Notes (comments and discussion) ▪ Versioning ▪ Mapping ▪ Search ▪ Resources ▪ Annotation ▪ Recommendation 16
  17. 17. http://data.bioontology.org Ontology Services • Search • Traverse • Comment • Download Widgets • Tree-view • Auto-complete • Graph-view Annotation Data Access Mapping Services • Create • Upload • Download Term recognition Search “data” annotated with a given term http://bioportal.bioontology.org 17
  18. 18. 18
  19. 19. 19
  20. 20. Sélection d’ontologies • Utiliser les métadonnées • Utiliser le Recommender • Chercher au sein d’un ontologie • Définir des métadonnées pour son ontologie en dehors de Bio/AgroPortal
  21. 21. 21
  22. 22. 22
  23. 23. 23
  24. 24. A vous de jouer ! Sélectionner une ontologie préférée en naviguant dans le site ou en cherchant dans les ontologies
  25. 25. Il y a plein de choses à dire sur une ontologie Intrinsic •names, acronym, language, ids, version, status, license, syntaxe, type, guidelines People •creator, contributor, publisher, contact, curator Grouping •domain, group Relation •imports, versions, views, related to, aligned to, used by, translation, generalization, specialization Content •key classes, dumps, partitions, example, changes Community •endorsments, reviews, notes, projects, analytics, support, audience Date •creation, modification, released, validation Metrics •classes,properties, individuals, depth, etc. Provenance •Source, generated by, invalidated by Description •documentation, abstract, reference, notes, methods, tools, logo, property used, homepage
  26. 26. Il existe de nombreux vocabulaires pour décrire son ontologie Name Space Name rdfs RDF Schema omv Ontology Metadata Vocabulary owl OWL 2 Web Ontology Language dc Dublin Core Metadata Element Set dct DC qualified foaf Friend of a Friend Vocabulary void Vocabulary of Interlinked Datasets door Descriptive Ontology of Ontology Relations vann Vocabulary for annotating vocabulary descriptions adms Asset Description Metadata Schema voaf Vocabulary of a Friend dcat Data Catalog Vocabulary prov Provenance Ontology cc Creative Commons Rights Expression Language schema Schema.org skos Simple Knowledge Organization System
  27. 27. Exemple de SIO <rdf:Description rdf:about="http://semanticscience.org/ontology/sio.owl"> <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Ontology"/> <vann:preferredNamespacePrefix xml:lang="en">sio</vann:preferredNamespacePrefix> <dct:license rdf:resource="http://creativecommons.org/licenses/by/4.0/"/> <cito:citesAsAuthority rdf:datatype="http://www.w3.org/2001/XMLSchema#anyURI">http://www.jbiomedsem.com/content/5/1/14</cito:citesAsAuthority> <owl:versionInfo rdf:datatype="http://www.w3.org/2001/XMLSchema#string">1.29.0</owl:versionInfo> <dct:description xml:lang="en">The semanticscience integrated ontology (SIO) provides a simple (…). website: http://semanticscience.orgemail: sio-ontology@googlegroups.commailing list: http://groups.google.com/group/sio-ontology</dct:description> <dct:issued rdf:datatype="http://www.w3.org/2001/XMLSchema#date">2010-03-29</dct:issued> <dc:creator xml:lang="en">Michel Dumontier</dc:creator> <vann:preferredNamespaceUri rdf:datatype="http://www.w3.org/2001/XMLSchema#string">http://semanticscience.org/resource/</vann:preferredNamespaceUri> <schema:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string">general class inclusion axioms:'is part of' some 'physical entity' subClassOf 'is located in' some 'physical entity'role chains:'has capability' o 'is realized in' -&gt; 'is participant in'</schema:comment> <dc:contributor rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Contributors are those that engage in discussions in the context of SIO (in alphabetical order):christopher baker, joachim baran, (...) </dc:contributor> <rdfs:seeAlso rdf:datatype="http://www.w3.org/2001/XMLSchema#anyURI">http://sio.semanticscience.org</rdfs:seeAlso> <dct:rights rdf:datatype="http://www.w3.org/2001/XMLSchema#string">free to use,share,modify. modify with attribution [http://creativecommons.org/licenses/by/4.0/].</dct:rights> <protege:defaultLanguage> en</protege:defaultLanguage> <dct:creator rdf:datatype="http://www.w3.org/2001/XMLSchema#anyURI">http://orcid.org/0000-0003-4727-9435</dct:creator> <dct:title xml:lang="en">Semanticscience Integrated Ontology (SIO)</dct:title> <dc:identifier> sio.owl</dc:identifier> <rdfs:isDefinedBy rdf:resource="http://semanticscience.org/ontology/sio.owl"/> <owl:versionIRI rdf:resource="http://semanticscience.org/ontology/sio/v1.29.0/sio-release.owl"/> <dct:modified rdf:datatype="http://www.w3.org/2001/XMLSchema#date">2016-05-18</dct:modified> </rdf:Description>
  28. 28. A vous de jouer ! Prendre votre ontologie et y ajouter 3 métadonnées Dites nous ce que vous voulez dire à propos de votre ontologie, nous vous dirons quelle propriété utiliser Ou alors, regarder Dublin Core ou Schema.org
  29. 29. 29 Recommender
  30. 30. A vous de jouer ! Prenez le résumé de votre dernier article et obtenez une recommandation pour ce contenu Entrez une liste de termes que vous aimeriez trouver dans une ontologie pour identifier celle qui offre la meilleure couverture
  31. 31. Dépôt et usage d’une ontologie • Déposer une ontologie dans le portail • Naviguer et visualiser une ontologie • Manipuler l’API pour une ontologie
  32. 32. Dépôt d'une nouvelle ontologie ▪ 1. Création du « moule »
  33. 33. Format OWL Format SKOS Dépôt d'une nouvelle ontologie ▪ 2. Dépôt d'une soumission
  34. 34. 34
  35. 35. Community based functionalities 35
  36. 36. Manipuler une ontologie via l’API ▪ Accéder aux métadonnées de l’ontologie ▪ http://data.agroportal.lirmm.fr/ontologies/ONTO/?apikey=** ▪ Accéder aux classes de l’ontologie ▪ http://data.agroportal.lirmm.fr/ontologies/ONTO/classes/?apikey=**
  37. 37. À vous de jouer ! Éventuellement soumettez une ontologie (si ce n’est pas déjà fait) mais ce n’est pas obligatoire Pour l’ontologie de votre choix, naviguer, visualiser, laisser quelques commentaires Entrez un projet qui utilise une ou plusieurs ontologie(s)
  38. 38. Annotation de texte • Identifier des concepts d’ontologies dans des données textuelles
  39. 39. Ontology-based annotation workflow ▪ First, direct annotations are created by recognizing concepts in raw text, ▪ Second, annotations are semantically expanded using knowledge of the ontologies, ▪ Third, all annotations are scored according to the context in which they have been created. 39
  40. 40. 40
  41. 41. À vous de jouer ! Prenez le résumé de votre dernier article et obtenez les annotations Testez le score Regardez vos résultats dans l’API
  42. 42. Gestion des alignements • Récupérer ou saisir des alignements • Format des alignements • Importation d’alignements générés avec des outils extérieurs
  43. 43. Les mappings dans Bio/AgroPortal ▪ Soit « générés » automatiquement par le portail (quand une ontologie est chargée) ▪ Basés sur les identifiants (URI, CUI ) ▪ Basés sur la syntaxe des labels (LOOM) ▪ Soit « soumis » par les utilisateurs (via l’UI, l’API ou script) ▪ Enrichis par des métadonnées ▪ Etiquetés à l’aide d’une propriété du web sémantique (skos:exactMatch, owl:sameAs, etc.)
  44. 44. Représentation des alignements dans Bio/AgroPortal
  45. 45. Cas particulier des alignements de traduction ▪ Ils vont d’un portail a un autre ▪ Ils utilisent plusieurs « étiquettes » (tag)
  46. 46. 46 Mappings ▪ En naviguant dans une ontologie, on peut récupérer tous les mappings entre deux ontologies ▪ En naviguant sur un concept, on peut récupérer tous les mappings pour un concept donné
  47. 47. Mappings entre ontologies: quelques exemples ▪ http://agroportal.lirmm.fr/ontologies/STY?p=classes&conceptid=http%3A%2F%2 Fpurl.bioontology.org%2Fontology%2FSTY%2FT002#mappings ▪ http://bioportal.lirmm.fr/ontologies/MSHFRE/?p=classes&conceptid=http%3A%2 F%2Fpurl.lirmm.fr%2Fontology%2FMSHFRE%2FD012959
  48. 48. À vous de jouer ! Récupérez l’ensemble des alignements générés par le portail pour votre ontologie préférée Saisir des alignements (pertinents) entre classes de différentes ontologies Saisir des alignements vers des classes qui ne sont pas dans le portail e.g., DBPedia • (SIFR BioPortal et AgroPortal seulement)
  49. 49. Accès aux API • REST • SPARQL
  50. 50. 50 REST Web Service API: http://data.agroportal.lirmm.fr/documentation SPARQL endpoint: http://sparql.agroportal.lirmm.fr
  51. 51. Qu'est-ce qu'une API REST ? Une architecture pour construire des applications Web ▪ protocole HTTP ▪ accès à une ressource par son URI unique ▪ des opérations supportées nativement par HTTP : ▪ GET (Afficher) ▪ POST (Créer) ▪ PATCH (modifier) ▪ DELETE (Supprimer)
  52. 52. Présentation de l’API REST (1/2) ▪ Les données du portail sont exposées au format JSON (ou XML) par l’API REST ▪ http://data.agroportal.lirmm.fr/ ▪ http://data.bioportal.lirmm.fr/ ▪ http://data.bioontology.org/ ▪ Opérations réalisées sur ces données (ajout, modification, suppression) avec des requête HTTP ▪ http://data.agroportal.lirmm.fr/documentation ▪ Les requêtes GET permettent de récupérer des objets (ontologies, classes, mappings, utilisateur, projet, slice, etc.) ▪ Les requêtes PUT ou POST permettent de créer de nouveaux objets ▪ Les requêtes PATCH permettent de modifier des objets existants et les requêtes DELETE de les supprimer
  53. 53. Présentation de l’API REST (2/2) ▪ Une APIKey est nécessaire pour effectuer des appels a l’API. ▪ Les paramètres sont donnés dans l’URL (appels GET) ou à l’aide d’un document JSON joint (PUT, POST, PATCH) ▪ Exemple: http://data.agroportal.lirmm.fr/users?apikey=72574b5d-b741-42a4-b449- 4c1b64dda19a&display=all
  54. 54. agroportal.lirmm.fr/ontologies data.agroportal.lirmm.fr/ontologies? apikey=*** API REST : l'accès aux données
  55. 55. API REST : l'accès aux services agroportal.lirmm.fr/annotator services.agroportal.lirmm.fr/annotator/?t ext="banana"&apikey=***
  56. 56. Exemples d’appels REST ▪ Récupération d’un utilisateur ▪ http://data.agroportal.lirmm.fr/users/jonquet ▪ Récupération d’un groupe ▪ http://data.agroportal.lirmm.fr/groups/LOVINRA ▪ Récupération d’une ontologie ▪ http://data.agroportal.lirmm.fr/ontologies/CO_125 ▪ Récupération d’un projet ▪ http://data.agroportal.lirmm.fr/projects/SIFR
  57. 57. Exemples de récupération des mappings ▪ Récupération d’un mapping ▪ http://data.agroportal.lirmm.fr/mappings/fd709e40-fcab-0132-77e3-525400026749 ▪ Afficher les mappings récents ajoutés manuellement ▪ http://data.agroportal.lirmm.fr/mappings/recent ▪ Afficher les mappings entre 2 ontologies ▪ http://data.agroportal.lirmm.fr/mappings?ontologies=BT,CL ▪ Afficher tous les mappings d’une ontologie ▪ http://data.agroportal.lirmm.fr/ontologies/CL/mappings ▪ Afficher tous les mappings d’une classe ▪ http://data.agroportal.lirmm.fr/ontologies/CL/classes/http%3A%2F%2Fpurl.obolibrary.or g%2Fobo%2FUBERON_0000479/mappings
  58. 58. Exemples de requêtes SPARQL // all triples about ontologies PREFIX owl: <http://www.w3.org/2002/07/owl#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT ?s ?p ?o WHERE { GRAPH http://data.bioontology.org/metadata/Ontology>{ ?s ?p ?o . }} // list of all username PREFIX meta: <http://data.bioontology.org/metadata/> SELECT DISTINCT ?user WHERE { GRAPH <http://data.bioontology.org/metadata/User> { ?user meta:username ?o . }} //liste des graphes dans 4stores SELECT DISTINCT ?g WHERE { GRAPH ?g { ?s a ?p . }} //Get all ontology terms (owl:Class) from the ANDO ontology. SELECT DISTINCT ?s ?label WHERE { GRAPH <http://data.bioontology.org/ontologies/ANDO/submissions/1> { ?s a owl:Class . ?s rdfs:label ?label . }}
  59. 59. À vous de jouer ! Faire quelques appels REST Faire quelques requêtes SPARQL
  60. 60. Voilà c’est la fin • Questions & remarques • Nous restons à votre disposition • Allez plus loin
  61. 61. Lectures possibles ▪ Natalya F. Noy, Nigam H. Shah, Patricia L. Whetzel, Benjamin Dai, Michael Dorf, Nicholas B. Griffith, Clement Jonquet, Daniel L. Rubin, Margaret-Anne Storey, Christopher G. Chute & Mark A. Musen. BioPortal: ontologies and integrated data resources at the click of a mouse, Nucleic Acids Research. May 2009. Vol. 37 ((web server)), pp. 170-173. [PDF] ▪ Whetzel, P. L., Noy, N. F., Shah, N. H., Alexander, P. R., Nyulas, C., Tudorache, T., & Musen, M. A. (2011). BioPortal: enhanced functionality via new Web services from the National Center for Biomedical Ontology to access and use ontologies in software applications. Nucleic acids research, 39(suppl 2), W541-W545. ▪ Clement Jonquet, Esther Dzalé-Yeumo, Elizabeth Arnaud & Pierre Larmande. AgroPortal : a proposition for ontology-based services in the agronomic domain, In 3ème atelier INtégration de sources/masses de données hétérogènes et Ontologies, dans le domaine des sciences du VIVant et de l’Environnement, IN-OVIVE'15. Rennes, France, June 2015. pp. 5. [PDF] ▪ Clement Jonquet, Amina Annane, Khedidja Bouarech, Vincent Emonet & Soumia Melzi. SIFR BioPortal : Un portail ouvert et générique d’ontologies et de terminologies biomédicales françaises au service de l’annotation sémantique, In 16th Journées Francophones d'Informatique Médicale, JFIM'16. Genève, Suisse, July 2016. [PDF]
  62. 62. Merci!

×