SPARQL INSERT с PHP-библиотекой ARC2

Я пытаюсь выполнить INSERT на конечной точке SPARQL в PHP, используя СМ2 библиотека.
Это происходит с ошибкой «Не удалось правильно обработать« PREFIX dc: »

Запрос SPARQL UPDATE взят из Спецификация W3C и отлично работает на моей панели управления Jena-Fuseki:

$query = '
PREFIX dc: <http://purl.org/dc/elements/1.1/>
INSERT DATA
{
<http://example/book007> dc:title "A new book" ;
dc:creator "A.N.Other" .
}
';

Но даже вариации запроса без оператора PREFIX просто приводят к аналогичной ошибке «Не удалось правильно обработать« INSERT DATA {»в моем PHP-коде.

Мой PHP-код выглядит следующим образом:

include_once('./lib/arc2/ARC2.php');

$config = array(
//db
'db_name' => 'arc2',
'db_user' => 'root',
'db_pwd' => '-',
//store
'store_name' => 'arc_tests'
);
$store = ARC2::getStore($config);
if (!$store->isSetUp())
$store->setUp();

$res = $store->query($query);
echo var_dump($store->getErrors());
echo "<br><br>executed INSERT, returned: ";
echo var_dump($res);

Эта версия использует собственное хранилище ARC2 для уменьшения потенциальных источников ошибок. Я на самом деле пытаюсь взаимодействовать с удаленным магазином:

$config = array( 'remote_store_endpoint' => 'http://localhost:3030/data/update', );
$store = ARC2::getRemoteStore($config);

Оба дают мне ту же ошибку, однако.


В конце я хочу подключиться к дистанционный пульт Конечная точка SPARQL моего сервера Jena Fuseki и интерактивно вставляет и получает данные с помощью PHP. Если у вас есть другие библиотеки или чистые решения о том, как взаимодействовать через протокол SPARQL в PHP, я с радостью изменю свой подход.

2

Решение

Кажется, ARC2 делает не поддерживает синтаксический анализ SPARQL 1.1.

Вместо этого он поддерживает только упрощенный SPARQL + для запросов ОБНОВЛЕНИЕ. Следующий запрос успешно вставляет новую тройку в хранилище ARC2:

$query = 'INSERT DATA
{
<http://example/book1> dc:title "A new book" ;
dc:creator "A.N.Other" .
}';

К сожалению, с этим ограниченным SPARQL + кажется невозможным делать ОБНОВЛЕНИЯ через удаленное хранилище на моем экземпляре Jena Fuseki.
Либо ARC2 жалуется на синтаксис запроса соответствия SPARQL 1.1, как указано в вопросе,
или Jena Fuseki жалуется на синтаксис запроса SPARQL +, который кажется специфичным для ARC2.

Любой совет? Я разместил новый вопрос по этому поводу: https://stackoverflow.com/questions/26858594/php-sparql-1-1-library-for-semantic-web-stack-php-sparql-jena-fuseki

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]