使用 JENA 的参数化 SPARQL 查询

2023-11-24

我正在尝试使用 Jena 框架、JSP 和 JAVA 构建一个小型语义 Web 应用程序。我有一个远程 SPARQL 端点,并且已经编写了一个运行良好的简单查询,但现在我需要使用一些参数。到目前为止,这是我的代码:

final static String serviceEndpoint = "http://fishdelish.cs.man.ac.uk/sparql/";

String comNameQuery = 
        "PREFIX fd: <http://fishdelish.cs.man.ac.uk/rdf/vocab/resource/> " +
        "SELECT ?name ?language ?type" +
        "WHERE { ?nameID fd:comnames_ComName ?name ;" +
        "fd:comnames_Language ?language ;" +
        "fd:comnames_NameType ?type ." +
        "}";

Query query = QueryFactory.create(comNameQuery);  
QueryExecution qe = QueryExecutionFactory.sparqlService(serviceEndpoint,query);

try {
    ResultSet rs = qe.execSelect();
    if ( rs.hasNext() ) {
        System.out.println(ResultSetFormatter.asText(rs));
    }
} 
catch(Exception e) { 
    System.out.println(e.getMessage());
}
finally {
    qe.close();
}

我想做的是参数化?名称。我是 Jena 的新手,不太确定如何在 SPARQL 查询中使用参数。如果有人能帮助我解决这个问题,我将不胜感激。


如果您只想限制变量对于本地查询具有特定值,您可以通过重载来实现QueryFactory.create()方法需要一个QuerySolutionMap设置值限制。请注意,这不会改变您的查询,只是限制最终结果,因此这并不是真正的参数化。

如果您想真正拥有真正的参数化查询(即用变量替换常量),那么有几种方法可以根据您的 ARQ 版本来实现。

使用任何当前版本(最高 2.9.0)的唯一方法是字符串连接,即您只需插入所需的值即可,而不是在查询中使用 ?name “鲍勃”

使用最新的主干(2.9.1-SNAPSHOT 起)有一个新的 ParameterizedSparqlString 类,这使得它更加用户友好,例如

ParameterizedSparqlString queryStr = new ParameterizedSparqlString(comNameQuery);
queryStr.setLiteral("name", "Bob");

Query query = QueryFactory.create(queryStr.toString());

事实上,您可以进一步简化代码,因为 ParameterizedSparqlString 具有 StringBuffer 样式接口,可用于一点一点地构建查询,并包含有用的功能,例如在查询前添加前缀。

这种新方法的优点在于,它提供了一种更通用的方法来执行参数化查询,该方法也可以与更新一起使用,并且可用于准备现有方法未涵盖的远程查询。

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

