คำจำกัดความที่เหมาะสมของ“ อะตอม” ใน Prolog และ Logic Programming

Aug 15 2020

ฉันโพสต์คำถามนี้ในฟอรัม SWI Prolog Discourseและได้รับความคิดเห็นที่เป็นประโยชน์ แต่บางทีคนที่นี่อาจมีความคิดบางอย่างเกี่ยวกับหัวข้อนี้

ฉันค่อนข้างสับสนเกี่ยวกับวิธีใช้คำว่า "อะตอม" ในกระดาษที่เรากำลังเขียน

(1) ใน Prolog อะตอมถูกกล่าวว่าเป็น "ค่าคงที่ตามข้อความ ใช้เป็นชื่อของคำประสมเพื่อแสดงค่าคงที่หรือข้อความ” ดูที่นี่ . ดังนั้นเหล่านี้เป็นอะตอม: john, grandparentฯลฯ

(2) ในตำราเกี่ยวกับการเขียนโปรแกรมลอจิกเช่นRiguzzi (2018)และBaral and Gelfond (1994)กล่าวว่า "อะตอม" เป็นคำที่มีรูปแบบp(t1, t2, ..., tn)ซึ่งts เป็นเงื่อนไขและpเป็นสัญลักษณ์เพรดิเคต สิ่งนี้สอดคล้องกับการใช้ "อะตอม" ในตรรกะลำดับแรกแบบคลาสสิก

ฉันถูกต้องหรือไม่หากสมมติว่า (1) เป็นคำจำกัดความที่เหมาะสมสำหรับ "อะตอม" เมื่อพูดถึง Prolog และ (2) เป็นคำจำกัดความที่เหมาะสมสำหรับ "อะตอม" เมื่อพูดถึงการเขียนโปรแกรมเชิงตรรกะ ฉันคิดว่าสาเหตุที่ทำให้ฉันสับสนคือฉันคิดว่า Prolog เป็นตัวอย่างของการเขียนโปรแกรมตรรกะ

ไชโย / JC

แก้ไข 2020-08-18 ******************************************** **

มันค่อนข้างท้าทายในการอธิบายการรวมกันเมื่อใช้คำศัพท์ LP ฉันพยายาม

การรวมเข้ากับคำศัพท์ทั่วไปของ Prolog:

  • อะตอมตัวเลขตัวแปรและสารประกอบเป็นเงื่อนไข
  • Atom = สตริงที่ขึ้นต้นด้วยอักษรตัวพิมพ์เล็ก
  • Number = ตัวเลข
  • Variable = สตริงที่ขึ้นต้นด้วยอักษรตัวใหญ่
  • Compound = p (t1, t2, ... , tn) โดยที่ p เป็นสัญลักษณ์เพรดิเคตและ ts เป็นเงื่อนไข

การรวมกัน:

  • อะตอมสองอะตอมจะรวมกันเป็นหนึ่งเดียวกันหากเหมือนกัน
  • ตัวเลขสองตัวจะรวมกันถ้าเหมือนกัน
  • ตัวแปรรวมเข้ากับคำศัพท์ประเภทใดก็ได้
  • สารประกอบสองชนิดรวมกันถ้า (1) มีชื่อเดียวกัน (2) จำนวนอาร์กิวเมนต์เท่ากัน (3) อาร์กิวเมนต์ทั้งหมดรวมกัน (4) ตัวแปรของพวกเขาสามารถสร้างอินสแตนซ์ได้อย่างสม่ำเสมอ

การรวมกับคำศัพท์ LP ทั่วไป:

  • ค่าคงที่ตัวแปรและฟังก์ชันเป็นเงื่อนไข
  • ค่าคงที่ = สตริงที่ขึ้นต้นด้วยอักษรตัวพิมพ์เล็กหรือตัวเลข
  • Variable = สตริงที่ขึ้นต้นด้วยอักษรตัวพิมพ์ใหญ่
  • ฟังก์ชัน = f (t1, t3, ... , tn) โดยที่ f เป็นสัญลักษณ์ของฟังก์ชันและ ts เป็นเงื่อนไข
  • สูตรอะตอม = p (t1, t2, ... , tn) โดยที่ p เป็นสัญลักษณ์เพรดิเคตและ ts เป็นเงื่อนไข

การรวมกัน:

  • ค่าคงที่สองค่าจะรวมกันถ้าเหมือนกัน
  • ตัวแปรรวมเข้ากับคำศัพท์ประเภทใดก็ได้
  • สูตรอะตอมสองสูตรหรือสองฟังก์ชันรวมกันถ้า (1) มีชื่อเดียวกัน (2) จำนวนอาร์กิวเมนต์เท่ากัน (3) อาร์กิวเมนต์ทั้งหมดรวมกัน (4) ตัวแปรของพวกเขาสามารถสร้างอินสแตนซ์ได้อย่างสม่ำเสมอ

คำตอบ

MostowskiCollapse Aug 15 2020 at 20:44

เพื่อหลีกเลี่ยงการปะทะกันของชื่อคุณสามารถพูดถึงสูตรเฉพาะ
หรือตัวอักษรบวก แต่ทั้ง 3 นี้เหมือนกันทั้งหมด:

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

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

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