2016-05-09 1 views
0

Je souhaite calculer le nombre total de villes par pays à l'aide d'une requête SPARQL dans l'outil Protege. La relation entre la ville et le pays est cette ville isLocatedIn pays. J'ai essayé cette requête qui est donnée ci-dessous mais elle échoue. Alors, aidez-moi avec bonté.Somme de la ville utilisant groupe par pays dans la requête sparql

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
PREFIX owl: <http://www.w3.org/2002/07/owl#> 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> 
PREFIX ge:<http://www.semanticweb.org/waqas/ontologies/2016/4/untitled-ontology-15#> 
SELECT (?country SUM(?city) AS ?TotalCity) 
    WHERE { ?city ge:isLocatedIn ?country . ?city rdf:type ?city} 
    GROUP BY(?country) 
+1

Il est toujours une bonne idée de préciser comment il échoue. Le compte est-il faux? Est-ce qu'il ne renvoie aucun résultat? Y a-t-il un message d'erreur? Le plus de détails, plus les gens seront en mesure de vous aider. – scotthenninger

Répondre

2

Cela ressemble à un problème de syntaxe simple. Voir Grouping and Aggregation dans le SPARQL 1.1 spec:

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
PREFIX owl: <http://www.w3.org/2002/07/owl#> 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> 
PREFIX ge:<http://www.semanticweb.org/waqas/ontologies/2016/4/untitled-ontology-15#> 
SELECT ?country (COUNT(?city) AS ?TotalCity) 
WHERE { 
    ?city ge:isLocatedIn ?country . 
    ?city rdf:type ge:City . 
} 
GROUP BY(?country) 
+0

Selon votre requête, la sortie est, seulement afficher 1 ligne avec la colonne du pays de données est vide et la colonne de la ville affiche cette sortie "0" ^^ User101

+0

Pas moyen de commenter cela sans savoir quelque chose sur les données. La requête doit être correcte, à condition que vous ayez des triplets tels que ' ge: isLocatedIn '. – scotthenninger

-2

Réponse de ma question

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
PREFIX owl: <http://www.w3.org/2002/07/owl#> 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> 
PREFIX ge:<http://www.semanticweb.org/waqas/ontologies/2016/4/untitled-ontology-15#> 
SELECT ?country (COUNT(?city) AS ?TotalCity) 
WHERE { 
    ?city ge:isLocatedIn ?country . 
    ?city rdf:type ge:City . 
} 
GROUP BY(?country) 
+2

Vous devez expliquer la raison, c'est-à-dire un problème de syntaxe ET que vous avez incorrectement utilisé le modèle triple '? City rdf: type? City' (qui est évidemment faux) au lieu de'? City rdf: type ge: City'. – AKSW

+0

? Ville est une variable et ge: City is a class – User101