Je me sens à l'aise pour écrire des requêtes régulières dans SPARQL, mais j'ai toujours des problèmes avec les choses plus géniales. Mon dernier problème est d'essayer de tout sélectionner sauf les trucs qui correspondent à la clause where. Par exemple, dis-je que je veux trouver tous les maris qui aiment une couleur de voiture que leur femme n'aime pas (je travaille sur un modèle propriétaire, alors excusez l'exemple et faites juste confiance que cela a du sens dans le vrai modèle).SPARQL Query, sélectionnez tout sauf les choses qui correspondent?
je pourrais avoir:
<bob> <spouse> <alice>
<bob> <likes> <red>
<alice> <likes> <red>
<carl> <spouse> <dorothy>
<carl> <likes> <blue>
<dorothy> <likes> <yellow>
<eric> <spouse> <fannie>
<eric> <likes> <black>
Quelle est la requête qui sélectionne carl et eric, mais pas bob? Points bonus si vous pouvez sélectionner bleu et noir dans la même requête. Sélection bob serait simplement:
select ?husband ?color where {?husband <spouse> ?wife . ?husband <likes> ?color . ?wife <likes> ?color}
Ce que je suis à la recherche est:
select ?husband ?color where {?husband <spouse> ?wife . ?husband <likes> ?color . NOT (?wife <likes> ?color)}
, mais de toute évidence qui est faux. Alors qu'est-ce qui va bien?
C'est la solution classique. – tialaramex