<!--{{{-->
<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml' />
<!--}}}-->
Background: #fff
Foreground: #000
PrimaryPale: #8cf
PrimaryLight: #18f
PrimaryMid: #04b
PrimaryDark: #014
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
/*{{{*/
body {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}

a {color:[[ColorPalette::PrimaryMid]];}
a:hover {background-color:[[ColorPalette::PrimaryMid]]; color:[[ColorPalette::Background]];}
a img {border:0;}

h1,h2,h3,h4,h5,h6 {color:[[ColorPalette::SecondaryDark]]; background:transparent;}
h1 {border-bottom:2px solid [[ColorPalette::TertiaryLight]];}
h2,h3 {border-bottom:1px solid [[ColorPalette::TertiaryLight]];}

.button {color:[[ColorPalette::PrimaryDark]]; border:1px solid [[ColorPalette::Background]];}
.button:hover {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::SecondaryLight]]; border-color:[[ColorPalette::SecondaryMid]];}
.button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::SecondaryDark]];}

.header {background:[[ColorPalette::PrimaryMid]];}
.headerShadow {color:[[ColorPalette::Foreground]];}
.headerShadow a {font-weight:normal; color:[[ColorPalette::Foreground]];}
.headerForeground {color:[[ColorPalette::Background]];}
.headerForeground a {font-weight:normal; color:[[ColorPalette::PrimaryPale]];}

.tabSelected {color:[[ColorPalette::PrimaryDark]];
	background:[[ColorPalette::TertiaryPale]];
	border-left:1px solid [[ColorPalette::TertiaryLight]];
	border-top:1px solid [[ColorPalette::TertiaryLight]];
	border-right:1px solid [[ColorPalette::TertiaryLight]];
}
.tabUnselected {color:[[ColorPalette::Background]]; background:[[ColorPalette::TertiaryMid]];}
.tabContents {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::TertiaryPale]]; border:1px solid [[ColorPalette::TertiaryLight]];}
.tabContents .button {border:0;}

#sidebar {}
#sidebarOptions input {border:1px solid [[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel {background:[[ColorPalette::PrimaryPale]];}
#sidebarOptions .sliderPanel a {border:none;color:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:hover {color:[[ColorPalette::Background]]; background:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:active {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::Background]];}

.wizard {background:[[ColorPalette::PrimaryPale]]; border:1px solid [[ColorPalette::PrimaryMid]];}
.wizard h1 {color:[[ColorPalette::PrimaryDark]]; border:none;}
.wizard h2 {color:[[ColorPalette::Foreground]]; border:none;}
.wizardStep {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];
	border:1px solid [[ColorPalette::PrimaryMid]];}
.wizardStep.wizardStepDone {background:[[ColorPalette::TertiaryLight]];}
.wizardFooter {background:[[ColorPalette::PrimaryPale]];}
.wizardFooter .status {background:[[ColorPalette::PrimaryDark]]; color:[[ColorPalette::Background]];}
.wizard .button {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryLight]]; border: 1px solid;
	border-color:[[ColorPalette::SecondaryPale]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryPale]];}
.wizard .button:hover {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Background]];}
.wizard .button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::Foreground]]; border: 1px solid;
	border-color:[[ColorPalette::PrimaryDark]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryDark]];}

.wizard .notChanged {background:transparent;}
.wizard .changedLocally {background:#80ff80;}
.wizard .changedServer {background:#8080ff;}
.wizard .changedBoth {background:#ff8080;}
.wizard .notFound {background:#ffff80;}
.wizard .putToServer {background:#ff80ff;}
.wizard .gotFromServer {background:#80ffff;}

#messageArea {border:1px solid [[ColorPalette::SecondaryMid]]; background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]];}
#messageArea .button {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::SecondaryPale]]; border:none;}

.popupTiddler {background:[[ColorPalette::TertiaryPale]]; border:2px solid [[ColorPalette::TertiaryMid]];}

.popup {background:[[ColorPalette::TertiaryPale]]; color:[[ColorPalette::TertiaryDark]]; border-left:1px solid [[ColorPalette::TertiaryMid]]; border-top:1px solid [[ColorPalette::TertiaryMid]]; border-right:2px solid [[ColorPalette::TertiaryDark]]; border-bottom:2px solid [[ColorPalette::TertiaryDark]];}
.popup hr {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::PrimaryDark]]; border-bottom:1px;}
.popup li.disabled {color:[[ColorPalette::TertiaryMid]];}
.popup li a, .popup li a:visited {color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:active {background:[[ColorPalette::SecondaryPale]]; color:[[ColorPalette::Foreground]]; border: none;}
.popupHighlight {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
.listBreak div {border-bottom:1px solid [[ColorPalette::TertiaryDark]];}

.tiddler .defaultCommand {font-weight:bold;}

.shadow .title {color:[[ColorPalette::TertiaryDark]];}

.title {color:[[ColorPalette::SecondaryDark]];}
.subtitle {color:[[ColorPalette::TertiaryDark]];}

.toolbar {color:[[ColorPalette::PrimaryMid]];}
.toolbar a {color:[[ColorPalette::TertiaryLight]];}
.selected .toolbar a {color:[[ColorPalette::TertiaryMid]];}
.selected .toolbar a:hover {color:[[ColorPalette::Foreground]];}

.tagging, .tagged {border:1px solid [[ColorPalette::TertiaryPale]]; background-color:[[ColorPalette::TertiaryPale]];}
.selected .tagging, .selected .tagged {background-color:[[ColorPalette::TertiaryLight]]; border:1px solid [[ColorPalette::TertiaryMid]];}
.tagging .listTitle, .tagged .listTitle {color:[[ColorPalette::PrimaryDark]];}
.tagging .button, .tagged .button {border:none;}

.footer {color:[[ColorPalette::TertiaryLight]];}
.selected .footer {color:[[ColorPalette::TertiaryMid]];}

.error, .errorButton {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Error]];}
.warning {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryPale]];}
.lowlight {background:[[ColorPalette::TertiaryLight]];}

.zoomer {background:none; color:[[ColorPalette::TertiaryMid]]; border:3px solid [[ColorPalette::TertiaryMid]];}

.imageLink, #displayArea .imageLink {background:transparent;}

.annotation {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border:2px solid [[ColorPalette::SecondaryMid]];}

.viewer .listTitle {list-style-type:none; margin-left:-2em;}
.viewer .button {border:1px solid [[ColorPalette::SecondaryMid]];}
.viewer blockquote {border-left:3px solid [[ColorPalette::TertiaryDark]];}

.viewer table, table.twtable {border:2px solid [[ColorPalette::TertiaryDark]];}
.viewer th, .viewer thead td, .twtable th, .twtable thead td {background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::Background]];}
.viewer td, .viewer tr, .twtable td, .twtable tr {border:1px solid [[ColorPalette::TertiaryDark]];}

.viewer pre {border:1px solid [[ColorPalette::SecondaryLight]]; background:[[ColorPalette::SecondaryPale]];}
.viewer code {color:[[ColorPalette::SecondaryDark]];}
.viewer hr {border:0; border-top:dashed 1px [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::TertiaryDark]];}

.highlight, .marked {background:[[ColorPalette::SecondaryLight]];}

.editor input {border:1px solid [[ColorPalette::PrimaryMid]];}
.editor textarea {border:1px solid [[ColorPalette::PrimaryMid]]; width:100%;}
.editorFooter {color:[[ColorPalette::TertiaryMid]];}
.readOnly {background:[[ColorPalette::TertiaryPale]];}

#backstageArea {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::TertiaryMid]];}
#backstageArea a {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstageArea a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; }
#backstageArea a.backstageSelTab {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
#backstageButton a {background:none; color:[[ColorPalette::Background]]; border:none;}
#backstageButton a:hover {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstagePanel {background:[[ColorPalette::Background]]; border-color: [[ColorPalette::Background]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]];}
.backstagePanelFooter .button {border:none; color:[[ColorPalette::Background]];}
.backstagePanelFooter .button:hover {color:[[ColorPalette::Foreground]];}
#backstageCloak {background:[[ColorPalette::Foreground]]; opacity:0.6; filter:alpha(opacity=60);}
/*}}}*/
/*{{{*/
* html .tiddler {height:1%;}

body {font-size:.75em; font-family:arial,helvetica; margin:0; padding:0;}

h1,h2,h3,h4,h5,h6 {font-weight:bold; text-decoration:none;}
h1,h2,h3 {padding-bottom:1px; margin-top:1.2em;margin-bottom:0.3em;}
h4,h5,h6 {margin-top:1em;}
h1 {font-size:1.35em;}
h2 {font-size:1.25em;}
h3 {font-size:1.1em;}
h4 {font-size:1em;}
h5 {font-size:.9em;}

hr {height:1px;}

a {text-decoration:none;}

dt {font-weight:bold;}

ol {list-style-type:decimal;}
ol ol {list-style-type:lower-alpha;}
ol ol ol {list-style-type:lower-roman;}
ol ol ol ol {list-style-type:decimal;}
ol ol ol ol ol {list-style-type:lower-alpha;}
ol ol ol ol ol ol {list-style-type:lower-roman;}
ol ol ol ol ol ol ol {list-style-type:decimal;}

.txtOptionInput {width:11em;}

#contentWrapper .chkOptionInput {border:0;}

.externalLink {text-decoration:underline;}

.indent {margin-left:3em;}
.outdent {margin-left:3em; text-indent:-3em;}
code.escaped {white-space:nowrap;}

.tiddlyLinkExisting {font-weight:bold;}
.tiddlyLinkNonExisting {font-style:italic;}

/* the 'a' is required for IE, otherwise it renders the whole tiddler in bold */
a.tiddlyLinkNonExisting.shadow {font-weight:bold;}

#mainMenu .tiddlyLinkExisting,
	#mainMenu .tiddlyLinkNonExisting,
	#sidebarTabs .tiddlyLinkNonExisting {font-weight:normal; font-style:normal;}
#sidebarTabs .tiddlyLinkExisting {font-weight:bold; font-style:normal;}

.header {position:relative;}
.header a:hover {background:transparent;}
.headerShadow {position:relative; padding:4.5em 0 1em 1em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:4.5em 0 1em 1em; left:0; top:0;}

.siteTitle {font-size:3em;}
.siteSubtitle {font-size:1.2em;}

#mainMenu {position:absolute; left:0; width:10em; text-align:right; line-height:1.6em; padding:1.5em 0.5em 0.5em 0.5em; font-size:1.1em;}

