Unofficial Draft
Copyright © 2025 the document editors/authors. Text is available under the Creative Commons Attribution 4.0 International Public License; additional terms may apply.
This extension of [YARRRML] applies the semantics specified by the RML extension for [RML-HTTP-REQUEST-ACCESS], describing the access to a web resource (both as source and as target), modelled as a simplified HTTP request with optional authentication.
This section is non-normative.
We assume readers have basic familiarity with [RDF], [RML] and [YARRRML] concepts.
In this document, examples assume the following namespace prefix bindings unless otherwise stated:
| Prefix | Namespace |
|---|---|
rml: |
http://w3id.org/rml/ |
rmle: |
https://w3id.org/imec/rml/ns/extensions# |
htv: |
http://www.w3.org/2011/http# |
ex: |
http://example.org/ |
foaf: |
http://xmlns.com/foaf/0.1/ |
The examples are contained in color-coded boxes. We use the Turtle syntax [Turtle] to write RDF.
As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.
HTTP requests can define the access for a data source or a target in resp. the sources or the targets collections of a [YARRRML] document.
To describe an HTTP request access, [YARRRML] is extended with following keys for the sources and targets collection:
string.collection or sequence of collections.string.
authentications collection.string.
The following values extend the supported values for the key type for data sources and targets:
| Data source type or target type | Value |
|---|---|
| Direct HTTP Request | directhttprequest |
| Linked HTTP Request | linkedhttprequest |
This key's value describes one or more headers, as a collection or sequence of collections. A collection describing one header has following keys:
string.string.If unspecified, the value of the key methodName is by default "GET".
If unspecified, the accept header is by default derived from the reference formulation of the data source, following the table below:
| referenceFormulation | accept |
|---|---|
csv |
text/plain |
jsonpath |
application/json |
xpath |
application/xml |
xquery |
application/xml |
If unspecified, the value of the key methodName is by default PUT.
If unspecified, the content-type header is by default derived from the serialization of the target, following the table below:
| serialization | contentType |
|---|---|
jsonld |
application/ld+json |
n3 |
text/n3 |
ntriples |
application/n-triples |
nquads |
application/n-quads |
turtle |
text/turtle |
trig |
application/trig |
A authentication is defined in the authentications collection in the root of the YARRRML document. Each authentication is added to this collection via a key-value pair. The key has to be unique for every authentication. The key's value is a collection with the keys described below.
string.string.string.
string.
string.
This key's value describes what type of authentication is used, so that the correct way of authenticating be determined. The following values are supported:
| Authentication type | Value |
|---|---|
| CSS Client Credentials Authentication | cssclientcredentials |
In the following example a data source is defined using a direct HTTP request.
The above example can be shortened, counting on the defaults defined in the RML HTTP Request Access specification.
In the following example two targets are defined:
lt_persons using a direct HTTP request and lt_persons_acl uses a linked HTTP request using rel relation acl.
Both targets require authentication, using the same email, password, webId, and oidcIssuer parameters.
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in: