2017-03-10 10 views
0

RDF4J初心者の質問RDFを書くためにどのように - 私は、ファイルからこのRDFをロードすると元の形式で

を:このコード

String fileName = "foaf.rdf"; 
try { 
    InputStream is = new FileInputStream(fileName); 
    Model model = Rio.parse(is, "", RDFFormat.RDFXML); 
    System.out.println(); 
    Rio.write(model, System.out, RDFFormat.RDFXML); 
    System.out.println(); 
    is.close(); 
} 
catch (Exception ex) { 
    System.out.println(ex.toString()); 
} 
を使用して

<?xml version="1.0" encoding="UTF-8"?> 
<rdf:RDF 
    xmlns:foaf="http://xmlns.com/foaf/0.1/" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema#" 
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> 

<foaf:Person> 
<foaf:name>My Name</foaf:name> 
</foaf:Person> 

</rdf:RDF> 

出力は次のようになります。

<?xml version="1.0" encoding="UTF-8"?> 
<rdf:RDF 
    xmlns:foaf="http://xmlns.com/foaf/0.1/" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema#" 
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> 

<rdf:Description rdf:nodeID="node1basf0r6vx1"> 
    <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Person"/> 
    <foaf:name rdf:datatype="http://www.w3.org/2001/XMLSchema#string">My Name</foaf:name> 
</rdf:Description> 

</rdf:RDF> 

どのようにRDFを元の形式で印刷するようになっていますか?

+0

どのような場合ですか?なぜ、まったく同じ形式を取り戻す必要がありますか? – ChristophE

+0

WYSIWYGオントロジーエディタ。ユーザーが有効な特定の形式で文書をアップロードした場合、文書は同じ形式で表示されます。 – kgu87

+0

少し難しいでしょう。ここでfoaf:personを提供しましたが、URIのような実際の識別子はありません。 RDF4Jはあなたのデータを扱うためにBNodeを作成し、このわずかに変更されたファイルを取得する理由を示します。 ProtegéのようなWYSIWIGオントロジーエディターであれば、なぜユーザーがファイルを見る必要があるのか​​わかりません。 – ChristophE

答えて

1

RDF4Jにもきれいな印刷機能があります。多分、これはあなたの出力を助けることができます。

ライターを作成してからpretty printをtrueに設定するだけです。

Rio.createWriter(format, outputStream).set(BasicWriterSettings.PRETTY_PRINT, true) 
関連する問題