Content Linkage is a semantic and operational linkage between Widgets. Content Linkage module is responsible for various operations of invoking a Linkage Graph which is a semantic relation between widgets, as well as operations that may be performed between Widgets on the Linkage graph. 

Linkage module uses an API for searching Linkage between stored widgets which is partly client-side and partly server-side. The API is being used by CG provided Widgets, and can be used by other developers for their own custom widgets.

Content Linkage is what makes CG more than just a way for setting distinct Widgets. With Content Linkage CG is turning into sphere that extends UX beyond the single case of sharing. Sphere of predicted relations as well as unexpected semantic relations between content units. The Linkage Graph makes CG from merely sharing technique to a soul, a sphere of information - Content Glass Sphere .

Linkage Graph

Linkage graph refer to Widgets that was found to be related by some Linkage Dimension. The Graph (relation) presents a collection of widgets that was found to be related. For widgets with similar tag, or widget of the same Glass or widgets that was created with some association one to another.

The term Linkage Graph refers to the logical collection of related widgets and CG provides various applications in relation with Linkage Graph. For example the ability to move between or the ability to associate related Widgets with an action invoked by some trigger.    

Linkage Dimensions

Linkage dimensions define the types of relations that can be found between widgets. Searching widgets by one of these dimensions produces a Linkage Graph collection.  Here are some possible dimensions:

  1. Linkage by Glass Type: Searching for shared or owned widgets that were set on the same glass type. For example: widgets related with different objects that was created with Object glass. Another example: widgets related with different websites (Web glass).
  2. Linkage by semantic of glass's identifier (Glass Id): it means that semantic rules, such as “similarity” can be applied to find identifiers cross glasses. For example a linkage between a Widget on site “www.contentglass.com” and an Object related widget that was associates with the term “glass”.
  3. Linkage by Widget content: Searching for relation by widget’s content, for example similar finding contents that share the same keywords. For example  a linkage between Widget that holds the text “Financial crisis” and another Image widget with the title: “Personal crisis”
  4. Linkage by Tags: Searching for Widgets that was tagged with the same word.
  5. Linkage by association or proximity: The exact type of association may vary, for example two widgets created by Location Glass that was set close to each other in term of GPS coordinate. Another example: All widgets created on the same date.  
  6. Ungroup: special case for VirtualWidgets that was created by grouping other widgets that shows the subcomponent widgets.
  7. Sphere Pane - Visualizing Linkage Graph

Linkage graph collection is presented to user using the Sphere Pane view. The purpose of this view is presenting list with general details of related widgets. For Sphere pane to appear a search first need to accomplish. And for search to accomplish user (or program)  is required to perform some Linkage graph search operation using one or combination of Linkage Dimensions presented above. The search operation calls two parts of Linkage API:

  1. Local search: search and build Linkage Graph from items stored locally, for example items store on the Pending store that was described by Storage Module chapter.
  2. Remote search: the Server-Side API of Linkage module in order to apply search on remote widgets

The result of search operation is a collection of other Widgets related by one of few Linkage Dimensions. This result is then presented on Sphere Pane. The pane is then used to apply various operations on related widgets.

Linkage Graph Widget Interaction

Widgets in the same Linkage Graph may set to perform some mutual interaction with each other. The interaction is usually managed from within Sphere Pane that presents the related widgets. Here are some examples of possible interactions:

In the examples below Widget-A is the current Widget used as reference for semantic rules of search.  Widget-B is another widget selected from the Linkage Graph collection that was returned by the search.

  1. Data copy: copy data from one widget to another. For example copy the text content from TextEditor widget-A into the text field on TextEditor widget-B. Each widget expose to the API set of copy-able items (read) and past-able items so that copy is more flexible then just coping data between similar widgets, and for similar fields of content.
  2. Data merge: merging data or combining data of two widgets for example merge picture from PictureBox widget-A into PictureBox widget-B and vice versa and get two widgets that show the two pictures side by side. As with copy, each Widget may define a mage-able set of data fields that can be merged so that merge semantic have clear meaning and users are able to selecting the merging semantic.
  3. Data override: replace the content in one widget with the context come from other widget. This operation is usually limited to override data with similar format. For example override the video link in a VideoBoxWidget by video link taken from other widget related by Linkage graph.
  4. Operational Link:  Creating operational link from Widget-A to Widget-B. An operational link may be presented as a button or text link (link in Browser) and by clicking it the user may go from one widget to another. Operational link may also be logical property in the software and Widget application may trigger the link programmatically on some Widget state.
  5. Widgets swap: This operation allows replace the reference widget with other widget from linkage graph. For example if Widget-A was swapped with Widget-B than the conditions used to invoke Widget-B will now be applied to Widget-A. And vice versa.
  6. Tagging: Setting the same tag(s) for selected group of widgets
  7. Semantic Grouping: Logical grouping means that selected group of widgets are applied with some semantic, that is then become subject to linkage graph. In other words, grouping is an operation that generates new “interpretations” in CG Sphere, by making two or more widgets defined as related based on some semantic. Grouping concept is explained below with more details.
  8. Shared action: Setting two or more widgets perform some action together or response to shared trigger in certain way. This is explained below with more details.