มีทฤษฎีมอร์ฟ (isomorphism) ระหว่างหมวดหมู่ย่อยกับพีชคณิตเชิงสัมพันธ์หรือไม่?


12

มันมาจากมุมมองข้อมูลขนาดใหญ่ โดยทั่วไปเฟรมเวิร์กจำนวนมาก (เช่น Apache Spark) "ชดเชย" ขาดการดำเนินการเชิงสัมพันธ์ด้วยการจัดหาอินเทอร์เฟซเหมือน Functor / Monad และมีการเคลื่อนไหวที่คล้ายกันต่อการแปลง cat-to-SQL (Slick in Scala) ตัวอย่างเช่นเราต้องการการเข้าร่วมที่เป็นธรรมชาติ (สมมติว่าไม่มีการซ้ำซ้อนกับดัชนี) สำหรับการคูณเวกเตอร์องค์ประกอบที่ชาญฉลาดจากมุมมอง SQL ซึ่งอาจถือได้ว่าเป็นzip + map(multiply) (Spark's MLib แต่มีอยู่แล้วElementwiseProduct)ในแอปพลิเคชันของทฤษฎีหมวดหมู่

เพียงแค่พูด (ตัวอย่างต่อไปนี้อยู่ใน Scala):

  • subcase อ้างอิงของเข้าร่วมอาจจะคิดว่าเป็น functor applicative (คอลเลกชันเรียงมากกว่า) ซึ่งในทางกลับกันมันจะช่วยให้เราzip: ->List(1,2,3).ap(List(2,4,8).map(a => (b: Int) => a * b)) (List(1,2,3) zip List(2,4,8)).map(x => x._1 * x._2)ยิ่งไปกว่านั้นเราสามารถชักจูงให้ผู้อื่นเข้าร่วมโดยสมมติว่ามีgroupByการดำเนินการล่วงหน้า

  • การเข้าร่วมและการเลือกอื่น ๆ ถือเป็นโมนาล ตัวอย่างเช่นWHEREเป็นเพียง: List(1,2,2,4).flatMap(x => if (x < 3) List(x) else List.empty)->List(1,2,2,4).filter(_ < 3)

  • ข้อมูลเองก็แค่ ADT (GADT ด้วยหรือเปล่า) ซึ่งในทางกลับกันดูเหมือนว่า Set-category แบบง่าย ๆ (หรือมากกว่านั้นคือ Cartesian-closed) ดังนั้นจึงควร (ฉันคิดว่า) ครอบคลุมการทำงานของ Set-based (เนื่องจาก Curry- Howard-Lambek ตัวเอง) และการดำเนินการเช่นRENAME(อย่างน้อยในทางปฏิบัติ)

  • การรวมที่สอดคล้องกับfold/reduce(catamorphism)

ดังนั้นสิ่งที่ฉันถามคือเราสามารถสร้างมอร์ฟิซึ่มส์ระหว่างทฤษฎีหมวดหมู่ (อาจเป็นส่วนย่อย) และพีชคณิตเชิงสัมพันธ์ (ทั้ง) หรือมีอะไรบางอย่างเปิดเผย หากใช้งานได้หมวด "เซตย่อย" ที่แน่นอนคือ isomorphic ไปยัง relalgebra?

คุณจะเห็นว่าข้อสันนิษฐานของฉันค่อนข้างกว้างในขณะที่วิธีแก้ปัญหาอย่างเป็นทางการเช่นการติดต่อกันของCurry-Howard-Lambek สำหรับตรรกะ -cat-lambdaนั้นแม่นยำมากขึ้น - จริง ๆ แล้วฉันขออ้างอิงการศึกษาที่สำเร็จ (ซึ่งแสดงความสัมพันธ์โดยตรง ) พร้อมตัวอย่างเพิ่มเติมใน Scala / Haskell

แก้ไข : คำตอบที่ได้รับการยอมรับทำให้ฉันคิดว่าฉันไปไกลเกินกว่าที่จะแสดงการรวมและเงื่อนไขในฐานะ monad (โดยเฉพาะการใช้ค่าว่างที่ทำให้อินสแตนซ์ของ FALSE มีประสิทธิภาพ) ฉันคิดว่า pullbacks Monads ดีกว่าสำหรับการสั่งซื้อ (การทำรัง) ที่สูงขึ้นเช่น GROUP BY ซึ่งไม่ได้เป็นส่วนหนึ่งของ relalgebra

คำตอบ:


13

ผมขอพูดเกี่ยวกับการโต้ตอบของ Curry-Howard-Lambek กับศัพท์แสงเล็กน้อยที่ผมจะอธิบาย แลมเบคแสดงให้เห็นว่าแคลคูลัสแลมบ์ดาที่พิมพ์ด้วยผลิตภัณฑ์เป็นภาษาภายในของหมวดหมู่ปิดคาร์ทีเซียน ฉันจะไม่แยกแยะว่าหมวดหมู่ปิดคาร์ทีเซียนคืออะไร แต่มันก็ไม่ยาก แต่แทนที่จะเป็นคำที่กล่าวมาข้างต้นคือคุณไม่จำเป็นต้องรู้! (หรือที่คุณรู้อยู่แล้วถ้าคุณรู้ว่าแคลคูลัสแลมบ์ดาที่พิมพ์ด้วยผลิตภัณฑ์คืออะไร) สำหรับทฤษฎี / ตรรกะบางประเภทเป็นภาษาภายใน / ตรรกะของหมวดหมู่หมายถึง 1) ที่เราสามารถแปลภาษาเป็นโครงสร้างบน หมวดหมู่ในลักษณะที่รักษาโครงสร้างของภาษา (มีผลต่อสภาพความมั่นคง) และ2) และ "เป็นหลัก" โครงสร้างทั้งหมดที่เกิดขึ้นจากการปิดคาร์ทีเซียนสามารถพูดคุยในแง่ของภาษานี้ (เงื่อนไขครบถ้วน)

