InterLDP is a linked data platform server based on the Linked Data Platform (LDP) 1.0 W3C Recommendation. It uses two core concepts: LDP dataset and Virtual LDP Graph. InterLDP acts as an LDP frontend on top of a SPARQL endpoint which serves LDP resources structured per the structure of an LDP dataset. It can also operates in virtual mode whereby the content of the LDP RDF source (i.e. part of the RDF graph) is generated at query time.
The execution report generated using the LDP Test Suite can be found at http://opensensingcity.emse.fr/interldp/ldp-testsuite-execution-report.html. In summary:
- Only LDP basic containers are supported
- LDP Non-RDF Sources are not supported
- Only GET,HEAD,OPTIONS HTTP requests are supported on LDP RDF Sources
- Paging and sorting are not supported
- Sec. 4.2.1.6 (rel='ldp:constrainedBy'-Link) is fulfilled by pointing to this page.
Link: <https://github.com/noorbakerally/InterLDP>; rel="http://www.w3.org/ns/ldp#constrainedBy"
- InterLDP can hosts several LDPs at the same time and operate in different contexts. The contexts are defined in
config.json
which normally resides in the root directory.config.json
is made up of 3 parts:
- base: which acts as a namespace for all the LDPs to be hosted at the specified base URL
- prefixes: defines a set of prefixes which is used when serializing RDF graph of LDP RDF sources
- contexts: defines a set of contexts where each context is a json object of the form
{"name":"","PLDPDataset": "","VLDPGraph": ""}
.name
specifies the name of the context which must be unique.PLDPDataset
specifies the URL of a SPARQL endpoint of the LDP dataset to be exposed.VLDPGraph
specifies the URL of a SPARQL endpoint which exposes the Virtual Graph for the LDP.
InterLDP is written in python using Flask. The following are main dependencies which needs to be installed:
- RDFLib which is a python library for working with RDF
- SPARQLWrapper which is a wrapper around a SPARQL service
InterLDP can function in debug mode or deploy mode:
- debug mode: use the command
python index.py
to start the server - deploy mode: InterLDP is deployed via an HTTP Server. We provide the configuration for Apache HTTP Server only.
We provide a complete sample of a VirtualHost file:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
<VirtualHost>
ServerName example.com
WSGIDaemonProcess AppContextName user=www-data group=www-data threads=5
WSGIScriptAlias /AppContextName /path/to/start.wsgi`
</VirtualHost>
- Speicher, Steve, John Arwe, and Ashok Malhotra. "Linked data platform 1.0." W3C Recommendation, February 26 (2015). APA (https://www.w3.org/TR/ldp/)