Copyright (c) 2010 Aarne Ranta, under LGPL(3). Part of MOLTO Project, WP 4. Query language, based on the corpus from Ontotext. Purpose: natural language queries to an ontology database. Work in progress: - 19 June parsing 28% 160/562 - 17 June 2010 first version, parsing under 10% The corpus contains misspellings and ungrammatical sentences; these will (mostly) not be covered by the grammar. Test: -- start GF with the grammar; notice that lib/present/ must have latest Eng libraries, -- which can be provided by 'runghc Make present lang api langs=Eng' in lib/src/ % gf QueryEng.gf -- parse a sentence and see all variants > p "Bulgarian people working at Google" | l -all Regression test: -- run the parser on the corpus % gf QueryEng.gf test.results8 -- compute the number of sentences not covered % grep "no tree" test.results8 | wc Semantics: generic logical semantics, that could be mapped to many query languages. The denotations of the main categories are, assuming a domain of individuals: Set ; P(P(D)) (generalized quantifier) -- the set requested, e.g. "all persons" Function ; D -> P(D) -- something of something, e.g. "subregion of Bulgaria" Kind ; P(D) -- type of things, e.g. "person" Relation ; D -> D -> T -- relation between things,e.g. "employed at" Property ; D -> T -- property of things, e.g. "employed at Google" Individual ; D -- one entity, e.g. "Google" Name ; D -- person, company... e.g. "Eric Schmidt" Characteristics: - simple AST's, lots of variants (easily hundreds per query) - semantic overgeneration, e.g. "Google works at Larry Page" - some ambiguities, e.g. > give me the organizations and their locations MQuery (QFun Location (SAll Organization)) MQuery (QFunPair (SAll Organization) Location) Maybe harmless? Resource grammar was not quite enough; added for instance multiple interrogatives ("who is employed as what where") in Extra and ExtraEng