#!/usr/bin/perl use strict; use warnings; our $VERSION = 0.03; use RDF::Redland; use CGI; my $storage=new RDF::Redland::Storage("mysql", "myopera", "host='localhost',database='myoperardf',user='root',new='no',password='',contexts='yes'"); my $model=new RDF::Redland::Model($storage, ""); my $query=new RDF::Redland::Query(CGI::param('query'), undef, undef, "sparql"); $SIG{ALRM} = sub { die "Your query results could not be returned in the time alotted. The query was most likely too complex."; exit(-1); }; my $results; eval { alarm(2); $results=$query->execute($model); }; alarm(0); if ($@) { print "Content-type: text/plain\n\n"; print($@ . "\n"); exit 400; } else { print "Content-type: application/sparql-results+xml\n\n"; print($results->to_string . "\n"); exit 200; }