Skip to content
This repository has been archived by the owner on May 10, 2022. It is now read-only.

Latest commit

 

History

History
81 lines (53 loc) · 2.7 KB

README.md

File metadata and controls

81 lines (53 loc) · 2.7 KB

LDApp

A JavaScript Linked Data stack/stub.

The ISWC 2014 paper LDApp - A JavaScript Linked Data Stack 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.