Извлечение информации FOAF из Йены

Я здесь новенький, и у меня проблемы с 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);

кто может мне сказать? Благодарность


person PaulZhang    schedule 29.09.2011    source источник


Ответы (1)


Прежде всего следует сказать, что две формы, которые вы цитируете, имеют в точности то же самое значение для RDF - то есть они производят точно такой же набор троек при синтаксическом анализе в граф RDF. По этой причине обычно не стоит беспокоиться о точном синтаксисе XML, созданного автором. RDF / XML, как правило, не является удобным для чтения синтаксисом. Если вы просто хотите сериализовать Model, чтобы вы могли прочитать его позже, я бы предложил синтаксис черепахи, так как он более компактен и удобен для чтения и понимания людьми.

Однако есть одна причина, по которой вам может потребоваться уделить особое внимание сериализации XML, а именно, если вы хотите, чтобы файл был частью конвейера обработки XML (например, XSLT или аналогичного). В этом случае вы можете создать нужный формат, изменив последнюю строку вашего примера:

m.write( f, "RDF/XML-ABBREV" );

или, что то же самое,

m.write( f, FileUtils.langXMLAbbrev );
person Ian Dickinson    schedule 04.10.2011