如何返回从起始资源到指定路径深度的所有 S->P->O 三元组?

2024-04-28

我的目标是以图形方式表示指定资源的深度两条边内的 S->P->O 关系,p:Person_1。我希望从查询中返回该路径长度内的所有关系?s, ?p, ?o在我的图形应用程序中进行进一步处理。

我尝试了下面的第一个查询,它给了我第一组?s ?p ?o重复,然后?p2, ?o2, ?p3, ?o3作为结果中的附加列。我要绑定?p2 and ?p3 to ?p, ?o2 and ?o3 to ?o.

  SELECT *
    WHERE {
        p:Person_1 ?p ?o .
        BIND("p:Person_1" as ?s)
        OPTIONAL{
            ?o ?p2 ?o2 .
        }
        OPTIONAL{
            ?o2 ?p3 ?o3 .
        }
    }

然后,基于如何从 RDF 图中的给定资源构造获取整个子图? https://stackoverflow.com/questions/37186530/how-do-i-construct-get-the-whole-sub-graph-from-a-given-resource-in-rdf-graph,我尝试使用CONSTRUCT返回图表。

PREFIX p: <http://www.example.org/person/> 
PREFIX x: <example.org/foo/>

construct { ?s ?p ?o }
FROM <http://localhost:8890/MYGRAPH>
where { p:Person_1 (x:|!x:)* ?s . 
        ?s ?p ?o . 
}

我正在使用 Virtuoso,但出现错误:

Virtuoso 37000 Error SP031: SPARQL compiler: Variable ?_::trans_subj_9_3 in T_IN list is not a value from some triple

我可以对第一个查询的结果进行后处理,但我想了解如何使用 SPARQL(最好是在 Virtuoso 上)正确执行此操作。

测试 @AKSW 的建议后更新: 两个都CONSTRUCT and SELECT语句按照建议的模式工作。

CONSTRUCT { ?s ?p ?o }
FROM <http://localhost:8890/MYGRAPH>
where { p:Person_1 (x:foo|!x:bar)* ?s . 
        ?s ?p ?o . 
} LIMIT 100

and:

SELECT s ?p ?o 
FROM <http://localhost:8890/MYGRAPH>
where { p:Person_1 (x:foo|!x:bar)* ?s . 
        ?s ?p ?o . 
} LIMIT 100

The SELECT导致无法使用以下方法删除多个重复项DISTINCT,这会导致一个错误,我认为这是由于某些返回值的“数据类型”造成的。

Virtuoso 22023 Error SR066: Unsupported case in CONVERT (DATETIME -> IRI_ID)

看起来一些 SPARQL 后处理是有序的。

这让我大部分时间都到了那里。仍然希望我能为 SPARQL 找到一个解决方案,就像 Cypher 的“跳数”一样:

OPTIONAL MATCH path=s-[*1..3]-(o)

以下是在 Virtuoso 中运行的 SPARQL 查询。请注意,SPARQL W3C 标准不支持此语法,并且在其他三元组存储中它将失败。

PREFIX p: <http://www.example.org/person/> 
PREFIX x: <example.org/foo/>
# CONSTRUCT {?s ?p ?o}  # If you wish to return the graph
SELECT ?s ?p ?o   # To return the triples
FROM <http://localhost:8890/MYGRAPH>
where { p:Person_1 (x:foo|!x:bar){1,3} ?s  .
  ?s ?p ?o .
}LIMIT 100

另请参阅 K. Idehen 的 wiki 条目:http://linkedwiki.com/exampleView.php?ex_id=141 http://linkedwiki.com/exampleView.php?ex_id=141

感谢@Joshua Taylor 在同一领域提供的建议。

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

