ใน บทที่ 8 เราได้เห็นแล้วว่าโน้ตเพลงของเพลง "Over the Rainbow" นั้นเป็นอัลกอริทึมที่นักดนตรีสามารถนำไปเล่นเพื่อสร้างเสียงดนตรีขึ้นมาได้ อัลกอริทึมนี้ถูกเขียนขึ้น (กล่าวคือ ถูกคิดค้นและเขียนโค้ด) โดยนักแต่งเพลง Harold Arlen ในภาษาของโน้ตสากล (staff notation) ไวยากรณ์ของภาษานี้สามารถกำหนดได้ด้วย grammar ซึ่งกำหนดลักษณะภายนอกของประโยคในรูปแบบของโน้ตเพลงและโครงสร้างภายในในรูปของ abstract syntax tree

เรายังได้เห็นอีกว่าภาษาเดียวกันสามารถนิยามได้ด้วย grammar ที่แตกต่างกัน ซึ่งอาจดูเหมือนเป็นเรื่องแปลกในตอนแรก อย่างไรก็ตาม ความแตกต่างของ grammar นำไปสู่ความแตกต่างของ abstract syntax tree และแสดงมุมมองที่แตกต่างกันของโครงสร้างดนตรี ความแตกต่างเหล่านี้มีความสำคัญเพราะเมื่อ Judy Garland ต้องการร้องเพลง "Over the Rainbow" เธอต้องแยกวิเคราะห์ (parse) โน้ตดนตรีก่อนเพื่อเปิดเผยโครงสร้างของเพลง กล่าวอีกนัยหนึ่ง ความหมายของภาษานั้นสร้างอยู่บนพื้นฐานของ abstract syntax ของมัน

นี่คือสาเหตุที่ความกำกวม (ambiguity) เป็นปัญหาสำหรับทุกภาษา ถ้าประโยคหนึ่งสามารถมี abstract syntax tree ได้มากกว่าหนึ่งแบบ ก็จะไม่ชัดเจนว่าโครงสร้างใดควรนำมาใช้เมื่อใช้กฎนิยามความหมาย (semantics definition) ดังนั้น ประโยคที่กำกวมจึงอาจมีความหมายได้มากกว่าหนึ่งความหมาย ซึ่งนี่คือวิธีที่คำว่า ambiguous มักถูกนิยาม

บทนี้จะพิจารณาปัญหาของความกำกวมอย่างละเอียดยิ่งขึ้น และกล่าวถึงคำถามว่าประโยคต่างๆ ได้รับความหมายมาอย่างไร ข้อมูลเชิงลึกสำคัญคือ การนิยามความหมายของภาษาอย่างเป็นระบบนั้นขึ้นอยู่กับแนวคิดที่เรียกว่า compositionality (การประกอบกันเป็นความหมาย) ซึ่งกล่าวว่าความหมายของประโยคนั้นได้มาจากการรวมความหมายของส่วนประกอบต่างๆ อย่างเป็นระบบ ตามที่กำหนดโดยโครงสร้างของประโยค สิ่งนี้แสดงให้เห็นว่าโครงสร้างของภาษามีบทบาทสำคัญในการนิยามความหมายของมัน

That Doesn't Sound Right (นั่นฟังดูไม่ถูกต้อง)

ภาษาสำหรับโน้ตดนตรีสามารถนิยามได้ด้วย grammar ที่ค่อนข้างเรียบง่าย แต่ถึงแม้จะเป็นภาษาง่ายๆ เช่นนี้ ก็ยังไม่ชัดเจนว่าควรใช้กฎ grammar ใด ปัญหาหนึ่งที่อาจรบกวนภาษาคือ ambiguity (ความกำกวม) ซึ่งหมายถึงประโยคหนึ่งสามารถมีความหมายได้มากกว่าหนึ่ง ความกำกวมสามารถแทรกซึมเข้าไปในประโยคได้สองวิธี วิธีแรก คำหรือสัญลักษณ์พื้นฐานของภาษาอาจกำกวม ปรากฏการณ์นี้เรียกว่า lexical ambiguity (ความกำกวมเชิงคำศัพท์) (ดู บทที่ 3 ) วิธีที่สอง การรวมคำในประโยคแบบใดแบบหนึ่งอาจกำกวม แม้ว่าคำแต่ละคำจะไม่กำกวมก็ตาม เรียกว่า grammatical ambiguity (ความกำกวมเชิงไวยากรณ์) ตัวอย่างเช่น ประโยค "Bob knows more girls than Alice" อาจหมายถึง Bob รู้จักผู้หญิงมากกว่าหนึ่งคน หรืออาจหมายถึงเขารู้จักผู้หญิงมากกว่าที่ Alice รู้จักก็ได้

