jena中文教程本体api

jena中文教程本体api

ID:8970162

大小:225.00 KB

页数:44页

时间:2018-04-13

jena中文教程本体api_第1页
jena中文教程本体api_第2页
jena中文教程本体api_第3页
jena中文教程本体api_第4页
jena中文教程本体api_第5页
资源描述:

《jena中文教程本体api》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、Jena简介一般来说,我们在Protege这样的编辑器里构建了本体,就会想在应用程序里使用它,这就需要一些开发接口。用程序操作本体是很必要的,因为在很多情况下,我们要自动生成本体,靠人手通过Protege创建所有本体是不现实的。Jena是HP公司开发的这样一套API,似乎HP公司在本体这方面走得很靠前,其他大公司还在观望吗?可以这样说,Jena对应用程序就像Protege对我们,我们使用Protege操作本体,应用程序则是使用Jena来做同样的工作,当然这些应用程序还是得由我们来编写。其实Protege

2、本身也是在Jena的基础上开发的,你看如果Protege的console里报异常的话,多半会和Jena有关。最近出了一个ProtegeOWLAPI,相当于对Jena的包装,据说使用起来更方便,这个API就是Protege的OWLPlugin所使用的,相信作者经过OWLPlugin的开发以后,说这些话是有一定依据的。题目是说用Jena处理OWL,其实Jena当然不只能处理OWL,就像Protege除了能处理OWL外还能处理RDF(S)一样。Jena最基本的使用是处理RDF(S),但毕竟OWL已经成为W3C

3、的推荐标准,所以对它的支持也是大势所趋。好了,现在来点实际的,怎样用Jena读我们用Protege创建的OWL本体呢,假设你有一个OWL本体文件(.owl),里面定义了动物类(http://www.zoo.com/ont/Animal,注意这并不是一个实际存在的URL,不要试图去访问它),并且它有一些实例,现在看如下代码:OntModel m = ModelFactory.createOntologyModel();FilemyFile=...;m.read(new FileInputStream(my

4、File), "");ResIterator iter = m.listSubjectsWithProperty(RDF.type, m.getResource("http://www.zoo.com/ont/Animal"));while (iter.hasNext()) {    Resource animal = (Resource) iter.next();    System.out.println(animal.getLocalName());}和操作RDF(S)不同,com.hp.hpl.

5、jena.ontology.OntModel是专门处理本体(Ontology)的,它是com.hp.hpl.jena.rdf.model.Model的子接口,具有Model的全部功能,同时还有一些Model没有的功能,例如listClasses()、listObjectProperties(),因为只有在本体里才有“类”和“属性”的概念。上面的代码很简单,从ModelFactory创建一个OntModel,从指定文件把模型读到内存里。再下面的代码是一个例子,作用是取出模型中所有Animal的实例(Ind

6、ividual,也叫个体),并打印它们的名称。要从OntModel里取实例,也可以用listIndividuals()方法,只不过你得在得到的实例中判断它们是不是Animal的实例,我觉得不如用上面这种简易查询的方式来得方便。Jena里扩展了很多Iterator,比如ResIterator、StmtIterator和NodeIterator等等,刚开始用会觉得很别扭,好象还不如都用java标准的Iterator,不知道Jena的设计者是怎么考虑的。要熟练掌握还是得对整个Jena的API有全局掌握才好。在

7、循环里,我们得到的每个元素都是一个Resource,因为本体里的任何东西都是资源,不论你想得到Subject、Property还是Object,在Jena里实际得到的都是资源(Resource),在Jena里,Property是Resource的子接口,而Jena并没有Subject或Object接口。(注:在OWL本体中,Subject->Property->Object组成一个三元组,例如:张小刚->父亲->张大刚;或者:绵羊多利->rdf:type->动物,rdf:type是一个特殊的属性,表示前

8、者是后者的实例)暂时先写到这,关于在本体中引入其他本体和使用推理,下次继续。本文简单介绍Jena(Jena2.4),使用Protégé3.1(不是最新版本)创建一个简单的生物(Creature)本体,然后参照Jena文档中的一个例子对本体进行简单的处理,输出本体中的Class、Property等信息。本文内容安排如下:Ø         介绍JenaØ         运行JenaØ         JenaOntologyAPIØ    

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。