如何返回从起始资源到指定路径深度的所有 S->P->O 三元组? 的相关文章

  • 使用 QueryWithResultSet 的 dotnetrdf xml 异常

    我有一个 asp net 项目 我想在其中查询 DBPedia 使用以下代码我收到错误 public string testEndpoint TEST02 SparqlRemoteEndpoint endpoint new SparqlRe
  • 从 SPARQL 查询返回嵌套数据结构

    如果我有一个具有这种结构的图 prefix
  • DBpedia SPARQL 查询美国大学

    我创建了一个正在运行的 SPARQL 查询DBpedia SNORQL SPARQL 端点 http dbpedia org snorql 查询的目的是获取美国大学或学院的列表 包括其经度 纬度和捐赠基金 该查询似乎有效 但似乎缺少一些记录
  • SPARQL 查询的优化。 [预计执行时间超过1500(秒)的限制]

    我正在尝试运行此查询http dbpedia org sparql http dbpedia org sparql但我收到一个错误 指出我的查询成本太高 当我运行查询槽时http dbpedia org snorql http dbpedi
  • 如何开始使用 RDF? (特别是对于关系数据库开发人员?)

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

    我有以下删除语句 delete s p o
  • 通过 SPARQL 处理 R XML 的编码问题

    我遇到了 R 的 SPARQL 包的编码问题 我正在运行以下代码 library SPARQL rights query lt PREFIX dc
  • 如何在java中构建SPARQL查询?

    是否有一个库 能够像以下那样以编程方式构建 SPARQL 查询CriteriaBuilder在 JPA 中或像使用PreparedStatement对于 SQL 类似 对于 SQL 在 Java 中构建 SQL 字符串的最简洁方法 http
  • 投影中的变量“x”不存在于 GROUP BY 中

    我想计算城市和括号中的内容 但是 我也想获得另一个变量 但是当我将它添加到 SELECT 时 我得到 org openrdf query MalformedQueryException 投影中的变量 region name 不存在于 GRO
  • 列出来自 DBpedia 的国家

    尝试查询 DBpedia 以获取包含以下内容的所有国家 地区的列表dbo longName列出每个国家的财产和首都 但返回 0 个结果 看不出查询有什么问题 PREFIX dbo
  • 为 RDBMS(MySQL 数据库)创建 SPARQL 端点的最佳方法

    我正在 想做 一些链接开放数据集的实验 特别是政府推出的实验 我有一个 RDBMS 更具体地说是 MySQL 我设计它时考虑了语义网络的想法 即我将信息存储为对象 谓词和定义对象的类 反过来 所有对象通过主语 gt 谓词 gt 宾语形式的语
  • sparql 主题的完整树

    例如 当我有一个人图时 例如约翰和约翰有工作地址 家庭地址 电话号码 关系等 是否有可能在不知道它是什么的情况下检索与 john 及其子类相关的所有内容 这样我就可以检索例如以下内容 John lt address lt house num
  • SPARQL - 查找具有最相似属性的对象

    假设有一个人的 RDF 数据库 每个人都有许多三元组来定义这个人的朋友 这么多 person x hasFriend otherPerson 如何找到拥有最相似朋友的人 我是 SPARQL 的新手 这似乎是一个非常复杂的查询 基本上 结果将
  • 从 RDF 节点拉出字符串

    在使用 Jena 的 SPARQL 查询时 我试图以更易读的格式获取数据 但是我不知道如何以正确的方式提取数据 就目前而言 输出是 http www w3 org TR 2003 PR owl guide 20031209 wine Sau
  • SPARQL 为缺失字段生成值

    我正在尝试编写一个 SELECT 它为我提供表中的所有值 我有可选值 我希望用标准值填充它们 如果它们不存在 这是我的代码 SELECT WHERE a nmo hasObject nm coin OPTIONAL a nmo hasAut
  • 如何验证 SPARQL 中的日期时间对象? (Virtuoso 22007 错误 DT006)

    我收到以下错误 Virtuoso 22007 Error DT006 Cannot convert 0359 to datetime Incorrect month field length SPARQL query define sql
  • 如何以 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
  • 如何从维基数据属性中获取最新值?

    假设我想获取每个国家 Q6256 及其最近记录的人类发展指数 P1081 值的列表 该国家 地区的人类发展指数属性包含在不同时间点获取的数据点列表 但我只关心最新的数据 此查询不起作用 因为它会为每个国家 地区获取多个结果 每个人类发展指数
  • Sparql 查询子类或等效项

    我想查询尼古丁 产品 的所有子类 结果一定是 鼻腔形式尼古丁 口咽形式尼古丁 4项 参见图片 我尝试通过 rdfs subClassOf 和 owl equivalentClass 查询 但没有成功 尝试从这个例子 https stacko
  • 将任何 URI 类型的 CURI 字符串表示形式转换为真正的 CURI 或 IRI

    我有这样的三元组 其中对象是anyURICURIe 的类型化字符串表示形式 我想将对象构造为真正的 CURIe 或 IRI 的三元组 prefix source

