在prolog中代表以下事实

时间:2014-11-22 18:47:09

标签: prolog

我正在学习序言。我想知道我怎么能在prolog中代表以下事实?
" SomeCityA和someCityB"之间有300英里。 任何人都请帮助。我已经搜索了足够的但是无法找到我特定问题的解决方案。

1 个答案:

答案 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个接口。

再见