在技术实现方面,语义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. java.lang.NoClassDefFoundError: javax/wsdl/OperationType

    You should find the javax.wsdl package inside wsdl4j.jar Check for the line starting with 'Found IBM ...

  2. (转)博弈问题与SG函数

    博弈问题若你想仔细学习博弈论,我强烈推荐加利福尼亚大学的Thomas S. Ferguson教授精心撰写并免费提供的这份教材,它使我受益太多.(如果你的英文水平不足以阅读它,我只能说,恐怕你还没到需要 ...

  3. ha_innobase::general_fetch

    /***********************************************************************//** Reads the next or previ ...

  4. UVa 10375 (唯一分解定理) Choose and divide

    题意: 求组合数C(p, q) / C(r, s)结果保留5为小数. 分析: 先用筛法求出10000以内的质数,然后计算每个素数对应的指数,最后再根据指数计算答案. #include <cstd ...

  5. BZOJ3850: ZCC Loves Codefires

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3850 题解:类似于国王游戏,推一下相邻两个元素交换的条件然后排个序就可以了. 代码: #inc ...

  6. linux 服务自动调用

    php服务地址: http://192.168.2.117/web/index.php/buy/auctionselect 编写脚本service.sh,内容: #! /bin/sh crul htt ...

  7. I.MX6 git patch

    /********************************************************************** * I.MX6 git patch * 说明: * 之前 ...

  8. group by调优的一些测试

    表结构信息: mysql> show create table tb\G*************************** 1. row ************************** ...

  9. js函数——倒计时模块+无缝滚动

    倒计时 效果: 代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...

  10. .net-C#代码判断

    ylbtech-doc:.net-C#代码判断 C#代码判断 1.A,C#代码判断返回顶部 01.{ C#题目}public static void Main(string[] args){     ...