使用 JENA 的参数化 SPARQL 查询 的相关文章

  • Java 的 RSA 算法库 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想为我的应用程序提供基于 RSA 算法的简单许可机制 有免费的 RSA 库吗 只需使用javax crypto and java sec
  • 是否可以同时读取和写入 java.net.Socket?

    是否可以同时从套接字读取和写入 我有一个连续读取套接字的线程 由于只有一个线程正在从套接字读取数据 因此读取操作是线程安全的 现在我有很多线程 比如100 写入套接字 因此 很明显 我必须通过这样做来使写操作线程安全 package com
  • 如何从 JAXB 编组 XML 文件中删除 xmlns:xsi 和 xsi:type

    我有一组 JAXB 生成的类 其中一些类具有接受的 setter 方法 对象 作为参数 例如 XmlAccessorType XmlAccessType FIELD XmlType name Car propOrder defaultCar
  • Spring 文件上传 - 获取预期的 MultipartHttpServletRequest:是否配置了 MultipartResolver?错误

    我正在尝试使用以下方法将多个文件上传功能合并到我的 Angular Web 应用程序中角度文件上传 https github com nervgh angular file upload 目前 前端功能可以正常工作 但每次上传尝试都会抛出一
  • 使用translateX()和translateY()时,窗格布局内的JavaFX文本与其他元素重叠

    下图是对正在发生的情况的描述 我有一个Pane其中包含一个Text我正在使用下面的代码来制作marquee like effect of the Text 所以当Pane没有足够的空间来显示文本 动画正在开始 文本必须来回移动 以便用户可以
  • 颜色资源 ID 返回错误值

    我试图在 onCreate 期间以编程方式从颜色资源设置文本颜色 但得到了一些奇怪的结果 我在 res colors xml 中定义了一个颜色资源
  • netty 4.x 中 ServerBootstrap.option() 和 ServerBootstrap.childOption() 有什么区别

    根据文档4 0 中值得注意的新内容 http netty io wiki new and noteworthy in 4 0 html wiki h3 31 netty4提供了新的bootstrap API 文档给出了以下代码示例 publ
  • SAP Spartacus 表单个性化

    如果已经有使用给定电子邮件注册的帐户 我需要修改注册表以显示错误消息 SAP Hybris 后端 Angular 中的 Spartacus 店面 目前 我有一个自定义验证器类 它可以正常工作 import org springframewo
  • 负字符值JAVA

    为什么会出现以下情况 char p 0 p System out println p result 65535 为什么不给出编译错误或运行时异常 我预计它是因为字符不能为负数 相反 它从颠倒开始倒数 提前致谢 为什么不给出编译错误或运行时异
  • 编辑 CSV 文件(设计实现)

    我开始设计一个程序 该程序将根据已找到并保存到主 CSV Excel 文件中的相似字符串及其标识 自动执行正确查找和识别字符串的过程 现在我想正确设计它 这样我以后在实现 CSV Excel 读写部分时就不会遇到问题 我可能会使用 Open
  • Java:getInstance 与静态

    目的是什么getInstance 在Java中 在我的研究过程中我一直在读getInstance 有助于实现单例设计模式 根据我的理解 这意味着整个程序中只有一个实例 但我不能只使用静态吗 这不是静态的全部意义吗 如果我只有静态方法和字段
  • 基本的 Swing 库? JGoodies,JFreeChart [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • JAXB 将不需要的命名空间声明附加到标签

    我正在实现 XMPP 的自制子协议 并且使用 StAX 和 JAXB 的组合来解析 编组消息 当我整理一条消息时 我最终会得到大量不需要的命名空间声明
  • 如何在 spring-ws 中解析 SoapFaultClientException

    我正在使用 spring ws 2 3 1 在为 Web 服务创建客户端时 有时我得到SoapFaultClientException像下面这样
  • 在Java中解析包含multipart/form-data请求体的字符串

    问题陈述 我认为标题说明了一切 我正在寻找解析 a 的方法String包含 multipart form data HTTP 请求的正文部分 IE 字符串的内容看起来像这样 xyzseparator blah Content Disposi
  • 从邮件服务器读取发送的邮件

    我知道如何从 INBOX 文件夹中检索邮件 但现在我想从 SENT ITEMS 文件夹中检索邮件 我正在使用 imap 检索数据 让我知道我应该在此函数中传递什么参数才能从 SENT ITEMS 文件夹中获取邮件Folder folder
  • jdbcAuthentication() 而不是 inMemoryAuthentication() 不提供访问权限 - Spring Security 和 Spring Data JPA

    我只是使用 spring mvc gradle spring security spring data jpa 创建简单的应用程序 现在我想测试 spring security 是如何工作的 但是我有一个问题 首先我向您展示一些代码 然后我
  • JSP 自定义标签库:嵌套评估

    假设我有自定义标签库
  • JavaFX - 当文本字段具有焦点时加速器不工作

    在我的应用程序中 我有一个使用加速器的屏幕 我正在使用功能键 F3 在我的应用程序中执行操作 它每次都工作正常 但是当我单击此屏幕上的任何文本字段时 功能键不会执行 这是我设置加速器的代码 scene getAccelerators put
  • 使用 Vaadin 生成 HTML 速度缓慢

    我是一个有问题的开发人员 目前我们的项目 使用 Vaadin 即将结束 但是 我们在其中一个视图中显示简单数据时遇到了一些麻烦 Vaadin 完成生成后 需要显示超过 500 KB 的数据 以及超过 15K 的 DOM 元素 在完成之前需要

随机推荐

  • 在同一域上使用 nginx 为多个节点应用程序提供服务

    我想使用来自同一域的 nginx 托管 2 个不同的节点应用程序 但遇到了一些麻烦 我想拥有 mydomain com指向节点应用程序firstApp and otherapp mydomain com指向节点应用程序otherapp 现在
  • 删除指针和将其设置为 nullptr 之间有什么区别? [复制]

    这个问题在这里已经有答案了 正在说delete pointer and pointer nullptr相同 可能不会 但是后者会释放内存吗 关于什么delete pointer pointer nullptr pointer nullptr
  • “创建像 Flip3D 这样的应用程序”的 API 是什么?

    我试图弄清楚如何使用 DWM 将窗口的副本渲染到我自己想要的位置 我唯一能找到的告诉 DWM 在某处渲染的方法是使用缩略图 API 但MSDN的DWM 缩略图概述他们特别警告我 NoteDWM 缩略图不允许开发人员创建类似的应用程序 Win
  • ctor 和 setter 参数的命名约定

    对于那些命名成员变量时没有特殊符号的人 例如m foo or foo 如何为 ctor 和 setter 命名参数 到目前为止我尝试过的一些选项 Obj int foo foo foo void set foo int foo this g
  • 使用 JQuery 将表格单元格转换为文本框

    我有一个表 如下所示 table tbody tr th Name th th Value nbsp span style color Blue font size 6 Edit span th th Type th tr tr td st
  • 显式模板实例化 - 何时使用?

    休息几周后 我试图通过这本书来扩展和扩展我对模板的知识模板 完整指南由 David Vandevoorde 和 Nicolai M Josuttis 编写 我现在想要理解的是模板的显式实例化 我实际上对该机制本身没有问题 但我无法想象我想要
  • 按钮和链接的字体大小

    我尝试了这个简单的html TEST FONT SIZE
  • 如何检测是否发生了回滚?

    我正在寻找大型业务应用程序中的错误 其中业务流程失败但部分保留到数据库中 更难以弄清楚的是 该过程每隔几周才会失败一次 每次失败之间都会成功处理数十万次 当并发 工作进程数量增加时 错误频率似乎会增加 到目前为止 我们已经能够通过该程序重新
  • 如何使用 pyodbc 获取 SQL Server 存储过程返回值?

    我的团队使用基于 Python 的 wiki 服务器 该服务器调用 SQL Server 数据库上的存储过程 理想情况下 我们希望从存储过程返回整数值 1 0 1 以显示基本结果 根据一个Google 网上论坛 2008 年主题 pyodb
  • String.format() 抛出 FormatFlagsConversionMismatchException

    这段代码在 Java 1 6 中运行良好 public static String padLeft String s int n if n lt 0 return s int noOfSpaces n 2 String output noO
  • 无法在 compose 中使用服务名称从 (fluidd) logdriver 登录

    我在 docker 中有以下设置 应用程序 httpd Fluentd 弹性搜索 Kibana 应用程序的日志驱动程序的配置正在描述 fluidd 容器 日志将保存在 ES 中并显示在 Kibana 中 当日志驱动程序配置如下时 它可以工作
  • Android Material:状态栏颜色不会改变

    我正在开发一个简单的应用程序来测试材料设计 我在用着com android support appcompat v7 21 0 0我的活动如下所示 public class MyActivity extends ActionBarActiv
  • 双击可编辑内容

    我有一个p用一些文字标记 我正在努力做到这一点contenteditable但仅限于双击 如何防止浏览器在单击 p 时将光标放在 p 上 而仅在双击时才这样做 jQuery p dblclick function e p css curso
  • 使用传单库在弹出窗口中绘制条形图

    快速提问 我在 sql server 中有一些数据 我已将其加载到 RStudio 中 我已经为数据制作了条形图 现在我正在使用传单库 并使用纬度和经度在地图上绘制一个点 我希望能够在用户单击该点时使用弹出窗口在其中显示条形图 条形图代码
  • 如何在 PHP 中创建 REST API? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我一直在开发游戏网站 并计
  • Java 的类型参数通配符到底意味着什么? Foo 和 Foo 之间的真正区别是什么?

    对于通用接口 public interface Foo
  • 如何在环境变量PATH中搜索并替换字符串?

    是否有任何命令可以批量搜索并替换环境变量中的字符串PATH 例如环境变量的内容PATH is C windows system32 C windows C windows System32 Wbem C windows System32 W
  • iPhone 上“unsigned int”和“int”之间的性能有区别吗?

    或者重新表述这个问题 使用无符号值是否会降低性能 一般来说 iPhone ARM 处理器上性能最高的类型 16 位签名 32 位签名 等 是什么 这总是取决于 For 循环将有符号整数作为计数器和限制会快一点 因为在 C 中编译器可以自由地
  • 命名空间图像和编辑日志

    摘自 Hadoop 权威指南 在主题下名称节点和数据节点其中提到 namenode 管理文件系统名称空间 它保持了 文件系统树以及所有文件和目录的元数据 那个树 该信息永久保存在本地磁盘上 两个文件的形式 命名空间图像和编辑日志 辅助名称节
  • 使用 JENA 的参数化 SPARQL 查询

    我正在尝试使用 Jena 框架 JSP 和 JAVA 构建一个小型语义 Web 应用程序 我有一个远程 SPARQL 端点 并且已经编写了一个运行良好的简单查询 但现在我需要使用一些参数 到目前为止 这是我的代码 final static