Open benbober opened 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.
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* ;
}
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.
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.
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.