#sidebar {position:absolute; right:3px; width:16em; font-size:.9em;}
#sidebarOptions {padding-top:0.3em;}
#sidebarOptions a {margin:0 0.2em; padding:0.2em 0.3em; display:block;}
#sidebarOptions input {margin:0.4em 0.5em;}
#sidebarOptions .sliderPanel {margin-left:1em; padding:0.5em; font-size:.85em;}
#sidebarOptions .sliderPanel a {font-weight:bold; display:inline; padding:0;}
#sidebarOptions .sliderPanel input {margin:0 0 0.3em 0;}
#sidebarTabs .tabContents {width:15em; overflow:hidden;}

.wizard {padding:0.1em 1em 0 2em;}
.wizard h1 {font-size:2em; font-weight:bold; background:none; padding:0; margin:0.4em 0 0.2em;}
.wizard h2 {font-size:1.2em; font-weight:bold; background:none; padding:0; margin:0.4em 0 0.2em;}
.wizardStep {padding:1em 1em 1em 1em;}
.wizard .button {margin:0.5em 0 0; font-size:1.2em;}
.wizardFooter {padding:0.8em 0.4em 0.8em 0;}
.wizardFooter .status {padding:0 0.4em; margin-left:1em;}
.wizard .button {padding:0.1em 0.2em;}

#messageArea {position:fixed; top:2em; right:0; margin:0.5em; padding:0.5em; z-index:2000; _position:absolute;}
.messageToolbar {display:block; text-align:right; padding:0.2em;}
#messageArea a {text-decoration:underline;}

.tiddlerPopupButton {padding:0.2em;}
.popupTiddler {position: absolute; z-index:300; padding:1em; margin:0;}

.popup {position:absolute; z-index:300; font-size:.9em; padding:0; list-style:none; margin:0;}
.popup .popupMessage {padding:0.4em;}
.popup hr {display:block; height:1px; width:auto; padding:0; margin:0.2em 0;}
.popup li.disabled {padding:0.4em;}
.popup li a {display:block; padding:0.4em; font-weight:normal; cursor:pointer;}
.listBreak {font-size:1px; line-height:1px;}
.listBreak div {margin:2px 0;}

.tabset {padding:1em 0 0 0.5em;}
.tab {margin:0 0 0 0.25em; padding:2px;}
.tabContents {padding:0.5em;}
.tabContents ul, .tabContents ol {margin:0; padding:0;}
.txtMainTab .tabContents li {list-style:none;}
.tabContents li.listLink { margin-left:.75em;}

#contentWrapper {display:block;}
#splashScreen {display:none;}

#displayArea {margin:1em 17em 0 14em;}

.toolbar {text-align:right; font-size:.9em;}

.tiddler {padding:1em 1em 0;}

.missing .viewer,.missing .title {font-style:italic;}

.title {font-size:1.6em; font-weight:bold;}

.missing .subtitle {display:none;}
.subtitle {font-size:1.1em;}

.tiddler .button {padding:0.2em 0.4em;}

.tagging {margin:0.5em 0.5em 0.5em 0; float:left; display:none;}
.isTag .tagging {display:block;}
.tagged {margin:0.5em; float:right;}
.tagging, .tagged {font-size:0.9em; padding:0.25em;}
.tagging ul, .tagged ul {list-style:none; margin:0.25em; padding:0;}
.tagClear {clear:both;}

.footer {font-size:.9em;}
.footer li {display:inline;}

.annotation {padding:0.5em; margin:0.5em;}

* html .viewer pre {width:99%; padding:0 0 1em 0;}
.viewer {line-height:1.4em; padding-top:0.5em;}
.viewer .button {margin:0 0.25em; padding:0 0.25em;}
.viewer blockquote {line-height:1.5em; padding-left:0.8em;margin-left:2.5em;}
.viewer ul, .viewer ol {margin-left:0.5em; padding-left:1.5em;}

.viewer table, table.twtable {border-collapse:collapse; margin:0.8em 1.0em;}
.viewer th, .viewer td, .viewer tr,.viewer caption,.twtable th, .twtable td, .twtable tr,.twtable caption {padding:3px;}
table.listView {font-size:0.85em; margin:0.8em 1.0em;}
table.listView th, table.listView td, table.listView tr {padding:0 3px 0 3px;}

.viewer pre {padding:0.5em; margin-left:0.5em; font-size:1.2em; line-height:1.4em; overflow:auto;}
.viewer code {font-size:1.2em; line-height:1.4em;}

.editor {font-size:1.1em;}
.editor input, .editor textarea {display:block; width:100%; font:inherit;}
.editorFooter {padding:0.25em 0; font-size:.9em;}
.editorFooter .button {padding-top:0; padding-bottom:0;}

.fieldsetFix {border:0; padding:0; margin:1px 0px;}

.zoomer {font-size:1.1em; position:absolute; overflow:hidden;}
.zoomer div {padding:1em;}

* html #backstage {width:99%;}
* html #backstageArea {width:99%;}
#backstageArea {display:none; position:relative; overflow: hidden; z-index:150; padding:0.3em 0.5em;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0; right:0;}
#backstageButton a {padding:0.1em 0.4em; margin:0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute; width:90%; margin-left:3em; padding:1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em;}
#backstageCloak {display:none; z-index:20; position:absolute; width:100%; height:100px;}

.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
/*}}}*/
/***
StyleSheet for use when a translation requires any css style changes.
This StyleSheet can be used directly by languages such as Chinese, Japanese and Korean which need larger font sizes.
***/
/*{{{*/
body {font-size:0.8em;}
#sidebarOptions {font-size:1.05em;}
#sidebarOptions a {font-style:normal;}
#sidebarOptions .sliderPanel {font-size:0.95em;}
.subtitle {font-size:0.8em;}
.viewer table.listView {font-size:0.95em;}
/*}}}*/
/*{{{*/
@media print {
#mainMenu, #sidebar, #messageArea, .toolbar, #backstageButton, #backstageArea {display: none !important;}
#displayArea {margin: 1em 1em 0em;}
noscript {display:none;} /* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */
}
/*}}}*/
<!--{{{-->
<div class='header' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date'></span>)</div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::EditToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='editor' macro='edit title'></div>
<div macro='annotations'></div>
<div class='editor' macro='edit text'></div>
<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser excludeLists'></span></div>
<!--}}}-->
To get started with this blank [[TiddlyWiki]], you'll need to modify the following tiddlers:
* [[SiteTitle]] & [[SiteSubtitle]]: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)
* [[MainMenu]]: The menu (usually on the left)
* [[DefaultTiddlers]]: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened
You'll also need to enter your username for signing your edits: <<option txtUserName>>
These [[InterfaceOptions]] for customising [[TiddlyWiki]] are saved in your browser

Your username for signing your edits. Write it as a [[WikiWord]] (eg [[JoeBloggs]])

<<option txtUserName>>
<<option chkSaveBackups>> [[SaveBackups]]
<<option chkAutoSave>> [[AutoSave]]
<<option chkRegExpSearch>> [[RegExpSearch]]
<<option chkCaseSensitiveSearch>> [[CaseSensitiveSearch]]
<<option chkAnimate>> [[EnableAnimations]]

----
Also see [[AdvancedOptions]]
<<importTiddlers>>
//!: system command: escape to system shell.//

    Syntax: {{{! SYSTEMCOMMAND}}}

    Examples:

  {{{      ! ls *.gf   -- list all GF files in the working directory}}}

//[[Olga Caprotti]]//
Department of Computer Science and Engineering,
Chalmers University of Technology and University of Gothenburg,
Sweden

olga.caprotti@gmail.com
//?: system pipe: send value from previous command to a system command.//

    Syntax: {{{? SYSTEMCOMMAND}}}

    Examples:

 {{{       gt | l | ? wc  -- generate, linearize, word-count}}}

* the MOLTO Project coordinator
* main investigator of GF
.....

here's Aarne's CV from [[the GF book]]:

_quote_

This presentation is done using [[TiddlyWiki | http://www.tiddlywiki.com]] by Jeremy Ruston.

See also [[asciencepad | http://math.chapman.edu/~jipsen/asciencepad/asciencepad.html]] for embedding mathematics in MathML and graphics in SVG in it, by David Lippman and Peter Jipsen.
Combination of Collaborative Projects and Coordination and Support Actions

It enables therefore the financing, under the same grant agreement, of research, coordination and support activities
Coordination and Support Actions

Support to activities aimed at coordinating or supporting research activities and
policies (networking, exchanges, coordination of funded projects, trans-national
access to research infrastructures, studies, conferences, etc).
//Challenge 4 aims at enabling individuals and small organizations to [[create quality content]] and innovative services and at allowing people to access and use online content and [[services across language barriers]]; it also aims at ensuring [[reliability of retrieval]] and use of digital resources across applications and platforms and at [[scaling up data analysis]] to keep pace with extremely large data volumes.//

<<tag [[Challenge_4]]>>  to work on
<<tag [[ICT-2013.4.1]]>> various objectives

!! Target Outcomes

Due to the combined effect of globalisation and European integration, there is a
growing need for effective solutions that support multilingual business and interpersonal communication, and enable people accessing digital services in Europe's many languages.

For each of the target outcomes (a), (b) and (c), the call invites

# (i) a ''few ambitious R&D projects'' investigating new approaches and research avenues well beyond the current state of the art; projects will be centred on cross-disciplinary approaches and partnerships, and address multimedia content and multimodal interaction; they will encompass everyday language as found in e.g. consumer generated content, cover multiple languages, and cater for written and/or spoken language as appropriate; technologies shall be adaptive, cope with massive volumes of content, and have a clear potential to support real-life processes;
# (ii) ''one broad-based support action'' designed to establish a unifying roadmap in each of the domains under consideration, developing a compelling research and innovation agenda until and beyond 2020, centred on close collaboration between research centres and commercial players (particularly SMEs), and based upon agreed reference architectures, common resources (standards, software, data), and shared development and evaluation facilities.

!!! Funding Schemes
a), b), c): [[STREP]], [[CSA]]
d): [[CSA]]

!!! Indicative budget distribution
* STREP: EUR 21 million
* CSA: EUR 6 million

