在类层次结构中查找公共超类和路径长度

2024-01-09

我有两个来自 DBpedia 的课程,A 和 B。如何计算每个类到公共超类 C 的距离(边数),以及如何找到这个公共超类?


您可以这样做,但首先应注意以下几点:

  1. 两个类可能有很多共同的超类,不一定只有一个。这意味着可能不存在唯一的最专业的公共超类。
  2. 如果某个类 C 是 A 和 B 的超类,则 C 的每个超类都是alsoA 和 B 的超类。
  3. D 类可能是 C 的多个路径的超类,如果您尝试计算长度,这可能会导致一些困难。例如。,

    Computer Hardware
      Monitors
        Flatscreen Monitors
          Dell Flatscreen Monitors  *
      Dell Hardware
        Dell Flatscreen Monitors    *
    

    在此层次结构中,戴尔平板显示器是计算机硬件的子类,路径长度为 2 (DFM → DH → CH) 和路径长度为 3 (DFM → FM → M →CH)。这很好,但如果您要计算从 DFM 到 CH 的另一个子类的长度,您应该使用哪一个?

  4. 数据中可能没有任何公共超类。这也是完全合法的情况。现在,in OWL,每个类都是一个子类owl:Thing,但这并不适用于一般的 RDF,并且您甚至可能无法从 DBpedia 获得该结果,因为没有附加 OWL 推理器。

假设您可以找出解决这些问题所需的详细信息,那么这并不太难。在我看来,逐步构建此查询是最简单的。首先,使用这样的查询,您可以获得一个类的超类,以及每个超类的路径长度。这确实假设从子类到超类存在唯一的路径。如果有多个路径,我认为报告的长度将是不同路径的总和。我不确定你如何解决这个问题。

select ?sub ?super (count(?mid) as ?length) where {
  values ?sub { dbpedia-owl:Person } 
  ?sub rdfs:subClassOf* ?mid .
  ?mid rdfs:subClassOf+ ?super .
}
group by ?sub ?super
sub                                super                               length
http://dbpedia.org/ontology/Person http://dbpedia.org/ontology/Agent   1
http://dbpedia.org/ontology/Person http://www.w3.org/2002/07/owl#Thing 2

现在的技巧是对两个子类使用这种方法,然后根据它们共有的超类连接结果,使用如下查询:

select * 
{
  values (?a ?b) { (dbpedia-owl:Person dbpedia-owl:SportsTeam) }

  { select ?a ?super (count(?mid) as ?aLength) { 
      ?a rdfs:subClassOf* ?mid .
      ?mid rdfs:subClassOf+ ?super .
    }
    group by ?a ?super
  }
  { select ?b ?super (count(?mid) as ?bLength) { 
      ?b rdfs:subClassOf* ?mid .
      ?mid rdfs:subClassOf+ ?super .
    }
    group by ?b ?super
  }
}

该查询仍然找到路径长度all常见的超类,而不仅仅是最具体的超类,并且它仍然没有添加来自?a to ?super和长度从?b to ?super以获得完整的路径长度。但这只是一点算术。您可以按长度对这些结果进行排序,然后限制为仅一个结果,以便获得最短的结果。正如我所指出的,可能不存在唯一的最具体的常见子类,但长度最短的结果将是one最具体的常见子类。

