J'ai deux requêtes:SPARQL UNION - jeu de résultats incomplets
requête 1:
SELECT DISTINCT ?o COUNT(?o)
WHERE
{ ?s1 ?somep1 <predicate_one-uri>. ?s1 ?p ?o}
requête 2:
SELECT DISTINCT ?o COUNT(?o)
WHERE
{?s2 ?somep2 <predicate_two-uri>.?s2 ?p ?o.}
Chaque requête me donne un autre jeu de résultat (comme prévu) . Je dois faire une union de ces deux ensembles, d'après ce que je comprends la question ci-dessous devrait me donner l'ensemble je veux:
SELECT DISTINCT ?o COUNT(?o)
WHERE
{
{ ?s1 ?somep1 <predicate_one-uri>.?s1 ?p1 ?o}
UNION
{?s2 ?somep2 <predicate_two-uri>.?s2 ?p2 ?o.}
}
Le problème est que certains résultats de recherche 1 ne sont pas dans l'ensemble des syndicats et vice -versa pour la requête 2. L'union ne fonctionne pas correctement car elle n'incorpore pas tous les résultats de la requête 1 et de la requête 2. Veuillez indiquer la structure appropriée de la requête sparql pour obtenir l'ensemble de résultats souhaité.
Bien que si je fais la requête suivante (il suffit de supprimer la fonction COUNT):
SELECT DISTINCT ?o
WHERE
{
{ ?s1 ?somep1 <predicate_one-uri>.?s1 ?p ?o}
UNION {?s2 ?somep2 <predicate_two-uri>.?s2 ?p ?o.}
}
je reçois le jeu de résultats appropriés. Mais j'ai aussi besoin d'avoir la fréquence de la variable ?o
.
Merci pour vos commentaires. J'utilise OpenVirtuoso qui, je crois, utilise Jena, ce qui me permet d'utiliser la fonction d'agrégation COUNT. J'ai obtenu une référence ici: http://stackoverflow.com/questions/1223472/sparql-query-and-distinct-count. Je comprends que la quantité de lignes retournées par une union pourrait être inférieure à la somme des deux requêtes à cause de l'union. Mon problème est que certaines valeurs n'apparaissent même pas dans la requête union qui étaient présentes dans la requête 1 par exemple. Désolé, je suis encore nouveau sur SPARQL et RDF, je crois que le triple magasin est en RDF/XML (est-ce logique?). Merci encore JPL – levacjeep