如何使用xml文件作为输入来构建rdf文件

时间:2014-05-14 14:43:16

标签: java xml rdf jena semantic-web

我有一个xml格式的输入文件,我需要将其转换为基于创建的本体模型的.rdf文件。

任何人都可以让我知道在java中使用jena api执行此操作的合适方法是什么?

1 个答案:

答案 0 :(得分:2)

您的输入文件是否采用任意XML格式,还是已经序列化为RDF/XML? (即:是文档<rdf:RDF>的根标记?)

如果它是某种任意格式,那么您需要定义一些基于rdf的模式来表示您的数据。这纯粹是针对项目的,需要您自己定义图表应用于数据的方法。

完成后,基本文档构建是Jena Tutorials的主题。这里涉及的材料太多了,但创建声明的基础知识应该足够了:

final Model m = ModelFactory.createDefaultModel();
final Resource s = m.createResource("urn:ex:subject");
final Property p = m.createProperty("urn:ex:predicate");
final Resource o = m.createResource("urn:ex:object");
m.add(s,p,o);
try( final OutputStream out = Files.newOutputStream(Paths.createTempFile("tmp","rdf"), StandardOpenOptions.CREATE_NEW) ){
   m.write(out, null, "RDF/XML");
} 

迭代XML并构建适当的语句集的练习留给读者练习。

如果您的数据已在RDF/XML,那么您可以直接read it in to a model

// Assume you have an InputStream called 'in' pointing at your input data
final Model m = ModelFactory.createDefaultModel(); 
m.read(in, null, "RDF/XML"); // Assumed that there is no base