:- object(shape). :- info([ author is 'Paulo Moura', version is 1.0, date is 2003/2/3, comment is 'Generic geometric shape.']). :- public(color/1). :- mode(color(?atom), zero_or_one). :- info(color/1, [ comment is 'Shape color.', argnames is ['Color']]). :- public(position/2). :- mode(position(?integer, ?integer), zero_or_one). :- info(position/2, [ comment is 'Shape position.', argnames is ['X', 'Y']]). color(red). % default shape color position(0, 0). % default shape position :- end_object.