0

In SHOIN(D) that is equivalent to the DL family used by OWL-DL; Is this expression legal:

F ⊑ (≤1 r. D) ⊓ (¬ (=0 r. D))

Where F, D are concepts, r is a role. I want to express that each instance of F is related to at most one instance of D through r, and not to zero instances.

In general, how to decide that some expression is legal w. r. t. a specific variation of DL? I thought that using BNF syntax of the variation may be what I'm targeting.

Median Hilal
  • 1,483
  • 9
  • 17

1 Answers1

1

One easy way is to check whether you can write it in Protege. Most of the things that you can write in Protege will be legal OWL-DL. In Protege you can write:

F SubClassOf ((r max 1 D) and not(r exactly 0 D))

Of course, saying that something has at most 1 value, and not exactly one would be exactly the same as saying that it has exactly 1:

F SubClassOf r exactly 1 D

But there are a few things that you'll be able to do in Protege that won't be legal OWL-DL. The more direct way to find out what these are is the standard, specifically §11 Global Restrictions on Axioms in OWL 2 DL. Generally the only problems you might run into is trying to use composite properties where you're not allowed to.

If you don't want to check by hand, then you could try uploading your ontology into the OWL Validator and selecting the OWL2 DL profile.

Joshua Taylor
  • 84,998
  • 9
  • 154
  • 353
  • Thanks Joshua; However, There are two points: (Point -1-) Actually "saying that something has at most 1 value, and not exactly zero would be exactly the same as saying that it has exactly 1"; this is not accurate: saying max 1 would have three types of matching axioms (roughly speaking): exactly 1, exactly zero, max 1; by eliminating exactly zero, we still have two possibilities of matching axioms: exactly 1 and max 1. – Median Hilal Apr 07 '15 at 08:11
  • (Point -2-) Your suggestions in deciding validity of OWL-DL expression is helpful. However; for description logic variations in general; is there a more formal way to check that given the variation constructs (F, N, Q, O ,S, H ...)? – Median Hilal Apr 07 '15 at 08:14
  • @MedianHilal "x : p max 1" means that x can be related to 0 or 1 things by property p. "x : p max 0" means that x can be related to 0 things by property p. "x : p exactly 0" means that x can be related to 0 things by property p. "x : p exactly 1" means that x can be related to 1 thing by property p. If you say that "x : ((p max 1) and not(p exactly 1))", then x is related to 0 or 1 things by p, and not related to 0 things by p." That leaves one option: **it's related to 1 thing** which is the definition of "x : (p exactly 1)". – Joshua Taylor Apr 07 '15 at 10:42
  • It's just set cardinalities. Let n be the number of things x is related to by property p. Then "x ∈ (p max 1) → n ∈ {0,1}" and "x ∈ (p exactly 0) → n ∈ {0}" and "x ∈ (p max 1) and not(p exactly 0) → n ∈ {0,1} ∩ ¬{0}" which means that "n ∈ {1}". – Joshua Taylor Apr 07 '15 at 10:46
  • you are right! However, let me clarify what I need more precisely in this question http://stackoverflow.com/questions/29497675/dl-returning-classes-with-max-1-and-not-exactly-0 – Median Hilal Apr 07 '15 at 17:37