私はJENAライブラリでRDFファイルを作成します:Model model = ModelFactory.createDefaultModel();
... これをどのように文字列に変換できますか?RDFを文字列に変換する方法
THX
私はJENAライブラリでRDFファイルを作成します:Model model = ModelFactory.createDefaultModel();
... これをどのように文字列に変換できますか?RDFを文字列に変換する方法
THX
はこのような何かを試してみてください。あなただけSystem.out
にダンプしたい場合は、それがさらに簡単です:
model.write(System.out, "RDF/XML-ABBREV");
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グラフ、ライターを使用しています。
RDFは、XMLとXMLでいくつかの文字列であるので、いくつかのtoStringメソッドが便利になります。あなたはリソースとリテラルの違いについて私に説明することができますか? – hudi
これはモデルをRDFにシリアル化する適切な方法ではありません。 cygriが示すように、モデルはサポートされているRDF構文の出力ストリーム/ライターに自分自身を書くことができますが、手作業では行いません。 – Michael
そのコードはJENAフレームワークのドキュメントにあります。上記の投稿には参照があり、確認することができます。 – bchetty