


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1、 OntModel ontModel = ModelFactory.createOntologyModel();Jena通过model包中的ModelFactory创建本体模型,ModelFactory是Jena提供用来创建各种模型的类,在类中定义了具体实现模型的成员数据以及创建模型的二十多种方法。该语句不含参数,应用默认设置创建一个本体模型ontModel,也就是说:它使用OWL语言、基于内存,支持RDFS推理。可以通过创建时应用模型类别(OntModelSpec)参数创建不同的模型,以实现不同语言不同类型不同推理层次的本体操作。例如,下面的语句创建了一个使用DAML语言内存本体模型。直
2、观地讲,内存模型就是只在程序运行时存在的模型,它没有将数据写回磁盘文件或者数据库表。OntModel ontModel = ModelFactory.createOntologyModel( OntModelSpec.DAML_MEM );更多类型设置可以参照OntModelSpec类中的数据成员的说明。2、 ontModel.read(file:D:/temp/Creatrue/Creature.owl);读取的方法是调用Jena OntoModel提供的Read方法。Read方法也有很多重载,上面调用的方法以文件的绝对路径作为参数。其他的方法声明如下read( String url );r
3、ead( Reader reader, String base );read( InputStream reader, String base );read( String url, String lang );read( Reader reader, String base, String Lang );read( InputStream reader, String base, String Lang );3、OntModel m = ModelFactory.createOntologyModel();OntDocumentManager dm = m.getDocumentManage
4、r();创建一个文档管理器并将它与以创建的本体模型关联。本体文档管理器(OntDocumentManager)是用来帮助管理本体文档的类,它包含了导入本体文档创建本体模型、帮助缓存下载网络上的本体等功能。每个本体模型都有一个相关联的文档管理器。在创建本体模型时,可以创建独立的文档管理器并作为参数传递给模型工厂(ModelFactory)。文档管理器有非常多的配置选项,基本可以满足应用的需求。首先,每个文档管理器的参数都可以通过Java代码来设置(注:OntDocumentManager有五种重载的构造函数)。另外,文档管理器也可以在创建的时候从一个RDF格式的策略文件读取相应设定值。4、接口O
5、ntClass这个接口中定义了本体种与概念(也就是类Class)相关的操作,通过OntModel中的listClasses()便可以返回模型中的所有概念组成的迭代器(Iterator),然后调用OntClass的各种方法具体进行具体操作。OntoClass对概念之间的各种关系都有相应的定义方法,典型的有添加子类、添加约束、创建互斥概念、迭代返回某种类型的概念以及相关的逻辑判断等等。5、基本本体类型OntResource所有本体API中用于表示本体的类继承自OntResource,这样就可以在OntResource中放置所有类公用的功能,并可以为一般的方法设置通用的返回值。Java接口OntRe
6、source扩展了Jena的RDF资源接口,所以任何可以接受资源或者RDFNode的方法都可以接受OntResource,并且也就可以接受任何其他本体值。虽然这个类涵盖了涉及本体的所有类,在例子中并没有使用它。6、创建一个等价类:OntModel ontModel = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM);ontModel.read(file:./Creature.owl); / 读取当前路径下的文件,加载模型/ 定义一个类作为模型中Animal类的等等价类,并添加注释OntClass cls = ontModel.cre
7、ateClass(:DongwuClass);cls.addComment(the EquivalentClass of Animal., EN);/ 通过完整的URI取得模型中的Animal类OntClass oc = ontModel.getOntClass(http:/www.owl-oc.addEquivalentClass(cls); / 将先前定义的类添加为Animal的等价类createClass:创建一个类addComment:增加注释getOntClass:取得模型中的类addEquivalentClass:定义等价类7、迭代显示模型中的类for (Iterator i =
8、ontModel.listClasses(); i.hasNext();) OntClass c = (OntClass) i.next(); / 返回类型强制转换if (!c.isAnon() / 如果不是匿名类,则打印类的名字/ 获取类的URI并输出,在输出时对URI做了简化(将命名空间前缀省略)/ 处理Animal类if (c.getLocalName().equals(Animal) / 如果当前类是Animal/ 输出等价类的注释/ 处理Animal结束/ 迭代显示当前类的直接父类for (Iterator it = c.listSuperClasses(); it.hasNext(
9、);)OntClass sp = (OntClass) it.next();String str = c.getModel().getGraph().getPrefixMapping().shortForm(c.getURI()+ s superClass is ;/ 获取URIString strSP = sp.getURI();try / 另一种简化处理URI的方法str = str + : + strSP.substring(strSP.indexOf(#)+1);catch( Exception e ) / super class ends/ 迭代显示当前类的直接子类for (Iter
10、ator it = c.listSubClasses(); it.hasNext();)OntClass sb = (OntClass) it.next();+ sb.getModel().getGraph().getPrefixMapping().shortForm(sb.getURI();/ suber class ends/ 迭代显示与当前类相关的所有属性for(Iterator ipp = c.listDeclaredProperties(); ipp.hasNext();)OntProperty p = (OntProperty)ipp.next();/ property ends/
11、 anonymity endselse / 是匿名类/ for ends8、c.getModel().getGraph().getPrefixMapping().shortForm(c.getURI()/获得简化了的URI名称c.getEquivalentClass()/获得当前类的等价类 c.getEquivalentClass().getComment(EN)/等价类的注释处理URI字串的方法一:c.getModel().getGraph().getPrefixMapping().shortForm(c.getURI()方法二:String str = c.getModel().getGr
12、aph().getPrefixMapping().shortForm(c.getURI()+ s superClass is ;String strSP = sp.getURI();try / 另一种简化处理URI的方法str = str + : + strSP.substring(strSP.indexOf(#)+1);catch( Exception e )9、/ 迭代显示模型中的类for (Iterator i = ontModel.listClasses(); i.hasNext();)/ 迭代显示当前类的直接父类for (Iterator it = c.listSuperClasse
13、s(); it.hasNext();)/ 迭代显示当前类的直接子类for (Iterator it = c.listSubClasses(); it.hasNext();)/ 迭代显示与当前类相关的所有属性for(Iterator ipp = c.listDeclaredProperties(); ipp.hasNext();)10、创建资源并为其增加属性:ModelFactory.createDefaultModel();/创建默认的本体模型model.createResource(personURI);/创建资源johnSmith.addProperty(VCARD.FN, fullName);/创建资源属性static String personURI = http:/somewhere/JohnSmith;static String fullName = John Smit
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 45850.1-2025包装袋试验条件第1部分:纸袋
- 汉字构成方式课件
- 2025年内蒙古巴彦淖尔市乌拉特前旗第三中学九年级下学期学业水平考试模拟(三模)化学试卷(含答案)
- 汉字听写大赛课件封面
- “职”引未来知到智慧树答案
- 春节放假的通知模板集合四篇
- 2025湖南省国内旅游合同
- 军事理论-综合版知到智慧树答案
- 水龙吟课件苏轼
- Ubuntu Linux 22.04系统管理与服务器配置 课件 项目5 配置常规网络与使用远程服务
- 航天飞行器模型设计教学
- 边坡稳定性分析评价报告
- 记账实操-节能环保企业的全盘账务处理实例
- 居间合同协议书范本txt下载
- 卵巢癌类器官规范化建立及临床转化初步应用专家共识(2025年版)解读
- 2024-2025学年三年级英语下册期末试卷(PEP版)(含答案含听力原文无音频)
- 解剖学基础课程全册教案
- 2024-2025学年江苏省南京市联合体九年级上学期期中化学试题及答案
- 2025年特种设备电站锅炉司炉G2考前必练题库500题(含真题、重点题)
- 秋季驾驶员安全培训
- 三员培训考试试题及答案
评论
0/150
提交评论