Loading color scheme

FEKL Introduction

FactEngine Knowledge Language (FEKL) is a controlled natural language that enables you to define Object-Role Models and Fact-Based Models.

For example, the following are valid FEKL statements:

There are many reasons why you may prefer to create a conceptual model using natural language rather than drawing diagrams. These include:

1. Automaically generating model definition based on NLP (Natural Langue Processing) of a corpus of documents;
2. It can be quicker to create diagrams using natural language, rather than using a GUI (Graphical User Interface), depending on your proficiency with FEKL; and
3. Business Analysts can capture the Universe-of-Discourse, or the business domain knowledge, in natural language. I.e. Analysts have used FEKL as a tool to capture business requirements.

FEKL - Precedent Order of Model Element creation

The precedent order of model element creation, for the model, is:

  1. Value Types (unless created at the time of defining an Entity Type’s Reference Mode, or as part of the definition of a Binary Fact Type);
  2. Entity Types;
  3. Fact Types; then
  4. Role Constraints (unless an Internal Uniqueness Constraint created at the time of Fact Type creation).
Object Type - Naming Convention - FEKL

Object Type names in Boston are in Camel Case, and where each word/acronym in the Object Type’s name has a starting capital letter.

E.g. Power Source

NB The regular expression for Object Type names in Boston is:

(([A-Z0-9]+[_a-z\-0-9]+[ |_]*)+[_|\s]?)+

Value Type Creation - FEKL

The following are examples of Value Type creation statements written in FEKL:


I.e. Where ‘Company Name’ is the Value Type being created, and StringFixedLength(100) defines the Data Type applicable to the Value Type.

Value Types can also be created when creating a Fact Type for pre-existing model elements, for example:


 I.e. Where ‘Company Name’ is a Value Type and ‘Company’ is a pre-existing Object Type (Entity Type or Objectified Fact Type). If using this type of statement in the Virtual Analyst, Briana the virtual analyst will ask you if you want to create a new Entity Type (i.e. e.g. for ‘Company’). See the ‘Fact Type creation’ section for more details.

Value Types can also be created automatically when defining the Reference Mode for a Value Type. For example, the Value Type, ‘Company_Id’ is automatically created in the model when the Reference Mode for the ‘Company’ Entity Type is defined in the following statement:

Railroad Diagrams