New Grammar of Fluent Editor 2015

I. New Features

1. Support of Core SWRL Built-ins

Summary

Fluent Editor supports major core SWRL built-ins defined by the SWRL Submission, covering built-Ins for comparisons, math, strings, date, time and duration.

Example

Below shows a basic example of applying built-ins for calculating values.

If a cat has-size equal-to the value (1) and the value (1) * 2.0 = the value (2) then the cat has-doubled-size equal-to the value(2).

Here is what happens :

  1. In order to user built-ins, first you need to extract the data value(s) as parameter(s).    e.g. 'If a cat has-size equal-to the value (1)'.
    From here, the size of a cat will be stored in the value(1).
  2. Then you can apply built-in to the value(1) and assign it to the new value.           e.g. 'If a cat has-size equal-to the value (1) and the value (1) * 2.0 = the value(2)'
    Now the value (2) contains value (1) * 2.0, which means value assignment is done to the value(2).
  3. At last, you can even apply this value back to the cat in the head of the rule.
    e.g. 'If a cat has-size equal-to the value (1) and 2.0 * the value (1) = the value(2) then the cat has-doubled-size equal-to the value(2).'

To learn more on SWRL built-ins, go to Grammar page.

Note

Currently Fluent Editor does not support SWRL built-ins such as : built-ins for boolean values, built-ins for URIs, built-ins for Lists, and built-ins for yearmonth durations.

Effect

User can apply SWRL built-ins to his/her ontology.

Comment

-

 

2. Support of User-Defined Data Type

Summary

Writing user-defined data types is supported.

Example

Here, greater-than-4-number is a data type that has value lower than 4.

Every cat has-size (some greater-than-4-number value).
Every value-of greater-than-4-number is something lower-than 4.

Doktype is a data type that its value is in between 10 and 200 (excluding 200), or if the value is string type it should not match the regular expression pattern 'aaaa'.

Krok has-value (some doktype value).
Every value-of doktype is something ((lower-than 200 , greater-or-equal-to 10) or not that-matches-pattern 'aaaa').

Note

Above example introduces special keywords for data type defiinition only.

      * comma(,) or as-well-as : means intersection.

      * or : means union.

Note that these keywords are available only for data type definition.

E.g. Every man is a human and has-age an age. (O)

      Every man is a human as-well-as has-age an age. (X)      --> "as-well-as" means intersection only for data type definition.

Effect

User can define his/her own data types, even complex one.

Comment

-


3. SWRL rules with Data Range Restrictions

Summary

Using SWRL rules with data range restrictions is supported.

Example

This data range restriction is satisfied when a person has age value between 0 and 17.

If a person has-age equal-to the value(1) and the value(1) is greater-or-equal-to 0 and the value(1) is lower-or-equal-to 17 then the person has-before-adult-age equal-to the value(1).

Note

In the previous version of Fluent Editor, only writing SWRL rules between concepts was supported as below.

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

In this version, you can also write SWRL rules with data range restrictions by using the keyword value(n) in the same manner as writing thing(n).

Effect

User can write SWRL rules with data range restrictions.

Comment

Fluent Editor 2015 currently does not support entire built-in data types.


4. Support for complex concepts

Summary

Defining concepts with multiple conditions is supported.

Example

Below line defines cat not a bird, if it is an animal intersection of object that has more than or equal to 5 legs (setting object minimum cardinality).

If a cat is an animal that has at-least five legs then the cat is something that is not a bird.

Note

-

Effect

User can define complex concepts.

Comment

-


5. Support for complex data types

Summary

Defining data types with multiple conditions is supported.

Example

Below line shows that cardinality restrictions can be applied to the number of data attributes.

Every cat has-name at-most one (some string value).

You can also define length of the data attribute as below.

Every cat has-name that-has-length lower-or-equal-to 10.

Note

-

Effect

User can define complex data types.

Comment

-


II. Changes

1. Keyword change for data domain range

Summary

Keyword for defining data domain range is changed as below.
Now dash(-) between each word is replaced with the whitespace.     
 (some-integer-value) --> (some integer value)

Example

* (some-value) --> (some value)
* (some-integer-value) --> (some integer value)
* (some-real-value) --> (some real value)
* (some-boolean-value) --> (some boolean value)
* (some-string-value) --> (some string value)
* (some-datetime-value) --> (some datetime value)

Note

If you load CNL file written in the old syntax, Fluent Editor 2015 will automatically attempt to convert old syntax into the new syntax under the userís confirmation.

Effect

User does not need to write dash but whitespace instead.

Comment

-