当前位置:文档之家› protege构建本体教程

protege构建本体教程

protege构建本体教程
protege构建本体教程

The Protégéplatform supports two main ways of modeling ontologies via the Protégé-Frames and Protégé-OWL editors (我们使用的是后者)

1.什么是本体(Ontologie)

Ontologies are used to capture knowledge about some domain of interest.

本体是用来获得你所感兴趣的领域的知识;

2.OWL Ontologies

The most recent development in standard ontology languages is OWL from the World Wide Web Consortium (W3C)

由w3c从斯坦福大学的本体语言发展而来的。

3.OWL Ontologies的组成

OWL Ontologies与基于Prot′eg′e frame的本体语言在组成上比较相似,但是从专业术语上来描述时他们又有着细微的不同。OWL Ontologies是由个体(Individuals),属性(Properties),类(Classes)组成,大致对应于Prot′eg′e frame的Instances,Slots ,Classes.

3.1 Individuals(个体)

指的是在域(domain)中我们感兴趣的对象。类中的一个实例。

Individuals必须明确的声明彼此之间是否相同。不同的名字可能指的是相同的Individuals。

3.2 Properties(属性)

指的是Individuals上二元关系,他连接着两个Individuals。如:小三的父亲叫大三。其中,“的父亲叫”就连接着小三和大三两个Individuals。

Properties可以存在reverse,如上所示,“的父亲叫”的reverse 就是“的儿子叫”。

Properties可以被限定成单值,此时Properties是functional的。(后面介绍)

Properties也可以是transitive (可传递的)或symmetric(对称的)(后面介绍)

3.3 Classes

可以看作是包含Individuals的集合。

我们使用正式而精准的形式来描述Classes。Classes通常被组织成supperclass—subclass形式的层状结构,比如,动物和狗。

4创建本体myPizza

(PizzaBase是Pizza结构之一,中文叫“饼底”,主要由面粉做成,是Pizza的主体,和pizza toppings(比萨饼面)一起构成整个Pizza)

4.1 命名一个Classes(采用单词首字母大写方式,类似于java中

类的命名)

一个初始化的本体包含一个名字叫做Thing的classes,他表示包含所有individuals的集合,所以,所有的其他classes都是他的subclasses。

4.2 Disjoint(解体)Classes

如果任意一个Individuals(或Object)仅仅是众多Classes中某一个的实例(instance),那么这些Classes是Disjoint的。

4.3 Using The OWL Tools To Create Classes 【PizzaBase 子类ThinAndCrispy 和DeepPan】PizzaTopping子类如下

Cheese

Mozzarella

Parmezan

Meat

Ham

Pepperoni

Salami

SpicyBeef

SeaFood

Anchovy

Prawn

Tuna

Vegtable

Caper

Mushroom

Olive

Onion

Pepper

RedPepper

GreenPepper

JalapenoPepper

Tomato

4.4 subclass到底是什么意思呢?

例如“狗”是“动物”的subclass。那么“狗”的instance也是“动物”的instance,一个东西是狗,那

么他一定是动物。(这和java中的子类父类貌似是一样的)

4.5. OWL Properties

(概述)OWL Properties represent relationships. There are two main types of properties, Object properties and Datatype properties. Object properties are relationships between two individuals. (先介绍Object properties)如下是Object properties 和Datatype properties

Object properties link an individual to an individual. 【hasIngredien 子hasBase hasTopping】

我们可以创建Sub properties,它用来限定Supper properties 的范围。For example, the property hasFather might specialise(限定范围)the more general property of hasParent. 小明有父亲大明,那么我们也可以说小明的双亲有大明。“有父亲”就是“有双亲”的subproperty。

4.6 Inverse Properties(逆属性)

【isIngredientOf 子isBaseOf isToppingOf】

如该例中::hasBase 和isBaseOf就是一对Inverse Properties For example:if Matthew hasParent Jean, then the inverse property we can infer that Jean hasChild Matthew.

4.7OWL Object Property Characteristics(特征)

OWL允许通过使用property characteristics来增强properties 的含义(内涵)。

(1)Functional Properties

If a property is functional, for a given individual, there can be at most one individual that is related to the individual via the property..

也就是说,Properties是单值的。例如::hasBirthMother,这个就是functional的,因为一个人他只能有一个生母。另外::If we say that the individual Jean hasBirthMother Lily and we also say that the individual Jean hasBirthMother Mary, then because hasBirthMother is a functional property, we can infer that Lily and Mary must be the same individual.但是如果Lily和Mary明确的声明为两个不同的Individuals,那么就会出现矛盾(inconsistency)。

(2)Inverse Functional Properties

就是Functional Properties 的inverse 如下::

(3)Transitive Properties

If a property is transitive, and the property relates individual a to individual b, and also individual b to individual c, then we can infer that individual a is related to individual c via property P.如下::

注::a)If a property is transitive then its inverse property should also be transitive.(祖先那个例子)

b)if a property is transitive then it cannot be functional.

(4)Symmetric(对称)Properties

If a property P is symmetric, and the property relates individual a to individual b then individual b is also related to individual a via property P.如下::

(5)Antisymmetric(反对称)properties

If a property P is antisymmetric, and the property relates individual a to individual b then individual b cannot be related to individual a via property P.如下::

(6)Re?exive(自反)properties

A property P is said to be re?exive when the property must relate individual a to itself.如下::

(7)Irre?exive(非自反)properties

If a property P is irre?exive, it can be described as a property that relates an individual a to individual b, where individual a and

individual b are not the same.也就是说,这种properties只能连接不同的individuals。如::小明的父亲是大明,那么我们不能说小明的父亲是小明

4.8 Property Domains and Ranges

【定义hasTopping 的Range PizzaTopping domain Pizza】

【定义isToppingOf 的Range Pizza domain PizzaTopping 】Properties may have a domain and a range speci?ed(指定的). Properties link individuals from the domain to individuals from the range.

例如::in myPizza 本体,the property hasTopping would probably link individuals belonging the the class Pizza to individuals belonging to the class of PizzaTopping. In this case the domain of the hasTopping property is Pizza and the range is PizzaTopping。

另外::如果有a hasTopping b,并且a与b都是individuals,那么我们就可以说a属于class Pizza,b属于class PizzaTopping。通常来说,domain for a property is the range for its inverse, and the range for a property is the domain for its inverse

4.9描述和定义Classes

4.9.1 Property Restrictions

Owl的restriction有三种:

Quantifier Restrictions

Cardinality Restrictions

hasValue Restrictions.

1. quantifier restrictions(existential restrictions 和universal restrictions)

Existential restrictions :

describe classes of individuals that participate in at least one relationship along a speci?ed property to individuals that are members of a speci?ed class.

例子::我至少(at least one)买了一袋饼干从好又多超市。再比如::我做的蛋糕,上面至少覆盖了一层紫色奶酪。

