Я пытаюсь запросить данные в онтологии, которая сохраняется в графическом текстовом графе. Я использую ARC2 в качестве конечной точки удаленного хранилища, но получил результат, что мой запрос не может обработать префикс. Я реализую его с помощью Codeigniter, и он отлично работает, чтобы найти Class внутри онтологии. Но здесь я пытаюсь найти расстояние между 2 классами. Ниже показана ошибка:
Query errorsArray ( [0] => Could not properly handle " PREFIX geo: NULL ["a"]=> array(1) { ["remote_store_endpoint"]=> string(46) "http://192.168.111.13:7200/repositories/GeoWeb" } ["caller"]=> object(stdClass)#21 (0) { } ["inc_path"]=> string(58) "C:\xampp\htdocs\SearchEngine\application\third_party\arc2/" ["ns_count"]=> int(0) ["nsp"]=> array(1) { ["http://www.w3.org/1999/02/22-rdf-syntax-ns#"]=> string(3) "rdf" } ["used_ns"]=> array(1) { [0]=> string(43) "http://www.w3.org/1999/02/22-rdf-syntax-ns#" } ["ns"]=> array(1) { ["rdf"]=> string(43) "http://www.w3.org/1999/02/22-rdf-syntax-ns#" } ["base"]=> string(55) "http://localhost/SearchEngine/testcontroller/find/tutu/" ["errors"]=> array(1) { [0]=> string(83) "Could not properly handle " PREFIX geo: array(0) { } ["adjust_utf8"]=> int(0) ["max_errors"]=> int(25) ["has_pcre_unicode"]=> int(1) ["is_remote"]=> int(1) }
Это мой код:
$coba = new ARC2();
$config = array('remote_store_endpoint' => 'http://192.168.111.13:7200/repositories/GeoWeb');
$store=$coba->getRemoteStore($config);
$r = " PREFIX geo:<http://www.semanticweb.org/user/ontologies/2019/6/GeoWeb-Ontology#>
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX owl:<http://www.w3.org/2002/07/owl#>
SELECT ?individual ?ancestor
( count(distinct ?mid) as ?closest)
WHERE {
values ?individual {geo:$tokenizeword[$x]}
values ?ancestor {geo:$values[6]}
?individual rdf:type+ ?mid.
?mid rdf:type* ?ancestor.
}
group by ?individual ?ancestor
order by ?individual ?closest
";
$rowr[] = $store->query($r, 'rowsr');
if ($errs = $store->getErrors()) {
echo "Query errors" ;
print_r($errs);
}
Кто-нибудь может мне помочь?