使用 tdbquery 查询 TDB 中的命名 RDF 图

2023-11-29

我正在尝试使用 tdbquery 程序查询新创建的 TDB 数据库。但是,我很难编写针对正确命名图的查询。我正在做以下事情:

首先创建一个新数据集并添加一个名为“facts”的名称图

Dataset dataset = TDBFactory.createDataset("/tdb/");
dataset.begin(ReadWrite.WRITE) ;

try {
    Model facts = RDFDataMgr.loadModel("lineitem.ttl") ;
    dataset.addNamedModel("facts", facts);
    dataset.commit();
    TDB.sync(dataset);
    dataset.end();

} finally {
    dataset.close();
}

当我查询 TDB 数据库中的所有图表时,它看起来很好。

./tdbquery --loc /tdb/ "SELECT * { GRAPH ?g { ?s ?p ?o } }"

--------------------------------------------------
| s         | p           | o          | g       |
==================================================
| <fact1>   | <predicate> | <nation>   | <facts> |
| <fact2>   | <predicate> | <region>   | <facts> |
--------------------------------------------------

如果我尝试查询命名图,我找不到 和 三元组。

./tdbquery -v --loc /tdb/ "SELECT * { GRAPH <facts> { ?s ?p ?o } }"
OR
./tdbquery -v --loc /tdb/ "SELECT * FROM NAMED <facts> WHERE { ?s ?p ?o }"

-------------
| s | p | o |
=============
-------------

当我查看查询的代数版本时,我发现四边形中的上下文(图形)是错误的。

