Мое приложение должно соответствовать правильному слову, например, 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?
С уважением, Арчана.