如何从耶拿嵌套RDF / XML?(How to get nested RDF/XML from J

2019-09-17 01:20发布

我需要创建RDF看起来是这样的:

<rdf:Description rdf:about='uri1'>
  <namespace:level1>
    <rdf:Description>
      <namespace:blankNode rdf:resource='uri2'/>
      <namespace:text></namespace:text> 
    </rdf:Description>
  </namespace:level1>
</rdf:Description>

<rdf:Description rdf:about="uri2">
  some properties here
</rdf:Description>

正如你所看到的,有嵌套结构,以及空白节点。 (我不知道这是在我的结构中的“blankNode”属性确切的术语)。如果我使用

model.write(System.out, "RDF/XML-ABBREV");

那么即便是空节点是嵌套,我不想要的。 有没有什么办法让耶拿使用这种结构? 或有任何其他库为Java,可以处理这更好的?

Answer 1:

我想你在这种错误的方式打算。

嵌套是一个概念,只谈论树木时才有意义。 但是,RDF是不是树,它是关于三倍。 忘记了一会儿有关XML的结构,想想吧,在XML编码的三倍。 我发现model.write(System.out, "N-TRIPLES"); 对于最有用的。

你首先需要了解你希望你的RDF / XML文件来表达三倍。 只要它表达权三元组,不要紧的一个节点是否写入嵌套在其他或什么样的顺序东西出现在里面。这是纯粹的“整容”的问题,像缩进。



Answer 2:

与此同时,在RDF4J,我有一个发现org.eclipse.rdf4j.rio.rdfxml.util.RDFXMLPrettyWriter做正是我想要的,产生嵌套结构的一个很好的嵌套干净,紧凑RDFXML文件。

虽然我与@cygri同意,这往往是非常理想的(例如,在咨询的情况下)有一个易于阅读RDFXML和作家经常吐出难以消化RDF(可能是由于流和优化内存占用/速度)。



文章来源: How to get nested RDF/XML from Jena?
标签: java rdf jena