2016-09-08 2 views
0

EasyRdf를 사용하여 쿼리 결과를 가져와야합니다.EasyRdf를 사용하여 SPARQL 쿼리 결과를 가져 오는 방법

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을 제공하려고 노력하지만, 비슷한 출력을 가지고 :

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

내가 가진 출력은 다음과 같습니다 : 나는 CodeIgniter의 코드 아래 사용. 나는 또한 Fuseki 종점에서 내 쿼리를 시도하고 (나는 Fuseki triplestore를 사용하고있다.) 이걸 가지고있다. 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'); 

RDF 네임 스페이스는 마지막에 #이 있어야합니다, 당신은해야 아마 너무, 당신의 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, # 내 문제를 해결합니다. :) –

관련 문제