在技术实现方面,语义Web和本体理论的研究日趋成熟,已经有许多成熟的工具或程序接口,诸如Jena、OWL API等API是系统实现的关键技术。这里介绍系统的可行性分析以及系统开发设计的关键技术。
1 Jena
Jena[69]是来自于惠普实验室语义Web研究项目的开放资源,是用于创建语义Web应用系统的Java开发工具。Jena是语义Web和本体领域比较流行的开发工具,目前的版本为Jena 2.5.5。下面简单介绍Jena的一些功能。
1) 读写RDF数据
资 源描述框架(Resource Description Framework, RDF)是描述资源的一项标准,Jena文档介绍了RDF和Jena RDF API,其内容包括对Jena RDF包的、RDF模型的创建、读写、查询等操作,以及RDF容器等的介绍和讨论。在Jena中,一个Graph被称为一个模型,并被 com.hp.hpl.jena.rdf.model.Model接口所表示。RDF数据模型是一些Statements的集合,每一个陈述都包括资源, 属性和值三个部分。
2) 本体子系统
Jena 框架包含一个本体子系统(Ontology Subsystem),负责处理本体模型。Jena API允许处理基于RDF的本体数据,支持OWL,DAML+OIL和RDFS等语言。Jena通过文档管理器(DocumentManager)支持对 导入本体的文档管理,通过特定方法获得本体中类和属性的信息,完成类和属性的添加、删除等修改操作。本体子系统与推理子系统结合可以完成本体内部的知识推 理,从本体中提取隐含信息。在系统的本体展示模块,将主要使用本体子系统的类和接口。
3) 推理子系统
Jena 的推理子系统(Inference Subsystem)允许将一些推理引擎或推理机引入到Jena中,从而获得本体数据中隐含的信息。推理机制支持RDFS和OWL等支持推理的语言,可以 执行从实例(instance)到类(class)的推理。应用程序通常使用ModelFactory创建一个支持某种推理机制的本体模型,对该模型的查 询不仅返回原始数据中包含的陈述(statements),而且有一些通过推理机制从原始数据得到的附加信息。Jena提供给基于规则的推理机,包括 RDF推理机,OWL推理机等,在基于规则的推理机中包含了一般的推理功能。用户也可以根据需要自定义推理规则,或者也可以注册使用第三方推理引擎,如 Racer、FaCT、Pellet等。
4) 本体的持久化存储
Jena 允许将本体文件持久化存储到硬盘中,或者是OWL文件,或者是关系数据库。Jena提供了将RDF数据存入关系数据库的接口,在实际操作中,应用程序不必 直接访问数据库(而是通过Jena的API访问),也不必知道数据库的模式。Jena提供了支持MySQL、HSQLDB、PostgreSQL、 Oracle和Microsoft SQL Server等数据库的程序接口。一般来讲,创建数据库模型或者打开先前创建的模型,通过以下四个步骤完成:加载数据库JDBC驱动、创建数据库连接、为 数据库创建一个ModelMaker,最后为本体创建一个模型。
5) 查询模型
Jena 提供了ARQ查询引擎,支持通过SPARQL查询语言或RDQL查询语言对本体模型进行查询。查询引擎与关系数据库相关联,使得查询存储在关系数据库中的 本体时能够达到更高的效率。SPARQL查询是把作为查询条件的三元组(查询模式,Pattern)和本体模型的三元组进行匹配,查询的结果就是条件三元 组与本体文件(或RDF图)中RDF三元组匹配的结果。SPARQL查询是面向数据的,SPARQL语言本身不支持任何推理功能。
2 OWL API
OWL API是专门为W3C推荐的Web本体描述语言OWL所实现的开源Java程序接口,支持对OWL-Lite、OWL-DL和OWL-Full部分元素的 操作。OWL API和Jena同是SourceForge(http://sourceforge.net/)下的开源项目,特别针对OWL描述的本体。OWL API在org.semanticweb.owl.model包中提供了表示OWL本体的类和接口,主要有OWLClass、 OWLObjectProperty、OWLDatatypeProperty和OWLIndividual。OWL API也提供了一系列使用OWL推理机的接口,用于执行本体上的推理任务。目前可用的推理机是Pallet和FaCT++,在使用推理机之前必须下载推理 机的Java API。
3 Protégé
Protégé 是斯坦福大学开发的一个Java开源的本体编辑工具,其GUI界面风格使得用户比较容易掌握和使用。Protégé提供了本体建设的基本功能,使用起来简 单方便,有详细的帮助文档,模块划分清晰,提供完全的API接口,因此基本上成为国内外众多本体研究机构创建本体的首选工具。
Protégé 树形目录结构显示本体中的类和属性,允许用户增加或编辑类、子类、属性、实例等,允许用户在概念层次上进行领域模型设计。Protégé支持多重继承,并 对新数据进行一致性检查。Protégé具有很强的可扩展性,通过安装不同的插件取得对本体的不同操作能力。在Protégé中,本体的文件输出格式可以 定制,可以将Protégé的内部表示转换成多种形式的文本表示格式,包括XML、RDF(S)、OIL、DAML、DAML+OIL和OWL等系列语 言。Protégé支持本体的数据库存储,使用JDBC和JDBC-ODBC桥访问数据库,将本体存入数据库中。
4 Protégé OWL API
Protégé 除了提供本体编辑工具以外,还提供了一整套的OWL API。Protégé OWL API是为Web本体语言OWL和RDF(S)而实现的开源Java类库,该API提供了加载和保存OWL文件、查询和操作OWL数据模型,以及执行基于 描述逻辑的推理的类和方法,这些类和接口主要在edu.stanford.smi.protegex.owl.model包中。当然,它也可以处理 RDF/RDF(S)本体,与此对应的类主要有RDFSNamedClass、RDFProperty和RDFIndividual等。使用 Protégé OWL API操作本体要比使用Jena操作本体简单的多,在许多方面,Protégé OWL API对同样功能的实现要比基于Jena API的实现更加简洁易懂。
[1] SPARQL Query Language for RDF. W3C Recommendation 15 January 2008. http://www.w3.org/TR/rdf-sparql-query/
[2] V. Batagelj. Analysis of large networks - islands. Presented at Dagstuhl seminar 03361: Algorithmic Aspects of Large and Complex Networks, August/September 2003.
[3] http://jena.sourceforge.net/
[4] http://owlapi.sourceforge.net/
[5] Natalya F and Deborah L. Ontology Development101: A Guide to Creating Your First Ontology.Technical report KSL-01-05 Knowledge system laboratory, Stanford University, CA 2001:1-25.
[6] Protégé-OWL API. http://protege.stanford.edu/plugins/owl/api/index.html