随机推荐

  • 在 KnockoutJS 中更改模型数据时,Javascript 内存泄漏

    我们正在构建一个相当大的单页应用程序 使用 KnockoutJS 作为 数据处理程序 问题是 当更改模型数据时 垃圾收集器不会处理旧模型 看起来如此 该应用程序有大约 12 个不同的模型 其中包含计算的可观察量 您可以使用它们检索关系 在
  • 如何在Python中访问列表列表中的列

    我在 python 中有一个由列表列表建模的二维数组 我想提取该列 我进行了快速研究 找到了一种使用 numpy 数组的方法 问题是我不想使用 numpy所以我不想将列表列表转换为 numpy 数组 然后使用 1 句法 我尝试在正常的列表列
  • MySQL服务器安装配置失败

    我试图使用 Windows x86 32 位 MSI 安装程序在本地计算机 Win7 32 上安装 MySQL 服务器 安装后向导配置服务器时出现错误 配置失败 详细信息 mysql server 5 5 win32 6 Looking f
  • 在Python中重命名多个文件[重复]

    这个问题在这里已经有答案了 如何重命名以下文件 abc 2000 jpg abc 2001 jpg abc 2004 jpg abc 2007 jpg 分为以下几项 year 2000 jpg year 2001 jpg year 2004
  • 预期关闭,发现不同的关闭

    A是一个包含向量的结构B A实施add b方法添加了一个B实例到列表B B包含一个闭包属性f 如果我添加一个B到向量add b 没关系 如果我将两个向量相加add b 我收到一个错误 说两个闭包不同 这是一个最小的例子 A struct s
  • QGeoCoordinate:没有这样的文件或目录

    我正在尝试使用 QtLocation 但不能 我不明白为什么 我在 ubuntu 14 04 上使用 qt5 3 2 这很奇怪 因为我将这一行添加到我的 pro 文件中 QT network CONFIG mobility MOBILITY
  • 优化 Excel VBA 代码

    我在 Excel 中有以下 VBA 代码 其目标是在找到给定文本时删除一行 并删除其正下方的行 它需要扫描大约 70 万行 大约需要一个小时才能扫描 10 万行 有人看到有什么优化吗 Sub RemovePageHeaders Applic
  • 我该如何修复此错误:您需要在此活动中使用 Theme.AppCompat 主题(或后代)

    我搜索了所有互联网网站来修复此错误 但我无法解决 我只想创建带有两个按钮 是 和 否 的 AlertDialog 这是我的代码 import android content DialogInterface import android su
  • 使用Visual C++进行Linux开发时是否可以直接使用linux文件夹/usr/include

    我尝试使用针对 ubuntu 16 04 VM 的 Visual C for Linux Development 插件 与虚拟机的连接以及本地文件传输到远程文件夹 home user projects projectx 均成功 但是 当我尝
  • Vim 中的类和函数名称高亮显示

    在沉迷于它的模态输入之后 我最近刚刚从 Textmate 设置了我的 Vim 环境 不过 Vim 中的语法高亮似乎不太美观 我用 C 编写代码 由于函数调用和类名无法突出显示 因此代码更难以阅读 我玩了一下配色方案 但找不到任何与 类名 或
  • Android 中的位图圆形裁剪

    我有一个方形位图显示在半透明圆圈下方 用户可以触摸并拖动位图来定位它 我希望能够裁剪位图位于圆圈下方的任何部分 我怎样才能做到这一点 看一下圆角位图Drawable http developer android com reference
  • groff:我可以嵌入图像吗?

    我正在生成一些 troff 风格的文档 有没有办法将图像 jpg等 嵌入到groff文件中 取决于输出格式 如果您要创建 PostScript 文件 则可以使用 PSPIC 它使用 PS 文件本身和单个图像 例如 PSPIC image p
  • SwiftUI 按钮在出现时更改文本大小

    从 GIF 中可以看出 一旦工作表完全打开 完成 按钮文本就会变大 这不仅发生在这个视图中 而且也发生在使用系统图像而不是文本的其他视图中 有谁知道问题的解决方案还是我做错了什么 我仍然对 Swift 记忆犹新 NavigationView
  • JQuery 工具提示 VS JQuery UI 工具提示 [关闭]

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

    遇到了一个问题 我们的一些用户在我们网站的 Facebook 浏览器中存在有问题的 Service Worker 问题 当 Facebook 应用程序用户访问我们在 FB 上共享的页面时 他们会在 FB 浏览器上看到我们的 您离线页面 该错
  • 仅重命名 pandas 数据框中的最后一列(考虑重复的标题)

    我需要重命名only我的数据框中的最后一列 问题是有许多同名列 这是有原因的 因此我无法在网上其他示例中使用该代码 有没有办法使用特定的东西来隔离最后一列 我尝试过做这样的事情df rename columns df columns 1 T
  • Azure Function 上的此平台不支持 System.Drawing

    我已阅读以下内容answer https stackoverflow com questions 51904125 azure function gives error system drawing is not supported on
  • 用于生成交互式图的 Java 库

    我想将我们的 SOA 服务可视化为图表 我们有商业服务和领域服务 gt domain service 1 e g business service 1 gt domain service 2 gt domain service 3 我目前使
  • 创建新的 IHttpActionResult 操作结果方法

    有什么办法可以让我使用新的IHttpActionResult接口返回一个HttpStatusCode NoContent回复消息 我目前正在使用return new HttpResponseMessage HttpStatusCode No
  • 如何返回从起始资源到指定路径深度的所有 S->P->O 三元组?

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