User guide

User guide

Cultures

In Ingendex a culture corresponds closely to Akinity's specification of culture.

Each culture is implemented in Ingendex as a separate sqlite (Gears) database.

The name of the culture in the application user interface is the same as the name of the database file - with the #database suffix stripped off.

Operational culture

There is always exactly one culture operational at a time. This means that any operation performed on the data in the application is only on the operational culture. Other cultures are unaffected by the operation.

Default culture

When using the application the name of the current operational culture is stored in a database. When restarting the application, the last used culture automatically becomes the operational culture.

MyLocal

At the first use of the application, a culture called MyLocal is created in the appropriate Gears Folder. This culture is seeded with a single synythetic cTag having "MyLocal" as its organelle.

New culture

At any time, the user can create a new culture by typing its name in the box provided. The new culture will be seeded with one synythetic cTag, having the culture's name as its organelle. The new culture becomes the operational culture.

It is recommended to create a new culture upon first using the application.

There is no limit to the number of cultures an application instance can support.

Switching cultures

At any time, the application user can switch from one existing culture to another by selecting the desired operational culture from the drop down box.

URI parameters

It is not possible to change the operational culture using a URI parameter.

Whenever transactional parameters are used the ensuing transaction will be against the operational culture. Or, if the application is not yet open, against the default culture.

Porting a culture

Sqlite databases are portable across all Sqlite supported platforms. To move or copy a Ingendex culture into your own instance of the application do the following:

  1. Check that the version of Ingendex which created the culture you want is compatible with your application version
  2. Download the database file containing the culture you want
  3. Open http://ingendex.akinity.info in the device / OS user / browser that you want to port the culture to
  4. Create a new culture with the same name as the database file you downloaded. Switch to a different culture.
  5. Put the downloaded file into the appropriate Gears Folder for your device / OS account / browser. Overwriting the newly created database file. Make sure to preserve the #database suffix.
  6. In the application, switch back to the new culture. It should be a copy of the imported culture, having all the cTags from the source culture.

Note that porting a culture breaks any links to the original. The copy is fully functional, but subsequent changes are not synched between instances of the application.

 

Focus cTag

In Ingendex there is always exactly one cTag at the Focus of the Scope.

Default focus for a culture

The application stores the last used Focus for each culture. Whenever the operational culture is switched, the previously used Focus for that culture becomes the new Focus.

Focus details

The details of the current Focus are displayed in the data fields underneath the Scope.

Switching focus

When the Focus of the Scope is switched, the details of the Focus are changed to the new Focus cTag.

Focus can be switched by either highlighting a different cTag in the Scope or by conducting an operation that involves conception.

Focusing on a cTag

If a cTag is visible in the Scope but not in focus it can be brought into Focus by clicking on any part of it.

Performing an operation

When an operation is performed, the resulting synthetic or meiotic cTag automatically becomes the Focus cTag.

Refreshing the Scope

When the Focus of the Scope is switched the other cTags in the Scope are automatically refreshed to reflect their respective distance and clustering around the new Focus.

The Scope refresh process happens asynchronously. As the background application process discovers more cTags in the culture with sufficient akin to the Focus, they are displayed in the Scope. cTags having greater proximity are usually displayed sooner than the more distant ones.

Distance from Focus

cTags in the Scope are each displayed at a particular distance from the Focus. The distance between the Focus and a cTag in the Scope is based on the mutual entropy between the two cTags. The greater the mutual entropy, the further from the Focus a cTag is displayed.

Clustering in Scope

cTags in the Scope are displayed in radial positions around the Focus. Their clock positions are based on the relative proximity of all in-Scope cTags' to one another. So that cTags which are closer to one another appear clustered in a segment of the Scope. While those cTags which are not highly akin to the rest are displayed at a more distant clock position.

 

The algorithm which achieves this clustering effect is described in detail below.

 

Stored parameters

Ingendex stores previously used application parameters in a database. The next session of the application in the same combination of device / OS user / browser will reuse the last session's saved parameters.

Documentation of all parameters is below.

 

# User? Parameter Name Initial Value Lower Range Upper Range Description
0 No ConcAkinityVers 0.1 0.1 0.1 Version of Akinity applicable to new cTags created by conception
1 No ConcMosBreadth 8 8 8 Breadth of output of method of synthesis
2 No ConcMaxBreadth 15 15 15 Maximum breadth of new cTags created by conception
3 Yes ConcMaxDepth 8 0 15 Maximum Depth of new cTags created by conception
4 Yes ConcDefBreadth 11 ConcMosBreadth ConcMaxBreadth Default Depth of new cTags created by conception
5 Yes ConcDefBindPar Y|X [X, Y, X|Y, Y|X] The parent whose Organelle shall populate the equivalent field in the child
6 Yes ConcMaxInBred 0.95 0 1 Minimum mutual entropy between parents (out-breeding)
7 Yes ScopeMinDist 0.8 0 ScopeMaxDist Minimum entropy from the Focus to be shown in the Scope
8 Yes ScopeMaxDist 1 ScopeMinDist 1 Maximum entropy from the Focus to be shown in the Scope
9 Yes ScopeMaxcTags 30 0 100 Maximum number of cTags to be shown in the Scope
10 Yes ScopeFocusDiam 10 5 50 Number of pixels to represent the diameter of the Focus cTag
11 Yes ScopeMinDiam 15 5 ScopeMaxDiam Smallest number of pixels to represent the diameter of a cTag
12 Yes ScopeMaxDiam 30 ScopeMinDiam 50 Largest number of pixels to represent the diameter of a cTag
13 Yes ScopeAxes 64 16 256 Number of segments in the Scope used for clustering cTags.
14 Yes GearsWorkers 3 1 5 Number of new processes that a process can spawn

 

