Group Description

Although all the technological advances related to multimedia,
in a computer system most relevant digital data still circulates in textual format:
computer programs, specifications, documents and other information resources have their content in this format.
In order to be read and interpreted by a machine, texts should be valid sentences of a known language to
be possible to associate them some meaning.
The path towards this meaning takes us to syntax and then to semantics.

The "Language Processing" area is concerned with approaches, methods and tools
for the "specification of languages" and the "systematic development of their processors".

Language syntax and semantics is formally defined by a Grammar;
in this area we support our work on regular grammars (or regular expressions),
context free grammars, translation or attribute grammars,
affix grammars, stochastic-dependency or transition-network grammars, graph grammars,
annotation schemas, etc.

Language Processors are systematic and automatically built using tools,
called Generators, that read a grammar and produce the analysers/translators.

Although we keep the same approach, different kind of texts require specialized methods
and tools.
So the area is split into three main research directions:

Notice that "definition and support of Domain Specific Languages" and "ontology processing"
are transversal research trends on which all the subgroups are working.
In a similar way, it is clear that "ETL process" (extract-transform-load) is a target, an application area,
common to all the subgroups.

The Master course on Language Engineering, UCE30-EL (Engenharia de Linguagens), offered by the "LP@di/ctcc.uminho.pt" group
composed of the four modules below, directly reflects this status-quo and this organization:
Grammar Engineering; Software Analysis and Transformation; Document Processing; Natural Language Processing.

Also the events and journals that the group members are co-founders and organizers corroborate the
three research trends described:

SLaTE, International Symposium on Languages, Applications and Technology, that integrates the previous events:

[[http://wiki.di.uminho.pt/wiki/bin/view/OntXQuery/WebHome][OntXQuery: An Information Retrieval System, interactive and iteractive/incremental, based on XQuery++ to search XML documents over the Semantic-Web using ontologies

Some basilar and important Concepts:

- Language Workbench: a term coined by Martin Fowler (Fowler, 2005), Language Workbenches are tools aimed to
implement new languages as well as theirs IDEs. In addition to ease the development of
languages, they also make language-oriented programming environments practical.
Users can freely define new languages which are fully integrated with each other.
The primary source of information is a persistent abstract representation.
A Domain-Specific Language(DSL) is defined in three main parts: schema, editor(s),
and generator(s).
The users manipulate the DSL through a projectional editor
A language workbench can persist incomplete or contradictory information in its
abstract representation.
-->