10. Statement,ReifiedStatementの生成、取得2006.02.28 株式会社四次元データ 中井隆史
Jena 10章 Statement,ReifiedStatementの生成、取得
10.1. Statementオブジェクトの生成Statement インタフェースを実装したオブジェクトは、 Model インタフェースの createStatment() メソッドを使用して生成します。 このメソッドによって新たにステートメントを生成したとしても、 生成と同時に RDF モデルにそのステートメントが追加されるわけではありません。 add(Statement) メソッドを使って追加する必要があります。 しかし Statement インタフェースの changeObject() メソッドを 使ってステートメントに変更を加えたときにも、追加されます。 10.2. ReifiedStatementとはRDF におけるステートメントの、もう一つの表現に具体化されたステートメントがあります。 次の RDF は「太郎のテニスが人々を感動させる」という表現を RDF で表したものです。 <rdf:RDF ……>
<rdf:Statement>
<rdf:subject
rdf:resource="http://tech.4dd.co.jp/yojigen/Taro"/>
<rdf:predicate
rdf:resource="http://tech.4dd.co.jp/yojigen/plays"/>
<rdf:object
rdf:resource="http://tech.4dd.co.jp/yojigen/Tennis"/>
<4dd:impresses
rdf:resource="http://tech.4dd.co.jp/yojigen/People"/>
</rdf:Statement>
……
</rdf:RDF>
この例では「太郎がテニスをする」というステートメントが主語です。 この表現を実現するために、"rdf:Statement"を使ってステートメントを具体化して ID を与えています。 Jena では具体化されたステートメントを、 com.hp.hpl.jena.rdf.model.ReifiedStatementで扱います。 これはステートメント自体を主語に使うためのもので、実際には Statement ではなく Resource のサブインターフェスです。 10.3. createStatement(), createReifiedStatement()Model インタフェースの createStatement(), createReifiedStatement() メソッドには次のようなものがあります。
これらを使って10.2.の RDF に含まれる2つのステートメントを生成すると次のようになります。 Statement s1 = model.createStatement(
model.createResource("http://tech.4dd.co.jp/yojigen/Taro"),
model.createProperty("http://tech.4dd.co.jp/yojigen/plays"),
model.createResource("http://tech.4dd.co.jp/yojigen/Tennis"));
ReifiedStatement rs = model.createReifiedStatement(s1);
Statement s2 = model.createStatement(rs,
model.createProperty("http://tech.4dd.co.jp/yojigen/impresses"),
model.createResource("http://tech.4dd.co.jp/yojigen/People"));
|
![]()
![]()
|