Q-systems are a method of directed graph transformations according to given grammar rules, developed at the Université de Montréal by Alain Colmerauer in 1967--70 for use in natural language processing. The Université de Montréal's machine translation system, TAUM-73, used the Q-Systems as its language formalism.
The data structure manipulated by a Q-system is a Q-graph, which is a directed acyclic graph with one entry node and one exit node, where each arc bears a labelled ordered tree. An input sentence is usually represented by a linear Q-graph where each arc bears a word (tree reduced to one node labelled by this word). After analysis, the Q-graph is usually a bundle of 1-arc paths, each arc bearing a possible analysis tree. After generation, the goal is usually to produce as many paths as desired outputs, with again one word per arc.
A Q-System consists of a sequence of Q-treatments, each being a set of Q-rules, of the form == []. The Q-treatments are applied in sequence, unless one of them produces the empty Q-graph, in which case the result is the last Q-graph obtained. The three parts of a rule can contain variables for labels, trees, and forests. All variables after "==" must appear in the part. Variables are local to rules.
A Q-treatment works in two steps, addition and cleaning. It first applies all its rules exhaustively, using instantiation (one-way unification), thereby adding new paths to the current Q-graph (added arcs and their trees can be used to produce new paths). If and when this addition process halts, all arcs used in some successful rule application are erased, as well as all unused arcs that are no more on any path from the entry node to the exit node. Hence, the result, if any (if the addition step terminates), is again a Q-graph. That allows several Q-Systems to be chained, each of them performing a specialized task, together forming a complex system. For example, TAUM 73 consisted of fifteen chained Q-Systems.
An extension of the basic idea of the Q-Systems, namely to replace instantiation by unification (to put it simply, allow "new" variables in the right hand side part of a rule, and replace parametrized labelled trees by logical terms) led to Prolog, designed by Alain Colmerauer and Philippe Roussel in 1972. Refinements in the other direction (reducing non-determinism and introducing typed labels) by John Chandioux led to GramR, used for programming METEO from 1985 onward.
In 2009, Hong Thai Nguyen of GETALP GETALP, LIG (Laboratoire d'Informatique de Grenoble) reimplemented the Q-language in C, using ANTLR to compile the Q-systems and the Q-graphs, and an algorithm proposed by Christian Boitet (as none had been published and sources of the previous Fortran implementation had been lost). That implementation was corrected, completed and extended (to labels using Unicode characters and not only the printable characters of the CDC6600 of the historical version) by David Cattanéo in 2010-11.
q-systems มีวิธีการกำกับกราฟแปลงตามกฎไวยากรณ์ , การพัฒนาที่มหาวิทยาลัยé de มนตรีé al โดย Alain colmerauer ในปี 1967 -- 70 เพื่อใช้ในการประมวลผลภาษาธรรมชาติ ที่มหาวิทยาลัยé de มนตรีé al เป็นเครื่องแปลภาษาระบบ taum-73 ใช้ q-systems เป็นแบบภาษาของมัน
โครงสร้างข้อมูลที่บงการ โดยเป็น q-graph q-system ,ซึ่งเป็นการกำกับหว่ากราฟกับโหนดหนึ่งโหนดออกจากรายการและ ซึ่งแต่ละโค้งมีป้ายสั่งต้นไม้ เป็นประโยคมักจะแทนด้วยเส้น q-graph ซึ่งแต่ละโค้งหมีคำ ( ต้นไม้ลดหนึ่งโหนดข้อความด้วยคำพูดนี้ ) หลังจากการวิเคราะห์ q-graph มักจะเป็นมัดของเส้นทาง 1-arc แต่ละส่วนโค้งเรืองต้นไม้การวิเคราะห์ที่เป็นไปได้ หลังจากรุ่นเป้าหมายมักจะผลิตเป็นหลายเส้นทางตามที่ต้องการผลผลิต กับอีกคำหนึ่งต่ออาร์ค
q-system ประกอบด้วยลำดับของ q-treatments แต่ละเป็นชุดของ q-rules ของแบบฟอร์ม < matched_path > = = < added_path > [ เงื่อนไข ] การ q-treatments ใช้ ใน ลำดับ ถ้าหนึ่งในพวกเขาผลิต q-graph ว่างเปล่า ซึ่งในกรณีนี้ ผลที่ได้คือ q-graph ครั้ง )สามส่วนของกฎสามารถประกอบด้วยตัวแปรสำหรับป้ายชื่อต้นไม้ และป่าไม้ ตัวแปรทั้งหมดหลังจากที่ " = = " จะต้องปรากฏอยู่ในบทที่ matched_path > ตัวแปรท้องถิ่นเพื่อกฎ
q-treatment ทำงานสองขั้นตอนสำหรับการทำความสะอาด ก่อนใช้กฎทั้งหมดอย่างละเอียดโดยใช้ instantiation ( โรงเรียนกัน )ดังนั้นการเพิ่มเส้นทางใหม่เพื่อ q-graph ปัจจุบัน ( เพิ่มส่วนโค้งและต้นไม้ของพวกเขาสามารถถูกใช้เพื่อสร้างเส้นทางใหม่ ) ถ้าและเมื่อกระบวนการนี้นอกจากหยุด ทุกโค้งที่ใช้ในบางกฎการประสบความสำเร็จลบเช่นเดียวกับโค้งไม่ได้ใช้ทั้งหมดที่ไม่มีในเส้นทางใด ๆจากรายการโหนดไปโหนดออก . ดังนั้น ผล , ถ้าใด ๆ ( ถ้าเพิ่มขั้นตอนสิ้นสุดลง ) เป็นอีกหนึ่ง q-graph .ที่ช่วยให้หลาย q-systems โดนล่ามโซ่ , แต่ละของพวกเขาจะแสดงเฉพาะงาน ร่วมกันสร้างระบบที่ซับซ้อน ตัวอย่างเช่น taum 73 จำนวนสิบห้าล่าม q-systems
เป็นส่วนขยายของแนวคิดพื้นฐานของ q-systems คือแทนที่ instantiation โดยความสามัคคี ( พูดง่ายๆ ให้ " ตัวแปร " ในทางด้านขวามือเป็นส่วนหนึ่งของกฎและแทนที่ parametrized ป้ายชื่อต้นไม้โดยตรรกวิทยา ) LED ที่จะเปิดฉาก ออกแบบโดย Alain colmerauer และฟิลิปป์ รูสเซลใน 1972 . การปรับแต่งในทิศทางอื่น ๆ ( ลดไม่ใช่ทฤษฏี และแนะนำพิมพ์ป้าย ) โดยจอห์น chandioux นำไปสู่ gramr , ใช้โปรแกรม Weather จาก 1985 เป็นต้นไป
ในปี 2009 ในไทยเหงียนของ getalp getalp ,ลีก ( ขอขอบคุณที่จดสิทธิบัตรเดียว d'informatique de Grenoble ) reimplemented ที่ q-language ใน C , ใช้ antlr เพื่อรวบรวม q-systems และ q-graphs และขั้นตอนวิธีที่เสนอโดย คริสเตียน boitet ( ไม่มีใครได้รับการเผยแพร่ และแหล่งที่มาของการใช้ภาษาฟอร์แทรน ก่อนหน้านี้ได้หายไป ) ว่า การแก้ไขเสร็จสมบูรณ์และขยาย ( ฉลากโดยใช้อักขระ Unicode และไม่เพียง แต่สามารถพิมพ์อักษรของ cdc6600 ของรุ่นประวัติศาสตร์ ) โดยเดวิด cattan é o ในมุมไบ
การแปล กรุณารอสักครู่..
![](//thimg.ilovetranslation.com/pic/loading_3.gif?v=b9814dd30c1d7c59_8619)