有限制的 OWL 类型推断

2023-12-10

我正在使用 FaCT++ 和一个简单的本体研究 Protege 4 的 OWL 限制概念。假设我有一个人foo班级的Something:

:Something a owl:Class.
:foo a :Something, owl:NamedIndividual.

另一个类是根据限制定义的hasBar财产:

:hasBar a owl:ObjectProperty.
:SomethingElse owl:equivalentClass [a owl:Restriction;
                                    owl:onProperty :hasBar;
                                    owl:allValuesFrom :Something].

如果我断言:

:x :hasBar :foo.

为什么我不能从中推断出x is a SomethingElse(通过事实foo is a Something)?我能让它发挥作用的唯一方法是range of hasBar被定义为:

:hasBar a owl:ObjectProperty;
        rdfs:range :Something.

但我想避免这种情况,因为它限制了可以成为主题的内容hasBar(这给我带来了进一步的麻烦)。


我认为通过实际例子进行推理更简单,让我们考虑以下知识库:

:eats rdf:type owl:ObjectProperty .

:Vegetable rdf:type owl:Class ;
       rdfs:subClassOf owl:Thing .

:Vegetarian rdf:type owl:Class ;
        owl:equivalentClass [ rdf:type owl:Restriction ;
                              owl:onProperty :eats ;
                              owl:allValuesFrom :Vegetable
                            ] .

:Carrot rdf:type :Vegetable ,
             owl:NamedIndividual .

:John rdf:type owl:NamedIndividual , owl:Thing ;
      :eats :carrot .

你的例子有一些等价物:hasBar is eats, Vegetarian is SomethingElse, Vegetable is Something, foo is carrot最后x is John.

现在你想推断John is a Vegetarian (= x is SomethingElse).

这是有道理的,它不能与owl:allValuesFrom。你在这里所说的是所有素食者实例,如果他们有财产,他们必须在范围内有蔬菜。所以从中你可以推断出carrot例如,假设您知道约翰是素食主义者,那么它就是蔬菜。

这在自然语言中也有意义:在你的本体中,你只知道约翰吃胡萝卜,这不会自动使他成为素食主义者(非素食者也吃胡萝卜)。

你可以使用owl:someValuesFrom代替owl:allValuesFrom。这样,您就可以定义每个素食者都有吃一些蔬菜的人。在这种情况下,如果我们知道约翰吃胡萝卜,那么根据您对概念的定义,他将被推理机归类为素食主义者素食主义者.

普遍的 (allValuesFrom)和存在主义(someValuesFrom)限制很难理解,通常没有正确或错误的解决方案,这主要取决于您想要实现的目标。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有限制的 OWL 类型推断 的相关文章

