根据我从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问题,或者我编写的编程错误?
答案 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,雇用我。