This page (revision-180) was last changed on 05-May-2017 09:17 by Jochen Reutelshöfer

This page was created on 22-Apr-2017 17:20 by unknown

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
180 05-May-2017 09:17 7 KB Jochen Reutelshöfer to previous
179 05-May-2017 09:15 7 KB Jochen Reutelshöfer to previous | to last
178 05-May-2017 09:15 7 KB Jochen Reutelshöfer to previous | to last
177 05-May-2017 09:14 7 KB Jochen Reutelshöfer to previous | to last
176 05-May-2017 09:13 7 KB Jochen Reutelshöfer to previous | to last
175 05-May-2017 09:13 7 KB Jochen Reutelshöfer to previous | to last
174 05-May-2017 09:08 7 KB Jochen Reutelshöfer to previous | to last
173 05-May-2017 09:08 7 KB Jochen Reutelshöfer to previous | to last
172 05-May-2017 09:07 7 KB Jochen Reutelshöfer to previous | to last
171 05-May-2017 09:07 7 KB Jochen Reutelshöfer to previous | to last
170 24-Apr-2017 22:29 7 KB Jochen Reutelshöfer to previous | to last
169 24-Apr-2017 22:26 7 KB Jochen Reutelshöfer to previous | to last
168 24-Apr-2017 22:26 7 KB Jochen Reutelshöfer to previous | to last
167 24-Apr-2017 22:25 7 KB Jochen Reutelshöfer to previous | to last
166 24-Apr-2017 22:25 7 KB Jochen Reutelshöfer to previous | to last
165 24-Apr-2017 22:24 7 KB Jochen Reutelshöfer to previous | to last
164 24-Apr-2017 22:24 7 KB Jochen Reutelshöfer to previous | to last
163 24-Apr-2017 22:22 7 KB Jochen Reutelshöfer to previous | to last
162 24-Apr-2017 22:22 7 KB Jochen Reutelshöfer to previous | to last
161 24-Apr-2017 22:22 6 KB Jochen Reutelshöfer to previous | to last

Page References

Incoming links Outgoing links

Version management

Difference between version and

