我正在将以下数据(空白节点)推送到Virtuoso:
@prefix ns0: <http://linked.opendata.cz/ontology/chord/> .
@prefix ns1: <http://linked.opendata.cz/resource/business-entity/> .
[ ns0:source ns1:CZ00006947 ;
ns0:target <http://linked.opendata.cz/resource/domain/seznam.gov.cz/rejstriky/business-entity/28175492>
] .
[ ns0:source ns1:CZ00241610 ;
ns0:target <http://linked.opendata.cz/resource/domain/seznam.gov.cz/rejstriky/business-entity/60437359>
] .
这是通过POST
请求推送到Virtuoso的确切数据(仅截断;实际提交的数据更长)。
我收到以下错误消息:
SP029:TURTLE RDF加载程序,第8行:缺少谓词和对象 顶级空白节点主题和处理待处理的点。
对我来说没什么意义。知道什么是错的吗?
答案 0 :(得分:0)
您的数据(乍一看似乎是Turtle,这就是Virtuoso解析它的方式)只是一个主题(实体)列表 - 未识别的a / k / a空白节点 - 没有谓词(属性)或对象(值)。这可以帮助您想象我的意思 -
[ … ] .
您的样本的这个修订版本可以使用,但您可以对每个未命名的主题做出更好的陈述 -
@prefix ns0: <http://linked.opendata.cz/ontology/chord/> .
@prefix ns1: <http://linked.opendata.cz/resource/business-entity/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
[ ns0:source ns1:CZ00006947 ;
ns0:target <http://linked.opendata.cz/resource/domain/seznam.gov.cz/rejstriky/business-entity/28175492>
] a owl:Thing .
[ ns0:source ns1:CZ00241610 ;
ns0:target <http://linked.opendata.cz/resource/domain/seznam.gov.cz/rejstriky/business-entity/60437359>
] a owl:Thing .
或者,你可以这样做,而不添加任何陈述 -
@prefix ns0: <http://linked.opendata.cz/ontology/chord/> .
@prefix ns1: <http://linked.opendata.cz/resource/business-entity/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
[] ns0:source ns1:CZ00006947 ;
ns0:target <http://linked.opendata.cz/resource/domain/seznam.gov.cz/rejstriky/business-entity/28175492>
.
[] ns0:source ns1:CZ00241610 ;
ns0:target <http://linked.opendata.cz/resource/domain/seznam.gov.cz/rejstriky/business-entity/60437359>
.
由于您提供了其他详细信息 - 您的数据是N3,而不是Turtle - 您的POST
可能无法正确识别您的提交为 N3,这导致Virtuoso的解析错误。
答案 1 :(得分:0)
看起来语法实际上是正确的,或者可能足够正确,以便某些在线RDF翻译器(如this one)能够正确提取三元组并将其转换为其他格式。显然,Virtuoso无法做到这一点。正如另一个答案所示,这种语法有效:
@prefix ns0: <http://linked.opendata.cz/ontology/chord/> .
@prefix ns1: <http://linked.opendata.cz/resource/business-entity/> .
[] ns0:source ns1:CZ00006947 ;
ns0:target <http://linked.opendata.cz/resource/domain/seznam.gov.cz/rejstriky/business-entity/28175492>
.
[] ns0:source ns1:CZ00241610 ;
ns0:target <http://linked.opendata.cz/resource/domain/seznam.gov.cz/rejstriky/business-entity/60437359>
.
但我的问题是我使用Apache Jena以编程方式生成输出。我的问题中的数据是Apache Jena如何表示 N3 中的空白节点(这是此格式的名称),这显然与Virtuoso理解 N3 中的空白节点的方式不相容。 / p>
不幸的是,Apache Jena API不允许我改变N3中空节点的表示方式。但它确实允许我使用不同的输出格式。所以我切换到 RDF / XML ,这很有效。 RDF / XML而不是N3中表示的完全相同的数据现在可以推送到Virtuoso。