在DBpedia上使用SPARQL属性路径
我想知道DBpedia上的两个实体之间是否存在属性路径。这是我在在DBpedia上使用SPARQL属性路径,sparql,dbpedia,Sparql,Dbpedia,我想知道DBpedia上的两个实体之间是否存在属性路径。这是我在snorql上尝试的一个示例查询: SELECT * WHERE { :Braveheart (:|!:)* :Mel_Gibson } LIMIT 100 查询遇到内存错误: Virtuoso 42000 Error TN...: Exceeded 1000000000 bytes in transitive temp memory. use t_distinct, t_max or more T_MAX_memory opti
snorql
上尝试的一个示例查询:
SELECT * WHERE {
:Braveheart (:|!:)* :Mel_Gibson
}
LIMIT 100
查询遇到内存错误:
Virtuoso 42000 Error TN...: Exceeded 1000000000 bytes in transitive temp memory. use t_distinct, t_max or more T_MAX_memory options to limit the search or increase the pool SPARQL query: define sql:big-data-const 0 #output-format:application/sparql-results+json define input:default-graph-uri PREFIX owl: PREFIX xsd: PREFIX rdfs: PREFIX rdf: PREFIX foaf: PREFIX dc: PREFIX : PREFIX dbpedia2: PREFIX dbpedia: PREFIX skos: SELECT * WHERE { :Braveheart (:|!:)* :Mel_Gibson } LIMIT 100
我怀疑有人会建议设置本地dbpedia镜像。如果是这样的话,我想了解一些详细的步骤。我认为您的查询对于您试图回答的问题来说有点错误。。。此外,因为它没有变量<代码>选择*<代码>不能显示任何东西(我认为这是一个错误,甚至编译),所以让我到
我认为这是MrimoSO的查询规划师中的一个bug,并报告它:
说到这里,我想指出的是,在实际案例中,你们可能对不仅仅指向前方的道路感兴趣。边的方向在很大程度上取决于建模。因此,考虑使用类似这样的查询:ASK { dbr:Braveheart ((<>|!<>)|^(<>|!<>))+ dbr:Mel_Gibson }
ASK{dbr:Braveheart((|!)| ^(|!)+dbr:Mel|u Gibson}
该表达式表示沿其方向或相反方向跟随任何边(
^
)至少一步。(是的,我还想知道为什么属性路径没有针对任意边的简短语法;)根据@JörnHees的回答,有两点:
是无效的谓词标识符。对于Virtuoso,
标识文档(在HTTPGET
上返回200 OK
的内容位置),这就是
或
工作的原因。这不是一个解析问题,因为它更多地与标识符的语义有关
而不是
,我们--
前缀dbpedia:
问{dbpedia:Braveheart(|!)+dbpedia:Mel_Gibson}
两个备选实例,均由(我的雇主和的制作人)托管,为该查询生成解决方案:
true
或false
,对吗?我要做的是查看两个节点之间的所有属性路径。考虑到需要,SELCT不是合适的选项吗?那么您至少需要一个中间变量来“投影”出来。遗憾的是,属性路径中不允许变量,因此没有任何项目。您可以尝试选择distinct*{dbr:Braveheart(|!)*?n.?n?p?n2.?n2(|!)*dbr:Mel_Gibson.}
,但更糟糕的是:D
SELECT * { dbr:Braveheart ?p dbr:Mel_Gibson }
ASK { dbr:Braveheart ((<>|!<>)|^(<>|!<>))+ dbr:Mel_Gibson }
prefix dbpedia: <http://dbpedia.org/resource/>
ASK { dbpedia:Braveheart (<#this>|!<#this>)+ dbpedia:Mel_Gibson }