我正在尝试从 RDF 图下方创建 RDF/XML。我了解基本概念,例如主题/谓词/对象、资源、属性、值/文字,并且基于相同的概念,我创建了一个 RDF 图。
但我想知道如何将同一张图转换(转换)为 RDF/XML 格式?是否有任何工具可以生成 RDF 图并生成 RDF/XML?
我正在使用 Jena,因为我熟悉 Java。
但是,我没有找到任何针对给定图形生成 RDF/XML 的工具。但是,我发现https://www.w3.org/RDF/Validator/上的图表显示非常有帮助。它将 RDF/XML 作为输入,对其进行验证,然后生成图形和三元组。就我而言,我使用 JENA 创建 RDF/XML,然后使用 W3C Validator 以图形格式查看。这对我来说同样有帮助。
您没有提到您是如何创建显示图像的图表的。如果您以编程方式创建它,您可以使用 Jena API 执行相同操作:只需创建模型、创建资源并添加属性。Jena 的 Javadocs 非常详尽,Jena 网站上有一些教程。
然而,在这种情况下,我认为最简单的做法是使用 Turtle 等人类可读可写格式编写图形,然后使用 Jena 或其他库将其转换为 RDF/XML。在这种情况下,您可以编写如下内容:
@prefix : <urn:ex:>
:JavaClass :belongsTo :Domain1, :Domain2, :DomainN ;
:hasMethod :Method1, :Method2, :MethodN .
如果您以编程方式生成它,您可能会使用缩写较少的形式,例如:
<urn:ex:JavaClass> <urn:ex:belongsTo> <urn:ex:Domain1> .
<urn:ex:JavaClass> <urn:ex:belongsTo> <urn:ex:Domain2> .
<urn:ex:JavaClass> <urn:ex:belongsTo> <urn:ex:DomainN> .
<urn:ex:JavaClass> <urn:ex:hasMethod> <urn:ex:Method1> .
<urn:ex:JavaClass> <urn:ex:hasMethod> <urn:ex:Method2> .
<urn:ex:JavaClass> <urn:ex:hasMethod> <urn:ex:MethodN> .
无论哪种情况,您都可以使用任意数量的工具将其转换为 RDF/XML。例如,使用 Jena 附带的rdfcat命令行实用程序,您可以这样做:
$ rdfcat -out RDF/XML-ABBREV data.n3
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="urn:ex:">
<rdf:Description rdf:about="urn:ex:JavaClass">
<belongsTo rdf:resource="urn:ex:Domain1"/>
<belongsTo rdf:resource="urn:ex:Domain2"/>
<belongsTo rdf:resource="urn:ex:DomainN"/>
<hasMethod rdf:resource="urn:ex:Method1"/>
<hasMethod rdf:resource="urn:ex:Method2"/>
<hasMethod rdf:resource="urn:ex:MethodN"/>
</rdf:Description>
</rdf:RDF>