PUNKTOKOMO

Mettre nos données en réseau – un démonstrateur. [3] Suivez le guide ! Le modèle de données

[ Lire le billet qui introduit cette série « Mettre nos données en réseau – un démonstrateur » ]

De quoi parle-t-on ?

Les corpus présents dans le démonstrateur, et ceux qui n’y sont pas ou pas encore, ne nous ont pas (à une exception près) été fournis directement en RDF. Il s’agissait en général de fichiers XML respectant (plus ou moins) des DTD ou modèles de données hétérogènes, qu’il nous a fallu convertir, en concevant nous-même un modèle général suffisamment souple pour les accueillir tous, et suffisamment bien structuré pour favoriser les manipulations de données ultérieures.

En effet, les données fournies sont généralement “à plat” : un fichier par article de revue ou chapitre de livre, regroupant des informations relevant de différents niveaux :

  • Certaines informations (titres, contributeurs, sujets, et relations d’appartenance) se répartissent entre article/chapitre, le livre, le numéro, le volume de la revue qui les contiennent, la revue elle-même ou la collection ;
  • D’autres sont, en plus, spécifiques à l’édition, soit imprimée, soit électronique (ISBN, ISSN, DOI)

Ces informations sont donc à la fois lacunaires et redondantes : redondantes car répétées sans nécessité dans tout ou partie des fichiers ; et lacunaires car ces informations peuvent manquer ou être corrompues dans certains d’entre eux.

Un peu de FRBR dans des métadonnées brutes

On est donc là dans une logique de “notice” traditionnelle, et certainement pas de données liées. Le travail de modélisation, puis de conversion, a donc consisté d’abord à distinguer chacun de ces niveaux et de qualifier leurs relations. En ajoutant un zeste de FRBR allégé, on obtient un bel arbre. Pour les livres, cela donne quelque chose comme ça :

ebooks_frbr_hub

On évite ainsi dans une large mesures les redondances et ambiguïtés des données natives. Notons qu’entre l’œuvre et la manifestation, on aurait pu introduire l’expression, si on avait eu affaire par exemple à des œuvres multilingues.

Pour construire cet arbre, on a puisé librement dans la panoplie des vocabulaires disponibles sur le web de données : en l’occurrence la version RDF de RDA, pour les relations oeuvres-manifestations, Dublin Core en RDF, pour la relation d’appartenance. Et pas mal d’autres pour garnir les branches de l’arbre, en général plutôt standards.

Quand rien n’était disponible pour décrire une donnée particulière, et seulement dans ce cas, nous avons créé notre propre vocabulaire. Celui-ci est lui même défini dans un fichier RDFS, chargé lui-même dans la base dans le graphe :

<http://hub.abes.fr/namespace/>

Un exemple de cuisine « maison » :

<http://hub.abes.fr/namespaces/springerB/bookVolumeNumber> a owl:DatatypeProperty ;
   rdfs:subPropertyOf bibo:volume ;
   rdfs:label "a pour numéro de volume"@fr, "has volume number"@en ;
   rdfs:comment "Numéro du volume dans sa collection"@fr, "Volume number of the book in the series"@en ;
   rdfs:domain rdac:C10001;
   rdfs:range rdfs:Literal.

On voulait ici simplement préciser qu’on parlait d’un numéro de volume dans une collection, et non pas des volumes qui regroupent souvent les numéros d’une revue. Précision absente de la propriété plus générique bibo:volume.

Pour les revues l’aspect général de l’arbre est similaire, les niveaux ne sont simplement pas les mêmes :

 

Mais ce n’est pas tout : certaines branches doivent elles-mêmes être ramifiées : c’est notamment le cas des auteurs/contributeurs et de leurs affiliations, qui ont fait l’objet d’une modélisation particulière :

On a emprunté ce fragment de modèle particulier à l’ontologie Vivo, sur laquelle repose l’outil du même nom, développée par des universités américaines et qui a pour objet de permettre de recenser et décrire l’ensemble de l’activité de recherche d’un établissement. Sans rentrer dans les détails, l’introduction d’une instance intermédiaire “Authorship” permet de localiser sur le graphe des informations qui ne peuvent qualifier directement, ni le document, ni le contributeur, mais sont “entre les deux” : par exemple, le rang d’apparition du nom dans la publication, ou la notion d’”auteur correspondant”.