【Pizza 限制hasBase some PizzaBase 】

universal restrictions :

describe classes of individuals that for a given property only have relationships along this property to individuals that are members of a specified class.

例子::我买的东西都是从好又多市(或者我买东西只(only)从好

又多超市)

注::A restriction describes an anonymous class (an unnamed class). The anonymous class contains all of the individuals that satisfy the restriction 。例如:Existential restrictions“上面至少覆盖了一层紫色奶酪。”这句话就描述了一个匿名类,任何上面覆盖至少一层紫色奶酪的individuals都属于该匿名类的,“我做的蛋糕”这个类也属于这个匿名类。所以当我们对一个类进行限制时,在supperclass里定义。

2 定义一些其他的类(一些使用技巧)

【Pizza子类NamedPizza】

【NamedPizza 子类MargheritaPizza has at least one toppings of MozzarellaTopping and TomatoTopping】

【创建AmericanaPizza通过克隆MargheritaPizza 因为他扩展了一个限制PepperoniTopping】

【创建AmericanHotPizza通过克隆AmericanaPizza增加限制JalapenoPepperTopping】

【创建SohoPizza 克隆MargheritaPizza 增加OliveTopping 和ParmezanTopping】

4.10 使用Reasoner(推理机)

:the reasoner shipped with Prot′eg′e is called Fact++.

:两种hierarchy:In Prot′eg′e 4 the ‘manually constructed’class hierarchy is called the asserted hierarchy. The class hierarchy that is

automatically computed by the reasoner is called the inferred hierarchy.

:主要功能:1,判断一个类是否是另一个类的子类

2,consistency checking(一致性检测)

:【为了使用推理机,我们先定义一个矛盾的类ProbeInconsistentTopping,让他既是CheeseTopping又是VegetableTopping的子类,前提是这两个类是disjoint的】

:If a class has been found to be inconsistent it’s icon will be highlighted in red.

【将CheeseTopping VegetableTopping 设为非disjoint的之后,再Classify,观察结果】

4.11 充分必要条件(primitive class 和defined class)

All of the classes that we have created so far have only used necessary conditions to describe them.Necessary conditions can be read as, “If something is a member of this class then it is necessary to fulfill these conditions”. With necessary conditions alone, we cannot say that, “If something fulfills these conditions then it must be a member of this class”.

只定义了必要条件的类叫做primitive class

定义了充要条件的类叫做defined class

【定义Pizza的子类CheesyPizza定义限制hasTopping some CheeseTopping】

【将其转化为充分必要条件】

【Classify 我们可以看出defined class 的不同】

总结::if class A is now defined using necessary and sufficient conditions, we can say that if an individual is a member of the class A it must satisfy the conditions and we can now say that if any (random) individual satis?es these conditions then it must be a member of class A.

4.12 Automated Classification(自动分类)

为什么要使用Reasoner。当我们创建了成百上千的类时,使用Reasoner来自动计算子类父类之间的关系将是十分必要的。没有了Reasoner我们很难保证大规模本体的健壮性和逻辑性。自动分类这项技术,使得本体可维护并且模块化,它不仅使得其他的本体和程序能够reuse 我们定义的本体,而且还最大限度的减少了使用者在建立多继承类时的错误。

【使用OWLViz 显示类的继承层次结构】

4.13 Universal Restrictions (Quantifier Restrictions)

【创建一个Pizza的子类VegetarianPizza 】

【增加限制hasTopping only (CheeseTopping or VegtableTopping)】This means that if something is a member of the class VegetarianPizza it is necessary for it to be a kind of Pizza and it is necessary for it to only (universal quanti?er) have toppings that are kinds of CheeseTopping or kinds of VegetableTopping,也可以没有,比如,中国现在实行计划生育,如果夫妻有了孩子那么只能有一个,但是这个夫妻也可以没有孩子。那么就不存在only这个限制。

【将上面的必要条件转化为充分条件】

4.14 Automated Classification and Open World Reasoning

【使用推理机进行自动分类】

我们发现MargheritaPizza和SohoPizza并没有被归类为VegetarianPizza的子类,但是按照我们的定义,MargheritaPizza 和SohoPizza 都至少有个蔬菜的顶部和奶酪的顶部,再看VegetarianPizza 的充要条件,only have 蔬菜的顶部和奶酪的顶部的pizza都是VegetarianPizza。

但是Reasoning in OWL(Description Logics) is based on what is known as the open world assumption(OWA),意思是,除非我们明确的说明某个事物的存在,否则我们就不能说他是存在的。分析上面的:因为我们没有明确的指定他们只有奶酪和蔬菜顶,那么他们就可以有其他的顶部。这样的话,他们就不符合VegetarianPizza 的充要条件了。

为了使这两种pizza只有蔬菜和奶酪顶部,我们就得在hasTopping 上使用closure axiom(封闭公理)

4.14.1Closure Axioms(封闭公理)

it can only be filled by the specified fillers. The restriction has a filler that is the union of the fillers that occur in the existential restrictions for the property。

【为MargheritaPizza 的hasTopping 添加封闭公理】

【hasTopping only (MozzarellaTopping or TomatoTopping)】

【为其他几个pizza使用更方便的方法添加封闭公理】

现在我们可以说,MargheritaPizza 至少有一个MozzarellaTopping 和TomatoTopping,并且the toppings must only be kinds of MozzarellaTopping or TomatoTopping。

【Classify之后我们看结果】

4.15 Value Partitions

Value Partitionsare他并不属于任何一种本体语言的一部分,而是一种设计模式,类似于面向对象程序设计中的设计模式。它可以改善我们对类的描述。

【创建thing的子类ValuePartition】

【ValuePartition的子类SpicinessValuePartition(Hot Medium Mild)】

【创建Object Property hasSpiciness 并使其functional】

【为SpicinessValuePartition 增加covering axiom 在equivalent里面输入Hot or Medium or Mild】

这种设计模式的效果我们可以看个对比图:disjoint(关键词)

4.16 Adding Spiciness to Pizza Toppings

【对PepperTopping的所有子类设置必要条件hasSpiciness some Hot】

【定义Pizza的子类SpicyPizza 设置必要条件:hasTopping some (PizzaTopping and hasSpiciness some Hot)】

【将必要条件化为充要条件】

Fillter描述了一个匿名类,这个顶是Pizzatopping,并且特别辣。【Classifiy之后我们发现AmericanHotPizza 成为了SpicyPizza的子类】

4.17 Cardinality Restrictions (Owl的restriction中的第二种)

describe the class of individuals that have at least(min), at most(max)or exactly a specified number(exactly) of relationships with other individuals or datatype values.

【创建Pizza的子类InterestingPizza 定义必要条件hasTopping min 3】

