【问题标题】:Jena, RDF, Data Cube vocabularyJena、RDF、Data Cube 词汇
【发布时间】:2012-10-04 21:49:11
【问题描述】:

我知道我做错了什么,但我不知道是什么... 我正在尝试使用 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>

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

最好, 斯雷科

【问题讨论】:

    标签: rdf jena


    【解决方案1】:

    这两种形式的 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 样式表等变得很痛苦。最好生成您自己的序列化,因为这样您就可以使用您对特定领域模型的了解来更好地控制输出。

    【讨论】:

    • 谢谢伊恩。我知道这两种形式基本上是等价的,但有点令人沮丧......我在做同样的事情,并且输出不同。我会尝试实现我自己的序列化。
    • 以特定形式输出 XML 的用例是什么?我应该提到有关 XML 编写器选项的文档:jena.apache.org/documentation/io/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多