Rappelons le cas particulier des publications du groupe Nature, dont les métadonnées ont été récupérées directement en RDF et qui a donc conservé le modèle spécifique à cet éditeur. A noter que Nature ne proposant plus de sparql endpoint, ce n’est qu’ici que vous pourrez parcourir ces métadonnées de leur catalogue.
Autour de ces corpus de livres et d’articles, gravitent également des référentiels décrits dans le billet précédent qui ont bien entendu fait l’objet de modélisations spécifiques (et plus simples) mais qui ne pourront pas être détaillés ici.

Mais à quoi ça ressemble, en vrai ?

Voici donc, pour finir, un exemple in extenso de fichier RDF en notation “turtle”, qui est en principe la plus lisible pour un humain. il s’agit des métadonnées d’un chapitre d’un recueil de conférences, accompagnées de celles du livre dans lequel il se trouve (à l’exclusion des autres chapitres).

@prefix bibo: <http://purl.org/ontology/bibo/> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix hub: <http://hub.abes.fr/namespace/> .
@prefix isbd: <http://iflastandards.info/ns/isbd/elements/> .
@prefix marcrel: <http://id.loc.gov/vocabulary/relators/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdac: <http://rdaregistry.info/Elements/c/> .
@prefix rdam: <http://rdaregistry.info/Elements/m/> .
@prefix rdaw: <http://rdaregistry.info/Elements/w/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix springerB: <http://hub.abes.fr/namespaces/springerB/> .
@prefix springerChapTypes: <http://hub.abes.fr/springerB/chapterType/>.
@prefix schema: <http://schema.org/>.
@prefix vcard: <http://www.w3.org/2006/vcard/ns#>.
@prefix vivo: <http://vivoweb.org/ontology/core#>.
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

##################### Chapitre #########################

#Chapitre niveau "Oeuvre"
<http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/chapter/7/w>
a bibo:Chapter, rdac:C10001 ; #type chapitre ET oeuvre (RDA C10001)
dcterms:title "Hide the Stack: Toward Usable Linked Data" ;
dcterms:subject <http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/kw/humancomputerinteraction>,
<http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/kw/informationvisualisation>,
<http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/kw/knowledgevisualisation>,
<http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/kw/linkeddata>,
<http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/kw/usableinterfaces>;
dcterms:language "en";
dcterms:abstract "The explosion in growth of the Web of Linked Data has provided, for the first time, a plethora of information in disparate locations, yet bound together by machine-readable, semantically typed relations. Utilisation of the Web of Data has been, until now, restricted to the members of the community, eating their own dogfood, so to speak. To the regular web user browsing Facebook and watching YouTube, this utility is yet to be realised. The primary factor inhibiting uptake is the usability of the Web of Data, where users are required to have prior knowledge of elements from the Semantic Web technology stack. Our solution to this problem is to hide the stack, allowing end users to browse the Web of Data, explore the information it contains, discover knowledge, and use Linked Data. We propose a template-based visualisation approach where information attributed to a given resource is rendered according to the rdf:type of the instance.";
rdaw:P10072 <http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/chapter/7/m/print>, #relation RDA de l'oeuvre vers ses manifetations ("raccourci" ignorant l'expresssion)
<http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/chapter/7/m/web>;

vivo:relatedBy <http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/chapter/7/authorship/1>, #Première contribution (Authorship)
<http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/chapter/7/authorship/2>, #Deuxieme contribution
<http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/chapter/7/authorship/3>; #Troisième contribution
hub:sequenceNumber "7";
hub:ChapterType <http://hub.abes.fr/springerB/chapterType/originalpaper>;
dcterms:isPartOf <http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/part/3>; # dans la partie 3 du livre
hub:isPartOfThisBook <http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/w>. # lien direct vrs le niveau du livre
#Partie 3 du livre
<http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/part/3> a bibo:BookSection;
dcterms:title "Linked Open Data Track";
hub:sequenceNumber "3";
dcterms:isPartOf <http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/w>. #lien vers le niveau du livre

