如何将RDF图映射到目标XML模式?

时间:2017-01-17 11:19:37

标签: xml jaxb mapping rdf rdf-xml

给定一个RDF数据图,以及描述此数据图中使用的类和属性的OWL本体,是否有一种算法,工具或映射语言可以在与目标XML模式相对应的XML文档中序列化这些数据?

我正在思考关于本体类和属性的类似JAXB的注释来驱动XML序列化。

通常,给定此图

@prefix data: <http://exemple.fr/data/>
@prefix onto: <http://exemple.fr/ontology.owl#>

data:1 a onto:Work .
data:1 onto:type "book" .
data:1 onto:date "2017-01-01"^^xsd:date .
data:1 onto:has_expression data:2 .
data:2 a onto:Expression .
data:2 onto:language "fr" .

我想生成类似于以下内容的XML:

<Work URI="http://exemple.fr/data/1" date="2017-01-01">
  <type>book</type>
  <Expression URI="http://exemple.fr/data/2">
    <lang>fr</lang>
  </Expression>
</Work>

请注意这与预期的RDF / XML序列化有何不同:自定义属性包含URI而不是rdf:about;一些属性被序列化为XML属性,其他属性被序列化为XML元素; onto:has_expression未序列化;元素&#34; lang&#34;用来代替&#34; language&#34;。

请注意,我正在寻找&#34; RDF2XML&#34;映射,用于XML2RDF映射/转换或&#34; Object2RDF&#34;映射。

我找不到任何东西。我会接受答案&#34;不,没有这样的事情&#34;如果其他人已经徒劳地搜索了这个。

1 个答案:

答案 0 :(得分:4)

有几种选择。当然,您可以简单地使用任何有RDF解析器和DOM库的编程语言,并以临时方式构建XML树。

但我能想到的最好的工具是XSPARQL,这是一种扩展XQuery以包含SPARQL的语言。有了它,您应该能够轻松查询RDF并生成XML。您也可以执行相反的操作(使用XQuery基元查询XML并生成三元组)。 XSPARQL一直保持并延长到最近,但据我所知,过去两年似乎没有新的事情发生。

另一个选项是SPARQL template。它当然不如XSPARQL知名,可能不那么稳定。 SPARQL模板的原理是它查询RDF数据,并使用结果生成任意字符串。因此,只要格式有规律性,您就可以使用它将RDF转换为您喜欢的任何格式。

请注意,我并未参与这两项技术的开发。还要考虑一下,他们主要是学术研究人员的工作,这意味着他们不是(现在?)处于行业准备产品的阶段。