\set VERBOSITY terse SET timezone TO 'Etc/UTC'; CREATE SERVER linkedgeodata FOREIGN DATA WRAPPER rdf_fdw OPTIONS (endpoint 'http://linkedgeodata.org/sparql'); CREATE FOREIGN TABLE hbf ( p rdfnode OPTIONS (variable '?p'), o rdfnode OPTIONS (variable '?o') ) SERVER linkedgeodata OPTIONS ( log_sparql 'true', sparql 'SELECT * WHERE { ?p ?o}'); /* SPARQL 17.4.1.7 - RDFterm-equal */ SELECT p, o FROM hbf WHERE p = sparql.iri('http://www.w3.org/2000/01/rdf-schema#label') AND o = '"Leipzig Hbf"'; INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(?o = "Leipzig Hbf") } INFO: SPARQL returned 1 record. p | o ----------------------------------------------+--------------- | "Leipzig Hbf" (1 row) /* SPARQL 17.4.1.9 - IN */ SELECT p, o FROM hbf WHERE o IN ('"Leipzig Hbf"', '"Gare centrale de Leipzig"@fr'); INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?o IN ("Leipzig Hbf", "Gare centrale de Leipzig"@fr)) } INFO: SPARQL returned 3 records. p | o ------------------------------------------------+------------------------------- | "Leipzig Hbf" | "Gare centrale de Leipzig"@fr | "Leipzig Hbf" (3 rows) /* SPARQL 17.4.1.10 - NOT IN*/ SELECT p, o FROM hbf WHERE p = sparql.iri('http://www.w3.org/2000/01/rdf-schema#label') AND sparql.lang(o) NOT IN ('de','es'); INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(LANG(?o) NOT IN ("de", "es")) } INFO: SPARQL returned 2 records. p | o ----------------------------------------------+------------------------------- | "Leipzig Hbf" | "Gare centrale de Leipzig"@fr (2 rows) /* SPARQL 15.5 - LIMIT */ SELECT p, o FROM hbf WHERE p = '' LIMIT 5; INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) } LIMIT 5 INFO: SPARQL returned 5 records. p | o ---------------------------------------------------+---------------------------------------------------- | | | | | (5 rows) SELECT p, o FROM hbf WHERE p = '' FETCH FIRST 5 ROWS ONLY; INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) } LIMIT 5 INFO: SPARQL returned 5 records. p | o ---------------------------------------------------+---------------------------------------------------- | | | | | (5 rows) /* SPARQL 15.4 - OFFSET */ SELECT p, o FROM hbf WHERE p = '' OFFSET 5 ROWS FETCH FIRST 10 ROWS ONLY; INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) } LIMIT 15 INFO: SPARQL returned 6 records. p | o ---------------------------------------------------+---------------------------------------------------------- | (1 row) SELECT p, o FROM hbf WHERE p = '' OFFSET 5 ROWS LIMIT 10; INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) } LIMIT 15 INFO: SPARQL returned 6 records. p | o ---------------------------------------------------+---------------------------------------------------------- | (1 row) /* SPARQL 15.1 - ORDER BY */ SELECT o FROM hbf ORDER BY p DESC LIMIT 3; INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o} ORDER BY DESC (?p) LIMIT 3 INFO: SPARQL returned 3 records. o ------------------------------------------------------ "12.3831"^^ "51.3466"^^ (3 rows) SELECT p FROM hbf ORDER BY o ASC LIMIT 3; INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o} ORDER BY ASC (?o) LIMIT 3 INFO: SPARQL returned 3 records. p ---------------------------------------------------------------- (3 rows) SELECT p, o FROM hbf ORDER BY p DESC, o ASC LIMIT 3; INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o} ORDER BY DESC (?p) ASC (?o) LIMIT 3 INFO: SPARQL returned 3 records. p | o ------------------------------------------------+------------------------------------------------------ | "12.3831"^^ | "51.3466"^^ | (3 rows) SELECT p, o FROM hbf ORDER BY p DESC, o ASC OFFSET 5 LIMIT 2; INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o} ORDER BY DESC (?p) ASC (?o) LIMIT 7 INFO: SPARQL returned 7 records. p | o ---------------------------------------------------+--------------------------------------- | | (2 rows) SELECT p,o FROM hbf ORDER BY 1 DESC, 2 ASC OFFSET 5 LIMIT 10; INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o} ORDER BY DESC (?p) ASC (?o) LIMIT 15 INFO: SPARQL returned 15 records. p | o ---------------------------------------------------+-------------------------------------------------------------------- | | | | | | | "2015-07-12T20:41:25"^^ | | "de:Leipzig Hauptbahnhof" | "true"^^ (10 rows) /* SPARQL 18.2.5.3 - DISTINCT */ SELECT DISTINCT p FROM hbf WHERE p = ''; INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT DISTINCT ?p { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) } ORDER BY ASC (?p) INFO: SPARQL returned 1 record. p ---------------------------------------------- (1 row) -- DISTINCT ON is not supported, therefore it won't be pushed down. SELECT DISTINCT ON (p) p,o FROM hbf WHERE p = ''; INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) } ORDER BY ASC (?p) INFO: SPARQL returned 2 records. p | o ----------------------------------------------+--------------- | "Leipzig Hbf" (1 row) /* SPARQL - 17.3 Operator Mapping (text) */ SELECT p, o FROM hbf WHERE p = '' AND p <> '' AND p >= '' AND p <= '' AND p BETWEEN '' AND ''; INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(?p != ) FILTER(?p >= ) FILTER(?p <= ) FILTER(?p >= ) FILTER(?p <= ) } INFO: SPARQL returned 2 records. p | o ----------------------------------------------+------------------------------- | "Leipzig Hbf" | "Gare centrale de Leipzig"@fr (2 rows) /* SPARQL - 17.3 Operator Mapping (rdfnode) */ SELECT p, o FROM hbf WHERE p = ''::rdfnode AND p <> '' AND p >= ''::rdfnode AND p <= ''::rdfnode AND p BETWEEN ''::rdfnode AND ''::rdfnode; INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(?p != ) FILTER(?p >= ) FILTER(?p <= ) FILTER(?p >= ) FILTER(?p <= ) } INFO: SPARQL returned 2 records. p | o ----------------------------------------------+------------------------------- | "Leipzig Hbf" | "Gare centrale de Leipzig"@fr (2 rows) /* SPARQL - 17.3 Operator Mapping (smallint) */ SELECT p, o FROM hbf WHERE p = ''::rdfnode AND o = 19::smallint AND o <> 20::smallint AND o >= 19::smallint AND o <= 19::smallint AND o BETWEEN 18 AND 20 AND 19::smallint = o AND 20::smallint <> o AND 19::smallint >= o AND 19::smallint <= o; INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(?o = 19) FILTER(?o != 20) FILTER(?o >= 19) FILTER(?o <= 19) FILTER(?o >= 18) FILTER(?o <= 20) FILTER(19 = ?o) FILTER(20 != ?o) FILTER(19 >= ?o) FILTER(19 <= ?o) } INFO: SPARQL returned 1 record. p | o ---------------------------------------------+-------------------------------------------------- | "19"^^ (1 row) /* SPARQL - 17.3 Operator Mapping (int) */ SELECT p, o FROM hbf WHERE p = ''::rdfnode AND o = 32586907::int AND o <> 999999::int AND o >= 32586907::int AND o <= 32586907::int AND o BETWEEN 32586900::int AND 32586909::int AND 32586907::int = o AND 999999::int <> o AND 32586907::int >= o AND 32586907::int <= o; INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(?o = 32586907) FILTER(?o != 999999) FILTER(?o >= 32586907) FILTER(?o <= 32586907) FILTER(?o >= 32586900) FILTER(?o <= 32586909) FILTER(32586907 = ?o) FILTER(999999 != ?o) FILTER(32586907 >= ?o) FILTER(32586907 <= ?o) } INFO: SPARQL returned 1 record. p | o -----------------------------------------------+-------------------------------------------------------- | "32586907"^^ (1 row) /* SPARQL - 17.3 Operator Mapping (bigint) */ SELECT p, o FROM hbf WHERE p = ''::rdfnode AND o = 32586907::bigint AND o <> 999999::bigint AND o >= 32586907::bigint AND o <= 32586907::bigint AND o BETWEEN 32586900::bigint AND 32586909::bigint AND 32586907::bigint = o AND 999999::bigint <> o AND 32586907::bigint >= o AND 32586907::bigint <= o; INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(?o = 32586907) FILTER(?o != 999999) FILTER(?o >= 32586907) FILTER(?o <= 32586907) FILTER(?o >= 32586900) FILTER(?o <= 32586909) FILTER(32586907 = ?o) FILTER(999999 != ?o) FILTER(32586907 >= ?o) FILTER(32586907 <= ?o) } INFO: SPARQL returned 1 record. p | o -----------------------------------------------+-------------------------------------------------------- | "32586907"^^ (1 row) /* SPARQL - 17.3 Operator Mapping (real) */ SELECT p, o FROM hbf WHERE p = ''::rdfnode AND o <> 13.40::real AND o >= 12.01::real AND o <= 14.01::real AND o BETWEEN 12::real AND 14::real AND 13.40::real <> o AND 12.01::real <= o AND 14.01::real >= o; INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(?o != 13.4) FILTER(?o >= 12.01) FILTER(?o <= 14.01) FILTER(?o >= 12) FILTER(?o <= 14) FILTER(13.4 != ?o) FILTER(12.01 <= ?o) FILTER(14.01 >= ?o) } INFO: SPARQL returned 1 record. p | o ------------------------------------------------+------------------------------------------------------ | "12.3831"^^ (1 row) /* SPARQL - 17.3 Operator Mapping (double precision) */ SELECT p, o FROM hbf WHERE p = ''::rdfnode AND o <> 13.40::double precision AND o >= 12.01::double precision AND o <= 14.01::double precision AND o BETWEEN 12::double precision AND 14::double precision AND 13.40::double precision <> o AND 12.01::double precision <= o AND 14.01::double precision >= o; INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(?o != 13.4) FILTER(?o >= 12.01) FILTER(?o <= 14.01) FILTER(?o >= 12) FILTER(?o <= 14) FILTER(13.4 != ?o) FILTER(12.01 <= ?o) FILTER(14.01 >= ?o) } INFO: SPARQL returned 1 record. p | o ------------------------------------------------+------------------------------------------------------ | "12.3831"^^ (1 row) /* SPARQL - 17.3 Operator Mapping (numeric) */ SELECT p, o FROM hbf WHERE p = ''::rdfnode AND o <> 13.40::numeric AND o >= 12.01::numeric AND o <= 14.01::numeric AND o BETWEEN 12::numeric AND 14::numeric AND 13.40::numeric <> o AND 12.01::numeric <= o AND 14.01::numeric >= o; INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(?o != 13.40) FILTER(?o >= 12.01) FILTER(?o <= 14.01) FILTER(?o >= 12) FILTER(?o <= 14) FILTER(13.40 != ?o) FILTER(12.01 <= ?o) FILTER(14.01 >= ?o) } INFO: SPARQL returned 1 record. p | o ------------------------------------------------+------------------------------------------------------ | "12.3831"^^ (1 row) /* SPARQL - 17.3 Operator Mapping (timestamp) */ SELECT p, o FROM hbf WHERE p = ''::rdfnode AND o <> '2020-01-31 18:30:00'::timestamp AND o >= '2015-07-12 20:40:00'::timestamp AND o <= '2015-07-12 21:00:00'::timestamp AND o BETWEEN '2014-01-01 12:30:00'::timestamp AND '2016-01-01 12:30:00'::timestamp AND '2020-01-31 18:30:00'::timestamp <> o AND '2015-07-12 20:40:00'::timestamp <= o AND '2015-07-12 21:00:00'::timestamp >= o; INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(?o != "2020-01-31T18:30:00"^^) FILTER(?o >= "2015-07-12T20:40:00"^^) FILTER(?o <= "2015-07-12T21:00:00"^^) FILTER(?o >= "2014-01-01T12:30:00"^^) FILTER(?o <= "2016-01-01T12:30:00"^^) FILTER("2020-01-31T18:30:00"^^ != ?o) FILTER("2015-07-12T20:40:00"^^ <= ?o) FILTER("2015-07-12T21:00:00"^^ >= ?o) } INFO: SPARQL returned 1 record. p | o -------------------------------------+-------------------------------------------------------------------- | "2015-07-12T20:41:25"^^ (1 row) /* SPARQL - 17.3 Operator Mapping (timestamptz) */ SELECT p, o FROM hbf WHERE p = ''::rdfnode AND o <> '2020-01-31 18:30:00'::timestamptz AND o >= '2015-07-12 08:40:00'::timestamptz AND o <= '2015-07-13 21:00:00'::timestamptz AND o BETWEEN '2014-01-01 12:30:00'::timestamptz AND '2016-01-01 12:30:00'::timestamptz AND '2020-01-31 18:30:00'::timestamptz <> o AND '2015-07-12 08:40:00'::timestamptz <= o AND '2015-07-13 21:00:00'::timestamptz >= o; INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(?o != "2020-01-31T18:30:00.000000Z"^^) FILTER(?o >= "2015-07-12T08:40:00.000000Z"^^) FILTER(?o <= "2015-07-13T21:00:00.000000Z"^^) FILTER(?o >= "2014-01-01T12:30:00.000000Z"^^) FILTER(?o <= "2016-01-01T12:30:00.000000Z"^^) FILTER("2020-01-31T18:30:00.000000Z"^^ != ?o) FILTER("2015-07-12T08:40:00.000000Z"^^ <= ?o) FILTER("2015-07-13T21:00:00.000000Z"^^ >= ?o) } INFO: SPARQL returned 1 record. p | o -------------------------------------+-------------------------------------------------------------------- | "2015-07-12T20:41:25"^^ (1 row) /* SPARQL - 17.3 Operator Mapping (date) */ SELECT p, o FROM hbf WHERE p = ''::rdfnode AND sparql.strdt(sparql.substr(sparql.str(o), 1, 10),'xsd:date') = '2015-07-12'::date AND sparql.strdt(sparql.substr(sparql.str(o), 1, 10),'xsd:date') <> '2025-02-02'::date AND sparql.strdt(sparql.substr(sparql.str(o), 1, 10),'xsd:date') >= '2015-07-12'::date AND sparql.strdt(sparql.substr(sparql.str(o), 1, 10),'xsd:date') <= '2015-07-13'::date AND sparql.strdt(sparql.substr(sparql.str(o), 1, 10),'xsd:date') BETWEEN '2014-01-01'::date AND '2016-01-01'::date AND '2015-07-12'::date = sparql.strdt(sparql.substr(sparql.str(o), 1, 10),'xsd:date') AND '2025-02-02'::date <> sparql.strdt(sparql.substr(sparql.str(o), 1, 10),'xsd:date') AND '2015-07-12'::date <= sparql.strdt(sparql.substr(sparql.str(o), 1, 10),'xsd:date') AND '2015-07-13'::date >= sparql.strdt(sparql.substr(sparql.str(o), 1, 10),'xsd:date'); INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(STRDT(SUBSTR(STR(?o), 1, 10), ) = "2015-07-12"^^) FILTER(STRDT(SUBSTR(STR(?o), 1, 10), ) != "2025-02-02"^^) FILTER(STRDT(SUBSTR(STR(?o), 1, 10), ) >= "2015-07-12"^^) FILTER(STRDT(SUBSTR(STR(?o), 1, 10), ) <= "2015-07-13"^^) FILTER(STRDT(SUBSTR(STR(?o), 1, 10), ) >= "2014-01-01"^^) FILTER(STRDT(SUBSTR(STR(?o), 1, 10), ) <= "2016-01-01"^^) FILTER("2015-07-12"^^ = STRDT(SUBSTR(STR(?o), 1, 10), )) FILTER("2025-02-02"^^ != STRDT(SUBSTR(STR(?o), 1, 10), )) FILTER("2015-07-12"^^ <= STRDT(SUBSTR(STR(?o), 1, 10), )) FILTER("2015-07-13"^^ >= STRDT(SUBSTR(STR(?o), 1, 10), )) } INFO: SPARQL returned 1 record. p | o -------------------------------------+-------------------------------------------------------------------- | "2015-07-12T20:41:25"^^ (1 row) -- /* SPARQL - 17.3 Operator Mapping (time) */ -- SELECT p, o FROM hbf -- WHERE -- p = ''::rdfnode AND -- sparql.strdt(sparql.substr(sparql.str(o), 12, 8),'xsd:time') = '20:41:25'::time AND -- sparql.strdt(sparql.substr(sparql.str(o), 12, 8),'xsd:time') <> '23:00:00'::time AND -- sparql.strdt(sparql.substr(sparql.str(o), 12, 8),'xsd:time') >= '20:41:25'::time AND -- sparql.strdt(sparql.substr(sparql.str(o), 12, 8),'xsd:time') <= '20:41:25'::time AND -- sparql.strdt(sparql.substr(sparql.str(o), 12, 8),'xsd:time') BETWEEN '18:41:25'::time AND '20:41:25'::time; /* SPARQL - 17.3 Operator Mapping (timetz) */ SELECT p, o FROM hbf WHERE p = ''::rdfnode AND sparql.strdt(sparql.substr(sparql.str(o), 12, 8),'xsd:time') = '20:41:25'::timetz AND sparql.strdt(sparql.substr(sparql.str(o), 12, 8),'xsd:time') <> '23:00:00'::timetz AND sparql.strdt(sparql.substr(sparql.str(o), 12, 8),'xsd:time') >= '20:41:25'::timetz AND sparql.strdt(sparql.substr(sparql.str(o), 12, 8),'xsd:time') <= '20:41:25'::timetz AND sparql.strdt(sparql.substr(sparql.str(o), 12, 8),'xsd:time') BETWEEN '18:41:25'::timetz AND '20:41:25'::timetz AND '20:41:25'::timetz = sparql.strdt(sparql.substr(sparql.str(o), 12, 8),'xsd:time') AND '23:00:00'::timetz <> sparql.strdt(sparql.substr(sparql.str(o), 12, 8),'xsd:time') AND '20:41:25'::timetz <= sparql.strdt(sparql.substr(sparql.str(o), 12, 8),'xsd:time') AND '20:41:25'::timetz >= sparql.strdt(sparql.substr(sparql.str(o), 12, 8),'xsd:time'); INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(STRDT(SUBSTR(STR(?o), 12, 8), ) = "20:41:25+00"^^) FILTER(STRDT(SUBSTR(STR(?o), 12, 8), ) != "23:00:00+00"^^) FILTER(STRDT(SUBSTR(STR(?o), 12, 8), ) >= "20:41:25+00"^^) FILTER(STRDT(SUBSTR(STR(?o), 12, 8), ) <= "20:41:25+00"^^) FILTER(STRDT(SUBSTR(STR(?o), 12, 8), ) >= "18:41:25+00"^^) FILTER(STRDT(SUBSTR(STR(?o), 12, 8), ) <= "20:41:25+00"^^) FILTER("20:41:25+00"^^ = STRDT(SUBSTR(STR(?o), 12, 8), )) FILTER("23:00:00+00"^^ != STRDT(SUBSTR(STR(?o), 12, 8), )) FILTER("20:41:25+00"^^ <= STRDT(SUBSTR(STR(?o), 12, 8), )) FILTER("20:41:25+00"^^ >= STRDT(SUBSTR(STR(?o), 12, 8), )) } INFO: SPARQL returned 0 records. p | o ---+--- (0 rows) /* SPARQL - 17.3 Operator Mapping (boolean) */ SELECT p, o FROM hbf WHERE p = ''::rdfnode AND o = true AND o <> false AND true = o AND false <> o; INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(?o = "true"^^) FILTER(?o != "false"^^) FILTER("true"^^ = ?o) FILTER("false"^^ != ?o) } INFO: SPARQL returned 1 record. p | o ------------------------------------------------+------------------------------------------------- | "1"^^ (1 row) /* SPARQL 17.4.1.1 - BOUND */ CREATE FOREIGN TABLE hbf2 ( p rdfnode OPTIONS (variable '?p'), o rdfnode OPTIONS (variable '?o'), x rdfnode OPTIONS (variable '?x') ) SERVER linkedgeodata OPTIONS ( log_sparql 'true', sparql 'SELECT * WHERE { ?p ?o OPTIONAL { ?o ?x }}'); SELECT p, o, sparql.bound(p), sparql.bound(x) FROM hbf2 WHERE p = '' AND sparql.langmatches(sparql.lang(o),'fr') AND sparql.bound(o) AND NOT sparql.bound(x); INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o ?x { ?p ?o OPTIONAL { ?o ?x } ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(LANGMATCHES(LANG(?o), "fr")) FILTER(BOUND(?o)) } INFO: SPARQL returned 1 record. p | o | bound | bound ----------------------------------------------+-------------------------------+-------+------- | "Gare centrale de Leipzig"@fr | t | f (1 row) /* SPARQL 17.4.1.3 - COALESCE */ SELECT p, o, x, sparql.coalesce(x, o, p) FROM hbf2 WHERE p = '' AND sparql.coalesce(x, o) = '"Gare centrale de Leipzig"@fr' AND sparql.coalesce(x, x, o) = '"Gare centrale de Leipzig"@fr' AND sparql.coalesce(x, p) = '' AND sparql.coalesce(x, x, p) = ''; INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o ?x { ?p ?o OPTIONAL { ?o ?x } ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(COALESCE(?x, ?o) = "Gare centrale de Leipzig"@fr) FILTER(COALESCE(?x, ?x, ?o) = "Gare centrale de Leipzig"@fr) FILTER(COALESCE(?x, ?p) = ) FILTER(COALESCE(?x, ?x, ?p) = ) } INFO: SPARQL returned 1 record. p | o | x | coalesce ----------------------------------------------+-------------------------------+---+------------------------------- | "Gare centrale de Leipzig"@fr | | "Gare centrale de Leipzig"@fr (1 row) /* SPARQL 17.4.1.8 - sameTerm */ SELECT p, o, sparql.sameterm(o,'"Gare centrale de Leipzig"@fr') FROM hbf WHERE p = sparql.iri('http://www.w3.org/2000/01/rdf-schema#label') AND sparql.sameterm(o,'"Gare centrale de Leipzig"@fr') AND sparql.sameterm(p,''); INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(SAMETERM(?o, "Gare centrale de Leipzig"@fr)) FILTER(SAMETERM(?p, )) } INFO: SPARQL returned 1 record. p | o | sameterm ----------------------------------------------+-------------------------------+---------- | "Gare centrale de Leipzig"@fr | t (1 row) /* SPARQL 17.4.1.9 - IN */ SELECT p, o FROM hbf WHERE p = sparql.iri('http://www.w3.org/2000/01/rdf-schema#label') AND o IN ('"Gare centrale de Leipzig"@fr'::rdfnode, '"Leipzig Hbf"'); INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(?o IN ("Gare centrale de Leipzig"@fr, "Leipzig Hbf")) } INFO: SPARQL returned 2 records. p | o ----------------------------------------------+------------------------------- | "Leipzig Hbf" | "Gare centrale de Leipzig"@fr (2 rows) /* SPARQL 17.4.1.10 - NOT IN */ SELECT p, o FROM hbf WHERE p = sparql.iri('http://www.w3.org/2000/01/rdf-schema#label') AND o NOT IN ('"foo"@es'::rdfnode, '"Berlin Hbf"', '"bar"^^xsd:string'); INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(?o NOT IN ("foo"@es, "Berlin Hbf", "bar"^^)) } INFO: SPARQL returned 2 records. p | o ----------------------------------------------+------------------------------- | "Leipzig Hbf" | "Gare centrale de Leipzig"@fr (2 rows) /* SPARQL 17.4.2.1 - isIRI */ SELECT p, o, sparql.isIRI(p) FROM hbf WHERE p = '' AND sparql.isIRI(p); INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(isIRI(?p)) } INFO: SPARQL returned 2 records. p | o | isiri ----------------------------------------------+-------------------------------+------- | "Leipzig Hbf" | t | "Gare centrale de Leipzig"@fr | t (2 rows) /* SPARQL 17.4.2.2 - isBlank */ SELECT p, o, sparql.isblank(o) FROM hbf WHERE sparql.isblank(o); INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(ISBLANK(?o)) } INFO: SPARQL returned 0 records. p | o | isblank ---+---+--------- (0 rows) /* SPARQL 17.4.2.3 - isLiteral */ SELECT p, o, sparql.isliteral(o), sparql.isliteral(p) FROM hbf WHERE p = '' AND sparql.isliteral(o) AND NOT sparql.isliteral(p); INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(ISLITERAL(?o)) } INFO: SPARQL returned 2 records. p | o | isliteral | isliteral ----------------------------------------------+-------------------------------+-----------+----------- | "Leipzig Hbf" | t | f | "Gare centrale de Leipzig"@fr | t | f (2 rows) /* SPARQL 17.4.2.4 - isNumeric */ SELECT p, o, sparql.isnumeric(o), sparql.isnumeric(p) FROM hbf WHERE p = '' AND sparql.isnumeric(o) AND NOT sparql.isnumeric(p); INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(ISNUMERIC(?o)) } INFO: SPARQL returned 1 record. p | o | isnumeric | isnumeric -----------------------------------------------+----------------------------------------------------+-----------+----------- | "32586907"^^ | t | f (1 row) /* SPARQL 17.4.2.5 - str */ SELECT p, o, sparql.str(o) FROM hbf WHERE p = '' AND sparql.str(o) = sparql.str('"Gare centrale de Leipzig"@fr'); INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(STR(?o) = "Gare centrale de Leipzig") } INFO: SPARQL returned 1 record. p | o | str ----------------------------------------------+-------------------------------+---------------------------- | "Gare centrale de Leipzig"@fr | "Gare centrale de Leipzig" (1 row) /* SPARQL 17.4.2.6 - lang */ SELECT p, o, sparql.lang(o) FROM hbf WHERE p = '' AND sparql.lang(o) = sparql.lang('"Gare centrale de Leipzig"@fr'); INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(LANG(?o) = "fr") } INFO: SPARQL returned 1 record. p | o | lang ----------------------------------------------+-------------------------------+------ | "Gare centrale de Leipzig"@fr | fr (1 row) /* SPARQL 17.4.2.7 - datatype */ SELECT p, o, sparql.datatype(o) FROM hbf WHERE p = '' AND sparql.datatype(o) = sparql.datatype('"19"^^'); INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(DATATYPE(?o) = ) } INFO: SPARQL returned 1 record. p | o | datatype ---------------------------------------------+----------------------------------------------+---------------------------------------- | "19"^^ | (1 row) /* SPARQL 17.4.2.8 - IRI */ SELECT p, o, sparql.iri(p) FROM hbf WHERE sparql.iri(p) = sparql.iri('http://linkedgeodata.org/ontology/short_name') AND sparql.iri('http://linkedgeodata.org/ontology/short_name') = sparql.iri(p) AND sparql.iri('http://linkedgeodata.org/ontology/short_name') = p AND p = sparql.iri('http://linkedgeodata.org/ontology/short_name'); INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(IRI(?p) = ) FILTER( = IRI(?p)) FILTER( = ?p) FILTER(?p = ) } INFO: SPARQL returned 1 record. p | o | iri ------------------------------------------------+---------------+------------------------------------------------ | "Leipzig Hbf" | (1 row) /* SPARQL 17.4.2.9 - BNODE */ SELECT p, o, sparql.bnode(o) FROM hbf WHERE p = '' AND sparql.isblank(sparql.bnode(o)); INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(ISBLANK(BNODE(?o))) } WARNING: ExecuteSPARQL: request to 'http://linkedgeodata.org/sparql' failed (1) WARNING: ExecuteSPARQL: request to 'http://linkedgeodata.org/sparql' failed (2) WARNING: ExecuteSPARQL: request to 'http://linkedgeodata.org/sparql' failed (3) ERROR: Unable to establish connection to 'http://linkedgeodata.org/sparql' (HTTP status 400) /* SPARQL 17.4.2.10 - STRDT */ SELECT p, o, sparql.strdt(o,'xsd:string') FROM hbf WHERE p = sparql.iri('http://www.w3.org/2000/01/rdf-schema#label') AND sparql.strdt('"Gare centrale de Leipzig"@fr', 'xsd:string') = sparql.strdt(o,'xsd:string') AND sparql.strdt(o,'xsd:string') = sparql.strdt('"Gare centrale de Leipzig"@fr', 'xsd:string') AND sparql.strdt(o,'xsd:string') = '"Gare centrale de Leipzig"^^xsd:string' AND '"Gare centrale de Leipzig"^^xsd:string' = sparql.strdt(o,'xsd:string'); INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER("Gare centrale de Leipzig"^^ = STRDT(?o, )) FILTER(STRDT(?o, ) = "Gare centrale de Leipzig"^^) FILTER(STRDT(?o, ) = "Gare centrale de Leipzig"^^) FILTER("Gare centrale de Leipzig"^^ = STRDT(?o, )) } INFO: SPARQL returned 1 record. p | o | strdt ----------------------------------------------+-------------------------------+----------------------------------------------------------------------- | "Gare centrale de Leipzig"@fr | "Gare centrale de Leipzig"^^ (1 row) /* SPARQL 17.4.2.11 - STRLANG */ SELECT p, o, sparql.strlang(o,'en') FROM hbf WHERE p = sparql.iri('http://www.w3.org/2000/01/rdf-schema#label') AND sparql.strlang(o,'en') = sparql.strlang('"Leipzig Hbf"', 'en') AND sparql.strlang('"Leipzig Hbf"', 'en') = sparql.strlang(o,'en') AND sparql.strlang('"Leipzig Hbf"', 'en') = '"Leipzig Hbf"@en' AND '"Leipzig Hbf"@en' = sparql.strlang('"Leipzig Hbf"', 'en'); INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(STRLANG(?o, "en") = "Leipzig Hbf"@en) FILTER("Leipzig Hbf"@en = STRLANG(?o, "en")) } INFO: SPARQL returned 1 record. p | o | strlang ----------------------------------------------+---------------+------------------ | "Leipzig Hbf" | "Leipzig Hbf"@en (1 row) /* SPARQL 17.4.2.12 - UUID (not pushable) */ SELECT sparql.uuid()::text ~ '^$'; ?column? ---------- t (1 row) /*SPARQL 17.4.2.13 - STRUUID (not pushable) */ SELECT sparql.struuid()::text ~ '^"[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}"$'; ?column? ---------- t (1 row) /* SPARQL 17.4.3.2 - STRLEN */ SELECT p, o, sparql.strlen(o) FROM hbf WHERE p = sparql.iri('http://www.w3.org/2000/01/rdf-schema#label') AND sparql.strlen(o) = sparql.strlen('"Leipzig Hbf"') AND sparql.strlen(o) = 11 AND 11 = sparql.strlen(o); INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(STRLEN(?o) = 11) } INFO: SPARQL returned 1 record. p | o | strlen ----------------------------------------------+---------------+-------- | "Leipzig Hbf" | 11 (1 row) /* SPARQL 17.4.3.3 - SUBSTR */ SELECT p, o, sparql.substr(o, 9, 3) FROM hbf WHERE p = sparql.iri('http://www.w3.org/2000/01/rdf-schema#label') AND sparql.substr(o, 9, 3) = sparql.substr('"Leipzig Hbf"', 9, 3); INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(SUBSTR(?o, 9, 3) = "Hbf") } INFO: SPARQL returned 1 record. p | o | substr ----------------------------------------------+---------------+-------- | "Leipzig Hbf" | "Hbf" (1 row) /* SPARQL 17.4.3.4 - UCASE */ SELECT p, o, sparql.ucase(o) FROM hbf WHERE p = sparql.iri('http://www.w3.org/2000/01/rdf-schema#label') AND sparql.ucase(o) = sparql.ucase('"Gare centrale de Leipzig"@fr') AND sparql.ucase(o) = '"GARE CENTRALE DE LEIPZIG"@fr' AND '"GARE CENTRALE DE LEIPZIG"@fr' = sparql.ucase(o); INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(UCASE(?o) = "GARE CENTRALE DE LEIPZIG"@fr) FILTER(UCASE(?o) = "GARE CENTRALE DE LEIPZIG"@fr) FILTER("GARE CENTRALE DE LEIPZIG"@fr = UCASE(?o)) } INFO: SPARQL returned 1 record. p | o | ucase ----------------------------------------------+-------------------------------+------------------------------- | "Gare centrale de Leipzig"@fr | "GARE CENTRALE DE LEIPZIG"@fr (1 row) /* SPARQL 17.4.3.5 - LCASE */ SELECT p, o, sparql.lcase(o) FROM hbf WHERE p = sparql.iri('http://www.w3.org/2000/01/rdf-schema#label') AND sparql.lcase(o) = sparql.lcase('"Gare centrale de Leipzig"@fr') AND sparql.lcase(o) = '"gare centrale de leipzig"@fr' AND '"gare centrale de leipzig"@fr' = sparql.lcase(o); INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(LCASE(?o) = "gare centrale de leipzig"@fr) FILTER(LCASE(?o) = "gare centrale de leipzig"@fr) FILTER("gare centrale de leipzig"@fr = LCASE(?o)) } INFO: SPARQL returned 1 record. p | o | lcase ----------------------------------------------+-------------------------------+------------------------------- | "Gare centrale de Leipzig"@fr | "gare centrale de leipzig"@fr (1 row) /* SPARQL 17.4.3.6 - STRSTARTS */ SELECT p, o, sparql.strstarts(o, sparql.str('"Gare"@fr')) FROM hbf WHERE p = sparql.iri('http://www.w3.org/2000/01/rdf-schema#label') AND sparql.strstarts(o,'"Gare"'); INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(STRSTARTS(?o, "Gare")) } INFO: SPARQL returned 1 record. p | o | strstarts ----------------------------------------------+-------------------------------+----------- | "Gare centrale de Leipzig"@fr | t (1 row) /* SPARQL 17.4.3.7 - STRENDS */ SELECT p, o, sparql.strends(o, sparql.str('"Leipzig"@fr')) FROM hbf WHERE p = sparql.iri('http://www.w3.org/2000/01/rdf-schema#label') AND sparql.strends(o,'"Leipzig"'); INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(STRENDS(?o, "Leipzig")) } INFO: SPARQL returned 1 record. p | o | strends ----------------------------------------------+-------------------------------+--------- | "Gare centrale de Leipzig"@fr | t (1 row) /* SPARQL 17.4.3.8 - CONTAINS */ SELECT p, o, sparql.contains(o,'"Gare"@fr'), sparql.contains(o,'"Leipzig"^^xsd:string') FROM hbf WHERE p = sparql.iri('http://www.w3.org/2000/01/rdf-schema#label') AND sparql.contains(o,'"Gare"') AND sparql.contains(o,'"Leipzig"'); INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(CONTAINS(?o, "Gare")) FILTER(CONTAINS(?o, "Leipzig")) } INFO: SPARQL returned 1 record. p | o | contains | contains ----------------------------------------------+-------------------------------+----------+---------- | "Gare centrale de Leipzig"@fr | t | t (1 row) /* SPARQL 17.4.3.9 - STRBEFORE */ SELECT p, o, sparql.strbefore(sparql.str(o), '"Leipzig"'), sparql.strbefore(sparql.str(o), '"centrale"') FROM hbf WHERE p = sparql.iri('http://www.w3.org/2000/01/rdf-schema#label') AND sparql.strbefore(sparql.str(o), '"centrale"') = sparql.strbefore(sparql.str('"Gare centrale de Leipzig"@fr'),'"centrale"') AND sparql.strbefore(sparql.str(o), '"centrale"') = '"Gare "' AND '"Gare "' = sparql.strbefore(sparql.str(o), '"centrale"'); INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(STRBEFORE(STR(?o), "centrale") = "Gare ") FILTER(STRBEFORE(STR(?o), "centrale") = "Gare ") FILTER("Gare " = STRBEFORE(STR(?o), "centrale")) } INFO: SPARQL returned 1 record. p | o | strbefore | strbefore ----------------------------------------------+-------------------------------+---------------------+----------- | "Gare centrale de Leipzig"@fr | "Gare centrale de " | "Gare " (1 row) /* SPARQL 17.4.3.10 - STRAFTER */ SELECT p, o, sparql.strafter(sparql.str(o), '"Gare"'), sparql.strafter(sparql.str(o), '"centrale"') FROM hbf WHERE p = sparql.iri('http://www.w3.org/2000/01/rdf-schema#label') AND sparql.strafter(sparql.str(o), '"centrale"') = sparql.strafter(sparql.str('"Gare centrale de Leipzig"@fr'),'"centrale"') AND sparql.strafter(sparql.str(o), '"centrale"') = '" de Leipzig"' AND '" de Leipzig"' = sparql.strafter(sparql.str(o), '"centrale"'); INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(STRAFTER(STR(?o), "centrale") = " de Leipzig") FILTER(STRAFTER(STR(?o), "centrale") = " de Leipzig") FILTER(" de Leipzig" = STRAFTER(STR(?o), "centrale")) } INFO: SPARQL returned 1 record. p | o | strafter | strafter ----------------------------------------------+-------------------------------+------------------------+--------------- | "Gare centrale de Leipzig"@fr | " centrale de Leipzig" | " de Leipzig" (1 row) /* SPARQL 17.4.3.11 - ENCODE_FOR_URI */ SELECT p, o, sparql.encode_for_uri(o) FROM hbf WHERE p = sparql.iri('http://www.w3.org/2000/01/rdf-schema#label') AND sparql.encode_for_uri(o) = sparql.encode_for_uri('"Gare centrale de Leipzig"@fr') AND sparql.encode_for_uri(o) = '"Gare%20centrale%20de%20Leipzig"' AND '"Gare%20centrale%20de%20Leipzig"' = sparql.encode_for_uri(o); INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(ENCODE_FOR_URI(?o) = "Gare%20centrale%20de%20Leipzig") FILTER(ENCODE_FOR_URI(?o) = "Gare%20centrale%20de%20Leipzig") FILTER("Gare%20centrale%20de%20Leipzig" = ENCODE_FOR_URI(?o)) } INFO: SPARQL returned 1 record. p | o | encode_for_uri ----------------------------------------------+-------------------------------+---------------------------------- | "Gare centrale de Leipzig"@fr | "Gare%20centrale%20de%20Leipzig" (1 row) /* 17.4.3.12 - CONCAT */ SELECT p, o, sparql.concat(o,sparql.strlang(' Noir','fr')), sparql.concat(o,sparql.strdt(' Global','xsd:string')) FROM hbf WHERE p = sparql.iri('http://www.w3.org/2000/01/rdf-schema#label') AND sparql.concat(o,'') = sparql.concat('"Gare centrale de"','" Leipzig"@fr') AND sparql.concat('"Gare centrale de"','" Leipzig"@fr') = sparql.concat(o,''); INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(CONCAT(?o, "") = "Gare centrale de Leipzig") FILTER("Gare centrale de Leipzig" = CONCAT(?o, "")) } INFO: SPARQL returned 1 record. p | o | concat | concat ----------------------------------------------+-------------------------------+------------------------------------+----------------------------------- | "Gare centrale de Leipzig"@fr | "Gare centrale de Leipzig Noir"@fr | "Gare centrale de Leipzig Global" (1 row) /* SPARQL 17.4.3.13 - langMatches */ SELECT p, o, sparql.langmatches(sparql.lang(o),'*'), sparql.langmatches(sparql.lang(o),'fr'), sparql.langmatches(sparql.lang(o),'de') FROM hbf WHERE sparql.langmatches(sparql.lang(o),'fr'); INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(LANGMATCHES(LANG(?o), "fr")) } INFO: SPARQL returned 1 record. p | o | langmatches | langmatches | langmatches ----------------------------------------------+-------------------------------+-------------+-------------+------------- | "Gare centrale de Leipzig"@fr | t | t | f (1 row) /* SPARQL 17.4.3.14 - REGEX */ SELECT p, o FROM hbf WHERE p = sparql.iri('http://www.w3.org/2000/01/rdf-schema#label') AND sparql.regex(o, sparql.ucase('leipzig'), 'i') AND sparql.regex(o, '^lEi','i') ; INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(REGEX(?o, "LEIPZIG", "i")) FILTER(REGEX(?o, "^lEi", "i")) } INFO: SPARQL returned 1 record. p | o ----------------------------------------------+--------------- | "Leipzig Hbf" (1 row) /* SPARQL 17.4.3.15 - REPLACE */ SELECT p, o, sparql.replace(o,'Leipzig','Münster'), sparql.replace(o,'"Gare"@fr','') FROM hbf WHERE p = sparql.iri('http://www.w3.org/2000/01/rdf-schema#label') AND sparql.replace(o,'Leipzig','Münster') = sparql.replace(sparql.strlang('Gare centrale de Leipzig','fr'),'Leipzig','Münster') AND sparql.replace(o, 'LEIPZIG', 'Münster','i') = sparql.replace('"Gare centrale de Leipzig"@fr', 'LEIPZIG', 'Münster','i'); INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(REPLACE(?o, "Leipzig", "Münster") = "Gare centrale de Münster") FILTER(REPLACE(?o, "LEIPZIG", "Münster", "i") = "Gare centrale de Münster") } INFO: SPARQL returned 1 record. p | o | replace | replace ----------------------------------------------+-------------------------------+----------------------------+------------------------ | "Gare centrale de Leipzig"@fr | "Gare centrale de Münster" | " centrale de Leipzig" (1 row) /* SPARQL 17.4.4.1 - abs */ SELECT p, o, sparql.abs(o) FROM hbf WHERE p = sparql.iri('http://linkedgeodata.org/ontology/changeset') AND sparql.abs(o) = 32586907 AND sparql.abs(o) > 11111111 AND sparql.abs(o) >= 32586907 AND sparql.abs(o) < 99999999 AND sparql.abs(o) <= 32586907 AND sparql.abs(o) = '"32586907"^^xsd:int'::rdfnode AND sparql.abs(o) > '"11111111"^^xsd:int'::rdfnode AND sparql.abs(o) >= '"32586907"^^xsd:int'::rdfnode AND sparql.abs(o) < '"99999999"^^xsd:int'::rdfnode AND sparql.abs(o) <= '"32586907"^^xsd:int'::rdfnode AND 32586907 = sparql.abs(o) AND '"32586907"^^xsd:int'::rdfnode = sparql.abs(o); INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(ABS(?o) = 32586907) FILTER(ABS(?o) > 11111111) FILTER(ABS(?o) >= 32586907) FILTER(ABS(?o) < 99999999) FILTER(ABS(?o) <= 32586907) FILTER(ABS(?o) = "32586907"^^) FILTER(ABS(?o) > "11111111"^^) FILTER(ABS(?o) >= "32586907"^^) FILTER(ABS(?o) < "99999999"^^) FILTER(ABS(?o) <= "32586907"^^) FILTER(32586907 = ABS(?o)) FILTER("32586907"^^ = ABS(?o)) } INFO: SPARQL returned 1 record. p | o | abs -----------------------------------------------+----------------------------------------------------+---------------------------------------------------- | "32586907"^^ | "32586907"^^ (1 row) /* SPARQL 17.4.4.2 - round */ SELECT p, o, sparql.round(o) FROM hbf WHERE p = sparql.iri('http://www.w3.org/2003/01/geo/wgs84_pos#lat') AND sparql.round(o) = 51 AND sparql.round(o) > 01 AND sparql.round(o) >= 51 AND sparql.round(o) < 99 AND sparql.round(o) <= 51 AND sparql.round(o) = '"51"^^xsd:int'::rdfnode AND sparql.round(o) > '"01"^^xsd:int'::rdfnode AND sparql.round(o) >= '"51"^^xsd:int'::rdfnode AND sparql.round(o) < '"99"^^xsd:int'::rdfnode AND sparql.round(o) <= '"51"^^xsd:int'::rdfnode AND 51 = sparql.round(o) AND '"51"^^xsd:int'::rdfnode = sparql.round(o); INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(ROUND(?o) = 51) FILTER(ROUND(?o) > 1) FILTER(ROUND(?o) >= 51) FILTER(ROUND(?o) < 99) FILTER(ROUND(?o) <= 51) FILTER(ROUND(?o) = "51"^^) FILTER(ROUND(?o) > "01"^^) FILTER(ROUND(?o) >= "51"^^) FILTER(ROUND(?o) < "99"^^) FILTER(ROUND(?o) <= "51"^^) FILTER(51 = ROUND(?o)) FILTER("51"^^ = ROUND(?o)) } INFO: SPARQL returned 1 record. p | o | round -----------------------------------------------+------------------------------------------------------+------------------------------------------------- | "51.3466"^^ | "51"^^ (1 row) /* SPARQL 17.4.4.3 - ceil */ SELECT p, o, sparql.ceil(o) FROM hbf WHERE p = sparql.iri('http://www.w3.org/2003/01/geo/wgs84_pos#lat') AND sparql.ceil(o) = 52 AND sparql.ceil(o) > 01 AND sparql.ceil(o) >= 52 AND sparql.ceil(o) < 99 AND sparql.ceil(o) <= 52 AND sparql.ceil(o) = '"52"^^xsd:int'::rdfnode AND sparql.ceil(o) > '"01"^^xsd:int'::rdfnode AND sparql.ceil(o) >= '"52"^^xsd:int'::rdfnode AND sparql.ceil(o) < '"99"^^xsd:int'::rdfnode AND sparql.ceil(o) <= '"52"^^xsd:int'::rdfnode AND 52 = sparql.ceil(o) AND '"52"^^xsd:int'::rdfnode = sparql.ceil(o); INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(CEIL(?o) = 52) FILTER(CEIL(?o) > 1) FILTER(CEIL(?o) >= 52) FILTER(CEIL(?o) < 99) FILTER(CEIL(?o) <= 52) FILTER(CEIL(?o) = "52"^^) FILTER(CEIL(?o) > "01"^^) FILTER(CEIL(?o) >= "52"^^) FILTER(CEIL(?o) < "99"^^) FILTER(CEIL(?o) <= "52"^^) FILTER(52 = CEIL(?o)) FILTER("52"^^ = CEIL(?o)) } INFO: SPARQL returned 1 record. p | o | ceil -----------------------------------------------+------------------------------------------------------+------------------------------------------------- | "51.3466"^^ | "52"^^ (1 row) /* SPARQL 17.4.4.4 - floor */ SELECT p, o, sparql.floor(o) FROM hbf WHERE p = sparql.iri('http://www.w3.org/2003/01/geo/wgs84_pos#lat') AND sparql.floor(o) = 51 AND sparql.floor(o) > 01 AND sparql.floor(o) >= 51 AND sparql.floor(o) < 99 AND sparql.floor(o) <= 51 AND sparql.floor(o) = '"51"^^xsd:int'::rdfnode AND sparql.floor(o) > '"01"^^xsd:int'::rdfnode AND sparql.floor(o) >= '"51"^^xsd:int'::rdfnode AND sparql.floor(o) < '"99"^^xsd:int'::rdfnode AND sparql.floor(o) <= '"51"^^xsd:int'::rdfnode AND 51 = sparql.floor(o) AND '"51"^^xsd:int'::rdfnode = sparql.floor(o); INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(FLOOR(?o) = 51) FILTER(FLOOR(?o) > 1) FILTER(FLOOR(?o) >= 51) FILTER(FLOOR(?o) < 99) FILTER(FLOOR(?o) <= 51) FILTER(FLOOR(?o) = "51"^^) FILTER(FLOOR(?o) > "01"^^) FILTER(FLOOR(?o) >= "51"^^) FILTER(FLOOR(?o) < "99"^^) FILTER(FLOOR(?o) <= "51"^^) FILTER(51 = FLOOR(?o)) FILTER("51"^^ = FLOOR(?o)) } INFO: SPARQL returned 1 record. p | o | floor -----------------------------------------------+------------------------------------------------------+------------------------------------------------- | "51.3466"^^ | "51"^^ (1 row) /* SPARQL 17.4.4.5 - RAND */ SELECT setseed(0.42); setseed --------- (1 row) SELECT sparql.lex(sparql.rand())::numeric BETWEEN 0.0 AND 1.0, sparql.datatype(sparql.rand()) = ''; ?column? | ?column? ----------+---------- t | t (1 row) /* SPARQL 17.4.5.2 - year*/ SELECT p, o, sparql.year(o) FROM hbf WHERE p = sparql.iri('http://purl.org/dc/terms/modified') AND sparql.year(o) = 2015 AND sparql.year(o) > 1000 AND sparql.year(o) < 9999 AND sparql.year(o) >= 2015 AND sparql.year(o) <= 2015 AND sparql.year(o) = sparql.year('"2015-07-12T20:41:25"^^xsd:dateTime') AND sparql.year(o) > sparql.year('"1000-01-12T20:00:00"^^xsd:dateTime') AND sparql.year(o) < sparql.year('"9999-01-12T20:00:00"^^xsd:dateTime') AND sparql.year(o) >= sparql.year('"2015-07-12T20:41:25"^^xsd:dateTime') AND sparql.year(o) <= sparql.year('"2015-07-12T20:41:25"^^xsd:dateTime'); INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(YEAR(?o) > 1000) FILTER(YEAR(?o) < 9999) FILTER(YEAR(?o) >= 2015) FILTER(YEAR(?o) <= 2015) FILTER(YEAR(?o) > YEAR("1000-01-12T20:00:00"^^)) FILTER(YEAR(?o) < YEAR("9999-01-12T20:00:00"^^)) FILTER(YEAR(?o) >= YEAR("2015-07-12T20:41:25"^^)) FILTER(YEAR(?o) <= YEAR("2015-07-12T20:41:25"^^)) FILTER(YEAR(?o) = 2015) FILTER(YEAR("2015-07-12T20:41:25"^^) = 2015) } INFO: SPARQL returned 1 record. p | o | year -------------------------------------+--------------------------------------------------------------------+------ | "2015-07-12T20:41:25"^^ | 2015 (1 row) /* SPARQL 17.4.5.3 - month */ SELECT p, o, sparql.month(o) FROM hbf WHERE p = sparql.iri('http://purl.org/dc/terms/modified') AND sparql.month(o) = 07 AND sparql.month(o) > 01 AND sparql.month(o) < 12 AND sparql.month(o) >= 07 AND sparql.month(o) <= 07 AND sparql.month(o) = sparql.month('"2015-07-12T20:41:25"^^xsd:dateTime') AND sparql.month(o) > sparql.month('"1000-01-12T20:00:00"^^xsd:dateTime') AND sparql.month(o) < sparql.month('"9999-12-12T20:00:00"^^xsd:dateTime') AND sparql.month(o) >= sparql.month('"2015-07-12T20:41:25"^^xsd:dateTime') AND sparql.month(o) <= sparql.month('"2015-07-12T20:41:25"^^xsd:dateTime'); INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(MONTH(?o) > 1) FILTER(MONTH(?o) < 12) FILTER(MONTH(?o) >= 7) FILTER(MONTH(?o) <= 7) FILTER(MONTH(?o) > MONTH("1000-01-12T20:00:00"^^)) FILTER(MONTH(?o) < MONTH("9999-12-12T20:00:00"^^)) FILTER(MONTH(?o) >= MONTH("2015-07-12T20:41:25"^^)) FILTER(MONTH(?o) <= MONTH("2015-07-12T20:41:25"^^)) FILTER(MONTH(?o) = 7) FILTER(MONTH("2015-07-12T20:41:25"^^) = 7) } INFO: SPARQL returned 1 record. p | o | month -------------------------------------+--------------------------------------------------------------------+------- | "2015-07-12T20:41:25"^^ | 7 (1 row) /* SPARQL 17.4.5.4 - day */ SELECT p, o, sparql.day(o) FROM hbf WHERE p = sparql.iri('http://purl.org/dc/terms/modified') AND sparql.day(o) = 12 AND sparql.day(o) > 01 AND sparql.day(o) < 30 AND sparql.day(o) >= 12 AND sparql.day(o) <= 12 AND sparql.day(o) = sparql.day('"2015-07-12T20:41:25"^^xsd:dateTime') AND sparql.day(o) > sparql.day('"1000-01-01T20:00:00"^^xsd:dateTime') AND sparql.day(o) < sparql.day('"9999-12-30T20:00:00"^^xsd:dateTime') AND sparql.day(o) >= sparql.day('"2015-07-12T20:41:25"^^xsd:dateTime') AND sparql.day(o) <= sparql.day('"2015-07-12T20:41:25"^^xsd:dateTime'); INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(DAY(?o) > 1) FILTER(DAY(?o) < 30) FILTER(DAY(?o) >= 12) FILTER(DAY(?o) <= 12) FILTER(DAY(?o) > DAY("1000-01-01T20:00:00"^^)) FILTER(DAY(?o) < DAY("9999-12-30T20:00:00"^^)) FILTER(DAY(?o) >= DAY("2015-07-12T20:41:25"^^)) FILTER(DAY(?o) <= DAY("2015-07-12T20:41:25"^^)) FILTER(DAY(?o) = 12) FILTER(DAY("2015-07-12T20:41:25"^^) = 12) } INFO: SPARQL returned 1 record. p | o | day -------------------------------------+--------------------------------------------------------------------+----- | "2015-07-12T20:41:25"^^ | 12 (1 row) /* SPARQL 7.4.5.5 - hours */ SELECT p, o, sparql.hours(o) FROM hbf WHERE p = sparql.iri('http://purl.org/dc/terms/modified') AND sparql.hours(o) = 20 AND sparql.hours(o) > 01 AND sparql.hours(o) < 23 AND sparql.hours(o) >= 20 AND sparql.hours(o) <= 20 AND sparql.hours(o) = sparql.hours('"2015-07-12T20:41:25"^^xsd:dateTime') AND sparql.hours(o) > sparql.hours('"1000-01-01T01:00:00"^^xsd:dateTime') AND sparql.hours(o) < sparql.hours('"9999-12-30T23:00:00"^^xsd:dateTime') AND sparql.hours(o) >= sparql.hours('"2015-07-12T20:41:25"^^xsd:dateTime') AND sparql.hours(o) <= sparql.hours('"2015-07-12T20:41:25"^^xsd:dateTime'); INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(HOURS(?o) > 1) FILTER(HOURS(?o) < 23) FILTER(HOURS(?o) >= 20) FILTER(HOURS(?o) <= 20) FILTER(HOURS(?o) > HOURS("1000-01-01T01:00:00"^^)) FILTER(HOURS(?o) < HOURS("9999-12-30T23:00:00"^^)) FILTER(HOURS(?o) >= HOURS("2015-07-12T20:41:25"^^)) FILTER(HOURS(?o) <= HOURS("2015-07-12T20:41:25"^^)) FILTER(HOURS(?o) = 20) FILTER(HOURS("2015-07-12T20:41:25"^^) = 20) } INFO: SPARQL returned 1 record. p | o | hours -------------------------------------+--------------------------------------------------------------------+------- | "2015-07-12T20:41:25"^^ | 20 (1 row) /* SPARQL 17.4.5.6 - minutes */ SELECT p, o, sparql.minutes(o) FROM hbf WHERE p = sparql.iri('http://purl.org/dc/terms/modified') AND sparql.minutes(o) = 41 AND sparql.minutes(o) > 01 AND sparql.minutes(o) < 59 AND sparql.minutes(o) >= 41 AND sparql.minutes(o) <= 41 AND sparql.minutes(o) = sparql.minutes('"2015-07-12T20:41:25"^^xsd:dateTime') AND sparql.minutes(o) > sparql.minutes('"1000-01-01T01:01:00"^^xsd:dateTime') AND sparql.minutes(o) < sparql.minutes('"9999-12-30T23:59:00"^^xsd:dateTime') AND sparql.minutes(o) >= sparql.minutes('"2015-07-12T20:41:25"^^xsd:dateTime') AND sparql.minutes(o) <= sparql.minutes('"2015-07-12T20:41:25"^^xsd:dateTime'); INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(MINUTES(?o) > 1) FILTER(MINUTES(?o) < 59) FILTER(MINUTES(?o) >= 41) FILTER(MINUTES(?o) <= 41) FILTER(MINUTES(?o) > MINUTES("1000-01-01T01:01:00"^^)) FILTER(MINUTES(?o) < MINUTES("9999-12-30T23:59:00"^^)) FILTER(MINUTES(?o) >= MINUTES("2015-07-12T20:41:25"^^)) FILTER(MINUTES(?o) <= MINUTES("2015-07-12T20:41:25"^^)) FILTER(MINUTES(?o) = 41) FILTER(MINUTES("2015-07-12T20:41:25"^^) = 41) } INFO: SPARQL returned 1 record. p | o | minutes -------------------------------------+--------------------------------------------------------------------+--------- | "2015-07-12T20:41:25"^^ | 41 (1 row) /* SPARQL 17.4.5.7 - seconds */ SELECT p, o, sparql.minutes(o) FROM hbf WHERE p = sparql.iri('http://purl.org/dc/terms/modified') AND sparql.seconds(o) = 25 AND sparql.seconds(o) > 01 AND sparql.seconds(o) < 59 AND sparql.seconds(o) >= 25 AND sparql.seconds(o) <= 25 AND sparql.seconds(o) = sparql.seconds('"2015-07-12T20:41:25"^^xsd:dateTime') AND sparql.seconds(o) > sparql.seconds('"1000-01-01T01:01:00"^^xsd:dateTime') AND sparql.seconds(o) < sparql.seconds('"9999-12-30T23:59:59"^^xsd:dateTime') AND sparql.seconds(o) >= sparql.seconds('"2015-07-12T20:41:25"^^xsd:dateTime') AND sparql.seconds(o) <= sparql.seconds('"2015-07-12T20:41:25"^^xsd:dateTime'); INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(SECONDS(?o) > 1) FILTER(SECONDS(?o) < 59) FILTER(SECONDS(?o) >= 25) FILTER(SECONDS(?o) <= 25) FILTER(SECONDS(?o) > SECONDS("1000-01-01T01:01:00"^^)) FILTER(SECONDS(?o) < SECONDS("9999-12-30T23:59:59"^^)) FILTER(SECONDS(?o) >= SECONDS("2015-07-12T20:41:25"^^)) FILTER(SECONDS(?o) <= SECONDS("2015-07-12T20:41:25"^^)) FILTER(SECONDS(?o) = 25) FILTER(SECONDS("2015-07-12T20:41:25"^^) = 25) } INFO: SPARQL returned 1 record. p | o | minutes -------------------------------------+--------------------------------------------------------------------+--------- | "2015-07-12T20:41:25"^^ | 41 (1 row) /* SPARQL 17.4.5.8 - timezone */ SELECT sparql.timezone('"2011-01-10T14:45:13.815-05:00"^^xsd:dateTime'); timezone ------------------------------------------------------------- "-PT5H"^^ (1 row) /* SPARQL 7.4.5.9 - tz */ SELECT sparql.tz('"2011-01-10T14:45:13.815-05:00"^^xsd:dateTime'); tz ---------- "-05:00" (1 row) /* SPARQL 17.4.6.1 - MD5 */ SELECT p, o, sparql.md5(o) FROM hbf WHERE p = sparql.iri('http://www.w3.org/2000/01/rdf-schema#label') AND sparql.md5(o) = sparql.md5('"Leipzig Hbf"'); INFO: SPARQL query sent to 'http://linkedgeodata.org/sparql': SELECT ?p ?o { ?p ?o ## rdf_fdw pushdown conditions ## FILTER(?p = ) FILTER(MD5(?o) = MD5("Leipzig Hbf")) } INFO: SPARQL returned 1 record. p | o | md5 ----------------------------------------------+---------------+------------------------------------ | "Leipzig Hbf" | "0e47f45fa9649af5c788570aa96ca213" (1 row) DROP SERVER linkedgeodata CASCADE; NOTICE: drop cascades to 2 other objects