Use case: multiple sufficient sets

Use case: multiple sufficient sets

The following is a contrived example to focus on the interaction of ECL and the Relationships view in the presence of multiple sufficient sets. The concept 'y' is not strictly necessary for this example (since the issue revolves around whether 'x' is a match for either constraint), but it's useful for the associated exploration of the Relationships table representation. 

Description Logic:

PCG-based syntax

 

Manchester (like) syntax

PCG-based syntax

 

Manchester (like) syntax

a : b=c, d=e x

sufficient condition 1 for X

Class: x

SuperClassOf: a and b some c and d some e

a : b=c, f=g x

sufficient condition 2 for X

Class: x

SuperClassOf: a and b some c and f some g

x a:q=r

necessary conditions for X

Class: x

SubClassOf: a and q some r

a : b=c, f=g, s=t y

necessary & sufficient condition for Y

Class: y

EquivalentTo: a and b some c and f some g and s some t


Relationships ("inferred"): Note, there's no mechanism here to group the relationships per-axiom (different from role grouping).  See below for an alternative that uses normalisation via anonymous concepts.

Note the use of new concepts 'sufficient' and 'necessary' that are subtypes of 'Defining relationship' (may want both stated and inferred versions?)

id

Src

Rel

Tgt

Role Group

Characteristic Type

Comment

id

Src

Rel

Tgt

Role Group

Characteristic Type

Comment

1

x

b

c

0

sufficient

 

2

x

d

e

0

sufficient

 

3

x

b

c

0

sufficient

identical to row 1, but "associated with row 4 as part of second axiom

a:b=c,f=g [= x

4

x

f

g

0

sufficient

 

5

x

q

r

0

necessary

 

6

x

ISA

a

0

necessary

 

7

y

ISA

x

0

necessary

no y ISA a since it would be redundant; x ISA a

8

y

b

c

0

necessary

 

9

y

f

g

0

necessary

 

10

y

s

t

0

necessary

 

11

y

q

r

0

necessary

 


Problematic ECL:

  1. Is x a match for << a : [0..0] d = e ?

  2. Is x a match for << a : [1..*] d = e ?

I would argue that x is a match for 1, but not for 2 since the ECL really should be matching on necessarily existing relationships. Otherwise, if it operates on "possibly existing" relationships then x would be a match to both!

Note, the same applies for y - its match status is the same as for x.

 


Normalised version:

a:b=c,d=e anon_1

anon class

 

anon_1 x

sufficient condition 1 for X

 

a:b=c,f=g anon_2

 

 

anon_2 ⊑ x

sufficient condition 2 for X

 

x a:q=r

necessary conditions for X

 

a:b=c,f=g,s=t y

necessary & sufficient condition for Y

 

 

In the following, I have (optionally, in the Xb rows) introduced a new special relationship code ISA_R which is

  1. ISA in the reverse direction

  2. always interpreted as a standalone axiom

Alternatively (as per the Xa rows), a CharacteristicType of 'sufficient' could be interpreted as "treat this as a standalone axiom".

Relationships ("inferred")

id

Src

Rel

Tgt

Role Group

Characteristic Type

Comment

id

Src

Rel

Tgt

Role Group

Characteristic Type

Comment

1

anon_1

ISA

a

0

necessary

 

2

anon_1

b

c

0

necessary

 

3

anon_1

d

e

0

necessary

 

4a

anon_1

ISA

x

0

sufficient

 

4b

x

ISA_R

anon_1

0

sufficient

ISA_R is the "reverse" of ISA to work around the need to have axiom-level grouping

5

anon_2

ISA

a

0

necessary

 

6

anon_2

b

c

0

necessary

 

7

anon_2

f

g

0

necessary

 

8a

anon_2

ISA

x

0

sufficient

 

8b

x

ISA_R

anon_2

0

sufficient

 

9

x

ISA

a

0

necessary

 

10

x

q

r

0

necessary

 

11

y

ISA

x

0

necessary

no y ISA a since it would be redundant; x ISA a

12

y

b

c

0

necessary

 

13

y

f

g

0

necessary

 

14

y

s

t

0

necessary

 

15

y

q

r

0

necessary

 

 

 

 

 

 

 

 

Copyright © 2026, SNOMED International