use RDF::Query; use RDF::TrineX::Functions -shortcuts; my $data = rdf_parse(<<'TURTLE', type=>'turtle', base=>'http://example.com/'); @prefix foaf: . @prefix rdf: . foaf:name "Toby Inkster" ; foaf:page [ foaf:name "Toby Inkster" ] ; foaf:junk "Foo Bar"^^rdf:XMLLiteral ; foaf:mbox . TURTLE my $query = RDF::Query->new(<<'SPARQL'); PREFIX foaf: PREFIX util: PREFIX junk: SELECT ?name (util:uc(?name) AS ?ucname) (util:trim(util:sprintf(" Je m'apelle %s "@fr, ?name)) AS ?intro) (util:skolem(?page, "oid") AS ?skolempage) (util:preg_replace("t", "x", ?name, "ig") AS ?mangled) (util:find_xpath("//junk:ex", ?junk, 0) AS ?found) WHERE { ?person foaf:name ?name ; foaf:page ?page ; foaf:junk ?junk. } SPARQL my $results = $query->execute($data); print $results->as_xml;