Finding people to cooperate with. Protocol, not platform. Decentralized. Linked Data. Open Source.
Java JavaScript HTML CSS XSLT Python Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
documentation Update Jul 27, 2018
webofneeds move referenced message update directly to the connection-actions Aug 16, 2018
.gitignore Added generated sparql-matcher files. Jun 1, 2018
LICENSE added license and intellij settings Oct 11, 2012


Finding and cooperating with people. Protocol, not platform. Decentralized. Linked Data. Open Source.

Join the chat at

This software is for people who need something, have something to offer, want to discuss something etc. - in short: who wish to connect with others for some reason.

  1. They publish a posting about it online
  2. They get recommendations on matching postings created by other people
  3. They start chatting with some of the creators of these other postings
  4. Maybe they'll meet. Maybe one will buy from the other. Maybe they will start a company, plant a tree, get married, found a party...

That's it, basically. Try our demo on! And then run your own servers!



The Web of Needs is a decentralized infrastructure that allows people to publish documents on the Web which make it possible to contact each other. The document may contain a description of a product or service required or offered, a description of a problem to be solved with the help of others, an invitation to social activities, or anything else users may think of. Some concrete use cases are described here. On the abstract level of description, the document can be said to represent an interest in or a need for some kind of interaction with others.

Therefore, we refer to this document as a need. Each need has a globally unique identifier and an owner, i.e., a person or other entity that creates and controls it. When need owners want to communicate with each other, a connection object is created for each need involved.

Web of needs is built out of three main components. Owner applications enable users to create and manage their need objects. They can be any type of UI application like web applications or mobile apps for example. Owner applications publish needs as RDF documents to won nodes on the Web. When needs are published on the Web, independent matching services can crawl them (or subscribe for need updates at won nodes) and look for suitable matches. A protocol is in place to inform the won nodes and need owners of possible matches using hint messages. Based on this process need owners can initiate connections to other needs and start communication and other transactions.

Anyone can run any of these components. They can all talk to each other.


A demo deployment of the Web of Needs with a simple owner application, one won node and one matching service can be tested at


If you want to set up your own deployment of Web of Needs components, here you find requirements for getting started:

  • follow the instructions here to set up all the neccessary components of web of needs locally

Further resources

Papers and further Information