Fabian Salcher
Florian Kleedorfer
Web of Needs Core Ontology
The Web of Needs is a decentralized linked data application infrastructure for mediating cooperation in the broadest sense.
Based on append-only message logs, users (or other agents) publish and manage objects (*Atoms*). The main goal of publishing Atoms is to express interest in cooperation, for example by specifying something that is needed or being offered. However, Atoms can contain arbitrary data and thus be used to build general linked data knowledge graphs.
Atoms can establish *Connections* with other Atoms, if both Atoms' owners agree to it.
Matching services can make suggestions which atoms to connect to. An Atom specifies 'Sockets' indicating the kinds of Connections it is prepared to establish.
2013-12-13
won
Ontology for the Web of Needs data model.
The Node's atoms, in a LDP-pageable container.
atomList
Defines the Atom object's state.
atomState
Identifies another SocketDefinition that is compatible with this one. Connections with other kinds of sockets will not be allowed unless they are explicitly annotated.
compatibleSocketDefinition
Indicates the state in which the Connection object is.
connectionState
Links the Atom object to its connections.
connections
Links an Atom to an RDF graph holding some of its RDF content.
contentGraph
Indicates the socket to connect to by default.
defaultSocket
links a derived data graph to the connection state in which it was derived.
derivedForConnectionState
Defines a property to be 'derived' when the connection is established. The property will be used to derive a triple '[sourceAtom] [property] [targetAtom]'.
derivesAtomProperty
Defines a property to be 'derived' when the connection is established. The property will be used to derive a triple '[targetAtom] [property] [sourceAtom]'.
derivesInverseAtomProperty
Links the Connection object to a container containing connection events (messages).
messageContainer
Indicates that an atom or connection supports the specified socket (=behavior).
socket
Links the socket to its definition. A socket must have exactly one definition.
socketDefinition
Links a Connection to the Atom it belongs to (the source of this Connection)
sourceAtom
Connects an WoN Node object with a description of a WON protocol it supports.
supportsWonProtocolImpl
links a Connection to its remote Atom. The remote Atom is the one holding the targetConnection.
https://w3id.org/won/core
targetAtom
Links a Connection object to its remote counterpart.
targetConnection
Indicates that a remote atom or remote connection supports the specified socket (=behavior) or specifies the remote socket to connect with.
targetSocket
Specification of URI prefixes used by this WoN node.
uriPrefixSpecification
Links an Atom or Connection to their WoN node.
wonNode
The activeMQ topic to subscribe to to be informed when an atom is activated.
atomActivatedTopic
The activeMQ topic to subscribe to to be informed when an atom is created.
atomCreatedTopic
The activeMQ topic to subscribe to to be informed when an atom is deactivated.
atomDeactivatedTopic
The activeMQ topic to subscribe to to be informed when an atom is deleted.
atomDeletedTopic
The activeMQ topic to subscribe to to be informed when an atom is modified.
atomModifiedTopic
Specifies the prefix an atom must have on the node this specification applies to. This specification allows clients to generate new valid new Atom URIs.
atomUriPrefix
Indicates that any incoming CONNECT/OPEN message will be answered with OPEN unless the facet configuration forbids it.
autoOpen
The URI of the activeMQ broker
brokerUri
The number of connections in the container that are in state CLOSED.
closedCount
The number of connections in the container that are in state CONNECTED.
connectedCount
Specifies the prefix a connection must have on the node this specification applies to.
connectionUriPrefix
The activeMQ queue to be used by matchers to send messages to the node.
matcherQueue
Specifies the prefix a message must have on the node to which this specification applies. This specification allows clients to convert between a message URI (prefix 'wm:/') and a dereferencable https URI.
messageUriPrefix
The activeMQ queue to be used by other nodes to send messages to the node.
nodeQueue
The activeMQ queue to be used by owners to send messages to the node.
ownerQueue
The number of connections in the container that are in state REQUEST_RECEIVED.
requestReceivedCount
The number of connections in the container that are in state REQUEST_RECEIVED.
requestSentCount
Defines the maximum number of established connections supported by the socket.
socketCapacity
The number of connections in the container that are in state SUGGESTED.
suggestedCount
An atom is an online entity controlled by a person or organization. Its purpose is to be connected to other such atoms via Connections, so it can be said that it represents the need to interact with others.
It specifies a content - what the atom is about, which may be something that is offered for sale, sought for rental etc.
Atom
An LDP container with all the Atoms stored on the Node.
The container supports LDP paging as described here: https://github.com/researchstudio-sat/webofneeds/blob/master/webofneeds/won-node-webapp/doc/linked-data-paging.md
AtomContainer
The Atom's state.
AtomState
Represents a Connection to between two Atoms. Whenever two Atoms are connected, each Atom creates a dedicated Connection object which encapsulate all information about the connection.
Connection
Container for Connections. The container supports LDP paging as described here: https://github.com/researchstudio-sat/webofneeds/blob/master/webofneeds/won-node-webapp/doc/linked-data-paging.md
ConnectionContainer
A Connection's state.
ConnectionState
Graph of derived data.
DerivedDataGraph
Container for Messages. The container supports LDP paging as described here: https://github.com/researchstudio-sat/webofneeds/blob/master/webofneeds/won-node-webapp/doc/linked-data-paging.md.
MessageContainer
A server storing Atoms and the data associated with them.
Node
An Atom defines how Connections can be established using any number of Socket individuals. Each connection between two Atoms must specify the Socket it is attached to on each side.
Socket
A Socket's definition.
SocketDefinition
Specification of URI prefixes for atoms, events, and connections for a WoN node.
UriPrefixSpecification
The Web of Needs protocol implementation that uses ActiveMQ.
WonOverActiveMq
Superclass for Web of Needs protocol implementations.
WonProtocol
The active state.
Active
The closed state. No Messages are forwarded in this state. Re-opening a connection is possbile.
Closed
The connected state. Messages are forwarded to/from the owner.
Connected
The deleted state. A deleted atom's URI is still remembered and associated with this state so that the WoN node can respond appropriately (410 GONE) when queried.
Deleted
The incative state. Atoms do not communicate in this state. Intended to stop receiving messages for something not currently of interest.
Inactive
Half-open state. The connection has been opened by the remote counterpart but not yet been accepted by the local end.
RequestReceived
Half-open state. The Connection has been requested by the local end but not yet been accepted by the remote counterpart.
RequestSent
Suggested state. The Connection has been created through a Hint Event but not yet been opened by either of the sides.
Suggested
Indicates the state in which the Connection was before the current one.
previousConnectionState