All Projects → solid → Community Server

solid / Community Server

Community Solid Server: an open and modular implementation of the Solid specifications

Programming Languages

typescript
32286 projects

Projects that are alternatives of or similar to Community Server

Dokieli
💡 dokieli is a clientside editor for decentralised article publishing, annotations and social interactions
Stars: ✭ 582 (+397.44%)
Mutual labels:  linked-data, rdf, solid
Semanticmediawiki
🔗 Semantic MediaWiki turns MediaWiki into a knowledge management platform with query and export capabilities
Stars: ✭ 359 (+206.84%)
Mutual labels:  linked-data, rdf
Rdf
RDF.rb is a pure-Ruby library for working with Resource Description Framework (RDF) data.
Stars: ✭ 353 (+201.71%)
Mutual labels:  linked-data, rdf
Ckanext Dcat
CKAN ♥ DCAT
Stars: ✭ 107 (-8.55%)
Mutual labels:  linked-data, rdf
Etl
LinkedPipes ETL is an RDF based, lightweight ETL tool
Stars: ✭ 88 (-24.79%)
Mutual labels:  linked-data, rdf
jarql
SPARQL for JSON: Turn JSON into RDF using SPARQL syntax
Stars: ✭ 19 (-83.76%)
Mutual labels:  linked-data, rdf
Pyld
JSON-LD processor written in Python
Stars: ✭ 413 (+252.99%)
Mutual labels:  linked-data, rdf
rdf-ldp
A suite of LDP software and middleware for RDF.rb & Rack
Stars: ✭ 14 (-88.03%)
Mutual labels:  linked-data, rdf
Informationmodel
The Information Model of the International Data Spaces implements the IDS reference architecture as an extensible, machine readable and technology independent data model.
Stars: ✭ 27 (-76.92%)
Mutual labels:  linked-data, rdf
Rdf Ext
RDF library for NodeJS and the Browsers
Stars: ✭ 97 (-17.09%)
Mutual labels:  linked-data, rdf
Jsonld.js
A JSON-LD Processor and API implementation in JavaScript
Stars: ✭ 1,212 (+935.9%)
Mutual labels:  linked-data, rdf
Web Client
Generic Linked Data browser and UX component framework. Apache license.
Stars: ✭ 105 (-10.26%)
Mutual labels:  linked-data, rdf
LinkedDataHub
The Knowledge Graph notebook. Apache license.
Stars: ✭ 150 (+28.21%)
Mutual labels:  linked-data, rdf
Tropy
Research photo management
Stars: ✭ 337 (+188.03%)
Mutual labels:  linked-data, rdf
link-redux
Linked Data Rendering for humans with React
Stars: ✭ 28 (-76.07%)
Mutual labels:  linked-data, rdf
Rdflib
RDFLib is a Python library for working with RDF, a simple yet powerful language for representing information.
Stars: ✭ 1,584 (+1253.85%)
Mutual labels:  linked-data, rdf
sparql-micro-service
SPARQL micro-services: A lightweight approach to query Web APIs with SPARQL
Stars: ✭ 22 (-81.2%)
Mutual labels:  linked-data, rdf
awesome-ontology
A curated list of ontology things
Stars: ✭ 73 (-37.61%)
Mutual labels:  linked-data, rdf
Rdf Dereference.js
Dereference any URL for its RDF contents
Stars: ✭ 18 (-84.62%)
Mutual labels:  linked-data, rdf
Hypergraphql
GraphQL interface for querying and serving linked data on the Web.
Stars: ✭ 112 (-4.27%)
Mutual labels:  linked-data, rdf

Community Solid Server

Build Status Coverage Status npm version

An open and modular implementation of the Solid specifications

  • Community Solid Server is open software to provide people with their own Solid Pod.

  • It will give developers an environment to create and test new Solid applications.

  • Its modular architecture allows trying out new ideas on the server side and thereby shape the future of Solid.

Current status

This server is in beta stage, which means you can start using it for developing and testing apps. Your feedback is most welcome as issues on this repository.

However, you can already boot up the server, play around with it, and check how it is made.
The 📗 API documentation and the 📐 architectural diagram can help you find your way.

If you are interested in helping out with the development of this server, be sure to have a look at the 📓 developer notes and 🛠️ good first issues.

Additional recipes for configuring and deploying the server can be found at solid/community-server-recipes.

Running locally

npm ci
npm start

This will start up a server running on port 3000 with a backend storing all data in memory. More configurations with different backends can be found in the config folder.

Interacting with the server

The server supports low-level interaction via HTTP methods, such as GET, PUT, HEAD, ...

Below, we provide several examples on how to interact with the server using curl.

PUT: Creating resources for a given URL

Create a plain text file:

curl -X PUT -H "Content-Type: text/plain" \
  -d "abc" \
  http://localhost:3000/myfile.txt

Create a turtle file:

curl -X PUT -H "Content-Type: text/turtle" \
  -d "<ex:s> <ex:p> <ex:o>." \
  http://localhost:3000/myfile.ttl

POST: Creating resources at a generated URL

Create a plain text file:

curl -X POST -H "Content-Type: text/plain" \
  -d "abc" \
  http://localhost:3000/

Create a turtle file:

curl -X POST -H "Content-Type: text/turtle" \
  -d "<ex:s> <ex:p> <ex:o>." \
  http://localhost:3000/

The response's Location header will contain the URL of the created resource.

GET: Retrieving resources

Retrieve a plain text file:

curl -H "Accept: text/plain" \
  http://localhost:3000/myfile.txt

Retrieve a turtle file:

curl -H "Accept: text/turtle" \
  http://localhost:3000/myfile.ttl

Retrieve a turtle file in a different serialization:

curl -H "Accept: application/ld+json" \
  http://localhost:3000/myfile.ttl

DELETE: Deleting resources

curl -X DELETE http://localhost:3000/myfile.txt

PATCH: Modifying resources

Currently, only patches over RDF resources are supported using SPARQL Update queries without WHERE clause.

curl -X PATCH -H "Content-Type: application/sparql-update" \
  -d "INSERT DATA { <ex:s2> <ex:p2> <ex:o2> }" \
  http://localhost:3000/myfile.ttl

HEAD: Retrieve resources headers

curl -I -H "Accept: text/plain" \
  http://localhost:3000/myfile.txt

OPTIONS: Retrieve resources communication options

curl -X OPTIONS -i http://localhost:3000/myfile.txt

Run using Docker

A Docker image is available to run the containerised Solid Community Server against your filesystem.

Common usage:

  • Build the Docker image
    docker build --rm -f Dockerfile -t css:latest .
    
  • Run the image against your ~/Solid directory on http://localhost:3000
    docker run --rm -v ~/Solid:/data -p 3000:3000 -it css:latest
    
  • Use alternative versions of the built in config. The filestorage is just the default configuration, you can override with any of the configurations included with the server
    docker run --rm -p 3000:3000 -it css:latest -c config/config-default.json
    
    Or override it with your own config mapped to the right directory
    docker run --rm -v ~/solid-config:/config -p 3000:3000 -it css:latest -c /config/my-config.json
    
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].