Skip to content

Latest commit

 

History

History
45 lines (28 loc) · 3.02 KB

README.md

File metadata and controls

45 lines (28 loc) · 3.02 KB

RDF Presentation and RDF Presentation Negotiation

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:

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.

What this project contains

This project contains the sources for the RDF Presentation project:

  • rdfp-website contains the sources of the project website at https://w3id.org/rdfp
  • rdfp-jersey-server is an extension of Jersey that eases the development of RESTful services that produce and consume RDF. It hides the RDF Presentation description and RDF Presentation Negotiation parts, and lets the end developer focus on manipulating RDF Graphs as Apache Jena models.

Binaries, sources and documentation for rdfp-jersey-server are available for download at Maven Central. To use it in your Maven project, add the following dependency declaration to your Maven project file ( *.pom file):

<dependency>
    <groupId>com.github.thesmartenergy</groupId>
    <artifactId>rdfp-jersey-server</artifactId>
    <version>${rdfp-jersey.version}</version>
</dependency>

Contact

maxime.lefrancois.86@gmail.com

http://maxime-lefrancois.info/