我的应用程序需要匹配正确的词,即说 C 或 C++ 与 SPARQL。我有以下 SPARQL 查询
String prolog = "PREFIX kb: <" + VBOOK.getURI() + ">";
String queryString = prolog
+ "\n"
+ "SELECT * "
+ "WHERE {?x kb:Price ?price. ?x kb:Currency ?currency. ?x kb:Title ?title. ?x kb:Count ?count. "
+ "OPTIONAL {?x kb:Description ?description}."
+ "FILTER regex(?title, \"" +title + "\")}";
这与我的所有书籍甚至 C++、C# 以及诸如 -Real Concepts in Embedded Systems 之类的书籍相匹配(因为“概念”一词具有“C”)。
如果我将最后一行更改为
+ "FILTER regex(?title, \"" +"^"+title + "\")}";
如果标题是例如“C”,那么我的查询只匹配那些标题以字母“C”开头的书。因此,不选择“ANSI C 编程”之类的书。
我还尝试在最后一行进行以下更改
+ "FILTER regex(str(?title), \"" +title + "\")}";
即使这对我也没有多大帮助。
即使书名不以 C 开头,如何修改以获取与“C”相关的书籍?
问候,阿卡纳。