注意:我们这里3后面并没有指定fillter是什么,代表可以是任意的individuals,等价于::hasTopping min 3 Thing

【转化为充要条件】

【Classify之后观察。。。】

4.18 Qualified(受限的)Cardinality Restrictions

他比上面的more specify

【定义NamedPizza的子类FourCheesePizza 定义必要条件hasTopping exactly 4 CheeseTopping】

5. Datatype Properties

describe relationships between an individual and data values.

【现在来描述pizza所含的热量】

【增加Datatype Properties hasCalorificContentValue】

【增加individual ExampleMargherita其type是MargheritaPizza】【为该对象增加Data Property assertion 其中type选择integer 值填写250】

【增加individual ExampleSoho其type是SohoPizza 】

【为该对象增加Data Property assertion 其中type选择integer 值填写800】

我们声明所有的pizza都有热量值

【选定Pizza类,增加Supperclass 选择Data restriction creator】

我们对pizza的热量值进行分类,产生不同的pizza

【创建HighCaloriePizza 和LowCaloriePizza 作为Pizza的子类】【创建SupperClass 选择Class expression editor 】

【键入Pizza that hasCalorificContentValue some integer[>= 400]】【同理LowCaloriePizza应当是< 400】

【分别将他们设为充要条件】

【Classify之后我们看他们的members 】

某一确定的Pizza他所含的热量是固定的,也就是说是单值的,我们可以使用functional来限定Data Property。

【选定hasCalorificContentValue 选中functional】

6. More On Open World Reasoning

这部分主要展示了Open World Reasoning中的细微差别

【创建NonVegetarianPizza 类,作为VegetarianPizza类的complement】【使他们disjoint】

【双击Supperclass中的pizza ,添加Pizza and not VegetarianPizza】【转换为充分必要条件】

【Classify...之后观察】

我们创建一个类,does not have a closure axiom(封闭公理)on the hasTopping property

【创建NamedPizza的子类UnclosedPizza】

【必要条件:hasTopping some MozzarellaTopping】【Classify...之后观察UnclosedPizza 既不是VegetarianPizza也不是NonVegetarianPizza.】前面封闭公理部分已经讲过了原因。

7. Creating Other OWL Constructs

7.1 Creating Individuals

我们现在来描述pizza饼起源的国家;

【创建Thing 的子类Country】

【创建individual ::Italy England America France】

因为相同的individual可以有不同的名称。

【是他们Different from each other】

7.2 hasValue Restrictions(Owl的restriction中的第三种)

描述的是两个individual之间至少有的关系P,

【创建Object property::hasCountryOfOrigin】

【选定MozzarellaTopping 增加必要条件hasCountryOfOrigin value Italy】

7.3 Enumerated Classes

【选定Country类,在Equivalent class处增加{America, England, France, Italy}】意思是如果一个individual他属于Country,那么他一

定属于这几个国家中的一个。

Jena_中文教程_本体API(经典)

