我使用JENA庫創建了一些RDF文件:Model model = ModelFactory.createDefaultModel();
... 現在我該如何將其轉換爲字符串?如何將RDF轉換爲字符串
THX
我使用JENA庫創建了一些RDF文件:Model model = ModelFactory.createDefaultModel();
... 現在我該如何將其轉換爲字符串?如何將RDF轉換爲字符串
THX
嘗試是這樣的:
String syntax = "RDF/XML-ABBREV"; // also try "N-TRIPLE" and "TURTLE"
StringWriter out = new StringWriter();
model.write(out, syntax);
String result = out.toString();
這耶拿使用內置的作家,可以輸出已經RDF圖中的各種支持RDF語法,如RDF/XML和龜的N-Triples。如果你只是想轉儲到System.out
,那麼它會更簡單:
model.write(System.out, "RDF/XML-ABBREV");
甲RDF模型是一組的語句。每次向模型添加屬性時,都會創建一個語句...並且RDF模型中的語句也被稱爲'它'具有3個部分:Subject(資源),Predicate(屬性)和對象(RDFNode - 可以是資源)。可以調用toString方法對這些對象,如示於以下的代碼:
// list the statements in the Model
StmtIterator iter = model.listStatements();
// print out the predicate, subject and object of each statement
while (iter.hasNext()) {
Statement stmt = iter.nextStatement(); // get next statement
Resource subject = stmt.getSubject(); // get the subject
Property predicate = stmt.getPredicate(); // get the predicate
RDFNode object = stmt.getObject(); // get the object
System.out.print(subject.toString());
System.out.print(" " + predicate.toString() + " ");
if (object instanceof Resource) {
System.out.print(object.toString());
} else {
// object is a literal
System.out.print(" \"" + object.toString() + "\"");
}
System.out.println(" .");
}
注意,在上面的代碼「的toString」方法。
來源/參考號:Jena - RDF(檢查'語句'部分)。
RDF是一個XML和XML是一些字符串,所以一些toString方法將是有用的。順便說一句,你能解釋我資源和文字之間的不同嗎? – hudi 2012-04-12 06:36:54
這不是將模型序列化爲RDF的適當方式。正如cygri所示,模型可以將自己編寫成以任何受支持的RDF語法輸出流/作者,不要手動完成。 – Michael 2012-04-12 11:58:44
該代碼來自JENA框架的文檔。上面的帖子有一個參考,你可以在那裏檢查。 – bchetty 2012-04-12 12:04:22