\pset null '(null)' CREATE SERVER qlever FOREIGN DATA WRAPPER rdf_fdw OPTIONS ( endpoint 'http://qlever:7001/sparql', update_url 'http://qlever:7001/update'); CREATE FOREIGN TABLE ft ( subject rdfnode OPTIONS (variable '?s'), predicate rdfnode OPTIONS (variable '?p'), object rdfnode OPTIONS (variable '?o') ) SERVER qlever OPTIONS ( log_sparql 'true', sparql 'SELECT * WHERE {?s ?p ?o}', sparql_update_pattern '?s ?p ?o .' ); CREATE USER MAPPING FOR postgres SERVER qlever OPTIONS (token 'secret'); INSERT INTO ft (subject, predicate, object) VALUES ('', '', '"Westfälische Wilhelms-Universität Münster"@de'), ('', '', '"University of Münster"@en'), ('', '', '"Univerrrsity of Münsterrr"@en-US'), ('', '', '"Univêrsity of Münsta"@en-GB'), ('', '', '"18:18:42"^^'), ('', '', '"1780-04-16"^^'), ('', '', '"2025-12-24T18:30:42"^^'), ('', '', '"2025-12-24T13:00:42Z"^^'), ('', '', '"51.9636"^^'), ('', '', '"7.6136"^^'), ('', '', '"Johannes Wessels"'), ('', '', ''), ('', '', ''), ('', '', '"Münster"@de'), ('', '', '"Nordrhein-Westfalen"@de'), ('', '', '"Hello 👋 PostgreSQL 🐘"@en'), ('', '', '"unknown literal type"^^'), ('', '', '"explicit string literal"^^'), ('', '', '""'), ('', '', '". <= pontos => ."@pt'), ('', '', '"\n <= salto de línea => \n"@es'), ('', '', '"\" <= double-quotes => \""@en'), ('', '', '"\t <= Tabulatorzeichen => \t"@de'), ('', '', '"1924"^^'), ('', '', '"49098"^^'), ('', '', '"4956"^^'), ('', '', '"803600000"^^'), ('', '', '"1500.00"^^'), ('', '', '"9999999999999999999"^^'), ('', '', '"0.000000000000001"^^'), ('', '', '"2024-02-29"^^'), ('', '', '"true"^^'); INFO: SPARQL query sent to 'qlever': INSERT DATA { "Westfälische Wilhelms-Universität Münster"@de }; INSERT DATA { "University of Münster"@en }; INSERT DATA { "Univerrrsity of Münsterrr"@en-US }; INSERT DATA { "Univêrsity of Münsta"@en-GB }; INSERT DATA { "18:18:42"^^ }; INSERT DATA { "1780-04-16"^^ }; INSERT DATA { "2025-12-24T18:30:42"^^ }; INSERT DATA { "2025-12-24T13:00:42Z"^^ }; INSERT DATA { "51.9636"^^ }; INSERT DATA { "7.6136"^^ }; INSERT DATA { "Johannes Wessels" }; INSERT DATA { }; INSERT DATA { }; INSERT DATA { "Münster"@de }; INSERT DATA { "Nordrhein-Westfalen"@de }; INSERT DATA { "Hello 👋 PostgreSQL 🐘"@en }; INSERT DATA { "unknown literal type"^^ }; INSERT DATA { "explicit string literal"^^ }; INSERT DATA { "" }; INSERT DATA { ". <= pontos => ."@pt }; INSERT DATA { "\n <= salto de línea => \n"@es }; INSERT DATA { "\" <= double-quotes => \""@en }; INSERT DATA { "\t <= Tabulatorzeichen => \t"@de }; INSERT DATA { "1924"^^ }; INSERT DATA { "49098"^^ }; INSERT DATA { "4956"^^ }; INSERT DATA { "803600000"^^ }; INSERT DATA { "1500.00"^^ }; INSERT DATA { "9999999999999999999"^^ }; INSERT DATA { "0.000000000000001"^^ }; INSERT DATA { "2024-02-29"^^ }; INSERT DATA { "true"^^ }; /* IRI description */ SELECT subject, predicate, object FROM sparql.describe('qlever', 'DESCRIBE ') ORDER BY object::text COLLATE "C"; ERROR: unacceptable response format on server "qlever" (HTTP 406) DETAIL: { "exception": "Not a single media type known to this parser was detected in \"application/rdf+xml\". Currently the following media types are supported: application/sparql-results+json, application/sparql-results+xml, application/qlever-results+json, text/tab-separated-values, text/csv, text/turtle, application/n-triples, application/octet-stream, application/qlever-export+octet-stream", "query": "DESCRIBE ", "resultsize": 0, "status": "ERROR", "time": { ... (truncated) HINT: The endpoint does not support the requested format. Check the 'format' option in CREATE SERVER. /* graph pattern description */ SELECT subject, predicate, object FROM sparql.describe('qlever',' PREFIX dbp: DESCRIBE ?s WHERE { ?s dbp:name ?o . }') WHERE subject = '' ORDER BY object::text COLLATE "C"; ERROR: unacceptable response format on server "qlever" (HTTP 406) DETAIL: { "exception": "Not a single media type known to this parser was detected in \"application/rdf+xml\". Currently the following media types are supported: application/sparql-results+json, application/sparql-results+xml, application/qlever-results+json, text/tab-separated-values, text/csv, text/turtle, application/n-triples, application/octet-stream, application/qlever-export+octet-stream", "query": "\n PREFIX dbp: \n DESCRIBE ?s\n WHERE { \n ?s dbp:name ?o .\n }", ... (truncated) HINT: The endpoint does not support the requested format. Check the 'format' option in CREATE SERVER. /* IN clause to filter results */ SELECT subject, predicate, object FROM sparql.describe('qlever', 'DESCRIBE ') WHERE predicate IN ('','') ORDER BY object::text COLLATE "C"; ERROR: unacceptable response format on server "qlever" (HTTP 406) DETAIL: { "exception": "Not a single media type known to this parser was detected in \"application/rdf+xml\". Currently the following media types are supported: application/sparql-results+json, application/sparql-results+xml, application/qlever-results+json, text/tab-separated-values, text/csv, text/turtle, application/n-triples, application/octet-stream, application/qlever-export+octet-stream", "query": "DESCRIBE ", "resultsize": 0, "status": "ERROR", "time": { ... (truncated) HINT: The endpoint does not support the requested format. Check the 'format' option in CREATE SERVER. /* using named prefixes and base URI */ SELECT subject, predicate, object FROM sparql.describe( query =>'describe ', server => 'qlever', base_uri => 'http://test.base.uri/') WHERE predicate = '' ORDER BY object::text COLLATE "C"; ERROR: unacceptable response format on server "qlever" (HTTP 406) DETAIL: { "exception": "Not a single media type known to this parser was detected in \"application/rdf+xml\". Currently the following media types are supported: application/sparql-results+json, application/sparql-results+xml, application/qlever-results+json, text/tab-separated-values, text/csv, text/turtle, application/n-triples, application/octet-stream, application/qlever-export+octet-stream", "query": "describe ", "resultsize": 0, "status": "ERROR", "time... (truncated) HINT: The endpoint does not support the requested format. Check the 'format' option in CREATE SERVER. /* empty server */ SELECT * FROM sparql.describe('', 'DESCRIBE '); ERROR: SERVER cannot be empty /* empty DESCRIBE pattern */ SELECT * FROM sparql.describe('qlever', ''); ERROR: DESCRIBE pattern cannot be empty /* empty SERVER and DESCRIBE pattern */ SELECT * FROM sparql.describe('', ''); ERROR: SERVER cannot be empty /* NULL DESCRIBE pattern */ SELECT * FROM sparql.describe('qlever', NULL); subject | predicate | object ---------+-----------+-------- (0 rows) /* NULL SERVER */ SELECT * FROM sparql.describe(NULL, 'DESCRIBE '); subject | predicate | object ---------+-----------+-------- (0 rows) /* NULL SERVER and DESCRIBE pattern */ SELECT * FROM sparql.describe(NULL, NULL); subject | predicate | object ---------+-----------+-------- (0 rows) /* invalid SERVER */ SELECT * FROM sparql.describe('invalid', 'DESCRIBE '); ERROR: invalid SERVER: invalid SELECT * FROM sparql.describe(' ', 'DESCRIBE '); ERROR: a SERVER cannot contain only whitespace characters /* invalid DESCRIBE pattern */ SELECT * FROM sparql.describe('qlever', 'invalid'); ERROR: invalid DESCRIBE query: invalid SELECT * FROM sparql.describe('qlever', ' '); ERROR: a DESCRIBE pattern cannot contain only whitespace characters SELECT * FROM sparql.describe('qlever', 'DESCRIBE https://www.uni-muenster.de'); -- missing < > ERROR: bad request on server "qlever" (HTTP 400) DETAIL: { "exception": "Invalid SPARQL query: Token \"/\": mismatched input '/' expecting ", "metadata": { "line": 1, "positionInLine": 15, "startIndex": 15, "stopIndex": 15 }, "query": "DESCRIBE https://www.uni-muenster.de", "resultsize": 0, "status": "ERROR", "time": { "computeResult": 0, "total": 0 } } HINT: Check the SPARQL query syntax. /* DESCRIBE pattern with a blank node */ SELECT * FROM sparql.describe('qlever', '_:bnode1'); ERROR: invalid DESCRIBE query: _:bnode1 SELECT * FROM sparql.describe('qlever', 'DESCRIBE _:bnode1'); ERROR: bad request on server "qlever" (HTTP 400) DETAIL: { "exception": "Invalid SPARQL query: Token \"_:bnode1\": mismatched input '_:bnode1' expecting {'*', IRI_REF, PNAME_NS, PNAME_LN, VAR1, VAR2, PREFIX_LANGTAG}", "metadata": { "line": 1, "positionInLine": 9, "startIndex": 9, "stopIndex": 16 }, "query": "DESCRIBE _:bnode1", "resultsize": 0, "status": "ERROR", "time": { "computeResult": 0, "total": 0 } } HINT: Check the SPARQL query syntax. /* malformed entity IRI */ SELECT * FROM sparql.describe('qlever', 'DESCRIBE '); ERROR: unacceptable response format on server "qlever" (HTTP 406) DETAIL: { "exception": "Not a single media type known to this parser was detected in \"application/rdf+xml\". Currently the following media types are supported: application/sparql-results+json, application/sparql-results+xml, application/qlever-results+json, text/tab-separated-values, text/csv, text/turtle, application/n-triples, application/octet-stream, application/qlever-export+octet-stream", "query": "DESCRIBE ", "resultsize": 0, "status": "ERROR", "time": { "co... (truncated) HINT: The endpoint does not support the requested format. Check the 'format' option in CREATE SERVER. /* SELECT query */ SELECT * FROM sparql.describe('qlever', 'SELECT ?s ?p ?o WHERE {?s ?p ?o}'); ERROR: invalid DESCRIBE query: SELECT ?s ?p ?o WHERE {?s ?p ?o} /* cleanup */ DELETE FROM ft; INFO: SPARQL query sent to 'qlever': SELECT ?s ?p ?o {?s ?p ?o} INFO: SPARQL returned 32 records. INFO: SPARQL query sent to 'qlever': DELETE DATA { "true"^^ }; DELETE DATA { "1924"^^ }; DELETE DATA { "4956"^^ }; DELETE DATA { "49098"^^ }; DELETE DATA { "803600000"^^ }; DELETE DATA { "1e-15"^^ }; DELETE DATA { "7.6136"^^ }; DELETE DATA { "51.9636"^^ }; DELETE DATA { "1500.0"^^ }; DELETE DATA { "10000000000000000000.0"^^ }; DELETE DATA { "" }; DELETE DATA { "\t <= Tabulatorzeichen => \t"@de }; DELETE DATA { "\n <= salto de línea => \n"@es }; DELETE DATA { ". <= pontos => ."@pt }; DELETE DATA { "\" <= double-quotes => \""@en }; DELETE DATA { "18:18:42"^^ }; DELETE DATA { "explicit string literal" }; DELETE DATA { "Hello 👋 PostgreSQL 🐘"@en }; DELETE DATA { "Johannes Wessels" }; DELETE DATA { "Münster"@de }; DELETE DATA { "Nordrhein-Westfalen"@de }; DELETE DATA { "Univerrrsity of Münsterrr"@en-US }; DELETE DATA { "Univêrsity of Münsta"@en-GB }; DELETE DATA { "University of Münster"@en }; DELETE DATA { "unknown literal type"^^ }; DELETE DATA { "Westfälische Wilhelms-Universität Münster"@de }; DELETE DATA { }; DELETE DATA { }; DELETE DATA { "1780-04-16"^^ }; DELETE DATA { "2024-02-29"^^ }; DELETE DATA { "2025-12-24T13:00:42Z"^^ }; DELETE DATA { "2025-12-24T18:30:42"^^ }; DROP SERVER qlever CASCADE; NOTICE: drop cascades to 2 other objects DETAIL: drop cascades to foreign table ft drop cascades to user mapping for postgres on server qlever