INFO  exec                 :: ALGEBRA
(quadpattern (quad <file:///usr/local/apache-jena-2.12.1/bin/facts> ?s ?p ?o))

我知道四边形模式应该是: (四元?s?p?o)

如何查询 TDB 数据库中的命名图?

Regards


当我查看查询的代数版本时,我发现上下文 我的四边形中的(图表)是错误的。

INFO  exec                 :: ALGEBRA
(quadpattern (quad <file:///usr/local/apache-jena-2.12.1/bin/facts> ?s ?p ?o))

我知道四边形模式应该是:(quad ?s ?p ?o)

不,它是正确的(如果不是你所期望的)

A quadpattern搜索四边形,因此包含 4 个字段,第一个字段是要搜索的图的名称

这就是你的问题所在,图形名称是 URI,但你只提供了facts作为被视为相对 URI 的名称,因此受系统不同部分可能不同的解析的影响。

在您的示例中,查询解析器使用工作目录作为基本 URI,导致您在代数计划中看到奇怪的图形名称。

您可以通过发出以下查询来准确查看 TDB 存储中的图形名称:

SELECT ?g WHERE { GRAPH ?g { } }

如果您获得绝对 URI,则可以直接在原始查询中指定它,如果没有,则无法从命令行查询它。

解决您的问题

尽可能不要使用相对 URI。如果您确实想使用它们,则在未显式指定基本 URI 的情况下不要使用它们

因此,在加载数据的代码中,请确保为图表提供绝对 URI,例如

dataset.addNamedModel("http://example.org/facts", facts);

如果您确实希望能够使用相对 URI 来引用查询中的图表,请使用适当的BASE声明,以便按照您的需要解析 URI,例如

./tdbquery -v --loc /tdb/ "BASE <http://example.org/> SELECT * { GRAPH <facts> { ?s ?p ?o } }"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 tdbquery 查询 TDB 中的命名 RDF 图 的相关文章

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

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

    Using http www sparql org sparql html http www sparql org sparql html运行此查询 prefix oxprop
  • 在 Protege 中使用 SPARQL 推断数据

    我正在尝试推断 RDF 数据 假设我有这些三元组 RDF Turtle 是我使用 Protege 创建的 prefix owl
  • 如何使用 RDFLib 解析大数据集?

    我正在尝试使用 RDFLib 3 0 解析几个大图 显然它处理第一个图并在第二个图上死掉 MemoryError 看起来 MySQL 不再支持作为存储 您能建议一种以某种方式解析这些图的方法吗 Traceback most recent c
  • 提取给定节点的所有父节点

    我正在尝试使用以下命令提取每个给定 GO Id 节点 的所有父级EBI RDF sparql 端点 https www ebi ac uk rdf services sparql 我是根据this https stackoverflow c
  • rdf:seeAlso 和 rdfs:seeAlso 之间的区别

    有什么区别rdf seeAlso and rdfs seeAlso 当我可以使用时rdf seeAlso当我可以使用时rdfs seeAlso 你能举出一些例子吗 首先 请注意rdf and rdfs分别是常用于引用 RDF 语法和 RDF
  • 用于查找艺术家属性的 dbpedia SPARQL 查询

    我试图通过 DBPedia 和 SPARQL 查询语言获取有关艺术家的详细信息 但是 根据我的理解 如何获取某些信息似乎几乎是不可能的 我正在尝试找到一位艺术家并获取诸如他们的家乡之类的信息 我猜查询应该类似于 SELECT c WHERE
  • 使用 owl:Class 前缀进行 rdflib 和 xml 序列化

    我想使用owl 我的 RDF 本体的 XML 序列化中的前缀 使用 rdflib 版本 4 1 1 不幸的是我仍然得到序列化rdf Description标签 我查看了有关将命名空间绑定到图表的答案RDFLib XML 序列化中的命名空间前
  • SPARQL 为缺失字段生成值

    我正在尝试编写一个 SELECT 它为我提供表中的所有值 我有可选值 我希望用标准值填充它们 如果它们不存在 这是我的代码 SELECT WHERE a nmo hasObject nm coin OPTIONAL a nmo hasAut
  • SPARQL (Jena) UPDATE 可以通过文字集合(而不是文字)进行参数化吗?

    我可以调用参数化的 SPARQL UPDATE 如 Jena 的ParameterizedSparqlString 将属性设置为多个 例如字面值 例如 我有 Set
  • 什么是适合 .net 的优秀 RDF 库? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个可以处理 RDF 和 OWL 数据的库 到目前为止我已经发现 semweb http razor occams info c
  • 概念数据建模:RDF 是正确的工具吗?其他解决方案?

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

    我无法找到一些使用 SWRL 和 Jena 的简单代码示例 佩莱 或者至少使用 SWRL 我研究了 Pellet 文档中的一些示例 但没有关于使用 SWRL 的示例 网络上的大多数示例都不完整且令人困惑 我找到的唯一解决方案是使用 Jess
  • 在 SPARQL 中计算满足约束的值,并为不满足约束的值返回 0

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

    我在 Fuseki 数据集中的 rdf 知识图中有一个列表 我可以用类似的方法获取列表的元素 select webpage where graph
  • 如何使用 SPARQL 从三元组中提取 rdf:about 或 rdf:ID 属性?

    一开始这似乎是一件微不足道的事情 但到目前为止我还没有设法使用 SPARQL 获取给定资源的唯一标识符 我的意思是给出的 例如 rdf Description rdf about http 然后是标识该资源的一些属性 我想要做的是首先找到这
  • JENA:端点返回内容类型:text/html

    当我尝试将 sparql 查询发送到某个端点时 例如 QueryExecution qe QueryExecutionFactory sparqlService http data open ac uk sparql getStringFo
  • 如何检查从 SPARQL * 通配符扩展的所有级别的子属性?

    在维基数据中 我想找到一个项目的国家 地区 如果该项目直接有一个国家 则可以直接进行 或者通过爬上 P131 位于行政领土实体 直到找到一个国家 这是查询 item wdt P131 wdt P17 country 上面的查询工作正常 除非
  • 如何使用 Wikidata 和 SPARQL 查询人员?

    就此而言 我是 SPARQL 和 Wikidata 的新手 我正在尝试允许我的用户在维基数据中搜索人 而且只是人 我不希望任何结果成为摩托车品牌或任何东西 所以我一直在玩here https query wikidata org使用以下查询
  • Java 中 OWLOntology 到 Jena 模型的转换

    我需要将数据从 OWLOntology 对象 OWL api 的一部分 转换为模型对象 Jena Api 的一部分 我的Java程序应该能够加载owl文件并将其内容发送到fuseki服务器 根据我读到的内容 只有使用 Jena Api 才能

随机推荐

  • Flutter MissingPluginException(在通道 flutter.baseflow.com/permissions/methods 上找不到方法 init 的实现)

    发布 apk 文件时出现颤振错误 我尝试获取位置 纬度和经度 它在调试模式下运行良好 但在发布模式下出错 如果有人知道请帮助我谢谢 MissingPluginException No implementation found for met
  • 如何获取当前时间戳的最后 24 小时?

    我正在尝试提取过去 24 小时内的所有数据 但从当前时间开始 如果当前日期时间是 5 3 并且时间是 11 30 那么我想从 11 30 开始提取最后 24 小时 日期字段的数据类型是datetime它只有日期和时间值 没有秒 这是我当前的
  • 如何使用 winapi 获取监视器的友好名称?

    我使用 wmi 的 Win32 DesktopMonitor 类 但这不返回监视器名称 但是当我使用珠穆朗玛峰 Aida64 时 这向我展示了它 我认为这个应用程序可以与 winapi 一起使用 我找到方法了获取监控信息 但不明白如何用它来
  • 在运行时动态向 Spring Boot 添加 jar

    我正在使用 SpringBoot 1 4 2 我希望能够从命令行启动 SpringBoot 应用程序 指定其他外部 jar 在启动应用程序时也应该对这些外部 jar 进行组件扫描 我无法使用spring boot maven plugin因
  • 如何在错误的 .NET Core API 路由上抛出 404?

    我有一个具有 API 的 NET Core Web 应用程序 我定义了一个基于的中间件类this像这样回答 public class ErrorHandlingMiddleware private readonly RequestDeleg
  • 如何避免 Firebase 数据库中的重复数据

    在我的 Android 应用程序中 我以这种方式在 firebase 数据库中插入 VideoEntity 对象 Override protected void onCreate Bundle savedInstanceState Log
  • 了解路由事件:为什么我需要气泡事件和隧道事件?

    I read this关于路由事件的好文章 我明白为什么我们有时需要冒泡事件 有时需要隧道事件 我不明白的是 当我们使用隧道事件时 为什么在处理或到达源元素后 仍然启动气泡事件 提前致谢 该文章表示 如果您将图像放在按钮上 并且单击该图像
  • 刷新后保留网页的更改

    我最近开发了一个脚本来突出显示网页中的文本document execCommand 但如果我刷新网页 更改就会消失 如何为每个用户保留零钱 由于我相当不确定您真正想要坚持什么 我将提供一些通用信息 一些好的读物深入研究 HTML5关于存储
  • Google Places API Android resultCallback 未触发

    我正在使用适用于 Android 的 Google Places API 但似乎无法获取resultCallback from a PendingResult开火 这是我的代码 与示例代码基本相同https github com googl
  • 图像析构函数中的访问冲突

    我可能会说一个非常简单的程序 include
  • Kill 后的未知错误未成功终止:发信号通知 init 进程导致“权限被拒绝”\n:未知'

    我正在尝试启动一些 docker 容器 或者至少忙于 docker 容器 第一次安装后 一切都很完美 并不会做任何与 docker compose up down stop restart 不同的事情 并制作一些 wordpress 容器
  • 如何在某些智能指针中实现深复制功能?

    unique ptr 非常有用 然而 它是不可复制的 如果为其指向的类提供虚拟克隆 深复制 方法 我认为它将变得更有用 有必要或者有更好的实现方式吗 某些库中是否存在类似的智能指针 这是一个版本 template
  • 对没有组合的嵌套 boost::bind 执行参数替换

    假设我有一个函数 它接受一个无效函子作为参数 void enqueue boost function
  • 检测平板电脑

    我有一个 net winforms 应用程序 一些用户将在 Win7 平板电脑上运行该应用程序 对于这些用户 我想更改某些 UI 元素以使笔输入更容易 同时将这些项目留给普通用户 我已经能够找到有关笔和触摸设计指南的 msdn 文档 以及有
  • AttachConsole 的实际最低版本要求是什么?

    在线 PSDK 文档指出 5 1 WinXP 要编译使用此函数的应用程序 请定义 WIN32 WINNT 如 0x0501 或更高版本 有关详细信息 请参阅使用 Windows 标头 要求 最低支持客户端 Windows XP 仅限桌面应用
  • 读取刚刚打开的SerialPort时只读取到一个字节

    奇怪的问题 当我从 com port 读取时SerialPort Read 那么如果数据到达 第一次调用时仅读取一个字节 忽略count参数和超时内可用的字节数 所有进一步的阅读都可以 只有第一个有问题 Using SerialPort D
  • 关键字不支持数据源

    我有一个带有默认成员资格数据库的 ASP NET MVC 应用程序 我通过 ADO NET 实体框架访问它 现在我想将其移至IIS 但出现了一些问题 我必须安装 SQL Server Management Studio 创建新数据库 导入之
  • 更改活动导航栏的颜色

    我正在使用一个简单的引导顶部固定导航栏 我想更改活动页面的颜色 但是我认为我的代码中缺少某些内容 div class navbar div class navbar fixed top div class container style w
  • 如何使用 Glide 获取 imageview 上的 URI

    我正在使用 Glide 将图像从服务器加载到 ImageView 我想知道是否可以从 imageview 本身中提取该 URI ImageView contentImage ImageView findViewById R id conte
  • 使用 tdbquery 查询 TDB 中的命名 RDF 图

    我正在尝试使用 tdbquery 程序查询新创建的 TDB 数据库 但是 我很难编写针对正确命名图的查询 我正在做以下事情 首先创建一个新数据集并添加一个名为 facts 的名称图 Dataset dataset TDBFactory cr