1:- use_module(library(trill)).    2
    3:- trill.    4
    5
    6%subClassOf(a,unionOf([b,c])).
    7%subClassOf(a,complementOf(e)).
    8%subClassOf(b,e).
    9%subClassOf(c,e).
   10
   11subClassOf(a,intersectionOf([b,someValuesFrom(r,e)])).
   12subClassOf(a,unionOf([f,allValuesFrom(r,b)])).
   13subClassOf(b,intersectionOf([c,d])).
   14subClassOf(c,intersectionOf([minCardinality(1,r),e])).
   15subClassOf(b,complementOf(e)).
   16
   17subClassOf(b,complementOf(f)).
   18
   19subClassOf(a,unionOf([intersectionOf([c,complementOf(c)]),complementOf(f)])).
   20subClassOf(a, unionOf([complementOf(c),complementOf(f)])).
   21subClassOf(a, unionOf([complementOf(c),complementOf(d)])).
   22
   23%classAssertion(a,x).
   24%classAssertion(complementOf(a),x).
   25
   26
   27
   28annotationAssertion('disponte:probability',subClassOf(a,intersectionOf([b,someValuesFrom(r,e)])),literal('0.1')).
   29annotationAssertion('disponte:probability',subClassOf(a,unionOf([f,allValuesFrom(r,b)])),literal('0.2')).
   30annotationAssertion('disponte:probability',subClassOf(b,intersectionOf([c,d])),literal('0.3')).
   31annotationAssertion('disponte:probability',subClassOf(c,intersectionOf([minCardinality(1,r),e])),literal('0.4')).
   32annotationAssertion('disponte:probability',subClassOf(b,complementOf(e)),literal('0.5')).
   33
   34annotationAssertion('disponte:probability',subClassOf(b,complementOf(f)),literal('0.6')).
   35
   36annotationAssertion('disponte:probability',subClassOf(a,unionOf([intersectionOf([c,complementOf(c)]),complementOf(f)])),literal('0.7')).
   37annotationAssertion('disponte:probability',subClassOf(a, unionOf([complementOf(c),complementOf(f)])),literal('0.8')).  % TODO  da testare con Protege
   38annotationAssertion('disponte:probability',subClassOf(a, unionOf([complementOf(c),complementOf(d)])),literal('0.9'))