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 :
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.
|
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 |
- |