文字作为SPARQL中的主题三倍

时间:2017-05-10 17:29:46

标签: sparql virtuoso

根据我从SPARQL https://www.w3.org/TR/sparql11-query/#sparqlGrammar的语法中读到的内容,允许将文字作为三元组中的主题:

[75]    TriplesSameSubject    ::=   VarOrTerm PropertyListNotEmpty | TriplesNode PropertyList
[106]   VarOrTerm     ::=   Var | GraphTerm
[109]   GraphTerm     ::=   iri | RDFLiteral | NumericLiteral | BooleanLiteral | BlankNode | NIL

所以有可能有一个三元组,如:

 (3, rdfs:label, 'three')

我可以在Python的rdflib中处理这样的三元组,但是当我尝试在Virtuoso版本06.01.3127中使用SERVICE进行联合SPARQL查询时,Virtuoso抱怨道。以下是我在http://localhost:8890/sparql

的本地安装时执行的错误消息
Virtuoso 37000 Error SP031: SPARQL compiler: No one quad map pattern is suitable for GRAPH _:_::default_8_4 { 3 <http://www.w3.org/2000/01/rdf-schema#label> ?s } triple at line 8

SPARQL query:
define sql:big-data-const 0 
#output-format:text/html
define sql:signal-void-variables 1 PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

SELECT ?s WHERE {
  SERVICE <http://127.0.0.1:5000/sparql> {
    SELECT ?s WHERE {
      3 rdfs:label ?s .
    }
  }
}

这是一个Virtuoso问题,还是一个更普遍的SPARQL / RDF问题,或者我编写的编程错误?

1 个答案:

答案 0 :(得分:3)

很少(我相信当前的数量为零)企业级三重或四重存储处理&#34;广义RDF&#34;,这是允许主题位置的文字的RDF。到目前为止,这通常被理解为不能很好地扩展,尽管它在小规模上可能是有用的或有趣的,例如在CWM,TimBL的基于Python的封闭世界机器中。

Virtuoso是一个企业级DBMS,处理表格式SQL数据,图形RDF数据等。目前,对于计划的未来,Virtuoso将不会处理广义RDF。

所有这一切,应该注意到你从2012年7月左右开始运行一个相当古老的Virtuoso。无论你是在运行Commercial还是Open Source,都要更新为由于各种性能和功能原因,强烈建议使用更新的版本(截至2016年4月至少7.2.4.2)。

ObDisclaimer:OpenLink Software生成Virtuoso,雇用我。