Как запросить RDF с SPARQL, улучшая эффективный поиск - PullRequest
1 голос
/ 07 декабря 2011

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

1 Ответ

2 голосов
/ 08 декабря 2011

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

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

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

...