spécification : lier à Wikipedia des données textuelles

21 views
Skip to first unread message

Jean-Marc Vanel

unread,
Dec 16, 2013, 6:42:34 AM12/16/13
to deduct...@googlegroups.com

Bonjour


Voici un cas typique où l'on a des données ouvertes , mais pas liées ( c à d. pas LOD, Linked Open Data ). il n'y a donc pas les cinq étoiles de Tim ; il n'y en a que 4. Supposons qu'on a des données non liées comme ceci :

:s1 a x:Specimen;
    x:name "Abies grandis";
    x:genus "Abies";
    x:location "lon-lat 1,45" .

Ceci représente les données d'une collection de plantes dans un jardin. Ce serait le même principe pour des collection de timbres, MP3, capsules de bière, ou même un catalogue de vente.

Les champs name et genus, en gras, ne sont pas liés à un spécimen particulier, mais à l'espèce et au genre botaniques de la plante en question.

Ce qu'on veut, c'est ajouter cette information :

:s1 a dbpedia:Plant ; dc:subject dbpedia:Abies_grandis .

Commentaires:

  1. On a transformé la chaîne de caractéres en l'URI dbpedia:Abies_grandis. Il se trouve que cette URI existe bel et bien dans dbPedia; mais même autrement on a le droit de forger une URI dans un domaine Internet qu'on ne gère pas. En fait dans le cas particulier de Wikipedia, on a le droit de créer une nouvelle page.
  2. comme, en 5 mn, je n'ai pas été capable de trouver une ontologie pour les collections biologiques vivantes, j'ai utilisé dc:subject pour relier la plante à l'espèce, à défaut d'une propriété plus explicite. J'ai cherché "ontology for living plant collections specimen species genus", et trouvé ceci :

    http://bco.googlecode.com/git/src/ontology/bco.owl

    http://en.wikipedia.org/wiki/PlantCollections

  3. pour le genre "Abies", il s'agit là d'une information redondante, puisque le contenu de l'URI dbpedia:Abies_grandis nous indique le genre par ce triplet:
    dbpedia:Abies_grandis dbpedia-owl:genus dbpedia:Fir .
  4. on a transformé
    a x:Specimen

    en

    a dbpedia:Plant

    en effet, on suppose que les données de départ proviennent d'une table, où toutes les lignes ont le même type. Et on utilise librement l'URI dbpedia:Plant comme une classe OWL


Comment implémenter cet ajout d' information ?

Bien sûr on peut le faire en Java ou Scala via une API RDF, mais on peut aussi le faire par règles.

{ ?S a x:Specimen; x:name ?N
} => {
  ?S a dbpedia:Plant ; dc:subject ?SPECIES . # n'est la solution !
}.

Cependant la manière de calculer ?SPECIES à partir de ?N par les primitives de N3, Euler et CWM n'est pas très agréable à lire, il vaut mieux sous-traiter ça à un langage impératif, et réutiliser la fonction qui existe déjà dans EulerGUI :

{ ?S a x:Specimen; x:name ?N
} => {
  ?S a dbpedia:Plant ; dc:subject {
      java:eulergui-gui-util-WikipediaCompletion javam:makeDBPediaURI ( ?N ) .
  }.
}.

Sauf que cette manière de récupérer le résultat d'une fonction Java pour la réinjecter dans un graphe RDF n'est pas implémentée aujourd'hui. Mais vous voyez l'idée.


--
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 ; chat: irc://irc.freenode.net#eulergui

Lynda Temal

unread,
Dec 17, 2013, 7:58:52 AM12/17/13
to deduct...@googlegroups.com
Bonjour Jean-Marc,

ça me parait intéressant de relier les données. Il faut accorder une grande importance de les relier aux types qui leurs correspondent sémantiquement.

Juste un petit commentaire.
Je ne crois pas que dc:subject soit la relation la plus appropriée pour définir le genus.

j'ai trouvé cela dbpprop:genus dans la page de http://dbpedia.org/page/Abies_grandis
c'est peut être plus approprié.

Une autre question de modélisation concernant le type spécimen.
Ce type ne peut pas subsumer des sous types, il ne peut contenir que des instances qui représentent leur espèce.
selon la définition de spécimen " Individu représentatif de son espèce".
ce type instancie la liste des spécimen  existants.
il ne peut donc pas contenir toutes les instances de toutes les espèces.

Moi j'aurai fait comme suit :

Abies_grandis a rdf:type.
x:name "Abies grandis";
dbpprop:genus "Abies".

Abies_grandis a dbpedia:Plant;

:S1 a Abies_grandis;
 x:location "lon-lat 1,45" .

Je ne sais pas si c'est pertinent pour toi.

Amicalement,
Lynda



--
 
---
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 plus d'options, visitez le site https://groups.google.com/groups/opt_out .

Jean-Marc Vanel

unread,
Jan 13, 2014, 5:11:07 AM1/13/14
to deduct...@googlegroups.com
J'ai découvert le lookup dbpedia (consultation de table):

qui répond exactement à la question posée d'obtenir une URI dbPedia à partir d'une chaîne de caractères telle que:
"Abies grandis" (espèce botanique)
ou 
"Love in Vain" (chanson) ,
etc.

Cette API renvoie du XML, par exemple:

On n'a plus besoin de s'occuper des majuscules qui sont traitées différemment suivant les domaines (par ex. musique ou botanique).

Et grâce au paramètre QueryClass (facultatif), on peut restreindre la recherche à une classe d'objets.
Voici un exmple où l'on demande "daisy" (marguerite) en tant que "plant":

On obtient 5 marguerites, classées par popularité. En premier vient la famille au sens botanique, ce qui est exactement ce qu'on veut:
En fait dans cet exempe, si on omet paramètre QueryClass, on n'obtient pas plus de résultats.

Jean-Marc Vanel

unread,
Jan 13, 2014, 5:25:16 AM1/13/14
to deduct...@googlegroups.com


Le mardi 17 décembre 2013 13:58:52 UTC+1, Lynda Temal a écrit :
Bonjour Jean-Marc,

ça me parait intéressant de relier les données. Il faut accorder une grande importance de les relier aux types qui leurs correspondent sémantiquement.

Juste un petit commentaire.
Je ne crois pas que dc:subject soit la relation la plus appropriée pour définir le genus.

 dc:subject était envisagé pour relier une instance précise (une plante bien vivante) à l'espèce (species).
Quand au genre (genus), c'est une catégorie taxonomique supérieure à l'espèce, et cette information est totalement liée à l'espèce.

C'est vrai qu'on peut utiliser rdfs:type (c'est à dire "a")  pour relier une instance précise à l'espèce.
Ce qui m'a fait écarter cela, c'est le fait que cette relation est bien particulière, et représente la notion d'espèce, assez subtile dans les détails (wikipedia: Espèce # Problématiques), et que c'est le résultat d'une identification (détermination de l'espèce) qui peut être fausse ou contestée.
De plus, mélanger le lien vers l'espèce parmi toutes relations rdfs:type , posées ou inférées, ne facilite pas les traitements.
Il faudrait voir ce que font les ontologies pour les collections botaniques, si on peut en trouver.
Reply all
Reply to author
Forward
0 new messages