ความกำกวมเชิงไวยากรณ์เกิดขึ้นเมื่อ grammar สามารถสร้าง syntax tree ได้มากกว่าหนึ่งแบบสำหรับประโยคที่กำหนด เพื่อยกตัวอย่างต่อจากเรื่องดนตรี ลองพิจารณาส่วนหนึ่งของเพลง "Over the Rainbow" ต่อไปนี้ ที่น่าสนใจคือ โน้ตเพลงนี้ ไม่มี เส้นกั้นห้อง (bar lines) ซึ่งทำให้ประโยคนี้กำกวม เนื่องจากไม่ชัดเจนว่าโน้ตตัวแรกหรือตัวที่สองควรถูกเน้นเมื่อเล่น

art

ถ้าคุณรู้จักเพลงนี้และลองร้องตามโน้ตเพลง คุณจะสังเกตว่าการเน้นควรอยู่ที่โน้ตตัวที่สอง การร้องเพลงโดยเน้นโน้ตตัวแรกคงไม่ใช่เรื่องง่าย อย่างไรก็ตาม โดยปกติแล้ว โน้ตตัวแรกในแต่ละห้อง (bar) คือตัวที่ถูกเน้น นั่นหมายความว่าถ้า Judy Garland ได้รับโน้ตเพลงแบบนี้แทนต้นฉบับ เธอคงจะเข้าใจผิดว่าโน้ตตัวแรกควรถูกเน้น การตีความที่แตกต่างกันสองแบบนี้สะท้อนให้เห็นใน abstract syntax tree ที่แตกต่างกันสองแบบ ดังแสดงใน รูปที่ 9.1 การตีความแบบแรกจัดกลุ่มโน้ตแปดตัวแรกเข้าด้วยกันในห้องแรก และโน้ตตัวสุดท้ายในห้องที่สอง การตีความแบบที่สองจัดกลุ่มโน้ตตัวแรกในห้องแรก และโน้ตที่เหลืออีกแปดตัวในห้องที่สอง

syntax tree ทั้งสองแบบนี้สามารถหาได้ถ้าเราปรับ grammar ให้ไม่รวมสัญลักษณ์เส้นกั้นห้อง ความแตกต่างของ abstract syntax tree ทั้งสองเกิดจากการตัดสินใจที่แตกต่างกันว่าจะใช้กฎใดในการขยาย nonterminal ของห้องแรก ทางซ้ายของรูปเป็นผลเมื่อเราขยายเป็น nonterminal โน้ตแปดตัว ในขณะที่ทางขวาเป็นผลเมื่อเราขยายเป็น nonterminal โน้ตเพียงตัวเดียว ทั้งสอง tree แสดงลำดับโน้ตเดียวกัน แต่โครงสร้างภายในของมันต่างกัน tree ด้านซ้ายเน้นคำว่า "Some" ในขณะที่ tree ด้านขวาเน้นคำว่า "day" ลำดับโน้ตนี้ไม่สามารถแยกวิเคราะห์ได้อย่างถูกต้อง เนื่องจากเวลารวมของโน้ตเก้าตัวรวมกันเป็น 1⅛ ซึ่งมากกว่าที่จะบรรจุในห้องเดียวได้

art

รูปที่ 9.1 ความกำกวมใน grammar อาจทำให้ประโยคมี abstract syntax tree ที่แตกต่างกัน tree เหล่านี้แสดงโครงสร้างลำดับชั้น (hierarchical structure) ที่แตกต่างกันสำหรับประโยคเดียวกัน โดยทั่วไปแล้วเป็นไปไม่ได้ที่จะระบุความหมายของประโยคดังกล่าว เนื่องจากโครงสร้างของมันส่งผลต่อความหมาย

