ntroduction 1/24 2/24 Donner une sémantique aux ressources du web Anne-Cécile Caron Représenter les connaissances du web : monde ouvert, diversité des sujets, des services. Très grande échelle : données en grande quantité, distribuées et internationales. l existe déjà des ressources sur le web : il faut donner une sémantique à ces ressources, pas supprimer l existant. Master MAGE/P-NT 2015-2016 ntroduction Le modèle de données 3/24 4/24 Pour annoter sémantiquement les ressources du Web, on utilise le langage. = resource description framework Représentation d informations sur les ressources du Web nformation destinée aux applications (pas aux humains) d extraction d information, ou aux services web. structure de graphe orienté : on décrit des arcs. 1.0 en 2004, 1.1 W3C Recommendation depuis février 2014. Modèle de graphe Le Web est une toile d araignée, le modèle le plus adapté est un graphe. arcs (sujet, prédicat, objet). Le sujet est une entité représentée par un identifiant, Le prédicat est une propriété de l entité, L objet est la valeur de la propriété pour ce sujet. C est une entité ou un littéral. Par exemple, on cherche à définir des hôtels et leur environnement. On suppose qu il existe des identifiants Ei pour les principales entités. (E1, a_pour_nom, "ASCOTEL") (E1, adresse, "7 av. Langevin, Cité Scientifique, V d Ascq") (E1, proche_de, E2) (E1, proche_de, E3) (E2, a_pour_nom, "Université Lille 1") (E3, a_pour_nom, "Stade Pierre Mauroy") (E3, a_pour_nom, "Grand Stade Lille Métropole")
5 / 24 Mode le de graphe 6 / 24 dentification des entite s Le mode le est tre s simple, pourtant il y a un certain nombre de proble mes a re soudre : Comment ge rer les identifiants a l e chelle du web? Comment savoir ce que repre sente une valeur, c est-a -dire son type, l unite, la langue,...? Comment savoir quelles proprie te s (quels pre dicats) utiliser? Comment publier, e changer, interroger les donne es? En, les entite s sont appele es e galement ressources, chacune est identifie e par un R - nternational Resource dentifier, chaı ne de caracte res Unicode. Allocation d R : c est le processus d association d un R a une ressource que l on appelle son re fe rent. l faut e viter absolument les collisions d R, i.e. un me me R avec deux re fe rents. Une bonne manie re d expliquer quel est le re fe rent d un R est de fournir une repre sentation de ce re fe rent sous la forme d un document Web, auquel on acce de en interpre tant l R comme un URL. On parle d R de re fe renc able. 7 / 24 Les litte raux On vient de voir que la plupart des noeuds du graphe sont des entite s, identifie es par des Rs. Parfois, le noeud a l extre mite d un arc est une simple valeur (un nombre, une date,...). Dans ce cas on utilise des litte raux. Un litte ral consiste en 2 ou trois e le ments : 1. une forme lexicale : une chaı ne de caracte res Unicode. 2. un R pour le type de donne es : c a permet de savoir comment interpre ter la chaı ne de caracte re. 3. Quand le type de donne es est rdf:langstring on associe un tag de langage au litte ral Si on ne donne pas d R de typage, alors le type par de faut est xsd:string, sauf s il y a un tag de langage (le type est alors rdf:langstring). "1990-07-04"^^xsd:date "La Joconde"@fr Une fois interpre te s, ces e le ments permettent d associer une valeur a la forme syntaxique du litte ral. 8 / 24 Noeuds blancs Les entite s (Rs) et les litte raux sont suffisants pour de crire un graphe, mais parfois il peut e tre pratique d utiliser des noeuds qui ne sont pas re fe rence s globalement : on les appelle des noeuds blancs. Ces noeuds blancs peuvent e tre vus comme des variables
Le modèle de données vocabulaire 9/24 10 / 24 Graphes multiples permet de structurer les triplets en les mettant dans di é r e n t s graphes, identifiés par des Rs. Un document qui décrit plusieurs graphes est appelé un Dataset Dans un dataset, il peut y avoir un graphe sans nom (le graphe par défaut) et plusieurs graphes nommés. Les vocabulaires Le modèle de graphe est très simple mais, dans la pratique, quels Rs faut-il utiliser? langage -schema (S) pour définir son propre vocabulaire, i.e. définir des Rs pour les ressources - sujets, prédicats et objets - dont on veut parler.! Un vocabulaire est une collection d R à l intérieur d un même espace de noms. l existe beaucoup de vocabulaires déjà définis : les utiliser! Si malgré tout on a défini un R (1) pour parler d un concept, et qu une autre personne a défini un autre R (2) pour ce même concept, on peut dire à l aide d un triplet que 1 est le même concept que 2. quelques exemples : FOAF pour des relations sociales, dublin core pour des documents, schema.org pour des moteurs de recherche,... 11 / 24 12 / 24 Sérialisation Pour échanger des données, on a besoin de sérialiser. l existe de nombreux formats de. N-Triples l existe plusieurs s sous la forme de triplets. La plus basique est la syntaxe N-triples, qui écrit chaque triplet sous la forme <R du sujet> <R du prédicat> <R de l objet ou littéral> Par exemple : <http://example.org/bob#me> <http://xmlns.com/foaf/0.1/knows> <http://example.org/alice#me>. <http://example.org/bob#me> <http://schema.org/birthdate> "1990-07-04"^^<http://www.w3.org/2001/XMLSchema#date>.
13 / 24 14 / 24 Turtle La syntaxe Turtle reprend celle des N-triples en y ajoutant des facilités syntaxiques pour rendre le code plus lisible : BASE <http://example.org/> PREFX foaf: <http://xmlns.com/foaf/0.1/> PREFX xsd: <http://www.w3.org/2001/xmlschema#> PREFX schema: <http://schema.org/> PREFX dcterms: <http://purl.org/dc/terms/> PREFX wd: <http://www.wikidata.org/entity/> <bob#me> a foaf:person ; foaf:knows <alice#me> ; schema:birthdate "1990-07-04"^^xsd:date ; foaf:topic_interest wd:q12418. wd:q12418 dcterms:title "Mona Lisa" ; dcterms:creator <http://dbpedia.org/resource/leonardo_da_vinci>. <http://data.europeana.eu/item/04802/243fa8618938f4117025f17a8b813c5f9aa4d619> dcterms:subject wd:q12418. 15 / 24 16 / 24 Représentation des noeuds blancs On utilise une ressource sans nom : PREFX lio: <http://purl.org/net/lio#> <http://dbpedia.org/resource/mona_lisa> lio:shows _:x. _:x a <http://dbpedia.org/resource/cypress>. l existe d autres manières d utiliser implicitement des noeuds blancs, on verra plus en détail la syntaxe Turtle avec le langage de requête SPARQL. TriG Extension de Turtle pour utiliser plusieurs graphes : BASE <http://example.org/> PREFX foaf: <http://xmlns.com/foaf/0.1/> PREFX... GRAPH <http://example.org/bob>{ <bob#me> a foaf:person ; foaf:knows <alice#me> ; schema:birthdate "1990-07-04"^^xsd:date ; foaf:topic_interest wd:q12418.} GRAPH <https://www.wikidata.org/wiki/special:entitydata/q12418> { wd:q12418 dcterms:title "Mona Lisa" ; dcterms:creator <http://dbpedia.org/resource/leonardo_da_vinci>. <http://data.europeana.eu/item/04802/243fa8618938f4117025f17a8b813c5f9aa4d619> dcterms:subject wd:q12418. } <http://example.org/bob> dcterms:publisher <http://example.org> ; dcterms:rights <http://creativecommons.org/licenses/by/3.0/>.
/XML 17 / 24 /XML 18 / 24 Sérialisation en XML Exemple norme /XML : syntaxe XML pour représenter un graphe. Element Description pour décrire une ressource attribut about pour le sujet, sous-élément pour la propriété, contenu du sous-élément pour la propriété (qui peut être parfois simplifié en attribut) on peut regrouper dans un même élément Description toutes les propriétés dont cette ressource est sujet. <?xml version="1.0" encoding="utf-8"?> <rdf: xmlns:dcterms="http://purl.org/dc/terms/" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:schema="http://schema.org/"> <rdf:description rdf:about="http://example.org/bob#me"> <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/person"/> <schema:birthdate rdf:datatype="http://www.w3.org/2001/xmlschema#date">1990-07-04</schema:birthdate> <foaf:knows rdf:resource="http://example.org/alice#me"/> <foaf:topic_interest rdf:resource="http://www.wikidata.org/entity/q12418"/> </rdf:description> <rdf:description rdf:about="http://www.wikidata.org/entity/q12418"> <dcterms:title>mona Lisa</dcterms:title> <dcterms:creator rdf:resource="http://dbpedia.org/resource/leonardo_da_vinci"/> </rdf:description> <rdf:description rdf:about="http://data.europeana.eu/item/04802/243fa8618938f4117025f17a8b813c5f9aa4d619"> <dcterms:subject rdf:resource="http://www.wikidata.org/entity/q12418"/> </rdf:description> </rdf:> réification 19 / 24 20 / 24 Réification En informatique, la réification consiste à transformer un concept en un objet informatique. Par exemple : langage orienté objet avec mécanisme de réflexion, on peut réifier une classe, qui devient instance d une (méta-)classe. En, la réification permet de considérer un triplet comme un noeud. Soit le graphe G 1 : <ex:un_sujet> <ex:une_propriete> <ex:un_objet>. Le graphe G 2 ci-dessous est une réification de G 1 : _:xxx rdf:type rdf:statement. _:xxx rdf:subject <ex:un_sujet>. _:xxx rdf:predicate <ex:une_propriete>. _:xxx rdf:object <ex:un_objet>. Collections En, une collection est une liste à la LSP : de type rdf:list, avecunpremierélémentrdf:first et une suite rdf:rest. Lalistevidealavaleurrdf:nil. Exemple : _:c1 rdf:first <ex:aaa>. _:c1 rdf:rest _:c2. _:c2 rdf:first <ex:bbb>. _:c2 rdf:rest rdf:nil. Une collection est une liste fermée : elle forme un groupe qui ne contient que les membres spécifiés lors de la déclaration de la collection.
21 / 24 22 / 24 Exemple de collection Les Containers ls permettent de décrire des groupes. Les choses contenues dans un container sont appelées membres du groupe. l existe 3 types de containers prédéfinis : rdf:bag : multi-ensemble de ressources ou litéraux rdf:seq :Séquencederessourcesoulittéraux(l ordreestimportant) rdf:alt :alternativesentreplusieursressourcesoulittéraux Pour indiquer qu une ressource est un container, on utilise la propriété rdf:type. On dit que les containers sont ouverts, i.e.il peut exister d autres membres du container que ceux indiqués par la description dont on dispose. conclusion 23 / 24 24 / 24 Exemple Conclusion Langage qui permet de définir des graphes sémantiques Ces données sémantiques sont destinées à des machines, via des AP et des langages de requêtes (cf SPARQL). On parle des ressources du web ; les identifiants sont des Rs. On peut utiliser des vocabulaires existants : nécessité de centraliser les informations sur ces vocabulaires, di usion de données utilisant ces vocabulaires.