The first three parameters depend on Akinity Version and are not user-configurable.

ConcAkinityVers

The version of Akinity applicable to new cTags created by conception.

ConcMosBreadth

The breadth of output from method of synthesis

ConcMaxBreadth

The maximum breadth of new cTags created by conception

User-configurable stored parameters

The remaining parameters (below) may be configured either through URI or in the application's user interface.

ConcMaxDepth

The maximum depth of new cTags created by meiosis.

ConcDefBreadth

The breadth of new cTags created by synthesis.

ConcDefBindPar

The meiotic parent whose data populates the equivalent field in the child.

X      X-Parent

Y      X-Parent

X|Y   X-Parent, or Y-Parent if X-Parent is null

Y|X   Y-Parent, or X-Parent if Y-Parent is null

ConcMaxInBred

The minimum distance between co-parents. At less than this distance meiosis is taboo.

ScopeMinDist

The minimum distance from the Focus to any cTag displayed in the Scope.

ScopeMaxDist

The maximum distance from the Focus to any cTag displayed in the Scope.

ScopeMaxcTags

The maximum number of cTags to be displayed in the Scope.

ScopeFocusDiam

The number of pixels to represent the diameter of the Focus cTag.

ScopeMinDiam

The smallest number of pixels to represent the diameter of a cTag.

ScopeMaxDiam

The largest number of pixels to represent the diameter of a cTag.

ScopeAxes

Ingendex uses the most highly selectivity (highest entropy) pos across the entire culture to arrange clustering in the Scope. This parameter sets the number of pos that will be mapped to a Scope Axis.

GearsWorkers

The number of new processes that a process can spawn. A higher number will perform synthesis and meiosis faster, but it will use up more system resources.

 

Actions

The application can perform basic functions: synthesis; meiosis; MateSelect and akin in combination. Such combination of operations is known as an action.

Actions are documented in the table below. The precise meaning of the actions depends on what kind of inputs are used. Which in turn depends on thetype of  interace used. So this action table is described under each interface section.

 

 

# Operations Focus cTag
1 meiosis then MateSelect then meiosis then akin youngest meiotic cTag
2 synthesis then MateSelect then meiosis then akin meiotic cTag
3 akin TrxSource
4 synthesis then meiosis then MateSelect then meiosis then akin youngest meiotic cTag
5 MateSelect then meiosis then akin meiotic cTag
6 synthesis then akin synthetic cTag
7 meiosis then akin meiotic cTag
8 synthesis then meiosis then akin meiotic cTag

 

 

The Action# in the first column is a reference number that will be used elsewhere in this document.

The Focus cTag column specifies what will be at the Focus of the Scope after the action is completed.

 

Interfaces

Ingendex has different ways for the user to initiate operations. These are categorised as Interface types:

User Interface (UI)

User manipulates controls directly in the application

URL (URI) Interface

User issues instructions by clicking on a URI which incorporates application parameters.

Drag-and-drop Interface

User drags data from the application or elsewhere and drops it into the Scope

 

Interface types to action mapping

The table below maps Interface types to actions. The table is described in more detail in the appropriate section for each interface type.

User interface URI interface Drag-and-drop interface action
Button Scope Parameter Parameter Drag Object Drop Object #


TrxSource TrxTarget

1


TrxSource TrxOrganelle Organelle Outer Scope 2


TrxSource
cTag Empty Scope 3


TrxTarget TrxOrganelle

4


TrxTarget   cTag Outer Scope 5


TrxOrganelle
Organelle Empty Scope 6




cTag Focus 7
Organelle Focus

Organelle Focus 8

 

URI interface

http://ingendex.akinity.info accepts zero, one or more parameters to be passed in to the application via the URI. Valid URI parameters include the user-configurable stored parameters and the transactional parameters.

Parameters declared in the URI supercede those stored from the last session. Parameters not delared in the URI are set according to stored values.

URI parameters may subsequently be changed through the user interface.

Parameters may be declared in any order. If a parameter is declared more than once, the first instance of it will be used.

Invalid parameters

Parameter names are case sensitive. If a parameter does not match the specification exactly it is ignored.

