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

2024-02-07

我使用下面的查询从 DBPedia 本体中查找具有城市域(或城市超类)或国家范围(或国家超类)的所有属性。当我使用固定长度的路径时没有问题但是当我把*要定义任意长度的路径,我收到此错误:

Virtuoso 37000 错误 SP031:SPARQL 编译器:变量 '_::trans_subj_6_4' 用于查询的子表达式中,但不用于 分配的

我的 SPARQL:

define sql:signal-void-variables 1
define input:default-graph-uri <http://dbpedia.org>

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX res: <http://dbpedia.org/resource/>
PREFIX owl:<http://www.w3.org/2002/07/owl#>
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>

select ?property where{
  { ?property rdfs:domain/^rdfs:subClassOf* dbo:City }
  UNION
  { ?property rdfs:range/^rdfs:subClassOf* dbo:Country } 
}

另外,当我输入任何数字而不是*,我得到同样的错误。我在用着Virtuoso http://dbpedia.org/sparql作为 DBPedia SPARQL 端点。


使用 VALUES 而不是 UNION(如果可以的话)

Virtuoso 给你的错误更多是关于它的属性路径的实现和union比实际的 SPARQL 查询。查询的 SPARQL 部分看起来是正确的。 (我无法具体谈论 Virtuosodefines.)

在很多需要的地方union在原始 SPARQL 标准中,您现在可以使用values指定变量可以具有的特定值。它通常会导致更具可读性的查询(至少在我看来),并且某些端点(例如 Virtuoso)似乎可以更好地处理它。

Using values(并使用数据库百科-猫头鹰端点的 Web 界面使用的前缀),您的查询将变为以下内容,Virtuoso 将返回您要查找的内容:

select ?property where {
  values (?p ?v) { (rdfs:domain dbpedia-owl:City)
                   (rdfs:range dbpedia-owl:Country) }
  ?property ?p ?class  .
  ?class ^rdfs:subClassOf* ?v .
}

其他注意事项

另外,当我输入任何数字而不是 * 时,我会得到同样的错误。我在用着 Virtuoso 作为 DBPedia SPARQL 端点。

虽然 Virtuoso 接受属性路径长度的 {n,m} 表示法,但请注意,虽然这些属性路径出现在某些草稿中,但它们实际上并未纳入 SPARQL 1.1 标准。 Virtuoso 仍然接受它们,但如果您使用它们,您可能无法将查询与其他端点一起使用。

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

