Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用php_Php_Sparql_Turtle Rdf - Fatal编程技术网

如何使用php

如何使用php,php,sparql,turtle-rdf,Php,Sparql,Turtle Rdf,我正在尝试筛选这个用Turtle编写的数据库 @prefix : <http://www.essepuntato.it/resource/> . @prefix vcard: <http://www.w3.org/2006/vcard/ns#> . @prefix cs: <http://cs.unibo.it/ontology/> . :pt0001 vcard:category "Poste e Telegrafi" ;

我正在尝试筛选这个用Turtle编写的数据库

@prefix : <http://www.essepuntato.it/resource/> .
@prefix vcard: <http://www.w3.org/2006/vcard/ns#> .
@prefix cs: <http://cs.unibo.it/ontology/> .        
:pt0001
     vcard:category "Poste e Telegrafi"
    ; vcard:fn "Ufficio Bologna 1"
    ; vcard:extended-address "Via Cairoli 9, Bologna BO, Italy"
    ; vcard:latitude "44.504192"
    ; vcard:longitude "11.338661"
    ; vcard:tel "051 243425"
    ; vcard:fax "051 244459"
    ; cs:opening "Mon, Tue, Wed, Thu, Fri: 0800-1330. Sat: 0800-1230."
    ; cs:closing "01-01, 01-06, P, LA, 04-25, 05-01, 06-02, 08-15, 11-01, 12-08, 12-25,     12-26: .".
@前缀:。
@前缀vcard:。
@前缀cs:。
:pt0001
vcard:Poste e e Telegrafi类别
; vcard:fn“Ufficio Bologna 1”
; vcard:扩展地址“意大利博洛尼亚博城Via Cairoli 9”
; vcard:纬度“44.504192”
; vcard:经度“11.338661”
; 电子名片:电话“05124425”
; 电子名片:传真“051244459”
; 政务司司长:开幕“周一,周二,周三,周四,周五:0800-1330。周六:0800-1230。”
; 政务司司长:结束“01-01、01-06、P、LA、04-25、05-01、06-02、08-15、11-01、12-08、12-25、12-26:”。
我使用arc2 api是因为RAP不起作用。 我写了这段代码,但它不起作用:

<?php
/* ARC2 static class inclusion */ 
include_once('./arc2/ARC2.php');

/* MySQL and endpoint configuration */ 
$config = array(
  /* db */
  'db_host' => 'localhost', /* optional, default is localhost */
  'db_name' => 'my_db',
  'db_user' => 'user',
  'db_pwd' => 'secret',

  /* store name */
  'store_name' => 'my_endpoint_store',

  /* endpoint */
  'endpoint_features' => array(
    'select', 'construct', 'ask', 'describe', 
 'load', 'insert', 'delete', 
 'dump' /* dump is a special command for streaming SPOG export */
),
'endpoint_timeout' => 60, /* not implemented in ARC2 preview */
'endpoint_read_key' => '', /* optional */
'endpoint_write_key' => 'somekey', /* optional */
'endpoint_max_limit' => 250, /* optional */
);

/* instantiation */

/* instantiation */
$ssp = ARC2::getSPARQLScriptProcessor($config);

/* script evaluation */
$scr = '
  PREFIX vcard: <http://www.w3.org/2006/vcard/ns#> 
  PREFIX dbpedia2: <http://dbpedia.org/property/> 

  ENDPOINT "database.ttl"

  $rows = SELECT ?x ?y WHERE { 
    ?x vcard: ?y.
  }
';

$ssp->processScript($scr);
echo $ssp->env['output'];
?>


脚本不返回错误,也不返回结果。

似乎WHERE{}语句中的谓词缺少某些内容

例如,您是指
vcard:latitude

现在是

$rows = SELECT ?x ?y WHERE { 
?x vcard: ?y.
}
那么:

$rows = SELECT ?x ?y WHERE { 
?x vcard:latitude ?y .
}

如果在周期之前没有空格字符,则可能会出现问题。请注意,我在上面添加了这一点。至少这是我在使用Python RDF库时所经历的

前面的空格字符应该无关紧要。但是,谓词定义很重要;)