Bonjour,
Lorsque que je souhaite générer un flux, j’indique que je souhaite « Tous les types de point d’intérêt » à ce moment la, en haut à droite j’ai le chiffre (aujourd’hui) à 405 629; je sélectionne tout.
Je continu, je sélectionne Toutes les régions, j’ai le même chiffre, 405 629.
Je générer le fichier, je le met dans blazegraph.
Si, je fait ceci:
rdfs:label ?nom. ## et a pour nom ?nom.
FILTER langMatches( lang(?nom), « fr » ) ## en français
Filter LangMatches( Lang(?descri), « fr »)
j’ai le résultat à environs 284 000. Il en manque 100 000.
Pourquoi ?
il y a des descriptions sans langue « fr » ?
ou le nb total de poi est de 284 000 ?
merci
Sur un jeu de données d’il y a un mois - je crois - je trouve 37382 POIs sans description fr pour 327948 POIs.
c’est en utilisant un parser; je ne comprend pas pourquoi je perd autant de donnée (depuis 1 semaine)
et la je me rend compte que c’est en cherchant les descriptions « fr » que je perd beaucoup de donnée. C’est donc un pb de qualité, je suppose.
Je n’ai pas le chiffre exact mais j’en perd presque 1/3 (environ 120 000). Après, peut etre qu’il y a un pb sur les nouveau POI à voir je ne sais pas mais bon… Je ne trouve pas logique de trouver des résultats sans description « fr »…
j’ai fait un test, j’ai généré un flux et j’ai coché ‹ langue fr ›
Aujourd’hui à 20:00 RDF-XML 3.68Go 404422
donc 404422 POI… mais alors comment cela est possible ? Comment fonctionne ce filtre ? …
Donc je viens de faire le test suivant:
j’ai généré un flux en cochant 'langue français".
Lorsque j’affiche tout les poi, j’'ai 409807. Si je met un filter « fr »
( [?poi a :PointOfInterest;
:isLocatedAt ?place;
rdfs:label ?nom. ## et a pour nom ?nom.
FILTER langMatches( lang(?nom), « fr » ) ## en français
Filter LangMatches( Lang(?descri), « fr ») ])
dans ma requête graphql, avec le même flux, j’ai 287822. Il y a donc 121 985 poi, qui ont visiblement une description soit à null soit la description n’est pas rattaché à la langue fr
je pense donc qu’il y a un bien un pb de qualité
Bonjour @Olivier4477
La description du POI n’est pas obligatoirement renseignée.
Bien à vous
Jean François
ok mais pourriez vous m’aider à faire une requête sparql qui;
filter les description en fr (descri_fr) + les nulls + les true
filter les description en en (descri_en) + les nulls + les true ?
par avance, merci
Nous ne pouvons aider tous les ré-utilisateurs à générer les requêtes Sparql sur mesure. Voici cependant un exemple en select qui j’espère pourra vous aider.
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX : <https://www.datatourisme.gouv.fr/ontology/core#>
PREFIX schema: <http://schema.org/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?uri ?label ?descriptionCourte WHERE {
?uri rdf:type <https://www.datatourisme.gouv.fr/ontology/core#PointOfInterest>.
?uri rdfs:label ?label.
FILTER langMatches( lang(?label), "fr" )
{
optional {
?uri :hasDescription ?description.
?description :shortDescription ?descriptionCourte.
FILTER langMatches( lang(?descriptionCourte), "fr" )
}
}
}
Il vous faudra aussi lire la documentation sur l’ontologie (datatourisme / ontology · GitLab) afin de comprendre comment accéder aux différentes propriétés disponibles.
Sparql est relativement simple à utiliser
le filter langMatches affiche uniquement les POI qui ont une description. Si elle est null ou « true » je perd 121 000 poi…; Je sais tres bien que vous ne pouvais pas aider tout le monde sur mesure; mais je pense que cela aidera d’autre qui ne sont pas né dans le sparql
Avec l’utilisation de « Optional » comme je vous l’ai mis, la présence de la description (courte) n’est un critère bloquant du « filter ».
Pour quoi voulez vous filtrer sur True ou null ? Soit la description existe, soit pas 
parce que si je met le filtre comme vous l’avez dit, filter LangMatches, SI il n’y a pas de description OU si elle est à true je perd 120 000 poi… Hors je ve avoir le bon nombre de poi (400 000 ) + les descriptions en FR (SI ELLE EXISTE), si elle n’existe pas je souhaite quand même garder le POI.
et faire de même avec une description en anglais.
Conclusion, je ne veux pas éliminer ceux qui n’ont pas de description, je souhaite ajouter à chaque poi la description FR (si elle existe) la description en (si elle existe) tout en gardant les null et les true et que le résultat total de la requête soit le nombre rééel de poi 400 000 … et pas 280 000 (en éliminant les shorts description null et true ) ou 800 000(si je met fr et en j’ai tout les résultats en double)
C’est donc bien Optional qu’il faut utiliser pour voir les POIs avec ou sans description.
Trouvez une doc en ligne sur Sparql vous verrez que ce n’est pas très compliqué 
Ho que si c’est bien compliquer! vous ne vous imaginez même pas le nombre de page que j’ai lu et le seul moyen d’arriver pour le moment à faire ce que j’arrive à faire, c’est d’utiliser ce support.
Nous avons modifié une règle de traitement d’un producteur de données afin qu’il n’y ait plus de Poi avec la valeur « true » comme description. Merci d’avoir détecté cela 
Bon courage
Vous savez qu’il y a tres peut de documentation ‹ pertinente › sur le sparql ?Pour avoir épluché en long large et travers… donc je suis un peu tombé de ma chaise quand vous avez écrit 'ce n’est pas très compliqué" et votre documentation, oui ok, mais elle n’explique presque rien de pertinent sur 'comment interroger et construire des requête propre, performante ".
enfin bref ce n’est pas une critique vis à vis de vous mais c’est un constat quand même …
et comme dit plus haut, la seule et unique chose qui m’a permis d’avancer dans mon projet, et donc dans la construction des requête sparql c’est bien ce support avec des exemples concret.
La par exemple vous m’avez répondu optional…
Optional { ?poi :hasDescription ?description.
?description :shortDescription ?descri.
}
filter (!bound(?descri) || LangMatches( Lang(?descri), « fr »))
Optional { ?poi :hasDescription ?description_en.
?description_en :shortDescription ?descri_en.
}
filter (!bound(?descri_en) || LangMatches( Lang(?descri_en), « en »))
ce n’est pas le résultat que je souhaite.
vue qu’on as dérivé sur le sujet des langues, pourquoi je ne peux que cocher « fr » et « en » dans le générateur de flux ? Visiblement certain POI ont d’autres langues disponibles que fr et en
Bonjour @Olivier4477
Je n’ai pas tout contrôlé mais cela devrait être résolu cette nuit.
Merci
1 « J'aime »