Coder Social home page Coder Social logo

oslc / oslc-service Goto Github PK

View Code? Open in Web Editor NEW
9.0 5.0 4.0 1011 KB

A generic Node.js Express middleware OSLC 3.0 service that can support any domain and can be easily adapted to any applicable data source.

Home Page: http://oslc.github.io/developing-oslc-applications/oslc-open-source-node-projects.html

License: Apache License 2.0

JavaScript 98.68% CSS 0.10% HTML 1.22%
ldp oslc

oslc-service's Introduction

oslc-service

npm Discourse status Gitter

A Node.js module providing Express middleware to create an OSLC 3.0 server. The service uses the ldp-service Express middleware module which provides a database of the user's choosing for persistence, jsonld.js for JSON-LD support, and a few other JavaScript libraries. A sample app using the OSLC middleware service is running at http://oslc-browser.mybluemix.net.

oslc-service supports any OSLC Domain by including the domain vocabulary URIs at open-services.net/ns in the config.json file.

Many thanks to Steve Speicher and Sam Padgett for their valuable contribution to LDP and the LDP middleware upon which this service is built.

Module planning, maintenance and issues can be see at at the oslc-service IBM Bluemix DevOps Services project.

Using oslc-service

  1. Install the required modules

Install Node.js.

Run your database. Below are instructions for using oslc-service with the Apache Jena Fuseki database.

Start Jena. Download apache-jena-fuseki-2.4.1.tar.gz under Apache Jena Fuseki and unzip it.

To run Jena, enter the following code

$ fuseki-server --mem /ldp

/ldp is a datastore that allows the request to access the resources on the db. It can be named in any other way. --mem allows for temporary storage of data for that instant. For the data to permantently store data (and to update data), the following code should be ran.

$ fuseki-server --update --loc=<path to db> /ldp

--update allows the user to update resources, while --loc tells the location of the stored items for persistence.

Install express.js and create a sample express app

$ npm install express -g
$ express --git -e <appDir>
  1. Edit the package.json file to add a dependency on ldp-service

    "dependencies": {"oslc-service": "~0.0.1"},

  2. Edit app.js and add whatever Express middleware you need including ldp-service. ldp-service can be customized to support any type of database (it is currently in production). For setting up ldp-service, we will use ldp-service-jena as an example. ldp-service-jena provides access to its Apache Jena database in case additional middleware needs direct access to the database. ldp-service-jena has not been published to npm yet, so it will need to be access locally.

    var ldpService = require('./ldp-service-jena'); app.use(ldpService()); var db = ldpService.db; // incase further middleware needs access to the database

  3. Configuration defaults can be found in config.json. These may be overridden by variables in the environment, including Bluemix variables if deployed in a Bluemix app.

  4. To start the app, run these commands

    $ npm install $ node app.js

Finally, point your browser to http://localhost:3000/.

To test the oslc-server, we recommend using a browser based REST client that sends requests to http://localhost:3000/. One example is Mozilla Firefox's RESTClient.

License

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

FOSSA Status

oslc-service's People

Contributors

berezovskyi avatar jamsden avatar neil-ibm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

oslc-service's Issues

TODO: UI Preview

Write code to assemble Compact view, write HTML doc, write method to form HTML doc out of the resource.

Implementation should use abstract ldp-service with concrete storage.js implementation

oslc-service/service.js currently uses ldp-service-jena for LDP capabilities. It should use ldp-service, with additional information in env.js to specify which concrete implementation of ldp-service/storage.js to use. Currently ldp-service-jena is a full implementation of ldp-service, not a concrete implementation of ldp-service/storage.js.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.