在技术实现方面,语义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
语义Web和本体开发相关技术的更多相关文章
-
01_学习java WEB涉及到的相关技术
http协议 Tomcat服务器 Servlet技术 JSP技术 HTML CSS Javascript JDBC技术 MySQL.Oracle SQL语言 JavaBean 常用开源组件 DO ...
-
五分钟学Java:如何才能学好Java Web里这么多的技术
原创声明 本文作者:黄小斜 转载请务必在文章开头注明出处和作者. 系列文章介绍 本文是<五分钟学Java>系列文章的一篇 本系列文章主要围绕Java程序员必须掌握的核心技能,结合我个人三年 ...
-
关于Web开发里并发、同步、异步以及事件驱动编程的相关技术
一.开篇语 我的上篇文章<关于如何提供Web服务端并发效率的异步编程技术>又成为了博客园里“编辑推荐”的文章,这是对我写博客很大的鼓励,也许是被推荐的原因很多童鞋在这篇文章里发表了评论,有 ...
-
网络统计学与web前端开发基础技术
网络统计学与web前端开发基础技术 学习web前端开发基础技术(网页设计)需要了解:HTML.CSS.JavaScript三种语言.下面我们就来了解一下这三门技术在网页设计中的用途: HTML是网页内 ...
-
Java Web相关技术(汇聚页)
Java Web相关技术(汇聚页) 初学Java Web(2)——搭建Java Web开发环境
-
Jena语义Web开发101
2015/05/28更新 代码在 https://github.com/zhoujiagen/semanticWebTutorialUsingJena 前言 该手册参考和扩展“Hebeler J, F ...
-
SSE及相关技术(web sockets, long polling等)
server-sent events--One Way Messaging 允许网页获得来自服务器的更新,并且自动更新 Server-Sent Events: allow a web page to ...
-
【web开发】web前端开发常用技术总结归纳
技术选型规范规范 • Vue版本:2.x • 前端路由:vue-route • 异步请求:Axios • 全局状态管理:VueX • css预处理器:sass/less • h5项目移动端适配规则:使 ...
-
Web应用程序开发,基于Ajax技术的JavaScript树形控件
感谢http://www.cnblogs.com/dgrew/p/3181769.html#undefined 在Web应用程序开发领域,基于Ajax技术的JavaScript树形控件已经被广泛使用, ...
随机推荐
-
使用spring aspect控制自定义注解
自定义注解:这里是一个处理异常的注解,当调用方法发生异常时,返回异常信息 /** * ErrorCode: * * @author yangzhenlong * @since 2016/7/21 */ ...
-
Arch Linux LibreOffice 中文输入法不能切换
From: http://blog.csdn.net/shallowgrave/article/details/8501629 卸载libreoffice-kde4 # pacman -R libre ...
-
CH Round #55 - Streaming #6 (NOIP模拟赛day2)解题报告
T1九九归一 描述 萌蛋在练习模n意义下的乘法时发现,总有一些数,在自乘若干次以后,会变成1.例如n=7,那么5×5 mod 7=4,4×5 mod 7=6,6×5 mod 7=2,2×5 mod 7 ...
-
python 反射调用
因为目前在写一个python的项目,用到了Python的反射机制,所以做一下笔记,把写项目过程中的感悟记下来. 先简单介绍下Demo用到的函数: sys.path 是python的模块的路径集,是一个 ...
-
AIX 系统中 PVID 的含义与作用
网址: http://www.eygle.com/digest/2008/06/aix_pvid.html Pvid是aix系统中的ODM LVM用于识别PV的序列号,操作系统通过pvid来识别pv, ...
-
C#中调用存储过程:带输入输出参数
using (SqlConnection conn = new SqlConnection(this.GetConnectionString(this.WMPDBName))) { SqlComman ...
-
Flex前台和后台WCF服务之间数据的接收与传输
1.首先在flex程序中通过添加webservice,方式是主菜单Data->Connect to WebService,然后输入wsdl文档的地址.如果输入地址后始终添加不进了,或者报错,一般 ...
-
机器学习中的数学(4)-线性判别分析(LDA), 主成分分析(PCA)
版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系wheeleast@gm ...
-
Maven私有仓库-使用docker部署Nexus
查看官方镜像说明 nexus2 nexus3 建议使用nexus2,可能网上的资料这个版本居多. 我选择的是nexus3,~~~ 启动容器 官方说明中提到的是使用docker直接启动.我选择用dock ...
-
关于JavaScript线程的讲解
讲述js执行的相关线程.DOM操作等问题.参考博客:http://www.codeceo.com/article/javascript-threaded.html