มันดูเหมือนว่าจะเขียนบอกเล่า SQL
เป็นที่นิยมมากในการเขียนโปรแกรมจำเป็น อย่างไรก็ตามมันก็ดูเหมือนว่าการเขียนDeclarative Prolog
สามารถบันทึกความซับซ้อนมากมาย แต่นี่ไม่ใช่เรื่องธรรมดา
มีแบบอย่างในอดีตสำหรับการตั้งค่าที่ชัดเจนของ SQL มากกว่า Prolog นี้หรือไม่?
หากเหตุผลคือขาดการสนับสนุนดั้งเดิมโดยภาษาที่จำเป็นแล้วเป็นไปได้ไหมที่จะตอบว่าทำไมผู้สร้างภาษาไม่พบว่ามีประโยชน์ในการสนับสนุนโดยกำเนิดProlog
ตั้งแต่แรก?
เพื่อให้ตัวอย่างเฉพาะ:
ตัวอย่างที่ 1 การ
ประเมินแอปพลิเคชันสินเชื่ออาจเป็นโค้ดเพียงไม่กี่บรรทัดProlog
เช่นSELECT/JOIN
ข้อความค้นหาที่เป็นโค้ดเพียงไม่กี่บรรทัดSQL
แต่ดูเหมือนว่าข้อดีจะไม่ชัดเจนเท่าที่SQL
ควร
ตัวอย่างที่ 2
นี่คือปัญหาตัวอย่างอื่นและวิธีแก้ไขใน Prolog โปรแกรมตรรกะข้อ จำกัด ต่อไปนี้แสดงชุดข้อมูลที่ง่ายของประวัติของ john ในฐานะครู:
teaches(john, hardware, T) :- 1990 ≤ T, T < 1999.
teaches(john, software, T) :- 1999 ≤ T, T < 2005.
teaches(john, logic, T) :- 2005 ≤ T, T ≤ 2012.
rank(john, instructor, T) :- 1990 ≤ T, T < 2010.
rank(john, professor, T) :- 2010 ≤ T, T < 2014.
ประโยคเป้าหมายต่อไปนี้จะสืบค้นชุดข้อมูลเพื่อหาว่าเมื่อใด John ได้สอนตรรกะและเป็นอาจารย์ :
:- teaches(john, logic, T), rank(john, professor, T).
ผลลัพธ์:
2010 ≤ T, T ≤ 2012.
ในตัวอย่างด้านบนมันจะง่ายที่SQL
จะได้ผลลัพธ์เดียวกัน Array
แต่สมมติว่าคุณมีข้อมูลนี้ในการ SQL
แล้วมันไม่ได้เป็นเรื่องง่ายที่จะได้รับผลเดียวกันโดยใช้ และในกรณีของข้อมูลที่เก็บไว้ในอาร์เรย์ฉันเชื่อว่ารหัส Prolog จะง่ายต่อการเขียนและบำรุงรักษา