Virtuoso 42000 错误 SR186:如何使用 SPARQL 查询授予对 dbpedia 的权限?

Virtuoso 42000 Error SR186: How to grant permission on dbpedia with a SPARQL Query?

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 Error SR186: No permission to execute procedure DB.DBA.SPARUL_LOAD_SERVICE_DATA with user ID 106, group ID 106

有没有办法授予权限?我怎样才能得到我的结果?顺便说一句:“可选”只是为了检查我是否得到正确的结果...

提前致谢

福比

您的查询有多个问题。首先,您需要将 <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))
}