Jena 简介 一般来说,我们在Protege这样的编辑器里构建了本体,就会想在应用程序里使用它,这就需要一些开发接口。用程序操作本体是很必要的,因为在很多情况下,我们要自动生成本体,靠人手通过Protege创建所有本体是不现实的。Jena 是HP公司开发的这样一套API,似乎HP公司在本体这方面走得很靠前,其他大公司还在观望吗? 可以这样说,Jena对应用程序就像Protege对我们,我们使用Protege操作本体,应用程序则是使用Jena来做同样的工作,当然这些应用程序还是得由我们来编写。其实Protege本身也是在Jena的基础上开发的,你看如果Protege 的console里报异常的话,多半会和Jena有关。最近出了一个Protege OWL API,相当于对Jena的包装,据说使用起来更方便,这个API就是Protege 的OWL Plugin所使用的,相信作者经过OWL Plugin的开发以后,说这些话是有一定依据的。 题目是说用Jena处理OWL,其实Jena当然不只能处理OWL,就像Protege 除了能处理OWL外还能处理RDF(S)一样。Jena最基本的使用是处理RDF(S),但毕竟OWL已经成为W3C的推荐标准,所以对它的支持也是大势所趋。 好了,现在来点实际的,怎样用Jena读我们用Protege创建的OWL本体呢,假设你有一个OWL本体文件(.owl),里面定义了动物类 (https://www.doczj.com/doc/4016232143.html,/ont/Animal,注意这并不是一个实际存在的URL,不要试图去访问它),并且它有一些实例,现在看如下代码: OntModel m = ModelFactory.createOntologyModel(); File myFile = ...; m.read(new FileInputStream(myFile), ""); ResIterator iter = m.listSubjectsWithProperty(RDF.type, m.getResource("http:// https://www.doczj.com/doc/4016232143.html,/ont/Animal")); while (iter.hasNext()) { Resource animal = (Resource) iter.next(); System.out.println(animal.getLocalName()); } 和操作RDF(S)不同,com.hp.hpl.jena.ontology.OntModel是专门处理本体(Ontology)的,它是com.hp.hpl.jena.rdf.model.Model的子接口,具有Model的全部功能,同时还有一些Model没有的功能,例如listClasses()、listObjectProperties(),因为只有在本体里才有“类”和“属性”的概念。

本体构建方法

本文通过借鉴其他领域本体的构建方法,尤其是苏格兰爱丁堡大学的企业本体的建立过程,首先尝试着一步步建立起自己的本体模型,并且经过反复迭代的过程,不断的进行排错和修改,直至本体模型初具雏形。 然后在遵循本体建立准则的基础上,通过抽象总结出一套领域本体的知识工程构建方法。 领域本体构建过程 3.1确定本体的领域与范围 本体是否包含了足够的信息来回答这些问题?问题的答案是否需要特定的细化程度或需要一个特定领域的表示。 3.2列举领域中重要的术语、概念。 在领域本体创建的初始阶段,尽可能列举出系统想要陈述的或要向用户解释的所有概念。这上面的概念和术语是需要声明或解释的。而不必在意所要表达的概念之间的意思是否重叠,也不要考虑这些概念到底用何种方式(类、属性还是实例)来表达。 3.3建立本体框架。 上一步骤中已经产生了领域中大量的概念,但却是一张毫无组织结构的词汇表,这时需要按照一定的逻辑规则把它们进行分组,形成不同的工作领域,在同一工作领域的概念,其相关性应该比较强。另外,对其中的每一个概念的重要性要进行评估,选出关键性术语,摒弃那些不必要或者超出领域范围的概念,尽可能准确而精简的表达出领域的知识。从而形成一个领域知识的框架体系,得到领域本体的框架结构。 上述Step 2和Step 3并非是绝对的顺序,这两个步骤往往也可以颠倒过来进行,有时会先列举出领域中的术语和概念,然后从概念中抽象出本体框架;也可以先产生本体框架,再按照框架列举出领域的术语。至于如何具体进行,应该根据开发人员对领域的认识程度,如果领域内已经存在非常清晰的框架或

者认识已经很深刻,则可以直接产生框架。当然,这两个步骤也可以交叉进行。 3. 4设计元本体,重用已有的本体,定义领域中概念及概念之间的关系。 为了描述各个概念,利用术语对概念进行标识,并对其含义进行定义,在这一步定义时先采用自然语言进行定义。为了定义一个概念,设计了元本体。一个概念可以采用元本体中定义的元概念进行定义,或采用在本体中已经被定义的概念进行定义,或重用已有的本体。 元本体是指本体的本体,其术语用于定义本体中的概念,如实体、关系、角色等。它可以说是更高层次的本体,是领域内概念的抽象。在设计元本体时,尽量做到领域无关性,并且包含的元概念数目尽可能的少。 UNSPS C、DMOZ、Ontolingua 的本体文库和DAML 的本体文库等,可以导入倒本体开发系统中。本体被表达的形式通常并不重要,因为许多知识表示系统能够导入和导出本体。即使某个知识表示系统不能直接使用某种形式的本体,将本体从一种形式到另一种形式通常也不难实现。 除了概念,还要定义概念之间的关系。这些关系不仅仅涉及同工作领域的概念,不同工作领域的概念也可以相关,只是这些关系总是属于某一个工作领域。 定义类(class)及类的层次体系。创建的概念中,很大一部分属于类,而对类的层次的定义有以下3种方法: (1)自上向下法(top-down): 先定义领域中综合的、概括性的概念,然后逐步细化、说明。 (2)自下向上法(bottom-up): 先定义具体的、特殊的概念,最底层、最细小的类的定义开始,然后对这些概念泛化成综合性的概念。

Protege基础教程

本体构建Protege基础教程 写在前面的话 Ontology,即本体,来源于哲学领域,但自从被图书情报领域专家运用于图书情报领域,便在此领域得到大家的一致认可,各种基于本体的研究论文也层出不穷,但Protege4.0以上版本较之Protege3.X版本,界面功能发生了很大变化,以前其他学者出的学习教程已经并不适合初入本体领域的学者,而Protege官方说明又是全英文解释,给初学者更是带来了很大不便,由此,本人这篇本体构建Protege基础教程应运而生,衷心希望可以给其他学者学习本体构建工具以及以后进行基于本体构建领域的研究工作带来便利。在此,特别感谢唐门的GGJJ在我学习运用Protege过程中给了我很多的理论支持,使我在这个学习过程中思维更加清晰。 ——soonfy 学习软件,首先还是看软件版本,本人演示的是Protege4.1版本,与Protege4.0版本以上的版本界面都较为相似,版本是4.0以上的学者,都可以借鉴。另外,本文档主要是界面介绍及逻辑推理,至于本体构建中的个体关联、实体查询请关注下期文档。

一、界面介绍 1、打开Protege软件。如图1所示。 图1 在图1中,方框1 Create new OWL ontology:新建OWL本体; Open OWL ontology:打开一个OWl本体; Open OWL ontology from URI:通过通用资源标识符(URI)打开一个OWL本体; Open from the TONES repository:从TONES库打开OWL本体。 方框2 Open recent:最近打开的OWL本体路径。

基于Jena的本体构建方法研究-计算机工程

—59— 基于Jena 的本体构建方法研究 向 阳,王 敏,马 强 (同济大学电子信息与工程学院,上海 200092 ) 摘 要:针对本体构建中构造方法不清晰、本体描述语言不统一、可用工具较少的难题,在Jena 的基础上提出了基于Jena 的本体构建方法。该方法由描述类、描述属性、将属性关联到类、定义实例和加入本体维护元数据5个步骤组成,有效地解决了本体构建中的难题。最后以一个实例验证了该方法的有效性。 关键词:本体;本体构建;Jena Research on Jena-based Ontology Building XIANG Yang, WANG Min, MA Qiang (School of Electronic Information and Engineering, Tongji University, Shanghai 200092) 【Abstract 】There are a lot of difficulties in the ontology building such as the unclear building methods, ununified ontology languages, lack of tools.To solve these problems, this paper presents an ontology building method with Jena. The method is composed of 5 parts: class description, property description, link of property and class, individual creation, ontology metadata adding. The validity of the method is proved with an instance. 【Key words 】ontology; ontology building; Jena 计 算 机 工 程Computer Engineering 第33卷 第14期 Vol.33 No.14 2007年7月 July 2007 ·软件技术与数据库· 文章编号:1000—3428(2007)14—0059—03 文献标识码:A 中图分类号:TP311 本体是对领域中的概念及概念之间联系的显式描述。具 体地说,就是要描述一个领域需要哪些概念,概念由哪些属性标识,属性又具有什么约束,概念对应于哪些实例。 在本体的构建中也存在一些问题:本体构造方法定义不清晰;本体构造语言繁多,不同语言构造出来的本体交互性弱;本体构建工具少,目前可供使用的有斯坦福大学的Protégé和HP 公司的Jena 等。本文在Jena 基础上,提出了OWL 本体构建方法。 1 Jena 体系结构 1.1 Jena 的接口功能 Jena 是HP 公司开发的一个基于Java 的开放源代码语义网工具包,为解析RDF 、RDFS 和OWL 本体提供了一个编程环境及一个基于规则的推理引擎[1]。语义网标准的核心是作为通用数据结构的RDF 图[1]。Jena 将RDF 图作为其核心的接口。Jena 有以下几个主要功能[2]: (1)RDF API(主要是com.hp.hpl.jena.rdf.model 包)。可将RDF 模型视为一组RDFstatements 集合。 (2)RDQL 查询语言(主要是com.hp.hpl.jena.rdql 包)。对RDF 数据的查询语言,可以伴随关系数据库存储一起使用以实现查询优化。 (3)推理子系统(主要是com.hp.hpl.jena.reasoner 包)。包括基于RDFS 、OWL 等规则集的推理,也可自己建立规则。 (4)内存存储和永久性存储 (主要是com.hp.hpl.jena.db)。 Jena 提供了基于内存暂时存储的RDF 模型方法, 目前仅支持MySQL 、Oracle 和PostgreSQL 的数据存储。 (5)本体子系统(主要是com.hp.hpl.jena.ontology 包)。 Jena 对OWL 、DAML+OIL 和RDFS 提供不同的接口支持。 1.2 Jena 的接口结构 Jena 主要由API ,SPI 组成。用户编程只需使用API 。SPI 为Jena 提供核心数据结构。Jena 库由包来管理,Jena API 以 接口方式定义。经常用到包的有: (1)com.hp.hpl.jena.rdf.model 包,可创建和操纵RDF 图,是本体API 的基础。结构如图1所示[3]。 图1 rdf.model 包主要接口函数 (2)com.hp.hpl.jena.ontology 包。为操纵基于RDF 的本体提供了抽象接口和实现,结构如图2所示。 图2 ontology 包的主要接口函数 基金项目:国家自然科学基金资助项目(70371054) 作者简介:向 阳(1962-),男,教授、博士生导师,主研方向:语义网,本体,Web 挖掘;王 敏、马 强,硕士研究生 收稿日期:2006-07-25 E-mail :drxigyang@https://www.doczj.com/doc/4016232143.html,

Protege新手入门(基础篇)

此新手入门对应protege3.1.x版本。通过制作一个简单的动物本体,来使大家了解protege 建立owl的基础用法。 步骤1 建立新的项目。打开protege,然后会出现对话框,点击Create New Project...,出现Create New Project对话框后,选择OWL Flies(.owl or .rdf)后,点击Finish,而不选Next。 步骤2 建立类。protege的主页面中会出现,OWL Classes(OWL类),Properties(属性),Forms(表单),Individuals(个体),Metedata(元类)这几个标签。我们选择OWL Classes 来编辑。在Asserted Hierarchy(添加阶层)中,会有所有类的超类owl:Thing上点击Asserted Hierarchy旁边的Create subclass或者在OWL:Thing,点击右键选择Create subclass。会出现protege自动定义名为Class_1的类。在右边的CLASS EDITOR(类编辑

器)的Name选项中,输入Animal来替换自动定义的名字。(建议使用英文,因为下面会用到OWLViz来生成关系图,中文的话会容易出现问题。)

步骤3 建立Animal的子类,在Animal点击上右键,选择Create subclass,并按照上述方法将其名字变为Herbivore(素食动物)。 步骤4然后按照上面的方法,建立OWL:Thing的另一个子类Plant(植物),然后建立Plant的子类Tree(树)。状态如下图

基于Wiki的本体构建方法

第30卷第8期通化师范学院学报Vol.30№8 2009年8月JOURNAL OF T ONGHUA TEACHERS COLLEGE Aug.2009 基于W iki的本体构建方法 于江涛,毛慧珍 (通化师范学院计算机科学系,吉林通化134002) 摘 要:该文提出一种本体构造环境方案,在W iki pedia的基础上加入本体构造用户接口,降低用户构造本体的门槛,使用户在建立概念的同时创建本体.系统以OWL本体形式存储、管理和共享知识,还可以以系统已有概念为字典,对相关本体领域相关文本进行本体学习,自动建立本体. 关键词:本体构建;W iki;用户驱动;本体学习 中图分类号:TP311 文献标志码:A 文章编号:1008-7974(2009)08-0019-02 收稿日期:2009-06-01 作者简介:于江涛(1969-),男,硕士,通化师范学院计算机科学系副教授. 1 引言 本体(Ont ol ogy)是当前人工智能研究领域的热点,是解决知识工程中一些问题的有效方法.它的优势体现在可以用于不同领域内的人之间的交流和知识共享,可用于语义网进行语义判断,还可对知识进行管理.本体的构建是本体应用的前提,一直是个烦琐的过程.传统上为了保证本体的正确性,领域本体的构建都需要领域专家的参与.然而仅靠少数领域专家的参与难以实现领域本体构建的繁重任务[1],更不用说实现本体工程. 仅有少部分人来构建本体,主要存在两个问题:①本体的创建过程不在其用户的完全控制之内,一旦被发现有错误,发现者往往不能自已修改,而要求助于少部分人的本体建造者;②本体使用者不能抓住本体的重要性质,本体不能更好的满足用户的需要.因此,在允许少量误差前提下,我们需要更快捷的方法得到大范围的领域本体.这便需要降低本体产生和维护工具的使用门槛,使更多人的参与进来. 本文提出了基于W iki技术的本体构建方法,用户可以通过模仿自然语言中词汇的出现过程来完成本体的建立,就像任何人都能发明一个自然语言中的词汇,任何人都可以依靠W iki技术建立自己的本体.经过一次次的修改最终成为最完善和满足用户需要的本体.该方法以OWL本体来存储概念,在W iki pedia的基础上加入本体构件的用户接口,用户在建立概念的同时就建立了本体. 2 基于W iki的本体构造方法 设计界面类似于Platypus W iki(Platypus W iki 是一个Sem antic W iki W iki W eb工程[2]),但提供更丰富的OWL Full抽象语法,需要用自然语言的名称,以期不需要高的应用门槛.当使用W iki 建立一个新的概念(C lass)时,会提示记录父类(subC lass O f),当然也可以新建父类.如果其父类已经存在就取其父类的属性(Property)来指导该类属性的建立.继而对属性建立dom ain,range等等.同时对概念给出解释性自然语言描述,最终产生OWL交换语法描述和解析树.OWL本体可供修改和共享. 虽然任何人都可以对概念或者本体进行修改甚至删除,但W iki引入版本控制概念,所以任何版本的信息都会被保存下来.引入用户投票机制,让相关概念的使用者以自己的评价权重对已有本体进行评价,得到评价最高的本体作为相关概念的系统推荐本体.本体的评价高低又反过来决定其作者的评价权重. 当系统的本体规模足够大时,可以依托这些本体作为基本概念的字典,对欲建立的某新概念,指定相关领域网站,利用网络爬虫抽取与之链接网站中的文本,从相关文本中抽取对概念的描述语句,不断进行本体学习,自动建立相关概念的本体.该本体的准确性虽然略低,但可以作为用户建立相关本体时的参考,有指导作用,至少可以减少欲建立该本体的用户的工作量.当前在本体自动构建方面做的比较好的是Ont o W are Pr oject的text2ont o,它以WordNet 为字典,利用text m ining从大量文本资源中得到相关概念的描述信息,自动建立出该领域的本体[3,4]. ? 9 1 ?

Protege-OWL教程笔记

Protege-OWL教程笔记 首先介绍了本体,本体是用来描述某个领域的知识的。本题描述了该领域内个概念和概念间的关系。不同的本体语言提供不同的特征。最新出现的本体语言是W3C推出的OWL。它有丰富的操作符,如and,or和negation。它基于的逻辑允许它能够定义概念或描述概念。复杂的概念能建立在简单的概念定义之上。而且,这个逻辑模型允许使用推理机检查本体中的statement和定义是否具有一致性,也能识别哪个概念符合哪个定义。推理机有助于维护层次结构。这在处理有多个父类的类时非常有用。 然后介绍了OWL的三个子语言:OWL-Lite,OWL-DL,OWL-Full。它们的表达能力由弱到强。OWL-Lite的语法最简单。OWL-DL比OWL-Lite的表达能力强,它基于描述逻辑,能够自动计算层次分类和检测到本体中的不一致。OWL-Full的表达能力最强,但是推理能力就相对较弱。 接下来介绍了个体,属性,类三个概念。用了大量的图来帮助理解概念。 1.个体用URI标识。 2.类是个体的集合。类可以组成一个由父类和子类构成的层次结构图(也称为taxonomy)。类也称为概念(concept)。 Protege-OWL使用了一个叫English Prose Tooltip Generator的工具来显示类的描述信息。可以指明两个类是不相交(disjoint)的。 3.属性是一个二元关系。它分为: 函数属性(Functional Property)——通过这个属性只能连接一个个体。hasBirthMother 反函数属性(Inverse Functional Property)——即这个属性的反属性是函数属性,也就是对于一个给定的个体,只有最多一个个体能通过该属性连接那个个体。isBirthMotherOf 传递属性(Transitive Property)——hasAncestor 对称属性(Symmetric Property)——hasSibling,如果一个属性是对称的那么它就不能是函数属性。 还可以将属性分为: 对象属性(Object Property)——连接两个个体。 数据类型属性(Datatype Property)——连接个体和XML Schema数据类型值或rdf literal,该属性不能为传递的,对称的,反函数的。 标注属性(Annotation Property)——用来对类,属性,个体和本体添加信息(元数据)。OWL-DL 对标注属性作出了如下限制:(1)标注属性的filler只能为,literal或URI或个体。(2)标注属性

Protege构建本体笔记

Protégé构建本体 13种OWL语言 OWL可以分为三种子语言:OWL-Lite,OWL-DL,OWL-Full。子语言的特征是由它的描述能力来分类的。其中,OWL-Lite描述能力最弱,OWL-Full描述能力最强,OWL-DL 的能力属于中间,同时,OWL-Full可以视为是OWL-DL的一个扩展。 1.1O WL-Lite 在语法上,OWL-Lite是最简单的语言。一般用于只有一个简单的类层次和定义的约束比较简单的情况。比如,根据一个现有的百科全书建立的本体。 1.2O WL-DL OWL-DL是建立在描述逻辑基础上的的,描述能力比OWL-Lite强得多。描述逻辑是第一顺序逻辑的决定性部分,可以进行自动推理。因此,可以自动的计算分类层次,并且检查本体的一致性。 1.3O WL-Full OWL-Full的表达能力是最强的。OWL-Full可以适用于需要很强的表达能力的情况。 2OWL本体的组成 OWL本体由个体、关联和类组成,三者分别和实例(Instances)、扩展连接点(Slot)、类(Classes)相通信。 2.1个体(Individuals) 个体就是在领域中,我们所感兴趣的物体。Protégé和OWL之间有一个显著的区别,就是OWL没有独立名字假定(Unique Name Assumption, UNA)。这意味着两个不同的名字可以指向同一个个体。个体就是我们常说的实例,个体可以被理解为“类的实例”。 2.2关联(Properties) 关联指的是两个个体之间的二元关系,比如,一个关联可以把两个个体连接在一起。 例:关联hasSibling,因为Matthew和Gemma是两兄弟,就可以通过hasSibling这个关系把Matthew和Gemma连在了一起, 关联也可以只有一个参数,如使某种功能化的关联,如transitive(传递)或symmetric (对称)。 在Protégé中,关联基本和扩展连接点(Slot)的意思是一致的。在描述逻辑中,扩展连接点是一个角色,在UML中是关系,也可以是指向其他物体的概念。在GRAIL(另一种本体语言)和其他的形式化语言中,也被称作属性。 2.3类(Classes) OWL类是一组包含了个体的集合。它是通过使用形式化的数学语言,精确描述类成员的特性。比如,类Cat包括了特定领域中所有包括“猫”的类。类由超类(superclass)和子类(subclass)的层次结构分类构成,也被称作taxonomy。子类是超类的细化,子类可以继承超类的性质,也就是说,超类的条件是形成子类的必要条件。同时超类-子类关系式OWL-DL的关键特性之一,这可以为推理机自动调用。 同时,概念(concept)一词也类中也时有出现,类是表述概念的基础。 建立一个OWL类,就是建立一个说明类的环境的描述,这个环境首先必须满足描述此类的一个个体成员的要求。 3OWL本体的构建 3.1建立类 3.1.1一个类层次(class hierarchy)也被称之为一个分类法(taxonomy)。

本体构建方法

本体构建方法 本文通过借鉴其他领域本体的构建方法,尤其是苏格兰爱丁堡大学的企业本体的建立过程,首先尝试着一步步建立起自己的本体模型,并且经过反复迭代的过程,不断的进行排错和修改,直至本体模型初具雏形。然后在遵循本体建立准则的基础上,通过抽象总结出一套领域本体的知识工程构建方法。 领域本体构建过程 3.1 确定本体的领域与范围 首先要明确构建的本体将覆盖的专业领域、应将本体的目的、作用以及它的系统开发,维护和应用对象,这些对于领域本体的建立过程中有着很大的关系,所以应当在开发本体前注意。对于特定的专业领域的一些特殊的表达法和特定的详细内容等的注释,应当明确。另外能力问(competency questions)是由一系列基于该本体的知识库系统应该能回答出的问题组成(Gruninger和Fox,1995),能力问题被用来检验该本体是否合适:本体是否包含了足够的信息来回答这些问题?问题的答案是否需要特定的细化程度或需要一个特定领域的表示。 3.2 列举领域中重要的术语、概念。 在领域本体创建的初始阶段,尽可能列举出系统想要陈述的或要向用户解释的所有概念。这上面的概念和术语是需要声明或解释的。而不必在意所要表达的概念之间的意思是否重叠,也不要考虑这些概念到底用何种方式(类、属性还是实例)来表达。 3.3 建立本体框架。 上一步骤中已经产生了领域中大量的概念,但却是一张毫无组织结构的词汇表,这时需要按照一定的逻辑规则把它们进行分组,形成不同的工作领域,在同一工作领域的概念,其相关性应该比较强。另外,对其中的每一个概念的重要性要进行评估,选出关键性术语,摒弃那些不必要或者超出领域范围的概念,尽可能准确而精简的表达出领域的知识。从而形成一个领域知识的框架体系,得到领域本体的框架结构。 上述Step 2和Step 3并非是绝对的顺序,这两个步骤往往也可以颠倒过来进行,有时会先列举出领域中的术语和概念,然后从概念中抽象出本体框架;也可以先产生本体框架,再按照框架列举出领域的术语。至于如何具体进行,应该根据开发人员对领域的认识程度,如果领域内已经存在非常清晰的框架或者认识已经很深刻,则可以直接产生框架。当然,这两个步骤也可以交叉进行。 3. 4 设计元本体,重用已有的本体,定义领域中概念及概念之间的关系。 为了描述各个概念,利用术语对概念进行标识,并对其含义进行定义,在这一步定义时先采用自然语言进行定义。为了定义一个概念,设计了元本体。一个概念可以采用元本体中定义的元概念进行定义,或采用在本体中已经被定义的概念进行定义,或重用已有的本体。 元本体是指本体的本体,其术语用于定义本体中的概念,如实体、关系、角色等。它可以说是更高层次的本体,是领域内概念的抽象。在设计元本体时,尽量做到领域无关性,并且包含的元概念数目尽可能的少。目前,web上有许多可重用的本体资源库。重用已有的本体,既可以减少开发的工作量,又能增强与其它使用该本体的系统的交互能力。目前有许多本体可以通过internet获得,许多现成的本体,例如:UNSPSC、DMOZ、Ontolingua 的本体文库和DAML 的本体文库等,可以导入倒本体开发系统中。本体被表达的形式通常并不重要,因为许多知识表示系统能够导入和导出本体。即使某个知识表示系统不能直接使用某种形式的本体,将本体从一种形式到另一种形式通常也不难实现。 除了概念,还要定义概念之间的关系。这些关系不仅仅涉及同工作领域的概念,不同工作领域的概念也可以相关,只是这些关系总是属于某一个工作领域。 定义类(class)及类的层次体系。创建的概念中,很大一部分属于类,而对类的层次的定义有以下3种方法: (1) 自上向下法(top-down):先定义领域中综合的、概括性的概念,然后逐步细化、说明。 (2) 自下向上法(bottom-up):先定义具体的、特殊的概念,最底层、最细小的类的定义开始,然后对这些概念泛化成综合性的概念。

protege构建本体教程

via The Prot eg e platform supports two main ways of modeling ontologies the Prot eg e-Frames and Prot eg e-OWL editors (我们使用的是后者) 1.什么是本体(Ontologie) Ontologies are used to capture knowledge about some domain of in terest. 本体是用来获得你所感兴趣的领域的知识; 2.OWL On tologies The most rece nt developme nt in sta ndard on tology Ian guages is OWL from the World Wide Web Con sortium (W3C) 由w3c从斯坦福大学的本体语言发展而来的。 3.OWL On tologies 的组成 OWL Ontologies与基于Prot eg e frame的本体语言在组成上比较 相似,但是从专业术语上来描述时他们又有着细微的不同。OWL Ontologies是由个体(Individuals),属性(Properties),类(Classes 组成,大致对应于Protege frame 的Instances, Slots , Classes. 3.1 Individuals (个体) 指的是在域(domain)中我们感兴趣的对象。类中的一个实例。 In dividuals必须明确的声明彼此之间是否相同。不同的名字可能指 的是相同的Individuals。 3.2 Properties (属性) 指的是Individuals上二元关系,他连接着两个Individuals。如:小 三的父亲叫大三。其中,“的父亲叫”就连接着小三和大三两个

领域本体构建方法的研究

龙源期刊网 https://www.doczj.com/doc/4016232143.html, 领域本体构建方法的研究 作者:殷美 来源:《电脑知识与技术》2012年第24期 摘要:介绍了国外一些著名的领域本体构建方法及本体构建中存在的问题;介绍了软件工程中螺旋开发模型。通过借鉴其它领域本体的构建方法及螺旋开发模型,提出了一种新的工程化的领域本体构建方法并通过构建高校教务管理领域本体检验其有效性。 关键词:本体;构建方法;螺旋模型 中图分类号:TP391文献标识码:A文章编号:1009-3044(2012)24-5913-04 Research on Domain Ontology Building Method YIN Mei ( Institute of Information Engineering, Lianyungang Technical College, Lianyungang 222000, China) Abstract: This paper introduces the basic concept of the domain ontology, domain ontology construction method and some problems in Constructing Ontology; introduced the software engineering spiral development model. Through drawing lessons from the other domain ontology construction method and a spiral development model, put forward a kind of new project of domain ontology construction meth od. Key words: ontology; construction method; spiral model 1本体构建方法 本体原本是哲学上的一个概念,主要探讨现实世界的基本特征。近年来,人工智能、语义web相关领域的学者也开始将本体论的观念用在知识表达上,使其成为一种能在语义和知识层次上描述信息系统的概念模型的建模工具。目前Ontology已经被广泛应用到包括计算机科 学、电子商务、数据挖掘、智能检索等在内的诸多领域。特别是做为语义Web的关键技术之一,本体及其相关技术已成为研究热点。领域本体描述的是特定领域(医学、地理、生物等)中的概念及概念之间的关系。 本体的构建主要有三种模式:一是人工模式,由领域专家借助工具完成本体构建;二是半自动模式,基于大量领域数据,在领域专家的协助下完成本体构建;三是自动模式,运用数据挖掘、人工智能等方法,基于大量的领域数据完成本体构建。上述三种模式各有优劣,人工模式代价较大,所构建的本体灵活性不足;自动模式构建的本体实施难度较大、准确性不高;而

protege4.2使用说明

Protege4.2使用说明 2013,01,28 安装JDK1.6:下载资源进行安装,环境变量配置:变量名Java_home,变量值G:\Study\JDK1.6 安装protege_4.2_alpha:安装时软件会自动检测java虚拟机环境,将jdk安装路径G:\Study\JDK1.6下jre文件复制到G:\Study,即与JDK1.6文件夹同一级。开始安装,选择安装路径,生成文件物理位置,continue即可。 安装graphviz-2.26插件:下载资源进行安装,安装后生成bin,etc,include,lib,share五个文件夹,打开bin文件夹,找到dot.exe,打开protege4.2,点击菜单栏Reasoner—>Configure,点击OWL Viz项,在Dot Application Path中输入G:\Study\graphviz2.26\bin\dot,G:\Study\graphviz2.26是安装目录。 OWL本体由Individual个体,Properties(Object Properties对象属性和Data Properties数据属性)属性或关联,Class类组成,三者分别和实例Instances,扩展连接点Slot,类Class相通信。 在protégé中最重要的就是Classes(类),Object Properties(对象属性或关联),Data Properties (数据属性),Individuals(个体)这四个栏目。OWL Viz类关系层次图,DL Query类查询或简单推理,OntoGraf本体关系图,这三个栏目辅助进行构建本体。 一Classes类 它是个体的集合,如class fruit,它可以是个体apple,banana,orange等组成的集合。SubclassOf,Equivalent,Disjoint是类的三大axiom公理,可以理解为类与类之间的关系:类与类之间存在父子关系,即superclass父类,subclass子类;Equivalent class相同类,主要用于推理;Disjoint classes互不相交关系,即一个个体不能同时属于两个类。在protege4.2左边部分可以分别Add subclass创建子类,Add sibling class创建兄弟类,Delete selected classes删除选中类三个操作,右上部分的Annotations(注释)对类进行注释,在简单本体构建中用处不大。右下方的Description(表达式,表现)非常重要。 1.Equivalent classes相等类,用来定义与当前类相等等同的类,或not class不相等的类,主要用来推理,如,A,B是class m的个体,class n是class m的Equivalent classes,则推理机可以退出A,B也是class n的个体。 2.Superclasses 超类或父类,定义当前类的父类,限制类,打开项目,选择Object restriction creator(创建对象限制),选择Restriction property(对象属性),Restriction filler(类),Restriction type,Some存在量词,Only全称量词,Min基数量词最小值,Max基数量词最大值,Exactly 基数量词准确值,这些是约束属性的条件,用来限制对象属性的。如下图:

protege构建本体教程

The Protégéplatform supports two main ways of modeling ontologies via the Protégé-Frames and Protégé-OWL editors (我们使用的是后者) 1.什么是本体(Ontologie) Ontologies are used to capture knowledge about some domain of interest. 本体是用来获得你所感兴趣的领域的知识; 2.OWL Ontologies The most recent development in standard ontology languages is OWL from the World Wide Web Consortium (W3C) 由w3c从斯坦福大学的本体语言发展而来的。 3.OWL Ontologies的组成 OWL Ontologies与基于Prot′eg′e frame的本体语言在组成上比较相似,但是从专业术语上来描述时他们又有着细微的不同。OWL Ontologies是由个体(Individuals),属性(Properties),类(Classes)组成,大致对应于Prot′eg′e frame的Instances,Slots ,Classes. 3.1 Individuals(个体) 指的是在域(domain)中我们感兴趣的对象。类中的一个实例。 Individuals必须明确的声明彼此之间是否相同。不同的名字可能指的是相同的Individuals。 3.2 Properties(属性) 指的是Individuals上二元关系,他连接着两个Individuals。如:小三的父亲叫大三。其中,“的父亲叫”就连接着小三和大三两个Individuals。

protege使用说明.

Protege软件使用说明一.Protege系统版本介绍与分析最常用的Protege版本主要有两个,我们分别介绍他们的优缺点 1.protege 3.x版 优点: 1)这个版本的用户体验比较好,没4.x版的那么别扭 2)支持RacerPro推理机,能保存推理结果 3)能对中文进行推理 4)相关教程比较全面 缺点: 1)OWLViz不支持中文,添加中文,图像显示会重叠 2)没有ontograf功能块,总之不支持中文图像结果显示 3)使用OWLViz功能块,必须安装graphviz 1.9版的 2.protege 4.x版 优点: 1)自带推理机Fact++ 2)有ontograf功能块,支持中文图像显示 3)相关教程比较全面 缺点: 1)无法保存自带推理机的推理结果,至少我是没找到保存方法 2)OWLViz也不支持中文 3)软件界面用户体验不好,很多模块需要自己选择添加