At line 9 added 3 lines
%%namespace
c http://denkbares.com/ConfigOptionsDemo/
%
At line 13 added one line
At line 23 added one line
dco:isNot a owl:ObjectProperty .
At line 31 changed 3 lines
dco:hasValueA a owl:ObjectProperty .
dco:hasValueB a owl:ObjectProperty .
dco:contradicts a owl:ObjectProperty .
dco:assignmentA a owl:ObjectProperty .
dco:assignmentB a owl:ObjectProperty .
At line 35 changed one line
dco:smallerOrEqual a owl:DatatypeProperty .
dco:max a owl:DatatypeProperty .
At line 44 changed one line
dco:hasConfigAssignment a owl:ObjectProperty .
dco:hasConfiguration a owl:ObjectProperty .
At line 92 changed one line
dco:smallerOrEqual "5" .
dco:max "5" .
At line 102 changed 3 lines
dco:HitchConstradictsSmallEngine a ContradictingConstraint ;
hasValueA [ option Hitch; is WithHitch] ;
hasValueB [ option Engine; is SmallEngine ] .
dco:HitchConstradictsSmallEngine a ContradictingConstraint ;
rdfs:label "Anhängerkupplung nicht mit kleinem Motor" ;
assignmentA [ option Hitch; is WithHitch] ;
assignmentB [ option Engine; is SmallEngine ] .
At line 113 changed 2 lines
hasValueA [ option Edition; is FamilyEdition] ;
hasValueB [ option NumberOfDoors; is "3" ] .
assignmentA [ option Edition; is FamilyEdition] ;
assignmentB [ option NumberOfDoors; is "3" ] .
At line 119 changed one line
! Constraint 3 : Offroad Edition contradicts Small Engine
! Constraint 3 : Offroad Edition requires TurboEngine
At line 122 changed 3 lines
dco:OffroadConstradictsSmallEngine a ContradictingConstraint ;
hasValueA [ option Edition; is OffroadEdition] ;
hasValueB [ option Engine; is SmallEngine ] .
dco:OffroadRequiresTurboEngine a ContradictingConstraint ;
assignmentA [ option Edition; is OffroadEdition] ;
assignmentB [ option Engine; isNot Turbo ] .
At line 133 changed one line
hasConfigAssignment
hasConfiguration
At line 140 changed one line
dco:Car1 dco:hasConfigAssignment ?assignment.
dco:Car1 dco:hasConfiguration ?assignment.
At line 152 changed one line
hasConfigAssignment
hasConfiguration
At line 160 changed one line
dco:Car2 dco:hasConfigAssignment ?assignment.
dco:Car2 dco:hasConfiguration ?assignment.
At line 172 changed one line
hasConfigAssignment
hasConfiguration
At line 179 changed one line
dco:Car3 dco:hasConfigAssignment ?assignment.
dco:Car3 dco:hasConfiguration ?assignment.
At line 191 changed one line
hasConfigAssignment
hasConfiguration
At line 198 changed one line
dco:Car4 dco:hasConfigAssignment ?assignment.
dco:Car4 dco:hasConfiguration ?assignment.
At line 210 changed one line
hasConfigAssignment
hasConfiguration
At line 218 changed one line
dco:CarX dco:hasConfigAssignment ?assignment.
dco:CarX dco:hasConfiguration ?assignment.
At line 233 changed one line
?car dco:hasConfigAssignment ?assignment .
?car dco:hasConfiguration ?assignment .
At line 244 changed one line
?car dco:hasConfigAssignment ?assignment .
?car dco:hasConfiguration ?assignment .
At line 249 changed one line
?option dco:smallerOrEqual ?maxValue .
?option dco:max ?maxValue .
At line 269 added one line
At line 271 added 55 lines
SELECT ?car ?constraint ?constraintOptionA ?carOptionA ?valueA ?constraintOptionB ?carOptionB ?valueB ?compliesA ?compliesB WHERE {
# for each car config and constraint do...
?car rdf:type dco:CarConfigSet .
?constraint rdf:type dco:Constraint .
# First constraint/configuration match
?car dco:hasConfiguration ?carConfigAssignment1 .
?carConfigAssignment1 dco:is ?valueA .
?carConfigAssignment1 dco:option ?carOptionA .
?constraint dco:assignmentA ?constraintAssignmentA .
?constraintAssignmentA dco:option ?constraintOptionA .
FILTER (?constraintOptionA = ?carOptionA) .
OPTIONAL {
?constraintAssignmentA dco:is ?constraintValueA .
}
OPTIONAL {
?constraintAssignmentA dco:isNot ?constraintValueA .
}
BIND( IF (
(EXISTS{?constraintAssignmentA dco:is ?constraintValueA} && ?constraintValueA = ?valueA)
|| (EXISTS{?constraintAssignmentA dco:isNot ?constraintValueA} && ?constraintValueA != ?valueA)
, "true", "false") as ?compliesA) .
# Second constraint/configuration match
?car dco:hasConfiguration ?carConfigAssignment2 .
?carConfigAssignment2 dco:is ?valueB .
?carConfigAssignment2 dco:option ?carOptionB .
?constraint dco:assignmentB ?constraintAssignmentB .
?constraintAssignmentB dco:option ?constraintOptionB .
FILTER (?constraintOptionB = ?carOptionB) .
OPTIONAL {
?constraintAssignmentB dco:is ?constraintValueB .
}
OPTIONAL {
?constraintAssignmentB dco:isNot ?constraintValueB .
}
BIND( IF (
(EXISTS{?constraintAssignmentB dco:is ?constraintValueB} && ?constraintValueB = ?valueB)
|| (EXISTS{?constraintAssignmentB dco:isNot ?constraintValueB} && ?constraintValueB != ?valueB)
, "true", "false") as ?compliesB) .
# filter identities and aggregate result
FILTER (?constraintAssignmentA != ?constraintAssignmentB) .
FILTER (?carConfigAssignment1 != ?carConfigAssignment2) .
FILTER (?compliesA = "true" && ?compliesB = "true" ).
}
%
%%sparql
At line 328 added one line
?car rdf:type dco:CarConfigSet .
At line 268 changed one line
?constraint dco:hasValueA ?constraintAssignmentA .
?car dco:hasConfiguration ?carConfigAssignment1 .
?constraint dco:assignmentA ?constraintAssignmentA .
At line 270 changed one line
?constraint dco:hasValueB ?constraintAssignmentB .
?carConfigAssignment1 dco:is ?valueA .
?car dco:hasConfiguration ?carConfigAssignment2 .
?constraint dco:assignmentB ?constraintAssignmentB .
At line 341 added one line
?carConfigAssignment2 dco:is ?valueB .
At line 273 changed 5 lines
?car rdf:type dco:CarConfigSet .
?car dco:hasConfigAssignment ?assignment1 .
?assignment1 dco:is ?valueA .
?car dco:hasConfigAssignment ?assignment2 .
?assignment2 dco:is ?valueB .
}
At line 345 added 8 lines
%
%%sparql
SELECT ?constraint ?edge ?option WHERE {
?constraint dco:assignmentA|dco:assignmentB ?assignment .
?assignment dco:option ?option .
BIND ( "usesOption" AS ?edge ) .
At line 355 added one line
%
At line 357 added 7 lines
%%sparqlVisualization
SELECT ?constraint ?edge ?option WHERE {
?constraint dco:assignmentA|dco:assignmentB ?assignment .
?assignment dco:option ?option .
BIND ( "usesOption" AS ?edge ) .
}
@config: configVis
At line 366 added 13 lines
%%VisualizationConfig
@name: configVis
@colors: c:color
%
%%turtle
c:color a owl:DatatypeProperty .
dco:Constraint c:color "orange" .
dco:ConfigOption c:color "#80ccff" .
%