我需要使用一些 SPARQL 查询请求一个 rdf 文件。我必须用 PHP 来做。我用 WAMP 测试我的代码。
是否可以在 php 中使用 sparql 查询在本地请求 rdf 文件?如果是,是否可以使用“Easyrdf”来完成。我找到了 EasyRDF 并尝试了它,但我真的不知道它是如何工作的,无论如何我都没有找到将 rdf 文件本地放入代码中。那么,如果可能的话,请您检查我的代码,看看有什么问题吗?
require "C:/Users/adela/vendor/autoload.php";
set_include_path(get_include_path() . PATH_SEPARATOR . '../lib/');
require_once "C:/Users/adela/easyrdf-0.9.0/lib/EasyRdf.php";
require_once "C:/Users/adela/easyrdf-0.9.0/examples/html_tag_helpers.php";
EasyRdf_Namespace::set('ns', 'http://www.it-sudparis.eu/family#');
EasyRdf_Namespace::set('rdf', 'http://www.w3.org/1999/02/22-rdf-syntax-ns#');
EasyRdf_Namespace::set('rdfs', 'http://www.w3.org/2000/01/rdf-schema#');
EasyRdf_Namespace::set('owl', 'http://www.w3.org/2002/07/owl#');
EasyRdf_Namespace::set('xsd', 'http://www.w3.org/2001/XMLSchema#');
EasyRdf_Namespace::set('tg', 'http://www.turnguard.com/functions#');
EasyRdf_Namespace::set('cd', 'https://www.project_aikm_20170547/cd#');
$sparql = new EasyRdf_Sparql_Client('http://localhost/Knowledge_Project/lib/EasyRdf/Sparql');
$result = $sparql->query(
'SELECT * WHERE {'.
' ?p ?s ?o .'.
'}'
);
print_r($result);
foreach ($result as $row) {
echo print_r($row);
}
没有错误,这是以下结果print_r($result)
:
EasyRdf_Graph 对象 ( [uri:EasyRdf_Graph:private] => http://localhost/Knowledge_Project/lib/EasyRdf/Sparql [parsedUri:EasyRdf_Graph:private] => EasyRdf_ParsedUri 对象 ( [scheme:EasyRdf_ParsedUri:private] => http [片段: EasyRdf_ParsedUri:private] => [authority:EasyRdf_ParsedUri:private] => localhost [path:EasyRdf_ParsedUri:private] => /Knowledge_Project/lib/EasyRdf/Sparql [query:EasyRdf_ParsedUri:private] => ) [资源:EasyRdf_Graph:private] => Array ( ) [index:EasyRdf_Graph:private] => Array ( ) [revIndex:EasyRdf_Graph:private] => Array ( ) [bNodeCount:EasyRdf_Graph:private] => 0 [loaded:EasyRdf_Graph:private] => Array ( ) [maxRedirects:EasyRdf_Graph:private] => 10)
我已经检查了程序没有进入 foreachloop。
PS:
窗口版本:10;PHP版本:7.3.12;WAMP 版本:3.2.0
更新:如果我传入 7.4.1 版本的 PHP,脚本会出现很多错误: