Prepping your data for AI


ACE is a free software application developed by Minerva to build taxonomies for use in artificial intelligence applications. ACE, which stands for Aristotelian Class Editor, supports building computable descriptions of vocabulary terms.  These can then be used to infer different hierarchical views of a taxonomy from the same set of descriptions, as well as to validate the vocabulary for internal consistency and logic. ACE enables any company to harness their historical data using logic-based vocabularies for processing by artificial intelligence applications like our GAIA and TERRA software suites for data exploration, prospect development, and evaluation.

  • Why ACE?
  • Building logically consistent taxonomies

    Various tools are available for editing vocabularies, taxonomies, and ontologies. However, these are often unintuitive and what should be straightforward definitions become convoluted. They tend to be either over-simplistic or the language is too low-level. Just as high-level languages are easier to work with, high-level ontology editors such as ACE are needed that can compile to lower level languages. ACE implements a powerful, useful and straightforward design pattern: to define a class, identify a superclass and state how this class differs from other children of that superclass. This design pattern results in natural definitions, with which is is easy for humans and computers to reason.

    Our goal in developing ACE is to provide a tool focused on elevating a draft vocabulary consisting of terms and text definitions to be a logically coherent ontology for use in AI computation. The intended primary user is a domain expert with a clear understanding of the Aristotelian approach to definition. The main workflow is analyzing definitions to identify the differentiating properties, establishing the value hierarchies for those properties, and assigning property values to terms such that the inferred hierarchy is conceptually valid. ACE is designed to minimize the learning overhead necessary to develop and maintain logically coherent, computable vocabularies.

  • What do we mean by ‘taxonomy’?
  • A taxonomy is a hierarchy of concepts. In this discussion, we use the term taxonomy to mean a hierarchical system of concepts in which the child concepts all have a ‘kind of’ relationship to the parent concept. In such a hierarchy, any instance of a child concept is also an instance of its parent concept. Other kinds of hierarchies can be constructed using different relationships like ‘part of’, ‘contains’, ‘derived from’, or ‘biological child of’, but these are not taxonomies. `

    A taxonomy has a top concept that is the most general kind of entity included in the system. The children of a specific concept in the taxonomy are referred to as siblings, following the family metaphor that is typically used. Many taxonomies have a simple tree structure, in which each concept (except the top concept) has exactly one parent. A directed acyclic graph is a more general hierarchical structure in which a concept might have multiple parent concepts. A real world taxonomy with a tree structure is the biological classification of living organisms in the Linnaean taxonomy.

  • What is an ‘Aristotelian Taxonomy’?
  • An Aristotelian definition [Smith, 2003b] of concept A is of the form “An A is a B such that C”, where B is a more general concept than A and C is a condition that defines how A is differentiated amongst the sub-concepts of B. Aristotle [350 B.C.] called the general concept B the genus and the condition C the differentia (Poole and Smyth, 2011).

    Aristotle anticipated many of the issues that arise in definitions: If genera are different and co-ordinate, their differentiae are themselves different in kind. Take as an instance the genus “animal” and the genus “knowledge”. “With feet”, “two-footed”, “winged”, “aquatic”, are differentiae of “animal”; the species of knowledge are not distinguished by the same differentiae. One species of knowledge does not differ from another in being “two-footed”

    Note that “co-ordinate” here means neither is subordinate to the other. Genera is the plural of genus.

    The scope of the taxonomy is determined by the definition of the top concept in the hierarchy, and by the set of properties used to differentiate sibling concepts beneath each parent concept. Child concepts are defined by restricting the range of one or more property values on the parent genus. Note that the differentia for child concepts beneath different parents might be different, but the same set of properties must be used to differentiate siblings.

    Want to learn more?

    For a primeur on ontological classification, Aristotle’s fundamental contribution to knowledge engineering, please click here for an extract from “Artificial Intelligence: foundations of computational agents”, Cambridge University Press, 2017.

    An Introduction to ACE