Rdf Virtuoso错误:顶级空白节点主语和待处理点之间缺少谓词和对象

Rdf Virtuoso错误:顶级空白节点主语和待处理点之间缺少谓词和对象,rdf,virtuoso,turtle-rdf,blank-nodes,Rdf,Virtuoso,Turtle Rdf,Blank Nodes,我正在将以下数据(空白节点)推送到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/res

我正在将以下数据(空白节点)推送到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>
] .
@前缀ns0:。
@前缀ns1:。
[ns0:来源ns1:CZ00006947;
ns0:目标
] .
[ns0:来源ns1:CZ00241610;
ns0:目标
] .
这就是通过
POST
请求推送到Virtuoso的确切数据(仅被截断;实际提交的数据更长)

我收到以下错误消息:

SP029:TURTLE RDF loader,第8行:之间缺少谓词和对象 顶级空白节点主题和一个待处理的点到此为止

这对我来说没什么意义。知道怎么回事吗?

您的数据(乍一看似乎是海龟,这就是Virtuoso解析它的方式)只是一个主题(实体)列表,即未标识的a/k/a空白节点,没有谓词(属性)或对象(值)。这可能有助于你理解我的意思--

对你的样本进行此修订可能会奏效,但你可能会对每个未命名的主题有更好的陈述--

@前缀ns0:。
@前缀ns1:。
@前缀owl:。
[ns0:来源ns1:CZ00006947;
ns0:目标
]猫头鹰:这东西。
[ns0:来源ns1:CZ00241610;
ns0:目标
]猫头鹰:这东西。
或者,您可以这样做,而无需添加任何语句--

@前缀ns0:。
@前缀ns1:。
@前缀owl:。
[]ns0:来源ns1:CZ00006947;
ns0:目标
.
[]ns0:来源ns1:CZ00241610;
ns0:目标
.

由于您提供了额外的详细信息—您的数据是N3,而不是Turtle—您的
帖子似乎没有正确地将您提交的内容标识为N3,这导致了Virtuoso的解析错误。

看起来语法实际上是正确的,或者可能足够正确,以至于一些在线RDF翻译人员(如)能够正确提取三元组并将其转换为其他格式。显然,大师们没有能力做到这一点。正如另一个答案中所建议的,此语法有效:

@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>
.
@前缀ns0:。
@前缀ns1:。
[]ns0:来源ns1:CZ00006947;
ns0:目标
.
[]ns0:来源ns1:CZ00241610;
ns0:目标
.
但在我的例子中,问题是我使用编程方式生成输出。我问题中的数据是ApacheJena如何在N3中表示空白节点(这是此格式的名称),这显然与Virtuoso理解N3中空白节点的方式不兼容


不幸的是,ApacheJenaAPI不允许我更改N3中表示空白节点的方式。但它确实允许我使用不同的输出格式。因此,我切换到RDF/XML,这很有效。用RDF/XML而不是N3表示的完全相同的数据现在可以推送到Virtuoso。

谢谢,但我不确定我是否理解。关键是语法错误。但有趣的是,一些在线解析能够正确地从数据中提取三元组,并将其转换为其他格式。你确定Virtuoso知道它得到的是(
text/n3
.n3
),而不是(
text/turtle
.ttl
),我以为是在你的帖子里,或者(
应用程序/n-triples
.nt
)?我认为Virtuoso不认识您的N3(这可能是真的,原因很多),因为错误显示为
TURTLE RDF loader
…我与Jena不太熟,但我建议测试其他一些输出序列化,因为RDF/XML通常比TURTLE、N3大得多,我不得不承认这些格式对我来说有点混乱(它们之间的区别)。第一个事实是,如果我让Jena给我N3格式的数据,这就是我得到的。第二个事实是,一旦我按照您建议的方式更新了语法,即通过将结束方括号向前移动,它就开始工作了。演奏家确实认识到了这一点。问题不在于你要求Jena给你什么,而在于你告诉演奏家你要提交什么。您的
帖子缺少详细信息
;特别是,与数据关联的MIME类型是什么?Virtuoso显然看到了海龟的到来,而您的N3没有正确的海龟语法,因此报告的错误是适当的。我建议跟进手术室,我会尽量说清楚的。你有正确的N3。但是如果演奏家没有被告知它是N3,或者如果演奏家被告知它是乌龟,那么这就可以解释当前的错误。在帖子上使用正确的MIME类型是一个很好的方式来告诉大师这是N3。以URI(不是空白节点)为主题的N3更像海龟(如果不是完全相同的话),这可以解释为什么您以前的尝试成功了。我明白了。好的,这似乎是一个bug,我已经在内部提出了。如果您希望接收更新,您可以通过、或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>
.
@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>
.