gpt4 book ai didi

ontology - 如何强制一个类恰好具有给定属性之一

转载 作者:行者123 更新时间:2023-12-02 18:58:44 26 4
gpt4 key购买 nike

我有一个 Person 类和一组数据属性:First_Name、Surname、Gender、DoB、Country_of_Birth。数据属性的 Domains 设置为 Person。我想在我的本体中设置一条规则,规定每个人必须恰好拥有这些属性中的每一个。

因此,在 Protege 中,我将 Person 设置为“First_Name 恰好 1 xsd:string”、“Surname 恰好 1 xsd:string”等的子类。然后,我设置了一个具有姓氏的个人,但没有名字、性别等。

然后我运行推理机。我期望它会因不一致而大发雷霆(姓氏被分配给不符合成为人的要求的个人),但事实并非如此,推理者推断该个人是一个人,尽管事实上它不具备所需的属性。

这是正确的行为吗?如何使本体按照我想要的方式运行?因为我想要的是本体对于不完整的数据具有鲁棒性(例如,你不能添加一个没有名字的人)。

最佳答案

是的,这是正确的行为,因为 Protege 使用开放世界假设,而不是关系数据库的封闭世界假设。在开放世界假设下,没有任何东西可以假设没有明确说明或可以从明确已知的信息中推导出来。当您创建一个没有分配 First_Name 的个体(可能是 Person 类型)时,在开放世界假设下,推理器仅假设 First_Name > 是未知的,并不是说它不存在(封闭世界假设就是这种情况)。因此,即使推理器推断个体必须是 Person 类型,也不会给出任何不一致的原因。为了获得不一致,您必须声明已知该人既是 Person 并且没有 First_Name。对于单个 john 可以通过断言来实现:

john Type Person
john Type First_Name max 0 xsd:string

关于ontology - 如何强制一个类恰好具有给定属性之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48115438/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com