java - 带有正则表达式的 Java 字符串中的 SPARQL 请求

标签 java regex sparql jena

我是 SPARQL 和 Jena 框架的新手,我想使用正则表达式从 Java 执行 SPARQL 查询。这是我的代码:

String queryString = "select ?a where { filter regex(?a, 'e', 'i') }";

Query query = QueryFactory.create(queryString);

try (QueryExecution qexec = QueryExecutionFactory.create(query, ontology)) {
    ResultSet results = qexec.execSelect() ;
    for ( ; results.hasNext() ; )
    {
        QuerySolution soln = results.nextSolution() ;
        System.out.println("a : " + soln.get("a").toString());
    }
}

本体变量包含一个 OntModel,其名称中包含“e”概念。我希望此请求检索这些概念,但是如果我用更简单的内容替换正则表达式,则此代码不会显示任何内容。 我不明白我的请求有什么问题,有人可以帮助我吗?

最佳答案

在我看来,你没有什么可以应用过滤器的。一起尝试

PREFIX skos:<http://www.w3.org/2004/02/skos/core#>
SELECT ?a
WHERE
{ ?o skos:prefLabel ?a .
  FILTER REGEX(?a, 'e', 'i').
}
ORDER BY ?a

或提供有关您的用例的更多详细信息。

关于java - 带有正则表达式的 Java 字符串中的 SPARQL 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27390992/

相关文章:

java - 如何在 log4j_config.xml 的appender标签中给出动态文件路径?

java - 如何在android中更改日期时间语言

ruby - ruby 中用于具有多种模式的字符串的正则表达式

按日期对 SPARQL 结果排序

java - 单击 SwipeRefreshLayout 下的 RecyclerView 项目时,机器人测试中止

java - 我想为游戏 java 实现一个计时器?

regex - 在 Notepad++ 中删除字符串之前的所有内容

用于匹配与特定模式不匹配的路径的正则表达式 : Express Router

java - 从 RDF 节点拉出字符串

sparql - DBpedia 和 SPARQL : Query with accent marks does not work