#"Manifestation" imprimée du chapitre
<http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/chapter/7/m/print> a rdac:C10007, bibo:Chapter ; #type chapitre ET Manifestation (RDA C10007)
isbd:P1003 <http://iflastandards.info/ns/isbd/terms/mediatype/T1010>; #"Type de média" ISBD : pas de médiation = ici, imprimé (skos:prefLabel="unmediated")
bibo:pageStart "93";
bibo:pageEnd "107";
dcterms:dateCopyrighted "2011-01-01T00:00:00+01:00". #ici la date de copyright présente concerne l'imprimé. Il pourrait y avoir une date de copyright pour la vesion en ligne. A noter qu'en bonne pratique FRBR, la date de copyright se rapporte ouvent à une expression.
#"Manifestation" web du chapitre
<http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/chapter/7/m/web> a rdac:C10007, bibo:Chapter ; #type chapitre ET Manifestation (RDA C10007)
isbd:P1003 <http://iflastandards.info/ns/isbd/terms/mediatype/T1002>; ##"Type de média" ISBD : électronique (skos:prefLabel="electronic")
bibo:doi "10.1007/978-3-642-21034-1_7". #doi du chapitre

#Contributions (Authorship)
<http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/chapter/7/authorship/1> a vivo:Authorship; #contribution 1
vivo:rank "1";
vcard:hasRole marcrel:aut;
vivo:relates <http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/dadzieabasah>; #auteur 1
hub:hasAuthorshipAffiliation <http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/chapter/7/affiliation/Aff23>. #Affiliation associée à l'auteur 1
<http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/chapter/7/authorship/2> a vivo:Authorship;
vivo:rank "2";
vcard:hasRole marcrel:aut;
vivo:relates <http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/rowematthew>; #auteur 2 #contribution 2
hub:hasAuthorshipAffiliation <http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/chapter/7/affiliation/Aff24>. #Affiliation associée à l'auteur 2
<http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/chapter/7/authorship/3> a vivo:Authorship; #contribution 3
vivo:rank "3";
vcard:hasRole marcrel:aut;
vivo:relates <http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/petrellidaniela>; #auteur 3
hub:hasAuthorshipAffiliation <http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/chapter/7/affiliation/Aff25>. #Affiliation associée à l'auteur 3

#Sujets (du chapitre)
<http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/kw/humancomputerinteraction> a skos:Concept; #URI en attente de regroupement et si possible d'alignement vers un réf...
  skos:label "Human-Computer Interaction".
<http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/kw/informationvisualisation> a skos:Concept; #
  skos:label "Information Visualisation".
<http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/kw/knowledgevisualisation> a skos:Concept;
  skos:label "Knowledge Visualisation".
<http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/kw/linkeddata> a   skos:Concept;
  skos:label "Linked Data".
<http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/kw/usableinterfaces> a skos:Concept;
  skos:label "Usable Interfaces".

##################### Contributeurs #########################
#NB : on aurait pu ajouter un lien direct org:memberOf avec l'affiliation, qui est rendu ici via l'"authorship"
<http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/dadzieabasah> a foaf:Person;
foaf:givenName "Aba-Sah" ; foaf:familyName "Dadzie" ; foaf:mbox "a.dadzie@dcs.shef.ac.uk".
<http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/rowematthew> a foaf:Person;
foaf:givenName "Matthew" ; foaf:familyName "Rowe" ; foaf:mbox "m.c.rowe@open.ac.uk".
<http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/petrellidaniela> a foaf:Person;
foaf:givenName "Daniela" ; foaf:familyName "Petrelli" ; foaf:mbox "d.petrelli@shu.ac.uk".

#################### Affiliations (organisations) ##########################

<http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/chapter/7/affiliation/Aff23>
a foaf:Organization;
vcard:organization-name "The University of Sheffield" ;
vcard:organization-unit "OAK Group, Dept. of Computer Science";
vcard:hasAddress <http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/chapter/7/affiliation/Aff23/address>. #URI de l'adresse

