predicates

%
%       fact prototypes
%

	basic_part(symbol, symbol, integer, symbol)
	assembled_part(symbol, symbol, integer)
	subpart_of(symbol, symbol, integer)

%
%	rule prototypes
%

clauses

%
%       facts
%

%
%	Basic Part: Part PName Cost SName
% 	----------------------------------------------------
	basic_part(s201, seat_pad,         5,  chairsRus  ).
	basic_part(s202, back_pad,         4,  chairsRus  ).
	basic_part(s206, base_upper_frame, 7,  chairsRus  ).
	basic_part(s207, arm_rest_pad,     1,  chairsRus  ).
	basic_part(s210, center_connector, 12, chairsRus  ).
	basic_part(s211, left_connector,   4,  chairsRus  ).
	basic_part(s212, right_connector,  4,  chairsRus  ).
	basic_part(s213, spring,           5,  chairsRus  ).
	basic_part(s214, adjuster,         7,  chairsRus  ).
	basic_part(s215, swivel_screw,     5,  chairsRus  ).
	basic_part(s216, swivel_nut,       3,  chairsRus  ).
	basic_part(s218, base_support,     12, chairsRus  ).
	basic_part(s220, castor_support,   3,  chairsRus  ).
	basic_part(s221, castor_wheel,     1,  chairsRus  ).
	basic_part(c301, seat_pad,         5,  chairsRus  ).
	basic_part(c302, back_pad,         4,  chairsRus  ).
	basic_part(c303, frame,            10, chairsRus  ).
	basic_part(d401, frame,            30, officeSpply).
	basic_part(d403, regular_drawer,   5,  officeSpply).
	basic_part(d404, file_drawer,      9,  officeSpply).
	basic_part(d405, draw_table,       3,  officeSpply).
	basic_part(d406, drawer_lock,      1,  officeSpply).
	basic_part(d407, drawer_frame,     6,  officeSpply).
	basic_part(f503, frame,            20, officeSpply).
	basic_part(f504, cabinet_lock,     2,  officeSpply).
	basic_part(f505, drawer_frame,     10, officeSpply).
	basic_part(f506, drawer_handle,    1,  officeSpply).
	basic_part(f507, open_lever,       1,  officeSpply).

%	Assembled Part: Part   PName        AssemblyCost
%	------------------------------------------------
	assembled_part(s200, swivel_chair,  7 ).
	assembled_part(s203, swivel_frame,  2 ).
	assembled_part(s204, upper_frame,   2 ).
	assembled_part(s205, lower_frame,   2 ).
	assembled_part(s208, rocker,        15).
	assembled_part(s209, swivel,        5 ).
	assembled_part(s217, swivel_base,   4 ).
	assembled_part(s219, castor,        1 ).
	assembled_part(c300, basic_chair,   7 ).
	assembled_part(d400, desk,          8 ).
	assembled_part(d402, center_drawer, 2 ).
	assembled_part(f500, file_cabinet,  4 ).
	assembled_part(f501, cabinet_frame, 2 ).
	assembled_part(f502, file_drawer,   4 ).

%	Subpart Of: Part SubPartOf Qty
%	------------------------------
	subpart_of(s201, s200, 1).
	subpart_of(s202, s200, 1).
	subpart_of(s203, s200, 1).
	subpart_of(s204, s203, 1).
	subpart_of(s205, s203, 1).
	subpart_of(s206, s204, 1).
	subpart_of(s207, s204, 2).
	subpart_of(s208, s205, 1).
	subpart_of(s209, s205, 1).
	subpart_of(s210, s208, 1).
	subpart_of(s211, s208, 1).
	subpart_of(s212, s208, 1).
	subpart_of(s213, s208, 2).
	subpart_of(s214, s208, 1).
	subpart_of(s215, s209, 1).
	subpart_of(s216, s209, 1).
	subpart_of(s217, s209, 1).
	subpart_of(s218, s217, 1).
	subpart_of(s219, s217, 4).
	subpart_of(s220, s219, 1).
	subpart_of(s221, s219, 2).
	subpart_of(c301, c300, 1).
	subpart_of(c302, c300, 1).
	subpart_of(c303, c300, 1).
	subpart_of(d401, d400, 1).
	subpart_of(d402, d400, 1).
	subpart_of(d403, d400, 4).
	subpart_of(d404, d400, 1).
	subpart_of(d405, d400, 2).
	subpart_of(d406, d402, 1).
	subpart_of(d407, d402, 1).
	subpart_of(f501, f500, 1).
	subpart_of(f502, f500, 4).
	subpart_of(f503, f501, 1).
	subpart_of(f504, f501, 1).
	subpart_of(f505, f502, 1).
	subpart_of(f506, f502, 1).
	subpart_of(f507, f502, 1).

%
%	add your rules here
%

goal

%
%	query the database here
%	

	nl,
	fail.