How to use Turtle sparql php
Asked Answered
L

1

7

I'm trying to filter this database written in 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: .".

I use arc2 api beacause the RAP doesn't work. I wrote this code but it won't work:

<?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'];
?>

The script returns no error and not a result.

Lanilaniard answered 18/1, 2012 at 12:57 Comment(0)
S
2

Seems like the predicate in the WHERE {} statement is missing something.

For example did you mean vcard:latitude ?

Currently it is

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

How about :

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

And there may be problems if there is no space character before the period. Notice I added that above. At least that's what I experienced when using Python RDF libraries.

Swaraj answered 17/2, 2012 at 3:53 Comment(1)
The space character before shouldn't matter. However, the predicate definition matters ;)Plasticizer

© 2022 - 2024 — McMap. All rights reserved.