https://w3id.org/rdfp/mediaType |
|
| http://www.w3.org/2003/06/sw-vocab-status/ns#term_status | testing |
| http://www.w3.org/2000/01/rdf-schema#label | media type |
| http://www.w3.org/2000/01/rdf-schema#isDefinedBy | https://w3id.org/rdfp/ |
| http://www.w3.org/1999/02/22-rdf-syntax-ns#type | http://www.w3.org/2002/07/owl#DatatypeProperty |
| http://www.w3.org/2000/01/rdf-schema#comment | Links a representation to its media type. |
https://mtp.linked.solutions/ |
|
| http://xmlns.com/foaf/0.1/topic | https://mtp.linked.solutions/rdfp |
https://w3id.org/rdfp/describedBy |
|
| http://www.w3.org/2000/01/rdf-schema#range | https://w3id.org/rdfp/GraphDescription |
| http://www.w3.org/2003/06/sw-vocab-status/ns#term_status | testing |
| http://www.w3.org/2000/01/rdf-schema#label | described by |
| http://www.w3.org/2000/01/rdf-schema#domain | https://w3id.org/rdfp/Graph |
| http://www.w3.org/2000/01/rdf-schema#isDefinedBy | https://w3id.org/rdfp/ |
| http://www.w3.org/1999/02/22-rdf-syntax-ns#type | http://www.w3.org/2002/07/owl#ObjectProperty |
| http://www.w3.org/2000/01/rdf-schema#comment | Links a RDF graph to its description. |
https://w3id.org/rdfp/presentationFor |
|
| http://www.w3.org/2000/01/rdf-schema#range | https://w3id.org/rdfp/GraphDescription |
| http://www.w3.org/2003/06/sw-vocab-status/ns#term_status | testing |
| http://www.w3.org/2000/01/rdf-schema#label | presentation for |
| http://www.w3.org/2000/01/rdf-schema#domain | https://w3id.org/rdfp/GraphPresentation |
| http://www.w3.org/2002/07/owl#inverseOf | https://w3id.org/rdfp/presentedBy |
| http://www.w3.org/2000/01/rdf-schema#isDefinedBy | https://w3id.org/rdfp/ |
| http://www.w3.org/1999/02/22-rdf-syntax-ns#type | http://www.w3.org/2002/07/owl#ObjectProperty |
| http://www.w3.org/2000/01/rdf-schema#comment | Links a RDF graph presentation to the description of RDF graphs it may present. |
https://w3id.org/rdfp/GraphValidationRule |
|
| http://www.w3.org/2003/06/sw-vocab-status/ns#term_status | testing |
| http://www.w3.org/2000/01/rdf-schema#label | Graph Validation Rule |
| http://www.w3.org/2000/01/rdf-schema#isDefinedBy | https://w3id.org/rdfp/ |
| http://www.w3.org/1999/02/22-rdf-syntax-ns#type | http://www.w3.org/2002/07/owl#Class |
| http://www.w3.org/2000/01/rdf-schema#comment |
The class of graph validation rules resources.
Such resources may have various representations:
- a RDF Graph representation that contains SHACL instances;
- a ShEx document;
- a SPARQL ASK rule.
For example,
```
|
https://w3id.org/rdfp/validationRule |
|
| http://www.w3.org/2003/06/sw-vocab-status/ns#term_status | testing |
| http://www.w3.org/2000/01/rdf-schema#label | validation rule |
| http://www.w3.org/2000/01/rdf-schema#isDefinedBy | https://w3id.org/rdfp/ |
| http://www.w3.org/1999/02/22-rdf-syntax-ns#type | http://www.w3.org/2002/07/owl#ObjectProperty |
| http://www.w3.org/2000/01/rdf-schema#comment |
Links a graph description (resp. a presentation) to a validation rule against which graphs conforming to this description (resp. representations conforming to this presentation) should validate. Such resources may have various representations.
For example, resource identified by ` |
https://w3id.org/rdfp/loweringRule |
|
| http://www.w3.org/2000/01/rdf-schema#range | https://w3id.org/rdfp/LoweringRule |
| http://www.w3.org/2003/06/sw-vocab-status/ns#term_status | testing |
| http://www.w3.org/2000/01/rdf-schema#label | lowering rule |
| http://www.w3.org/2000/01/rdf-schema#domain | https://w3id.org/rdfp/GraphRepresentation |
| http://www.w3.org/2000/01/rdf-schema#isDefinedBy | https://w3id.org/rdfp/ |
| http://www.w3.org/1999/02/22-rdf-syntax-ns#type | http://www.w3.org/2002/07/owl#ObjectProperty |
| http://www.w3.org/2000/01/rdf-schema#comment | Links a graph description to a resource that enables to lower a RDF Graph to a document. |
https://w3id.org/rdfp/representedBy |
|
| http://www.w3.org/2003/06/sw-vocab-status/ns#term_status | testing |
| http://www.w3.org/2000/01/rdf-schema#label | represented by |
| http://www.w3.org/2000/01/rdf-schema#isDefinedBy | https://w3id.org/rdfp/ |
| http://www.w3.org/1999/02/22-rdf-syntax-ns#type | http://www.w3.org/2002/07/owl#ObjectProperty |
| http://www.w3.org/2000/01/rdf-schema#comment | Links a resource to one of its representations. It is expected that the representation has a media type. |
https://w3id.org/rdfp/RepresentationValidationRule |
|
| http://www.w3.org/2003/06/sw-vocab-status/ns#term_status | testing |
| http://www.w3.org/2000/01/rdf-schema#label | Representation Validation Rule |
| http://www.w3.org/2000/01/rdf-schema#isDefinedBy | https://w3id.org/rdfp/ |
| http://www.w3.org/1999/02/22-rdf-syntax-ns#type | http://www.w3.org/2002/07/owl#Class |
| http://www.w3.org/2000/01/rdf-schema#comment | The class of representation validation rules resources. Such resources may have various representations: - a JSON Schema for JSON representations; - a XML Schema for XML representations; - a XPath query that must retrieve an element to validate. |
https://w3id.org/rdfp/Representation |
|
| http://www.w3.org/2003/06/sw-vocab-status/ns#term_status | testing |
| http://www.w3.org/2000/01/rdf-schema#label | Representation |
| http://www.w3.org/2000/01/rdf-schema#isDefinedBy | https://w3id.org/rdfp/ |
| http://www.w3.org/1999/02/22-rdf-syntax-ns#type | http://www.w3.org/2002/07/owl#Class |
| http://www.w3.org/2000/01/rdf-schema#comment | The class of web representations. A representation is also a resource. |
| http://www.w3.org/2000/01/rdf-schema#subClassOf | https://w3id.org/rdfp/Resource |
https://w3id.org/rdfp/alias |
|
| http://www.w3.org/2003/06/sw-vocab-status/ns#term_status | testing |
| http://www.w3.org/2000/01/rdf-schema#label | alias |
| http://www.w3.org/2000/01/rdf-schema#isDefinedBy | https://w3id.org/rdfp/ |
| http://www.w3.org/1999/02/22-rdf-syntax-ns#type | http://www.w3.org/2002/07/owl#ObjectProperty |
| http://www.w3.org/2000/01/rdf-schema#comment | Links a representation to one of its aliases. According to the Web architecture design principles, there should never be two following rdfp:alias links. |
https://w3id.org/rdfp/liftingRule |
|
| http://www.w3.org/2000/01/rdf-schema#range | https://w3id.org/rdfp/LiftingRule |
| http://www.w3.org/2003/06/sw-vocab-status/ns#term_status | testing |
| http://www.w3.org/2000/01/rdf-schema#label | lifting rule |
| http://www.w3.org/2000/01/rdf-schema#domain | https://w3id.org/rdfp/GraphRepresentation |
| http://www.w3.org/2000/01/rdf-schema#isDefinedBy | https://w3id.org/rdfp/ |
| http://www.w3.org/1999/02/22-rdf-syntax-ns#type | http://www.w3.org/2002/07/owl#ObjectProperty |
| http://www.w3.org/2000/01/rdf-schema#comment | Links a graph presentation to a resource that enables to lift documents to RDF. |
https://w3id.org/rdfp/Resource |
|
| http://www.w3.org/2003/06/sw-vocab-status/ns#term_status | testing |
| http://www.w3.org/2000/01/rdf-schema#label | Resource |
| http://www.w3.org/2000/01/rdf-schema#isDefinedBy | https://w3id.org/rdfp/ |
| http://www.w3.org/1999/02/22-rdf-syntax-ns#type | http://www.w3.org/2002/07/owl#Class |
| http://www.w3.org/2000/01/rdf-schema#comment | The class of web resources, that have one or several representations. |
https://w3id.org/rdfp/GraphPresentation |
|
| http://www.w3.org/2003/06/sw-vocab-status/ns#term_status | testing |
| http://www.w3.org/2000/01/rdf-schema#label | Presentation |
| http://www.w3.org/2000/01/rdf-schema#isDefinedBy | https://w3id.org/rdfp/ |
| http://www.w3.org/1999/02/22-rdf-syntax-ns#type | http://www.w3.org/2002/07/owl#Class |
| http://www.w3.org/2000/01/rdf-schema#comment |
Instances of rdfp:GraphPresentation describe RDF Graph presentations in terms of lifting, lowering, and validation rules.
- lifting rules can be used to generate a RDF graph from a document, using for instance a RML mapping, a XSPARQL rule, or SPARQL-Generate rule;
- lowering rules can be used to generate a document from a RDF graph, using for instance a STTL rule (aka. SPARQL-Template).
- validation rules can be used to validate a document, using for instance a regular expression, a XSD Schema, or a JSON Schema
For example,
https://w3id.org/rdfp/example/graph/xml> a rdfp:GraphPresentation ;
rdfp:mediaType "application/xml" ;
rdfp:liftingRule |
https://w3id.org/rdfp/ |
|
| http://purl.org/dc/terms/description |
## RDF Presentation and RDF Presentation Negotiation
**To cite our work:**
> Maxime Lefrançois _Interopérabilité sémantique libérale pour les services et les objets_, Actes de la 17ème conférence Extraction et Gestion des Connaissances, EGC, Jan 2017, Grenoble, France - ([PDF](http://www.maxime-lefrancois.info/docs/Lefrancois-EGC2017-Interoperabilite.pdf) - [BibTeX](Lefrancois-EGC2017-Interoperabilite.bib))
An RDF graph can be presented in several ways, using different media types. Examples of RDF media types include `application/rdf+xml`, `text/turtle`, `application/json+ld`.
Today, most of the content consumed/produced/published, on the Web is not presented in RDF.
In the Web of Things, HTTP servers and clients would rather exchange lightweight documents, potentially binary.
Currently, most existing RDF Presentations generically apply to any RDF graph, at the cost of being heavy text-based documents.
Yet, lightweight HTTP servers/clients could be better satisfied with consuming/producing/publishing lightweight documents, may its structure be application-specific.
On the other hand, various formalisms have been developed:
- to lift documents to RDF. Examples include [RML mappings](http://rml.io), [XSPARQL](http://xsparql.deri.org/), [SPARQL-Generate](http://w3id.org/sparql-generate/);
- to lower RDF to documents. Examples include [XSPARQL](http://xsparql.deri.org/), [STTL, aka SPARQL-Template](https://ns.inria.fr/sparql-template/);
- to validate RDF graphs. Examples include simple [SPIN](http://spinrdf.org/), [ShEx](http://shexspec.github.io), [SHACL](https://www.w3.org/TR/shacl/).
For a given range of RDF graphs and a specific media types, an RDF Presentation is a combination of lifting, lowering, and validation rules. With these rules, one can coherently interpret a representation as RDF (lift), validate the RDF graph, and generate back the representation from the RDF graph (lower).
While sending any kind of document, potentially lightweight, an HTTP server/client may refer to the specific RDF Presentation that is used. Then, the HTTP client/server can lift the document to RDF, and validate it.
Similarly, while requesting for an RDF graph, an HTTP server/client may inform the client/server what representation it prefers. Then, the client/server can validate the RDF graph, then lower it into a document.
### RDF Presentation description
Following the Linked Data principles, RDF Presentations are given uniform identifiers (URIs), and an RDF description of these presentations can be retrieved at their URI.
The RDFP vocabulary can be used to describe RDF Presentations and the range of RDF graphs they apply to. It can be accessed at this URI: https://w3id.org/rdfp/ using content negotiation (i.e., set HTTP Header field `Accept` to one of the RDF syntaxes media types, or access it directly in [turtle](index.ttl), or in [RDF/XML](index.rdf).
For example, the RDF Presentation identified by https://w3id.org/rdfp/example/graph/xml 303 redirects to https://w3id.org/rdfp/example/description where it is described as follows:
```
@prefix rdfp: |
| http://www.w3.org/2002/07/owl#versionIRI | https://w3id.org/rdfp/rdfp-1.0 |
| http://purl.org/dc/terms/license | https://www.apache.org/licenses/LICENSE-2.0/ |
| http://www.w3.org/1999/02/22-rdf-syntax-ns#type | http://www.w3.org/2002/07/owl#Ontology |
| http://purl.org/vocommons/voaf#Vocabulary | |
| http://www.w3.org/2002/07/owl#versionInfo | v1.0 |
| http://purl.org/dc/terms/title | The RDF Presentation ontology |
| http://purl.org/vocab/vann/preferredNamespaceUri | https://w3id.org/rdfp/ |
| http://purl.org/vocab/vann/preferredNamespacePrefix | rdfp |
| http://purl.org/dc/terms/creator | http://maxime-lefrancois.info/me# |
| http://purl.org/dc/terms/issued | 2016-08-31 |
| http://purl.org/dc/terms/modified | 2016-09-08 |
https://w3id.org/rdfp/Graph |
|
| http://www.w3.org/2003/06/sw-vocab-status/ns#term_status | testing |
| http://www.w3.org/2000/01/rdf-schema#label | Graph |
| http://www.w3.org/2000/01/rdf-schema#isDefinedBy | https://w3id.org/rdfp/ |
| http://www.w3.org/1999/02/22-rdf-syntax-ns#type | http://www.w3.org/2002/07/owl#Class |
| http://www.w3.org/2000/01/rdf-schema#comment |
Instances of rdfp:Graph are RDF graph resources that may have several representations.
For example,
```
|
| http://www.w3.org/2000/01/rdf-schema#subClassOf | https://w3id.org/rdfp/Resource |
https://w3id.org/rdfp/LiftingRule |
|
| http://www.w3.org/2003/06/sw-vocab-status/ns#term_status | testing |
| http://www.w3.org/2000/01/rdf-schema#label | Lifting Rule |
| http://www.w3.org/2000/01/rdf-schema#isDefinedBy | https://w3id.org/rdfp/ |
| http://www.w3.org/1999/02/22-rdf-syntax-ns#type | http://www.w3.org/2002/07/owl#Class |
| http://www.w3.org/2000/01/rdf-schema#comment | The class of rules that enable RDF lifting. Such rules may have various representations, such as a [RML mapping](http://rml.io), a [SPARQL-Generate](https://w3id.org/sparql-generate) or a [XSPARQL query](http://xsparql.deri.org/). |
https://w3id.org/rdfp/GraphDescription |
|
| http://www.w3.org/2003/06/sw-vocab-status/ns#term_status | testing |
| http://www.w3.org/2000/01/rdf-schema#label | Graph Description |
| http://www.w3.org/2000/01/rdf-schema#isDefinedBy | https://w3id.org/rdfp/ |
| http://www.w3.org/1999/02/22-rdf-syntax-ns#type | http://www.w3.org/2002/07/owl#Class |
| http://www.w3.org/2000/01/rdf-schema#comment |
Instances of rdfp:GraphDescription describe RDF Graphs in terms of validation and presentation.
A rdfp:GraphDescription may be linked to one or more validation rules.
A rdfp:GraphDescription may be linked to one or more instances or rdfp:Presentation.
For example,
```
|
https://w3id.org/rdfp/presentedBy |
|
| http://www.w3.org/2000/01/rdf-schema#range | https://w3id.org/rdfp/GraphPresentation |
| http://www.w3.org/2003/06/sw-vocab-status/ns#term_status | testing |
| http://www.w3.org/2000/01/rdf-schema#label | presented by |
| http://www.w3.org/2000/01/rdf-schema#domain | https://w3id.org/rdfp/GraphDescription |
| http://www.w3.org/2000/01/rdf-schema#isDefinedBy | https://w3id.org/rdfp/ |
| http://www.w3.org/1999/02/22-rdf-syntax-ns#type | http://www.w3.org/2002/07/owl#ObjectProperty |
| http://www.w3.org/2000/01/rdf-schema#comment | Links a RDF graph description to one of its presentation means. |
https://mtp.linked.solutions/rdfp |
|
| http://purl.org/dc/terms/source | https://github.com/linked-solutions/prefix.cc-harvest/master |
| http://www.w3.org/1999/02/22-rdf-syntax-ns#type | http://www.w3.org/2002/07/owl#Ontology |
| http://purl.org/vocab/vann/preferredNamespaceUri | https://w3id.org/rdfp/ |
| http://purl.org/vocab/vann/preferredNamespacePrefix | rdfp |
| http://rdfs.org/ns/void#triples | 115 |
https://w3id.org/rdfp/LoweringRule |
|
| http://www.w3.org/2003/06/sw-vocab-status/ns#term_status | testing |
| http://www.w3.org/2000/01/rdf-schema#label | Lowering Rule |
| http://www.w3.org/2000/01/rdf-schema#isDefinedBy | https://w3id.org/rdfp/ |
| http://www.w3.org/1999/02/22-rdf-syntax-ns#type | http://www.w3.org/2002/07/owl#Class |
| http://www.w3.org/2000/01/rdf-schema#comment | The class of rules that enable RDF lowering. Such rules may have various representations, such as a [STTL rule](https://ns.inria.fr/sparql-template/). |