как запросить RDF с помощью SPARQL, повышающего эффективность поиска?

мой проект позволяет пользователю вводить запрос, и наилучшие результаты должны отображаться пользователю. это мой файл 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, поэтому мой запрос будет выглядеть как

Строка queryString = "ПРЕФИКС rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# "+" ПРЕФИКС foaf: http://www.xmlns.com/foaf/0.1 "+" SELECT? url WHERE {? a foaf: name? name ФИЛЬТР regex (? name, '"+ values ​​[i] +"')? a foaf : url? url.} ";

здесь values ​​[i] - это массив, определенный для "технических" и "вопросов". Таким образом, это дает мне результат как

------------- 
| url       |
============= 
| "urlname2"|
-------------

и когда пользователь вводит "вопросы для собеседования", результат будет

------------- 
| url       |
============= 
| "urlname1"|
-------------

Но если пользователь вводит «технические вопросы на собеседовании», я получаю и то, и другое, как

 ------------- 
 | url       |
 ============= 
 | "urlname2"|
 -------------
 ------------- 
 | url       |
 ============= 
 | "urlname1"|
 -------------

но o / p, который я должен получить, - это только первая таблица, которая дает мне URL-адрес для подготовки к техническим вопросам (urlname2). Не могли бы вы рассказать мне, как изменить мой формат запроса / RDF, чтобы получить желаемый o / p? Спасибо


person sheba    schedule 07.12.2011    source источник


Ответы (1)


Данные не означают то, что вы думаете.

У вас есть один объект с двумя разными foaf: именами.

Попробуйте преобразовать RDF / XML в Turtle или NTriple, чтобы получить более четкое представление о данных. RDF / XML очень сбивает с толку.

person Steve Harris    schedule 08.12.2011
comment
Я отредактировал свой вопрос, сэр. Спасибо за любезный ответ. Пожалуйста, помогите мне решить эту проблему, сэр. - person sheba; 08.12.2011