如何使用SPARQL计算有向图的最大度?

2024-04-04

我在两个单独的查询中计算了有向图中每个节点的入度和出度:

SELECT ?s (COUNT(*) AS ?outdegree) 
{ ?s ?p ?o }
GROUP BY ?s
ORDER BY DESC(?outdegree) 

SELECT ?o (COUNT(*) AS ?indegree) 
{ ?s ?p ?o }
GROUP BY ?o
ORDER BY DESC(?indegree)  

我需要计算图的最大度数。由于有向图的最大度是图的最大(入度+出度)值,我想知道如何组合上述两个查询的结果来计算它。

另外,如果有更有效的方法来做到这一点,也请提出建议。


您可以使用非常简单的查询来获取每个顶点的度数?x:

select ?x (count(*) as ?degree) { 
  { ?x ?p ?o } union
  { ?s ?p ?x }
}
group by ?x

例如,对于这个数据:

@prefix : <https://stackoverflow.com/q/24270532/1281433/> .

#     a
#     |
#     V
# b<--c-->d
#     |
#     V  
#     e

:a :p :c .
:c :p :b, :d, :e .

你会得到结果:

---------------
| x  | degree |
===============
| :a | 1      |
| :b | 1      |
| :c | 4      |
| :d | 1      |
| :e | 1      |
---------------

现在,如果您想要最大的一个,您可以简单地订购并使用限制 1,例如,

select ?x (count(*) as ?degree) { 
  { ?x ?p ?o } union
  { ?s ?p ?x }
}
group by ?x
order by desc(?degree)
limit 1
---------------
| x  | degree |
===============
| :c | 4      |
---------------

如果只有一个具有最高度数的顶点,这将起作用。如果有多个具有相同最高学位的,您将只获得其中之一。

如果你真的想combine你有两个查询,然后是这样的罗布·霍尔的回答 https://stackoverflow.com/a/24271282/1281433将工作,except由于子查询不返回入度为 0 或出度为 0 的节点,因此它们不会出现在最终结果中,因为它们不可连接。因此,只有在保证每个节点都有非零入度和出度时才使用该方法。他的答案对于如何构建图表并以编程方式使用 Jena 运行这些查询的示例也很有用。

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

如何使用SPARQL计算有向图的最大度? 的相关文章