art

เพื่อให้ประโยคถูกต้อง เราต้องวางเส้นกั้นห้องไว้ที่ใดที่หนึ่งเพื่อแบ่งโน้ตออกเป็นสองห้อง ตำแหน่งที่ถูกต้องในการวางเส้นกั้นห้องคือหลังโน้ตตัวแรก ซึ่งจะทำให้การเน้นอยู่ที่โน้ตตัวที่สอง

The Wizard of Oz มีตัวอย่างของความกำกวมในภาษาอังกฤษอีกตัวอย่างหนึ่ง ซึ่งเกิดขึ้นเมื่อแม่มดชั่วร้ายเขียนข้อความ "Surrender Dorothy" บนท้องฟ้าด้วยไม้กวาดของเธอ ขณะที่ Dorothy และเพื่อนๆ อยู่ในเมือง Emerald City ข้อความนี้อาจหมายถึงการเรียกให้ชาวเมือง Emerald City ส่งตัว Dorothy มา หรือหมายถึงการให้ Dorothy ยอมจำนนด้วยตัวเองก็ได้ ในกรณีหลังนี้ ควรมีลูกน้ำระหว่างคำว่า "Surrender" และ "Dorothy" เช่นเดียวกับที่เส้นกั้นห้องในโน้ตดนตรีช่วยชี้แจงโครงสร้างที่ถูกต้องและการเน้นของทำนอง เครื่องหมายจุลภาคและมหัพภาคก็มีจุดประสงค์เดียวกันในภาษาเขียนตามธรรมชาติ และสัญลักษณ์วรรคตอนและคำสำคัญ (keywords) ก็มีจุดประสงค์เดียวกันในภาษาโปรแกรม

art

บางครั้งภาษาเสนอโครงสร้างที่เปิดโอกาสให้ผู้ตีความอัลกอริทึมมีทางเลือกในการดำเนินขั้นตอนต่างๆ ตัวอย่างเช่น สัญกรณ์การอิมโพรไวส์ (improvisation notation) ตรงนี้เปิดโอกาสให้นักดนตรีเลือกระดับเสียงของโน้ตตัวที่สอง สาม และสี่ได้ อัลกอริทึมที่ใช้โครงสร้างเช่นนี้เรียกว่า nondeterministic (ไม่กำหนดตายตัว) ในโน้ตดนตรี บางครั้งสิ่งนี้ใช้เพื่อให้มีพื้นที่สำหรับการอิมโพรไวส์ กล่าวคือ เพื่อให้นักดนตรีมีอิสระมากขึ้นในการตีความและแสดงผลเพลง แต่ nondeterminism ไม่ควรสับสนกับความกำกวม จากมุมมองเชิงอัลกอริทึม โน้ตเพลงคือคำแนะนำให้นักดนตรีสร้างลำดับเสียงขึ้นมา โดยแต่ละเสียงมีระดับเสียงและความยาวเฉพาะ ในทางตรงกันข้าม สัญกรณ์ที่กำกวมจะทำให้นักดนตรีสับสนว่าต้องทำอย่างไร ดังนั้น ในขณะที่ nondeterminism เป็น คุณสมบัติ (feature) ของภาษา ความกำกวมกลับเป็น บั๊ก (bug) ในนิยาม syntax ของภาษา อาจฟังดูน่าประหลาดใจ แต่อัลกอริทึมที่เปิดทางเลือกบางอย่างไว้นั้นพบได้ค่อนข้างบ่อย ตัวอย่างเช่น ในอัลกอริทึมหาทางแบบง่ายของฮันเซลกับเกรเทล วิธีการเลือกก้อนกรวดก้อนต่อไปไม่ได้ถูกกำหนดไว้อย่างชัดเจน

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

art

