寻找 algorithm/research 区域,该区域确定在给定 Prolog 程序的情况下使 Prolog 查询为真的事实
Look for algorithm/research area that determines facts that would make a Prolog query true given a Prolog program
我正在寻找该研究领域的研究、算法甚至术语,这些研究采用 Prolog 程序和我希望 为真的查询并试图找到事实需要断言才能使其成为现实。例如:
% Program
hasProperty(Object, Property) :-
property(Object, hasProperty, Property).
property(apple, hasProperty, red).
property(car, hasProperty, drivable).
% Magic function that determines what Facts would make
% query 'hasProperty(lemon, sour)' true
% in the program above
?- whatFacts(hasProperty(lemon, sour), Facts).
Facts = [property(lemon, sour)]
我确信已经对此进行了研究,当然在一般情况下它似乎无法解决,但我很好奇已经做了什么但是我很难找到正确的术语来找到工作。
想要任何指向我正在描述的领域或问题的实际算法或名称的指针。
如评论中所述,这称为归纳推理,一个好的指南简单合乎逻辑:https://too.simply-logical.space/src/text/3_part_iii/8.0.html
这叫“拐”。
对于哲学逻辑的观点,斯坦福哲学百科全书提供了这个词条:Abduction.
对于逻辑编程的观点,Wikipedia 提供了这个条目:Abductive Logic Programming.
一篇使用 Prolog 和 CHR(约束处理规则)进行溯因推理的论文:
Henning Christiansen:Abductive reasoning in Prolog and CHR (PDF):KIIS 课程简介,2005 年秋季。
克里斯蒂安森指的是这本书
外展和归纳:关于它们的关系和整合的论文,由 Peter A. Flach 和 Antonis Hadjiantonis 编辑(Kluwer Academic Publishers,2000 年 4 月),Amazon Link, first chapter at researchgate
并提供了这个介绍性解释器:
Deduction, reasoning within the knowledge we have already, i.e.,from those
facts we know and those rules and regularities of the world that we are
familiar with. E.g., reasoning from causes to effects: If you make a fire
here, you will burn down the house.
在 Prolog 中,如果您的目标恰好是“烧毁房子”,那么语言的结构是最自然地找到前提“在这里生火”。
Induction, finding general rules from the regularities that we have
experienced in the facts that we know; these rules can be used later for
prediction: Every time I made a fire in my living room, the house burnt
down ... Aha, the next time I make a fire in my living room, the house
will burn down too.
Abduction, reasoning from observed results to the basic facts from which
they follow, quite often it means from an observed effect to produce a
qualified guess for a possible cause: The house burnt down, perhaps my cousin
has made a fire in the living room again.
“溯因逻辑编程”(ALP) 是(曾经是?)一个活跃的研究领域。
这是一个洒水器 Link search result。
ALP 是常识推理和规划中的常见问题。想到的例子:
- CIFF 证明程序
带约束的溯因逻辑编程:理论、实现和
实验
- 罗伯特·科瓦尔斯基、法里巴·萨德里等人。曾参与“LPS”(Logic Production
System),它在
event calculus 的上下文
决定采取什么行动来创造关于世界的事实
true
(希望
有关更多详细信息,我希望他们正在编辑这方面的书。
- 相反,Raymond Reiter 不使用 Prolog,但是
Answer Set Programming
(这可能比 Prolog 的 SLDNF 方法更适合 ALP)
(除其他外)溯因推理
Situation Calculus。
本书 Knowledge in Action(麻省理工学院出版社,2001 年 7 月)中有更多相关内容。
我正在寻找该研究领域的研究、算法甚至术语,这些研究采用 Prolog 程序和我希望 为真的查询并试图找到事实需要断言才能使其成为现实。例如:
% Program
hasProperty(Object, Property) :-
property(Object, hasProperty, Property).
property(apple, hasProperty, red).
property(car, hasProperty, drivable).
% Magic function that determines what Facts would make
% query 'hasProperty(lemon, sour)' true
% in the program above
?- whatFacts(hasProperty(lemon, sour), Facts).
Facts = [property(lemon, sour)]
我确信已经对此进行了研究,当然在一般情况下它似乎无法解决,但我很好奇已经做了什么但是我很难找到正确的术语来找到工作。
想要任何指向我正在描述的领域或问题的实际算法或名称的指针。
如评论中所述,这称为归纳推理,一个好的指南简单合乎逻辑:https://too.simply-logical.space/src/text/3_part_iii/8.0.html
这叫“拐”。
对于哲学逻辑的观点,斯坦福哲学百科全书提供了这个词条:Abduction.
对于逻辑编程的观点,Wikipedia 提供了这个条目:Abductive Logic Programming.
一篇使用 Prolog 和 CHR(约束处理规则)进行溯因推理的论文:
Henning Christiansen:Abductive reasoning in Prolog and CHR (PDF):KIIS 课程简介,2005 年秋季。
克里斯蒂安森指的是这本书
外展和归纳:关于它们的关系和整合的论文,由 Peter A. Flach 和 Antonis Hadjiantonis 编辑(Kluwer Academic Publishers,2000 年 4 月),Amazon Link, first chapter at researchgate
并提供了这个介绍性解释器:
Deduction, reasoning within the knowledge we have already, i.e.,from those facts we know and those rules and regularities of the world that we are familiar with. E.g., reasoning from causes to effects: If you make a fire here, you will burn down the house.
在 Prolog 中,如果您的目标恰好是“烧毁房子”,那么语言的结构是最自然地找到前提“在这里生火”。
Induction, finding general rules from the regularities that we have experienced in the facts that we know; these rules can be used later for prediction: Every time I made a fire in my living room, the house burnt down ... Aha, the next time I make a fire in my living room, the house will burn down too.
Abduction, reasoning from observed results to the basic facts from which they follow, quite often it means from an observed effect to produce a qualified guess for a possible cause: The house burnt down, perhaps my cousin has made a fire in the living room again.
“溯因逻辑编程”(ALP) 是(曾经是?)一个活跃的研究领域。
这是一个洒水器 Link search result。
ALP 是常识推理和规划中的常见问题。想到的例子:
- CIFF 证明程序 带约束的溯因逻辑编程:理论、实现和 实验
- 罗伯特·科瓦尔斯基、法里巴·萨德里等人。曾参与“LPS”(Logic Production
System),它在
event calculus 的上下文
决定采取什么行动来创造关于世界的事实
true
(希望 有关更多详细信息,我希望他们正在编辑这方面的书。 - 相反,Raymond Reiter 不使用 Prolog,但是 Answer Set Programming (这可能比 Prolog 的 SLDNF 方法更适合 ALP) (除其他外)溯因推理 Situation Calculus。 本书 Knowledge in Action(麻省理工学院出版社,2001 年 7 月)中有更多相关内容。