在de.dbpedia上,我正在运行以下查询:
SELECT distinct *
WHERE {
{
?name dcterms:subject category-de:Haus_Liechtenstein.
?name rdf:type foaf:Person.
Optional {?name <http://de.dbpedia.org/ontology/deathDate> ?deathDate}
MINUS {?name dbpedia-owl:deathDate ?d}
}
union{
SERVICE silent <http://dbpedia.org/sparql>{
?name dcterms:subject category-en:Princely_Family_of_Liechtenstein.
?name rdf:type foaf:Person.
Optional {?name <http://dbpedia.org/ontology/deathDate> ?deathDate}
MINUS {?name <http://dbpedia.org/ontology/deathDate> ?d}
}
}
}
收到以下错误:
Virtuoso 42000 错误 SR186:没有执行过程 DB 的权限。DBA。用户 ID 为 106、组 ID 为 106 的SPARUL_LOAD_SERVICE_DATA
有没有办法授予权限?如何获得结果?顺便说一句:"可选"只是为了检查我是否得到正确的结果......
提前非常感谢
福比
您的查询有多个问题。首先,您需要将两个<http://de.dbpedia.org/ontology/deathDate>
都替换为 dbpedia-owl:deathDate
.其次,我假设您正在尝试获取所有?deathDate
,然后过滤没有?deathDate
的那些。如果是这样,这是您需要编写的查询,而不会遇到权限问题:
SELECT distinct *
WHERE {
{
?name dcterms:subject category-de:Haus_Liechtenstein.
?name rdf:type foaf:Person.
Optional {?name dbpedia-owl:deathDate ?deathDate}
}
union{
SERVICE silent <http://dbpedia.org/sparql>{
?name dcterms:subject category-en:Princely_Family_of_Liechtenstein.
?name rdf:type foaf:Person.
Optional {?name dbpedia-owl:deathDate ?deathDate}
}
}
filter (!bound(?deathDate))
}