ในตัวอย่างของเรา คุณสามารถจำลองสิ่งนี้ได้ดังนี้ (วิธีนี้จะดีที่สุดถ้าทำด้วยกันสองคน ถ้าคุณมีคีย์บอร์ด ก็สามารถทำคนเดียวได้ แต่เอฟเฟกต์จะไม่ชัดเจนเท่า) คนแรกเริ่มฮัมหรือเล่น (แต่ไม่ใช่ร้องเพลง—เพราะอาจจะยากเกินไป) โน้ตตัว G และ E ที่เป็น eighth notes สลับกัน โดยเน้นที่ตัว G อย่างผิดที่ (wrong) จากนั้นหลังจากนั้นสักพัก คนที่สองเริ่มฮัมโน้ต quarter notes (เช่น C) ที่เริ่มพร้อมกับตัว E ที่คนแรกฮัม หลังจากทำซ้ำไม่กี่ครั้ง คุณจะรับรู้ถึงการเปลี่ยนแปลงของจังหวะ และเพลงจะฟังดูเหมือนท่อนที่เรารู้จักดีจากเพลง "Over the Rainbow" ทันที

art

ความกำกวมยังเกิดขึ้นในสัญกรณ์อื่นๆ ด้วย คุณคงเคยเห็นลูกบาศก์ของ Necker (Necker cube) แล้ว ถ้าคุณมองภาพนานพอ การรับรู้ของคุณจะสลับไปมาระหว่างการมองลูกบาศก์จากด้านบนทางขวา กับการมองลูกบาศก์จากด้านล่างทางซ้าย เช่นเดียวกัน นี่คือการแสดงผลทางภาพหนึ่งเดียวที่มีการตีความเชิงโครงสร้างที่แตกต่างกันสองแบบ ความกำกวมนี้มีความสำคัญ สมมติว่าคุณต้องการแตะลูกบาศก์ที่มุมหน้าบนขวา ตำแหน่งที่คุณเอื้อมไปถึงนั้นขึ้นอยู่กับการตีความรูปภาพของคุณ

art

รูปที่เกี่ยวข้องเช่นสามเหลี่ยม Penrose (Penrose triangle) ซึ่งได้รับแรงบันดาลใจจากภาพวาดของ M. C. Escher อย่างไรก็ตาม ปัญหาของรูปเหล่านี้ไม่ใช่ความกำกวมระหว่างการตีความที่เป็นไปได้ต่างๆ แต่เป็นความจริงที่ว่า ไม่มี การตีความใดที่สอดคล้องกับความเป็นจริงทางกายภาพที่ผู้คนประสบ (ดู บทที่ 12 )

ความกำกวมเป็นแนวคิดที่น่าสนใจและเป็นแหล่งที่มาของอารมณ์ขันที่ดีในภาษาธรรมชาติ เช่น การเล่นคำระหว่าง "Let's eat, grandma" กับ "Let's eat grandma" อย่างไรก็ตาม ความกำกวมเป็นปัญหาสำคัญสำหรับภาษาเชิงอัลกอริทึม เนื่องจากมันสามารถขัดขวางการแสดงความหมายที่ตั้งใจของประโยคได้อย่างชัดเจน มีความสัมพันธ์ที่ละเอียดอ่อนระหว่าง syntax ของภาษาและความหมายของมัน ในด้านหนึ่ง เราต้องคิดอย่างรอบคอบเกี่ยวกับ syntax ของภาษาเพื่อที่จะสามารถนิยามความหมายของมันได้ ในอีกด้านหนึ่ง เราต้องเข้าใจความหมายก่อนจึงจะสามารถนิยาม syntax ได้อย่างถูกต้อง

Take on Meaning (การทำความเข้าใจความหมาย)

ตัวอย่างความกำกวมแสดงให้เห็นว่าหากไม่รู้โครงสร้างของประโยค ก็เป็นไปไม่ได้ที่จะเข้าใจความหมายที่ถูกต้องของมัน แต่จริงๆ แล้วความหมายของประโยคคืออะไรกันแน่?

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

ภาพรวมของความสัมพันธ์ระหว่างประโยค ภาษา และความหมายแสดงอยู่ใน รูปที่ 9.2 โดยสรุป semantics ของภาษาถูกกำหนดโดยความหมายของประโยคทั้งหมดในภาษานั้น และความหมายของประโยคแต่ละประโยคถูกกำหนดโดยการเชื่อมโยงมันเข้ากับค่าบางค่าในโดเมน (domain) ที่ภาษานั้นพูดถึง

