我是新来的,我对FOAF有一些问题。我使用jena创建一个FOAF,如下所示:
<rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
<foaf:phone>12312312312</foaf:phone>
<foaf:nick>L</foaf:nick>
<foaf:name>zhanglu</foaf:name>但是我想要FOAF这样的节目:
<foaf:Person>
<foaf:phone>12312312312</foaf:phone>
<foaf:nick>L</foaf:nick>
<foaf:name>zhanglu</foaf:name>
</foaf:Person>我能做什么?
这是我的源代码:
Model m = ModelFactory.createDefaultModel();
m.setNsPrefix("foaf", FOAF.NS);
Resource r = m.createResource(NS);
r.addLiteral(FOAF.name, "zhanglu");
r.addProperty(FOAF.nick, "L");
r.addProperty(FOAF.phone, "123123123");
r.addProperty(RDF.type, FOAF.Person);
FileOutputStream f = new FileOutputStream(fileName);
m.write(f);谁能告诉我?谢谢
发布于 2011-10-04 19:04:14
首先要说的是,您引用的两种形式对RDF具有完全相同的含义-即,当解析到RDF图中时,它们产生完全相同的三元组集合。因此,通常不值得担心作者生成的XML的确切语法。一般来说,RDF/XML不是一种易于阅读的语法。如果您只想序列化Model,以便稍后可以再次读取它,我建议您使用Turtle syntax,因为它更紧凑,更易于阅读和理解。
但是,您可能需要特别关注XML序列化的一个原因是,如果您希望文件成为XML处理管道(例如,XSLT或类似的)的一部分。在这种情况下,您可以通过更改示例的最后一行来生成所需的格式:
m.write( f, "RDF/XML-ABBREV" );或者,等同地,
m.write( f, FileUtils.langXMLAbbrev );https://stackoverflow.com/questions/7591600
复制相似问题