【问题标题】:RDF to XML transformationRDF 到 XML 的转换
【发布时间】:2016-04-12 17:21:27
【问题描述】:

我想将 RDF 文件转换为 XML。

示例:

aml:length  aml:hasDataType  "xs:double" ;
        aml:hasValue     "35"^^xsd:double ;
        rdf:type         aml:Attribute ;
        schema:name      "length" .

我希望将其转换为 XML:

<Attribute Name="length" DataType="xs:double">
                <Value>35</Value>
            </Attribute>

我有本体文件,我可以在读取 rdf 时用它来描述,然后用它来构造 RDF。

我的问题是转换为 XML 的最佳方法是什么。我正在使用 apache jena 来处理 RDF。所以我的 RDF 有各种格式。

1- 使用 XML 样式表转换成 XML。

2- 逐个读取 rdf 三元组,对本体进行描述/询问查询,然后尝试构造 XML 标记。

谢谢你的帮助。

【问题讨论】:

  • RDF 有一种序列化格式(您实际上并没有太多控制权)调用 RDF/XML。如果您想完全控制输出格式并使用 Jena,最简单的方法可能是使用 lib 来创建 XML 文档(您知道的)并使用 jena Model 类上的方法。像 listStatements 这样的方法可以在这里提供帮助。

标签: xml xslt sparql rdf


【解决方案1】:

最简单的方法可能是将 RDF 转换为带有类/属性名称作为 XML 元素的 RDF/XML,这将为您提供

<aml:Attribute>
  <aml:hasDataType>xs:double</aml:hasDataType>
  <aml:hasValue rdf:datatype="http://www.w3.org/2001/XMLSchema#double">35</aml:hasValue>
  <schema:name>length</schema:name>
</aml:Attribute>

然后您可以使用 XSLT 对其进行转换以删除命名空间、重命名/删除/属性化元素。

确保您不使用 RDF/XML 的 &lt;rdf:Description&gt; 变体。特别是,如果一个类有多个 rdf:type,这将中断。但是对于简单的情况,RDF->XML 的 RDF/XML + XSLT 很好,因为它使用声明性语法并且被广泛理解。

【讨论】:

  • 我从未使用过 XSLT。你能给我一个链接,我可以在其中阅读有关通过 XSLT 进行编辑的信息。
  • 谷歌rdf2xml xslt 和类似的。在 Github 中搜索带有 rdf 的 XSLT 文件。还有关于 rdf+xml+xslt 的 SO 的问题。
猜你喜欢
  • 1970-01-01
  • 2011-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-15
相关资源
最近更新 更多