Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bergos/ldapp
https://github.com/bergos/ldapp
Last synced: 5 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/bergos/ldapp
- Owner: bergos
- License: other
- Archived: true
- Created: 2014-06-23T13:38:04.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2015-11-21T19:03:03.000Z (almost 9 years ago)
- Last Synced: 2024-09-07T07:59:01.833Z (2 months ago)
- Language: JavaScript
- Size: 570 KB
- Stars: 16
- Watchers: 5
- Forks: 3
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
- awesome-starred - bergos/ldapp - (others)
README
# LDApp
A JavaScript Linked Data stack/stub.
The ISWC 2014 paper [LDApp - A JavaScript Linked Data Stack](http://ceur-ws.org/Vol-1268/paper13.pdf) is a good starting
point to get an overview.## Quick Start Guide
### Install using npm
- install using npm `npm install ldapp`
- change folder `cd node_modules/ldapp`
- start LDApp using npm `npm start` or node `node ldapp.js`### Install from sources
- clone git repository `git clone https://github.com/bergos/ldapp.git`
- change to LDApp folder `cd ldapp`
- install dependencies and run build script using npm `npm install`
- start LDApp using npm `npm start` or node `node ldapp.js`### Install WebID certificate
- import the WebID PKCS12 certificate/key (`data/webid.p12`) in your browser (password `test`)
### URLs
Now you can access the following URLs in your browser.
- WebID profile: `https://localhost:8443/card`
- raw blog data: `https://localhost:8443/blog`
- blog application: `https://localhost:8443/blog.html`RDF graph URLs (the WebID profile and the raw blog data) support content negotiation.
By default `application/ld+json`, `text/html` and `text/turtle` will be accepted.Example: Fetch the profile with curl using WebID authentication:
`curl -v -k -E data/webid.pem -H 'Accept: text/turtle' https://localhost:8443/card`## Advanced Configuration
### Persistence Triplestore
The default configuration of LDApp uses a in memory triplestore implementation.
You can change this with the property `config.store` in `data/config.js`.
There is already a commented example configuration for a SPARQL store.
See the RDF-Ext documentation for other triplestore implementations.## Developer Guide
### Folder Structure
- `data` configuration, initial graph data and cert+key files
- `lib` express modules with Promise API
- `utils` util classes and functions for modules
- `public` static files + HTML5 applications### Blog Example App
LDApp contains a simple blog example built with React, RDF-JSONify and RDF-Ext.
Everything is rendered in the browser.
Only static files are used.#### blog.html
Just a simple Bootstrap HTML template.
The `blog-header` DIV block is used by React to insert the blog name and description.
The `blog-posts` DIV block is used by React to insert the blog posts.#### js/blog.js
The JavaScript file which contains the app itself.
The view and controller logic is implemented in React components.
RDF-JSONify generated/consumed JSON-LD objects are used for the model.#### js/identity.js
Provides a Mozilla Persona like API to access the authentication assertion.
The standard API function `window.navigator.id.get` returns the authentication assertion via callback.
The `window.navigator.id.get.agent` function returns the agent IRI via Promise.