Jane's Table Description


The ease of communication for the actions that are to be applied to information structures is critical to any software development project. Having used many Assemblers, Compilers, and scripting languages I can find no approach that works. I am therefore going to describe my approach. First I will redefine the terms for our programming structures, and second I will define the language to communicate actions on these structures.

Jane's primary objective is to eliminate the need for documentation.  I find that documentation has no real meaning to the actions that are being performed.  The nouns (variable names) used in current technologies do not imply context, nor do the verbs (function names) imply explicit action, which are the main reasons for documentation.  By using common knowledge we can create a technology that needs no documentation.

I looked at Python and R as two of the languages that implement the table structure. They have over 10,000 PDF pages of documentation needed to program their different structures. JavaScript does not have a table structure and requires new programming for each implementation.

If I dissect the table structure I find familiar terms and structures similar to every other structure, therefore I will not create new terminology.

The Cell is the only element type that the Jane system has, It has the same characteristics as an n-dimensional table. The cell is a load on-demand technology. 

Cell: a single named value, referenced by name or number ( a single row, single column Table) Name = 'clif'

1
1  


Row: A set of cells referenced by Name (a single row Table)  A.name = 'clif'

  Name Age Address
1      


Column: A set of cells referenced by Number (a single column Table)  A.1 = 'clif'

Name
1  
2  
3  

 

Table:  a set of rows and columns  A.1.name = 'clif'

  Name Age Address
1      
2      
3      

 

Block: A Row or Column of tables.  A.1.1.name = 'clif'

These five terms will be the ones used by Jane to build every other structure.  The terms Cell, Row, Column, Table, and Block are identical, the only difference is when they are labeled: Every structure has the same capabilities and programming syntax.
Table Matrix Grid Graph
  Name Address
1    
2    
  1 2
1    
2    
  1 2
1    
2    
  January February
Cost    
Quantity    

 

The terms Row and Column are used in a context: When in context of their internal addressing of a Cell the term is explicit, A Row is addressed and labeled by Name, and a Column is addressed and labeled by Number. When reference to the vertical cells they are columns, and the horizontal cells are termed rows.  The actual implementation of a Row and a Column is the same, both can be referenced by name or by number.

I shall use upper case Row and Column as their internal use, and as lower case for the horizontal row, and vertical column

Cell Structure

A Cell has a Name, Index, Offset and Data Type which can be implicit from the container structure or explicit. 

Partitions

Grouping of rows is done as horizontal named partitions, and columns as vertical named partitions. The Row structures are partitioned by cell name, by cell index or by cell content, and the Column structures are partitioned by cell Index or by cell content. A partition is a physical characteristic of a structure.

Selection

Cells can be selected by partition name(s), by a list of row and/or column indexes, offsets, or names, by a row, column, or matrix bitmap, or by a function to select cells by content. 


Dimensions

Each cell can have any number of dimensions. Each dimension can be given a unique name, addressing scheme and characteristics.

A 2-dimension structure might be named a "table" with the vertical elements given a singular name of "Row" and a plural name of "Rows", and the vertical dimension having a singular name of "Column" and a plural name of "Columns";

Cell Characteristics:

  • cell definition
    • singular name
    • plural name
    • label
    • data type
    • data units
    • display style
    • events
    • qualified value
  • physical cell content partitions
    • name
    • function
    • events
  • cell content dimensions
    • singular name (i.e. "Column", "Row", "Record", "Frame","Z",...)
    • plural name (i.e. "Columns","Rows","Records","Frames","Zlist",...)
    • cell addressing from : first, last, center, nth
    • cell addressing index:  0 or 1
    • cells count
    • cells allocated length
    • cells base address
    • cell units scale factor: 1
    • selected cell indexes
    • sorted cell indexes
    • sort key
    • sort function
    • events
    • partitions by cell names
      • cell names
      • events
    • cell definitions
      • name
      • label
      • data type
      • data units
      • display style
      • selected
      • fixed
      • unique
      • events

Access

Accessing the cells in the structure. Each variable is a cell of n-dimensions and can be accessed with or without dimensional references.

Any simple variable can be referenced as a 1 unit n-dimensional table.  A = 1,  A[1] = 1,  A[1,1] = 1, A[1,1,1] = 1;

  • dimension singular name
  • dimension plural name
  • name of partition by cell names
  • name of physical partition
  • cell definition name