Web of Needs
Finding and cooperating with people. Protocol, not platform. Decentralized. Linked Data. Open Source.
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.
- They publish a posting about it online
- They get recommendations on matching postings created by other people
- They start chatting with some of the creators of these other postings
- 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 matchat.org! And then run your own servers!
Overview
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.
As this document or entity is the central and indivisible building block of the system, we refer to it as an atom. Each atom has a globally unique identifier and an owner, i.e., a person or other entity that creates and controls it. When atom owners want to communicate with each other, a connection object is created for each atom involved.
Web of Needs is built out of three main components. Owner applications enable users to create and manage their atom objects. They can be any type of UI application like web applications or mobile apps for example. Owner applications publish atoms as RDF documents to won nodes on the Web. When atoms are published on the Web, independent matching services can crawl them (or subscribe for atom updates at won nodes) and look for suitable matches. A protocol is in place to inform the won nodes and atom owners of possible matches using hint messages. Based on this process atom owners can initiate connections to other atoms and start communication and other transactions.
Anyone can run any of these components. They can all talk to each other.
Demo
A demo deployment of the Web of Needs with a simple owner application, one won node and one matching service can be tested at https://www.matchat.org
Running WoN
There are two ways of running WoN locally:
1. Docker
The "fastest" way to run the WoN locally ist to use the provided Docker container and setup. We recommend this solution if you want to try the WoN locally for the first time to have a quick hands on. For running WoN with Docker locally follow the steps in the WoN with Docker Documentation.
2. Tomcat
The Tomcat solution of running the WoN locally is mainly for development purposes. If you focus on just one aspect in the WoN you can combine the Docker and the Tomcat setup e.g.: Working on the WebApp, you just need to run the WebApp locally on tomcat and the Node and Matcher still with Docker. To do so we recommend Eclipse as IDE and you can find the setup documentation here.
Development
How to write a bot
Basic information about bots is provided here. To write a new bot, we recommend to use the bot skeleton as a template, providing all needed functions for a bot in the WoN.
How to write a matcher
For the development of a matcher we recommend using the Tomcat-setup mentioned above. After having that up and running, you can continue with the following documentation-parts: Basic information about the matcher service is provided here. To integrate a new matcher, or matching algorithm we recommend to use the matcher skeleton, providing all needed functions for a matcher service in the WoN.
How to write a WoN web application
For the development of a won-owner-webapp we recommend using the Tomcat-setup mentioned above. After having that up and running, you can continue with the following documentation-parts: Basic information about a WoN web application is provided here
How to set up a WoN cloud instance
Information coming soon here
Further resources
- Learn how to Run your own WoN services
- Build-instructions and Troubleshooting
- Security architecture
- Linked Data interface
- Matching Service Architecture
- Bot Framework for interacting with WoN nodes programmatically
- Ontologies defined for this project
Papers and further Information
- More detailed description of the Web of Needs can be found here
- Beyond Data: Building a Web of Needs
- The Case for the Web of Needs
- Web of Needs - A New Paradigm for E-Commerce
- Building a Web of Needs