蔷薇皇帝

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

因为实验室研究课题和项目需要,最近开始接触Jena,准备将自己这段时间每天所学及收获,疑问都记录下来,既可以温故而知新,也希望能对将要学习Jena的同学们一点点帮助。

什么是Jena?A Java API for RDF

什么是RDF?Resource Description Frame(资源描述框架)

简单的来说Jena就是一个被程序员调用来对RDF进行一系列操作的API。

那么什么是Resource(资源)呢?everything is resource

在具体的实现里,resource都需要一个唯一的URI进行标识,同时资源也拥有各种Property(属性),属性的名称也是一个URI。

但是鉴于URI太长,所以我们通常用namespaceprefix:localname的形式作为URI的速记。

一个简单的例子:

 // some definitions
static String personURI    = "http://somewhere/JohnSmith";
static String fullName     = "John Smith";

// create an empty Model
Model model = ModelFactory.createDefaultModel();

// create the resource
Resource johnSmith = model.createResource(personURI);

// add the property
johnSmith.addProperty(VCARD.FN, fullName);

在这个例子中首先我们定义了一些变量,如PersonURI,fullName等。然后生成一个模型(也可以理解成RDF中的图),然后向该模型中添加Property并对其赋值。

当然后两句也可以并在一起执行。

Resource johnSmith =
        model.createResource(personURI)
             .addProperty(VCARD.FN, fullName);

在这个例子中Property的值是常量,当然其值也可以是其他的资源。如下面的例子:

String personURI    = "http://somewhere/JohnSmith";
String givenName    = "John";
String familyName   = "Smith";
String fullName     = givenName + " " + familyName;

// create an empty Model
Model model = ModelFactory.createDefaultModel();

// create the resource
//   and add the properties cascading style
Resource johnSmith
  = model.createResource(personURI)
         .addProperty(VCARD.FN, fullName)
         .addProperty(VCARD.N,
                      model.createResource()
                           .addProperty(VCARD.Given, givenName)
                           .addProperty(VCARD.Family, familyName));

在这个例子中就是将一个资源做为johnSmith这个资源中VACRD.N属性的值,该资源包括两个属性VCARD.Given和VACRD.Family

 

 

 

posted on 2009-06-26 16:24  蔷薇皇帝  阅读(448)  评论(0)    收藏  举报