我正在使用以下查询来查找DBPedia本体中具有城市域(或城市的超类)或国家范围(或国家的超类)的所有属性。当我使用固定长度路径时,没有问题,但是当我使用*来定义任意长度的路径时,我会收到以下错误提示:
我的SPARQL查询如下:Virtuoso 37000错误SP031:SPARQL编译器:变量'_::trans_subj_6_4'在查询的子表达式中被使用但未被分配。
define sql:signal-void-variables 1
define input:default-graph-uri <http://dbpedia.org>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX res: <http://dbpedia.org/resource/>
PREFIX owl:<http://www.w3.org/2002/07/owl#>
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
select ?property where{
{ ?property rdfs:domain/^rdfs:subClassOf* dbo:City }
UNION
{ ?property rdfs:range/^rdfs:subClassOf* dbo:Country }
}
当我替换*为任何数字时,我仍然收到相同的错误提示。我正在使用Virtuoso作为DBPedia SPARQL终端。