Jena Fuseki SPARQL INSERT в PHP (EasyRDF lib)

LauBF спросил: 28 марта 2018 в 04:19 в: php

Я пытаюсь запустить образец кода из библиотеки EasyRDF с помощью Apache Jena Fuseki, но при вводе данных в базу данных возникает следующая ошибка:

Неустранимая ошибка: исключить исключение"EasyRdf_Exception 'с сообщением' HTTPrequest forhttp:// localhost: 3030 / test / update? graph = http% 3A% 2F% 2Flocalhost% 3A3030% 2Ftest% 2Ftime.rdffailed: Должно быть application / sparql-update orapplication / x-www-form- urlencoded (получил приложение / n-тройки) 'inD: \ Files \ xampp \ htdocs \ test \ easyrdf-0.9.0 \ lib \ EasyRdf \ GraphStore.php: 152Stack trace: # 0D: \ Files \ xampp \ htdocs \ test \ easyrdf-0.9.0 \ lib \ EasyRdf \ GraphStore.php (217): EasyRdf_GraphStore- > sendGraph ('POST', Object (EasyRdf_Graph), 'time.rdf', 'ntriples') # 1D: \ Files \ xampp \ htdocs \ test \ graphstore.php (34): EasyRdf_GraphStore- > insert (Object (EasyRdf_Graph), 'time.rdf') # 2 {main} брошен inD: \ Files \ xampp \ htdocs \ test \ easyrdf-0.9.0 \ lib \ EasyRdf \ GraphStore.php online 152

Следуйте за кодом:

<?php
    set_include_path(get_include_path() . PATH_SEPARATOR . '../lib/');
    require_once "easyrdf-0.9.0/lib/EasyRdf.php";
?>
<html>
<head>
  <title>GraphStore example</title>
</head>
<body><?php
  // Use a local SPARQL 1.1 Graph Store (eg RedStore)
  $gs = new EasyRdf_GraphStore('http://localhost:3030/test/update');  // Add the current time in a graph
  $graph1 = new EasyRdf_Graph();
  $graph1->add('http://example.com/test', 'rdfs:label', 'Test');
  $graph1->add('http://example.com/test', 'dc:date', time());
  $gs->insert($graph1, 'time.rdf');  // Get the graph back out of the graph store and display it
  $graph2 = $gs->get('time.rdf');
  print $graph2->dump();
?></body>
</html>

Спасибо.

1 ответ

Есть решение
Stanislav Kralin ответил: 31 марта 2018 в 05:58

Вы смешиваете протокол SPARQL 1.1 и HTTP-протокол хранилища графиков SPARQL 1.1. Разница в том, что последний не использует запросы SPARQL для выполнения операций над графами RDF.

Для В каждом протоколе Fuseki предоставляет два URI: для чтения и для операций записи.

этот ответ для некоторых деталей.