jane中本体解析的方法

上传人:飞*** 文档编号:39980529 上传时间:2018-05-21 格式:DOC 页数:5 大小:39KB
返回 下载 相关 举报
jane中本体解析的方法_第1页
第1页 / 共5页
jane中本体解析的方法_第2页
第2页 / 共5页
jane中本体解析的方法_第3页
第3页 / 共5页
jane中本体解析的方法_第4页
第4页 / 共5页
jane中本体解析的方法_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《jane中本体解析的方法》由会员分享,可在线阅读,更多相关《jane中本体解析的方法(5页珍藏版)》请在金锄头文库上搜索。

1、在 Myeclipse 中实现 Jena可以在 Jena 的主页(http:/ Jena 的最新版本,目前是 Jena2.4 版本。Jena 是 Java API,所以需要 Java 运行环境。本文使用的是 jdk1.5.0_04 和 Eclipse3.2。1)将下载的 Jena-2.4.zip 解压到任意路径,解压之后生成 Jena2.4 文件夹,将 Jena2.4lib 下的 jar 文件全部加入 CLASSPATH,这样就可以在任意的 Java 编辑器中调用 Jena API 了。在解压目录下有一个 test.bat 文件,用于配置的测试。在控制台运行此程序,如果你的配置正确,测试将顺利

2、完成。2)如果使用 Eclipse,则可以通过修改工程的 Java 创建路径的方法导入 Jena jar 文件。在 Eclipse 下创建 Java 工程(eg:OWL_SQL.java),右健单击工程名字,选择“属性/Properties”,在打开的对话框中选择“Java 创建路径/Java Build Path”,在右边标签中选择“库/Libraries”,之后选择“添加外部文件/Add Extenal JARs”,找到 Jena2.4lib 目录下的所有 jar 文件并将其添加到工程。这样就可以运行 Jean 文档中的例子了。3)在 Eclipse 中用同样的方法导入 mysql-con

3、nector-java-5.0.8-bin.jar 到工程 OWL_SQL.java 中。import java.io.*;import java.sql.SQLException;import com.hp.hpl.jena.db.*;import com.hp.hpl.jena.rdf.model.*;public class OWL_SQL1 public static final String strDriver =“com.mysql.jdbc.Driver“; / path of driver classpublic static final String strURL =“jdb

4、c:mysql:/localhost:3306/avan“; / URL of databasepublic static final String strUser =“root“; / database user idpublic static final String strPassWord =“root“; / database passwordpublic static final String strDB=“MySQL“; / database typepublic static void main(String args)try/ 创建一个数据库连接IDBConnection co

5、nn = new DBConnection ( strURL, strUser, strPassWord, strDB );/ 加载数据库驱动类,需要处理异常tryClass.forName(strDriver); catch(ClassNotFoundException e) System.out.println(“ClassNotFoundException, Driver is not available.“);/ 使用数据库连接参数创建一个模型制造器ModelMaker maker = ModelFactory.createModelRDBMaker(conn);/ 创建一个默认模型,

6、命名为 MyOntologyModel defModel = maker.createModel(“TNB“);/ 准备需要存入数据库的本体文件,建立输入文件流FileInputStream inputStreamfile = null;try File file = new File(“D:Program FilesProtege_3.1TNB.owl“);inputStreamfile = new FileInputStream(file); catch (FileNotFoundException e) e.printStackTrace();System.out.println(“On

7、tology File is not available.“);InputStreamReader in = null;try in = new InputStreamReader(inputStreamfile, “UTF-8“); catch (UnsupportedEncodingException e) e.printStackTrace();/ 读取文件defModel.read(in,null);/ 关闭输入流读取器try in.close(); catch (IOException e) e.printStackTrace();/ 执行数据转换,将本体数据存入数据库defMmit

8、();/ 关闭数据库连接try conn.close(); catch (SQLException e) e.printStackTrace(); catch(RDFRDBException e)System.out.println(“Exceptions occur.“); 二,Jena Ontology APIJena2.4 的 Ontology API 包含在 ontology 包(com.hp.hpl.jena.ontology)中,可以在目录Jena-2.4srccomhphpljenaontology 下查看所有程序的代码,Jena 本体部分的说明网页是Jena-2.4docont