ความหมายของประโยคหนึ่งๆ ในภาษาดนตรีคือเสียงเพลงที่คุณได้ยินเมื่อมีคนแสดงมัน อย่างไรก็ตาม เนื่องจากนักดนตรีแต่ละคนจะตีความเพลงแตกต่างกัน—บางคนร้อง บางคนเล่นด้วยเครื่องดนตรี บางคนเปลี่ยนการประสานเสียงหรือความเร็ว—จึงดูเหมือนไม่มีเสียงเฉพาะใดที่สามารถนิยามให้เป็นความหมายของเพลงได้ ปัญหานี้สามารถแก้ไขได้โดยการกำหนดให้การแสดงด้วยเครื่องดนตรีชนิดใดชนิดหนึ่งโดยนักดนตรีคนใดคนหนึ่งเป็นมาตรฐาน หรือใช้การแสดงโดย MIDI synthesizer เป็นมาตรฐาน อีกทางเลือกหนึ่ง เราอาจกล่าวว่าความหมายของ "Over the Rainbow" คือเซตของเสียงที่เป็นไปได้ทั้งหมดที่เกิดจากการแสดงเพลงอย่างถูกต้อง แน่นอนว่านี่ทำให้เกิดคำถามเพิ่มเติมว่าอะไรนับว่าเป็นการแสดงที่ถูกต้อง เพื่อหลีกเลี่ยงการอภิปรายอย่างเต็มรูปแบบเกี่ยวกับประเด็นทางปรัชญาที่ยุ่งยากนี้ ฉันขอยกคำพูดของอดีตผู้พิพากษาศาลฎีกาสหรัฐฯ Potter Stewart ที่เมื่อถูกถามว่าเกณฑ์ของเขาสำหรับสิ่งลามกคืออะไร ตอบอย่างมีชื่อเสียงว่า "I know it when I see it" (ฉันรู้เมื่อฉันเห็นมัน) ดังนั้น ถ้าคุณเคยได้ยินเวอร์ชันต้นฉบับของ "Over the Rainbow" ใน The Wizard of Oz คุณสามารถบอกได้ว่าการแสดงใดถูกต้องเมื่อคุณได้ยินมัน ท้ายที่สุดแล้ว ดนตรีคือศิลปะ และเราไม่ควรแปลกใจหรือกังวลว่ามันไม่สามารถถูกจับต้องได้อย่างสมบูรณ์ผ่านนิยามที่เป็นทางการ ประเด็นสำคัญคือ ความหมายของโน้ตเพลง "Over the Rainbow" คือเสียงที่ใครก็ตามที่รู้จักเพลงดีจะจำได้ว่าเป็นการแสดงของมัน

art

รูปที่ 9.2 semantics ของภาษาถูกกำหนดโดยการแมปที่เชื่อมโยงโครงสร้างของแต่ละประโยค ซึ่งแสดงโดย abstract syntax tree ของมัน เข้ากับสมาชิกของ semantic domain มุมมองเกี่ยวกับความหมายนี้เรียกว่า denotational semantics (ความหมายเชิงนิยาม) เนื่องจากมันขึ้นอยู่กับการกำหนดความหมายให้กับประโยคของภาษา

ถ้าเรานำเสียงทั้งหมดที่อาจเกิดจากการแสดงโน้ตเพลงใดๆ ก็ตามที่จินตนาการได้ เราจะได้ semantic domain หนึ่ง Semantic domain สำหรับภาษาเช่นโน้ตสากลหรือ tablature คือเซตของความหมายทั้งหมดที่ประโยคใดๆ ของภาษานั้นสามารถมีได้ Semantic domain นั้นเป็นเซตขนาดใหญ่อย่างแน่นอน แต่ก็มีหลายสิ่งที่มัน ไม่มี เช่น รถยนต์ สัตว์ ความคิด ภาพยนตร์ กฎจราจร และอื่นๆ ดังนั้น เซตนี้จึงยังมีประโยชน์ในการกำหนดลักษณะของภาษา โดยมันบรรยายว่าผู้ใช้ภาษาสามารถคาดหวังให้ประโยคของภาษานั้นหมายถึงอะไร

