Получение инструкций из хранилища хэшей redland

#php-5.3 #redland

#php-5.3 #redland

Вопрос:

Записывает ли librdf_model_add инструкции в хэш-хранилище?

У меня возникла проблема с запуском запроса sparql для их извлечения. Файлы db, вероятно, заполняются, поскольку их размер файла продолжает увеличиваться, но когда я пытаюсь выполнить запрос sparql к ним, я, похоже, не получаю никакого результата. Нужно ли загружать инструкции из хранилища в модель вручную перед отправкой запроса?

инструкция, которая выдает запрос

 $query = librdf_new_query(
    $world,
    'sparql',
    NULL,
<<<SPARQL
PREFIX sensei: <http://coolsilon.com/flickr_schema/>
SELECT  ?a ?c
WHERE   {?a ?b ?c}
SPARQL
    ,
    NULL
);
$result = librdf_query_execute($query, $model);
var_dump(librdf_query_results_get_count($result)); // returns 0
  

Я использую привязку к языку PHP (5.3.5), и моя версия redland 1.0.12 работает под управлением Ubuntu Natty.

p / s: Я снова проверил с хранилищем postgresql, и приведенный выше код работает :/

Ответ №1:

Этот вопрос лучше задать в semantic overflow или redland-dev list.

Скорее всего, в модели нет данных.

Используйте некоторые функции librdf для распечатки модели или используйте сериализатор.

Попробуйте test.php найти указатели в https://github.com/dajobe/redland-bindings/tree/master/php

Комментарии:

1. должен ли я явно загружать данные из хранилища перед отправкой запроса?

2. только что снова проверил тот же код с хранилищем postgresql, и запрос просто работает :/

3. Да, вы должны загрузить данные в хранилище (набор данных RDF), прежде чем сможете выполнять к нему запросы.

4. эмм … в хранилище уже есть данные (я использовал тот же код для заполнения как хэша, так и хранилища postgresql), но тогда мне удалось извлечь их (в другом скрипте) только из хранилища postgresql :/