Мой проект касается предоставления пользователю возможности вводить запрос, и наилучшие результаты должны отображаться для пользователя. Это мой файл RDF
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:foaf="http://www.xmlns.com/foaf/0.1">
<rdf:Description>
<foaf:name>interview</foaf:name>
<foaf:url>urlname1</foaf:url>
</rdf:Description>
<rdf:Description>
<foaf:name>technical</foaf:name>
<foaf:url>urlname2</foaf:url>
</rdf:Description> </rdf:RDF>
Теперь, если пользователь вводит «технические вопросы», я кодировал способ, чтобы принимать «технические» и «вопросы» в массиве и динамически генерировать запрос SPARQL, чтобы мой запрос выглядел как
String queryString =
"PREFIX rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns#" +
"PREFIX foaf: http://www.xmlns.com/foaf/0.1" +
"SELECT? Url ГДЕ {? Foaf: name? Name FILTER regex (? Name, '" + values [i] + "')? Foaf: url
?. URL} ";
здесь values [i] - это массив, определенный для «технических» и «вопросов». Так что это дает мне вывод
-------------
| url |
=============
| "urlname2"|
-------------
и когда пользователь вводит "вопросы для собеседования", результат будет
-------------
| url |
=============
| "urlname1"|
-------------
Но если пользователь вводит "технические вопросы для собеседования", это дает мне оба значения o / p, например
-------------
| url |
=============
| "urlname2"|
-------------
-------------
| url |
=============
| "urlname1"|
-------------
но o / p, который я должен получить, является только первой таблицей, которая дает мне URL для подготовки к техническим вопросам (urlname2). Можете ли вы сказать мне, как изменить мой запрос / формат RDF для получения желаемого o / p ? Спасибо