4)使用OWLViz功能块,必须安装graphviz 2.28版的 上面说了这么多你可能不知道选择哪个好。那就列出几个关键的问题: 1.想使用OWLViz观察图像结果? 不管是3.x版还是4.x版都可以。但是要注意一点,就是版本兼容问题;个人推荐protege3.1配graphviz 1.2 或者protege4.1配graphviz2.28. 2.想使用推理机并更新原数据? 个人建议使用protege3.x,并使用RacerPro 1.9版安装版。虽然protege4.x版自带推理机也能推理,但是保存结果更新原数据没法实现,至少我是整了很久都没实现。这也是我不喜欢使用4.x的原因,用户体验比较差。 3.想支持中文,在绘图区显示图像结构? 这个就必须使用4.x版了,也只能在4.x版的ontograf功能块才能看到图像结构,而在OWLViz 会出现图像重叠;不过在这也弱弱的吐槽一下,ontograf显示的图像结构效果并不是很理想,个人觉得做的很差。 总结: 上面讲了这么多,相信你也有自己的选择了。但是我个人觉得啊!还是使用protege3.x版更好,当然前提是你对OWLViz显示中文并不是很需要的前提下;除去这个因素,protege3.x 版还是蛮不错的,软件界面使用舒服,可以保存推理机推理结果;而且在class中定义中文也可以推理。 我们选用的版本: 因为我们在做英文本体的时候还要有对应的中文本体的创建与显示,因此我们选用Protege4.2,graphviz-2.26进行实验。

