问题标签 [description-logic]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
semantic-web - 如何将每个类的实例与另一个类的每个实例关联起来?
一般问题
我正在研究一个简单的本体,使用 Protégé 4.3 并尝试创建一个模型,使得类C的每个实例都有一些特定的值v,它是类V的实例,对于给定的属性p。我可以使用公理得到这个推论
C subClassOf (p值v)
但我想我希望能够更多地按照
C subClassOf (p some V)
因为我实际上希望C的每个实例都与V的每个实例相关。
一个具体的例子
我的例子是汽车和动作——我想为汽车创建一组动作。当我创建汽车的新实例时,我希望每个实例都有一组动作。如果我添加新的动作实例,我希望所有汽车实例都能反映它们的所有相关动作。
为了添加更多细节,我定义了Auto类和两个子类:Car和Truck。我还定义了一个Action类和一个子类TruckAction。我已经定义了一个具有域Auto和范围Action的hasAction属性来关联自动和操作。我进一步创造了几个不同类型的个体:
- 汽车
- 卡车 {F150}
- 汽车 {ChevyMalibu}
- 动作{加速}
- TruckAction {LoadCargo}
当我将Car设为 (hasAction value Accelerate)的子类时,我可以看到ChevyMalibu具有推断的对象属性hasAction Accelerate,但这似乎类似于对对象属性断言进行硬编码。我想为ChevyMalibu推断所有汽车动作,同样为F150推断所有TruckActions 。我不太确定为什么像让Car成为(hasAction some Action)的子类这样的事情不会让我到达那里。
我认为带有限制的 OWL 类型推断的雄辩答案与我的问题有关,但我不能完全加起来。
rdf - SWRL 规则不推断新的对象和数据属性断言
我创建了这个包含两个类的本体:Blood-Sugar和Services。Blood-Sugar有两个数据属性:范围为 xsd:int 的hasValu和范围为 xsd:string 的hasStatut。对象属性triggerService将Blood-Sugar作为域,将Service作为范围。
我想用这个规则推断一个数据属性断言:
Blood_Sugar(?x) ∧ hasValue(?x, ?y) ∧ swrlb:greaterThan(?y, 126) ∧ swrlb:lessThan(?y, 500) → hasStatut(?x, "High")
然后我想用这个规则推断一个新的对象属性:
Blood_Sugar(?x) ∧ hasStatut(?x, "High") ∧ Service(?s) → triggerService(?x, ?s)
但是,当我创建规则应适用的个体时,推理器并没有给我想要的结果。这是一个演示此行为的本体:
rdf - OWL-DL:属性限制和/或域范围?
我对使用域、范围和限制来定义本体的正确方法有疑问。如果我想表示“学生必须只有一个身份证明”,我认为我可以执行以下操作之一:
定义属性的域和范围(例如
:hasId rdfs:domain :Student; rdfs:range :Identification
)并使属性起作用。定义属性并在学生类中创建一个限制:“hasId 恰好为 1 标识”。
在语义方面,这些是否意味着同一件事?如果是这样,在约定或最佳实践方面是否有首选方案?最后,这同样适用于数据类型属性吗?我可以简单地定义域/范围和/或我应该在类中创建限制以将其与属性链接吗?
rdf - OWL restrictions for must
I'm fairly new to OWL and still learning the restrictions. I am trying to model these statements:
- A person (P) can be male (M) or female (F), but not both
- A person must be male or female
- A male has no dresses
- A female has at least one dress (D)
So far, I have modeled it like:
I'm confused as to how to add the restriction that a person must be male or female and how to show that a male has no dresses. I'm also unsure of my modeling in general and would appreciate any feedback.
semantic-web - 强制对 OWL 类进行封闭世界假设
我有一个具有以下等价性的 OWL 类(以曼彻斯特表示法):
A
and not (hasB some
(B
and (hasC some C)
and (hasD some D)
and (hasList some
(OWLList
and (hasContents some
(OWLList
and (hasContents some
(E
and (hasValue some integer[< 200])
and (hasType value "xsd:integer"^^string)))
and (hasNext some EmptyList)))
and (hasNext some EmptyList)))))
我希望对这个类强制执行封闭世界推理,以便任何不满足not
语句后剩余条件的个人都将成为这个类的成员。
为此,我尝试使hasC
,hasD
和hasList
属性起作用,以便 OWL 知道不可能有这些属性的其他实例附加到此类。
不幸的是,该hasB
属性可能不止一次出现,因此无法限制。为了尝试“关闭”课程的这一部分,我在课程中添加了一条oneOf
语句,B
指定了该B
课程可能接受的所有可能的个人。
在我看来,功能属性和oneOf
语句的这种组合应该成功地“关闭”类。谁能告诉我我做错了什么?
我正在使用http://owl-workshop.man.ac.uk/acceptedLong/submission_12.pdf提出的 OWLList 类和相关属性。
非常感谢。
owl - 将知识陈述添加到 Protege 中的 OWL 本体)
在我的本体中,我有三个类,Player,Team和Competition。我也有两个对象属性,employs和CompetitionIn。employees的域是Team,范围是Player , competitsIn的域是Team 或 Player,范围是Competition。
我希望本体推断,如果一个玩家被一个团队雇用并且该团队参加了比赛,那么该球员也参加了该比赛。有没有办法将此信息添加到本体而不为本体中的每个人放入 {Player} CompetitionsIn {Competition}?
owl - Protégé 中 OWL 中的基数 DL 查询
我正在尝试使用基数限制进行查询。查询看起来像
ClassA和(roleA min 2 ClassB)
但这会返回一个空集。另一方面,当我进行查询时
ClassA和(roleA一些ClassB)
它返回一些 A 类个体。当我知道某些 A 类个人肯定至少有两个角色时,为什么基数查询不起作用?
更具体地说,我有类Team、Player和Position,以及对象属性使用(与Teams和Players相关)和hasPosition(与Players和Positions相关)。我正在尝试进行查询
团队和雇员最少2 (球员和hasPosition some { Striker**}**)
这应该返回有两个或更多前锋的球队,但显然因为 OWL 没有做出唯一名称假设,它返回一个空集。我试图声明我的一些个体是不同的,但是当我对不同个体执行查询时,它会导致 Protégé 崩溃。在没有不同个体的情况下运行查询时,Protégé 不会崩溃。
编辑:
本体 XML 中显示的 Protege Striker 中的 Pellet 错误消息
owl - 使用属性链获取 OWL 本体中的推断知识(Protege)
我在我的本体中建模了以下内容:
Club 雇佣了一些 Player,Player hasNationality 一些 Nationality,Player hasNationalStatus 值 National_Player,Country 相当于 Nationality。
我希望本体推断:
如果玩家拥有某个国籍,并且玩家的国家状态值为 National_Player,则国家(与玩家拥有的国籍相同)雇用玩家。
举个例子:
{Steven_Gerrard} 具有 Nationality 值 England 并且 {Steven_Gerrard} 具有 NationalStatus 值 National_Player 因此,{England} 雇用 [Steven_Gerrard}。
有没有可能将这些知识添加到 Protege 中?
谢谢。
编辑:
错误信息:
错误 42 记录于 2014 年 4 月 1 日星期二 20:49:24 BST
OWLReasonerRuntimeException: Non-simple object property ' http://www.semanticweb.org/u1cjd/ontologies/2014/1/untitled-ontology-2#employs ' 被用作一个简单的
和
错误 43 记录于 2014 年 4 月 1 日星期二 20:49:24 BST ReasonerInternalException: tRole.cpp:243: assertion 'Ancestor.empty() && Descendant.empty()' 失败
rdf - OWL 2本体的句法一致性
我想定义句法规则,以控制我的 OWL 2 一致性本体与这种语言的相对应。请告诉我我是否正确:
- 要定义这些规则,我必须在此页面W3C Direct Semantics中检查它们?
此类规则的示例: 定义子类关系: ** 子类关系必须存在于两个类表达式之间。 *如果 ClassExpression1 和 classExpression2 之间存在子类关系,则 ClassExpression1 的个体必须是 ClassExpression2 的子集
感谢您帮助我检查这些规则是否必须被视为句法规则以及是否还有其他规则?
rdf - 在 OWL 中定义具有节点距离的图
假设我想用 OWL 中的节点 A、B 和 C 表示下图,连接:
例如,从 A 到 B 有一条边,距离 d=1
我想以某种方式在 OWL 中对这些关系进行建模,以明确所有 3 个连接都是“边缘距离”类型,但它们确实具有不同的值(d=1,2,3)我不会完成如果遵循使用 A、B、C 作为类并定义一个对象属性的方法:“边缘距离”并为距离关系分配不同的值。
或者换句话说,在 OWL 中对上面的图进行建模的有效方法是什么?
非常感谢!