<http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/chapter/7/affiliation/Aff23/address> a vcard:Address; #Elements de l'adresse (pays seul)
vcard:country-name "UK".

<http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/chapter/7/affiliation/Aff24>
a foaf:Organization;
vcard:organization-name "The Open University" ;
vcard:organization-unit "Knowledge Media Institute";
vcard:hasAddress <http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/chapter/7/affiliation/Aff24/address>. #URI de l'adresse

<http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/chapter/7/affiliation/Aff24/address> a vcard:Address; #Elements de l'adresse : ville, pays
vcard:locality "Milton Keynes";
vcard:country-name "UK".

<http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/chapter/7/affiliation/Aff25>
a foaf:Organization;
vcard:organization-name "Sheffield Hallam University" ;
vcard:organization-unit "Art & Design Research Centre";
vcard:hasAddress <http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/chapter/7/affiliation/Aff25/address>. #URI de l'adresse

<http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/chapter/7/affiliation/Aff25/address> a vcard:Address;
vcard:country-name "UK".

#################### Fait partie de ce livre ################

<http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/w>
a bibo:Book, rdac:C10001;
dcterms:title "The Semantic Web: Research and Applications";
hub:subTitle "8th Extended Semantic Web Conference, ESWC 2011, Heraklion, Crete, Greece, May 29-June 2, 2011, Proceedings, Part I";
dcterms:language "en";
dcterms:publisher <http://www.idref.fr/032075006/id> ; # Springer dans IdRef
rdaw:P10072 <http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/m/print>,
<http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/m/web>;
dc:subject "Information Systems and Communication Service"@en, "Information Systems Applications (incl.Internet)"@en;
vivo:relatedBy
<http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/authorship/1>, # Ici, l'édition scientifique du livre... pas développée ici
<http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/authorship/2>, #
<http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/authorship/3>, #
<http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/authorship/4>, #
<http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/authorship/5>, #
<http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/authorship/6>, #
<http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/authorship/7>; #
dcterms:subject <http://www.idref.fr/027234541/id> , #Rameau / IdRef : Intelligence artificielle (niveau du livre)
  <http://www.idref.fr/027244105/id> , #Réseaux d'ordinateurs
  <http://www.idref.fr/02886431X/id> , #Actes de congrès
  <http://www.idref.fr/027234886/id> , #Informatique 
  <http://www.idref.fr/076053547/id> , #Web sémantique
  <http://www.idref.fr/113379471/id> . #Interfaces utilisateur (informatique)
########### labels (uniquement) des mots Rameau ################
hub:classification <http://hub.abes.fr/springer/ebooks/978-3-642-21034-1/concept/I> ,
  <http://hub.abes.fr/springer/ebooks/978-3-642-21034-1/concept/I13022> ,
  <http://hub.abes.fr/springer/ebooks/978-3-642-21034-1/concept/I18008> ,
  <http://hub.abes.fr/springer/ebooks/978-3-642-21034-1/concept/I18024> ,
  <http://hub.abes.fr/springer/ebooks/978-3-642-21034-1/concept/I18040> ,
  <http://hub.abes.fr/springer/ebooks/978-3-642-21034-1/concept/I18067> ,
  <http://hub.abes.fr/springer/ebooks/978-3-642-21034-1/concept/I21017> ;
## Sujets du livre : concepts Springer ##
<http://hub.abes.fr/springer/ebooks/978-3-642-21034-1/concept/I> #URI du concept "contextuelle" au livre
  skos:label "Computer Science@en";
  hub:priority "0"; #importance du concept dans le livre (rang 0 = principal)
  hub:classificationCode "I";
  skos:exactMatch <http://hub.abes.fr/springer/concept/I>. #URI du concept
<http://hub.abes.fr/springer/ebooks/978-3-642-21034-1/concept/I18008>
  skos:label "Information Systems and Communication Service"@en;
  hub:priority "1";
  hub:classificationCode "I18008";
  skos:exactMatch <http://hub.abes.fr/springer/concept/I18008>. 