from:
WORK PROGRAMME 2013, COOPERATION THEME 3, ICT – INFORMATION AND COMMUNICATIONS TECHNOLOGIES, (European Commission C(2012)4536 of 09 July 2012)
# study of existing metadata schemata adopted by museums in Sweden resulted in the creation of the MOLTO cultural heritage ad-hoc ontology supporting compatibility to a variety of cultural heritage data schemata
# study of syntactic structures and patterns for discourse generation
# the standard CIDOC-CRM from the [[ International Council of Museums|http://www.cidoc-crm.org/]] has been implemented in GF.
# the MOLTO cultural heritage ontology is being implemented in GF and  tested in the verbalization of the ontology axioms.

Possible application scenario:
<html>
<iframe width="100%" height="315" src="http://www.youtube.com/embed/JIFlVbLLTlw" frameborder="0" allowfullscreen></iframe>
</html>

See http://www2012.org:
Multilingual Online Generation from Semantic Web Ontologies
//Dana Dannells, Ramona Enache, Mariana Damova and Milen Chechev//

[img[Dana.jpg]]
Call identifier: FP7-ICT-2013-10
* Date of publication: 10 July 2012
* Deadline: 15 January 2013, at 17:00.00 Brussels local time
* Indicative budget: EUR 705.5 million

[[Challenge 4: Technologies for Digital Content and Languages]]
ICT-2013.4.1 Content analytics and language technologies
[[STREP]], [[CSA]]

!!! Horizontal Actions

ICT-2013.11.1 Ensuring more efficient, higher quality public services through Pre-Commercial Procurement of ICT solutions across various sectors of public interest: [[CP-CSA]]

ICT-2013.11.3 High quality cloud computing environment for public sector needs, validated through a joint pre-commercial procurement (PCP): [[CP-CSA]]

ICT-2013.11.5 Cross border services, investment readiness and legal advice for ICT SMEs, start-ups and entrepreneurs: [[CSA]]


Indicative evaluation and contractual timetable: It is expected that the grant agreement negotiations for the shortlisted proposals will start as of April/May 2013
Since GF is a programming language, by "expert" we means someone who: 
* has a basic knowledge of programming discipline
* preferably knows some type theory, logic is a must
* is familiar with thinking in abstract  terms
* is fluent in one or more languages

Moreover, there are two kinds of GF-experts:
* resource grammars authors: grammarians
* application grammars authors: use the RGL, know the domain of application
The GF software system implements the GF programming language. Its components are

* the compiler, translating {{{.gf}}} source files to {{{.gfo}}} object files, to {{{.pgf}}} run-time grammars, and to various other formats
* the run-time system, performing parsing, generation, translation and other functions with {{{.pgf}}} grammars
* the command interpreter, also known as the GF shell, executing user commands by calling the compiler and the run-time system

This wiki describes the commands of the GF shell, as well as the use of the compiler in batch mode. 
To get started with this blank [[TiddlyWiki]], you'll need to modify the following tiddlers:
* [[SiteTitle]] & [[SiteSubtitle]]: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)
* [[MainMenu]]: The menu (usually on the left)
* [[DefaultTiddlers]]: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened
You'll also need to enter your username for signing your edits: <<option txtUserName>>
<html><center>
to develop a set of tools for translating texts between multiple languages in real time with high quality. 
</center></html>

Languages are separate modules that can be varied among the EU’s 23 official languages, but are not limited to.

MOLTO uses the [[Grammatical Framework]] (GF) to implement
* domain-specific semantic grammars and 
* ontology-based interlinguas. 

So far GF has been applied in several small-to-medium size domains, (< 10 languages) but MOLTO will scale this up in terms of productivity and applicability.

MOLTO technology will be released as open-source libraries, which can be plugged in to standard translation tools and web pages and thereby fit into standard workflows. 


http://www.molto-project.eu
Explore common future development and research in alignment with [[LT2020]] and with the Digital Agenda [1] and the programmes Connecting Europe Facility (CEF) [2] and Horizon 2020 [3].

Current open call:&nbsp;[[FP7-ICT-2013-10]].


