transition-bibliographique / poc-fne

Preuve de concept basée sur Wikibase pour le "Fichier National d'Entités" (Abes/BNF). Projet réalisé en 2019.
http://www.abes.fr/Autorites-et-referentiels/Projet-FNE-Fichier-National-d-Entites
4 stars 1 forks source link

Faire un Shex correspondant aux specs relatives à une personne #209

Open benbober opened 4 years ago

benbober commented 4 years ago

Les spécs du Shex sont les suivantes : Une personne :

La date de décès doit être antérieure à la date de naissance

Il doit être possible de confronter cette Shex avec les données chargées dans la wikibase du POC. Le ticket est clos lorsque la Shex « Personne » est chargée dans la Wikibase du POC et qu’au niveau de chaque page d’entité on peut en contrôler la validité de la description.

gotnc commented 4 years ago

Comme discuté en réunion hier, il n'est pas nécessaire de créer un script pour le chargement, le modèle peut être créé dans la WB ABES par copier coller. En revanche, nous serions intéressés par une investigation de la manière dont on pourrait appliquer ce modèle à nos données chargées.

jum-s commented 4 years ago

Un schéma a été créé, que je copie ici à des fins de sauvegarde :

# Schema correspondant aux spécifications relatives à une personne
# source : https://github.com/abes-esr/poc-fne/issues/209

PREFIX fnet: <https://poc-fne.abes.fr/prop/direct/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

start = @<personne>

<personne> {
    #DOIT avoir une propriété « nom »
    fnet:P34 LITERAL ;
    #PEUT avoir une propriété « Identifiant ISNI »
    fnet:P1 xsd:integer* ;
    #PEUT avoir une propriété « prénom »
    fnet:P8 LITERAL* ;
    #PEUT avoir une propriété « date de naissance »
    fnet:P35 xsd:datetime* ;
    #PEUT avoir une propriété « date de décès »
    fnet:P10 xsd:datetime* ;
    #PEUT avoir une propriété « Activité »
    fnet:P12 LITERAL* ;
}
jum-s commented 4 years ago

Ce commentaire à pour but de documenter l'exploration de la spécification "La date de décès doit être antérieure à la date de naissance", toutefois la mise en œuvre dans le cadre du POC demande trop de temps.

Cette spéfication à son issue dans le language Shex lui-même.

Il est possible d'étendre les fonctionnalités de Shex grâce aux Semantic Actions, qui permettrait de comparer des dates, autre doc. Néanmoins l'interprétation de ces actions sémantiques doit être faite à partir du language utilisé par l'outils Shex en question (js: pour shex.js, scala: pour Wikishape etc)

D'après les exemples de la documentation officielle, il serait donc possible de valider des dates. Néanmoins cette extensibilité des fonctionnalités des EntitySchema reste à explorer. Les préfixes nécessaires js: ou sparql: ne sont actuellement pas reconnus nativement par Wikibase et n’apparaissent pas non plus dans les schémas publiés sur Wikidata.

Il est à rappeler que les entitySchema ne sont présents dans Wikidata que depuis moins de 6 mois, la veille quant à la possibilité d'étendre la portabilité de Shex sur WIkibase vers d'autres languages tel que décrit ci-dessus sera donc nécessaire pour pouvoir remplir cette spécification.

jum-s commented 4 years ago

Ce commentaire à pour but de documenter l'exploration de la spécification "Il doit être possible de confronter cette Shex avec les données". La mise en place sur le serveur de production d'un validateur de schéma est nécessaire, puisque l'URL https://poc-fne-query.abes.fr/ n'est pas accessible par tools.wmflabs.org (qui déploie actuellement shex-simple)

Cette mise en place nécessite une plus large réflexion que ce ticket notamment pour sélectionner l'outil le plus approprié : ShEx2 Simple Online Validator, PyShEx, WikiShape mais aussi le déploiement de l'outil en lui-même.

Une fois l'outil mis en place, il est à noter que la configuration devra s'effectuer avec la variable wgEntitySchemaShExSimpleUrl, documentée dans ce ticket. Le fichier wikibase/1.33/bundle/LocalSettings.php.poc-fne.template devra contenir la ligne suivante :

${DOLLAR}wgEntitySchemaShExSimpleUrl = 'https://tools.wmflabs.org/shex-simple/wikidata/packages/shex-webapp/doc/shex-simple.html?data=Endpoint:https://poc-fne-query.abes.fr/proxy/wdqs/bigdata/namespace/wdq/sparql&hideData&manifest=[]&textMapIsSparqlQuery';

ce qui permettra notamment de faire apparaître le lien "check entities against this Schema" sur chaque page d'un entitySchema.