<http://hub.abes.fr/springer/ebooks/978-3-642-21034-1/concept/I21017>
  skos:label "Artificial Intelligence (incl. Robotics)"@en;  
  hub:priority "2";
  hub:classificationCode "I21017";
  skos:exactMatch <http://hub.abes.fr/springer/concept/I21017>.
<http://hub.abes.fr/springer/ebooks/978-3-642-21034-1/concept/I18040>
  skos:label "Information Systems Applications (incl.Internet)"@en;
  hub:priority "3";
  hub:classificationCode "I18040";
  skos:exactMatch <http://hub.abes.fr/springer/concept/I18040>.
<http://hub.abes.fr/springer/ebooks/978-3-642-21034-1/concept/I13022> 
  skos:label "Computer Communication Networks"@en;
  hub:priority "4";
  hub:classificationCode "I13022";
  skos:exactMatch <http://hub.abes.fr/springer/concept/I13022> .
<http://hub.abes.fr/springer/ebooks/978-3-642-21034-1/concept/I18024> 
  skos:label "Database Management"@en;
  hub:priority "5";
  hub:classificationCode "I18024";
  skos:exactMatch <http://hub.abes.fr/springer/concept/I18024>.
<http://hub.abes.fr/springer/ebooks/978-3-642-21034-1/concept/I18067>
  skos:label "User Interfaces and Human Computer Interaction"@en;
  hub:priority "6";
  hub:classificationCode "I18067";
  skos:exactMatch <http://hub.abes.fr/springer/concept/I18067>.
###################################
springerB:bookVolumeNumber "6643";
springerB:hasSubjectCollection <http://hub.abes.fr/springer/ebooks/978-3-642-21034-1/concept/SUCO11645>;
dcterms:isPartOf <http://hub.abes.fr/springerB/series/558/w>. #Collection
#"Manifestation" imprimée du livre
<http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/m/print> a rdac:C10007, bibo:Book;
isbd:P1003 <http://iflastandards.info/ns/isbd/terms/mediatype/T1010>; #"Type de média" ISBD : pas de médiation = ici, imprimé (skos:prefLabel="unmediated")
bibo:isbn "978-3-642-21033-4"; #ISBN imprimé
dcterms:dateCopyrighted "2011-01-01T00:00:00+01:00";
hub:hasSudocProxy <http://www.sudoc.fr/153593385/id>.
#"Manifestation" web du livre
<http://hub.abes.fr/springerB/ebook/978-3-642-21034-1/m/web> a rdac:C10007, bibo:Book;
isbd:P1003 <http://iflastandards.info/ns/isbd/terms/mediatype/T1002>; ##"Type de média" ISBD : électronique (skos:prefLabel="electronic")
bibo:isbn "978-3-642-21034-1"; #ISBN électronique
bibo:doi "10.1007/978-3-642-21034-1"; #doi du livre
hub:hasSudocProxy <http://www.sudoc.fr/153860065/id>.
######################### Collection #######################
<http://hub.abes.fr/springerB/series/558/w> a bibo:Series, rdac:C10001 ;
dcterms:title "Lecture Notes in Artificial Intelligence"@en.
## (...)

Reconnaissons que ça peut paraître obscur. D’autant plus que, répétons-le, ce modèle a été initialement conçu à des fins internes de manipulation et d’enrichissement des données, et non de support à une interface de consultation publique.

Mais pas de panique ! Il est aussi possible d’explorer ce(s) document(s) à partir d’ici. Dans cette interface navigation associée à Virtuoso, les données apparaissent sous un jour beaucoup plus attrayant voire intuitif.

Même dans son état actuel, encore sommaire, elle donne un aperçu concret de la puissance des graphes et des triplets. Il est en effet remarquable qu’une bonne partie de sa configuration (liens, champs et libellés affichés) provient des données elles-mêmes, sans paramétrage particulier. Les données prennent ainsi le pas sur l’outil, en indiquant elles-mêmes comment elles doivent être utilisées.

Quitter la version mobile