【问题标题】:SPARQL INSERT with ARC2 PHP library带有 ARC2 PHP 库的 SPARQL INSERT
【发布时间】:2014-11-10 17:27:22
【问题描述】:

我正在尝试使用ARC2 库在 PHP 中的 SPARQL 端点上执行 INSERT。 这将失败并出现错误“无法正确处理”PREFIX dc:”

SPARQL UPDATE 查询取自 W3C specification,在我的 Jena-Fuseki 控制面板上运行良好:

$query = '
    PREFIX dc: <http://purl.org/dc/elements/1.1/>
    INSERT DATA
    { 
        <http://example/book007> dc:title "A new book" ;
                         dc:creator "A.N.Other" .
    }
';

但即使没有 PREFIX 语句的查询变体也只会在我的 PHP 代码中导致类似的错误“无法正确处理”INSERT DATA {。

我的PHP代码如下:

include_once('./lib/arc2/ARC2.php');

$config = array(
  //db
  'db_name' => 'arc2',
  'db_user' => 'root',
  'db_pwd' => '-',
  //store
  'store_name' => 'arc_tests'
);
$store = ARC2::getStore($config);
if (!$store->isSetUp())
  $store->setUp();

$res = $store->query($query);
echo var_dump($store->getErrors());
echo "<br><br>executed INSERT, returned: ";
echo var_dump($res);

此版本使用原生 ARC2 存储来减少潜在的错误来源。我实际上是在尝试与远程商店进行交互:

$config = array( 'remote_store_endpoint' => 'http://localhost:3030/data/update', );
$store = ARC2::getRemoteStore($config);

然而,两者都给我同样的错误。


最后,我想连接到我的 Jena Fuseki 服务器的 remote SPARQL 端点,并使用 PHP 交互地插入和检索数据。如果您有任何其他库或干净的解决方案如何通过 PHP 中的 SPARQL 协议进行交互,我很乐意改变我的方法。

【问题讨论】:

    标签: php sparql semantic-web


    【解决方案1】:

    看来,ARC2 是 not support SPARQL 1.1 parsing

    相反,它仅支持用于 UPDATE 查询的简化 SPARQL+。以下查询成功地将一个新的三元组插入到 ARC2 存储中:

    $query = 'INSERT DATA
    { 
      <http://example/book1> dc:title "A new book" ;
                         dc:creator "A.N.Other" .
    }';
    

    不幸的是,使用这个有限的 SPARQL+ 似乎不可能通过我的 Jena Fuseki 实例上的远程存储进行更新。 ARC2 都在抱怨问题中给出的符合 SPARQL 1.1 的查询语法, 或者 Jena Fuseki 抱怨 SPARQL+ 查询语法似乎是 ARC2 特有的。

    有什么建议吗?我对此发布了一个新问题:https://stackoverflow.com/questions/26858594/php-sparql-1-1-library-for-semantic-web-stack-php-sparql-jena-fuseki

    【讨论】:

    • 如果您找到了问题的答案,请务必将其标记为已接受。如果这反过来意味着您有不同的问题,您可能应该将其作为不同的问题提出,或更新此问题。寻找问题的用户可能不会看到“ARC2 或 Jena Fuseki 都在抱怨我的查询语法。有什么建议吗?”,并且最终不会发布答案,因为他们不知道“抱怨我的查询语法”表示上下文。
    • 感谢您的提示 :) 会这样做的
    猜你喜欢
    • 2017-05-29
    • 1970-01-01
    • 2023-04-07
    • 2021-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多