Я делаю проект в семантической сети. Это пример файла 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>aricent</foaf:name>
<foaf:url>www.placementhub.net</foaf:url>
</rdf:Description>
</rdf:RDF>
если пользователь вводит «подготовить к aricent» для поиска по ссылке, я кодировал таким образом, чтобы принимать каждое значение «подготовить», «для», «aricent» и динамически генерировать запрос SPARQL, чтобы найти соответствующую запись. 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? Name? Url WHERE {? Foaf: name? Name FILTER regex (? Name, '" + values [i] + "')? Foaf: url? Url}";
где значения [i] теперь «готовятся» в 1-м цикле, «для» во 2-м цикле и «aricent» в 3-м цикле.
В таком случае, если он будет выполнен, я получу как
--------------------------------------
| name | url |
======================================
| | |
--------------------------------------
--------------------------------------
| name | url |
======================================
| | |
--------------------------------------
--------------------------------------
| name | url |
======================================
| "aricent" | "www.placementhub.net" |
--------------------------------------
Таким образом, результирующий набор пуст (без значений) для «prepare» и «for», а результат получен только для «aricent», как это доступно в RDF. Можете ли вы сказать мне, как исключить (только таблицу, которая имеет значение, которое должно быть показано пользователю) полученные пустые наборы результатов? Я использовал API-интерфейс JENA. Спасибо