Reputation:
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 t
s 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
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