Observation
Some namespaces that are used in RML configuration files do not dereference. It is therefore not possible to obtain an RDF representation of these vocabularies.
IRI dereference is useful, since this allows vocabularies to be pulled into any standard-compliant environment, using a simple HTTP request.
MWE 1
The following cURL request reproduces the dereference that is performed by TriplyDB, but this should be very similar to how any other standards-conforming linked data client sends such requests:
curl -vL -H 'Accept: application/trig, application/n-quads, application/n-triples;q=0.9, text/turtle;q=0.9, application/x-turtle;q=0.9, text/rdf+n3;q=0.9, application/rdf+xml;q=0.8, text/plain;q=0.8, */*;q=0.7' 'http://semweb.mmlab.be/ns/ql#'
* Trying 193.191.148.200:80...
* Connected to semweb.mmlab.be (193.191.148.200) port 80
> GET /ns/ql HTTP/1.1
> Host: semweb.mmlab.be
> Accept: application/trig, application/n-quads, application/n-triples;q=0.9, text/turtle;q=0.9, application/x-turtle;q=0.9, text/rdf+n3;q=0.9, application/rdf+xml;q=0.8, text/plain;q=0.8, */*;q=0.7
>
< HTTP/1.1 404 Not Found
< Server: nginx/1.14.0 (Ubuntu)
< Date: Sun, 11 Feb 2024 08:55:31 GMT
< Content-Type: text/html; charset=utf-8
< Content-Length: 12
< Connection: keep-alive
< X-Powered-By: Express
< ETag: "703595115"
Notice that the 'ql' vocabulary does not exist.
MWE 2
The following cURL request reproduces the dereference that is performed by TriplyDB, but this should be very similar to how any other standards-conforming linked data client sends such requests:
curl -vL -H 'Accept: application/trig, application/n-quads, application/n-triples;q=0.9, text/turtle;q=0.9, application/x-turtle;q=0.9, text/rdf+n3;q=0.9, application/rdf+xml;q=0.8, text/plain;q=0.8, */*;q=0.7' 'http://www.w3.org/ns/r2rml#' > aap
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Trying [2606:4700::6812:1613]:80...
* Connected to www.w3.org (2606:4700::6812:1613) port 80
> GET /ns/r2rml HTTP/1.1
> Host: www.w3.org
> User-Agent: curl/8.4.0
> Accept: application/trig, application/n-quads, application/n-triples;q=0.9, text/turtle;q=0.9, application/x-turtle;q=0.9, text/rdf+n3;q=0.9, application/rdf+xml;q=0.8, text/plain;q=0.8, */*;q=0.7
>
< HTTP/1.1 301 Moved Permanently
< Date: Sun, 11 Feb 2024 09:05:08 GMT
< Transfer-Encoding: chunked
< Connection: keep-alive
< Cache-Control: max-age=3600
< Expires: Sun, 11 Feb 2024 10:05:08 GMT
< Location: https://www.w3.org/ns/r2rml
< Set-Cookie: __cf_bm=jBbWIn71PDCr7f80XLmWc0dTMUnSLHJwXOt9OWTrpKc-1707642308-1-AetC7y7UHMuoI4vdIMnsELUEU6fAEyQalSKFTSyBD4x4rsb61a8khjk+oPEBlmnXo79h7d6zSAwZdHXwomNgAW4=; path=/; expires=Sun, 11-Feb-24 09:35:08 GMT; domain=.w3.org; HttpOnly; SameSite=None
< Server: cloudflare
< CF-RAY: 853b6da918b40e40-AMS
< alt-svc: h3=":443"; ma=86400
<
* Ignoring the response-body
{ [5 bytes data]
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
* Connection #0 to host www.w3.org left intact
* Clear auth, redirects to port from 80 to 443
* Issue another request to this URL: 'https://www.w3.org/ns/r2rml'
* Trying [2606:4700::6812:1613]:443...
* Connected to www.w3.org (2606:4700::6812:1613) port 443
* schannel: disabled automatic use of client certificate
* ALPN: curl offers http/1.1
* ALPN: server accepted http/1.1
* using HTTP/1.1
> GET /ns/r2rml HTTP/1.1
> Host: www.w3.org
> User-Agent: curl/8.4.0
> Accept: application/trig, application/n-quads, application/n-triples;q=0.9, text/turtle;q=0.9, application/x-turtle;q=0.9, text/rdf+n3;q=0.9, application/rdf+xml;q=0.8, text/plain;q=0.8, */*;q=0.7
>
* schannel: remote party requests renegotiation
* schannel: renegotiating SSL/TLS connection
* schannel: SSL/TLS connection renegotiated
* schannel: failed to decrypt data, need more data
< HTTP/1.1 200 OK
< Date: Sun, 11 Feb 2024 09:05:08 GMT
< Content-Type: text/html; charset=utf-8
< Transfer-Encoding: chunked
< Connection: keep-alive
< content-location: r2rml.html
< vary: negotiate,accept,Accept-Encoding
< tcn: choice
< last-modified: Mon, 17 Sep 2012 15:21:58 GMT
< etag: W/"1818d-4c9e7559fb180;a0-4939a0734f380
< Cache-Control: max-age=21600
< expires: Sun, 11 Feb 2024 15:05:08 GMT
< x-backend: www-mirrors
< x-request-id: 853b6da9bc5d6572
< strict-transport-security: max-age=15552000; includeSubdomains; preload
< content-security-policy: frame-ancestors 'self' https://cms.w3.org/; upgrade-insecure-requests
< CF-Cache-Status: BYPASS
< Set-Cookie: __cf_bm=7cDNNh9LZo1Y8n8aNwGfBd8DVwH3YTA9o5ef8kMnAXs-1707642308-1-ATwrFtMqqk6DhOQy6Oc0oBj4wSERNIUTH6h+x4xfuHHtbtg52f2QT6kkJ8dRknK0TXoyaik1f7/Vg6N87o1hMaE=; path=/; expires=Sun, 11-Feb-24 09:35:08 GMT; domain=.w3.org; HttpOnly; Secure; SameSite=None
< Server: cloudflare
< CF-RAY: 853b6da9bc5d6572-AMS
< alt-svc: h3=":443"; ma=86400
<
{ [11336 bytes data]
100 98701 0 98701 0 0 259k 0 --:--:-- --:--:-- --:--:-- 0
* Connection #1 to host www.w3.org left intact
Notice that the 'rr'/'r2rml' vocabulary exists, but is not available in an RDF serialization format.
MWE 3
curl -vL -H 'Accept: application/trig, application/n-quads, application/n-triples;q=0.9, text/turtle;q=0.9, application/x-turtle;q=0.9, text/rdf+n3;q=0.9, application/rdf+xml;q=0.8, text/plain;q=0.8, */*;q=0.7' 'http://www.w3.org/ns/csvw#' > aap
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Trying [2606:4700::6812:1713]:80...
* Connected to www.w3.org (2606:4700::6812:1713) port 80
> GET /ns/csvw HTTP/1.1
> Host: www.w3.org
> User-Agent: curl/8.4.0
> Accept: application/trig, application/n-quads, application/n-triples;q=0.9, text/turtle;q=0.9, application/x-turtle;q=0.9, text/rdf+n3;q=0.9, application/rdf+xml;q=0.8, text/plain;q=0.8, */*;q=0.7
>
< HTTP/1.1 301 Moved Permanently
< Date: Sun, 11 Feb 2024 09:32:16 GMT
< Transfer-Encoding: chunked
< Connection: keep-alive
< Cache-Control: max-age=3600
< Expires: Sun, 11 Feb 2024 10:32:16 GMT
< Location: https://www.w3.org/ns/csvw
< Set-Cookie: __cf_bm=iOe70axn1ua.4ohv_Y.cH9yRby0WSFMGAjmzgJyrYKU-1707643936-1-AcNjXt1N40OIS6F0aOVweENzSjT8ag0qSDRRNJusBhq5DHAXg0rRJGOInPYLu45zM7SjwJI50Kqq6cuhwZXN2P8=; path=/; expires=Sun, 11-Feb-24 10:02:16 GMT; domain=.w3.org; HttpOnly; SameSite=None
< Server: cloudflare
< CF-RAY: 853b956df9e466f7-AMS
< alt-svc: h3=":443"; ma=86400
<
* Ignoring the response-body
{ [5 bytes data]
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
* Connection #0 to host www.w3.org left intact
* Clear auth, redirects to port from 80 to 443
* Issue another request to this URL: 'https://www.w3.org/ns/csvw'
* Trying [2606:4700::6812:1713]:443...
* Connected to www.w3.org (2606:4700::6812:1713) port 443
* schannel: disabled automatic use of client certificate
* ALPN: curl offers http/1.1
* ALPN: server accepted http/1.1
* using HTTP/1.1
> GET /ns/csvw HTTP/1.1
> Host: www.w3.org
> User-Agent: curl/8.4.0
> Accept: application/trig, application/n-quads, application/n-triples;q=0.9, text/turtle;q=0.9, application/x-turtle;q=0.9, text/rdf+n3;q=0.9, application/rdf+xml;q=0.8, text/plain;q=0.8, */*;q=0.7
>
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* schannel: remote party requests renegotiation
* schannel: renegotiating SSL/TLS connection
* schannel: SSL/TLS connection renegotiated
* schannel: failed to decrypt data, need more data
< HTTP/1.1 200 OK
< Date: Sun, 11 Feb 2024 09:32:17 GMT
< Content-Type: text/html; charset=utf-8
< Transfer-Encoding: chunked
< Connection: keep-alive
< content-location: csvw.html
< vary: negotiate,accept,Accept-Encoding
< tcn: choice
< last-modified: Mon, 08 Oct 2018 10:13:20 GMT
< etag: W/"18ee4-577b4ded6f000;9f-50ab8a8466840
< Cache-Control: max-age=21600
< expires: Sun, 11 Feb 2024 15:32:17 GMT
< x-backend: www-mirrors
< x-request-id: 853b956eaa726621
< strict-transport-security: max-age=15552000; includeSubdomains; preload
< content-security-policy: frame-ancestors 'self' https://cms.w3.org/; upgrade-insecure-requests
< CF-Cache-Status: BYPASS
< Set-Cookie: __cf_bm=WEw9_l4uyxFUnuconnVFa9rHaXt6lr61F5IPvGJKtxg-1707643937-1-AUsPiDkr+ZoFfbXbGRap+pX5GEIGjZcJoC6bNoGr5ornXc+l7FchvMzFwb74Iu1lN0rmoUa9v5Fl9ZY3vGIO/pE=; path=/; expires=Sun, 11-Feb-24 10:02:17 GMT; domain=.w3.org; HttpOnly; Secure; SameSite=None
< Server: cloudflare
< CF-RAY: 853b956eaa726621-AMS
< alt-svc: h3=":443"; ma=86400
<
{ [25027 bytes data]
100 99k 0 99k 0 0 210k 0 --:--:-- --:--:-- --:--:-- 727k
* Connection #1 to host www.w3.org left intact
*
Notice that 'csvw' only exists in HTML (but not in any RDF format).
Expected
All vocabularies that are commonly used in RML configuration files to be available through IRI dereferencing.