当前位置: 首页 > 知识库问答 >
问题:

保护正好1个基数OWL限制不引起不一致

公孙黎昕
2023-03-14

我想我快疯了!我已经学习了Owl和Protege的各种教程,但仍然无法找到答案。用例很简单。我定义了一个叫‘人’的类。我定义了一个名为HasFirstName的数据属性。我给Person添加了一个'subclass of'restriction',如下所示:'has firstname确切1 string'。我还添加了Person类型的名为Alex的个人,但没有添加hasFirstName属性。我期望推理者抱怨,因为我已经指定了基数1,并断言Alex是一个人,但没有将财产值添加到Alex个人,然而推理者并没有抱怨。但是,如果我添加了两个语句,例如hasFirstName'alex'和hasFirstName'john',那么我会得到一个抱怨。我做错了什么?如有任何帮助,我们将不胜感激,谢谢。

共有1个答案

潘刚洁
2023-03-14

第一种情况没有矛盾。OWL提出了开放世界假设,这意味着未知的事物与已知为真或已知为假的事物是不同的。你的用户名,在我写的时候,这个答案是user3552593。我比较有信心你有一个名字,而且那和我还不知道是什么的事实并不矛盾。

通过说

Person=1 HasFirstName.String

没有什么不一致的;Alex,凭借Alex的人格,正好有一个名字--我们只是还不知道是什么名字。

 类似资料:
  • 我刚认识猫头鹰。我在这页http://dior.ics.muni.cz/~makub/owl/中读到了一个通用量化示例。

  • 我想我仍然对OWL公理有一个基本的误解:(。 下面是我创建的一个小测试本体论: 当我在Protege中运行hermitreasoner时,我得到了的预期结果,即它是的成员。但是,就成为的成员而言,我对没有同样的感受。 我怀疑这与开放世界的假设有关,并且有可能可能还有另一个断言。有几个问题: 我诊断的问题正确吗? 我能得到一个例子,说明我如何让我的目标隐士推理是的成员,而不显式地做出断言吗? 谢啦

  • //在guard语句中首先执行let,然后执行bool检查,会导致编译错误 //先执行布尔检查,然后让它工作 上面的两种说法似乎与我的说法相同。为什么在第一种情况下它不起作用?

  • 问题内容: 我试图通过Python模块进行控制。 我想为当前的运行时以及永久配置添加一个IP地址到受信任的区域。 以下是dbus界面的文档:http : //manpages.ubuntu.com/manpages/wily/man5/firewalld.dbus.5.html 什么有效:运行时配置 我可以将其添加到运行时配置中: 很简单 什么不起作用:永久配置 事实证明,将其添加到永久配置中比较

  • 我会收到错误消息: 现在,我的docker版本是17.06,根据这一页,[docker:“build”需要一个参数。参见'docker build--help',我应该可以指定一个位于不同目录下的Dockerfile,所以我不知道问题是什么。 编辑:我通过以下操作创建了符号链接: 我想我不需要把。最后,由于我用-f指定了Dockerfile,但发现了错误。

  • 我的尝试: 传递不是解决方案。 例如,MongoDB的可以将或作为无限制。 方法之间的这种不一致会导致不兼容,例如,一个接口带有方法和两个实现:in memory和MongoDB。 方法和中的一致性得到了保留。 或: 有更好的方法实现方法之间的一致性?