URI parameters are parsed in action # sequence. If a parameter's value is not valid with respect to constraints from earlier URI parameters and (undeclared) stored parameters then it is ignored and the stored value is used instead. 

Transactional parameters

In addition to the stored parameters, there are three extra optional URI parameters. These parameters are transactional and are not stored by the application.

Parameter Value
TrxSource URI to a valid cTag in XML format
TrxTarget URI to a valid cTag in XML format
TrxOrganelle Data for input to synthesis


TrxSource

This transactional parameter must contain a URI which points to a document which is a valid XML cTag.

TrxTarget

This transactional parameter must contain a URI which points to a document which is a valid XML cTag.

TrxOrganelle

This transactional parameter must contain data that can be used as input to synthesis.

A transactional parameter may appear zero, one or two times in a URI. Transactional parameters may be used in any of the six combinations specified in the table. Depending on which combination of transactional parameters is declared in the URI, Ingendex will perform the specified operations at start-up of the application. e.g. if TrxTarget and TrxSource are delared then the application will start aby performing Action#1 (meiosis then MateSelect then meiosis then akin).

If two transactional parameters are used, they may appear in either order. If more than two transactional parameters are declared then the Action# selected will be prioritised according to the first matching parameter(s).


URI interface actions

In the operational culture:

Action #1

Do meiosis taking TrxSource and TrxTarget as inputs. Do MateSelect for the resulting meiotic cTag. Do meiosis taking the candidate selected and the last created meiotic cTag as inputs. Display the resulting meiotic cTag in the Focus.

Action #2

Do synthesis taking TrxOrganelle as input. Do MateSelect for the resulting synthetic cTag. Do meiosis taking the candidate selected and synthetic cTag as inputs. Display the resulting meiotic cTag in the Focus.

Action #3

No conception. Find the highly akin cTags in the culture. Display the TrxSource in the Focus with other cTags around it.

Action #4

Do synthesis taking TrxOrganelle as input. Do meiosis taking TrxTarget and synthetic cTag as inputs. Do MateSelect for the resulting meiotic cTag. Do meiosis taking the candidate selected and the last created meiotic cTag as inputs. Display the resulting meiotic cTag in the Focus.

Action #5

Do MateSelect for the specified TrxTarget parameter cTag. Do meiosis taking the candidate selected and TrxTarget as inputs. Display the resulting meiotic cTag in the Focus.

Action #6

Do synthesis taking TrxOrganelle as input. Display the resulting synthetic cTag in the Focus.

Examples


Example1
http://ingendex.akinity.info/?ScopeMinDiam=33&ConcDefBreadth=11&ConcMaxBreadth=12&ScopeMaxDist=0.89000000&ScopeMinDist=0.90000000&ConcDefBreadth=9

sets values for the ConcDefBreadth and ScopeMinDiam parameters. Note:

  • ConcMaxBreadth is not user-configurable, so it will be ignored.
  • ScopeMaxDist is invalid because it is less than ScopeMinDist (which is parsed earler).
  • ScopeMaxDist is ignored and ScopeMinDist=0.90000000 is set, as long as the value of ScopeMinDist does not violate a constraint with respect to stored parameter ScopeMaxDist. ConcDefBreadth=11 because this parameter was declared first.
Example2
http://ingendex.akinity.info/?ScopeMinDiam=33&ConcDefBreadth=11&ConcMaxBreadth=12&TrxOrganelle=this text
&ScopeMaxDist=0.89000000&ScopeMinDist=0.90000000&ConcDefBreadth=9
&TrxTarget=http://example.com/valid_cTag1.xml.cTag&TrxOrganelle=not this text

sets values for the ConcDefBreadth and ScopeMinDiam parameters as before. It also initiates a synthesis, meiosis, MateSelect, meiosis transaction (Action #4).

Note: only the organelle parameter first appearing in the URI ("this text") will be used as input to synthesis.


Drag and Drop interface actions

In the operational culture:

Action #2

Do synthesis taking the dropped text as input. Do MateSelect for the resulting synthetic cTag. Do meiosis taking the candidate selected and synthetic cTag as inputs. Display the resulting meiotic cTag in the Focus.

Action #3

No conception. Find the highly akin cTags in the culture. Display the dropped cTag in the Focus with other cTags around it.

Action #5

Do MateSelect for the dropped cTag. Do meiosis, taking the candidate selected and current Focus as inputs. Display the resulting meiotic cTag in the new Focus.

Action #6

Do synthesis, taking the dropped text as input. Display the resulting synthetic cTag in the Focus.

Action #7

Do MateSelect for the specified dropped cTag. Do meiosis, taking the candidate selected and the Focus as inputs. Display the resulting meiotic cTag in the Focus.

Action #8

Do synthesis, taking the dropped text as input. Display the resulting synthetic cTag in the Focus.

 

User interface actions

In the operational culture:

Action #8

Do synthesis, taking the contents of the text box as input. Display the resulting synthetic cTag in the Focus.