如何在任意长度的sparql路径中使用Union/or? 的相关文章

  • Windows 在 PATH 中搜索可执行文件的相对顺序是什么?

    如果我有a com a cmd a bat and a exe我的文件中的 PATH 如果我只调用该命令 Windows 会选择哪一个a 这是微软官方指定的吗 我只是想包裹我的gvim exe可执行文件 n 但是我的gvim bat似乎既不
  • 在 SVG 路径中对 SVG 进行动画处理

    我已经构建了一个路径动画 但 svg 中的锯片有问题 我想要为 Sawblade 制作动画 360 度旋转
  • 通过SPARQL UPDATE从本体中删除空白节点

    我在 SPARQL UPDATE 插入 操作的帮助下将一些数据存储在 protege 中制作的本体模型中 以下是更新查询 PREFIX test
  • 如何替换 PathBuf 或 Path 的文件扩展名?

    我当前的解决方案是 let temp format png path file stem unwrap to string lossy path pop path push temp 这相当难看 需要至少 6 次函数调用并创建一个新字符串
  • 排序 sys.path:首先是 virtualenv,然后是 /usr

    为什么sys path包含 usr 在我的 virtualenv 的目录之前 我用以下命令创建 virtualenv system site packages The sys path目前看起来像这样 home my virtualenv
  • ANDROID NDK - android:找不到命令

    我试图完成 Android NDK 中提供的第一个示例练习 我试图在 cygwin 上运行以下命令 android update project p 然而 我得到android command not found error 我检查了我的
  • JavaScript 文件中的代码如何获取文件的 URL?

    我需要将 CSS 样式表动态加载到位于不同的领域 如何获取 JS 文件的完整 URL 以在href样式表的属性 例如 结构如下 http bla com js script js http bla com css style css 我想将
  • fs.readFileSync 不是文件相关的? Node.js

    假设我的项目根目录下有一个名为file xml 假设我在tests 中有一个名为 test js 的测试文件 它有 const file fs readFileSync file xml 如果我现在跑步node tests test js从
  • 有没有办法使用无服务器框架来验证路径

    我在后端使用无服务器框架 使用AWS 我的 serverless yml 像这样 functions getBrand handler functions brand getBrand handler events http path se
  • Jenkins 管道中的导出命令

    如何在 Jenkins 管道中添加 导出 unix 命令 我里面有一个詹金斯 舞台 和 步骤 导出命令的语法是什么 我需要使用导出命令设置环境变量 PATH 您可以更新 PATH像这样 pipeline agent label docker
  • Windows 终端中的图标和背景图像字段无法识别父进程目录

    Windows 终端版本 1 12 10732 0 Windows 内部版本号 19043 1645 Issue 如果这个问题已经在其他地方得到解决 请原谅我 但我意识到当Use parent process directory被检查 Co
  • SPARQL 为缺失字段生成值

    我正在尝试编写一个 SELECT 它为我提供表中的所有值 我有可选值 我希望用标准值填充它们 如果它们不存在 这是我的代码 SELECT WHERE a nmo hasObject nm coin OPTIONAL a nmo hasAut
  • 计算MKPolyline路径的距离?

    我想获取 MKPolyline 路径的米数 以便我可以告诉用户完成路径还剩多少米 我一直在寻找一些东西来做这件事 但我什么也没得到 Thanks 尽管听起来很乏味 但除非您想自己进行数学计算 否则您可能必须迭代该行的思想points 将每个
  • 概念数据建模:RDF 是正确的工具吗?其他解决方案?

    我正在规划一个系统 该系统结合了各种数据源 并允许用户对这些数据源进行简单的查询 系统的一部分需要充当抽象层 了解所有连接的数据源 用户不应该 需要 了解底层数据 提供者 数据提供者可以是任何东西 关系 DBMS 错误跟踪系统 气象站 它们
  • 为什么 RDF 中对对象使用代码而不是字符串?

    例如 entity f06574 rdfs label Orioles 或者这样的格式 tt0268252 a Movie 在任一情况下 f06574 and tt0268252是代码 而不是实体或实例的实际字符串 原因之一可能是因为同一个
  • 如何在 Windows 10 中将文件夹添加到“Path”环境变量(带有屏幕截图)

    在 StackOverflow 和整个网络上 关于如何将特定文件夹添加到 Windows 10 的指南已经过时且很少Path用户的环境变量 我认为针对新开发人员的完整指南 包含分步说明和屏幕截图 对于帮助他们从命令提示符 https upl
  • 手动设置Android Studio的JDK路径

    如何为 Android Studio 使用自定义 JDK 路径 我不想弄乱 PATH 因为我没有管理员权限 是否有某个配置设置文件允许我进行设置 如果您查看项目设置 您可以从那里访问 jdk 在标准 Windows 键盘映射上 您可以在项目
  • 无法在 Windows 10 上更新 pip 的 PATH 变量

    我知道有数千个类似的主题 但我的 pip 命令突然停止工作 尽管我进行了所有研究 但我无法弄清楚原因 自从我上次使用 pip 以来已经有一段时间了 令人惊讶的是我的计算机不再识别该命令 我重新安装了pip 提示告诉我PATH变量没有正确更新
  • 如何在 Jenkins 声明式管道中设置 PATH

    在 Jenkins 脚本化管道中 您可以像这样设置 PATH 环境变量 node git url https github com jglick simple maven project with tests git withEnv PAT
  • 将构建参数传递给 .wxs 文件以动态构建 wix 安装程序

    我是一名学生开发人员 我已经为我现在工作的公司构建了几个安装程序 所以我对WIX还是比较熟悉的 我们最近决定拥有一个构建服务器来自动构建我们的解决方案 它构建调试和发布以及混淆 和非混淆 项目 你真的不需要理解这些 您需要了解的是 我有相同