protege新手入门进阶篇(2)

步骤5:使用查询插件。点击菜单中的Project–>Configure 在出现的对话框中选择QueriesTab前加上对勾。然后就会出现Queries标签,选择这个标签就会出现查询界面。最初我们只在Class中加入Animal然后点击Find。查询结果会在右边的Search Results中出现,如下图。然后将这个查询保留,可以在以后利用。我们点击在下方的Query Name中输入?Animal然后点击Add to Query Library按钮。这样这个查询方式就被储存到Query Library中。

步骤6:利用Query Library中保存的查询方式进行进一步查询。点击Query Library中的?Animal并点 击按钮。可以调用这个查询方式,在这里因为我们刚刚存储了这个方式,所以上面的Query中不会有变化。我们在Slot中选择Belonging然后选择contains最后选择Beijing_zoo。点击Find 就会出现我们查找的结果。可以将这个查询方式存储为?Animal_belong_BeijingZoo。当然并非每个查询方式都需要储存,实 际操作中按照自己的需要存储即可。

步骤6:将本体存储到数据库中。这里我们使用Mysql。先做准备工作,因为需要Mysql所以没有的朋友请先安装。Mysql在Windows,linux等的安装方法在许多网站都有十分详细的介绍,我在这里就不再重复了,请到网上查询一下,最好安装官方推荐的版本。安装完后首先建立一个protege的数据库,步骤如下Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 10 to server version: 3.23.55-max Type 'help;' or '\h' for help. Type '\c' to clear the buffer. //建立一个名字叫protege_db的数据库。 mysql> create database protege_db; Query OK, 1 row affected (0.00 sec) //建立一个在localhost的用户protegeuser,密码为protegeuserpwd。并把protege_db 的所有权限给他。 mysql> grant all privileges on protege_db.* to protegeuser@localhost identified by 'protegeuserpwd'; //使上述变更在服务器上有效。 mysql> flush privileges; Query OK, 0 rows affected (0.07 sec) //退出mysql mysql> exit 这里不用创建表格,protege会自动创建。请确认你的mysql服务是运行的,否则将不能储存到数据库。接下来还需要下载JDBC驱动程序,它的作用是将protege和数据库连接起来。点击这里下载JDBC驱动程序。下载完后展开,其中有一个mysql-connector-java-3.1.12-bin.jar文件,将其复制到protege的安装目录中(注意不是插件目录),然后将它的名字变为driver.jar。然后回到protege中,选择菜单File–>Convert Project to Format...在弹出的对话框中选择OWL Database。

相关主题
文本预览
相关文档 最新文档