{xx=x}. นิพจน์พีชคณิตเชิงสัมพันธ์ทุกรายการมีเหตุผลเทียบเท่ากับการสืบค้นที่เป็นอิสระของโดเมนในแคลคูลัสเชิงสัมพันธ์

ใส่ว่านอกเหนือประเภทที่มีตรรกะภายใน (ซึ่งเป็นหลักdecategorifiedฟอร์มหรือหลักฐานที่ไม่เกี่ยวข้องของภาษาภายใน) เป็นประเภท Heytingสำหรับ FOL intuitionistic และประเภทบูลีนสำหรับ FOL คลาสสิก (เวอร์ชันที่เกี่ยวข้องกับการจำแนกประเภท / พิสูจน์ได้อธิบายไว้โดยhyperdoctrinesนอกจากนี้ยังมีความเกี่ยวข้องมากคือpretoposesทุกประเภท) โปรดทราบว่า FOL, แคลคูลัสเชิงสัมพันธ์และพีชคณิตเชิงสัมพันธ์ไม่สนับสนุนการรวม (พวกเขายังไม่สนับสนุนการสอบถามซ้ำที่จำเป็นในการเป็นตัวแทนของแบบสอบถามDatalog ) วิธีหนึ่งในการGROUP BYและการรวมตัวกันคือการอนุญาตให้คอลัมน์ค่าความสัมพันธ์ซึ่งนำไปสู่ตรรกะลำดับสูงกว่า (HOL) และแคลคูลัสเชิงสัมพันธ์แบบซ้อน (NRC) เมื่อเรามีคอลัมน์ที่มีค่าความสัมพันธ์แล้วการรวมสามารถทำเป็นรูปเป็นตัวดำเนินการ "เซนต์คิตส์และเนวิส" ได้อีก

ตัวอย่างของคุณชี้ไปที่ข้อเท็จจริงว่าเมตาดาต้าภาษาเป็นภาษาที่เหมาะสมสำหรับการสืบค้น กระดาษMonad Comprehensions: การนำเสนอ Queries ( PDF ) ที่หลากหลายช่วยสะกดให้ดี รูปลักษณ์ที่ครอบคลุมและทันสมัยมากขึ้นคือวิทยานิพนธ์ระดับปริญญาเอกของ Ryan Wisnesky, A Query Language with Categorical Types ( PDF ) ซึ่งเกี่ยวข้องกับผลงานของ David Spivakซึ่งค่อนข้างจะเกี่ยวข้องกับการตีความคำถามของคุณ (ถ้าคุณต้องการที่จะไปในอดีตมากขึ้นมีKleisli, ระบบแบบสอบถามการทำงาน ) ในความเป็นจริงเมตาดาต้าภาษา monadic เป็นภาษาที่ดีสำหรับการค้นหาในที่ซ้อนกันแคลคูลัสเชิงสัมพันธ์ Wisnesky กำหนด NRC ในแง่ของtopos ระดับประถมศึกษาที่มีภาษาภายในคือภาษาMitchell – Bénabouซึ่งโดยทั่วไปดูเหมือนว่าทฤษฎีเซต intuitionistic ที่มีปริมาณ จำกัด เพื่อจุดประสงค์ของ Wisnesky เขาใช้Boolean toposซึ่งจะมีตรรกะแบบดั้งเดิมแทน ภาษานี้มีประสิทธิภาพมากกว่า SQL (ดาต้าหลัก) หรือดาตาล็อกค่อนข้างมาก เป็นมูลค่า noting ว่าประเภทของการจำกัดชุดรูปแบบ (บูลีน) topos


1
แม้ว่ามันจะไม่เกี่ยวข้องกันโดยตรง แต่เมื่อคุณพูดถึง topoi และ HOL ก็คงจะดีถ้าได้เห็นกลุ่มที่สูงขึ้นและ / หรือการตีความ homotopy เช่นกัน
dk14
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.