A python Linked Data Notifications (LDN) receiver
Author: Albert Meroño
Copyright: Albert Meroño, VU University Amsterdam
License: Apache 2 (see license.txt)
pyldn is a lightweight receiver for LDN. This means you can set up an inbox to receive notifications as Linked Data in seconds!
git clone https://github.com/albertmeronyo/pyldn cd pyldn virtualenv . source bin/activate pip install -r requirements.txt
python pyldn.py
Then, from a client you can discover an inbox
curl -I -X GET https://pyldn.amp.ops.labs.vu.nl/ HTTP/1.1 200 OK Link: <https://pyldn.amp.ops.labs.vu.nl:8088/inbox/>;
You can request a list of the notification URLs it contains:
curl -X GET -H'Accept: text/turtle' https://pyldn.amp.ops.labs.vu.nl/inbox/ HTTP/1.1 200 OK @prefix ldp: <https://www.w3.org/ns/ldp#> . @prefix rdf: <https://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix rdfs: <https://www.w3.org/2000/01/rdf-schema#> . @prefix xml: <https://www.w3.org/XML/1998/namespace> . @prefix xsd: <https://www.w3.org/2001/XMLSchema#> . <https://pyldn.amp.ops.labs.vu.nl:8088/inbox/> a ldp:BasicContainer, ldp:Container, ldp:RDFSource, ldp:Resource ; ldp:contains <https://pyldn.amp.ops.labs.vu.nl:8088/inbox/1>, <https://pyldn.amp.ops.labs.vu.nl:8088/inbox/2> .
You can even post new notifications to this inbox! You'll get the URL for your notification in the response headers:
curl -i -X POST -d '<foo> <bar> <foobar> .' -H'Content-Type: text/turtle' https://pyldn.amp.ops.labs.vu.nl/inbox/ HTTP/1.1 201 CREATED Location: https://pyldn.amp.ops.labs.vu.nl:8088/inbox/3
If you want to retrieve the content of your brand new notification:
curl -i -X GET -H'Accept: text/turtle' https://pyldn.amp.ops.labs.vu.nl/inbox/3 HTTP/1.1 200 OK @prefix ns1: <file:https:///home/amp/src/pyldn/> . @prefix rdf: <https://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix rdfs: <https://www.w3.org/2000/01/rdf-schema#> . @prefix xml: <https://www.w3.org/XML/1998/namespace> . @prefix xsd: <https://www.w3.org/2001/XMLSchema#> . ns1:foo ns1:bar ns1:foobar .
See the latest LDN draft for a complete and concise description of all you can do with LDN!
You'll find a sample config.ini file you can customize according to your needs (mostly base path, inbox path, and port).