:- initialization( main) .
main :-
halt.% Fruits Identification System
% Facts: Fruit data
fruit( apple, red, small, round) .
fruit( orange, orange, small, round) .
fruit( banana, yellow, medium, elongated) .
% Add more fruit facts here
% Rules: Fruit identification based on color, size, and shape
identify_fruit( Color, Size, Shape, Fruit) :-
fruit( Fruit, Color, Size, Shape) .
% Sample queries
% Uncomment
and modify these queries to test the identification
system % identify_fruit( red, small, round, X) .
% identify_fruit( orange, small, round, X) .
% identify_fruit( yellow, medium, elongated, X) .
% Add more sample queries here
Oi0gaW5pdGlhbGl6YXRpb24obWFpbikuCm1haW4gOi0gCgloYWx0LiUgRnJ1aXRzIElkZW50aWZpY2F0aW9uIFN5c3RlbQoKJSBGYWN0czogRnJ1aXQgZGF0YQpmcnVpdChhcHBsZSwgcmVkLCBzbWFsbCwgcm91bmQpLgpmcnVpdChvcmFuZ2UsIG9yYW5nZSwgc21hbGwsIHJvdW5kKS4KZnJ1aXQoYmFuYW5hLCB5ZWxsb3csIG1lZGl1bSwgZWxvbmdhdGVkKS4KJSBBZGQgbW9yZSBmcnVpdCBmYWN0cyBoZXJlCgolIFJ1bGVzOiBGcnVpdCBpZGVudGlmaWNhdGlvbiBiYXNlZCBvbiBjb2xvciwgc2l6ZSwgYW5kIHNoYXBlCmlkZW50aWZ5X2ZydWl0KENvbG9yLCBTaXplLCBTaGFwZSwgRnJ1aXQpIDotCiAgICBmcnVpdChGcnVpdCwgQ29sb3IsIFNpemUsIFNoYXBlKS4KCiUgU2FtcGxlIHF1ZXJpZXMKJSBVbmNvbW1lbnQgYW5kIG1vZGlmeSB0aGVzZSBxdWVyaWVzIHRvIHRlc3QgdGhlIGlkZW50aWZpY2F0aW9uIHN5c3RlbQolIGlkZW50aWZ5X2ZydWl0KHJlZCwgc21hbGwsIHJvdW5kLCBYKS4KJSBpZGVudGlmeV9mcnVpdChvcmFuZ2UsIHNtYWxsLCByb3VuZCwgWCkuCiUgaWRlbnRpZnlfZnJ1aXQoeWVsbG93LCBtZWRpdW0sIGVsb25nYXRlZCwgWCkuCiUgQWRkIG1vcmUgc2FtcGxlIHF1ZXJpZXMgaGVyZQ==
stdin
JSBTZWFyY2ggVHJlZQoKJSBUcmVlIHJlcHJlc2VudGF0aW9uOiB0cmVlKFZhbHVlLCBMZWZ0LCBSaWdodCkKJSBBIHRyZWUgaGFzIGEgdmFsdWUgYW5kIHR3byBicmFuY2hlczogbGVmdCBhbmQgcmlnaHQKCiUgQmFzZSBjYXNlOiBhbiBlbXB0eSB0cmVlCnRyZWUoZW1wdHksIG5pbCwgbmlsKS4KCiUgUmVjdXJzaXZlIGNhc2U6IGEgbm9uLWVtcHR5IHRyZWUgd2l0aCBhIHZhbHVlIGFuZCB0d28gYnJhbmNoZXMKdHJlZShWYWx1ZSwgTGVmdCwgUmlnaHQpIDotCiAgICB0cmVlKExlZnRWYWx1ZSwgTGVmdExlZnQsIExlZnRSaWdodCksCiAgICB0cmVlKFJpZ2h0VmFsdWUsIFJpZ2h0TGVmdCwgUmlnaHRSaWdodCksCiAgICBWYWx1ZSA9IFtMZWZ0VmFsdWUsIFJpZ2h0VmFsdWVdLAogICAgTGVmdCA9IHRyZWUoTGVmdFZhbHVlLCBMZWZ0TGVmdCwgTGVmdFJpZ2h0KSwKICAgIFJpZ2h0ID0gdHJlZShSaWdodFZhbHVlLCBSaWdodExlZnQsIFJpZ2h0UmlnaHQpLgoKJSBFeGFtcGxlIHNlYXJjaCB0cmVlCmV4YW1wbGVfdHJlZShUKSA6LQogICAgVCA9IHRyZWUoMSwKICAgICAgICB0cmVlKDIsCiAgICAgICAgICAgIHRyZWUoNCwKICAgICAgICAgICAgICAgIHRyZWUoOCwgZW1wdHksIGVtcHR5KSwKICAgICAgICAgICAgICAgIHRyZWUoOSwgZW1wdHksIGVtcHR5KQogICAgICAgICAgICApLAogICAgICAgICAgICB0cmVlKDUsIGVtcHR5LCBlbXB0eSkKICAgICAgICApLAogICAgICAgIHRyZWUoMywKICAgICAgICAgICAgdHJlZSg2LCBlbXB0eSwgZW1wdHkpLAogICAgICAgICAgICB0cmVlKDcsIGVtcHR5LCBlbXB0eSkKICAgICAgICApCiAgICApLgoKJSBRdWVyeSBleGFtcGxlCiUgVG8gcXVlcnkgdGhlIGV4YW1wbGVfdHJlZSBmb3IgdGhlIHZhbHVlIGF0IGEgc3BlY2lmaWMgbm9kZSwgdXNlIHRoZSB0cmVlLzMgcHJlZGljYXRlLgolIEZvciBleGFtcGxlLCB0byBmaW5kIHRoZSB2YWx1ZSBhdCB0aGUgbGVmdCBicmFuY2ggb2YgdGhlIHJvb3Qgbm9kZSBpbiB0aGUgZXhhbXBsZV90cmVlOgolIHRyZWUoVmFsdWUsIExlZnQsIF8pID0gZXhhbXBsZV90cmVlKFQpLAolIHdyaXRlKExlZnQpLg==
% Search Tree
% Tree representation: tree(Value, Left, Right)
% A tree has a value and two branches: left and right
% Base case: an empty tree
tree(empty, nil, nil).
% Recursive case: a non-empty tree with a value and two branches
tree(Value, Left, Right) :-
tree(LeftValue, LeftLeft, LeftRight),
tree(RightValue, RightLeft, RightRight),
Value = [LeftValue, RightValue],
Left = tree(LeftValue, LeftLeft, LeftRight),
Right = tree(RightValue, RightLeft, RightRight).
% Example search tree
example_tree(T) :-
T = tree(1,
tree(2,
tree(4,
tree(8, empty, empty),
tree(9, empty, empty)
),
tree(5, empty, empty)
),
tree(3,
tree(6, empty, empty),
tree(7, empty, empty)
)
).
% Query example
% To query the example_tree for the value at a specific node, use the tree/3 predicate.
% For example, to find the value at the left branch of the root node in the example_tree:
% tree(Value, Left, _) = example_tree(T),
% write(Left).