在技术实现方面,语义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和本体开发相关技术的更多相关文章

  1. 01_学习java WEB涉及到的相关技术

     http协议 Tomcat服务器 Servlet技术 JSP技术 HTML CSS Javascript JDBC技术 MySQL.Oracle SQL语言 JavaBean 常用开源组件 DO ...

  2. 五分钟学Java:如何才能学好Java Web里这么多的技术

    原创声明 本文作者:黄小斜 转载请务必在文章开头注明出处和作者. 系列文章介绍 本文是<五分钟学Java>系列文章的一篇 本系列文章主要围绕Java程序员必须掌握的核心技能,结合我个人三年 ...

  3. 关于Web开发里并发、同步、异步以及事件驱动编程的相关技术

    一.开篇语 我的上篇文章<关于如何提供Web服务端并发效率的异步编程技术>又成为了博客园里“编辑推荐”的文章,这是对我写博客很大的鼓励,也许是被推荐的原因很多童鞋在这篇文章里发表了评论,有 ...

  4. 网络统计学与web前端开发基础技术

    网络统计学与web前端开发基础技术 学习web前端开发基础技术(网页设计)需要了解:HTML.CSS.JavaScript三种语言.下面我们就来了解一下这三门技术在网页设计中的用途: HTML是网页内 ...

  5. Java Web相关技术(汇聚页)

    Java Web相关技术(汇聚页) 初学Java Web(2)——搭建Java Web开发环境

  6. Jena语义Web开发101

    2015/05/28更新 代码在 https://github.com/zhoujiagen/semanticWebTutorialUsingJena 前言 该手册参考和扩展“Hebeler J, F ...

  7. SSE及相关技术(web sockets, long polling等)

    server-sent events--One Way Messaging 允许网页获得来自服务器的更新,并且自动更新 Server-Sent Events: allow a web page to ...

  8. 【web开发】web前端开发常用技术总结归纳

    技术选型规范规范 • Vue版本:2.x • 前端路由:vue-route • 异步请求:Axios • 全局状态管理:VueX • css预处理器:sass/less • h5项目移动端适配规则:使 ...

  9. Web应用程序开发,基于Ajax技术的JavaScript树形控件

    感谢http://www.cnblogs.com/dgrew/p/3181769.html#undefined 在Web应用程序开发领域,基于Ajax技术的JavaScript树形控件已经被广泛使用, ...

随机推荐

  1. HDU 4902

    数据太弱,直接让我小暴力一下就过了,一开始没注意到时间是15000MS,队友发现真是太给力了 #include <cstdio> #include <cstring> ],x[ ...

  2. hdu 4619 Warm up 2(并查集)

    借用题解上的话,就是乱搞题.. 题意理解错了,其实是坐标系画错了,人家个坐标系,我给当矩阵画,真好反了.对于题目描述和数据不符的问题,果断相信数据了(这是有前车之鉴的hdu 4612 Warm up, ...

  3. java 访问器方法中对象引用的问题

    "注意不要编写返回引用可变对象的访问器方法".因为会破坏类的封装性,引用的内容可能会被改变,产生业务逻辑上的错误. 什么是可变对象? 先要搞清楚java中值传递和引用传递的问题,总结如下: 1.对象就 ...

  4. CSS的伪元素(二)

    随便聊聊CSS的伪元素,虽然它们在项目开发中用的并不多,但确实很有用,在项目中不用它,是因为大家不能了解它们,下面是一个工作场景,如有四个按钮,分别是建立,编辑,删除和修改,而我们要求这在前台显示的汉 ...

  5. 她让我懂得了怎样学习Flash

    原文:http://www.asv5.cn/blog/article.asp?id=169 最近忙着寻找两样丢失了很久的东西,都是她帮我找回来的,第一样叫做自信,第二样叫做梦想.也正因为有了她,我才从 ...

  6. cgroup隔离的知识点

    tasks中写入的是线程号 cgroup.procs是进程号 ===================CPU隔离===================== 主机CPU核数: cat /proc/cpui ...

  7. POJ 1077 Eight

    题意:经典的八数码=3= 3*3的格子,里面有1~8这8个数字,还有一个空格x,移动空格的位置,直到移到1~8按顺序排好,输出移动的序列. 解法:看到题果断写了个广搜……然后T了……百度了一下说广搜虽 ...

  8. linux-LINUX试题

    ylbtech-doc:linux-LINUX试题 LINUX试题 1.A,LINUX试题返回顶部 01.{Linux题目}在使用匿名登录ftp时,用户名为(  )? (选择1项) A) login ...

  9. C# delegate 学习 (练这么久终于悟出来点东东了,继续加油! ^_^)

    前言 从事开发工作两年有余了,但还是对Delegate,Event神马的看见就头疼,文章看过无数,自己也练习过好多遍,但到用的时候或者人家换了一种形式之后就又不懂了,哎~智商捉急啊!! 但是,这两天的 ...

  10. 【LeetCode 221】Maximal Square

    Given a 2D binary matrix filled with 0's and 1's, find the largest square containing all 1's and ret ...