user3170496
user3170496

Reputation:

Proper definition of "atom" in Prolog and Logic Programming

I posted this question on the SWI Prolog Discourse forum and got some useful comments, but maybe people here might also have some ideas about this topic.

I am somewhat confused about how to use the word “atom” in a paper we are writing.

(1) In Prolog an atom is said to be a “Textual constant. Used as name for compound terms, to represent constants or text.”. See here. Accordingly these are atoms: john, grandparent, etc.

(2) In texts about logic programming, e.g. Riguzzi (2018) and Baral and Gelfond (1994), “atoms” are said to be terms with the form p(t1, t2, ..., tn), where the ts are terms and p is a predicate symbol. This corresponds to the use of “atom” in classical first order logic.

Am I correct in assuming that (1) is the proper definition for “atom” when talking about Prolog, and that (2) is the proper definition for “atom” when talking about logic programming? I think that a reason for my confusion is that I think of Prolog as an instance of logic programming.

Cheers/JC

EDIT 2020-08-18**********************************************

It was somewhat challenging to explain unification when using LP terminology; i made an attempt.

Unification with typical Prolog terminology:

Unification:

Unification with typical LP terminology:

Unification:

Upvotes: 3

Views: 4344

Answers (1)

user502187
user502187

Reputation:

To avoid the name clash you can talk about prime formulas
or positive literals, but these 3 are all the same:

https://en.wiktionary.org/wiki/prime_formula

https://en.wikipedia.org/wiki/Literal_(mathematical_logic)

https://en.wikipedia.org/wiki/Atomic_formula

Upvotes: 0

Related Questions