Как получить результат запроса SPARQL с помощью EasyRdf

Используя EasyRdf, я хочу получить результат запроса. Я использовал следующий код в codeigniter:

$this->load->library('rdf');
EasyRdf_Namespace::set('rdf', 'http://www.w3.org/1999/02/22-rdf-syntax-ns');
EasyRdf_Namespace::set('srt', 'http://persuratan-semweb.dev/ontologies/surat.owl');
$sparql = new EasyRdf_Sparql_Client('http://localhost:3030/surat_single/sparql');

$query = "SELECT * WHERE { ". "?surat rdf:type srt:Surat . ". "?surat srt:sifat_surat ?sifat_surat . ". "?surat srt:nomor_surat ?nomor_surat . }";
$result = $sparql->query($query);

echo "jumlah data: " . $result->numRows() . "<br>";
echo "<br>";

foreach ($result as $row) {
echo $row->sifat_surat . " " .$row->sifat_surat . " " . $row->nomor_surat ."<br>";
}

print_r($result);

Вывод, который я получил:

jumlah data: 0

EasyRdf_Sparql_Result Object (
[type:EasyRdf_Sparql_Result:private] => bindings
[boolean:EasyRdf_Sparql_Result:private] =>
[ordered:EasyRdf_Sparql_Result:private] =>
[distinct:EasyRdf_Sparql_Result:private] =>
[fields:EasyRdf_Sparql_Result:private] => Array (
[0] => surat
[1] => sifat_surat
[2] => nomor_surat
)
[storage:ArrayIterator:private] => Array ( )
)

Я также пробую решение Джошуа, данное Вот, но получил похожий вывод. Я также пробовал свой запрос в конечной точке Fuseki (я использую триплет-магазин Fuseki) и получил это результат. Я полностью новичок в семантической паутине.

0

Решение

Я не знаю, ответ это или нет, но эти пространства имен мне не подходят:

EasyRdf_Namespace::set('rdf', 'http://www.w3.org/1999/02/22-rdf-syntax-ns');
EasyRdf_Namespace::set('srt', 'http://persuratan-semweb.dev/ontologies/surat.owl');

РДФ Пространство имен должно иметь # в конце, и, вероятно, оно также должно быть для вашего OWL-файла:

EasyRdf_Namespace::set('rdf', 'http://www.w3.org/1999/02/22-rdf-syntax-ns#');
EasyRdf_Namespace::set('srt', 'http://persuratan-semweb.dev/ontologies/surat.owl#');

Но, тем не менее, нет никаких причин, по которым вы не можете попробовать проще запрос первый. Почему бы просто не запустить

SELECT ?s ?p ?o { ?s ?p ?o }

чтобы быть уверенным, что вы можете получить результаты, и каковы данные.

1

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

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

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