การรวบรวมประโยคแต่ละประโยคของภาษาทั้งหมดพร้อมกับความหมายที่เกี่ยวข้องกันนั้นก่อให้เกิด semantics ของภาษา ถ้าภาษาไม่กำกวม (nonambiguous) แต่ละประโยคจะมีความหมายเดียวเท่านั้น 1 และการเลือกประโยคจากภาษาจะนำไปสู่ความหมายของมันเสมอ ในภาษาที่กำกวม ความจริงที่ว่าประโยคหนึ่งสามารถมีความหมายได้มากกว่าหนึ่งนั้นสะท้อนให้เห็นโดยการมี syntax tree หลายแบบ ซึ่งแต่ละแบบสามารถมีความหมายที่แตกต่างกันได้ มุมมองเกี่ยวกับความหมายที่อธิบายนี้เรียกว่า denotational semantics ซึ่งมีพื้นฐานอยู่บนแนวคิดของการกำหนดความหมายให้กับประโยค มีแนวทางอื่นๆ อีกหลายวิธีในวิทยาการคอมพิวเตอร์ในการนิยาม semantics ของภาษา แต่ denotational semantics น่าจะใกล้เคียงกับสัญชาตญาณของเรามากที่สุดและเข้าใจง่ายกว่าทางเลือกอื่นๆ บางวิธี

จุดประสงค์หลักของภาษาคือการสื่อความหมาย แต่ภาษาที่ถูกประดิษฐ์ขึ้นนั้นไม่มี semantics ที่ชัดเจนในตัวมันเอง ดังนั้น เพื่อให้ภาษามีประโยชน์ จึงจำเป็นต้องกำหนด semantics ให้กับมัน เนื่องจากภาษาส่วนใหญ่ประกอบด้วยประโยคจำนวนนับไม่ถ้วน เราจึงไม่สามารถเพียงแค่ระบุรายการประโยคทั้งหมดและความหมายของมันได้ ต้องมีวิธีที่เป็นระบบอื่นในการนิยาม semantics ของภาษา คำถามนี้ท้ายที่สุดแล้วก็คือการหาอัลกอริทึมในการนิยามความหมายของประโยคแต่ละประโยค นิยาม denotational semantics เชิงอัลกอริทึมสำหรับภาษาหนึ่งประกอบด้วยสองส่วน ส่วนแรกคือการแมปสัญลักษณ์ปลายทาง (terminal symbols) ไปยังองค์ประกอบพื้นฐานของ semantic domain ในกรณีนี้หมายถึงการแมปโน้ตแต่ละตัวไปยังเสียงที่มีระดับเสียงและความยาวเฉพาะ ส่วนที่สองคือกฎที่บอกว่าสำหรับ nonterminal แต่ละตัว จะสร้างความหมายของมันจากความหมายของลูกๆ ใน syntax tree ได้อย่างไร ในตัวอย่างนี้ มี nonterminal อยู่สามตัว กฎสำหรับ note นั้นเล็กน้อย เนื่องจาก nonterminal โน้ตแต่ละตัวมีลูกเพียงตัวเดียว ซึ่งหมายความว่าเสียงของมันควรเหมือนกับเสียงของลูกของมัน ความหมายของ measure (ห้อง) ได้มาจากการเรียงต่อเสียงของลูกๆ ตามลำดับที่ปรากฏ สุดท้าย ความหมายของ melody (ทำนอง) ได้มาในลักษณะเดียวกับ measure กล่าวคือผ่านการเรียงต่อเสียงที่ได้จากความหมายของห้องต่างๆ ในทำนอง

