• [^] # Re: Utilité ?

    Posté par . En réponse au journal Le dictionnaire des francophones : un dictionnaire francophone structuré libre. Évalué à 6.

    Oui d’ailleurs pour présenter SPARQL à des matheux, un problème de maths : résoudre le système d’équation { x-y+z=4 , x + y - z = 0 } avec x, y, z dans l’intervalle entier [1,5]. C’est enfantin :

    select ?x ?y ?z {
     values ?x { 1 2 3 4 5 } # les variables x y et Z ont pour domaine l’intervalle d’entier 1 à 5
     values ?y { 1 2 3 4 5 }
     values ?z { 1 2 3 4 5 }
     filter (?x - ?y + ?z = 4) . # contraintes sur les combinaisons possibles
     filter (?x + ?y - ?z = 0) .
    }

    Sur le service de requête de Wikidata ça donne ça et ça résoud le problème.

    Le « values » permet ici de donner les valeurs possibles pour les variables, les « filter » permettent d’exprimer les contraintes. Présenter ensuite les contraintes sur les triplets, (les « graph pattern » dans le jargon) comme des possibilité de donner des valeurs aux variables à partir des triplets du graphe comme tu le fait et on peut démarrer ...

    Le reste c’est juste des agrégations comme en SQL, des unions / différences ou ce genre de chose, et des trucs spécifiques au graphe genre des chemins qui ne sont que des motifs de graphe un peu plus complexe, genre trouver les parents quand on a une propriété papa et une propriété maman avec un genre de regex qui représente un motif de chemin sur les arêtes du graphe

    (en utilisant le préfixe « ex: » pour la coloration syntaxique)

     ?enfant ex:papa|ex:maman ?parents . # trouver les personnes du graphe avec leurs parents
    sparql
    ou les grands parents
    ```sparql
     ?enfant (ex:papa|ex:maman)/(ex:papa|ex:maman) ?grandsparent . # les personnes du graphe avec leurs grands-parents

    ou pour lister tous les ancêtres

     ?enfant (ex:papa|ex:maman)+ ?ancètre .

    et des raccourcis d’écriture, genre au lieux d’écrire

    ?personne ex:genre ex:masculin .
    ?personne ex:pays ex:france .

    pour trouver les hommes de France on met

    ?personne ex:genre ex:masculin ;
     ex:pays ex:france .

    ou pour trouver les personnes d’un pays européen en démocratie
    sparql
    ?personne ex:paysnationalité [ ex:continent ex:europe ; ex:régime ex:démocratie ] .

    qui raccourcit quelque chose comme

     ?personne ex:paysnationalité ?pays .
     ?pays ex:continent ex:europe .
     ?pays ex:régime ex:démocratie .