The FCO-IM has many standards for diagramming, only the most common and widespread used symbols are explained here. In FCO-IM one recognises three main graphical objects: Facts, Objects, and Labels.

The so-called Roles are part of Facts and Objects and inter-connecting these Facts to Objects or Labels. The small diagram below shows these symbols. From left to right it shows a fact (with two squares representing the roles), an object (containing a single role) and the label type on the far right.


Let's create a small information model and display how this builds up to a more complex diagram. By the time you have read this page, you'll be able to interpret the FCO-IM diagrams.


A simple fact "The Netherlands is a country" is parsed. If shows a simple fact "Country" containing a single role played by the Label Type "Country Name". Below the fact the fact expression is printed and the sample population below that.


The relations are shown by the lines, from the rectangle towards the other graphical item. This rectangle is called the role by which the relation is to be substituted. In other words the role represents the substitution for a part of the fact; as displayed in the text "F1: is a country". In this text "" is a substitution mark for "Country Name".


Let's add a new expression which just gives an additional population. "Germany is a country". It will change nothing, except displaying another tuple.



Let's add a new fact expression, it'll nominalize "Country" and introduce a new fact. The expression added is "Amsterdam is the capital of The Netherlands". This fact represents a "Capital" and introduces also a "City". Therefor the "Capital" forms a fact linking "Country" and "City". Below is the diagram for that.


Unique Constraint

Now we add uniqueness constraints. For instance all countries must be unique and there can only exist one of each. We achieve this by placing a unique constraint over the role 1. The same goes for "City", every city occurrance must be unique.


Totallity Constraint

Let's talk a bit more on "Capital". This "Capital" represents the relationship between "Country" and "City". Since every country must have a city as it's capital we add a totality constraint. It is shown as a black dot at the beginning of the line leading up to role 3. The diagram would read as "Every country must have a capital".


The "Capital" also has uniqueness constraints. Every "Country" has only one city being the capital, we add the constraint over role 2. In other words: In the population of Capital every country may only occur once.



To make sure we can have more cities in a country we introduce a new fact "John Doe lives in Paris, USA". This defines more than just a "Town". It'll also create a "City of Residence" and "Person". Below is the diagram which added the new fact. (Included is already some constraints.)


Note that this example is a bit simplified. We consider every person uniquelly identifiable by it's firstname and lastname. In a day to day example there may be more to it, we ignore that for the easy reading purpose of this example.

We will introduce the "Employee" which is a subtype of "Person" and is working for clients in a certain "Town", called a "Employee for City". This fact is expressed as "John Doe works in New York".


Graphical Element Identification

As you may have noticed the diagram is fairly simple since it adds hardly any symbols to that. It is roles forming a fact and referenced facts (nominalized fact, or object) and finally labels and constraints illustrating business rules. For reference material all objects can be uniquelly identified by identifiers.

Facts, Objects and Label Types have all names which are unique in the model. Every role played has a unique number. Every fact expression is numbered and preceded by a 'F'. Also the relations are numbered by the object expressions (Oxx). Even totallity constraints have numbers. Off course for diagramming this may be considered obsolete and can be turned on or off. Below is the same diagram but with different display options.


Value Constraint

If we were to model that every employee can work for a maximum of three towns. We would use the expression "John Doe works in several cities, city 1 is New York, USA". Identifying again "Employee" in relation to "Town" but adding the "#city" which is allowed to be 1, 2 or 3.



There are more constraints and options available. For instance constraints over more than one role or more generic text information descibing these constraints. Having covered the basic diagramming structure, the more advanced information elements are considered to be relevant only when FCO-IM is better understood. Saying this does not mean the reading is more complex, the basics layed out above will suffice for any non-FCO-IM educated employee.


We make IT better. Together!

Get your copy of the Book:

 just the facts