Protege教程——OWL中类的丰富表达能力
这里是Protege教程中一些比较重要的片段,完整教程在http://www.crabone.com/index.php/protege-introduction#more-6
当我们再次回顾创建类的6种方法时,我们可曾反过来想想,如果让我们来设计OWL语言,我们会设计出几类创建类的方法?
这块板是属于木头的——类:木头(名词型)
你是是很有理想的——类:很有理想的(有:动词;理想:名词;属于动宾型)
这个材料既是属于树胶又是属于塑料的——类:树胶∩塑料(名词和名词的集合型)
他是男人——类:男人(名词型)
它是吃肉的。(吃:动词;肉:名词;属于动宾型)
他是有一颗赤诚热心的人——类1∩类2;类1:人(名词型);类二:有一颗赤诚热心的(量词动宾型)
这类皇冠都镶有No.1098型钻石——类:镶有No.1098型钻石的(具体个体的动宾型)
这批货物要么是可乐瓶,要么是啤酒瓶——枚举类:类1和类二
我们会发现,上面的这些类的定义方法,刚好对应于我们讲的6种方法,其中的动宾型、量词动宾型、具体个体的动宾型等就好比对应限制类,其中的名词型好比对应命名类,等等。我们来看OWL官方对类的表达的定义:
ClassExpression :=
Class |
ObjectIntersectionOf | ObjectUnionOf | ObjectComplementOf | ObjectOneOf |
ObjectSomeValuesFrom | ObjectAllValuesFrom | ObjectHasValue | ObjectExistsSelf |
ObjectMinCardinality | ObjectMaxCardinality | ObjectExactCardinality |
DataSomeValuesFrom | DataAllValuesFrom | DataHasValue |
DataMinCardinality | DataMaxCardinality | DataExactCardinality
看了这些定义,我们重新来整理下,总共有三类定义类的表达,第一行就是命名类,第二行就是对很多命名类的再次集合运算而杂糅出新的类,后面几行就是限制性的类,用动宾形式来表达。
我们来探讨下这些类的应用场景,命名类是最常用的,可以说,没有任何的语义,仅仅是ID号,一个标示,就像我们的姓名,无法从一个人的姓名推理出他的学习情况,他的生活情况(算命之类不在我们讨论范围内)。那么在Protege中,命名类就是用来那棵类的层次树中的
限制类、匿名类、Restriction class应用场景:在Protege中,限制类和命名类最大的区别就是,限制类没有一个命名,没有一个标志,没有一个名字,所以很多领域又叫它匿名类。以后我们也称之为匿名类,那么匿名类在哪里声明的呢?一般而言,会在每个命名类的父类声明。这里涉及到一个建模原则:把一个类的各个特征抽象出来,将每个特征转化为动宾结构,再将其表述为一个匿名类。一个类有多少个特征,它就可能有多少个父类。我们来举个一个例子,有一个Guitar协会,它有兴趣爱好在Guitar上,得到了学校器材的补助。
首先,命名三个类GuitarOrg、Guitar、EquipmentSubsidy,让它们归属到相应的类层次树下,如图:
接着,我们来定义2个Object Property
回到类视图,我们点击GuitarOrg类,之后为它构建2个父类,一个父类代表它有兴趣爱好在Guitar上,另一个父类代表它得到学校器材的补助。
这个小节,主要大致简单描述下类的几种定义,帮助大家掌握一个体系。对于类的集合表达,将在下面几个章节涉及到。
看到贵站是一种缘分.回复一下是一种礼貌。站长好啊。以后多多交流。
有空也来我的小站留脚印。