JGPL – Linguistic Programming
JGL: Product Description
Linguistic Technologies has developed a special-purpose, high-level computer-programming language which is motivated primarily by the constructs of Junction Grammar. This language, called JGL, makes it possible for linguists to design and program language applications without first devoting years of study to conventional programming. The grammar-checking component of WordMAP-I is written in JGL. The multi-dimensional analysis of text which generates much of the data for the sublanguage profiles of WordMAP-II and WordMAP-III is also facilitated by modules written in JGL.
JGL is a pattern-matching language interfaced with a linguistic programming environment. Patterns may be defined for multiple levels of linguistic structuring, including ordinary text, lexical strings augmented with categorical and feature information, or abstract syntacto-semantic representations. Patterns may contain as much or as little information as is needed for a particular purpose. Matching patterns may either be incorporated into a linguistic representation or discarded.
Linguistic Programming Support
The JGL programming environment includes hyper-text facilities which enable the programmer to accumulate corpus materials relating to specific problems and structures. Hyper-text facilities are also available to document the code in depth and link it to corpus materials. In evaluation mode, built-in functions track the application of JGL code during processing and attach a frequency-of-use factor to each JGL statement. A global metric reports on the overall efficiency of the code.
JGL is designed for both flexibility and power. Patterns specifiers may be of arbitrary complexity. Options are available to implement pattern searches either by description or by name, and to dynamically delete, insert, alter, hop about within, or substitute patterns. Data registers are available for tabulating and organizing information developed during analysis. the error flags which appear in WordMAP-I’s grammar check listings are a dump of specific JGL registers. Linguistic Technologies will license JGL and instruct linguists in its use on a contractual basis.
JGPL – Junction Grammar Programming Language
JGPL is a pattern matching language interfaced with a linguistic programming environment. A summary of the design objectives of JGPL follows.
(1) To provide a a computerized procedure for determining which junction patterns are operative in a language and how they are realized in written form.
(2) To evaluate for the programmer the adequacy and elegance of JGPL code written for a particular purpose (a computerized evaluation metric for junction grammars).
(3) to provide a hyper-text interface which enables the programmer to fully document and explain every element of JGPL code. Because the quantity and diversity of interacting patterns to be dealt with is so large, and because multiple programmers may need to consult code segments written by others, it is mandatory that every JGPL construct be extensively documented (often in paragraph length).
(4) To assist the programmer to accumulate an extended corpus of real text which defines the analysis target of each JGPL construct appearing in a particular grammar. This enables the programmer to systematically evaluate the effect of changes throughout the grammar. It also forces programmers to make principled decisions regarding analysis objectives in terms of real text inclusions and exclusions.
(5) to enable the programmer to integrate multiple grammars, each written to address specific sublanguage conditions. for example, foreign speakers of English make errors which are uncharacteristic of natives. By the same token, experienced writers do not make errors which are characteristic of poor writers. The analysis technology needs to be sufficiently powerful to detet the nature of the material being analyzed and adjust itself accordingly, i.e., choose the appropriate grammar.
(6) To provide for pattern manipulation and substitution (syntactic structures) in a systematic way. Effective grammar-checking implies the need for correction (manipulation or substitution) when errors are found. Otherwise, other errors may not be detectable.
Natural language pattern recognition, representation, and manipulation capabilities provide a natural development path for future add-on products. JGPL is a special-purpose programming tool designed to facilitate accomplishment of these capabilities and promises to be an ideal medium for creating interfaces to existing voice synthesis/recognition modules and/or database systems. its pattern types and control structures also offer themselves as the basis for a novel database technology directed at natural language storage and retrieval.
Linguistic Technologies anticipates the following development sequence in the text-processing industry:
- Computerized error detection
- Computerized error correction
- Computerized pattern movement (reordering sentence components via linguistic functions)
- Computerized pattern substitution, transformation, and selection (intra-lingual translation/linguisic editing
- Computerized voice synthesis/recognition with reference to the syntacto-semantic patterning of the text (natural-sounding synthetic speech).
- Computerized text management for selected target audiences (statistical-linguistic modeling)
- Computerized pattern storage and retrieval (natural language data storage and retrieval).
- New designs for computer-assisted language translation based on all of the above.
To summarize, JGPL is a programming tool whose blue-print has the above objectives and development path in mind. As a general-purpose pattern-matching language, JGPL can be used to analyze diversely patterned sequential data, whether that patterning is representable in conventional parsing forms or not. For example, footnotes are alpha-numeric sequences amenable to JGPL pattern analysis, but are foreign to the linguistic patterns which characterize normal text. Similarly, many error patterns resist conventional parsing methods but are amenable to JGPL pattern analysis.
The orientation of conventional approaches is to map well-formed sentences into well-formed linguistic representations (usually trees or a notational variant). The orientation of a pattern-matching approach is that sentences (well-formed or otherwise) are a linguistic representation to begin with. The objective of the analysis is to enhance or specialize that representation in one way or another, depending upon the purpose of the code. JGPL pattern analysis is in general a much more powerful approach than conventional parsing methodologies.