SPARQLエンドポイントhttp://glam.iptime.org/sparqlで結果をグループ化するためのsparqlクエリを作成し、クエリを実行しました。私のsparqlクエリが結果を得られないのはなぜですか?
しかし、結果は得られず、エラーメッセージも表示されません。
質問は以下のとおりです。
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
私のsparqlクエリに問題がありますか? それにはどのような問題がありますか?
私はsparqlクエリの宣言の順序はfalseだと思います。 他の意見はありますか?
あなたが照会しているデータの意味がわからなくても、誰にでもわかることはできません。 SPARQLは完全に有効ですが、データに一致するものはありません。いくつかのヒント:複数のIFの代わりにCOALESCEを見てください。サブ選択が集計の計算に使用されていない限り、サブ選択はほとんどの場合間違いです。 – scotthenninger
また、「クエリ宣言の順序が偽である」という意味が明確ではありません。 SPARQLは宣言型言語なので、問合せ句の順序は結果に影響しません。順序付けはクエリの効率に影響する可能性がありますが、それは別のトピックです。 – scotthenninger