2016-09-08 7 views
0

Используя EasyRdf, я хочу получить результат запроса. Я использовал ниже код в CodeIgniter:Как получить результат запроса SPARQL с помощью EasyRdf

$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 () 
) 

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

ответ

1

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

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 } 

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

+0

Спасибо @Joshua, # решить мою проблему. :) –