如何推断两个人之间的财产是兄弟

2024-03-31

我需要推断一个人是另一个人的兄弟,如果他们有同一个父亲。

所以,如果我有这个:

巴特有父亲荷马。

丽莎有父亲荷马。

Because Bart and Lisa有同一个父亲,我想推断:

丽莎有弟弟巴特。

有没有什么方法可以利用任何属性特征来做到这一点?


使用属性链和 Rolification

安托万·齐默尔曼的回答 https://stackoverflow.com/a/19565141/1281433是这个问题的一个很好的开始,并且触及了解决此类任务所需的要点:

From x to each of x's brothers, there is a path of the form hasFather o hasFather-1.

但现在,这实际上不仅仅适用于兄弟。对于所有兄弟姐妹来说都是如此x本身。这意味着您将拥有以下定义有兄弟姐妹:

hasSibling ≡ hasFather o hasFather-1

(其实,这真的只是有父亲兄弟姐妹;更精确的定义将使用有父级.) 现在,使用这个,你可以要求兄弟,这些兄弟只是男性的兄弟姐妹,x查询如下:

(hasSibling 值 x) 和 Man

然而,它would很高兴定义一个适当的有兄弟财产。你可以用财产链来做到这一点有兄弟姐妹如果你有一个特殊的属性来连接每个Man到他自己,并且只将男性与他们自己联系起来:

hasBrother == hasSibling o 特殊属性

In fact, such a property is what we get from a technique called rolification, which has been described more in a question, OWL 2 rolification https://stackoverflow.com/q/16989042/1281433, and its answer. The idea is that for the class Man, we create a new property rMan and add the equivalence:

Man ≡ rMan some Self

which says that each Man is related to himself by the rMan property, and that only instances of Man are so connected. This is exactly the property that we need as specialProperty above. Thus, we end up with the following definitions of Man, hasSibling, and hasBrother:

现在我们可以向兄弟们请教x查询如下:

hasBrother-1 value x

例如,我们可以要求Greg的兄弟姐妹,并得到Peter, Greg(他本人),以及Bobby.

样本本体

这是 Turtle 中的本体:

@prefix :      <http://www.example.org/brady#> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
@prefix brady: <http://www.example.org/brady#> .
@prefix owl:   <http://www.w3.org/2002/07/owl#> .
@prefix xsd:   <http://www.w3.org/2001/XMLSchema#> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .

brady:hasSibling  a             owl:ObjectProperty ;
        owl:propertyChainAxiom  ( brady:hasFather [ owl:inverseOf
                          brady:hasFather ] ) .

brady:Carol  a  owl:NamedIndividual , brady:Woman .

brady:hasBrother  a             owl:ObjectProperty ;
        owl:propertyChainAxiom  ( brady:hasSibling brady:r_Man ) .

<http://www.example.org/brady>
        a       owl:Ontology .

brady:Woman  a               owl:Class ;
        rdfs:subClassOf      brady:Person ;
        owl:equivalentClass  [ a               owl:Restriction ;
                               owl:hasSelf     true ;
                               owl:onProperty  brady:r_Woman
                             ] .

brady:hasFather  a  owl:ObjectProperty .

brady:Person  a  owl:Class .

brady:Man  a                 owl:Class ;
        rdfs:subClassOf      brady:Person ;
        owl:equivalentClass  [ a               owl:Restriction ;
                               owl:hasSelf     true ;
                               owl:onProperty  brady:r_Man
                             ] .

brady:r_Woman  a  owl:ObjectProperty .

brady:r_Man  a  owl:ObjectProperty .

brady:Marcia  a          owl:NamedIndividual , brady:Woman ;
        brady:hasFather  brady:Mike .

brady:Peter  a           owl:NamedIndividual , brady:Man ;
        brady:hasFather  brady:Mike .

brady:Jan  a             owl:NamedIndividual , brady:Woman ;
        brady:hasFather  brady:Mike .

brady:Cindy  a           owl:NamedIndividual , brady:Woman ;
        brady:hasFather  brady:Mike .

