6. RDFの出力(Model)2006.01.31 株式会社四次元データ 中井隆史
Jena 6章 RDFの出力(Model)
6.1. RDFの出力jena を使って RDF を出力する方法について説明します。 RDF を出力するには、主に Model インタフェースの write() メソッドを使う方法と、 com.hp.hpl.jena.model.RDFWriter インタフェースを使う方法があります。 これらの方法について本章と次章で順に解説します。 6.2. Modelの出力機能Model インタフェースには 読み込み用の read() メソッドと同様に、 ファイルシステムや Web に RDF データを書き込む write() メソッドがあります。 次のコードは read() メソッドのところで使ったものと基本的に同じものです。 write() メソッドを使って RDF のデータを出力しています。 1: import com.hp.hpl.jena.rdf.model.Model;
2: import com.hp.hpl.jena.rdf.model.ModelFactory;
3:
4: public class OutputSample1 {
5: public static void main(String[] args) {
6: try{
7: Model model = ModelFactory.createDefaultModel();
8: model.read("http://www.techscore.com/rss/rss.rdf");
9: model.write(System.out,"RDF/XML-ABBREV");
10: }catch(Exception e){
11: e.printStackTrace();
12: }
13: }
14: }
9行目で write() メソッドを使って model の内容を出力しています。 Model の write() メソッドには次のようなものがあります。
RDF の構文を指定する引数の lang には、 "RDF/XML"、"RDF/XML-ABBREV"、"N3"、"N-TRIPLE"、"TURTLE"などが指定できます。 RDF/XML と RDF/XML-ABBREV の違いは、出力のときのみ現れます。 これは効率と可読性のどちらを優先するかの違いです。 RDF/XML形式
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#" >
<rdf:Description rdf:nodeID="A0">
<vcard:Given>太郎</vcard:Given>
<vcard:Family>四次元</vcard:Family>
</rdf:Description>
<rdf:Description rdf:about="http://4dd.co.jp/">
<vcard:N rdf:nodeID="A0"/>
</rdf:Description>
</rdf:RDF>
RDF/XML-ABBREV形式
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#">
<rdf:Description rdf:about="http://4dd.co.jp/">
<vcard:N rdf:parseType="Resource">
<vcard:Given>太郎</vcard:Given>
<vcard:Family>四次元</vcard:Family>
</vcard:N>
</rdf:Description>
</rdf:RDF>
java.io.Writer クラスを引数にする場合は、文字コードに注意が必要です。 Writer 関連のクラスは、出力の文字コードが指定できたり、システム環境の文字コードで出力したりします。 しかし XML 以外の構文は特定の文字コードで書かれるように定められていたり、 逆に文字コードに対する仕様が明確に定まっていなかったりします。 また XML も UTF-8 や UTF-16 以外の文字コードについては、パーサが処理できるとは限りません。 そのため、特定の文字コードを使った XML の出力を行いたい場合を除けば、使うべきではありません。 またModel インタフェースの write() メソッドは手軽に出力できますが、 文字コードの指定をせずに XML を出力すると XML 宣言が出力されません。 XML の構文上は間違いではありませんが、 XML 宣言はある方が望ましいです。 XML 宣言を確実に出力するには、次章の RDFWriter インタフェースを使う必要があります。 |
![]()
![]()
|