2017-06-27 1 views
0

Je suis en train d'exécuter la requête SPARQL suivante:DBPedia SPARQL Endpoint: mot-clé EN OPTION

SELECT ?band, ?genre 
WHERE 
{ 
     ?band a umbel-rc:Band_MusicGroup. 
     OPTIONAL{?band dbo:genre ?genre}. 
} 

mais dans le résultat, il n'y a pas de bandes pour lesquelles un dbo:genre n'est pas défini (comme Coldplay look here). Facultatif ne fonctionne pas dans DBpedia?

+0

@StanislavKralin Qu'est-ce que votre commentaire signifie? Le '10 000' est la limite par défaut du triple magasin Virtuoso. Si quelqu'un veut obtenir plus de données, "LIMIT" en combinaison avec "OFFSET" est le chemin à parcourir. (Et pour plus formellement corriger aussi 'ORDER BY') – AKSW

+2

@AKSW, vous avez lu mon commentaire avant de le supprimer :-). Je suppose que Coldplay a été "filtré" des résultats en raison de cette limite. –

+0

: Très bien. Ok, peut-être que j'ai mal compris la question. J'ai mis à jour ma réponse. – AKSW

Répondre

2

Merci à @StanislavKralin Je comprends maintenant que vous pourriez être troublé par des données manquantes dans le jeu de résultats, par ex. Jeu froid. La réponse courte est que le triple magasin Virtuoso sur lequel DBpedia est déployé a une taille de jeu de résultats par défaut de 10000, c'est-à-dire qu'au plus 10000 lignes seront renvoyées avec une seule requête. Si vous souhaitez obtenir plus de résultats que vous devez utiliser quelque chose qui est souvent appelé pagination, à savoir pour chaque chunk vous ajoutez

ORDER BY ?band LIMIT 10000 OFFSET 10000*chunk

+0

Il y a cette erreur: "Erreur Virtuoso 37000 SP031: compilateur SPARQL: la variable 'genre' est utilisée dans le jeu de résultats de la requête mais pas affectée" – Kebby

+0

Attendez une seconde, je suppose que j'ai mal compris votre question. Vous voulez avoir tous les groupes et leur genre? Et vous vous demandez pourquoi certains groupes n'apparaissent pas dans votre liste? – AKSW

+0

Ok, alors oublie ma première réponse et regarde la réponse éditée. – AKSW