brady:Bobby  a           owl:NamedIndividual , brady:Man ;
        brady:hasFather  brady:Mike .

brady:Greg  a            owl:NamedIndividual , brady:Man ;
        brady:hasFather  brady:Mike .

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

如何推断两个人之间的财产是兄弟 的相关文章

  • 如何在任意长度的sparql路径中使用Union/or?

    我使用下面的查询从 DBPedia 本体中查找具有城市域 或城市超类 或国家范围 或国家超类 的所有属性 当我使用固定长度的路径时没有问题但是当我把 要定义任意长度的路径 我收到此错误 Virtuoso 37000 错误 SP031 SPA
  • 如何开始使用 RDF? (特别是对于关系数据库开发人员?)

    我正在整理一个目录 目录本质上只是元数据 因此我没有使用数据库 而是使用 RDF 存储和 SPARQL 处理器来编译数据 我正处于模式匹配阶段 有趣的部分 因此 我想出了许多在 SPARQL 中定义起来很简单的模式 然后将该信息提供给使用该
  • Freebase 中所有标题/主题标题的文本文件

    我需要一个文本文件来包含 txt 文件中每个标题 每个主题的标题 每个项目的标题 每个标题都占一行 如果我已经下载了 freebase rdf 转储 我该如何执行此操作或进行此操作 如果可能 我还需要一个单独的文本文件 其中每个主题 项目的
  • 使用TDB2和OWL Reasoner配置fuseki

    这里是 fusioni jena 的新手 我设法让 fusioni 使用 tdb1 与 OWLFBRuleReasoner 一起运行没有问题 但无法使其与 tdb2 一起工作 http jena apache org 2016 tdb ht
  • 使用 Jena 解析 RDF 递归

    我正在尝试使用 Apache Jena 递归解析 RDF 文档 它由如下数据集组成
  • 在 OWL 中的同一属性中定义多个域/范围

    在 OWL 中设置数据 对象属性的域 范围的正确方法是什么 如果我有两节课A B和数据属性hasName
  • 如何将嵌入的 Blazegraph 内容转储到 RDF 文件?

    I have 创建了 blazegraph RDF4J 存储库和连接 https wiki blazegraph com wiki index php Sesame API Tutorial在斯卡拉中 val props new Prope
  • Jena 桌面 SPARQL 客户端 (TDB)?

    我正在开发一个使用 Jena 进行存储 带有 TDB 后端 的应用程序 我正在寻找类似 Squirrel 的东西 它可以让我看到正在存储的内容 运行查询等 这似乎是一个明显需要的东西 但我的 可能措辞不好 谷歌查询没有出现任何有希望的东西
  • OWL 中表达式前面的列表?

    OWL 中表达式前面是否可以有一个列表 就像是 Dairy Egg Nut rdfs subClassOf FoodGroup or Dairy Egg Nut rdfs subClassOf FoodGroup 或者一般来说 是否存在针对
  • RDF和OWL工作流程问题

    我一直在通过 Protege 查看和使用 OWL 我想知道我是否正确理解 工作流程 和它的想法 从头开始构建数据库 使用 Protege 或等效工具为您的数据生成 OWL 本体 将此模式导出为 RDF 使用定义为三元组中的某些元素的类以及目
  • 通过计算属性来推断 OWL 中的知识

    我有一个包含 Person 和 City 类的本体 人们前往城市旅行 这种旅行在 TravelTo 对象属性中表示 我想添加一个 WorldTraveler 类 如果人们去过两个或更多城市 那么他们就是世界旅行者 我怎样才能在我的本体中做到
  • 三元组组合的递归 SPARQL 查询

    我使用onspy在Python中递归运行以下查询 SELECT c WHERE c rdfs subClassOf restriction restriction owl onProperty has part owl someValues
  • 从 RDF 节点拉出字符串

    在使用 Jena 的 SPARQL 查询时 我试图以更易读的格式获取数据 但是我不知道如何以正确的方式提取数据 就目前而言 输出是 http www w3 org TR 2003 PR owl guide 20031209 wine Sau
  • 如何建立rdfa lite节点之间的关系

    尝试在语义上标记有关特定地址的报告页面 该页面提供有关地址能源消耗的报告 并提供与能源消耗相关的服务优惠 我想在语义上表示该地点的地址 与该地址相关的能源报告以及该地址可用的优惠 现在 我的标记有一个用于地点的 RDFa lite 节点和另
  • 两个本体之间的映射

    我如何使用 owl sameas 来链接两个本体 如果我有本体A c rdf type owl Class 和本体B d rdf type owl Class 我想将两个本体与共享概念 c 和 d 联系起来 我读过有关 owl sameas
  • 如何使用 RDFLib 解析大数据集?

    我正在尝试使用 RDFLib 3 0 解析几个大图 显然它处理第一个图并在第二个图上死掉 MemoryError 看起来 MySQL 不再支持作为存储 您能建议一种以某种方式解析这些图的方法吗 Traceback most recent c
  • SPARQL 为缺失字段生成值

    我正在尝试编写一个 SELECT 它为我提供表中的所有值 我有可选值 我希望用标准值填充它们 如果它们不存在 这是我的代码 SELECT WHERE a nmo hasObject nm coin OPTIONAL a nmo hasAut
  • 什么是适合 .net 的优秀 RDF 库? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个可以处理 RDF 和 OWL 数据的库 到目前为止我已经发现 semweb http razor occams info c
  • SPARQL:如何将 owl:equivalentClass 传输到 rdfs:subClassOf (owl:Restriction) 属性?

    我的问题是关于使用 SPARQL 查询一些 owl 本体 其中owl Restrictions被大量使用 在我的例子中 这是 细胞本体论 http obofoundry org ontology cl html 以下是一些典型条目的示例 以
  • 在 SPARQL 中计算满足约束的值,并为不满足约束的值返回 0

    我想使用 SPARQL 查询检测满足属性值条件的所有值 例如 假设我想检测其中值的所有资源rdfs label有类型xsd string 逻辑上的定义可以是 x 字符串标签 x y rdfs 标签 x y xsd 字符串 y 我找到了一种在

