2021.10.29.周五,今天又做了一次核酸检测!我开始阅读我需要的内容!别人的话,即使激励也是焦虑的开始!有压力才有动力!没有动力,就没有办法拼搏!但是,方向要对啊!不能被误导了!学着分辨!
(PS:觉得先打个稿子吧!等到10分钟的时候再走!21:10的时候!)
首先,教程讲了一个通过URI生成OWL本体的简单过程。这个教程使用的protege好像不是一个版本的!
如前所述,一个本体包括类-确实,OWL本体的主要构件块还是类(class)。
在protege4里面,使用ClassesTab对类进行编辑。
Thing:是OWL词汇表的一部分,由位于http://www.w3.org/2002/07/owl/#的本体定义
A class hierarchy may also be called a taxonomy.(类层次结构也可以被称为分类法。)
虽然对于OWL类没有强制性的命名约定,但我们建议所有类名都应该以大写字母开头,并且不应该包含空格。(??难道不能使用中文!?)
Disjoint–不相交的
OWL Classes are assumed to ‘overlap(重叠)’.因此,我们不能仅仅因为没有断言它是特定类的成员,就假定它不是特定类的成员。为了“separate”一组类,我们必须使它们彼此disjoint。这确保了已被断言为组中某个类的成员的个体不能是该组中任何其他类的成员。
这个不算难!略过!
1.选择类。
2.选择Create Class Hierarchy…
3.点击Next
4.确保勾选Make all new classes disjoint
PS:还有前缀和后缀什么的!
subclass:意味着成为必要,子类必然属于顶层类!所以,子类必然是顶层类!
OWL属性表示关系。属性主要有两种类型:Object properties、Datatype properties。前者是两个个体之间的关系;Object properties属性连接了两个individual个体。OWL也拥有第三种类型的属性-Annotation properties(注释属性);注释属性可用于添加信息(metadate元数据-有关数据的数据)到classes,individuals,object,datatype属性。
对象属性和Datatype数据类型属性可以被标记为注释属性。
虽然对属性没有严格的命名约定,但我们建议属性名称以小写字母开头,没有空格,并对其余的单词进行大写。ex:isPartOf。
我们还建议属性的前缀为单词“has”,或单词“is”,例如,hasPart,isPartOf,hasManufacturer,isProducerOf。
PS:举栗子->hasTopping是hasIngredient的子属性,hasTopping连接了两个个体,则这两个个体也与hasIngredient有关???
也可以创建datatype properties的子属性,
然而,不可能混合匹配 object properties和datatype properties作为子属性。例如,不能创建一个前者类型的属性作为后者类型的子属性。
每个 object property都可以有对应的逆属性。如果某些属性将单个a链接到个体b,那么它的逆属性将将将单个b链接到个体a。
completeness(完整性):我们可以指定逆属性。
OWL允许通过使用属性特性property characteristics来丰富属性的含义。
(PS:我得抓点儿紧了!不然,肯定完不成任务!哪个地方不会,看哪个吧!)
基于一个给定的个体,如果一个属性是Functional的,那么,只能有一个通过这个属性连接到这个个体。
函数属性也被称为单值属性single valued properties和特征features。
If a property is inverse functional then it means that the inverse property is functional.如果一个属性是逆函数,则它意味着该逆属性是函数(函数)。
PS:好像被一个逆函数属性定义的两个个体为一个,但是,这样的话!岂不是要出问题!
PS:这个是给一个对象属性定义属性,并不是把两个对象属性连接起来。???
如果一个属性是传递的,并且该属性与个体a与个体b相关,个体b与个体c相关,那么我们可以通过属性推断个体a通过属性与个体c相关。
如果一个属性P是对称的,并且该属性将个体a与个体b相关,那么个体b也通过属性P与个体a相关。
If a property is transitive then its inverse property should also be transitive.如果一个属性是传递的,那么它的逆性质也应该是传递的。
Note that if a property is transitive then it cannot be functional.注意,如果一个属性是传递的,那么它就不能是函数的。
如果选择了数据类型属性 datatype property,则将减少属性特性视图,以便只显示“允许多个值Allows multiple values”和“逆函数 inverse functional ”的选项。这是因为OWL-DL不允许数据类型属性是传递的、对称的或具有逆属性。
如果一个属性P是不对称的,并且该属性将个体a与个体b相关,那么个体b就不能通过属性P与个体a相关。
当属性必须将个体a与自身联系起来时,属性P被认为是反射性的。
如果一个属性P是反反射的,它可以被描述为一个个体a与个体联系起来的属性,其中个体a和个体是不相同的。
属性可以具有指定的域和范围。属性将个体的domain和个体的range连接起来。
在OWL中的属性的定义域和值域。在OWL域和范围不应被视为要检查的约束。它们被用作推理中的公理axioms。
例如,属性hasTopping的domain为Pizza,然后,我们把hasTopping属性绑定到为IceCream类中的一个个体。推理结果并不会有问题,可能会推断出IceCream是Pizza的一个子类。(定义为disjoint就会出错。)
可以指定多个类作为一个属性的范围range。如果在protege4中指定了多个类,则该属性的范围将被解释为这些类的交集intersection??。
属性的域和范围也以正确的方式设置为反向属性。一般来说,属性的域是其逆 inverse的范围,而属性的范围是其逆的域。
虽然我们已经为本教程指定了各种属性的域和范围,但我们通常建议不要这样做。
域和范围条件并不表现为约束条件,而它们可能导致“意外的”分类结果的事实可能会导致问题和意外的副作用。这些问题和副作用在大型本体中特别难以追踪。
(PS:不建议写很多range和domain)
在OWL中,属性描述了一种二进制关系。数据类型属性Datatype properties描述了个体和数据值之间的关系。对象属性 Object properties描述了两个个体之间的关系。在OWL中,我们可以通过使用限制restrictions来定义这样的类。
限制/描述了/基于/一类个体成员参与的关系/的/一类个体/。换句话说,限制是一种类,就像一个被命名的类是一种类一样。
让我们来看看一些例子,以帮助阐明我们可能想要根据他们的属性来描述的个人类别的类型。
在OWL中,我们可以使用限制来描述某种类别的个体。
OWL restrictions可以分为三类:Quantifier Restrictions(量化?),Cardinality Restrictions(基数),hasValue Restrictions。
quantifier restrictions–{existential restrictions存在+universal restrictions普遍}
Existential and Universal Restrictions
存在限制描述了参与其中的个体类别沿着指定属性与作为指定类成员的个体的至少一种关系。在protege4中,关键字“some”用来表示存在限制。
通用限制描述了针对给定属性的个体类别沿此属性与指定类成员的个人的关系为only。在Protege4中,使用了关键字“only”。
PS:我没看懂!英语太烂!
限制描述了一个匿名类anonymous class(一个未命名的类)。匿名类包含满足该限制的所有个体。所有具有该关系的个体必须是这个类的成员。
存在限制Existential restrictions可以用存在量词(∃)表示。他们也被称为“someValuesFrom”的限制。
通用限制Universal restrictions可以用通用量词(∀)表示。它们也被称为“allValuesFrom”的限制。
在OWL类描述中使用限制来指定所描述的类的匿名超类anonymous superclasses。
PS:匿名超类并不知道是什么!但是,中期任务必须完成!所以没有用的全部忽略就好了!
存在限制描述了一类沿着指定属性与指定类的成员之间至少有一个(一些)关系的个体。存在性限制也被称为一些限制some restriction,或作为来自限制的一些值。
hasBase some PizzaBase
写成∃ hasBase PizzaBase
为DL Syntax (Description Logics Syntax)描述逻辑语法或者DL语法(一种更正式的语法)。
创建restriction需要:
1.从属性列表中输入要受限制的属性。
2.从限制类型中输入一种限制类型,例如,对于存在限制的“some”。
3.填充该属性。
A very useful feature of the expression builder is the ability to ‘auto complete’
class names, property names and individual names.
表达式构建器的一个非常有用的特性是能够“自动完成”类名、属性名和单个名称。
Auto completion is activated by pressing ‘alt tab’ or ‘Ctrl-Space’ on the keyboard.
自动构建按键盘上的alt tab和Ctrl-Space(PS:protege5中有这个,但是,笔记本对这几个快捷键好像没什么太大的反应!总是给我切换输入法!)
When restrictions are used to describe classes, they actually specify anonymous
superclasses of the class being described.
当限制用于描述类时,它们实际上指定了正在描述的类的匿名超类。
EX1:创建->cloning and modifying the description克隆和修改描述
1)Classes tab->选择类
2)Duplicate selected class from the"Edit"menu.
3) select the ‘Add’ icon next to the ‘Superclasses’ header in the class description in the class description view。
PS:这段略过!
EX2:Make subclasses of A disjoint from each other
似乎什么都看明白了!又似乎什么都没看懂!