ตัวอย่างนี้แสดงให้เห็นว่าความหมายของประโยคถูกสร้างขึ้นอย่างเป็นระบบผ่านทาง abstract syntax tree โดยการรวมความหมายของใบไม้ (leaves) เข้าด้วยกันเป็นความหมายของโหนดแม่ จากนั้นรวมความหมายของโหนดแม่เหล่านั้นต่อไปเรื่อยๆ จนกระทั่งได้ความหมายของราก (root) ของ tree นิยาม semantics ที่มีรูปแบบนี้เรียกว่า compositional (เชิงประกอบ) นิยามเชิงประกอบนั้นน่าสนใจเพราะมันสะท้อนวิธีที่ grammar กำหนด syntax ของภาษาที่ไม่จำกัดจำนวนด้วยกฎที่มีจำนวนจำกัด ภาษาที่ semantics สามารถนิยามได้ในเชิงประกอบก็เรียกว่า compositional (เชิงประกอบ) เช่นกัน หลักการของ compositionality ถูกระบุโดยนักคณิตศาสตร์และนักปรัชญา Gottlob Frege ในระหว่างการสืบสวนของเขาเกี่ยวกับภาษาและวิธีการนิยาม semantics ของภาษาอย่างเป็นทางการ ความเป็น compositional ในระดับหนึ่งเป็นสิ่งที่จำเป็นเพื่อให้ได้คำอธิบายความหมายที่มีขอบเขตจำกัดสำหรับประโยคจำนวนไม่จำกัดที่กำหนดโดย grammar ถ้าภาษาขาด compositionality โดยทั่วไปแล้วการนิยาม semantics ของมันจะเป็นปัญหา เนื่องจากความหมายของประโยคใดๆ ไม่สามารถหาได้จากการประกอบความหมายของส่วนประกอบของมัน แต่ต้องอธิบายแยกต่างหาก คำอธิบายเช่นนี้เป็นข้อยกเว้นที่แทนที่กฎทั่วไปในการกำหนดความหมาย

art

ภาษาดนตรีแบบง่ายที่อธิบายนี้เป็น compositional แต่ภาษาอื่นๆ อีกมากมายไม่เป็นเช่นนั้น หรือเป็นเพียงบางส่วนเท่านั้น ภาษาอังกฤษเป็นตัวอย่างหนึ่ง (เช่นเดียวกับภาษาธรรมชาติอื่นๆ ส่วนใหญ่) สำหรับตัวอย่างง่ายๆ ของการไม่เป็น compositional (noncompositionality) เราไม่จำเป็นต้องมองไปไกลกว่าคำประสม (compound words) ในขณะที่ firefighter (นักดับเพลิง) คือคนที่ดับไฟ (fight fires) แต่ hot dog (ฮอทดอก) ไม่ได้หมายถึงสุนัขที่มีอุณหภูมิสูง และ red herring ก็ไม่ได้หมายถึงปลาที่มีสีเฉพาะ ตัวอย่างอื่นๆ คือสำนวนเช่น "kicking the bucket" (ตาย) หรือ "spilling the beans" (เปิดโปงความลับ) ซึ่งความหมายของแต่ละสำนวนไม่ได้มาจากการรวมคำแต่ละคำในสำนวนนั้น

art

โน้ตสากลก็มีองค์ประกอบที่ไม่เป็น compositional เช่นกัน ตัวอย่างเช่น tie (เส้นเชื่อม) คือสัญลักษณ์ที่เชื่อมโน้ตสองตัวที่ติดกันซึ่งมีระดับเสียงเดียวกัน โดยปกติแล้วจะเป็นโน้ตตัวสุดท้ายของห้องหนึ่งกับโน้ตตัวแรกของห้องถัดไป สิ่งนี้เกิดขึ้นในเพลง "Over the Rainbow" ในช่วงท้ายสุดของเพลงในท่อน "why oh why can't I?" โดยที่คำว่า "I" ถูกร้องเป็นโน้ตตัวเดียวที่ยาวถึงสองห้อง ตามกฎในการหาความหมายของทำนอง เราต้องหาความหมายของแต่ละห้องแล้วจึงเรียงต่อกัน ซึ่งจะทำให้ได้เสียงยาวหนึ่งห้องสองเสียงแทนที่จะเป็นเสียงเดียวที่ยาวสองห้อง ดังนั้น เพื่อให้ได้ความหมายที่ถูกต้องของโน้ตที่เชื่อมต่อกันข้ามสองห้อง (หรือมากกว่า) กฎในการหาความหมายของทำนองจะต้องถูกแทนที่ด้วยกฎที่จัดกลุ่มห้องที่มีโน้ตเชื่อมต่อกันเป็นหนึ่งเดียว

