您的位置:首页 > 其它

Jena学习笔记(1)---创建RDF模型

2006-12-18 19:14 363 查看
在阅读本文之前,我事先假定读者已完成学习思路jena学习笔记(0)的内容,并且已经达到了这两篇文章中所要求的基本技能,这样才能容易的理解本文的内容.

RDF可以看作是一个由结点(node)和弧(arc)组成的图,用图来描述资源,事实上,用图也更能让我们理解RDF的含义。本文将具体说明如何用jena创建RDF模型。思路如下:

1。 了解资源,设计RDF图。首先我们要清楚我们需要描述的资源是什么,以及描述它哪些方面的内容,然后据此画出框图。如本文中,我需要描述我的导师的一些基本情况,这里我的导师就是资源(主体),我导师具有性别、学位、职称、姓名、联系方式等基本信息,那么这些需要描述的信息就是属性(谓词),相应信息的内容就是属性值了(客体)。由于本例也是用来描述人的,所以我也采用了VCARD的模型来描述,如下图。导师由我们学院的网站中导师的资料所在的URL来标志,图中描述了两个属性FN(全称)、 EMAIL(电子邮件),属性值分别是(Ping Liu)、(p.liu@whu.edu.cn



2。 程序实现。在确定了所需要描述的资源对象的属性及属性值后,便可以用jena来实现了。值得注意的是,RDF图在jena中被称为模型(model),因此关于RDF的jena解析在很多情况下都是围绕着模型进行的。要实现如上的RDF图,那么在jena中,我们就首先要创建一个模型,然后给这个模型赋值。很显然,给模型赋值就是给模型添加资源,而资源由是由属性和属性值所构成的。我们可以在doc/javadoc/com/hp/hpl/jena/rdf/model中查看有关模型的类及实现方法。具体如下:

(1)创建(空)模型。ModelFactory类中有许多创建模型的方法,读者可以自行查看,本例创建一个默认的空模型。实现语句是:

Model modelOfLp=ModelFactory.createDefaultModel();

//Model 生命modelOfLp是模型类

(2)给模型赋值。即将我们所需要描述的资源赋给已经创好的空模型。实现语句是:

Resource PingLiu=modelOfLp.createResource(URI)

其中,URI是我们用来标志资源的统一资源标志符。如URI=http://sim.whu.edu.cn/teacher/tea_detail.php?tc_id=70

(3)描述资源。即给资源增加属性及属性值。实现语句是:

PingLiu.addProperty(VCARD.EMAIL,p.liu@whu.edu.cn)

这句话便给modelResource资源添加了EMAIL属性,属性值为p.liu@whu.edu.cn

(4)完整代码。要实现以上功能,需要调用model和ModelFactory两个类,他们分别在com.hp.hpl.jena.rdf.model和com.hp.hpl.jena.vocabulary两个包中。创建本例的完整代码如下:

import com.hp.hpl.jena.vocabulary.*;
import com.hp.hpl.jena.rdf.model.*;

public class JenaStudy01 extends Object{

static String fullName="Ping Liu";
static String email="p.liu@whu.edu.cn";
static String personURI="http://sim.whu.edu.cn/teacher/tea_detail.php?tc_id=70";

public static void main(String args[]){

Model modelOfLp=ModelFactory.createDefaultModel();

Resource PingLiu=modelOfLp.createResource(personURI);
PingLiu.addProperty(VCARD.FN,fullName);
PingLiu.addProperty(VCARD.EMAIL,email);

}

}

这样模型我们需要描述的RDF图就用JENA创建好了。由于本例只是创建模型,并没有将模型结果输出,所以运行结果是不可视的。本节的目的只是需要掌握模型创建的思路和所用到的方法,其运行结果和其他操作将会在后面陆续登出。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: