我有一个xml格式的输入文件,我需要将其转换为基于创建的本体模型的.rdf文件。
任何人都可以让我知道在java中使用jena api执行此操作的合适方法是什么?
答案 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