Wednesday, October 3, 2012

An Intricate Mechanism.

Clique Space(TM) models collaborations as Cliques.

Cliques are made up of at least two Participants.

One Participant is the Clique's Owner.

Each of the Clique's Participants represents at least one device being used by an individual in the collaboration being modelled by the Clique.

The Clique has a medium which is determined by it's Owner and accepted by all other member Participants.

Each Participant has a mode which appropriately asserts how the member Participant's state conforms to that of the Owner.

The Clique's medium exposes the collaboration's characteristics to Clique Space.

A medium must be described by a flattened Media Profile hierarchy that contains a Media Profile root.

The root Media Profile describes the characteristics of the Clique Space components for a given Participant instance.

A Clique's medium is defined by a subset of the Owner's flattened Media Profile hierarchy.

All other member Participants must be able to describe the Clique's medium through flattening the Media Profile hierarchies of their constituent Connections.

A medium can be translated into a set of Enabling Constraint parameters.

A medium must be completely covered by the Participant's mode.

A mode is a set of Limiting Constraints which are primarily determined by a subset of the Owner's flattened Account Profile hierarchy.

The Clique's root Account Profile encodes the specific values that the Clique Space's data model take for a specific Participant.

Constituent Elements from a member's candidate may offer unspecified values or alternative value "compromises" to the set determined by flattening the nominated Account Profile hierarchies.

Limiting Constraints in an Account Profile flagged as not allowing compromises cannot be replaced by specific Limiting Constraints, whether from any other Element or unassigned.

All member Participants must be able to respond to changes in the Clique's mode which are made by the Owner to remain "in the Clique".

Member Participants leave their Clique.

Owner Participants disband their Clique.

A Clique will automatically disband should all member Participants leave.

The Owner can cede ownership to another member provided this other member accepts the title.

Member Participant candidates are made up of selected Connections and Affiliations, specific extra or compromise Limiting Constraints, and a selected Identity, all of which are used to determine the mode-form of a member Participant if created.

An Owner candidate specifies the same details as a member candidate, but also specifies a Clique's name.

Any Connection and Affiliation nominated in a candidate must have been "activated" against the same nominated Identity of the given candidate.

Any compromise or extra Limiting Constraint may only be specified from one of the nominated Affiliations or Connections, from the nominated Identity, from the Axle, or from one of the medium's Media Profiles.

Any number of extra Limiting Constraints unassigned to any given Element may be nominated in a candidate, and Limiting Constraints of this type are associated with the Participant they are expressed in should the Participant be created.

For any candidate, no more than one unassigned Limiting Constraint may cover an Enabling Constraint's parameter of the Clique's medium.

An unassigned Limiting Constraint must cover an Enabling Constraint's parameter of the Clique's medium.

A member candidate is asked to join an existing Clique, while an Owner candidate is asked to form a new Clique with one or more supplied member candidates.

A Clique Space knows of an indeterminate number of Element types, the first seven of which are:
  1. Axle
  2. Account Profile (node and root)
  3. Media Profile (node and root)
  4. Connection
  5. Affiliation
  6. Identity
  7. Participant
Each Element indicates the Clique Space which is responsible for the Element's administration.

Arrangements around a single Axle of instances from the remaining Elements represent a Client Device.

An instance of a node Media Profile or Connection can return a type which represents the type of device that can connect. Hence the reason why the number of Element types is indeterminate.

Limiting Constraints map to individual parameters of a Media Profile's Enabling Constraints.

One Enabling Constraint's parameter can only be covered by a single Limiting Constraint in any given Element.

A Participant's collection of Limiting Constraints express an individuals acceptance of the Clique's mode.

Zero or more Participants can be created from any Identity.

Every Participant must have an Identity, except where a Participant represents an unconnected device.

An Identity contains multiple Connections, any combination of which might be used in a Participant.

An Identity contains multiple Affiliations, any combination of which might be used in a Participant.

An Identity refers to a single Axle.

The expressed Connections and Affiliations within a single Identity instance are known as an Identity's constituents.

An Identity must contain no constituent with a Limiting Constraint that contradicts that of any other constituent.

A Connection associates an Axle with a node Media Profile.

A Connection contains the component that permits communication with the device in accordance with the associated Media Profile

A Media Profile contains the component that is used to decide whether a Participant using a medium which expresses the Media Profile has sufficient Limiting Constraint affinity to perform some action governed by the Media Profile.

