2015-05-25 10 views
0

У меня есть следующий запрос SPARQL:Сезам верстака запрос к онлайн-набор данных

PREFIX ab:<http://learningsparql.com/ns/addressbook#> 
SELECT ?firstName ?lastName ?streetAddress ?city ?region ?postalCode 

FROM <http://www.learningsparql.com/2ndeditionexamples/ex041.ttl> 

WHERE 
{ 
?s ab:firstName ?firstName; 
ab:lastname ?lastName; 
ab:address ?address. 

?address ab:postalCode ?postalCode; 
     ab:city ?city; 
     ab:streetAddress ?streetAddress; 
     ab:region ?region. 
} 

Когда я запускаю этот запрос с помощью Apache ARQ это работает, отлично. Выбранные переменные (? FirstName? LastName и т. Д.) Заполняются данными из ex041.ttl из указанного URI рядом с предложением FROM. Когда я запускаю этот запрос из верстака из сезама, переменные (? FirstName? LastName и т. Д.) Пусты, и я не знаю почему. Это похоже на кунжут, это не соединение с удаленным ex041.ttl файлом. Удаленный набор данных ex041.ttl cointains следующие данные:

# filename: ex041.ttl 

@prefix ab: <http://learningsparql.com/ns/addressbook#> . 

ab:i0432 ab:firstName "Richard" ; 
     ab:lastName  "Mutt" ; 
     ab:homeTel  "(229) 276-5135" ; 
    ab:email   "[email protected].com" ; 
    ab:address  _:b1 . 

_:b1 ab:postalCode "49345" ; 
     ab:city   "Springfield" ; 
     ab:streetAddress "32 Main St." ; 
     ab:region  "Connecticut" . 

Вы можете доступ к этому файлу, введя это URI в браузере.

+0

извините, вопрос слишком смутный ... –

+0

Я изменил вопрос, надеюсь, что сейчас лучше – whitefang1993

+0

С удовольствием попробуем помочь, но вам нужно показать фактический запрос и образец набора данных, повторное выполнение этого * в самом вопросе * (ссылка на видео Youtube действительно недостаточно хороша). Другими словами, вам необходимо предоставить минимальный, полный и проверенный пример (MCVE). Посмотрите на [как написать хороший вопрос] (http://stackoverflow.com/help/mcve) для деталей. –

ответ

1

Инструмент ARQ ввел вас в заблуждение, полагая, что значение предложения FROM в запросе SPARQL заключается в том, что движок должен извлекать данные из файла, указанного на этом URL-адресе. То есть нестандартное поведение для SPARQL, и на самом деле большинство двигателей SPARQL будут не сделайте это (подробнее об этом ниже).

Sesame Workbench - это клиентское приложение для сервера Sesame. Сервер Sesame Server, в свою очередь, является приложением для управления базами данных: он позволяет создавать и получать доступ к базам данных Sesame RDF (хранилища a.k.a) через Web (он также предоставляет их как конечные точки SPARQL).

Для запроса данных RDF из Сезам Workbench с помощью SPARQL, вам необходимо один из этих условий должны быть выполнены:

  1. Данные RDF вы хотите запроса хранится в хранилище Сезам на вашем Сезам сервере, или ;
  2. Данные RDF, которые вы хотите запросить, доступны через удаленную конечную точку SPARQL.

Однако вы не можете напрямую запрашивать RDF-файл, который можно загрузить откуда-то в Интернете, как это.

Чтобы запросить эти данные с помощью инструментария Sesame Workbench, вы должны создать репозиторий на своем сервере и загрузить данные из файла в этот репозиторий. Затем вы можете выполнить свой запрос в этом репозитории через Workbench. В качестве альтернативы, если данные RDF доступны через некоторую уже существующую конечную точку SPARQL, в которой вы знаете адрес, вы можете запросить его из Workbench с использованием SERVICE -clause.

Дополнительная информация о значении предложения FROM: запрос SPARQL, в общем, оценивается механизмом SPARQL. Обычно любой двигатель SPARQL имеет определенный набор данных по умолчанию, на котором он выполняет запросы, которые он получает (в случае Sesame Workbench этот набор данных равен содержимому базы данных Sesame, на которой вы его выполняете).

FROM и FROM NAMED положения инструкции к двигателю SPARQL для запроса только определенную часть (по умолчанию) набора данных: значения в этих пунктах являются идентификаторы для так называемых названных графов, по существу, подмножества общей набор данных. Кунжутные базы данных называются так называемыми quad-магазинами, что означает, что они (опционально) сохраняют именованный идентификатор графа с каждым добавляемым заявлением RDF (что превращает стандартную RDF «тройку» в «квадрат»).В квадрантном хранилище, таком как Sesame, вы можете использовать предложение FROM, чтобы ограничить ваш запрос таким подмножеством общей базы данных.

Таким образом, использование этих предложений похоже на применение «фильтра масштабирования» к вашему запросу: вы поручаете движку смотреть только на определенное подмножество всех доступных данных. Но если идентификатор этого подмножества неизвестен в наборе данных, который вы запрашиваете, ваш запрос не вернет никаких результатов.

+0

Большое спасибо за ваш ответ. Теперь мне все ясно. – whitefang1993

+0

@ белыйfang1993 без проблем. Кстати, вместо того, чтобы благодарить меня в комментарии, это более полезно, если вы * голосуете * или * принимаете * ответ. См. [Что делать, когда кто-то отвечает] (http://stackoverflow.com/help/someone-answers) –

+1

Не могу голосовать, потому что у меня недостаточно очков репутации. Это мой первый пост в stackoverflow, я новичок. Я принял ваш ответ. – whitefang1993

 Смежные вопросы

  • Нет связанных вопросов^_^