我正在学习序言。我想知道我怎么能在prolog中代表以下事实?
" SomeCityA和someCityB"之间有300英里。
任何人都请帮助。我已经搜索了足够的但是无法找到我特定问题的解决方案。
答案 0 :(得分:2)
Prolog允许通过事实和规则来表示知识。一个 事实和规则具有以下格式:
A :- A1, .., An
其中A,A1,..,An是所谓的文字。如果n = 0那么它 事实上,如果n> 0,那么它就是一条规则。
文字具有以下语法,name是谓词名称 这些术语是谓词的参数:
literal = atom [ "(" term { "," term } ].
知识表现本身就是一门艺术。可以有 表示的许多要求,可以强制它 有某种形式。
但您可以将其视为使用excel表格的文字 拿桌子。描述列名的列是 没有作为事实和规则进入Prolog,但你可以使用 Prolog comments输入列名,例如:
% distance_between_cities(Atom, Atom, Float)
或更具体:
% distance_between_cities(CityId, CityId, DistanceMiles)
在第一条评论之后,您只需输入事实:
distance_between_cities('New York, US','Los Angeles, US',2443.85).
distance_between_cities('New York, US','San Francisco, US',2563.89).
distance_between_cities('Los Angeles, US','San Francisco, US',347.18).
不同的谓词名称可以命名不同的Excel工作表 可以这么说。一些prolog系统甚至有CSV个接口。
再见