select ?a ?b ?super (?aLength + ?bLength as ?length)
{
  values (?a ?b) { (dbpedia-owl:Person dbpedia-owl:SportsTeam) }

  { select ?a ?super (count(?mid) as ?aLength) { 
      ?a rdfs:subClassOf* ?mid .
      ?mid rdfs:subClassOf+ ?super .
    }
    group by ?a ?super
  }
  { select ?b ?super (count(?mid) as ?bLength) { 
      ?b rdfs:subClassOf* ?mid .
      ?mid rdfs:subClassOf+ ?super .
    }
    group by ?b ?super
  }
}
order by ?length
limit 1
a      b          super length
Person SportsTeam Agent 3
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在类层次结构中查找公共超类和路径长度 的相关文章

  • 通过计算属性来推断 OWL 中的知识

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

    我使用onspy在Python中递归运行以下查询 SELECT c WHERE c rdfs subClassOf restriction restriction owl onProperty has part owl someValues
  • 将 HTML 转换为 RDF

    我正在寻找一个通用的 API Web 服务 工具 等等 它允许将给定的 HTML 页面转换为尽可能具体的 RDF 图 最有可能使用主干本体和 或映射器 你证明了吗GRDDL http www w3 org 2001 sw wiki GRDD
  • W3C 验证器无法处理 RDF/XML

    我正在尝试描述一个非常基本的地铁火车站地图 其中包含站点和时间 这个 RDF 到 Turtle 转换器 http rdf translator appspot com 可以解析我的 XML 但 W3C 验证器抛出 Error Your do
  • 在构建语义 Web 应用程序时,OWL 是如何实际使用的?

    我一直在阅读有关语义 Web 技术 例如 RDF 和 OWL 的内容 并且对在现有关系数据库之上构建 RDF 三重存储语义数据库的可能性很感兴趣 这只是一项研发活动 看看我能做什么 我喜欢的样子OWLIM http www ontotext
  • OWL ObjectProperty 在 Protégé 中作为注释加载

    我正在尝试加载ontology http www bbc co uk ontologies wildlife 2010 11 04 shtml在 Prot g 中 但未按预期进行处理 最有问题的是所有对象和数据属性都显示为注释而不是数据属性
  • 限制 Factforge sparql 端点使用的图表

    Using http www sparql org sparql html http www sparql org sparql html运行此查询 prefix oxprop
  • 使用 SPARQL 提取 dbpedia 实体的层次结构

    我正在尝试使用以下方法提取 DBpedia 资源的 Wikipedia 类别或 Yago 分类的层次结构SPARQL端点 http dbpedia org sparql 例如 我想以实体的分层形式找出所有可能的类别和类 例如 http db
  • 通过SPARQL UPDATE从本体中删除空白节点

    我在 SPARQL UPDATE 插入 操作的帮助下将一些数据存储在 protege 中制作的本体模型中 以下是更新查询 PREFIX test
  • 提取给定节点的所有父节点

    我正在尝试使用以下命令提取每个给定 GO Id 节点 的所有父级EBI RDF sparql 端点 https www ebi ac uk rdf services sparql 我是根据this https stackoverflow c
  • 用于查找艺术家属性的 dbpedia SPARQL 查询

    我试图通过 DBPedia 和 SPARQL 查询语言获取有关艺术家的详细信息 但是 根据我的理解 如何获取某些信息似乎几乎是不可能的 我正在尝试找到一位艺术家并获取诸如他们的家乡之类的信息 我猜查询应该类似于 SELECT c WHERE
  • 如何返回从起始资源到指定路径深度的所有 S->P->O 三元组?

    我的目标是以图形方式表示指定资源的深度两条边内的 S gt P gt O 关系 p Person 1 我希望从查询中返回该路径长度内的所有关系 s p o在我的图形应用程序中进行进一步处理 我尝试了下面的第一个查询 它给了我第一组 s p
  • 如何将dbpedia导入neo4j? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我需要将 dbpedia 导入 neo4j 我从这里下载 dbpedia http wiki dbpedia org Download
  • 如何以 JSON-LD 返回 SPARQL 结果?

    返回 SPARQL 查询结果的好方法是什么JSON LD http www w3 org TR 2014 REC json ld 20140116 最好靠近标准化 JSON 格式 http www w3 org TR 2013 REC sp
  • 如何使用 SPARQL 从三元组中提取 rdf:about 或 rdf:ID 属性?

    一开始这似乎是一件微不足道的事情 但到目前为止我还没有设法使用 SPARQL 获取给定资源的唯一标识符 我的意思是给出的 例如 rdf Description rdf about http 然后是标识该资源的一些属性 我想要做的是首先找到这
  • 使用 SPARQL 查询的 UNION 和交集

    我正在将用户定义的查询转换为 SPARQL 例如 当用户说 abc 时 这意味着给我给定类型的所有具有名为 abc 属性的节点 作为其扩展 如果用户说 abc 或 pqr 和 lmn 我需要查找给定类型的某些属性为 abc 或 pqr 和
  • Sparql 查询子类或等效项

    我想查询尼古丁 产品 的所有子类 结果一定是 鼻腔形式尼古丁 口咽形式尼古丁 4项 参见图片 我尝试通过 rdfs subClassOf 和 owl equivalentClass 查询 但没有成功 尝试从这个例子 https stacko
  • SPARQL:两个节点之间有路径吗?

    是否有一种好的 SPARQL 查询可以让我回答两个给定节点是否连接在单个 多个 SPARQL 端点上 假设我想检查两个节点是否
  • Sparql 键与不同值

    我有一个返回重复项的 sparql 查询 我希望它仅在其中一个值 subjectID 上清理它们 与 DISTINCT 不同的是 DISTINCT 似乎为所选值的组合找到唯一的值 而不是仅为其中一个参数 我看到有人在这里提出 group b
  • 我们可以在 OWL 限制中使用 owl:sameAs 吗?

    例如 我有三个类 Flock Bird Velocity 我还有两个属性 hasMember 域是 Flock 范围是 Bird 和 hasAttribute 域是 Bird 范围是 Velocity 现在我想为 Flock 类添加一个 E

