2012-04-11 6 views
2

私はJENAライブラリでRDFファイルを作成します:Model model = ModelFactory.createDefaultModel(); ... これをどのように文字列に変換できますか?RDFを文字列に変換する方法

THX

答えて

10

はこのような何かを試してみてください。あなただけSystem.outにダンプしたい場合は、それがさらに簡単です:

model.write(System.out, "RDF/XML-ABBREV"); 
0

RDFモデルはのセットです。モデルにプロパティを追加するたびに、ステートメントが作成され、RDFモデルのステートメントは「トリプル」とも呼ばれ、Subject(Resource)、Predicate(Property)、およびオブジェクト(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(「明細書」セクションを参照)。

String syntax = "RDF/XML-ABBREV"; // also try "N-TRIPLE" and "TURTLE" 
StringWriter out = new StringWriter(); 
model.write(out, syntax); 
String result = out.toString(); 

これはイエナの内蔵などRDF/XMLとカメとNトリプルなど、さまざまなサポートRDF構文でできすでに出力RDFグラフ、ライターを使用しています。

+0

RDFは、XMLとXMLでいくつかの文字列であるので、いくつかのtoStringメソッドが便利になります。あなたはリソースとリテラルの違いについて私に説明することができますか? – hudi

+0

これはモデルをRDFにシリアル化する適切な方法ではありません。 cygriが示すように、モデルはサポートされているRDF構文の出力ストリーム/ライターに自分自身を書くことができますが、手作業では行いません。 – Michael

+0

そのコードはJENAフレームワークのドキュメントにあります。上記の投稿には参照があり、確認することができます。 – bchetty

関連する問題