1

Is there a way to define the cardinality in OWL across several properties? The usual syntax would be property min number class. I would like to do (property1, property2) min 2 class.

Example: I have a sender with several characteristics (Assistance, Meeting). But the Objectproperty/relation to each characteristic is different (has vs. wants).

enter image description here

All characteristics are grouped in one class.

enter image description here

An Attacker is defined as a Sender who has minimum two Characteristics (Characs) enter image description here

As seen in the first picture, the reasoner does not infer the individual Sender to be an Attacker. However, when the Assist property is changed, it is inferred.

enter image description here

Is there a way to define Attacker with a one cardinality over various Objectproperties? I checked the OWL references and there is no syntax pointing to such a solution. Maybe there is a workaround by designing the ontology differently?

I could just have one property in this ontology as a trick to use the cardinality. But I don't think that is the intention of ontologies. Would work for the use case but is not elegant at all.

very_interesting
  • 335
  • 1
  • 2
  • 11
  • what does the notation `(property1, property2)` mean? it's not a chain but what is it in your context? – UninformedUser Aug 10 '21 at 09:14
  • property1 would be 'has' and property2 would be 'wants'. I would like the cardinality be not only dependent on one of them but on both. However, not as a chain. "if an Sender individual has two or more properties which have 'Characteristics' as their range the Sender individual should be considered an 'Attacker'" - is that helpful? – very_interesting Aug 10 '21 at 10:02
  • How many properties in the set you wish to apply this restriction to? One workaround would be to use (p1 some R and p2 some Q) for all pairs in your set and place your class in the complement of their union, but that quickly becomes unmaintainable. – Ignazio Aug 10 '21 at 14:56

0 Answers0