SLIDE 6 www.cs.helsinki.fi/juha.tiihonen
RQ2: How to construct a practical and computationally well- founded sales configurator?
WeCoTin Modeling tool
conceptualization enables to describe ‘the rules of the game of product’ graphically
language Product Configuration Modeling Language (PCML )
- Automatic translation to a
logic program
- Answer set programming
- Tried with over 20
products
(II)
Department of Computer Science Juha Tiihonen www.cs.helsinki.fi/juha.tiihonen
Generated Smodels program (WCRL, ASP)
i n( C 2) : - pa( C 1, T, C2, Pn) , ppa( T, C 1, C 2, Pn) . : - 2{ pa( C 1, T, C 2, Pn) : ppa( T, C 1, C 2, Pn) } , com pT_Feat ur e( C 2) . i sa( X, Z) : - i sa( X, Y) , i sa ( Y, Z) , com pTD
( X) , com pTD
( Y) , com pTD
( Z) . i sa( X, X) : - com pTD
( X) . i sa( com pT_N avi gat i on_Syst em , com pT_Feat ur e) . com pTDom ( com pT_W eC
com pT_Feat ur e( C) : - com pT_W eC
ar ( C ) . i sa( com pT_W eC
ar , com pT_Feat ur e) . com pTDom ( com pT_St andar d_headl i ght s) . com pT_Feat ur e( C) : - com pT_St andar d_headl i ght s( C ) . i sa( com pT_St andar d_headl i ght s, com pT_Feat ur e) . com pTDom ( com pT_Bi Xenon_H eadl i ght s) . com pT_Feat ur e( C) : - com pT_Bi Xenon_H eadl i ght s( C ) . 1{ i n( C) : com pT_W eC
ar ( C ) } 1. pan( par t _Navi gat or ) . 0{ pa( C1, com pT_W eC
ar , C 2, par t _N avi gat or ) : ppa( com pT_W eC
2, par t _N avi gat or ) } 1 : - i n( C1) , com pT_W eC
ar ( C 1) . : - com pT_W eC
ar ( C 1) , pa( C 1, com pT_W eC
avi gat or ) , ppa( T, C 1, C 2, pa r t _N avi gat or ) , not ppa( com pT_W eCoTi nCar , C1, C 2, par t _N avi gat or ) . ppa( com pT_W eC
ar , C 1, C 2, par t _N avi gat or ) : - com pT_W eC
ar ( C 1) , com pT_Navi gat i on_Syst em ( C 2) , f or ( com pT_W eC
ar , C 1, C 2, par t _N avi gat or ) . em pt yPar t ( i nd_com pT_W eCoTi nCar _1, par t _N avi gat or ) : - i n( i nd_com pT_W eC
ar _1) , not pa( i nd_com pT_W eC
ar _1, com pT_W eC
ar , i nd_com pT_Pr of essi onal _N avi gat i on_ Syst em _1, par t _Navi gat or ) , not pa( i nd_com pT_W eC
ar _1, com pT_W eC
ar , i nd_com pT_Busi ness_N avi gat i on_Syst em _1, par t _N avi gat or ) . 1{ pr op_W eCoTi nCar _M
pT_W eC
ar , Y) : pr Spec_2( Y) } 1 : - i n( X) , com pT_W eCoTi nC ar ( X) . pr Spec_2( " 20i " ) . pr Spec_2( " 25i " ) . pr Spec_2( " 25d" ) . pr Spec_2( " 30i " ) . pr Spec_2( " 30d" ) . % const r ai nt W eC
ar : M anual _6_speed_I ncom pat i bl e_w i t h_3Li t r e : - not sat ( com pT_W eC
ar , C 1, const r _com pT_W eC
com pT_W eC
ar ( C 1) , i n( C 1) . sat ( com pT_W eC
ar , C1, const r _com pT_W eC
ar _2) : - not sat ( com pT_W eC
ar , C 1, subexpr _com pT_W eCoTi nC ar _6) , com pT_W eC
1) . sat ( com pT_W eC
ar , C 1, subexpr _com pT_W eCoTi nC ar _6) : - sat ( com pT_W eC
ar , C 1, subexpr _com pT_W eCoTi nC ar _7) , sat ( com pT_W eC
ar , C 1, s ubexpr _com pT_W eC
ar _8) , com pT_W eC
sat ( com pT_W eC
ar , C 1, subexpr _com pT_W eCoTi nC ar _7) : - pr op_W eC
ar _Tr ansm i ssi on( C 1, T_C 1, V_C 1_pr op_W eCoTi nC ar _Tr ansm i ssi on) , i sa( T _C 1, com pT_W eC
ar ) , pr Spec_3( V_C 1_pr op_W eC
ar _Tr ansm i ssi on) , V_C 1_pr op_W eC
ar _Tr ansm i ssi on==" 6- speed" , com pT_W eC
ar ( C 1) . sat ( com pT_W eC
ar , C 1, subexpr _com pT_W eCoTi nC ar _8) : - sat ( com pT_W eC
ar , C 1, subexpr _com pT_W eCoTi nC ar _9) , com pT_W eC
1) . sat ( com pT_W eC
ar , C 1, subexpr _com pT_W eCoTi nC ar _8) : - sat ( com pT_W eC
ar , C 1, subexpr _com pT_W eCoTi nC ar _10) , com pT_W eCoTi nC ar ( C1) . sat ( com pT_W eC
ar , C 1, subexpr _com pT_W eCoTi nC ar _9) : - pr op_W eC
ar _M
1_pr op_W eC
ar _M
1, com pT_W eC
ar ) , pr Spec_2( V_C 1_pr op_W eC
ar _M
1_pr op_W eC
ar _M
" , com pT_W eC
ar ( C 1) . sat ( com pT_W eC
ar , C 1, subexpr _com pT_W eCoTi nC ar _10) : - pr op_W eC
ar _M
1_pr op_W eC
ar _M
1, com pT_W eC
ar ) , pr Spec_2( V_C 1_pr op_W eC
ar _M
1_pr op_W eC
ar _M
" , com pT_W eC
ar ( C 1) .
12