A Database System for Metamodeling and Method Engineering
Unlimited metaclass hierarchies. ConceptBase can represent information at the data level (example data, traces of process executions etc.), the class level (schemas, process definitions etc.), the metaclass level (constructs of modeling languages), the meta-metaclass level (constructs for defining modeling languages), and so forth.
Uniform object representation. All objects are represented in a uniform quadruple data structure called P-facts pioneered by the developers of the Telos language. Objects, their attributes, specializations, and instantiations are all represented as P-facts. By this, for example, attributes of objects can have attributes and are instances of other attributes. Even specialization between attributes is fully supported.
Logical expressions. Rules, constraints, and queries are expressed in first-order logic formulas. Internally, the system transforms them into Horn clauses interpreted by a Datalog-based evaluation machine. Logical expressions in ConceptBase can range over any object regardless of its type (node vs. link) and its abstraction level. Datalog is known for being the most robust computational system for evaluating logical expressions.
Active rules. Active rules update the database or call external routines as a reaction to events. The execution follows the Event-Condition-Action scheme (ECA). Updates to the database are formulated via Tell/Untell/Retell commands. External routines (e.g. for invoking a script to send an email) can be incrementally added to the database using a simple Prolog-based programming interface.
Functional expressions. ConceptBase supports functional and arithmetic expressions to define computation within models. Functions can be recursively defined much like in Functional Programming. For example, the length of the shortest path between two nodes is defined as the minimum of the lengths of the shortest path between the successors of the start node and the end node. Functional expressions are particularily useful for defining complex metrics on models. Aggregation functions such as SUM and AVG are predefined.