An Affiliation associates an Axle with a node Account Profile.

The Axle associated in a Connection must be the Axle referred to in the Identities through which the Connection has been activated.

The Axle associated in an Affiliation must be the Axle referred to in the Identities through which the Affiliation has been activated.

The Axle represents the individual; a transcendent supervisory presence capable of possessing a device and using the device to participate in collaborations which are modelled as Cliques.

An individual, through a different, or even the same device or devices, may appear as one, two, or more Participants in the same Clique.

A device is something which can obtain a Connection to and exchange information with a Clique Space through an Agent Device.

An Agent Device is a type of device.

An administrator client is another type of device.

The administrator client renders Elements onto its View which have been projected from Agent Devices through which the administrator client has obtained Connections.

The administrator client provides a facility through which Agent Devices and Clique Spaces can be administrated.

The Agent Device is administered through its synaptic map.

A synaptic map is a type of Clique Space. 

Agent Devices engage with other Agent Devices by creating synapses.

Agent Devices disengage with other Agent Devices by destroying synapses.

A synapse opens a channel through which transmitters are sent from one Agent Device to one other Agent Device.

A synapse on one Agent Device is a replication of another Agent Device's synaptic map.

A synapse is another type of Clique Space.

Agent Collaborations' Clique Spaces are Clique Spaces in which collaborative activity between external devices is recorded.

Agent Devices sharing direct membership of the Agent Collaboration are represented as Participants of the Agent Collaboration Clique Space's Clique.

There we go. A good summary. At the very least, a disclosure this detailed renders my technology prior art. I am not saying whether the summary I give is covered by my patent. I assert that this is the intent, but whether or not this is actually the case is not up to me.

Now, I appear still to have some (perhaps many) rather complicated unresolved issues. I am engineering a solution that will allow an Agent Device to transmit instructions to add and remove Elements' components to an administrator client. The administrator client must be capable of rendering "projected" Elements to its View of the Clique Space universe from the Agent Devices through which these transmissions are received. Agent Devices will also use the bulk of this mechanism to transmit components between themselves.

The thing about this whole Clique Space concept is that the data model described above is used to 1. model collaborations going on amongst Agent Devices and other external devices including the administrator client and to 2. determine which Agent Devices and which other external devices including the administrator client are recipients of changes in an Element's state. The Clique Space data model offers a simultaneous solution to the model and the controller pieces of the model-view-controller design pattern.

Point 2 of the above paragraph can be recast in this way: an Agent Device uses the data model to determine which other devices are interested in the state of Elements. This Agent Device will tell these other devices that the state of an Element has changed (an Element's component has been added or removed) if a particular device is registered as possessing an interest in this Element.

So, how is another device's interest in an Element registered in an Agent Device? Implementing the solution to this question is currently (and finally) occupying all my attention. The solution comes in two parts of its own.

In the first part, an administrator client (or any V/PM device) can receive information about the state of any Element from any Agent Device to which an external device is connected; potentially even from Clique Spaces other than the one or more Clique Spaces through which the external device's Connection's are obtained. The ability for the given external V/PM device to receive information about an Element is determined by the Limiting Constraints which are expressed in the serving Agent Device's Clique; a Clique created for any external device which also represents an instance of a Connection - an association between an Axle and a specific Media Profile type - through the given device to a Clique Space for which the Owner of the synaptic map's Clique (known by the engager Participant recorded as the Connection's originator component) transmits Element state.

The second part involves the transmission of element state information between Agent Devices through the Agent Device's Media Profile. The Agent Device's Media Profile exhibits the unique property in that the Participants in an Agent Collaboration's Clique are not transmissible between Agent Devices. An Agent Collaboration's Clique tells a particular Agent Device which other Agent Devices are interested in a particular Element. The fact that Participants in an Agent Collaboration's Clique are not transmissible avoids the possibility of infinite regress.

Participants generated from Connections which come from an Agent Device's Media Profile will appear in the serving Agent Device's Clique of the first part. The other Participant is generated from the external device's Connection. Both Participants of the serving Agent Device's Clique can be transmitted to other Agent Devices and to V/PM devices where constraints permit this transmission.

These questions make up the implementation of some very deep considerations I was entertaining when I conceived this concept. If I can actually implement the mechanisms I describe in the paragraphs above, I think I will have arrived at a proof of concept.