SHINN::Scribble

2007.12.18

Jena で独自ネームスペースを追加  はてなブックマーク - Jena で独自ネームスペースを追加

RDF の処理用に Jena を試しているのですが,簡単な RDF の出力に成功したので,今度は独自ネームスペースを追加してみました。

独自ネームスペースを追加するにあたり,以下のものを想定しました。

  • プロフィールを記述するものとし,プレフィックスを profile とする。
  • flickr,mixi,gree の URL を示すものを用意する。
  • URI を http://shinn.boo.jp/elements/1.0/ とする。

Jena で独自ネームスペースを追加する場合,専用のクラスを定義して,各語彙をスタティック変数として宣言するようです。上記の条件を満たすネームスペース用のクラスは,以下のようになります。

public class PROFILE {
  private static Model m_model =
      ModelFactory.createDefaultModel();
  public static final String NS =
      "http://shinn.boo.jp/elements/1.0/";
  public static final Resource NAMESPACE =
      m_model.createResource(NS);

  public static String getURI() { return NS; }

  public static final Property flickr =
      m_model.createProperty(NS + "flickr");
  public static final Property mixi =
      m_model.createProperty(NS + "mixi");
  public static final Property gree =
      m_model.createProperty(NS + "gree");
}

定義したネームスペースを利用して,「このブログの作成者は【SHINN】で,タイトルは【SHINN::Scribble】であり,Flickr の URL は 【http://www.flickr.com/photos/shinichi/】 である」という RDF を作成してみます(Model 生成部分は省略)。

model.setNsPrefix("profile",
    "http://shinn.boo.jp/elements/1.0/");
Resource myBlog = model.createResource(
    "http://shinn.boo.jp/blog/");
myBlog.addProperty(DC.creator, "SHINN");
myBlog.addProperty(DC.title, "SHINN::Scribble");
Resource flickr = model.createResource(
    "http://www.flickr.com/photos/shinichi/");
model.add(myBlog, PROFILE.flickr, flickr);

生成した RDF を出力すると以下のようになり,想定したとおりです。

<rdf:RDF
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns:profile="http://shinn.boo.jp/elements/1.0/"
 xmlns:dc="http://purl.org/dc/elements/1.1/">
 <rdf:Description rdf:about="http://shinn.boo.jp/blog/">
  <dc:creator>SHINN</dc:creator>
  <dc:title>SHINN::Scribble</dc:title>
  <profile:flickr
   rdf:resource="http://www.flickr.com/photos/shinichi/"/>
 </rdf:Description>
</rdf:RDF>

独自ネームスペースの追加は,想像していたよりも簡単でした。次は SPARQL を発行して結果を出力しようと思います。

TrackBackshttp://shinn.boo.jp/mt/mt-tb.cgi/478

Comments

コメントをどうぞ




保存しますか?


 
Mail,メール  twitter,フォロー  RSS,フィード

CATEGORIES

DOWNLOADS

COCOMEISTER

ココマイスターのバッグ

 

    この日記のはてなブックマーク数  Powered by Movable Type 3.33-ja   blogram投票ボタン