随机推荐

  • 截断 MD5 的 ECDF 图

    在这个link https stackoverflow com questions 8184941 uniform distribution of truncated md5 它表示截断的 MD5 是均匀分布的 我想使用 PySpark 检
  • 在 Python 中迭代并从多维数组中选择特定数组

    想象一下我有这样的东西 import numpy as np arra np arange 16 reshape 2 2 4 这使 array 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 我想创建一个沿着特定
  • JavaFX TextArea如何设置带有自动换行符的文本

    在我的应用程序中 我使用了两个Tabs 在第一个中我放置了一个HtmlEditor在第二个中我放置了一个TextArea HTML 选项卡是默认的 当用户创建 HTML 输入时 他可以切换到TextArea以便直接查看或更改 HTML 源代
  • Webpack 未加载 Vue 的单文件组件 CSS

    Webpack 正在编译单个文件组件 但不加载 CSS HTML 和 Vue 已正确呈现 但没有 CSS 看来是webpack配置的问题 知道出了什么问题吗 我在用着webpack dev server加载开发服务器 src index h
  • 是否有可能 - 在 Flutter Web 应用程序中插入 google AdSense?

    我尝试在我的网站上插入下一个代码 Google AdSense 但目前尚未成功 代码是 1 有一段时间我尝试了带有类似句子的 dart js js context callMethod 但是 认为它不起作用 因为我们需要展
  • Ocaml,用列表中的给定元素替换所有指定元素

    我正在编写一个 ocaml 项目 其中我有一个函数可以替换所有 在字符列表中 E 这是我的建议代码 let rec string lst change E lst match lst with gt let a E a h t if h g
  • 在 PAdES 第 4 部分的情况下,带有文档锁定的签名无效

    我遇到一个问题 我在 PAdES 第 4 部分的情况下设置了文档锁定功能 执行文档时间戳签名后签名无效 文档锁定功能的代码片段如下 PdfSigFieldLock pdfSigFieldLock new PdfSigFieldLock pd
  • 使用 PHP 发送带有 WSDL Soap 请求的 Soap 标头

    我对 SOAP 非常陌生 我正在尝试用 PHP 实现一个使用 ASP NET Web 服务的快速测试客户端 Web 服务依赖于包含授权参数的 Soap 标头 使用 WSDL 时是否可以将 auth 标头与肥皂请求一起发送 My code p
  • 拖动左上角时如何调整div大小?

    In CSS3 resize http www w3schools com cssref css3 pr resize asp 要调整大小的图标位于右下角 如何使其显示在左上角并使用户能够相应地调整大小 我发现了here http dev
  • 如何设置 AntiForgeryToken cookie 路径

    前者HtmlHelper AntiForgeryToken https msdn microsoft com en us library dd492243 28v vs 118 29 aspx方法允许人们重写string path已弃用 O
  • Android 列表视图中的卡片翻转

    我需要创建一个列表视图的视图 这应该是一个自定义列表 因为我希望列表中的每个项目都是一个图像视图 触摸时会翻转以显示详细信息 我正在根据 android 参考资料查看 Card Filp 视图 使用片段 但我觉得我错过了一些非常重要的东西
  • Python:点击字符串时从文本文件打印接下来的x行

    情况如下 我有一个 txt 文件 其中包含多次 nslookups 的结果 我想循环 tru 文件 每次遇到字符串 非权威答案 时 脚本都必须打印以下 8 行from那个位置 如果它有效 我应该在屏幕上得到所有积极的结果 首先我有以下代码
  • 获取当前日期(以毫秒为单位)(UTC)(不使用字符串)

    好吧 你可能认为这个问题已经被问过 但我认为还没有 我读过的解决方案都有这种 拼图游戏 技术 比如getUTCMonth getUTCMinutes 但由于我只想比较两个 UTC 日期之间经过的秒数 因此这不适用 众所周知 您可以通过以下方
  • AngularJs 无法在 module.run 中注入 $provide 和 $injector 服务

    我正在尝试在 angularjs 中动态定义服务 正如文档所说 provide https docs angularjs org api auto service 24provide and injector https docs angu
  • Java整数等于字符?

    如果这个问题有点简单 我很抱歉 但我有点困惑为什么我的教授会做出以下声明 请注意 read 返回一个整数值 使用 int 作为返回类型允许 read 使用 1 来指示它已到达流的末尾 您会记得在 Java 简介中 int 等于 char 这
  • 使用 ng-class 添加多个类

    警告 此线程适用于旧的 AngularJS 我们可以有多个表达式来添加多个 ng class 吗 for eg div div 如果是的话 任何人都可以举个例子来这样做 当不同的表达式求值时应用不同的类true div Hello Worl
  • Javafx 实时线程更新

    我同时使用 Javafx 和线程 我经常遇到这个问题 我制作一个按钮 然后当单击该按钮时 使用事件处理程序 我制作一个 for 循环 将按钮更改为 1 2 3 4 5 然后在每个中间延迟一秒钟 就像倒计时一样 但发生的情况是它延迟了 5 秒
  • 性能说明:预热后代码运行速度变慢

    下面的代码运行完全相同的计算 3 次 它没有做太多事情 基本上将 1 到 100m 之间的所有数字相加 前 2 个块的运行速度大约是第三个块的 10 倍 我已经运行这个测试程序超过 10 次 结果显示差异很小 如果有的话 我希望第三个块运行
  • 安装 Swashbuckle.AspNetCore 包后,Aspnet core 2.2 默认路由更改为“~/index.html”

    在我的 Asp net Core MVC 应用程序中安装 Swashbuckle AspNetCore 后 默认路由将被 index html 页面覆盖 我现在使用 的地方是将我的应用程序重定向到 index html 而不是默认的 MVC
  • 如何推断两个人之间的财产是兄弟

    我需要推断一个人是另一个人的兄弟 如果他们有同一个父亲 所以 如果我有这个 巴特有父亲荷马 丽莎有父亲荷马 Because Bart and Lisa有同一个父亲 我想推断 丽莎有弟弟巴特 有没有什么方法可以利用任何属性特征来做到这一点 使