ไวยากรณ์การเชื่อมต่อช่วง
ไวยากรณ์การต่อช่วง (RCG) เป็นรูปแบบไวยากรณ์ที่พัฒนาโดย Pierre Boullier [ 1 ]ในปี 1998 เพื่อพยายามอธิบายปรากฏการณ์ต่างๆ ของภาษาธรรมชาติ เช่น ตัวเลขภาษาจีนและการสลับลำดับคำในภาษา เยอรมัน ซึ่งอยู่นอกขอบเขตของภาษาที่ไวต่อบริบทเล็กน้อย[ 2 ]
จากมุมมองทางทฤษฎี ภาษาใดๆ ที่สามารถแยกวิเคราะห์ได้ในเวลาพหุนามจะจัดอยู่ในกลุ่มย่อยของ RCG ที่เรียกว่าไวยากรณ์การเชื่อมต่อช่วงบวก และในทางกลับกัน[ 4 ]
แม้ว่า ไวยากรณ์แบบเคลื่อนไหวตามตัวอักษร (RCG) จะถูกออกแบบมาให้เป็นรูปแบบหนึ่งของไวยากรณ์แบบเคลื่อนไหวตามตัวอักษรของ Groenink (LMG) แต่ RCG กลับมองกระบวนการทางไวยากรณ์เป็นเหมือนการพิสูจน์มากกว่าการสร้างประโยค ในขณะที่ LMG สร้างสตริงสุดท้ายจากภาคแสดงเริ่มต้น RCG มีเป้าหมายที่จะลดภาคแสดงเริ่มต้น (ซึ่งเป็นภาคแสดงของสตริงสุดท้าย) ให้เหลือสตริงว่าง ซึ่งถือเป็นการพิสูจน์ว่าสตริงสุดท้ายนั้นเป็นสมาชิกในภาษา
คำอธิบาย
คำจำกัดความอย่างเป็นทางการ
ไวยากรณ์การเชื่อมต่อช่วงบวก (PRCG) คือทูเปิลโดยที่:
- และเป็นเซตจำกัดที่ไม่ซ้ำกันของ (ตามลำดับ) ชื่อ述语, สัญลักษณ์ปลายทางและชื่อตัวแปร แต่ละชื่อ述语จะ มีจำนวนอาร์กิวเมนต์ที่เกี่ยวข้อง ซึ่งกำหนดโดยฟังก์ชัน
- คือชื่อเงื่อนไขเริ่มต้นและตรวจสอบ
- เป็นเซตจำกัดของอนุประโยคในรูปแบบโดยที่เป็นภาคแสดงในรูปแบบที่มีและ
ไวยากรณ์การเชื่อมต่อช่วงเชิงลบ (NRCG) ถูกนิยามคล้ายกับ PRCG แต่เพิ่มเติมคือ述语บางตัวที่ปรากฏทางด้านขวามือของประโยคสามารถมีรูปแบบได้述语ดังกล่าวเรียกว่า述语เชิงลบ
ไวยากรณ์การเชื่อมต่อช่วง (Range Concatenation Grammarหรือ PRCG) มีทั้งแบบบวกและแบบลบ แม้ว่า PRCG จะเป็น NRCG ในทางเทคนิค แต่คำเหล่านี้ถูกนำมาใช้เพื่อเน้นให้เห็นถึงการไม่มีอยู่ (PRCG) หรือการมีอยู่ (NRCG) ของคำกริยาเชิงลบ
ช่วงในคำหนึ่งๆคือคู่ของช่วงโดยที่คือความยาวของช่วง ตัวแปรจะผูกกับช่วง ไม่ใช่กับสตริงของสัญลักษณ์ที่ไม่ใช่เทอร์มินัลแบบใดๆ ช่วงสองช่วงและสามารถต่อกันได้ก็ต่อเมื่อ และเราจะได้: เมื่อสร้างข้อความเงื่อนไข โดยที่อาร์กิวเมนต์ประกอบด้วยองค์ประกอบหลายตัวจากช่วงขององค์ประกอบเหล่านั้นจะต้องต่อกัน
สำหรับคำที่มีสัญลักษณ์จุดสำหรับช่วงคือ:
การจดจำสตริง
สตริงของเงื่อนไขที่ถูกเขียนใหม่นั้นแสดงถึงข้อจำกัดที่สตริงที่กำลังทดสอบต้องเป็นไปตาม (ถ้าเป็นเงื่อนไขเชิงบวก) หรือในกรณีของเงื่อนไขเชิงลบ จะต้องไม่เป็นไปตามเงื่อนไขนั้น ลำดับของเงื่อนไขไม่สำคัญ ขั้นตอนการเขียนใหม่นั้นเทียบเท่ากับการแทนที่ข้อจำกัดหนึ่งข้อด้วยข้อจำกัดที่ง่ายกว่าศูนย์ข้อหรือมากกว่านั้น
เช่นเดียวกับ LMG ข้อความ RCG มีรูปแบบทั่วไปคือ โดยที่ใน RCG นั้นจะเป็นสตริงว่างหรือสตริงของเงื่อนไข อาร์กิวเมนต์ประกอบด้วยสตริงของสัญลักษณ์เทอร์มินัลและ/หรือสัญลักษณ์ตัวแปร ซึ่งจะจับคู่รูปแบบกับค่าอาร์กิวเมนต์จริงเช่นเดียวกับใน LMG ตัวแปรที่อยู่ติดกันจะประกอบเป็นกลุ่มของการจับคู่กับพาร์ติชัน ดังนั้นอาร์กิวเมนต์ที่มีตัวแปรสองตัว จะจับคู่กับสตริงตัวอักษรได้สามวิธีที่แตกต่างกัน: ซึ่งจะทำให้เกิดการสร้างข้อความที่มีอาร์กิวเมนต์นั้นขึ้นมาสามแบบที่แตกต่างกัน
เงื่อนไขแสดงผลลัพธ์มีสองรูปแบบ คือ รูปแบบบวก (ซึ่งจะให้ผลลัพธ์เป็นสตริงว่างเมื่อสำเร็จ) และรูปแบบลบ (ซึ่งจะให้ผลลัพธ์เป็นสตริงว่างเมื่อล้มเหลว/หากเงื่อนไขบวกไม่ให้ผลลัพธ์เป็นสตริงว่าง) เงื่อนไขลบจะเขียนเหมือนกับเงื่อนไขบวก แต่มีขีดบนกำกับไว้ เช่น.
ความหมายของการเขียนใหม่สำหรับ RCG นั้นค่อนข้างเรียบง่าย เหมือนกับความหมายที่สอดคล้องกันของ LMG ทุกประการ เมื่อกำหนดสตริงภาคแสดงโดยที่สัญลักษณ์เป็นสตริงเทอร์มินัล หากมีกฎในไวยากรณ์ที่ตรงกับสตริงภาคแสดงนั้น สตริงภาคแสดงจะถูกแทนที่ด้วย โดยแทนที่ตัวแปรที่ตรงกันในแต่ละ
ตัวอย่างเช่น เมื่อมีกฎโดยที่และเป็นสัญลักษณ์ตัวแปร และและเป็นสัญลักษณ์ปลายทาง สตริงเงื่อนไขสามารถเขียนใหม่ได้เป็นเนื่องจากตรงกับเมื่อ ในทำนอง เดียวกัน หากมีกฎก็สามารถเขียนใหม่ได้เป็น
การพิสูจน์/การรับรองสตริงทำได้โดยการแสดงให้เห็นว่าสตริงนั้นสร้างสตริงว่าง สำหรับขั้นตอนการเขียนใหม่แต่ละขั้นตอน เมื่อมีความเป็นไปได้หลายทางในการจับคู่ตัวแปร การเขียนใหม่ใดๆ ที่อาจนำไปสู่ความสำเร็จของการพิสูจน์ทั้งหมดจะถูกนำมาพิจารณา ดังนั้น หากมีอย่างน้อยหนึ่งวิธีในการสร้างสตริงว่างจากสตริงเริ่มต้นการพิสูจน์นั้นจะถือว่าประสบความสำเร็จ ไม่ว่าจะมีวิธีอื่นๆ ที่จะล้มเหลวกี่วิธีก็ตาม
ตัวอย่าง
RCG สามารถรับรู้ภาษาดัชนีที่ไม่เป็นเชิงเส้นได้ดังต่อไปนี้:
ให้ x, y และ z เป็นสัญลักษณ์ตัวแปร: การพิสูจน์สำหรับabbabbabbคือ
หรือใช้สัญลักษณ์จุดไข่ปลาที่ถูกต้องกว่าสำหรับช่วงข้อมูล:
สำหรับสตริงของตัวอักษร จะมีรูปแบบที่แตกต่างกันของข้อความแรกนั้น แต่จะมีเพียงรูปแบบเดียวที่ทำให้ ตัวอักษร ทุกตัวสามารถบรรลุถึงการอนุมานได้
คุณสมบัติ
ไวยากรณ์แบบไร้บริบท (CFG) ทุก รูปแบบ สามารถแปลงเป็นไวยากรณ์แบบเชื่อมต่อช่วงได้:
- สำหรับอนาธานทุกตัวของ CFG นั้น RCG จะมีเพรดิเคทที่ มีจำนวนอาร์กิวเมนต์เท่า กัน
- สำหรับกฎ CFG ทุกข้อRCG จะมี
- สำหรับกฎ CFG ทุกข้อ(ที่เป็นกฎสุดท้าย) RCG จะมี.
จุดตัดและการรวมกันของภาษาการเชื่อมต่อช่วงสองภาษาก็คือภาษาการเชื่อมต่อช่วงแบบง่ายๆ:
- สำหรับจุดตัดของและคุณจะได้
- สำหรับการรวมกันของและคุณจะได้และ
ภาษาการเชื่อมต่อช่วงที่เป็นไปได้ในเชิงลบก็ปิดภายใต้เซตคอมพลีเมนต์ด้วยเช่นกัน
ผลที่ตามมาจากการกล่าวข้างต้นคือไม่สามารถตัดสินได้ว่าภาษาการเชื่อมต่อช่วง (เชิงบวก) นั้นไม่ว่างเปล่าหรือไม่ เพราะไม่สามารถตัดสินได้ว่าจุดตัดของภาษาไร้บริบทสองภาษานั้นไม่ว่างเปล่าหรือไม่ ดังนั้นไวยากรณ์การเชื่อมต่อช่วงจึงไม่ใช่ไวยากรณ์แบบสร้าง (generative grammars)