%%ontology
@uses: configOptions
%

%%namespace
dco http://denkbares.com/ConfigOptions/
%

%%turtle
dco:ConfigOptionAssignment a owl:Class .
dco:ConfigOption a owl:Class .
dco:ChoiceConfigOption rdfs:subClassOf ConfigOption .
dco:ChoiceValue a owl:Class .
dco:availableChoice a owl:ObjectProperty .

dco:Constraint a owl:Class .
dco:hasDisjointSet a owl:ObjectProperty .
dco:contradicts a owl:ObjectProperty .

dco:instance rdf:type owl:ObjectProperty ;
	owl:inverseOf rdf:type .

% 


! Option Engine

%%turtle
dco:Engine a dco:ChoiceConfigOption ; 
	dco:availableChoice dco:SmallEngine, dco:MediumEngine, dco:Turbo .
	
dco:SmallEngine a ChoiceValue .
dco:MediumEngine a ChoiceValue .  
dco:Turbo a ChoiceValue .

%


! Option Hitch

%%turtle
dco:Hitch a dco:ChoiceConfigOption ; 
	dco:availableChoice WithHitch, WithoutHitch .
	
dco:WithHitch a ChoiceValue .
dco:WithoutHitch a ChoiceValue .  

%


! Constraint 1 : Hitch contradicts Small Engine

%%

%%turtle
dco:HitchConstradictsSmallEngine a Constraint ; 
	hasDisjointSet (dco:WithHitch dco:SmallEngine) .

%

%%package configOptions