【发布时间】:2016-07-27 00:12:58
【问题描述】:
我是 SPARQL 和 Jena 的新手。这里我使用的是 Jena 2.13 版。我想从具有 REGEX 边界(\b) 的 Java Web 应用程序执行 SPARQL 查询。我正在使用 REGEX 边界来匹配并找到确切的单词。
我也在 protege 上运行相同的 SPARQL 查询。
这是我在 java 中的 SPARQL 查询:
"PREFIX foaf: <http://xmlns.com/foaf/0.1/> "
+ "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> "
+ "PREFIX owl: <http://www.w3.org/2002/07/owl#> "
+ "PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> "
+ "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> "
+ "PREFIX : <" + CROSS_NS + "> "
+ "SELECT ((?FoodAndBeveragesRecipes) AS ?Resep)((?FoodAndBeverages) AS ?a) "
+ "WHERE{ ?FoodAndBeveragesRecipes :IngR ?_IngR."
+ " ?_IngR :HasIngredients ?FoodAndBeverages;"
+ ":UnitValue ?Value;"
+ " :MeasurementUnit ?Measurements;"
+ " :Ing_Type ?IngType."
+ "FILTER regex(str(?FoodAndBeverages), \"\\b" + recipe + "\\b\")}"
+ " ORDER BY ?FoodAndBeveragesRecipes";
recipe 是存储用户输入的字符串变量,作为参数接收。
当我执行查询时,Jena 返回一个空集(甚至不是空指针异常),而 Protégé 返回/查找正确的结果。 不知道问题出在REGEX代码还是什么的。
我想知道为什么我的 REGEX 不能正常工作?谁能帮帮我?
谢谢。
【问题讨论】:
标签: java regex web sparql jena