การรักษาหมวดหมู่ตามทฤษฎีของ diffs, patch และการผสาน?


14

มีหมวดหมู่ของแพทช์ที่มีลักษณะเช่นนี้หรือไม่:

  • วัตถุเป็นสายอักขระบางตัวในฐาน
  • morphisms คือสคริปต์แก้ไข ("diffs" หรือ "patches") ระหว่างสตริง

ฉันสนใจคำถามเหล่านี้:

  • มีความคิดที่เป็นหมวดหมู่ของสคริปต์แก้ไขน้อยที่สุดหรือไม่? อาจเป็นประเภทของแพทช์ที่อุดมไปด้วย PO-Sets?
  • มีการควบรวมกิจการของแพทช์ pushout เด็ดขาด?
  • วิธีการสรุปจากสตริงไปยังต้นไม้ (ระบบไฟล์หรือประเภทข้อมูลพีชคณิต)

1
คุณจะต้องดูทฤษฎีหลังDarcs VCS
Bergi

1
... หรือPijulซึ่งเป็นความพยายามล่าสุดในการสร้าง "Darcs ที่ใหม่กว่า" (และเท่าที่ฉันจำได้จากการพูดคุยนั้นการรวมกันเป็นสิ่งที่ผลักดันใน "การทำให้สมบูรณ์ฟรี" ของหมวดหมู่ diff ... )
phipsgabler

คำตอบ:


15

มาร์ตินชี้ให้เห็นว่ามีงานบางอย่างเกี่ยวกับการเป็นตัวแทนของแพทช์ Mimram และ Di Giusto ของ "เป็นหมวดหมู่ทฤษฎีของแพทช์" UNIX diffเป็นวิธีการที่เด็ดขาดที่กว้างขวางที่สุดในการแก้ไขสคริปต์ที่ใช้โดย

ในความหมายคุณมีสิ่งที่คุณต้องการ วัตถุเป็นลำดับที่แน่นอนของคำบนตัวอักษรLซึ่งถูกมองว่าเป็นแผนที่A:[n]Lโดยที่[n]หมายถึงเซตที่มีองค์ประกอบnลูกศรระหว่างA:[n]LและB:[ม.]Lคือการทำแผนที่แบบฉีดเพิ่มบางส่วน:[n][ม.]. ความเฉื่อยชาและการเพิ่มขึ้นเป็นสิ่งที่บ่งชี้ว่าสำเนาไม่เคยข้ามกัน คุณสามารถค้นหารายละเอียดทั้งหมดที่อยู่บนกระดาษ

ใช่การรวมกันถูกมองว่าเป็นสิ่งที่ผลักดันให้ cocompletion ฟรีของหมวดหมู่ข้างต้น เราต้องการ cocompletion เพื่อให้แน่ใจว่าเราได้เพิ่มความขัดแย้งในการก่อสร้างของเรา ไม่ใช่กรณีที่มีการผสานอยู่เสมอ

สำหรับคำถามที่สองของคุณไม่มีความคิดเชิงหมวดหมู่ของสคริปต์การแก้ไขน้อยที่สุดด้วยเหตุผลหลักสองประการ

  1. สคริปต์แก้ไขมาในรูปทรงและแบบฟอร์มทั้งหมด ผู้เขียนบางคนพิจารณาการแทรกการลบและการคัดลอกผู้เขียนบางคนต้องการเพิ่มการแทนที่เป็นการดำเนินการด้วย เมื่อคุณพูดคุยจากสตริงถึงต้นไม้ดังนั้นการดำเนินการอื่น ๆ จึงเป็นไปได้

  2. aa

มีงานจำนวนมากที่ใช้สคริปต์การแก้ไขทั่วไปกับแผนผัง สิ่งนี้ถูกแบ่งออกเป็นสองส่วนหลักของงาน:

  • ต้นไม้ที่ยังไม่ได้พิมพ์ : ให้นึกถึงนิพจน์ s เท่านั้น tree-edit-distance ระหว่างต้นไม้สองต้นคือระยะทางแบบสตริง - แก้ไข - ระหว่างเส้นทางการสั่งซื้อล่วงหน้าของต้นไม้ดังกล่าว คุณสามารถตรวจสอบบรรณานุกรมของDemaine และคณะ หรือPawlik และ Augstenเป็นต้น

  • ต้นไม้ที่พิมพ์แล้ว : แพทช์เหนือต้นไม้ไวยากรณ์ที่รับประกันว่าจะรักษาความเป็นตัวตนที่ดีของวัตถุเช่นการใช้โปรแกรมปะแก้จะทำให้ AST ที่ถูกต้องอยู่เสมอ ภายใต้ร่มพิมพ์มีการแก้ไขน้อยกว่าที่เราสามารถพิจารณาได้ ตัวอย่างเช่นการทดแทนไม่สมเหตุสมผล อย่างไรก็ตามมีความแตกต่างในการสำรวจเส้นทางของต้นไม้โดยLempsink และคณะ ซึ่งได้รับการขยายในภายหลังโดยVassena ฉันกำลังมุ่งเน้นไปที่วิธีการที่ห่างจากสคริปต์แก้ไขสำหรับปัญหาที่ฉันชี้ไปก่อนหน้านี้เช่นงานล่าสุดของเราหรืองานก่อนหน้าซึ่งพยายามใช้ประโยชน์จากโครงสร้างประเภทของค่าที่เป็น "แพทช์"

ในทั้งสองกรณีนี้ฉันไม่เคยเห็นการตีความอย่างละเอียดของแพทช์ที่มีโครงสร้างแบบต้นไม้


คำตอบที่ยอดเยี่ยม! แต่ทำไมไม่ควรมีความคิดที่เป็นหมวดหมู่ของสคริปต์การแก้ไขเพียงเล็กน้อยเพราะมันไม่ซ้ำกัน (Co) ข้อ จำกัด ไม่ซ้ำกันอย่างใดอย่างหนึ่งขึ้นอยู่กับมอร์ฟิซึมเท่านั้น
Turion

ฉันเดาว่าเราสามารถใช้ cocompletion และรวมถึงความขัดแย้งหรือเพียงแค่บอกว่า pushouts ไม่ได้อยู่เสมอและเมื่อพวกเขาไม่อยู่ไม่มีการผสาน?
Turion

1
ABdiffABdiff3

9

ในทิศทางนี้มีการทำงานค่อนข้างน้อย คุณสามารถเริ่มต้นด้วยการดูที่ [1, 2] แต่สิ่งเหล่านี้จะไม่ทำให้หัวข้อนั้นหมดไป


  1. เอส Mimram ซี Di Giusto, หมวดหมู่ทฤษฎีของแพทช์

  2. ซี Angiuli อี Morehouse, DR Licata, อาร์ฮาร์เปอร์Homotopical Patch ทฤษฎี

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