/', ' != ', $filter); $filter = preg_replace("/\\\'/", "'", $filter); $filter = preg_replace_callback('/(\'[^\']*\'|[^ ]+) contains (\'[^\']*\'|[^ ]+)/', create_contains_call, $filter); $filter = preg_replace_callback('/(\'[^\']*\'|[^ ]+) starts with (\'[^\']*\'|[^ ]+)/', create_starts_with_call, $filter); $filter = preg_replace_callback('/(\'[^\']*\'|[^ ]+) ends with (\'[^\']*\'|[^ ]+)/', create_ends_with_call, $filter); $filter = preg_replace_callback('/(\'[^\']*\'|[^ ]+) matches (\'[^\']*\'|[^ ]+)/', create_matches_call, $filter); $filter = preg_replace_callback('/(\'[^\']*\'|[^ ]+) like (\'[^\']*\'|[^ ]+)/', create_like_call, $filter); $filter = preg_replace('/([a-z0-9]+)($|[, \)])/i', '?$1$2', $filter); $filter = " FILTER ( $filter ) "; break; case 'order by': $order = preg_replace('/([a-z0-9]+) (asc|desc)/i', '$2($1)', $value); $order = preg_replace('/([a-z0-9]+)($|[, \)])/i', '?$1$2', $order); $order = str_replace(',', '', $order); break; case 'limit': $limit = " LIMIT $value"; break; case 'offset'; $offset = " OFFSET $value"; break; } } $sparql = "PREFIX rdf: PREFIX rdfs: PREFIX xsd: SELECT DISTINCT $select WHERE { $where $filter } ORDER BY $order $limit $offset"; //echo("

tq: $tq

"); //echo("

sparql: $sparql

"); $params = array('query' => $sparql, 'output' => 'xml'); $query = http_build_query($params); $rdfURL = "http://api.talis.com/stores/$store/services/sparql?$query"; /* $resource = fopen($rdfURL, 'rb'); header('Content-Type: application/xml', true); fpassthru($resource); return; */ // URL for the transformation $params = array('xml-uri' => $rdfURL, 'xsl-uri' => "http://www.jenitennison.com/visualisation/data/SRXtoGoogleVisData.xsl", 'tqx' => $tqx); $query = http_build_query($params); $txURL = "http://api.talis.com/tx?$query"; $resource = fopen($txURL, 'rb'); header('Content-Type: application/json', true); fpassthru($resource); return; } ?>