Ich machte Sparql Abfrage für Gruppierung Ergebnis und führte die Abfrage über den SPARQL-Endpunkt http://glam.iptime.org/sparql.Warum erhält meine Sparql-Abfrage kein Ergebnis?
Aber ich habe keine Ergebnisse und keine Fehlermeldungen.
Abfrage ist wie folgt.
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX cfo: <http://lod.culture.go.kr/ontology/>
PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
SELECT ?age ?typeName (count(?s) as ?cnt)
WHERE {
{
select * where {
?s rdf:type cfo:CulturalObject.
?s rdfs:label ?label.
?s cfo:temporal ?time.
?time cfo:begin ?begin.
BIND (STRDT(replace(?begin, 'BC', '-'), xsd:float) as ?year).
BIND(IF(?year > 1897, "modern", IF(?year > 1392, "chosun", IF(?year > 918, "goryeo", IF(?year > 700, "north_south", IF(?year > -58, "three_states", "ancient"))))) as ?age).
?s dc:type ?type.
?type rdfs:label ?typeName.
}
}
FILTER(BOUND(?age)).
}
GROUP BY ?age ?typeName
LIMIT 100
Hat meine Sparql-Abfrage ein Problem? Welches Problem hat es?
Ich denke, dass Sparql Abfrage Deklaration Reihenfolge ist falsch. Irgendeine andere Meinung?
Niemand kann ohne ein Gefühl für die Daten, die Sie abfragen, sagen. Es kann sein, dass SPARQL vollkommen gültig ist, aber Ihre Daten nicht übereinstimmen. Ein paar Tipps: Schauen Sie sich COALESCE an, anstatt mehrere IFs, und die Sub-Auswahl ist fast immer ein Fehler, es sei denn, die Subselect wird zur Berechnung von Aggregaten verwendet. – scotthenninger
Auch nicht klar, was mit "Abfrage Deklarationsreihenfolge ist falsch" gemeint ist. SPARQL ist eine deklarative Sprache und daher hat die Reihenfolge der Abfrageklauseln keine Auswirkungen auf das Ergebnis. Die Reihenfolge kann sich auf die Abfrageeffizienz auswirken, aber das ist ein anderes Thema. – scotthenninger