DisjointUnion

IRI: http://candidate.ottr.xyz/owl/axiom/DisjointUnion

Available formats

Specification

@prefix : <http://candidate.ottr.xyz/owl/axiom/DisjointUnion#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix t-owl-axiom: <http://candidate.ottr.xyz/owl/axiom/> .

t-owl-axiom:DisjointUnion( :xClass : 1 class , <:item1, :item2> : + list )
  ::
  t-owl-axiom:DisjointClasses( <:item1, :item2> )
  t-owl-axiom:EquivObjectUnionOf( :xClass , <:item1, :item2> )
  ( :xClass , rdf:type , owl:Class ) .

Direct dependency templates

Templates instantiated in the body of this template:

Diagram of pattern

RDF graph visualisation of the expanded body:

Pattern

The pattern the template represents, i.e., the expanded template body.

@prefix :      <http://candidate.ottr.xyz/owl/axiom/DisjointUnion#> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix owl:   <http://www.w3.org/2002/07/owl#> .

[ a            owl:AllDisjointClasses ;
  owl:members  ( :item1 :item2 )
] .

:xClass  a                   owl:Class ;
        owl:equivalentClass  [ a            owl:Class ;
                               owl:unionOf  ( :item1 :item2 )
                             ] .

Source

Raw source - http://candidate.ottr.xyz/owl/axiom/DisjointUnion:

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

@prefix ottr: <http://ns.ottr.xyz/templates#> .

@prefix t-owl-atom: <http://candidate.ottr.xyz/owl/atom/> .
@prefix t-owl-rstr: <http://candidate.ottr.xyz/owl/restriction/> .
@prefix t-owl-axiom: <http://candidate.ottr.xyz/owl/axiom/> .

@prefix :     <http://candidate.ottr.xyz/owl/axiom/DisjointUnion#> .

t-owl-axiom:DisjointUnion a ottr:Template ;
	  ottr:hasParameter :pClass, :pList .
:pClass  ottr:index 1;  ottr:classVariable   :xClass .
:pList  ottr:index 2;  ottr:listVariable   ( :item1 :item2 ) .

:xClass a owl:Class .

# OWL API does not recognise owl:disjointUnion, so we call on other templates

# [] ottr:templateRef t-owl-atom:ListRelation ;
#    ottr:withValues ( :xClass owl:disjointUnion ( :item1 :item2 )) .

[] ottr:templateRef t-owl-axiom:EquivObjectUnionOf ;
   ottr:withValues ( :xClass ( :item1 :item2 ) ) .

[] ottr:templateRef t-owl-axiom:DisjointClasses ;
   ottr:withValues ( ( :item1 :item2 ) ) .