随机推荐

  • C# SSL 安全套接字

    我有一个用 C 编写的 运行良好的通信器应用程序 现在我需要实现与服务器的安全连接 我尝试将 Socket 和 TcpClient 对象更改为 SslStream 但出现了一些错误 首先 我使用 makecert 生成了一个 cer 证书
  • 将方法作为参数传递与直接调用方法

    我在一些示例中看到了作为参数传递的方法 如果我可以从另一种方法调用一种方法 为什么我应该将方法作为参数传递 这个设计背后的目的是什么 从一种方法调用另一种方法 使用委托或将方法作为参数传递Action 将方法作为参数传递可用于防止依赖和耦合
  • 如何仅使用 CSS 来圆化我的 div 标签区域的角?

    我使用 div 标签来定义网页中的区域 我设置了所有明显的东西 如背景 大小 填充等 但它都是非常方形的 我该如何使用onlyCSS 圆角 这里有一个简单的 HTML 文档来演示如何仅通过 CSS 来实现它
  • 如何在没有浏览器检测的情况下识别“输入”事件中的错误行为?

    我将从问题开始 当特定浏览器的某个功能的实现有错误 并且您的 JavaScript 需要知道当前浏览器是否有该有错误的实现 以便它可以使用替代策略时 如何在不进行浏览器类型嗅探的情况下确定该实现是否有错误 这通常被认为是不好的 整个情况是这
  • 将纹理复制到纹理

    我已经完成了 2 个使用共享资源的程序 在 SlimDX 和 DirectX10 上运行 一个程序将在 3D 网格上显示共享纹理 第二个程序将加载图像作为纹理 到目前为止 每次从新图像更新纹理时 我都需要传递共享处理 现在 有没有一种方法可
  • Node.JS 验证 Google 身份验证令牌

    我正在尝试使用 Express JS 框架构建 Node JS REST 服务器 该框架为移动应用程序集成了 Google 身份验证 使用的 Node JS 版本是 0 12 7 我在验证从应用程序收到的 Google 令牌时遇到问题 因为
  • 在 Pandas 中将元组中的字符串拆分为列

    我有以下内容DataFrame where Track ID是行索引 我怎样才能分割字符串stats列分成5列数字 Track ID stats 14 0 0 00924175824176 0 41 0 742016492568 0 003
  • 重复命令 while true 或 x 次(相当于 while/for 循环)

    我想尽可能多地重复这个命令sometext在该领域note 表中的几行itemNotes可以有一个或多个sometext在该领域note UPDATE itemNotes SET note SUBSTR note 0 INSTR LOWER
  • 在php中计算数组[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 如果我使用count 在我的 php 脚本中 值是zero还计数变量返回1 为什么 Why php count values always
  • 如何使用Python http.client PUT方法上传二进制/视频文件?

    我正在 Python 3 6 2 中使用 HTTP client 与 API 进行通信 为了上传文件 需要三个阶段的过程 我已经成功地使用 POST 方法进行了交谈 并且服务器按我的预期返回了数据 然而 需要上传实际文件的阶段是 PUT 方
  • Java 8方法参考使用示例

    我正在查看一个示例 该示例从与方法引用相关的当前目录中提取隐藏文件数组 如下所述 using 匿名内部类执行 File hiddenFiles new File listFiles new FileFilter public boolean
  • 在 Silverlight 5 中合并 ResourceDictonaries 中使用样式

    我的 app xaml 中有很多样式 它们都在 SL5 应用程序的页面中使用得很好 我想将这些样式移至多个资源词典 以使其更易于管理和使用 首先 我将样式复制到项目中 Styles ButtonStyles xaml 页面中的新资源字典中
  • 如何从 Dart/Flutter 中的泛型函数调用命名构造函数

    我希望能够从通用函数内部构造一个对象 我尝试了以下方法 abstract class Interface Interface func int x class Test implements Interface Test func int
  • 显示光标下的文本

    当鼠标指针放置在元素上时 我想显示一些文本 例如 如果您将光标放在对某个答案的赞成票上 它会显示 此答案很有用 您可以在下图中看到它 我什至不知道如何搜索这个 Add a title属性 https developer mozilla or
  • 无法使用服务帐户授权连接到自己的 GAE 端点 API

    我一直在拼命尝试成功授权对我使用 OAuth2 和服务帐户从 python 脚本运行的 Google App Engine GAE 项目的 API 访问 我创建了服务帐户 将服务帐户 ID 添加到 api 文件中允许的客户端 ID 将私钥从
  • 从 Swagger 规范生成 nodejs

    所以我已经使用 swagger 编辑器记录了我的整个 API 现在我有了我的 yaml 文件 我真的很困惑我现在如何接受它并生成整个 Nodejs 内容 以便所有这些函数都已经定义 然后我只需用适当的代码填充它们 Swagger 代码生成器
  • 如何使用 ActiveRecord 将 DISTINCT ON 与 mysql 一起使用

    想要所有不同用户的所有最新访问 为此 我使用下面的查询 Event order time desc select DISTINCT ON user id user id time 出现 SQL 语法错误 ActiveRecord State
  • 如何在 Ansible 的 lineinfile 模块中的正则表达式中转义 1 个或多个空格?

    我正在使用 Ansible 在文件上设置一些变量lineinfile模块 我遇到的问题是如何拥有一个足够灵活的正则表达式以在字符串中间包含一些空格 请看下面 name Set DB IP in db conn file lineinfile
  • 使用正则表达式、组捕获和反向引用查找和替换

    我正在尝试在 SQL Server 2008 R2 Management Studio 中执行查找和替换操作 并使用组捕获 以便我可以在替换中反向引用组 我的理解是从this https stackoverflow com question
  • 如何在任意长度的sparql路径中使用Union/or?

    我使用下面的查询从 DBPedia 本体中查找具有城市域 或城市超类 或国家范围 或国家超类 的所有属性 当我使用固定长度的路径时没有问题但是当我把 要定义任意长度的路径 我收到此错误 Virtuoso 37000 错误 SP031 SPA