This is a work in progress – please make allowances and refer back often ...

Overall Philosophy

A Tree data structure is a non-cyclic graph with an explicit parent-child, hierarchical relationship between its vertices (nodes).

The ContextTree is different in that it allows mappings between different trees at the nodes they share. For example, a Management Hierarchy (organogram) constitutes an authority context on a set (the set of all people belonging to a specific company) whereas a Project Hierarchy would constitute a different context into much the same set.

Formally: Given a collection or set of elements, which may be data or objects in the object-oriented sense of the word, then a hierarchical tree mapping into the set constitutes a context on that part of the set that is mapped. Consider several mappings over two or more subsets of the elements; each such mapping is called a “context”. If the sets intersect at common elements, then it becomes possible to change context at these intersections. Collectively these contexts are known as a “context tree”

The contextTree project aims to develop standards and tools for accessing and managing Context Trees. If you appreciate that just about any concept can be expressed as a Tree, then you'll understand the potential of the Context Tree.

Currently the ContextTree is coded in C++, using MFC for a Win32 platform. It looks somewhat similar to Leo . As an editor/viewer it presents data in various contexts, facilitating intuitive navigation.

A Context Tree can contain other Context Trees.

Downloading and Executing

  • Download the file and unzip it.

  • Run Xtree.

  • Open the file “Overview.xtr” - it's a short tutorial

Version 0.1

The initial Context Tree coding specifications:

  • Coded in Visual C++ ver 6.0

  • for a Win32 platform

  • using the MFC classes

  • The Context Tree is licensed under OSL ver 1.1

Future development

Lots of ideas/directions floating around:

    • Upgrade existing MFC implementation – fix bugs and add enhancements

    • Move to conceptual development using Python or Java -- use it to flesh out ideas quickly

    • Develop the contextTree objects in Java or C++ -- formalize interfaces and methods

    • Move to open GUI such as AnyGui or WxWindows and implement a Context Tree editor using it

    • Move to XML

    • Develop Context Tree parser so a context tree can execute operations on itself, or other Context Trees

    • Develop standards for storing and accessing Context Trees in databases.

Overall Philosophy

Downloading & Executing


Future Development

Downloads / Source