在技术实现方面,语义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. linux关机和重启的命令[转]

    如果你很急着关机或者重启话,那么关机就是init 0,重启就是init 6或者reboot Linux中常用的关机和重新启动命令有shutdown.halt.reboot以及init,它们都可以达到关 ...

  2. 第六届华为创新杯编程大赛-进阶1第1轮 洞穴逃生 (bfs + 优先队列)

    这个题容易出错想了挺长时间,然后代码不长,1Y.. 做完题,看了一下别人的博客,也可以优先用 闪烁法术, 在闪烁法术不不如跑步的阶段(即魔法恢复的时候)用跑步. 洞穴逃生 描述: 精灵王子爱好冒险,在 ...

  3. Codeforces Round #237 (Div. 2) B. Marathon(卡long long)

    题目:http://codeforces.com/contest/404/problem/B #include <iostream> #include <cstring> #i ...

  4. 基于XMPP的即时通信系统的建立(四)— 组件介绍

    服务端 服务器 许可证 操作系统 是否支持任意客户端登录 备注 ejabberd 开源 Elang 是 支持虚拟主机和集群 Openfire Apache Java 是 Tigase GPLv3 Ja ...

  5. bzoj2005: [Noi2010]能量采集

    lsj师兄的题解 一个点(x, y)的能量损失为 (gcd(x, y) - 1) * 2 + 1 = gcd(x, y) *  2 - 1. 设g(i)为 gcd(x, y) = i ( 1 < ...

  6. 苹果官方 Crash文件分析方法 (iOS系统Crash文件分析方法)

    对于提交的苹果官方的app,在审核的时候会给我们一些crash文件,对于这些有用的文件,里面是关于我们的bug的一些信息,那么该如何去调试呢 第一步:在任意目录创建一个目录,用来调试crash,我这里 ...

  7. erl0004 - ets 安全遍历

    safe_fixtable(Tab, true|false) -> true        Types:              Tab = tid() | atom() 锁定set,bag和 ...

  8. UVA 10098 Generating Fast, Sorted Permutation

    // 给你字符串 按字典序输出所有排列// 要是每个字母都不同 可以直接dfs ^_^// 用前面说的生成排列算法 也可以直接 stl next_permutation #include <io ...

  9. Blog CSS

    你好 print("你好.") haode

  10. 【栈思想、DP】NYOJ-15 括号匹配(二)

    括号匹配(二) 描述 给你一个字符串,里面只包含"(",")","[","]"四种符号,请问你需要至少添加多少个括号才能 ...