Sunday, January 12, 2014

Weighted hypergraphs

The idea of a weighted hypergraph provides a suitable generalization of weighted graphs, metric spaces, and measure spaces. Predicates are provided for each of these classes of weighted hypergraphs in the system:
(metric-space? 
  (weighted-hypergraph. 
    #{0 1 2} 
    {#{0} 0, #{1} 0, #{2} 0, #{0 1} 1, #{0 2} 1, #{1 2} 1}))

(measure-space?
  (weighted-hypergraph.
    #{0 1}
    {#{} 0, #{0} 1/2, #{1} 1/2}, #{0 1} 1}))
Amongst the measure spaces there is a class of distributions whose weights all range from zero to one inclusive. Amongst the distributions there are special classes of distributions such as uniform distributions and degenerate distributions among others.

Saturday, January 11, 2014

Alexandrov topology

Given a preorder we can form a special kind of topology called an Alexandrov topology and given such a topology we can go back to the preorder so we have a bijection between the class of preorders and the class of Alexandrov topologies. Here is an example of Alexandrov topology formed by a partial order:
(= (alexandrov-topology (weak-order [#{0} #{1} #{2}]))
   (hypergraph.
     #{0 1 2}
     #{#{} #{2} #{1 2} #{0 1 2}}))
Using the specialization preorder function we can specify classes of Alexandrov topologies that correspond to classes of preorders in our ontology. Here are a few such classes of topologies:
(def partition-topology?
  (comp equivalence-relation? specialization-preorder))

(def discrete-topology?
  (comp antichain? specialization-preorder))

(def trivial-topology?
  (comp complete-relation? specialization-preorder))
Topology is based upon the inclusion order of sets provided by the ontology and the specialization preorder so I think that it is fair to say that topology is based upon order theory.

Friday, January 10, 2014

Partial orders and complementation

Given a bounded lattice we can form a symmetric binary relation of that relates elements to one another if they are complements of one another. Here are some examples of complementation relations produced from bounded lattices:
(= (complementation-relation (weak-order [#{0} #{1} #{2}]))
   #relation{
     :vertices #{0 1 2}
     :edges #{[0 2] [2 0]}})

(= (complementation-relation (weak-order [#{0} #{1 2} #{3}]))
   #relation{
     :vertices #{0 1 2 3}
     :edges #{[0 3] [1 2] [2 1] [3 0]}})
We know that complemented lattices are those bounded lattices that have functional complementation relations and uniquely complemented lattices are those bounded lattices that have complementation relations that are involutions.
(= (complemented-lattice? order)
   (unary-operation? (complementation-relation order)))
(= (uniquely-complemented-lattice? order)
   (involution? (complementation-relation order)))
It is worth noting that the complementation relation itself can be partially ordered by the complementary pairs ordering function to get a partially ordered relation.

Thursday, January 9, 2014

Partial orders and betweenness

Given any partial order we can produce a ternary betweenness relation defined by the condition that b is between a and c if either a <= b <= c or c <= b <= a. Here is an example of a betweenness relation corresponding to a partial order relation:
(= (betweenness-relation (weak-order [#{0} #{1} #{2}]))
   #user.relation{
     :vertices #{0 1 2}
     :edges #{[2 1 0] [1 0 0] [2 2 1] [1 1 1] 
              [0 0 1] [1 2 2] [0 1 2] [2 1 1] 
              [2 2 2] [1 1 2] [0 0 2] [2 0 0] 
              [2 2 0] [1 1 0] [0 0 0] 
              [0 1 1] [0 2 2]})
Like with the ternary relations of infima and suprema the ternary relation of betweenness preserves the connectivity of the underlying partial order.
(= (connected-components order)
   (connected-components (betweenness-relation order)))
A convex set of a betweenness relation is a set that includes all elements between its members. Ordered geometry uses betweenness relations as part of its foundation as we can define the elements that are between any points in a geometric space.

Wednesday, January 8, 2014

Partial orders and extrema

Given any partial ordering relation we can form ternary extrema relations of suprema and infima based upon least upper bounds and greatest lower bounds. These extrema relations necessarily are idempotent, commutative, and have the generalized associative property. However, in general these ternary relations are not either magmas or even binary operations for that matter.
(false? 
  (binary-operation? 
    (infima-relation (weak-order [#{0 1} #{2 3}))))

(binary-operation? 
  (infima-relation (weak-order [#{0 1}]))))

(false? 
  (magma? 
    (infima-relation (weak-order [#{0 1}]))))
In order for the extrema relations of a partial order to be binary operations the partial order [2 2] must be forbidden as a suborder. Since lower and upper forests are defined as suborders of [2 2] they are examples of partial orders with unique extrema. If a commutative idempotent associative binary operation is a magma it is a semilattice so there is a clear correspondence between partial orders that are meet or join semilattices and extrema relations that are magmas. Another interesting property is that connectivity is maintained by the extrema relation:
(= (connected-components order)
   (connected-components (infima-relation order))
Zero elements and identity elements in extrema relations correspond to upper and lower bounds in the underlying partial order relation.

Tuesday, January 7, 2014

Ontology of modules

In order to facilitate the use of modules it may be useful to categorize the modules available the systems into an ontology. This ontology would be combined with an ontology of logical entities in order to form the core system of a modular intelligence. The system of logical entities in the core system is not our main interest in categorizing modules but rather our main interest is the system of modules that extend our core logic.

Therefore in addition to the category of logical components there should be categories for temporal and computational tasks such as state management and scheduling, perceptual learning tasks that involve reasoning under uncertainty, and for interaction with external entities such as through natural language processing.

An AI without modules dealing with interaction and social relations could be an excellent astronomer for example in that it could perceive the universe around it but it wouldn't have the ability to communicate those results to people who are still dependent upon natural languages. In order to do that the AI may have to load an interaction module.

Monday, January 6, 2014

Module dependencies

Modules may depend upon other modules for their use. The dependency relation should be a preorder as every module depends upon itself and if one module depends upon another which depends upon another that first module depends upon the last. Furthermore, if there are cyclic dependencies such that one component depends upon another component those components should be combined together to form a single module so dependencies should be antisymmetric and therefore a partial order.

Along with the dependencies order in the module system our core should also contain the generalization order of an ontology. The ontology may be used to categorize modules themselves based upon the things that they are dealing with like I/O, file systems, graphics, sound processing, etc. This demonstrates that an ontology can play a complementary role to the module system.

Saturday, January 4, 2014

Modular intelligence

I am designing a modular framework for artificial intelligence programming. The core system will contain the ontology and module system as well as information about preferences and goals. In this sense the core system will be mostly declarative as it will specify what the agent wants, what classes of entities exist, and what modules are out there and so it will be up to the module system to provide specific knowledge about how to do things.

The modules in the system will be uncertain and context dependent so they will be changing a lot over time. Machine learning algorithms like reinforcement learning and supervised learning should be used to help shape module space. A system with highly advanced machine learning capabilities such as a seed AI could radically transform module space.

Perhaps the most important component of the module space will be the perceptual cortex which will contain all the functionality related to perception and reasoning under uncertainty. An initial perceptual cortex could be built based upon OpenCV as it has many of the perceptual capabilities one could hope for. Another important class of modules are interaction modules which include modules dealing with user interfaces and language processing.

Wednesday, January 1, 2014

2013 year in review

This last year has had a considerably transformative effect on me. After seeing the considerable usefulness of orders to partitioning and decomposing entities into parts and places I decided to switch my primary focus to order theory. I made partial orders the core of my computer algebra system and I begun to explore the concepts of order theory in more detail.

By examining the ways in which enumerations could be combined I also stumbled upon ordinal numbers. I then realized that the number system should not be limited to finite numbers and instead it should be extended to include transfinite numbers like the ordinals. From there I stumbled upon the surreal numbers and transseries and I have been working on implementing them ever since.

My interest in order theory led me to consider the different classes of partial orders such as antichains, total orders, weak orders, interval orders, and series parallel orders and the fact that these are themselves ordered by inclusion. This led me to build an ontology of my own and to consider other ontologies that other people have constructed such as Dolce, Cyc, SUMO, and GFO.

Through my examination of these different ontologies I begun to consider fundamental questions of how an ontology should be constructed. One of my conclusions which is encouraged by the results of causal set theory is that the ontology of concrete entities should be an ontology of processes and events which may be related to one another causally.

After this I begun to consider how my reasoning engine and ontology could be extended to deal with more general AI applications. It is my conclusion that my logical core should be extended with modules to dealing with uncertainties such as procedural uncertainty and declarative uncertainty. The core of my AI framework should then be a combined ontology and module system.