9、ologyindex.html,本部分内容以及程序的编写主要参考这两个文档。在语义网上有很多表示本体信息的本体语言,其中表达能力最强的是 OWL,OWL 按复杂程度分为 OWL Full、OWL DL 和 OWL Lite 三个版本。其他的本体语言还有 RDFS、DAML+OIL。Jena Ontology API 为语义网应用程序开发者提供了一组独立于具体语言的一致编程接口。Jena 提供的接口本质上都是 Java 程序,也就是.java 文件经过 javac 之后生成的.class 文件。显然,class 文件并不能提示本体创建使用的语言。为了区别于其他的表示方法,每种本体语言都有一个自己

10、的框架(profile),它列出了这种语言使用的类(概念)和属性的构建方式和 URI。因此,在 DAML 框架里,对象属性()的 URI 是 daml:ObjectProperty,而在 OWL 框架里却是 owl:ObjectProperty。RDFS 并没有定义对象属性,所以在 RDFS 框架里,对象属性的 URI 是 null。在 Jena 中,这种框架通过参数的设置在创建时与本体模型(Ontology Model)绑定在一起。本体模型继承自 Jena 中的 Model 类。Model 允许访问 RDF 数据集合中的陈述(Statements),OntModel 对此进行了扩展,以便支持

11、本体中的各种数据对象:类(classes)、属性(properties)、实例(个体 individuals)。本部分简单介绍要用到的几个 java 类或者接口。1本体模型 OntModel本体模型(OntModel)是对 Jena RDF 模型的扩展(继承自 RDF 模型),提供了处理本体数据的功能。使用 Jena 处理本体首先就是要建立一个本体模型,之后就能够通过本体模型中所定义的方法操作模型,比如导入子模型()、获取模型中本体的信息、操作本体属性以及将本体的表示输出到磁盘文件等等。Jena通过 model 包中的 ModelFactory 创建本体模型,ModelFactory 是 Je

12、na 提供用来创建各种模型的类,在类中定义了具体实现模型的成员数据以及创建模型的二十多种方法。一个最简单的创建本体模型的语句如下:OntModel ontModel = ModelFactory.createOntologyModel();该语句不含参数,应用默认设置创建一个本体模型 ontModel,也就是说:它使用 OWL 语言、基于内存,支持 RDFS 推理。可以通过创建时应用模型类别(OntModelSpec)参数创建不同的模型,以实现不同语言不同类型不同推理层次的本体操作。例如,下面的语句创建了一个使用 DAML 语言内存本体模型。直观地讲,内存模型就是只在程序运行时存在的模型,它没

13、有将数据写回磁盘文件或者数据库表。OntModel ontModel = ModelFactory.createOntologyModel( OntModelSpec.DAML_MEM );更多类型设置可以参照 OntModelSpec 类中的数据成员的说明。我们所使用的本体是从 OWL 文件获得的,也就是说,是从磁盘读取的。读取的方法是调用 Jena OntoModel 提供的 Read 方法。例如ontModel.read(“file:D:/temp/Creatrue/Creature.owl“);就是读取位于 D 盘相应目录下的 Creature.owl 文件以建立本体模型。Read 方

14、法也有很多重载,上面调用的方法以文件的绝对路径作为参数。其他的方法声明如下read( String url );read( 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 );2文档管理器 Document manager本体文档管理器(OntDo

15、cumentManager)是用来帮助管理本体文档的类,它包含了导入本体文档创建本体模型、帮助缓存下载网络上的本体等功能。每个本体模型都有一个相关联的文档管理器。在创建本体模型时,可以创建独立的文档管理器并作为参数传递给模型工厂(ModelFactory)。文档管理器有非常多的配置选项,基本可以满足应用的需求。首先,每个文档管理器的参数都可以通过 Java 代码来设置(注:OntDocumentManager 有五种重载的构造函数)。另外,文档管理器也可以在创建的时候从一个 RDF 格式的策略文件读取相应设定值。下面的例子创建一个文档管理器并将它与以创建的本体模型关联。OntModel m =

16、 ModelFactory.createOntologyModel();OntDocumentManager dm = m.getDocumentManager();3接口 OntClass这个接口中定义了本体中与概念(也就是类 Class)相关的操作,通过 OntModel 中的 listClasses()便可以返回模型中的所有概念组成的迭代器(Iterator),然后调用 OntClass 的各种方法具体进行具体操作。OntoClass 对概念之间的各种关系都有相应的定义方法,典型的有添加子类、添加约束、创建互斥概念、迭代返回某种类型的概念以及相关的逻辑判断等等。第四部分的例子主要是应用这个类的方法。4基本本体类型 OntResource所有本体 API 中用于表示本体的类继承自 OntResource,这样就可以在 OntResource

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号