Jena,RDF,Data Cube词汇表

时间:2012-10-04 21:49:12

标签: rdf jena

我知道我做错了什么,但我不知道是什么...... 我正在尝试使用Data Cube词汇表生成RDF文件。

问题是,输出应该如下所示:

<qb:DataSet rdf:about="about...">
<rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string">label.</rdfs:label>
<dcterms:subject rdf:resource="http://purl.org/linked-data/sdmx/2009/subject#2.2"/>

...

但是,我得到的只有:

<qb:DataSet rdf:about="about...">
    <rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string">.</rdfs:label>
    <dcterms:subject>
         <rdf:Thing rdf:about="http://purl.org/linked-data/sdmx/2009/subject#2.2"/>
    </dcterms:subject>

我可以提供代码示例,但这可能就够了......问题不应该那么难。我需要资源与另一个资源......

最佳, Srecko

1 个答案:

答案 0 :(得分:4)

您的RDF的两种形式基本相同。第二种形式包含一些附加信息,即额外的三元组:

<http://purl.org/linked-data/sdmx/2009/subject#2.2> rdf:type rdf:Thing .

虽然Thing不是RDF名称空间中的标准术语,但这不会有害 - 您可能需要owl:Thing。使用RDF的一般经验法则是不要担心输出的确切句法形式,因为给定的RDF模型可能有许多不同的序列化,它们都解析为完全相同的三元组,因此在语义上具有相同的含义。对于XML序列化尤其如此。除非您出于某种原因需要XML(例如使用工具链的另一部分进行处理),否则我建议使用Turtle输出序列化。它更紧凑,人性化。

如果您想了解有关您正在生成的模型的更具体的建议,那么如果您发布了代码,这将有所帮助。

顺便说一下,如果您执行需要XML以便您可以使用其他XML工具处理它,您可能希望自己生成输出而不是依赖Model.write()。这是因为模型内容的微小变化可能会导致write生成的XML发生重大变化。这可能使编写XSLT样式表等成为一个主要的痛苦。最好生成自己的序列化,因为您可以使用您对特定域模型的了解更多地控制输出。