กฎในการกำหนดความหมายของประโยคนั้นคล้ายคลึงกับกฎที่นักดนตรีปฏิบัติตามเมื่อตีความโน้ตดนตรีอย่างน่าทึ่ง นี่ไม่ใช่เรื่องบังเอิญ เพราะ denotational semantics สำหรับภาษาคืออัลกอริทึมในการคำนวณความหมายของประโยคที่กำหนดจากภาษานั้น คอมพิวเตอร์ที่เข้าใจภาษาที่ใช้เขียน denotational semantics สามารถดำเนินการตาม semantics และคำนวณความหมายของประโยคได้ คอมพิวเตอร์หรืออัลกอริทึมที่สามารถดำเนินการตาม semantics ได้เรียกว่า interpreter (ตัวแปลความ) แม้ว่าการมองฮันเซลกับเกรเทลเป็นตัวแปลความหมาย (interpreter) ของคำแนะนำในการเดินตามก้อนกรวดอาจดูแปลก แต่การเรียก Judy Garland ว่าเป็น interpreter ของดนตรีของ Harold Arlen คงไม่มีใครคัดค้าน เช่นเดียวกับที่อัลกอริทึมทำให้การคำนวณสามารถทำซ้ำได้ นิยามของภาษาสามารถใช้เพื่อสร้างคอมพิวเตอร์สำหรับดำเนินการตามประโยคของภาษา และทำให้การดำเนินการตามภาษาเป็นสิ่งที่ทำซ้ำได้ ในกรณีของโน้ตดนตรี ใครก็ตามที่เข้าใจ semantics ของโน้ตดนตรีสามารถเรียนรู้วิธีการตีความโน้ตดนตรีได้ กล่าวอีกนัยหนึ่ง semantics สามารถใช้สอนนักดนตรีได้โดยไม่ต้องมีครูสอนดนตรี มันช่วยให้ผู้คนสามารถสอนตัวเองได้

คำถามที่เกี่ยวข้องกับ interpreter คือจะเกิดอะไรขึ้นถ้าเราสร้างการบันทึกเสียงการแสดงดนตรี การบันทึกเสียงแสดงถึงความหมายของชิ้นดนตรีหรือไม่? ไม่จริง สิ่งที่เกิดขึ้นคือการบันทึกเสียงดนตรีเป็นเพียงการสร้างการแสดงออกในรูปแบบที่แตกต่างของเพลงนั้น การบันทึกเสียงครั้งแรกของ "Over the Rainbow" ถูกผลิตขึ้นบนแผ่นเสียงอนาล็อก ซึ่งมีร่องที่เข็มของเครื่องเล่นแผ่นเสียงตีความและแปลงเป็นคลื่นเสียง ต่อมา คลื่นเสียงถูกเข้ารหัสแบบดิจิทัลบนแผ่น CD เป็นลำดับของบิต (ศูนย์และหนึ่ง) ที่อ่านโดยเลเซอร์ จากนั้นถูกตีความโดย digital-to-analog converter เพื่อสร้างคลื่นเสียงขึ้นมาใหม่ ปัจจุบัน ดนตรีส่วนใหญ่ถูกแสดงในรูปแบบซอฟต์แวร์ เช่น MP3 ที่ออกแบบมาเพื่อรองรับการสตรีมเพลงผ่านอินเทอร์เน็ต ไม่ว่ารูปแบบการนำเสนอจะเป็นแบบใด มันก็ยังคงเป็นการนำเสนอเพลงในรูปแบบหรือภาษาเฉพาะที่ต้องมีนักแสดงหรือคอมพิวเตอร์ในการดำเนินการตามคำสั่งของภาษาเพื่อสร้างเอฟเฟกต์เสียงที่ต้องการ ดังนั้น การเล่นและบันทึกชิ้นดนตรีจึงเป็นรูปแบบหนึ่งของการแปลจากภาษาหนึ่ง เช่น โน้ตสากล ไปสู่อีกภาษาหนึ่ง เช่น การแทนเสียงด้วยบิต