随机推荐

  • 如何将自定义属性添加到 DynamicMethod 生成的方法?

    我正在玩DynamicMethod http msdn microsoft com en us library system reflection emit dynamicmethod aspx and 表达式树 http msdn mic
  • 使用 Thread 用 TStringList 中的项目填充 TComboBox

    我正在使用一个ComboBox显示许多项目的列表 不用担心 项目之间的差异允许通过AutoComplete 该列表是在创建表单 OnCreate事件 但为了使表单在填写时不会冻结 我添加了一个TThread执行填充TStringList然后
  • iOS 上的 PhoneGap 是否硬编码以加载 www/index.html?

    在 Android 上的 PhoneGap 上 您可以修改 App java 类来加载任何 url 我找不到任何地方可以更改 iOS 版本的入口点 测试时我更喜欢有一些具有不同设置的 www 目录 目前我需要重命名目录 这有点麻烦 从 Ph
  • Safari 更改选择高度

    我无法改变select height 所有浏览器都工作正常 但 Safari 不行 哪里可能有问题 我也尝试上课 style select 但不工作 select width 170px height 25px 尝试添加这个 webkit
  • 清除 Visual Studio Code 的workspaceStorage 文件夹有什么影响?

    我在 Windows 10 上使用 Visual Studio Code 进行大量 C 开发 我的开发计算机的硬盘容量有限 并且Low disk space警告很频繁 经过分析与优秀WinDirStat公用事业 APPDATA Code U
  • 如何从 D3 svg 转换为 topojson/geojson?

    D3 允许转换点坐标的 geojson topojson 数组 x y x y x y aka a geojson arc 并且 通过投影 进入 svg 路径
  • ASP.NET 和会话 - 新浏览器实例与新浏览器窗口

    我希望有人能为我澄清这种行为 并解释 ASP NET 如何决定何时处理新会话等内容 A 在 Internet Explorer 中 我加载了相关的 ASP NET 站点 它开始一个新的会话 B 如果我进入菜单 文件 新窗口 它会保留在同一个
  • 如何让 Firefox 打印背景颜色样式?

    我有一些简单的CSS someElement background color black color white 它在浏览器中看起来不错 但是当我在 Firefox 中打印它时 它显示为白色背景上的黑色文本 我想这是某种节省墨水的功能 但
  • 将对象作为innerHTML添加到javascript/jquery中动态创建的div中很困难

    我的项目中有以下代码 HTML
  • 如何编写某些 CSS 形状的代码?

    我正在尝试用 CSS 制作下面的形状 有什么想法如何做到这一点 或者知道可以提供帮助的教程网站 我说的是黄色的标签之类的形状 其次 有谁知道如何用css制作一个形状 即正方形 矩形 底部有两个圆角 顶部有直角 Thanks James 来回
  • RabbitMQ 消费者作为 Windows 服务

    我有一个在 net中实现 发布 订阅模式 的rabbitmq消费者应用程序 它作为控制台应用程序完美运行 但是当我将其部署为Windows服务时 它似乎没有将数据保存到mongodb中 protected override void OnS
  • 当 iframe 中的表单具有焦点时,Chrome 在 Tab 键上滚动

    我有一个 iFrame 它托管一个包含表单的外部站点 如果我按某些表单文本框上的选项卡键 整个浏览器选项卡将向下滚动页面 奇怪的是 这并没有在所有表单字段上执行 这似乎只发生在 Chrome 中 我已经在 Firefox 和 IE11 中尝
  • 计算递推关系 T(n)=T(n-1)+logn

    我们要通过重复替换来解决递推关系 T n T n 1 logn 我开始替换并得到以下结果 T n T n 2 log n log n 1 根据对数乘积法则 log mn logm logn T n T n 2 log n n 1 继续这个
  • Refname“master”不明确

    我已经查看了所有其他不明确的引用名称问题 但似乎没有一个有帮助 为什么我会收到此警告 git checkout master warning refname master is ambiguous git show ref master e
  • Spring Data JpaRepository方法中的Pageable和@Param问题

    我有一个以下存储库 public interface MilestoneRepository extends JpaRepository
  • 关于 .then 和 .catch 的问题

    是否可以触发 then AND catch 这是我的脚本 passport use new BasicStrategy username password callback gt User findOne where username us
  • Angular 2 import 语句通配符语法

    我在一个文件中定义了几个类 如下所示 我的类 ts export class Class1 export class Class2 export class Class3 现在我想像这样使用通配符导入它们 import from my cl
  • Laravel 5:检查事件日期范围是否尚未使用

    我正在为几天的事件创建日历 并且事件不能重叠 但是事件可以在另一个事件开始 结束时开始 结束 在 Laravel 中 在我的事件模型表中 我存储事件的开始和结束日期 在存储新事件数据库之前如何检查它是否有效 不与现有事件重叠 不包括保证金
  • IndexedDB 插入时速度慢

    我在第三代 iPad 上安装了 iOS 8 并在 Safari 中尝试了 IndexedDB 我的示例代码只是将 1000 个对象添加到对象存储中 它可以工作 但与具有类似或较弱硬件的其他设备相比 它非常慢 See this snippet
  • 在类层次结构中查找公共超类和路径长度

    我有两个来自 DBpedia 的课程 A 和 B 如何计算每个类到公共超类 C 的距离 边数 以及如何找到这个公共超类 您可以这样做 但首先应注意以下几点 两个类可能有很多共同的超类 不一定只有一个 这意味着可能不存在唯一的最专业的公共超类