Webアプリ開発エンジニアのための技術情報サイト「テックスコア」

9. Property,Literalの生成

2006.02.21 株式会社四次元データ 中井隆史

9.1. Property

Property インタフェースを実装したオブジェクトは、 Model インタフェースの createProperty() メソッドを使用して生成します。

Model インタフェースの createProperty() メソッドの主な種類

メソッド 説明
Property createProperty(java.lang.String uri) uri に関連付けられたプロパティを生成します。
Property createProperty(java.lang.String nameSpace, java.lang.String localName) URI を名前空間とローカルネームに分けて指定してプロパティを生成します。

この二つの引数のとり方は URI の指定の仕方の違いです。 例えば次の p1, p2 は同じプロパティを表します。

Property p1 = model.createProperty("http://4dd.co.jp/editor");
Property p2 = model.createProperty("http://4dd.co.jp/","editor");

Property は Resource のサブインターフェースです。 また RDF の概念としてもプロパティはリソースです。 そのため Resource の場合と同じく、このメソッドで取得されたオブジェクトに対して 何らかの操作を行うと、取得元となった Model に反映されます。

9.2. Literal

Literal インタフェースを実装したオブジェクトは、 Model インタフェースの createLiteral() メソッドや createTypedLiteral() メソッドを使用して生成します。 前者はデータ型の無いリテラルを生成し、後者はデータ型の付いたリテラルを生成します。 データ型の無いリテラルについては、多くの場合オブジェクトにする必要はありません。 しかしデータ型の付いたリテラルを使用するには、値と型を合わせて管理することができるため有用です。

Model インタフェース createLiteral() メソッドの主な種類

メソッド 説明
Literal createLiteral(java.lang.String v) 型無しリテラルを生成します。
Literal createLiteral(java.lang.String v, java.lang.String language) 言語を指定された、型無しリテラルを生成します。
Literal createLiteral(基本データ型/*int, double等*/ o) 第一引数を値に持つ、型無しリテラルを生成します。
Literal createLiteral(java.lang.Object v) v.toString() を値として持つ、型無しリテラルを生成します。
Literal createTypedLiteral(java.lang.String v) xsd:string をデータ型として持つ、文字列リテラルを生成します。
Literal createTypedLiteral(基本データ型/*int, double等*/ f) 各データ型を持つ、リテラルを生成します。
Literal createTypedLiteral(java.lang.String value, java.lang.String typeURI) 第二引数を型として持つ、リテラルを生成します。
Literal createTypedLiteral(java.lang.Object value) v.toStoring を値として持つ、文字列型のリテラルを生成します。
Literal createTypedLiteral(java.util.Calendar d) xsd:dateTime 型の日時を表す、リテラルを生成します。

データ型でよく利用されるのは XML Schema の語彙です。 次のように語彙集を使うと xsd:dateTime 型のリテラルを生成できます。

Literal l1 = model.createTypedLiteral("2005-06-17T09:42:24.983Z"
                                           ,XSD.dateTime.getURI());

同様の操作は直接 URI を指定しても実現できます。 また com.hp.hpl.jena.datatypes.RDFDatatypeや com.hp.hpl.jena.datatypes.xsd.XSDDatatype などのような データ型を扱う専用のインタフェースやクラスもあります。

Literal l2 = model.createTypedLiteral("2005-06-17T09:42:24.983Z"
                        ,"http://www.w3.org/2001/XMLSchema#dateTime");
Literal l3 = model.createTypedLiteral("2005-06-17T09:42:24.983Z",
                                       XSDDatatype.XSDdateTime);

このような型付きリテラルのXMLによる表現は次のようになります。 これは"2005-06-17T09:42:24.983Z"のデータ型が、日時であることを明記した表現です。

<rdf:Description rdf:about="http://4dd.co.jp/">
   <dc:date rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">
      2005-06-17T09:42:24.983Z
   </dc:date>
</rdf:Description>

XML以外の構文では、次のようにして型付きリテラルを表現します。

"2005-06-17T09:42:24.983Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>


前のページへ TECHSCOREのTOPページへ 次のページへ
TECHSCORE PR
PR
PR
PR
PR
PR

techscore(トップページへ)
TECHSCORE書店
TECHSCOREトップページJavaSQLXMLリッチクライアントモデリングセマンティックWebその他技術Tuigwaa