Site icon PUNKTOKOMO

Mettre nos données en réseau – un démonstrateur. [4d] Le même auteur dans IdRef, VIAF, HAL, Persée, etc.

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

La production d’un chercheur est dispersée entre différentes bases de publication ou de référencement. Les alignements entre les différents identifiants du même auteur permettent de rassembler toute cette production, d’en faire la liste comme si toutes les références étaient dans la même base.

C’est le cas de ce chercheur de Paris 4 : Mounir Arbach. Il est présent dans l’annuaire de Paris 4, dans HAL et dans Persée. Nos alignements ont permis de faire converger toutes ces mentions vers le même identifiant IdRef – et du coup, vers le même identifiant VIAF ou ISNI. Voici ce que sait notre base RDF :

<http://hub.abes.fr/paris4/person/qe_paris4_28>  owl:sameAs    <http://www.idref.fr/060160470/id> .  owl:sameAs    <http://www.idref.fr/060160470/id> .

<https://hal.archives-ouvertes.fr/resource/author/152982>     owl:sameAs    <http://www.idref.fr/060160470/id> .

<http://data.persee.fr/person/141820#Person>  owl:sameAs    <http://www.idref.fr/060160470/id> .

<http://viaf.org/viaf/7406574>  owl:sameAs    <http://isni.org/isni/0000000066589445> .
<http://viaf.org/viaf/74065742>  owl:sameAs    <http://www.idref.fr/060160470/id> .
<http://viaf.org/viaf/74065742>  owl:sameAs    <http://id.loc.gov/authorities/names/nr2002026561> .

On peut noter que deux identifiants HAL sont alignés vers le même identifiant IdRef. C’est donc qu’on a un doublon dans HAL (sans doute deux formes-auteurs différentes pour le même auteur).
Il faudrait ajouter que chacun des deux identifiants HAL est lié à plusieurs autres identifiants “locaux” HAL, qui sont eux directement liés à des documents HAL :

<https://hal.archives-ouvertes.fr/resource/document/halshs-00581439/person/1>     owl:sameAs    <https://hal.archives-ouvertes.fr/resource/author/152982> .
<https://hal.archives-ouvertes.fr/resource/document/halshs-00670393/person/1>     owl:sameAs    <https://hal.archives-ouvertes.fr/resource/author/152982> .
etc.

Il est donc désormais possible d’interroger les données HAL avec un identifiant IdRef. La requête suivante demande les documents HAL dont http://www.idref.fr/060160470/id est l’auteur :

PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX dcterms: <http://purl.org/dc/terms/>

select ?titre

where {

?formeauteurhal owl:sameAs <http://www.idref.fr/060160470/id>.

?idauteurhal owl:sameAs ?formeauteurhal.

?authorship    <http://vivoweb.org/ontology/core#relates>    ?idauteurhal .

?dochal    <http://vivoweb.org/ontology/core#relatedBy> ?authorship .

?dochal dcterms:title ?titre

}

On peut faire plus court :

DEFINE input:same-as "yes"

PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX dcterms: <http://purl.org/dc/terms/>

select ?titre

where {

?authorship    <http://vivoweb.org/ontology/core#relates>    <http://www.idref.fr/060160470/id> .

?dochal    <http://vivoweb.org/ontology/core#relatedBy> ?authorship .

?dochal dcterms:title ?titre

}

En effet, en ajoutant DEFINE input:same-as « yes » en tête de la requête, on demande à notre base RDF de raisonner, en l’occurrence de tirer toutes les conséquences logiques des alignements au moyen de owl:sameAs. C’est simple : si la base sait que X=Y et que Y est l’auteur du doc D, alors la base peut en déduire ce fait : X est l’auteur de D. C’est simple, mais c’est surtout logique. Dans notre exemple, la base va tester notre requête en substituant à http://www.idref.fr/060160470/id tous les autres identifiants qui sont alignés avec lui, y compris les identifiants HAL

D’une manière générale, il est possible d’écrire une requête qui, pour chaque identifiant IdRef, liste le ou les formes-auteurs HAL correspondantes :

select ?idref group_concat(?auteurccsd , ', ')

from <http://hub.abes.fr/ccsd/docs/paris4/align/idref>

where {

?auteurccsd owl:sameAs ?idref.

}

GROUP BY ?idref

Enfin, la requête suivante liste les auteurs de l’annuaire de Paris 4 et mentionne, s’il existe, l’identifiant correspondant dans IdRef, HAL ou Persée :

select *
where {

Graph <http://hub.abes.fr/paris4/labos/auteurs> {
?auteurp4 a foaf:Person
}

optional {
Graph <http://hub.abes.fr/paris4/labos/auteurs/align/idref> {
?auteurp4 owl:sameAs ?idref.

optional {
Graph <http://hub.abes.fr/ccsd/docs/paris4/align/idref> {
?auteurccsd owl:sameAs ?idref.
}
}

optional {
Graph <http://hub.abes.fr/persee/auteurs/align/idref> {
?auteurpersee owl:sameAs ?idref.
}
}
}
}
} LIMIT 1000
Quitter la version mobile