Richtige Definition von „Atom“ in der Prolog- und Logikprogrammierung

Aug 15 2020

Ich habe diese Frage im SWI Prolog Discourse Forum gepostet und einige nützliche Kommentare erhalten, aber vielleicht haben die Leute hier auch einige Ideen zu diesem Thema.

Ich bin etwas verwirrt darüber, wie man das Wort "Atom" in einem Papier verwendet, das wir schreiben.

(1) In Prolog wird ein Atom als „Textkonstante“ bezeichnet. Wird als Name für zusammengesetzte Begriffe verwendet, um Konstanten oder Text darzustellen. “ Siehe hier . Dementsprechend sind diese Atome: john, grandparentusw.

(2) In Texten über Logikprogrammierung, z. B. Riguzzi (2018) und Baral und Gelfond (1994) , werden „Atome“ als Begriffe mit der Form bezeichnet p(t1, t2, ..., tn), wobei die ts Begriffe sind und pein Prädikatsymbol sind. Dies entspricht der Verwendung von "Atom" in der klassischen Logik erster Ordnung.

Habe ich Recht, wenn ich davon ausgehe, dass (1) die richtige Definition für "Atom" ist, wenn über Prolog gesprochen wird, und dass (2) die richtige Definition für "Atom" ist, wenn es um Logikprogrammierung geht? Ich denke, ein Grund für meine Verwirrung ist, dass ich Prolog als eine Instanz der Logikprogrammierung betrachte.

Prost / JC

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

Es war etwas schwierig, die Vereinheitlichung bei der Verwendung der LP-Terminologie zu erklären. Ich habe einen Versuch gemacht.

Vereinigung mit typischer Prolog-Terminologie:

  • Atome, Zahlen, Variablen und Verbindungen sind Begriffe
  • Atom = Zeichenfolge, die mit einem Kleinbuchstaben beginnt
  • Nummer = eine Nummer
  • Variable = Zeichenfolge, die mit einem Großbuchstaben beginnt
  • Verbindung = p (t1, t2, ..., tn) wobei p ein Prädikatsymbol ist und ts Terme sind.

Vereinigung:

  • Zwei Atome vereinigen sich, wenn sie gleich sind
  • Zwei Zahlen vereinen sich, wenn sie gleich sind
  • Eine Variable wird mit jeder Art von Begriff vereinigt
  • Zwei Verbindungen vereinigen sich, wenn (1) sie denselben Namen haben, (2) dieselbe Anzahl von Argumenten, (3) alle ihre Argumente sich vereinigen, (4) ihre Variablen konsistent instanziiert werden können

Vereinheitlichung mit typischer LP-Terminologie:

  • Konstanten, Variablen und Funktionen sind Begriffe
  • Konstante = eine Zeichenfolge, die mit einem Kleinbuchstaben oder einer Zahl beginnt
  • Variable = eine Zeichenfolge, die mit einem Großbuchstaben beginnt
  • Funktion = f (t1, t3, ..., tn) wobei f ein Funktionssymbol ist und die ts Terme sind
  • Atomformel = p (t1, t2, ..., tn) wobei p ein Prädikatsymbol ist und die ts Terme sind

Vereinigung:

  • Zwei Konstanten vereinen sich, wenn sie gleich sind
  • Eine Variable wird mit jeder Art von Begriff vereinigt
  • Zwei Atomformeln oder zwei Funktionen vereinen sich, wenn (1) sie denselben Namen haben, (2) dieselbe Anzahl von Argumenten, (3) alle ihre Argumente vereinheitlichen, (4) ihre Variablen konsistent instanziiert werden können

Antworten

MostowskiCollapse Aug 15 2020 at 20:44

Um den Namenskonflikt zu vermeiden, können Sie über Primformeln
oder positive Literale sprechen , aber diese 3 sind alle gleich:

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

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

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