Fact Concept

◷ Reading Time: 8 minutes

What is a Fact Concept?

Fact concept is an abstract model that defines the fundamentals of knowledge in a specific context. Facts describe what business people know about their business. A Fact has certain characteristics: structure, relationships, and constraints. The Fact Concept visually describes these characteristics. When Fact Concept is modeled, it defines:

  1. The context of a business domain
  2. Bases of the business glossary (terms) and associated expressions
  3. Constraints about Facts, structurally and semantically
  4. Relationships of the Facts within a business context

Modeling

There are three major elements in a Fact.

Fact

A fact is a logical grouping of data and/or information that represents a concept. In this example, Person is the fact which has three members FirstName, LastName, and Occupation.

Option

A list of valid pre-defined values for a member of a Fact. In this example, it’s the occupation that has a list of options.

Relationship

A relationship defines the whole-part relationship between Facts and Options. It can define one-to-one, one-to-many and many-to-one relationships.

Fact Concept

To add a new Fact Concept document,

Document Types --> Business Concept --> Fact Concept

Once you add facts and options, this will be the window.

Fact Concept Properties

  1. Namespace: Namespace is a name that defines the definition. For example, when there are multiple Fact models with the same name, they can co-exist in different Namespaces.
  2. Node Type: Type of the document which is ‘Concept’
  3. Glossaries: If there are any Business Glossaries or Boxed Expressions, link them here
  1. Attribute Type: Type of attributes that can be assigned to this particular item
  2. Description: Any description related to this Fact Concept file

Toolbox

You can click/ drag and drop items from the toolbox to the canvas.

Common

  1. Selection: Select a node
  2. Note: Create notes

Connections

  1. Straight: Straight connection line
  2. Bezier: Curved connection line
  3. Right Angle: Right-angled connection line

Concepts

  1. Fact: Fact node
  2. Option: Option node

Top Menu

At the top menu, you can see the following items.

  1. Import: Import from a CSV , PMML, JSON data, JSON Schema, Database Tables or Database Views
  2. Delete item: Delete a selected item
  3. Properties: Properties of the page or a node
  4. Variable Parameters: Define/ update/ delete a variable
  5. Edit members: Edit members of a selected node
  6. Overview of entire model: See the entire model
  7. Zooming: Zoom in or zoom out
  8. Export to image: Export the document to an image
  9. Alignments: Align nodes
  10. Resize: Resize selected nodes to a single size
  11. Layout arrangements: Automatically arrange and layout the nodes
  12. Change connections: Change connection styles to straight/ Bezier or Right Angle

Node/ Connection Properties

If you click on a node/ connection, its property window will appear.

  1. Members: Collection of members of the node
  2. Name: Name of the node
  3. Node Type: Whether the node is a Fact or Option

Create a Fact Concept

Drap and drop a Fact

Double-click on the name to change the Fact name (This is the type of the variable)

Add properties to the object

If you want to add options, drag and drop an Option.

Write-click and add options.

Connect the options and the property, you want to add the option by dragging a line from the property to options.

Then the property and the options will be connected.

Change the option name to match with the property.

Finally, the options are added.

Referencing a Fact Concept

A Fact Concept is added to a logic document as a variable with a custom type. See this link to learn how to define it.

Validation and Enforcement

To enforce the constraints, you need to use a step called Validator as part of a flow similar to the below image (project attached below):

The Validator step (Green nodes in the above flow):

  1. will enforce data against one or more facts
  2. collects the notification automatically (different types, e.g., Error, Warning, etc.)
  3. set a decision value to decide what should be next based on a conditional transition.

You can see different notifications in different scenarios in the below image.

However,

  • if you do not validate and enforce the input against a fact concept, AND
  • if your decision model requires a specific field in execution AND
  • your input does not provide it

service/engine will throw an exception.

Sample Fact Concept

Download the sample Fact Concept file (Student Validation.zip) using the attachment at the end of the page.

Tutorials

Updated on May 26, 2023

Article Attachments

Was this article helpful?

Related Articles