Win $20,000. Help build the future of education. Answer the Call for Code. Learn more


OSLC4JS is a set of related open source projects that support the creation and integration of Open Services for Lifecycle Collaboration (OSLC)-based client and server applications that leverage JavaScript and Node.js capabilities.

The OSLC4JS projects provide Express.js middleware components that can be used to add OSLC and/or LDP services to any Express Web application. Other projects use these services to create OSLC apps that can easily and dynamically adapt to any OSLC domain, extensions to domains, and integrations between domains.

OSLC4JS projects cover the complete end-to-end capabilities required to build, extend, and integrate web apps that exploit OSLC integration capabilities and linked data resources.

OSLC4JS sub-projects

For descriptions of each OSLC4JS sub-project, see the specific GitHub repos:

  • OSLC Client: A simple Node.js asynchronous OSLC client API to facilitate client application development in JavaScript. The intent of this optional API is to provide an alternative to using raw OSLC REST services for those developers who might find this convenient.
  • OSLC Service: An Express middleware component that can be used to provide OSLC services to any Express Web application.
  • OSLC Server: A generic OSLC server implementation using the OSLC Service that can be configured to support any domain. You simply provide the OSLC discovery resources (Service Provider Catalog, Service Provider and Service resources) that describe the services you want along with the domain vocabulary and shape constraints to the server using config files.
  • LDP App: A sample Express Web app that demonstrates how to use the LDP Service. This simple app allows you to make HTTP requests on LDP containers to create, read, update and delete RDF resources. The resources are then displayed in a graph of nodes and edges.
  • LDP Service: An Express middleware component that can be used to provide LDP services to any Express web application. The LDP Service uses MongoDB to persist LDP resources as JSON-LD objects. The LDP Service is also used by the OSLC Service since OSLC builds on LDP.

Why should I contribute

Why contribute to OSLC4JS? Developers will find that it makes it easy to add OSLC capabilities to any Node or Express Web application, including client and server components of that application. It will help you extend and integrate OSLC applications to support end-user scenarios and comprehensive cross-tool governance.

OSLC4JS will also make it easier to support any OSLC domain, domain extensions, or domain integrations through the use of OSLC discovery resources to dynamically configure OSLC services during startup or to incrementally extend the services at runtime.

You’ll also be helping to provide a reference implementation for OASIS OSLC Core 3.0 and Change Management 3.0 in support of the OASIS standardization process, you’ll be demonstrating best practices for using JavaScript, Node.js, and Express.js in building OSLC applications, and you’ll be improving your JavaScript code and skills.

What technology problem will I help solve

OSLC defines a set of REST services that enable loosely coupled integration between applications. See OSLC3 Update: What is it, how is it different, and why is it important? for additional details on OSLC.

For OSLC to deliver its intended value, it must be easy for users to quickly and easily connect resources between OSLC-enabled applications, and for developers to be able to build those client and server applications. These open source projects provide an easy way for developers to create OSLC and Linked Data Platform applications by leveraging JavaScript and the MEAN (MongoDB, Express, AngularJS, Node) stack. Adding OSLC capabilities to a web applications can be as simple as adding and configuring an Express middleware component to your app. This can reduce the time required to enable OSLC access to existing application data sources from months to days.

What business problem will OSLC4JS address

OSLC4JS provides reusable open source modules that can be used as a starting point and extended to support specific tool development and integration needs. You can also minimize the cost of creating, maintaining and integrating OSLC client and server application components. You’re saving time, which means saving money.