Getting a Computer to Understand More Than Words

Somewhere between words and sentences is multi-word terms. Endemes can be used to define words in a way a computer can understand. Multi-word terms is the next step up from using endemes to define words:

Here is the stack:
1. endeme characteristics
2. words
3. multi word terms = concepts
4. phrases
5. sentences
6. paragraphs
7. books, conversations


I Have Discovered Knowledge Representation

I have discovered knowledge representation. Knowledge representation is what I have been calling Level 4 or Ontologies. I just found out that this is the formal name for the area that these occupy. I asked a question on one of the stack exchange sites about correct keywords to look for work being done in information oriented systems and someone there gave me the keyword ‘Knowledge Representation’. Sometimes it takes me a long time to get on the same page with other people.

Knowledge representation is a better name than ‘ontologies’ because it would include other types of knowledge representation than just ontologies. Various other kinds of relationship systems would work in that level also. I always found the term knowledge representation to be a bit off putting. It sounded too high level and too advanced to be included in the sort of business programming that I do.

It does give me an excuse to call my information database system idea a ‘knowledge base’ however and not seem like I am trying to make more out of something than it is since some people are already clued into knowledge representation systems. I will have to change my diagram at the top of this page however.

Knowledge Representation is the higher level information level. I have not wanted to use the word ‘knowledge’ in my work because it sounds too high level, expensive, and impractical for a supervisor to accept. I want to see artificial intelligence grow naturally out of business programming and I suspect that the word ‘knowledge’ will be off-putting to most supervisors.

Words that might be less off-putting than ‘knowledge’ would be ‘relationship’, ‘layout’, and ‘interactive’ which also exist at level 4.

OK, so level 4 is knowledge representation. What then is level 3? Meaning representation?

User Interfaces at The Fourth Level

At the fourth level we have

  • layout and
  • relationships and
  • what the user wants to see and
  • how they want to see it
  • user specification of information collation formulas
  • meta information about formulas, functions, menus, and layouts
  • workflows and workflow modification

User Interfaces at the Second Level

you’ve seen those fixed L2 (OO) UI’s:

  • there is one menu structure
  • you can’t search for functionality
  • the pages are all specified with hard coded layouts
  • the information shown is calculated according to pre-existing formulas
  • data entry screens, we keep building data entry screens
  • fixed workflows

Comparing Level 2 and Level 4

OO systems are fixed, L4 system are flexible.

What if you replaced some object oriented structures with ontologies? The problem is that you then have to reinvent OO at level 4. This does not make sense. Object Orientation is the optimal solution for user interfaces.

But you still need to have level 4 characteristics for really flexible, useful, friendly user interfaces. So we will need to build systems that create a hybrid of user interfaces hybridizing L4 and L2. The user can specify L4 characteristics to be implemented automatically by level 3 and hybridized with level 2.

I don’t know how to do this. Maybe some version of the MVP pattern will work.

User Interface Layouts and the Ontologies Level

UI layout is a combination of 2D, graphs and hierarchies and is best handled at the ontologies level. UI layout includes both hierarchy relationships, graph relationships and 2D positioning. Each level has a native organizational paradigm. For example the RDB level has relations. The object oriented level has hierarchies of classes, and the Endemes level has lists (and perhaps more, this is still being researched). The knowledge representation /  ontologies level focuses on handling all kinds of relationships. Its native organization paradigm is probably the graph, but I see it as being the managing level for all other relationships.

For example, to efficiently, productively and beneficially do dynamic SQL generation in the OO layer, you need to have information about what each table, column, and relationship are and what these relationships all mean. This means one of the information levels. The endemes level does not seem to tend in this direction, so I proposed that these relationships be managed at the ontologies level. As ontologies are all about relationships, it makes sense that handling various kinds of relationships would dwell best at that level. Not just graphs.

Once you start using the ontologies level for UI management, then you can start including arrows in your UI’s much more frequently. In this way diagrams go from being very difficult to display and represent to manageably easy. Much of the time a diagram is the best way to represent some information. using the ontologies level for UI allows that.

Handling the way various components in a UI relate to each other is a form of information. This information is usually hard coded in a user interface layout and code. This means that users that want to see things differently can’t. This means that reorganizing a UI layout is done in code. The ontologies layer can move this into data and allow these sorts of changes to be handled by data.


So the best level for handling the complexities of the hybrid hierarchy and graph nature of user interfaces would best be handled at the level that handles relationships best – the ontologies level.


Here are some common organization paradigms and their native levels:

  • graph [ontologies level] – A -> B [is a]
  • subclass [ontologies level] – A .. B [inherits from]  information ‘subclassing’ through information parameters and implementation
  • hierarchy [object oriented level] – A: -B  [has a]          information ‘grouping’ through some generic structure
  • list [endemes level] – A – B  [after a]        lists orderable by information
  • Relations [RDB level] – A -< B [relates to a]   table/column is addressable and characterizable, and business-rule-able


This Stack

It is possible to build artificial intelligence, a computer program that is in some sense alive. To do this we will need the combined work of hundreds of thousands to millions of programmers and thousands of companies.

The way I see computer science is that it is a stack of layers, one built upon he one below.

Level 1

The first layer is relational database. This provides a foundation of high performance and data persistence.

Level 2

The second layer is object oriented programming. Object oriented programming supports entities, conditional (business) logic and precise data handling. It is the data oriented layer.

Level 3

The third layer is information oriented programming. Information adds meaning to data. It also provides the context for data. Information is best stored and managed using endemes and soft-coded structures. A soft-coded structure is  like a class with abstract members rather than concrete members. An endeme is like a reorderable bitwise enumeration. The third level provides the meaning to the nodes in a graph.

Level 4

The fourth level has to do with relationships. I call it the ontologies level but it is much more. It has to do with all sorts of relationships. Meaning and therefore information is stored in relationships, for example a dog [is a] animal. This is an inheritance or subcategory relationship. Since the fourth level has to do with finding meaning in relationships, ( the edges), it needs a level below it (level 3) to make the relationships meaningful by relating things (the nodes) that already have meaning.

Level 5

The firth level in artificial intelligence. Artificial intelligence works better if the stuff it is sorting, searching, analyzing, weighting, comparing, and understanding already has meaning before the A.I. code starts processing it.

Level 6

The flip side of the anilytical artifical intelligence level 5 is the creative generative, synthetic sixth level. The theory is that once a program understands something at level 5, it can use that understanding to create things.

Level 7+

There are more levels above level 6 but without a solid stack from level 1 to 6 it does not make too much sense to talk much about them.  Most of our speculations would become strong if we had a strong day-to-day working experience with building and using levels 1 through 6. We don’t levels 3 to 6 are mostly academic exercises, and anything higher is not well understood.

Levels 1 through 6

Every kind of programming has a natural level at which it can thrive and at which it can be easy to write.

I don’t have a clever name for ‘this stack’. It would be nice to be able to call it something more descriptive than ‘this stack’. I intend to move this stack to a regular web site and install wordpress rather than doing what I am currently doing, that is to have a free wordpress site at wordpress. However I can only do this once I come up with an appropriate name for This Stack.