2012-04-11 62 views
2

我使用JENA庫創建了一些RDF文件:Model model = ModelFactory.createDefaultModel(); ... 現在我該如何將其轉換爲字符串?如何將RDF轉換爲字符串

THX

回答

10

嘗試是這樣的:

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"); 
0

甲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(檢查'語句'部分)。

+0

RDF是一個XML和XML是一些字符串,所以一些toString方法將是有用的。順便說一句,你能解釋我資源和文字之間的不同嗎? – hudi 2012-04-12 06:36:54

+0

這不是將模型序列化爲RDF的適當方式。正如cygri所示,模型可以將自己編寫成以任何受支持的RDF語法輸出流/作者,不要手動完成。 – Michael 2012-04-12 11:58:44

+0

該代碼來自JENA框架的文檔。上面的帖子有一個參考,你可以在那裏檢查。 – bchetty 2012-04-12 12:04:22