随机推荐

  • CakePHP 条件查询,控制器为“hasAndBelongsToMany”

    我为这个可怕的标题道歉 我不知道如何解释我的问题 在我的数据库中 我有以下表格 articles tags and articles tags 一篇文章可以有多个标签 目前 我可以获取所有带有所有标签的文章 但我希望能够根据其标签查找文章
  • SVN 到 Git 迁移后如何列出和获取远程分支? [复制]

    这个问题在这里已经有答案了 我将 SVN 存储库迁移到 Git 并将其推送到中央存储库 我们有相当数量的标签和分支 但不知何故 我们无法从 Git 客户端列出和获取它们 这很奇怪 因为标签和分支似乎在服务器上可用 在一个人的帮助下乔恩 马多
  • 如何在 sails 控制器中获取当前套接字对象或 id?

    我想访问当前连接的套接字 IDsails js v0 12 控制器功能 sails sockets getId req socket 显示未定义 因为这不是套接字请求 我的目标是在用户成功登录后在数据库中设置用户的在线状态 login fu
  • 已弃用的“EAGLContext”的解决方案是什么?

    我想为我的应用程序使用本机过滤器 该功能可以工作 但我想避免从文档中删除的方法 我搜索整个互联网并没有解决方案 我搜索整个互联网 但没有找到任何解决我的问题的方法 public func applyFilterTo image UIImag
  • 根据需求添加带有可变参数的.Net Core策略

    我正在尝试实施一项非常细粒度的政策 这个想法就像图中一样 每个实体始终具有一对多与右侧实体的关系 一机构可以有很多Courses each Course可以有很多Subjects each Subject可以有很多Syllabus etc
  • 如何将获取请求参数传递到我的 Velocity 模板以发送邮件

    我有一个 JSP 在该 JSP 中我有一个看起来像这样的链接 现在 当用户单击该链接时 它会转到我的velocityview servlet 现在我的问题是如何提取velocityview servlet 中的这些参数并将其放入上下文中 以
  • 字符文字错误中字符过多

    我正在创建一个时尚的文本应用程序 但在某些地方我收到错误 字符文字中的字符太多 我只写了一个字母 但当我粘贴时 它会转换成许多字母 如下所示 uD83C uDD89 原始字母是 请告诉我如何以正确的方式写这个 for int charOne
  • 第一句话正则表达式

    我正在使用正则表达式 与 php perl 兼容 来从某些文本中获取第一句话 我意识到 如果涵盖所有案例 这可能会变得巨大 但只是在目前 足够好 的事情之后 有人为此准备了现成的东西吗 最终 您需要的是自然语言解析 这是极其困难的 并且单独
  • fillStyle 不是函数

    我收到一个不寻常的错误 ctx wrap fillStyle 不是函数 在这一行 ctx wrap fillStyle b8b8b8 in here this paint function self path ctx wrap if isO
  • ?打印心形符号时

    抱歉问了一个愚蠢的问题 我们正在尝试将心形符号从数据库打印到 Java XML 文件 但同样的内容被打印为 不知道我在哪里失踪了 已经尝试过 char unicode 作为实践 我尝试在 main 方法中使用它 请找到示例 java 类 p
  • ListView QML 的 roleName 中的 QSqlQueryModel 引用错误

    我想从我的 SQlite 数据库中获取模型 当我在 QSqlQueryModel 中设置查询时 我可以获得行数 列数等 但是每列内的数据我有一个 ReferenceError 试图获取柱子 cpp代码 data base users QSq
  • AVPlayer 在 iPhone 上不会在结束中断时恢复播放,但在 iPad 上会恢复播放

    我正在为 iPhone 和 iPad 编写一个广播应用程序 在处理中断的暂停和播放音频时遇到一些奇怪的行为 我正在使用 AVAudioSession 委托方法beginInterruption and endInterruption分别到p
  • ID3 Java 枚举树

    我正在尝试制作一个非二元学习树 它是 ID3 算法的简化版本 为此 我尝试使用枚举 因为有几个参考文献教授枚举层次结构 但我在将枚举转移到创建树所需的函数时遇到了麻烦 我已经尽我所能地设置了树所需的一切 但我在树的初始构建方面遇到了麻烦 首
  • c中int和short的行为

    我想知道以下代码输出的原因是什么 unsigned short a 10 aa 1 if a gt 1 printf surprise else printf No surprise 这给出了输出 惊喜 unsigned int a 10
  • 避免来自 Java 标准输入流的控制序列(如 ^[[C)

    Code import java util Scanner public class Try public static void main String args Scanner sc new Scanner System in Syst
  • 在 PHP 中执行存储过程后调用 odbc_fetch_array 会出现错误 [Microsoft][ODBC SQL Server Driver]无效描述符索引

    因此 我尝试使用 ODBC 在 SQL 数据库中执行存储过程 但它返回错误 odbc fetch array function odbc fetch array SQL error Microsoft ODBC SQL Server Dri
  • 如何在一个集合视图源上逐个应用多个过滤器函数(AND 关系)

    我一直在使用绑定到列表视图的 Collection View Source 对象 而 CVS 是 Observable Collection 对象之上的视图 我知道如何使用以下技术应用过滤器 cvs Filter new FilterEve
  • std::string 相当于具有空字符的数据?

    我想读取一个二进制文件并使用类似的东西std string自动调整缓冲区大小等 我正在使用 Visual C 我有什么选择 The std string类已经处理带有嵌入 NUL 字符的数据 您遇到什么问题 请注意 当使用 c str 方法
  • dropna 后 Nans 未删除

    我有一个 400 x 25 的数据框 我应该从数据集中删除所有 Nans 然后从 25 列中仅选择 3 列进行处理 我已经使用以下方法完成了此操作 df1 dropna axis 0 df2 df1 loc bgr wc rc df2 rc
  • 有限制的 OWL 类型推断

    我正在使用 FaCT 和一个简单的本体研究 Protege 4 的 OWL 限制概念 假设我有一个人foo班级的Something Something a owl Class foo a Something owl NamedIndivid