Constructing Ontology with Fluent Editor - IT Infrastructure Sample

Constructing Ontology with Fluent Editor - IT Infrastructure Sample


This project shows the ontology constructed wich Fluent Editor, which has created an IT infrastructure.
It involves several major features provided by Fluent Editor, including references, compatibility with OWL and RDF, support of SWRL, and more.

Ontology Scheme

The scheme of IT-Infrastructure to describe is as below.

Additional Conditions
*. If something is affected by an incident that has status ‘Open’, the thing is inoperable.
*. If something is affected by an incident that has status ‘Fixed’, the thing is operable.
*. If something is not affected by an incident, the thing is operable.
*. If something is served (or hosted or connected) by something inoperable, then the thing is also inoperable.
   But, if server is connected by multiple power nodes, server is operable if it has at least one operable power-node.

Now let's take a look at some of the major features of Fluent Editor which are applied to construct this ontology.

1. Using Reference

Fluent Editor supports referencing other ontology files. Referencing other ontologies is useful typically in two cases : 

1) To reference big files into your ontology.

2) To split a big file into several smaller files for handy management.

As for the latter case, referencing those files can provide you the same effect as if using one file before you split it. 
For example, after you download this project you can see it consists of multiple files of each component (from 1_Server.encnl to 7_Incidents.encnl)  and they are all referenced in  IT Infrastructure_Advanced.encnl  by using empty prefixes as below. Besides, reasoning in this IT Infrastructure_Advanced.encnl file would work the same way as before it was divided.

[] ('./1_Server.encnl')
[] ('./2_Application.encnl')
[] ('./3_Customer.encnl')
[] ('./4_Cluster.encnl')
[] ('./5_PowerNode.encnl')
[] ('./6_Operator.encnl')
[] ('./7_Incidents.encnl').

Once you defined the list of references, FE will read the identifiers and relations in each file and add them in its hint box.  By using the hint box when writing new CNL sentences, you can get hints on how the next word should be written as well as predicted words, including those collected from the references.

To see the contents of the reference, click the small button on the right side of the reference name and select 'Open In New Window'.


2. XML Preview

Fluent Editor's CNL is compatible with OWL2 and RDF standards. Besides, FE provides various functions which support the compatibility with the both standards. One of them is XML Preview, which shows an XML format of the CNL sentence that you selected by putting the cursor. XML format is supported in both OWL2 and RDF.

Fig1. - XML Preview in OWL/XML


Fig2. - XML Preview in RDF/XML

3. Using Semantic Web Rule Language(SWRL) Rules

FE supports SWRL rules which extends the expressivity of OWL 2 language.  Here are a few examples of using SWRL expression.

  (1) 4_Cluster.encnl

Cluster-1 is a cluster.
Cluster-1 is hosted by Server-3.
Cluster-1 hosts Application-4.
Application-4 is an application.

The given four statements above create a concept 'cluster' and an instance 'Cluster-1' which is hosted by 'Server-3' and hosts 'Application-4'.
Here is the diagram together with other ontolgy files (from 1_Server.encnl  to 4_Cluster.encnl) . 

According to this ontology, a reasoner will acknowledge two relations.

  • Server-1 hosts Cluster-1. 

  • Cluster-1 hosts Application-4.

However, it will not infer a relation - "Server-1 hosts Application-4".  In the open-world assumption one does not imply other relation unless you explicitly state the rules about it.  For this you can add SWRL rule, which enables you to express the relation between individuals with which an individual has relations.     

If a thing (1) hosts a thing (2) and the thing (2) hosts an application then the thing (1) hosts the application.

When writing the word thing to represent more than one object, you can differenciate them by adding a tag with a different number in between brackets, such as  thing (1) and thing (2). This rule is saying that if a thing(1) hosts another thing(2)  which hosts an application, then it also means that this thing(1) also hosts the application.

After adding this statment,  you can retrieve inferred knowledge through reasoning as below. 


  (2) 7_Incidents.encnl

SWRL syntax extends the OWL syntax, which means you can use SWRL rules which can be also equivalently written in OWL.
For example, if there is a OWL statement as below,       

If an incident affects the thing and the incident has-status Open then the thing has-status Inoperable.

this can be written in SWRL statement as this. These two sentences are semantically equivalent.

Every-single-thing that is affected by an incident that has-status Open has-status Inoperable.


Final Result

The whole structure of this ontology is decribed as in the following diagram.