2024年5月13日发(作者:)
利用jena API查询OWL本体(可以作为学习本体和jena接口的一个经典实例)
2008-05-10 15:12
最近在学习本体和语义网。学习了OWL,也尝试着用了一下jena API对OWL
本体进行查询。
1.本体简介
“本体”这个术语来自于哲学,它是研究世界上的各种实体以及他们是怎么关联的科
学。本体是对应用领域概念化的显示的解释说明,为某领域提供了一个共享通用的理解,从
而无论是人还是应用系统之间都能够有效地进行语义上的理解和通讯。studer
“共享概念模型的明确的形式化规范说明”。这包括了4层含义:
概念化(conceptualization)
通过抽象出客观世界中一些现象的相关概念而得到的模型,其表示的含义独立于具体的环境
状态
明确(explicit)
所使用的概念及使用这些概念的约束都有明确的定义
形式化(formal)
本体应是计算机可读的。
共享(share)
知识本体中体现的是共同认可的知识,反映的是相关领域中公认的概念集,它所针对的是团
体而不是个体。本体的目标是捕获相关的领域的知识,提供对该领域知识的共同理解,
该陋域内共同认可的词汇,并从不同层次的形式化模式上给出这些词汇和词汇之间相互关系
的明确定义。
简介
2003
年
7
月
W3C
公布了
OWL Web ontology
语言的最初工作草案
,2004
日
,OWL
正式成为
W3C
推荐的标准。
OWL
和
DAML + OIL
非常相近
,
只有一些微小的变化。
DAML + OIL
和
OWL
的语义都基于描述逻辑
(descriptionlogic ,DL)
。
OWL
作为
的标准本体表示语言
,
它的最大特点是关联描述逻辑
,
通过对概念、概念属性及其相互间关系
的描述
,
构成概念的复杂关系网络
,
这就意味着描述逻辑推理机可以推理
OWL
3
个表达能力递增的子语言
:OWL Lite ,OWL DL , OWL Full
[20 ]
。
OWL Lite
提供了类层次的能
力和简单的约束能力
,
支持基数为
0
或
1
的基数约束
,
包括
6
个类别的语言构造子。
在保持计算完整性
( computational completeness )
和可判定性
(decidability)
的前提下
可能大的表达能力
,
包含了
OWL
的全部语言构造成分
,
但他们的使用受到一些限制
类可以是许多类的子类
,
但不能是另一个类的实例
)
。描述逻辑是
OWL
的形式化基础
DL
的主要扩充是增加了布尔逻辑运算操作。
OWL Full
包含
OWL
的全部语言构造成分并
取消了
OWL DL
的限制
,
在
OWL Full
中一个类可以看成个体的集合
,
也可以看成是一个个
体。由于
OWL Full
取消了
OWL DL
中的保证可计算的某些限制
,
在没有计算保证的语法自
由的
RDF
上进行最大程度表达
,
允许一个
Ontology
在预定义的
(RDF
、
OWL)
词汇
,
从而任何推理软件均不能支持
OWL FULL
的所有特点
,
因此不存在完整的推理算法支
持
OWL Full
的全部特性。
OWL
通过对概念、概念属性及其相互间关系的描述
杂关系网络。
OWL本体的一个优点是会有能够对其做推理的工具。这些工具提供了不特定于某个主
本体是:
确定
2
月
10
W3C
推荐
OWL
有
OWL DL
,
提供了尽
(
如一个
,OWL
,
构成
概念的复
认为,
年
本体。
词汇表上增加
题领域的通用支持,而如果要构建一个能对一个特定的工业界标准XML Schema做推理的系
统,它往往是特定于一个领域的。构建一个可靠的和有用的推理系统不是一项简单的工作。
而创建一个本体则更为容易处理。
简介
jena是惠普公司的一个项目,jena为应用程序开发人员提供了一套java接口对本体进
行操作。这样我们就可以调用jenaAPI,构建我们自己的应用程序,实现对包括RDF,OWL
本体进行创建,修改,查询以及推理操作。
这是一个用OWL语言开发的家族本体。
这是本体的数据文件
下面是利用jenaAPI对查询某个人的爸爸,妈妈,兄弟,姐妹,爷爷,祖先和后代。
....
public class SearchFamily {
private final static String FATHER="father";
private final static String MOTHER="mother";
private final static String DAUGHTER="daughter";
private final static String SON="son";
private final static String SISTER="sister";
private final static String BROTHER="brother";
private final static String ANCESTOR="ancestor";
private final static String OFFSPRING="offSpring";
private final static String GRANDPA="grandPa";
private final static String
rulePath="E:";
private final static String pre="/family#";
public final static String
fileSchema="E:programmingworkspaceOWLTestWebRootWEB-INFfamilySchema
.xml";
public final static String
fileData="E:
";
/*
下面的方法,接受一个人的名字,然后构造出sparql语句
*/
public static String getSearchString(String keyWords){
StringBuffer sb=new StringBuffer("PREFIX fa: " +
" PREFIX rdfs: 2000/01/rdf-schema#>" +
" PREFIX rdf: 1999/02/22-rdf-syntax-ns#> "
);
("
SELECT ?father ?mother ?son ?daughter ?sister ?brother ?ancestor ?offSpring ?gr
andPa ");
发布者:admin,转转请注明出处:http://www.yc00.com/news/1715530401a2632136.html
评论列表(0条)