私のアプリケーションは、正しい単語、つまり 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#、組み込みシステムのリアル コンセプトなどのすべての本と一致します (「コンセプト」という単語には「C」が含まれるため)。
最後の行を
+ "FILTER regex(?title, \"" +"^"+title + "\")}";
タイトルがたとえば 'C' の場合、クエリは、タイトルが文字 'C' で始まる本のみに一致します。そのため、'Programming in ANSI C' のような本は選択されません。
最後の行で次の変更も試しました
+ "FILTER regex(str(?title), \"" +title + "\")}";
これでもあまり役に立ちませんでした。
書籍のタイトルが C で始まらない場合でも、「C」に関連する書籍を取得するにはどうすれば変更できますか?
よろしく、アルカナ。