[1] European Commission. [[A Digital Agenda for Europe, 2010. | http://ec.europa.eu/information_society/ digital-agenda]]

[2] European Commission. [[Horizon 2020: The Framework Programme for Research and Innovation, 2012.  | http://ec.europa.eu/research/horizon2020/index_en.cfm?pg=h2020]] and a [[prezi | http://prezi.com/1fogw2zvbiek/horizon-2020-officialversion/?auth_key=affe016b17ca2bf0d96d1d4a44f6a6ad3bb6bd63]]

[3] European Commission. [[Connecting Europe Facility: Commission adopts plan for €50 billion boost to European networks, 2011. | http://europa.eu/rapid/pressReleasesAction.do?reference=IP/11/1200]]
* http://www.molto-project.eu/workplan/wp2
* http://www.molto-project.eu/workplan

First results:

* file:./GFShell.html
* GF plugin for Eclipse  
* http://grammaticalframework.org

[gf0.svg]
http://www.gu.se


[img[Chalmers.jpg]]

[img[CLT2011.jpg]]
//Challenge 4 aims at enabling individuals and small organizations to [[create quality content]] and innovative services and at allowing people to access and use online content and [[services across language barriers]]; it also aims at ensuring [[reliability of retrieval]] and use of digital resources across applications and platforms and at [[scaling up data analysis]] to keep pace with extremely large data volumes.//

> <<tag [[Challenge_4]]>>  
> <<tag [[ICT-2013.4.1]]>>

from:
WORK PROGRAMME 2013, COOPERATION THEME 3, ICT – INFORMATION AND COMMUNICATIONS TECHNOLOGIES, (European Commission C(2012)4536 of 09 July 2012)
Research Assistant at University of Gothenburg

Developer of GF Eclipse Plugin (Work package 2: Grammar developers' tools)

Interests: language
MOLTO plans to study GF-OWL interoperability  

''given a specification'' as done using semantic web standards, e.g. OWL

''generate GF abstract grammars'' to serve as an inter-lingua for the application domain under consideration. 

Examples in MOLTO:
 * [[Mathematics]]
 * [[Cultural Heritage]] 
STRATEGIC RESEARCH AGENDA FOR MULTILINGUAL EUROPE 2020
edited by the
META Technology Council


A vision for the next years in [[Language Technology]]:

In 2020, LT will enable forms of knowledge evolution, knowledge transmission, and knowledge exploitation that speed up scientific, social, and cultural development.
Translation Cloud

Services for instantaneous reliable spoken and written translation among all European and major non-European languages
Social Intelligence and e-Participation

Understanding and dialogue within and across communities of citizens, customers, clients, consumers.
Socially Aware Interactive Assistants

Analysis and synthesis of non-verbal, speech and semantic signals.
<<tag [[LT]]>>  
Ãœtrecht, The Netherlands

—
//[[Olga Caprotti]]
Department of Computer Science and Engineering,
Chalmers University of Technology and University of Gothenburg,
Sweden

olga.caprotti@gmail.com
A web application to deliver commonly used sentences, as found in travelers' books, for a large number of languages.

Shows a number of features, especially:
* [[word prompting in GF]]
* [[polite forms in GF]] 
* [[linearization and parsing in GF]]

Request for evaluators! See feedback form at:
> feedback for phrasebook

See [[SLTC2010]].


<html>
<div class="prezi-player"><style type="text/css" media="screen">.prezi-player { width: 100%px; } .prezi-player-links { text-align: center; }</style><object id="prezi_cj4e2ihvjlte" name="prezi_cj4e2ihvjlte" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="400"><param name="movie" value="http://prezi.com/bin/preziloader.swf"/><param name="allowfullscreen" value="true"/><param name="allowscriptaccess" value="always"/><param name="bgcolor" value="#ffffff"/><param name="flashvars" value="prezi_id=cj4e2ihvjlte&amp;lock_to_path=0&amp;color=ffffff&amp;autoplay=no&amp;autohide_ctrls=0"/><embed id="preziEmbed_cj4e2ihvjlte" name="preziEmbed_cj4e2ihvjlte" src="http://prezi.com/bin/preziloader.swf" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="100%" height="400" bgcolor="#ffffff" flashvars="prezi_id=cj4e2ihvjlte&amp;lock_to_path=0&amp;color=ffffff&amp;autoplay=no&amp;autohide_ctrls=0"></embed></object><div class="prezi-player-links"><p><a title="MOLTO Enlarged EU Kickoff Meeting" href="http://prezi.com/cj4e2ihvjlte/molto-enlarged-eu-kickoff-meeting/">MOLTO Enlarged EU Kickoff Meeting</a> on <a href="http://prezi.com">Prezi</a></p></div></div>
</html>

[img[Aarne.jpg]]
<<tag [[About]]>>  
<<tag [[Team]]>>  
<<tag [[GF]] >>
<<tag [[Events]] >>
<<tag [[MOLTO-JM]]>>  
 <<tiddler ToggleRightSidebar##show with: {{config.options.chkShowRightSidebar?'â–º':'â—„'}}>>
Education:
# Master of science in computer science 

Current work:
# A wide-coverage grammar for Swedish
# Multilingual syllogism solver

Research Interests:
# type theory 
# computational linguistics
# functional programming
The mathematics scenario builds on the: 
* WebALT Mathematical Grammar Library, MGL
* OpenMath, a markup for math content compatible with MathML-content

The demo shows natural language input/output  to Sage:
* [[Voice output to Sage]] (accessibility, DEIMS talk)
Innovative methods and tools for //mining unstructured information embedded// in text, speech, audio and video for the purposes of 
* context-aware interpretation, 
* correlation, 
* aggregation and summarisation, 
* turning information into usable understanding and actionable knowledge. 

Special emphasis is placed on //social and collective intelligence from multilingual sources//.

Projects shall achieve __broad coverage with efficient semantic interpretation__. 

Of specific interest is the ability to 
* capture sentiment and 
* represent concepts and events, 
* identify relations and similarities, 
* interpreting time and space, 

within and across individual media, thus increasing our ability to detect and exploit otherwise hidden meaning across a range of applications.
The call invites one support action intended to 
> design and lay the foundations of a scalable platform for the joint development/enhancement and hosting of (multi-) language data sets, processing tools and basic services. 

The action will build upon and extend existing and emerging collaborative infrastructures. The aim is to create over time a comprehensive online repository of reusable modules and components, in the broadest possible range of EU languages, underpinning research, technology transfer and industrial development efforts.
Advancing machine translation (MT) by pushing the research frontier and bridging relevant disciplines. Emphasis is placed on //high-performance and easily configurable MT// yielding __high-quality translations__ suitable for publication with little or no human intervention. 

Expected innovations include
* effective hybridization of existing and emerging solutions, 
* the ability to autonomously learn from use and human feedback, and 
* to adapt to new situations with high portability and scalability. 

Work should cope with everyday language and with the need to //compile translation resources dynamically// from the web or enterprise repositories. 

Projects are expected to demonstrate the successful integration of MT within larger systems.
Speech-enabled interfaces based upon multimodal verbal and non-verbal
communication. 

Projects shall address autonomous human-like social agents that 
* can handle conversational speech; 
* learn from interaction and react proactively to new communicative situations; * recognize and generate social cues. 

Systems should be able to cope with spontaneous dialogue and exhibit adequate communicative, affective and cognitive (e.g. question answering) capabilities in relation to the domain/task under consideration and the needs and abilities of the user. 

Technologies should be designed to match multiple delivery platforms, from virtual assistants e.g. for customer service, through smartphones to games.
* Project manager - MOLTO, MOLTO-EEU at Chalmers, [[Göteborg University]], [[Sweden]]
* Secretary of the OpenMath Society
* Committee Electronic Information and Communication of the IMU 

Before: 
* PhD in Symbolic Computation at RISC-Linz
* a few EU projects, OpenMath, MONET, Calculemus, WebALT, JEM
* OpenMath editor, W3C-Math working group

Research interests:
* online communication of mathematics
* mathematical knowledge management, e.g. CAS and ATP as in Calculemus
* e-science workflows
* e-learning in STEM areas

<!--{{{-->
<div id='header' class='header' macro='gradient vert   #555555       #3b3b3b '>
        <div class='siteTitle' refresh='content' tiddler='SiteTitle'></div>
        <span id='topMenu' refresh='content' tiddler='MainMenu'></span>
</div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
A scenario for the hybrid model  in which the GF functionalities are supporting statistical machine translation in a number of ways.


<<plugins>>
<html>
<div class="prezi-player"><style type="text/css" media="screen">.prezi-player { width: 100%px; } .prezi-player-links { text-align: center; }</style><object id="prezi_bz2nz0wujzfa" name="prezi_bz2nz0wujzfa" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="400"><param name="movie" value="http://prezi.com/bin/preziloader.swf"/><param name="allowfullscreen" value="true"/><param name="allowscriptaccess" value="always"/><param name="bgcolor" value="#ffffff"/><param name="flashvars" value="prezi_id=bz2nz0wujzfa&amp;lock_to_path=0&amp;color=ffffff&amp;autoplay=no&amp;autohide_ctrls=0"/><embed id="preziEmbed_bz2nz0wujzfa" name="preziEmbed_bz2nz0wujzfa" src="http://prezi.com/bin/preziloader.swf" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="100%" height="400" bgcolor="#ffffff" flashvars="prezi_id=bz2nz0wujzfa&amp;lock_to_path=0&amp;color=ffffff&amp;autoplay=no&amp;autohide_ctrls=0"></embed></object><div class="prezi-player-links"><p><a title="The MOLTO Phrasebook" href="http://prezi.com/bz2nz0wujzfa/the-molto-phrasebook/">The MOLTO Phrasebook</a> on <a href="http://prezi.com">Prezi</a></p></div></div>
</html>
Education:
# BSc in Computer Science, 2008, University of Bucharest 
# MSc in Foundations of Computing - Algorithms and Logic, 2010, Chalmers University of Technology
# PhD in Computer Science, 2010 - present, University of Gothenburg

Current work:
# 
#

Research Interest:
# multilingual grammars
# grammar testing
# hybrid translation systems
# controlled natural languages
# example-based grammar writing
"OWL-GF interoperability"

>         {{{will enable multilingual natural-language-based interaction with machine readable knowledge}}}

"Hybrid GF-based and statistical machine translation"

>         {{{will add robustness to the system when desired}}}
[[Poster|PosterSLTC]] presented at [[SLTC2010]].

[img[file:./PosterSLTC.png]]

Specific Targeted Research Projects
;Education:
# PhD Student
# M.Sc Applied IT, Chalmers
[img[Shafqat licentiat.png]]

;Current Work:
# development of grammar-based resources for the Indo-Iranian languages. I am also recently involved in the MOLTO project.

;Research Interests:
# exploration of different lexical and syntactical properties of resource-poor languages such as Punjabi and Sindhi.

[img[Shafqat.jpg]]
<<search>><<closeAll>><<permaview>><<newTiddler>><<newJournal "DD MMM YYYY" "journal">><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel "options »" "Change TiddlyWiki advanced options">>
non multa, sed multum
MOLTO - Multilingual Online Translation
     .tiddler .subtitle {
       display: none; 
     }

/*{{{*/
/*Blackicity Theme for TiddlyWiki*/
/*Design and CSS by Saq Imtiaz*/
/*Version 1.0*/
/*}}}*/
/*{{{*/
body{	
        font-family: "Verdana",  "Lucida Grande", sans-serif;
	background-color: #fff;
	color: #333;}

#header {
     padding: 0em 0em 0em 0em; 
     background:transparent;	
     font-family: sans-serif; 
     font-size:12px;
 }

.siteTitle {
     padding-top:5px;
     float:left;
     font-family: 'Verdana' sans-serif;
     font-weight: bold;
     font-size: 28px;
     color: #ccc; margin-right:2em;margin-left:0.5em;
}

/* 
#topMenu {position:relative; background:#282826; padding:10px; color:#fff;font-family:'Lucida Grande', Verdana, sans-serif;}

#topMenu br {display:none;}

#topMenu a{			color: #999;
			padding: 0px 8px 0px 8px;
			border-right: 1px solid #444;}
#topMenu a:hover {color:#fff; background:transparent;}
*/


#topMenu br {display:none;}
#topMenu a, #topMenu .tiddlyLink, #topMenu .button {margin:0em; color:#666; padding:15px 15px 10px 15px;padding-top:1.6em;border:none; border-right: 1px solid #666;float:left;}
#topMenu {border-left: 1px solid #666;  float:left;margin:0;}
#topMenu a:hover {color:#ccc; background:#3b3b3b;}



#displayArea {margin-left:1em; margin-bottom:2em; margin-top:0.5em;}


a, a:hover{
color:#333;
text-decoration: none;   background:transparent; 
}

.viewer a, .viewer a:hover {border-bottom:1px dotted #333; font-weight:bold;}


.viewer .button, .editorFooter .button{
color: #333;
border: 1px solid #333;
}

.viewer .button:hover,
.editorFooter .button:hover, .viewer .button:active, .viewer .highlight,.editorFooter .button:active, .editorFooter .highlight{
color: #fff;
background: #333;
border-color: #333;
}

.tiddler .viewer {line-height:1.45em;}
.title {
    color:#222; 
    border-bottom:1px solid#222; 
    font-family:'Futura', Verdana, sans-serif; 
    font-size:1.5em;}

.subtitle, .subtitle a { 
    color: #999999; 
    font-size: 0.95em;
    margin:0.2em;}

.shadow .title{color:#999;}

.toolbar {font-size:90%;}
.selected .toolbar a {color:#999999;}
.selected .toolbar a:hover {color:#333; background:transparent;border:1px solid #fff;}

.toolbar .button:hover, .toolbar .highlight, .toolbar .marked, .toolbar a.button:active{color:#333; background:transparent;border:1px solid #fff;}

/***
!Sidebar
***/
#sidebar { margin-bottom:2em !important; margin-bottom:1em; right:0;
}

/***
!SidebarOptions
***/
#sidebarOptions { padding-top:2em;background:#f3f3f3;padding-left:0.5em;}

#sidebarOptions a {
			color:#333;
                        background:#f3f3f3;
                        border:1px solid #f3f3f3;
			text-decoration: none;
}

#sidebarOptions	a:hover, #sidebarOptions a:active {
			color:#222;
			background-color:#fff;border:1px solid #fff;
		}

#sidebarOptions input {border:1px solid #ccc; }

#sidebarOptions .sliderPanel {
	background: #f3f3f3; 	font-size: .9em;
}

#sidebarOptions .sliderPanel input {border:1px solid #999;}
#sidebarOptions .sliderPanel .txtOptionInput {border:1px solid #999;width:9em;}

#sidebarOptions .sliderPanel a {font-weight:normal; color:#555;background-color: #f3f3f3; border-bottom:1px dotted #333;}


#sidebarOptions .sliderPanel a:hover {
color:#111;
background-color: #f3f3f3;
border:none;
border-bottom:1px dotted #111;
}
/***
!SidebarTabs
***/
 .listTitle {color:#222;}
#sidebarTabs {background:#f3f3f3;}

#sidebarTabs .tabContents {background:#cfcfcf;}

#sidebarTabs .tabUnselected:hover {color:#999;}

#sidebarTabs .tabSelected{background:#cfcfcf;}

#sidebarTabs .tabContents .tiddlyLink, #sidebarTabs .tabContents .button{color:#666;}
#sidebarTabs .tabContents .tiddlyLink:hover,#sidebarTabs .tabContents .button:hover{color:#222;background:transparent; text-decoration:none;border:none;}

#sidebarTabs .tabContents .button:hover, #sidebarTabs .tabContents .highlight, #sidebarTabs .tabContents .marked, #sidebarTabs .tabContents a.button:active{color:#222;background:transparent;}

#sidebarTabs .txtMoreTab .tabSelected,
#sidebarTabs .txtMoreTab .tab:hover,
#sidebarTabs .txtMoreTab .tabContents{
 color: #111;
 background: #f3f3f3; border:1px solid #f3f3f3;
}

#sidebarTabs .txtMoreTab .tabUnselected {
 color: #555;
 background: #AFAFAF;
}



/***
!Tabs
***/
.tabSelected{color:#fefefe; background:#999; padding-bottom:1px;}
 .tabSelected, .tabSelected:hover {
 color: #111;
 background: #fefefe;
 border: solid 1px #cfcfcf;
}

 .tabUnselected {
 color: #999;
 background: #eee;
 border: solid 1px #cfcfcf;
 padding-bottom:1px;
}
.tabUnselected:hover {text-decoration:none; border:1px solid #cfcfcf;}
.tabContents {background:#fefefe;}





.tagging, .tagged {
border: 1px solid #eee;
background-color: #F7F7F7;
}

.selected .tagging, .selected .tagged {
background-color: #f3f3f3;
border: 1px solid #ccc;
}

.tagging .listTitle, .tagged .listTitle {
color: #bbb;
}

.selected .tagging .listTitle, .selected .tagged .listTitle {
color: #333;
}

.tagging .button, .tagged .button {
color:#ccc;
}
.selected .tagging .button, .selected .tagged .button {
color:#aaa;
}

.highlight, .marked {background:transparent; color:#111; border:none; text-decoration:underline;}

.tagging .button:hover, .tagged .button:hover, .tagging .button:active, .tagged .button:active {
border: none; background:transparent; text-decoration:underline; color:#333;
}



.popup {
background: #cfcfcf;
border: 1px solid #333;
}

.popup li.disabled {
color: #000;
}

.popup li a, .popup li a:visited {
color: #555;
border: none;
}

.popup li a:hover {
background: #f3f3f3;
color: #555;
border: none;
}



#messageArea {

border: 4px dotted #282826;
background: #F3F3F3;
color: #333;
font-size:90%;
}

#messageArea a:hover { background:#f5f5f5; border:none;}


#messageArea .button{
color: #333;
border: 1px solid #282826;
}

#messageArea .button:hover {
color: #fff;
background: #282826;
border-color: #282826;
}






.tiddler {padding-bottom:10px;}

.viewer blockquote {
border-left: 5px solid #282826;
}

.viewer table, .viewer td {
border: 1px solid #282826;
}

.viewer th, thead td {
background: #282826;
border: 1px solid #282826;
color: #fff;
}
.viewer pre {
border: 1px solid #ccc;
background: #f5f5f5;
}

.viewer code {
color: #111; background:#f5f5f5;
}

.viewer hr {
border-top: dashed 1px #222; margin:0 1em;
}

.editor input {
border: 1px solid #ccc; margin-top:5px;
}

.editor textarea {
border: 1px solid #ccc;
}

h1,h2,h3,h4,h5 { color: #282826; background: transparent; padding-bottom:2px; font-family: Arial, Helvetica, sans-serif; }
h1 {font-size:18px;}
h2 {font-size:16px;}
h3 {font-size: 14px;}
/*}}}*/
[img[firstsnow.jpg]]
The GF team, headed by [[Aarne Ranta]], has been developing the grammar resource library since ...

Activities can be followed in the Google group: 

> grammaticalframework.groups.google.com
> twitter.com/gflang

[img[IMG_3749.jpg]]
The [[Digital Agenda for Europe | http://ec.europa.eu/information_society/digital-agenda/index_en.htm]]

Pillar 1: A vibrant digital single market

Pillar 2: Interoperability and standards

Pillar 3: Trust and security

Pillar 4: Fast and ultra-fast Internet access

Pillar 5: Research and innovation

Pillar 6: Enhancing digital literacy, skills and inclusion

Pillar 7: ICT-enabled benefits for EU society
With the option {{{-batch}}}, GF can be invoked in batch mode, i.e. without opening the shell, to compile files from {{{.gf}}} to {{{.gfo}}}. The {{{-s}}} option ("silent") eliminates all messages except errors.
{{{
    $ gf -batch -s LangIta.gf
}}}
With the option {{{-make}}}, and as a set of top-level grammar files (with the same abstract syntax) as arguments, GF produces a {{{.pgf}}} file. The flag {{{-optimize-pgf}}} minimizes the size of the {{{.pgf}}} file, and is recommended for grammars to be shipped.
{{{
    $ gf -make -optimize-pgf LangIta.gf LangEng.gf LangGer.gf
}}}
The flag {{{-output-format}}} changes the output format from {{{.pgf}}} to some other format. For instance
{{{
    $ gf -make -output-format=js LangEng.pgf LangGer.pgf
}}}
Notice that the arguments can be {{{.pgf}}} files, which in this case are merged and written into a JavaScript grammar file.

More options and instructions are obtained with
{{{
    $ gf -help
}}}
To run GF from a script, redirection of standard input can be used:
{{{
    $ gf <script.gfs
}}}
The file {{{script.gfs}}} should then contain a sequence of GF commands, one per line. Unrecognized command lines are skipped without terminating GF. 
Thomas is responsible for all the scripting behind the GF scene:
* the JavaScript "minibar", used all over
* the generation scripts for the online API and the documentation

Also
* works on GF compiler maintenance and distribution
* functional programming expert
/%
!info
|Name|ToggleRightSidebar|
|Source|http://www.TiddlyTools.com/#ToggleRightSidebar|
|Version|2.0.0|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|transclusion|
|Description|show/hide right sidebar (SideBarOptions)|
Usage
<<<
{{{
<<tiddler ToggleRightSidebar>>
<<tiddler ToggleRightSidebar with: label tooltip>>
}}}
Try it: <<tiddler ToggleRightSidebar##show
	with: {{config.options.chkShowRightSidebar?'â–º':'â—„'}}>>
<<<
Configuration:
<<<
copy/paste the following settings into a tiddler tagged with <<tag systemConfig>> and then modify the values to suit your preferences:
{{{
config.options.chkShowRightSidebar=true;
config.options.txtToggleRightSideBarLabelShow="â—„";
config.options.txtToggleRightSideBarLabelHide="â–º";
}}}
<<<
!end
!show
<<tiddler {{
	var co=config.options;
	if (co.chkShowRightSidebar===undefined) co.chkShowRightSidebar=true;
	var sb=document.getElementById('sidebar');
	var da=document.getElementById('displayArea');
	if (sb) {
		sb.style.display=co.chkShowRightSidebar?'block':'none';
		da.style.marginRight=co.chkShowRightSidebar?'':'1em';
	}
'';}}>><html><nowiki><a href='javascript:;' title="$2"
onmouseover="
	this.href='javascript:void(eval(decodeURIComponent(%22(function(){try{('
	+encodeURIComponent(encodeURIComponent(this.onclick))
	+')()}catch(e){alert(e.description?e.description:e.toString())}})()%22)))';"
onclick="
	var co=config.options;
	var opt='chkShowRightSidebar';
	var show=co[opt]=!co[opt];
	var sb=document.getElementById('sidebar');
	var da=document.getElementById('displayArea');
	if (sb) {
		sb.style.display=show?'block':'none';
		da.style.marginRight=show?'':'1em';
	}
	saveOptionCookie(opt);
	var labelShow=co.txtToggleRightSideBarLabelShow||'&#x25C4;';
	var labelHide=co.txtToggleRightSideBarLabelHide||'&#x25BA;';
	if (this.innerHTML==labelShow||this.innerHTML==labelHide) 
		this.innerHTML=show?labelHide:labelShow;
	this.title=(show?'hide':'show')+' right sidebar';
	var sm=document.getElementById('storyMenu');
	if (sm) config.refreshers.content(sm);
	return false;
">$1</a></html>
!end
%/<<tiddler {{
	var src='ToggleRightSidebar';
	src+(tiddler&&tiddler.title==src?'##info':'##show');
}} with: {{
	var co=config.options;
	var labelShow=co.txtToggleRightSideBarLabelShow||'&#x25C4;';
	var labelHide=co.txtToggleRightSideBarLabelHide||'&#x25BA;';
	'$1'!='$'+'1'?'$1':(co.chkShowRightSidebar?labelHide:labelShow);
}} {{
	var tip=(config.options.chkShowRightSidebar?'hide':'show')+' right sidebar';
	'$2'!='$'+'2'?'$2':tip;
}}>>




to ease the workflow of non GF-experts in creating new application grammars by leveraging on existing resources in computational linguistics

MOLTO is proudly part of [[META-SHARE | http://www.meta-net.eu/meta-share]] for an open, distributed, secure, and interoperable infrastructure for the Language Technology domain. 
<html>
<iframe src="http://www.screenr.com/embed/0D3s" width="100%" height="396" frameborder="0"></iframe>

feedback option and translation between Spanish and English:

<iframe src="http://www.screenr.com/embed/GD3s" width="100%" height="396" frameborder="0"></iframe>
</html>
Editing GF application grammars in the cloud :)

Editor in JavaScript for:
* rapid prototyping of application grammars
* ideal for tutorial settings
* on the fly generation and compilation of grammars
* integrated example-based grammar generation

http://grammaticalframework.org/demos/gfse

<html>
<iframe src="http://www.grammaticalframework.org/demos/gfse/" width="100%" height="400px"></iframe>
</html>



(thanks to [[Thomas Hallgren]], [[Krasimir Angelov]], and [[Ramona Enache]])
*    Spell and grammar checking in text processing applications and editing tools; (MOLTO)
*    web search; (Query work in MOLTO)
*    voice dialing;
*    interactive dialogue systems (from banking over the phone to train reservation systems to Apple’s Siri);(see new work of Kaarel Kaljurand)
*    cross-lingual search in digital libraries (such as, e. g., Europeana); (MOLTO WP8)
*   synthetic voices for navigation systems;
*   recommender systems for online shops;
*    machine translation systems such as Google Translate, etc. (MOLTO hybrid, GF Apps)
* __Information__: Access and management
> Information retrieval

* __Communication__: Human-human; human-machine 
> Spoken dialogue system

* __Translation__: Spoken and written
> Document translation
Information technologies for processing automatically human languages – in both

*  modalities: spoken and written language, and
*  directions: analysis and generation of language.


Language technologies are developed by experts involved in

 *  computer science,
 *  linguistics,
 *  computational linguistics,
 *   and related disciplines. 
!!The Dutch public prosecution service  (Openbaar Ministerie)
* manage criminal investigation
* det sentences or bring criminals to court
* monitor exec of sentences

!! from Reference Architecture 
 * Citizen portal - OM Employee portal - Partner portal
 security layer
 *  OM service bus
 * Information services 

!! to Enterprise Architecture
* focal points  
* portals 
* digital case files
* conn master data sources 
* service orientation 
* isolate business in a BRE (Business Rule Engine)
* know mgt

!! OM is a Public Org
governed by law
policy discretion with board of Procurators General
Policies consist
 - directives MUST BE followed by OM and investigator services
 - guidelines - reconne
tool BOS/Polaris
 - Advise on the demanded sentence for a certain service

!! Rule driven Guidelines for Sentence demands

* tool will ask questions 
* every question impacts the final penalty score 
* a score leads eg. to a fine (for traffic violation rules)

can help District Attorney to demand in court

!! Desired Approach 

create policy 1=>  Encode in BRE (°=>1 Publish via Internet =>2 Publish via BRE =>3 issue guidelines) <=2 issue guidelines

{{{
° help here needed
=> multiple branch
}}}
* Management and dissemination throughout the project.
* Requirements and evaluation throughout the project. Initially it has defined requirements for the tools and the case studies. Currently it performs evaluation and delivers feedback including bug fixing.
* Generic tools: early in the project.
* Case studies: later than the tools. 


Details are on the project's website  http://www.molto-project.eu/workplan

<<tag [[workpackages]] >>
<<tag [[demos]] >>
{{{ai = abstract_info}}}: //Provides an information about a function, an expression or a category from the abstract syntax.//

The command has one argument which is either function, expression or a category defined in the abstract syntax of the current grammar. If the argument is a function then ?its type is printed out. If it is a category then the category definition is printed. If a whole expression is given it prints the expression with refined metavariables and the type of the expression.

    Syntax: {{{ai IDENTIFIER or ai EXPR}}}
{{{aw = align_words}}}: //show word alignments between languages graphically.//

Prints a set of strings in the .dot format (the graphviz format). The graph can be saved in a file by the wf command as usual. If the -view flag is defined, the graph is saved in a temporary file which is processed by graphviz and displayed by the program indicated by the flag. The target format is postscript, unless overridden by the flag -format.

    Options:

   {{{-giza 	show alignments in the Giza format; the first two languages}}}

    Flags:

{{{-format 	format of the visualization file (default "png") }}}
{{{-lang 	        alignments for this list of languages (default: all) }}}
{{{-view 	        program to open the resulting file }}}

    Examples:
{{{
        gr | aw                         -- generate a tree and show word alignment as graph script
        gr | aw -view="open"            -- generate a tree and display alignment on Mac
        gr | aw -view="eog"             -- generate a tree and display alignment on Ubuntu
        gt | aw -giza | wf -file=aligns -- generate trees, send giza alignments to file
}}}
{{{ca = clitic_analyse}}}: //print the analyses of all words into stems and clitics.//

Analyses all words into all possible combinations of stem + clitics. The analysis is returned in the format stem &+ clitic1 &+ clitic2 ... which is hence the inverse of 'pt -bind'. The list of clitics is give by the flag '-clitics'. The list of stems is given as the list of words of the language given by the '-lang' flag.

    ''Options'':
> {{{-raw}}} 	analyse each word separately (not suitable input for parser)

    ''Flags'':
> {{{-clitics}}} 	the list of possible clitics (comma-separated, no spaces)
> {{{-lang}}} 	the language of analysis

    Examples:
{{{
        ca -lang=Fin -clitics=ko,ni "nukkuuko minun vaimoni" | p  -- to parse Finnish
}}}
{{{cc = compute_concrete}}}: //computes concrete syntax term using a source grammar.//

Compute TERM by concrete syntax definitions. Uses the topmost module (the last one imported) to resolve constant names. N.B.1 You need the flag -retain when importing the grammar, if you want the definitions to be retained after compilation. N.B.2 The resulting term is not a tree in the sense of abstract syntax and hence not a valid input to a Tree-expecting command. This command must be a line of its own, and thus cannot be a part of a pipe.

    ''Syntax'': {{{cc (-all | -table | -unqual)? TERM}}}
 
   ''Options'':
> {{{-all }}}	pick all strings (forms and variants) from records and tables
> {{{-list }}}	all strings, comma-separated on one line
> {{{-one }}}	pick the first strings, if there is any, from records and tables
> {{{-table }}}	show all strings labelled by parameters
> {{{-unqual }}}	hide qualifying module names
config.options.chkShowRightSidebar=true;
config.options.txtToggleRightSideBarLabelShow="â—„";
config.options.txtToggleRightSideBarLabelHide="â–º";
Type the text for 'New Tiddler'
{{{dc = define_command}}}: //define a command macro.//

Defines IDENT as macro for COMMANDLINE, until IDENT gets redefined. A call of the command has the form %IDENT. The command may take an argument, which in COMMANDLINE is marked as ?0. Both strings and trees can be arguments. Currently at most one argument is possible. This command must be a line of its own, and thus cannot be a part of a pipe.

    ''Syntax'': {{{dc IDENT COMMANDLINE}}}
{{{dg = dependency_graph}}}: //print module dependency graph.//

Prints the dependency graph of source modules. Requires that import has been done with the -retain flag. The graph is written in the file _gfdepgraph.dot which can be further processed by Graphviz (the system command 'dot'). By default, all modules are shown, but the -only flag restricts them by a comma-separated list of patterns, where 'name*' matches modules whose name has prefix 'name', and other patterns match modules with exactly the same name. The graphical conventions are: solid box = abstract, solid ellipse = concrete, dashed ellipse = other solid arrow empty head = of, solid arrow = **, dashed arrow = open dotted arrow = other dependency

    ''Syntax'': {{{dg (-only=MODULES)?}}}

    ''Flags'':
{{{-only}}} 	list of modules included (default: all), literally or by prefix*

    ''Examples'':
{{{
        dg -only=SyntaxEng,Food*  -- shows only SyntaxEng, and those with prefix Food
}}}
{{{dt = define_tree}}}: //define a tree or string macro.//

Defines IDENT as macro for TREE or STRING, until IDENT gets redefined. The defining value can also come from a command, preceded by "<". If the command gives many values, the first one is selected. A use of the macro has the form %IDENT. Currently this use cannot be a subtree of another tree. This command must be a line of its own and thus cannot be a part of a pipe.

    ''Syntax'': {{{dt IDENT (TREE | STRING | "<" COMMANDLINE) }}}

    ''Examples'':
{{{
        dt ex "hello world"              -- define ex as string
        dt ex UseN man_N                -- define ex as string
        dt ex < p -cat=NP "the man in the car"  -- define ex as parse result
        l -lang=LangSwe %ex | ps -to_utf8        -- linearize the tree ex
}}}
{{{e = empty}}}: //empty the environment.//

{{{eb = example_based}}}: //converts .gfe files to .gf files by parsing examples to trees.//

Reads FILE.gfe and writes FILE.gf. Each expression of form '%ex CAT QUOTEDSTRING' in FILE.gfe is replaced by a syntax tree. This tree is the first one returned by the parser; a biased ranking can be used to regulate the order. If there are more than one parses the rest are shown in comments, with probabilities if the order is biased. The probabilities flag and configuration file is similar to the commands gr and rt. Notice that the command doesn't change the environment, but the resulting .gf file must be imported separately.

    ''Syntax'': {{{eb (-probs=FILE | -lang=LANG)* -file=FILE.gfe}}}

   ''Options'':
> {{{ -api}}} 	convert trees to overloaded API expressions (using Syntax not Lang)

    ''Flags'':
> {{{-file}}} 	the file to be converted (suffix .gfe must be given)
>{{{-lang}}} 	the language in which to parse
>{{{-probs}}} 	file with probabilities to rank the parses

{{{gr = generate_random}}}: //generate random trees in the current abstract syntax.//

Generates a list of random trees, by default one tree. If a tree argument is given, the command completes the Tree with values to all metavariables in the tree. The generation can be biased by probabilities, given in a file in the -probs flag.

    ''Syntax'': {{{gr [-cat=CAT] [-number=INT]}}}

    ''Flags'':
>{{{-cat}}} 	generation category
>{{{-lang}}} 	uses only functions that have linearizations in all these languages
>{{{-number}}} 	number of trees generated
>{{{-depth}}} 	the maximum generation depth
>{{{-probs}}} 	file with biased probabilities (format 'f 0.4' one by line)

    ''Examples'':
{{{
        gr                     -- one tree in the startcat of the current grammar
        gr -cat=NP -number=16  -- 16 trees in the category NP
        gr -lang=LangHin,LangTha -cat=Cl  -- Cl, both in LangHin and LangTha
        gr -probs=FILE         -- generate with bias
        gr (AdjCN ? (UseN ?))  -- generate trees of form (AdjCN ? (UseN ?))
}}}
{{{gt = generate_trees}}}: //generates a list of trees, by default exhaustive.//

Generates all trees of a given category, with increasing depth. By default, the depth is 4, but this can be changed by a flag. If a Tree argument is given, the command completes the Tree with values to all metavariables in the tree.

    ''Flags'':
>{{{-cat}}} 	the generation category
>{{{-depth}}} 	the maximum generation depth
>{{{-lang}}} 	excludes functions that have no linearization in this language
>{{{-number}}} 	the number of trees generated

    ''Examples'':
{{{
        gt                     -- all trees in the startcat, to depth 4
        gt -cat=NP -number=16  -- 16 trees in the category NP
        gt -cat=NP -depth=2    -- trees in the category NP to depth 2
        gt (AdjCN ? (UseN ?))  -- trees of form (AdjCN ? (UseN ?))
}}}
{{{h = help}}}: //get description of a command, or a the full list of commands.//

Displays information concerning the COMMAND. Without argument, shows the synopsis of all commands.

    ''Syntax'': {{{h (-full)? COMMAND?}}}
    ''Options'':
>{{{-changes}}} 	give a summary of changes from GF 2.9
>{{{-coding}}} 	give advice on character encoding
>{{{-full}}} 	give full information of the commands
>{{{-license}}} 	show copyright and license information
>{{{-t2t}}} 	output help in txt2tags format

{{{i = import}}}: //import a grammar from source code or compiled .pgf file.//

Reads a grammar from File and compiles it into a GF runtime grammar. If its abstract is different from current state, old modules are discarded. If its abstract is the same and a concrete with the same name is already in the state it is overwritten - but only if compilation succeeds. The grammar parser depends on the file name suffix: .cf context-free (labelled BNF) source .ebnf extended BNF source .gfm multi-module GF source .gf normal GF source .gfo compiled GF source .pgf precompiled grammar in Portable Grammar Format

    ''Options'':
>{{{-retain}}} 	retain operations (used for cc command)
>{{{-src}}} 	force compilation from source
>{{{-v}}} 	be verbose - show intermediate status information

    ''Flags'':
>{{{-probs}}} 	file with biased probabilities for generation
{{{l = linearize}}}: //convert an abstract syntax expression to string.//

Shows the linearization of a Tree by the grammars in scope. The -lang flag can be used to restrict this to fewer languages. A sequence of string operations (see command ps) can be given as options, and works then like a pipe to the ps command, except that it only affect the strings, not e.g. the table labels. These can be given separately to each language with the unlexer flag whose results are prepended to the other lexer flags. The value of the unlexer flag is a space-separated list of comma-separated string operation sequences; see example.

    ''Options'':
>{{{-all}}} 	show all forms and variants, one by line (cf. l -list)
>{{{-bracket}}} 	show tree structure with brackets and paths to nodes
>{{{-groups}}} 	all languages, grouped by lang, remove duplicate strings
>{{{-list}}} 	show all forms and variants, comma-separated on one line (cf. l -all)
>{{{-multi}}} 	linearize to all languages (default)
>{{{-table}}} 	show all forms labelled by parameters
>{{{-treebank}}} 	show the tree and tag linearizations with language names
>{{{-bind}}} 	bind tokens separated by Prelude.BIND, i.e. &+
>{{{-chars}}} 	lexer that makes every non-space character a token
>{{{-from_amharic}}} 	from unicode to GF Amharic transliteration
>{{{-from_ancientgreek}}} 	from unicode to GF ancient Greek transliteration
>{{{-from_arabic}}} 	from unicode to GF Arabic transliteration
>{{{-from_cp1251}}} 	decode from cp1251 (Cyrillic used in Bulgarian resource)
>{{{-from_devanagari}}} 	from unicode to GF Devanagari transliteration
>{{{-from_greek}}} 	from unicode to GF modern Greek transliteration
>{{{-from_hebrew}}} 	from unicode to GF unvocalized Hebrew transliteration
>{{{-from_nepali}}} 	from unicode to GF Nepali transliteration
>{{{-from_persian}}} 	from unicode to GF Persian/Farsi transliteration
>{{{-from_telugu}}} 	from unicode to GF Telugu transliteration
>{{{-from_thai}}} 	from unicode to GF Thai transliteration
>{{{-from_urdu}}} 	from unicode to GF Urdu transliteration
>{{{-from_utf8}}} 	decode from utf8 (default)
>{{{-lexcode}}} 	code-like lexer
>{{{-lexmixed}}} 	mixture of text and code (code between $...$)
>{{{-lextext}}} 	text-like lexer
>{{{-to_amharic}}} 	from GF Amharic transliteration to unicode
>{{{-to_ancientgreek}}} 	from GF ancient Greek transliteration to unicode
>{{{-to_arabic}}} 	from GF Arabic transliteration to unicode
>{{{-to_cp1251}}} 	encode to cp1251 (Cyrillic used in Bulgarian resource)
>{{{-to_devanagari}}} 	from GF Devanagari transliteration to unicode
>{{{-to_greek}}} 	from GF modern Greek transliteration to unicode
>{{{-to_hebrew}}} 	from GF unvocalized Hebrew transliteration to unicode
>{{{-to_html}}} 	wrap in a html file with linebreaks
>{{{-to_nepali}}} 	from GF Nepali transliteration to unicode
>{{{-to_persian}}} 	from GF Persian/Farsi transliteration to unicode
>{{{-to_telugu}}} 	from GF Telugu transliteration to unicode
>{{{-to_thai}}} 	from GF Thai transliteration to unicode
>{{{-to_urdu}}} 	from GF Urdu transliteration to unicode
>{{{-to_utf8}}} 	encode to utf8 (default)
>{{{-unchars}}} 	unlexer that puts no spaces between tokens
>{{{-unlexcode}}} 	code-like unlexer
>{{{-unlexmixed}}} 	mixture of text and code (code between $...$)
>{{{-unlextext}}} 	text-like unlexer
>{{{-unwords}}} 	unlexer that puts a single space between tokens (default)
>{{{-words}}} 	lexer that assumes tokens separated by spaces (default)

    ''Flags'':
>{{{-lang}}} 	the languages of linearization (comma-separated, no spaces)
>{{{-unlexer}}} 	set unlexers separately to each language (space-separated)

    ''Examples'':
{{{
        l -lang=LangSwe,LangNor no_Utt   -- linearize tree to LangSwe and LangNor
        gr -lang=LangHin -cat=Cl | l -table -to_devanagari -- hindi table
        l -unlexer="LangAra=to_arabic LangHin=to_devanagari" -- different unlexers
}}}
The GF inter-lingua, the abstract syntax in an application grammar, supports the  
 * generation of several representations, e.g. in NL, called 'linearizations' and 
 * viceversa, the parsing from a representation in NL to an abstract syntax tree

<html><img src="GFlineariseparse.png" width="100%"/></html>
{{{ma = morpho_analyse}}}: //print the morphological analyses of all words in the string.//

Prints all the analyses of space-separated words in the input string, using the morphological analyser of the actual grammar (see command pg)

    ''Options'':
>{{{-missing}}} 	show the list of unknown words in the input

    ''Flags'':
>{{{-lang}}} 	the languages of analysis (comma-separated, no spaces)
{{{mq = morpho_quiz}}}: //start a morphology quiz.//

    ''Syntax'': {{{mq (-cat=CAT)? (-probs=FILE)? TREE?}}}

    ''Flags'':
>{{{-lang}}} 	language of the quiz
>{{{-cat}}} 	category of the quiz
>{{{-number}}} 	maximum number of questions
>{{{-probs}}} 	file with biased probabilities for generation

{{{p = parse}}}: //parse a string to abstract syntax expression.//

Shows all trees returned by parsing a string in the grammars in scope. The -lang flag can be used to restrict this to fewer languages. The default start category can be overridden by the -cat flag. See also the ps command for lexing and character encoding.

The -openclass flag is experimental and allows some robustness in the parser. For example if -openclass="A,N,V" is given, the parser will accept unknown adjectives, nouns and verbs with the resource grammar.

    ''Options'':
>{{{-bracket}}} 	prints the bracketed string from the parser

    ''Flags'':
>{{{-cat}}} 	target category of parsing
>{{{-lang}}} 	the languages of parsing (comma-separated, no spaces)
>{{{-openclass}}} 	list of open-class categories for robust parsing
>{{{-depth}}} 	maximal depth for proof search if the abstract syntax tree has meta variables
{{{pg = print_grammar}}}: //print the actual grammar with the given printer.//

Prints the actual grammar, with all involved languages. In some printers, this can be restricted to a subset of languages with the -lang=X,Y flag (comma-separated, no spaces). The -printer=P flag sets the format in which the grammar is printed. N.B.1 Since grammars are compiled when imported, this command generally shows a grammar that looks rather different from the source. N.B.2 Another way to produce different formats is to use 'gf -make', the batch compiler. The following values are available both for the batch compiler (flag -output-format) and the print_grammar command (flag -printer):

bnf BNF (context-free grammar) ebnf Extended BNF fa finite automaton in graphviz format gsl Nuance speech recognition format haskell Haskell (abstract syntax) js JavaScript (whole grammar) jsgf JSGF speech recognition format lambda_prolog LambdaProlog (abstract syntax) pgf_pretty human-readable pgf prolog Prolog (whole grammar) prolog_abs Prolog (abstract syntax) regexp regular expression slf SLF speech recognition format srgs_abnf SRGS speech recognition format in ABNF srgs_abnf_nonrec SRGS ABNF, recursion eliminated srgs_xml SRGS speech recognition format in XML srgs_xml_nonrec SRGS XML, recursion eliminated vxml Voice XML based on abstract syntax

    ''Options'':
>{{{-cats}}} 	show just the names of abstract syntax categories
>{{{-fullform}}} 	print the fullform lexicon
>{{{-funs}}} 	show just the names and types of abstract syntax functions
>{{{-langs}}} 	show just the names of top concrete syntax modules
>{{{-lexc}}} 	print the lexicon in Xerox LEXC format
>{{{-missing}}} 	show just the names of functions that have no linearization
>{{{-opt}}} 	optimize the generated pgf
>{{{-pgf}}} 	write current pgf image in file
>{{{-words}}} 	print the list of words

    ''Flags'':
>{{{-file}}} 	set the file name when printing with -pgf option
>{{{-lang}}} 	select languages for the some options (default all languages)
>{{{-printer}}} 	select the printing format (see flag values above)

    ''Examples'':
{{{
        pg -funs | ? grep " S ;"  -- show functions with value cat S
}}}
{{{ph = print_history}}}: //print command history.//

Prints the commands issued during the GF session. The result is readable by the eh command. The result can be used as a script when starting GF.

    ''Examples'':
{{{
        ph | wf -file=foo.gfs  -- save the history into a file
}}}
GF can handle disambiguation and deal with polite forms that are different in a certain language.


<html><img src="politeformsinGF.png" width="100%"/> </html>
{{{ps = put_string}}}: //return a string, possibly processed with a function.//

Returns a string obtained from its argument string by applying string processing functions in the order given in the command line option list. Thus 'ps -f -g s' returns g (f s). Typical string processors are lexers and unlexers, but also character encoding conversions are possible. The unlexers preserve the division of their input to lines. To see transliteration tables, use command ut.

    ''Syntax'': {{{ps OPT? STRING}}}

    ''Options'': 
>{{{-bind}}} 	bind tokens separated by Prelude.BIND, i.e. &+
>{{{-chars}}} 	lexer that makes every non-space character a token
>{{{-from_amharic}}} 	from unicode to GF Amharic transliteration
>{{{-from_ancientgreek}}} 	from unicode to GF ancient Greek transliteration
>{{{-from_arabic}}} 	from unicode to GF Arabic transliteration
>{{{-from_cp1251}}} 	decode from cp1251 (Cyrillic used in Bulgarian resource)
>{{{-from_devanagari}}} 	from unicode to GF Devanagari transliteration
>{{{-from_greek}}} 	from unicode to GF modern Greek transliteration
>{{{-from_hebrew}}} 	from unicode to GF unvocalized Hebrew transliteration
>{{{-from_nepali}}} 	from unicode to GF Nepali transliteration
>{{{-from_persian}}} 	from unicode to GF Persian/Farsi transliteration
>{{{-from_telugu}}} 	from unicode to GF Telugu transliteration
>{{{-from_thai}}} 	from unicode to GF Thai transliteration
>{{{-from_urdu}}} 	from unicode to GF Urdu transliteration
>{{{-from_utf8}}} 	decode from utf8 (default)
>{{{-lexcode}}} 	code-like lexer
>{{{-lexmixed}}} 	mixture of text and code (code between $...$)
>{{{-lextext}}} 	text-like lexer
>{{{-to_amharic}}} 	from GF Amharic transliteration to unicode
>{{{-to_ancientgreek}}} 	from GF ancient Greek transliteration to unicode
>{{{-to_arabic}}} 	from GF Arabic transliteration to unicode
>{{{-to_cp1251}}} 	encode to cp1251 (Cyrillic used in Bulgarian resource)
>{{{-to_devanagari}}} 	from GF Devanagari transliteration to unicode
>{{{-to_greek}}} 	from GF modern Greek transliteration to unicode
>{{{-to_hebrew}}} 	from GF unvocalized Hebrew transliteration to unicode
>{{{-to_html}}} 	wrap in a html file with linebreaks
>{{{-to_nepali}}} 	from GF Nepali transliteration to unicode
>{{{-to_persian}}} 	from GF Persian/Farsi transliteration to unicode
>{{{-to_telugu}}} 	from GF Telugu transliteration to unicode
>{{{-to_thai}}} 	from GF Thai transliteration to unicode
>{{{-to_urdu}}} 	from GF Urdu transliteration to unicode
>{{{-to_utf8}}} 	encode to utf8 (default)
>{{{-unchars}}} 	unlexer that puts no spaces between tokens
>{{{-unlexcode}}} 	code-like unlexer
>{{{-unlexmixed}}} 	mixture of text and code (code between $...$)
>{{{-unlextext}}} 	text-like unlexer
>{{{-unwords}}} 	unlexer that puts a single space between tokens (default)
>{{{-words}}} 	lexer that assumes tokens separated by spaces (default)

    ''Flags'':
>{{{-env}}} 	apply in this environment only
>{{{-from}}} 	backward-apply transliteration defined in this file (format 'unicode translit' per line)
>{{{-to}}} 	forward-apply transliteration defined in this file

    ''Examples'':
{{{
        l (EAdd 3 4) | ps -code         -- linearize code-like output
        ps -lexer=code | p -cat=Exp     -- parse code-like input
        gr -cat=QCl | l | ps -bind      -- linearization output from LangFin
        ps -to_devanagari "A-p"         -- show Devanagari in UTF8 terminal
        rf -file=Hin.gf | ps -env=quotes -to_devanagari -- convert translit to UTF8
        rf -file=Ara.gf | ps -from_utf8 -env=quotes -from_arabic -- convert UTF8 to transliteration
        ps -to=chinese.trans "abc"      -- apply transliteration defined in file chinese.trans
}}}
{{{pt = put_tree}}}: //return a tree, possibly processed with a function.//

Returns a tree obtained from its argument tree by applying tree processing functions in the order given in the command line option list. Thus 'pt -f -g s' returns g (f s). Typical tree processors are type checking and semantic computation.

    ''Syntax'': {{{ps OPT? TREE}}}

    ''Options'':
>{{{-compute}}} 	compute by using semantic definitions (def)
>{{{-paraphrase}}} 	paraphrase by using semantic definitions (def)
>{{{-smallest}}} 	sort trees from smallest to largest, in number of nodes

    ''Flags'':
>{{{-number}}} 	take at most this many trees
>{{{-transfer}}} 	syntactic transfer by applying function, recursively in subtrees

    ''Examples'':
{{{
        pt -compute (plus one two)                               -- compute value
        p "4 dogs love 5 cats" | pt -transfer=digits2numeral | l -- four...five...
}}}
{{{q = quit}}}: //exit GF interpreter.// 
{{{r = reload}}}: //repeat the latest import command. //
Type the text for 'New Tiddler'
{{{rf = read_file}}}: //read string or tree input from a file.//

Reads input from file. The filename must be in double quotes. The input is interpreted as a string by default, and can hence be piped e.g. to the parse command. The option -tree interprets the input as a tree, which can be given e.g. to the linearize command. The option -lines will result in a list of strings or trees, one by line.

    ''Options'':
>{{{-lines}}} 	return the list of lines, instead of the singleton of all contents
>{{{-tree}}} 	convert strings into trees

    ''Flags'':
>{{{-file}}} 	the input file name
{{{rt = rank_trees}}}: //show trees in an order of decreasing probability.//

Order trees from the most to the least probable, using either even distribution in each category (default) or biased as specified by the file given by flag -probs=FILE, where each line has the form 'function probability', e.g. 'youPol_Pron 0.01'.

    ''Options'':
>{{{-v}}} 	show all trees with their probability scores

    ''Flags'':
>{{{-probs}}} 	probabilities from this file (format 'f 0.6' per line)

    ''Examples'':
{{{
        p "you are here" | rt -probs=probs | pt -number=1 -- most probable result
        se utf8   -- set encoding to utf8 (default)
}}}
Type the text for 'New Tiddler'
{{{se = set_encoding}}}: //set the encoding used in current terminal.//

    ''Syntax'': {{{se ID}}}

    ''Examples'':
{{{
        se cp1251 -- set encoding to cp1521
        se utf8   -- set encoding to utf8 (default)
}}}
Type the text for 'New Tiddler'
{{{so = show_operations}}}: //show all operations in scope, possibly restricted to a value type.//

Show the names and type signatures of all operations available in the current resource. This command requires a source grammar to be in scope, imported with 'import -retain'. The operations include the parameter constructors that are in scope. The optional TYPE filters according to the value type. The grep STRINGs filter according to other substrings of the type signatures. This command must be a line of its own, and thus cannot be a part of a pipe.

    ''Syntax'': {{{so (-grep=STRING)* TYPE?}}}

    ''Options'':
>{{{-raw}}} 	show the types in computed forms (instead of category names)

    ''Flags'':
>{{{-grep}}} 	substring used for filtering (the command can have many of these)
{{{sp = system_pipe}}}: //send argument to a system command.//

    ''Syntax'': {{{sp -command="SYSTEMCOMMAND", alt. ? SYSTEMCOMMAND}}}

    ''Flags'':
>{{{-command}}} 	the system command applied to the argument

    ''Examples'':
{{{
        sp -command="wc" "foo"
        gt | l | sp -command="grep \"who\"" | sp -command="wc"
}}}
<<tagging [[system command]] >>
{{{t = tokenize}}}: //Tokenize string usng the vocabulary.//

    ''Flags'':
>{{{-lang}}} 	The name of the concrete to use
Type the text for 'New Tiddler'
{{{tq = translation_quiz}}}: //start a translation quiz.//

    ''Syntax'': {{{tq -from=LANG -to=LANG (-cat=CAT)? (-probs=FILE)? TREE?}}}

    ''Flags'':
>{{{-from}}} 	translate from this language
>{{{-to}}} 	translate to this language
>{{{-cat}}} 	translate in this category
>{{{-number}}} 	the maximum number of questions
>{{{-probs}}} 	file with biased probabilities for generation

    ''Examples'':
{{{
        tq -from=Eng -to=Swe                               -- any trees in startcat
        tq -from=Eng -to=Swe (AdjCN (PositA ?2) (UseN ?))  -- only trees of this form
}}}
{{{ut = unicode_table}}}: //show a transliteration table for a unicode character set.//

    ''Options'':
>{{{-amharic}}} 	Amharic
>{{{-ancientgreek}}} 	ancient Greek
>{{{-arabic}}} 	Arabic
>{{{-devanagari}}} 	Devanagari
>{{{-greek}}} 	modern Greek
>{{{-hebrew}}} 	unvocalized Hebrew
>{{{-persian}}} 	Persian/Farsi
>{{{-nepali}}} 	Nepali
>{{{-telugu}}} 	Telugu
>{{{-thai}}} 	Thai
>{{{-urdu}}} 	Urdu
{{{vd = visualize_dependency}}}: //show word dependency tree graphically.//

Prints a dependency tree in the .dot format (the graphviz format, default) or the MaltParser/CoNLL format (flag -output=malt for training, malt_input) for unanalysed input. By default, the last argument is the head of every abstract syntax function; moreover, the head depends on the head of the function above. The graph can be saved in a file by the wf command as usual. If the -view flag is defined, the graph is saved in a temporary file which is processed by graphviz and displayed by the program indicated by the flag. The target format is png, unless overridden by the flag -format.

    ''Options'':
>{{{-v}}} 	show extra information

    ''Flags'':
>{{{-file}}} 	configuration file for labels per fun, format 'fun l1 ... label ... l2'
>{{{-format}}} 	format of the visualization file (default "png")
>{{{-output}}} 	output format of graph source (default "dot")
>{{{-view}}} 	program to open the resulting file (default "open")

    ''Examples'':
{{{
        gr | vd              -- generate a tree and show dependency tree in .dot
        gr | vd -view=open   -- generate a tree and display dependency tree on a Mac
        gr -number=1000 | vd -file=dep.labels -output=malt      -- generate training treebank
        gr -number=100 | vd -file=dep.labels -output=malt_input -- generate test sentences
}}}
{{{vp = visualize_parse}}}: //show parse tree graphically.//

Prints a parse tree the .dot format (the graphviz format). The graph can be saved in a file by the wf command as usual. If the -view flag is defined, the graph is saved in a temporary file which is processed by graphviz and displayed by the program indicated by the flag. The target format is png, unless overridden by the flag -format.

    ''Flags'':
>{{{-format}}} 	format of the visualization file (default "png")
>{{{-view}}} 	program to open the resulting file (default "open")

    ''Examples'':
{{{
        p "John walks" | vp  -- generate a tree and show parse tree as .dot script
        gr | vp -view="open" -- generate a tree and display parse tree on a Mac
}}}
{{{vt = visualize_tree}}}: //show a set of trees graphically.//

Prints a set of trees in the .dot format (the graphviz format). The graph can be saved in a file by the wf command as usual. If the -view flag is defined, the graph is saved in a temporary file which is processed by graphviz and displayed by the program indicated by the flag. The target format is postscript, unless overridden by the flag -format. With option -mk, use for showing library style function names of form 'mkC'.

    ''Options'':
>{{{-api}}} 	show the tree with function names converted to 'mkC' with value cats C
>{{{-mk}}} 	similar to -api, deprecated
>{{{-nofun}}} 	don't show functions but only categories
>{{{-nocat}}} 	don't show categories but only functions

    ''Flags'':
>{{{-format}}} 	format of the visualization file (default "png")
>{{{-view}}} 	program to open the resulting file (default "open")

    ''Examples'':
{{{
        p "hello" | vt              -- parse a string and show trees as graph script
        p "hello" | vt -view="open" -- parse a string and display trees on a Mac
}}}
{{{wf = write_file}}}: //send string or tree to a file.//

    ''Options'':
>{{{-append}}} 	append to file, instead of overwriting it

    ''Flags'':
>{{{-file}}} 	the output filename
Incremental parsing is used 
 * to prompt for the possibilities and 
 * to produce quasi-incremental translations of intermediate results from words or complete sentences.

<html><img src="file:./textpromptinginGF.png" width="100%"/></html>