我正在使用Protege 4.3来创建我的第一个本体,所以我遇到了一些问题
假设我们有类Shop
,Mall
和Person
以及属性works-in
和is-part-of
所以第一个问题是:我们想要:如果Person
works-in
Shop
和Shop
is-part-of
Mall
那么{{1} } Person
works-in
我尝试将属性链Mall
添加到属性works-in o is-part-of
但是当我激活它时推理器就死了
知道如何解决这个问题吗?
谢谢
答案 0 :(得分:1)
回答你的第一个问题:你正在寻找房产链。在Protege中,你可以说works-in o is-part-of
是一个subPropertyOf(Chain)works-in
,这将给你预期的推论
编辑:我做了以下实验:
a)根据您的描述创建一般本体(在曼彻斯特语法中):
Ontology: <http://www.semanticweb.org/o>
ObjectProperty: <http://www.semanticweb.org/o#works-in>
SubPropertyChain:
<http://www.semanticweb.org/o#works-in> o <http://www.semanticweb.org/o#is-part-of>
ObjectProperty: <http://www.semanticweb.org/o#is-part-of>
Domain:
<http://www.semanticweb.org/o#Department> or <http://www.semanticweb.org/o#Shop>
Range:
<http://www.semanticweb.org/o#Mall> or <http://www.semanticweb.org/o#Shop>
Class: <http://www.semanticweb.org/o#Shop>
Class: <http://www.semanticweb.org/o#Mall>
Class: <http://www.semanticweb.org/o#Department>
Class: <http://www.semanticweb.org/o#Person>
Individual: <http://www.semanticweb.org/o#shop1>
Types:
<http://www.semanticweb.org/o#Shop>
Facts:
<http://www.semanticweb.org/o#is-part-of> <http://www.semanticweb.org/o#mall1>
Individual: <http://www.semanticweb.org/o#mall1>
Types:
<http://www.semanticweb.org/o#Mall>
Individual: <http://www.semanticweb.org/o#person1>
Types:
<http://www.semanticweb.org/o#Person>
Facts:
<http://www.semanticweb.org/o#works-in> <http://www.semanticweb.org/o#shop1>
c)添加公理,说人在Shop工作,Shop是a)的本体的一部分。在这种情况下,Person是WorksInMall类的一部分,它表明考虑了属性链公理。其他公理是:
Class: <http://www.semanticweb.org/o#WorksInMall>
EquivalentTo:
<http://www.semanticweb.org/o#works-in> some <http://www.semanticweb.org/o#Mall>
Class: <http://www.semanticweb.org/o#Person>
SubClassOf:
<http://www.semanticweb.org/o#works-in> some <http://www.semanticweb.org/o#Shop>
Class: <http://www.semanticweb.org/o#Shop>
SubClassOf:
<http://www.semanticweb.org/o#is-part-of> some <http://www.semanticweb.org/o#Mall>