Modelling sequence order in OWL-DL ontology

2019-06-06 18:12发布

问题:

As by default sequence order is not maintained in an OWL ontology. How can i model sequence in an OWL-DL ontology ?

回答1:

One way to model a sequence and order its elements is to just introduc a hasNext property to capture sequence order:

Class: SequenceItem
    EquivalentTo: 
        hasNext only SequenceItem

ObjectProperty: hasNext 
    Domain: 
       SequenceItem
    Range: 
       SequenceItem
    InverseOf:
       hasPrevious

Then, assuming the items you want to sequence in order are represented as instances, you can capture their order in the sequence like so:

SequenceItem: item_1
    hasNext: 
         item_2


回答2:

OWL allows you to state e.g.:

  • every item follows at most one item.
  • every item is followed by at most one item.
  • every first-item is an item that follows no item.
  • Item1 is an item and is followed by Item2.
  • ...

These statements allow you to describe sequences (possibly open-ended, i.e. with an infinite model).

(The above statements were written in ACE, use the ACE parser to convert them to OWL, where item becomes a class, follows becomes an object property and Item1 and Item2 are individuals.)