随机推荐

  • C# 中的排序列表

    如何根据项目的整数值对列表进行排序 该列表就像 1 5 3 6 11 9 NUM1 NUM0 结果应该是这样的 1 3 5 6 9 11 NUM0 NUM1 有什么想法可以使用 LINQ 或 Lambda 表达式来做到这一点吗 提前致谢 这
  • 导入 _imaging 时 DLL 加载失败:

    我正在尝试运行我的 Python 程序 这些是我要导入的模块 从 tkinter 导入 从 functools 导入部分将 numpy 导入为 np 导入 matplotlib matplotlib use TkAgg 从 matplotl
  • 如何使用 CSS 将自定义位图字体嵌入到网站中

    如何使用 CSS 将自定义位图字体嵌入到我的网站中 我已尝试以下操作 但它只是恢复为后备字体 font face font family AgendaSemibold src url Agenda Semibold bmap format
  • JPA:检查实体对象是否已持久化

    有没有一个通用的方法可以 if entity is persisted before entity entity merge else entity persist 那么包含上述逻辑的方法在任何地方都是安全的吗 如果您需要知道对象是否已经在
  • Google Analytics API 3 - 错误:“invalid_grant”,说明:“”,Uri:“”

    我今天用谷歌搜索了这个问题的生命 分辨率为零 我正在尝试使用服务帐户构建一个非常简单的 Google Analytics 数据请求控制台应用程序 我已在 Google Developers Console 中设置了所有必需的详细信息 但收到
  • TFDMoniFlatFileClientLink 不规则地不跟踪到文件

    我有一个TFDMoniFlatFileClientLink在表单上 文件名设置为d temp monitor txt 追踪 真 TFDConnection Params MonitorBy mbFlatFile 这有时有效 有时则不跟踪任何
  • Python-创建一个以变量为名称的文本文件

    所以我正在做一个项目 我的程序创建一个名为 十个绿色瓶子 的文本文件 并在其中写入 10 个绿色瓶子歌曲 我已经成功地使其工作 但我想让它变得更好 我首先让用户可以选择瓶子的数量 效果很好 现在我只希望名称与用户输入的瓶子数量相关 即 如果
  • 为什么 Linux 可以在多处理中接受套接字?

    该代码在 Linux 上运行良好 但在 Windows 下失败 这是预期的 我知道多处理模块使用fork 产生一个新进程 并且父进程拥有的文件描述符 即打开的套接字 因此由子进程继承 然而 据我了解 您可以通过多处理发送的唯一数据类型需要是
  • B 树和 2-3-4 树之间的区别

    B 树和 2 3 4 树有什么区别 另外 你如何找到每个的最大和最小高度 链接到维基百科 http en wikipedia org wiki 2 3 4 tree and引用 2 3 4 树是 4 阶 B 树 A 2 3 4 is a B
  • 改善 python numpy 代码的运行时间

    我有一个代码可以将垃圾箱重新分配给一个大的numpy大批 基本上 大型数组的元素已以不同的频率进行采样 最终目标是将整个数组重新组合到固定的容器中freq bins 对于我拥有的数组来说 代码有点慢 有什么好的方法可以提高这段代码的运行时间
  • 将视频上传到 Google App Engine Blobstore

    我试图将视频文件与具有一堆属性的记录相关联 但似乎无法允许用户以一种形式执行所有操作 命名视频 提供描述并回答一些问题 然后上传文件 以下是我想要执行的步骤 用户将看到一个包含表单的页面 其中包含以下字段 名称 描述 文件选择器 文件被存储
  • 为什么replace()函数不起作用? [复制]

    这个问题在这里已经有答案了 我正在使用 Selenium 抓取一个网站 当我获取元素列表 标题 的文本时 它会打印以下内容 Countyarrow upward Reportingarrow upward Totalarrow upward
  • SQL 到 LINQ 工具 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何解决java中的连接重置异常?

    我正在尝试将视频上传到 youtube 我的代码是 private static void uploadVideo YouTubeService service throws IOException System out println F
  • 将位图资源存储在静态变量中

    我有一个显示小位图的视图 它在我的应用程序的许多地方使用 特别是列表视图 目前 每次使用创建该视图的实例时 我都会加载此位图BitmapFactory decodeResource resource id 我意识到 我可以通过将该位图加载到
  • 在 Azure 应用程序设置中配置我的连接字符串,并将其在我的 web.config 中配置为环境变量

    我在Azure中有一个Web应用程序 并且在其应用程序设置中配置了connectionStrgin 但我不知道如何将此配置设置为应用程序web config Net 中的环境变量 有人有一些文档或知道如何实现这一点 到目前为止我已经查看了微
  • 正确使用 tfds.load() 中的 Cifar-10 数据集

    我正在尝试使用 Cifar 10 数据集来练习我的 CNN 技能 如果我这样做就可以了 train images train labels test images test labels datasets cifar10 load data
  • python 中删除了 NaN 值的列表的中值

    是否可以在不显式删除 NaN 而是忽略它们的情况下计算列表的中位数 I want median 1 2 3 NaN NaN NaN NaN NaN NaN 为 2 而不是 NaN numpy 1 9 0有这个功能nanmedian nanm
  • c 将文本文件逐行读取到数组中并打印它们

    我有以下 C 代码片段 string lines File ReadAllLines C test txt for int i 0 i
  • 如何使用SPARQL计算有向图的最大度?

    我在两个单独的查询中计算了有向图中每个节点的入度和出度 SELECT s COUNT AS outdegree s p o GROUP BY s ORDER BY DESC outdegree SELECT o COUNT AS indeg