sparna-git / sparnatural-rico-1.0

A Sparnatural configuration and demo for Records In Contexts 1.0 data
0 stars 0 forks source link

Pouvoir paramètrer un sparqlString pour dire "cette classe SAUF ceux qui ont documentaryFormType = X ou Y" #2

Open tfrancart opened 7 months ago

tfrancart commented 7 months ago

On veut utiliser un MINUS dans le sparqlString

  ?x a ?type_i MINUS { ?x rico:documentaryFormType ?dft VALUES ?dft { X Y } }
tfrancart commented 7 months ago

C'est implémenté dans https://github.com/sparna-git/Sparnatural/issues/559

J'ai mis à jour Sparnatural ici et j'ai modifié le sparqlString de Archives:

<https://www.ica.org/standards/RiC/ontology#RecordResource> MINUS {$this <https://www.ica.org/standards/RiC/ontology#hasDocumentaryFormType> ?dfp VALUES ?dfp { <https://www.ica.org/standards/RiC/ontology#FOO> <https://www.ica.org/standards/RiC/ontology#BAR> } }

Ca marche, @florenceclavaud il faudrait que tu ajustes les valeurs FOO et BAR dans ce paramètre

florenceclavaud commented 7 months ago

Super ! merci beaucoup @tfrancart. Je m'en occupe bientôt.

florenceclavaud commented 6 months ago

Hello @tfrancart, j'ai modifié la config et donc écrit ceci dans le sparqlString: "<https://www.ica.org/standards/RiC/ontology#RecordResource> MINUS {$this <https://www.ica.org/standards/RiC/ontology#hasDocumentaryFormType> ?dfp VALUES ?dfp { <https://www.ica.org/standards/RiC/vocabularies/documentaryFormTypes#AuthorityRecord> <https://www.ica.org/standards/RiC/vocabularies/documentaryFormTypes#FindingAid> } }"

Mais cela ne fonctionne pas. Si je lance la requête suivante:

screenshot_requeteMotInventaire

J'obtiens 4 résultats, mais le premier ne devrait pas sortir (il s'agit d'un Record de type Finding Aid, http://data.archives-nationales.culture.gouv.fr/record/003500). La requête SPARQL générée est la suivante :

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT DISTINCT ?Archives_1 ?Archives_1_label ?Intitule_2 WHERE {
  ?Archives_1 rdf:type <https://www.ica.org/standards/RiC/ontology#RecordResource>.
  MINUS {
    ?this <https://www.ica.org/standards/RiC/ontology#hasDocumentaryFormType> ?dfp.
    VALUES ?dfp {
      <https://www.ica.org/standards/RiC/vocabularies/documentaryFormTypes#AuthorityRecord>
      <https://www.ica.org/standards/RiC/vocabularies/documentaryFormTypes#FindingAid>
    }
  }
  OPTIONAL { ?Archives_1 <https://www.ica.org/standards/RiC/ontology#title> ?Archives_1_label. }
  ?Archives_1 <https://www.ica.org/standards/RiC/ontology#title> ?Intitule_2.
  FILTER(REGEX(STR(?Intitule_2), "inventaire", "i"))
}
LIMIT 1000

Le problème doit venir de la variable ?this; il faudrait pouvoir la remplacer par ?Archives_1, ou vice-versa, non ?

tfrancart commented 6 months ago

Merci Florence, effectivement il y avait un problème, mais je ne sais pas dire d'où il venait. J'ai mis à jour la librairie Sparnatural sur le démonstrateur, avec la dernière version, et la requête générée est bonne maintenant. Il n'y a rien à modifier dans ta config, qui est correcte.

florenceclavaud commented 6 months ago

merci @tfrancart. Maintenant ça marche !

Ceci dit j'ai pas mal d'autres soucis avec ma config ; pour l'instant j'ai avancé en local, mais peu de choses marchent comme je le souhaite :-(. Possible que je passe à côté d'un truc évident, mais tout de même, je cherche depuis un bon moment... je reviens ici dès que possible pour en parler - pas avant la semaine prochaine ; ou encore on en parle en réunion bientôt.

tfrancart commented 6 months ago

Des bugs sont possibles dans cette évolution qui est assez fine. Nous ferons le point ensemble la prochaine fois et tu me montreras.