1
0
forked from GitHub/gf-core
Commit Graph

59 Commits

Author SHA1 Message Date
Peter Ljunglöf
4d34c7f66b Fix deprecations from containers >= 0.4.0.0
E.g. `foldWithKey` has been deprecated since 0.4.0.0 (November 2010)[1] and has been removed in 0.6.0.1 (2018)[2]

[1]: https://github.com/haskell/containers/blob/master/changelog.md#0400--nov-2010
[2]: https://github.com/haskell/containers/blob/master/changelog.md#death-of-deprecated-functions

(commit originally by @fredefox)
2018-11-30 11:52:56 +01:00
Frederik Hanghøj Iversen
6b2c2256d1 A version of readPGF where the user handles the IO. 2018-08-06 16:05:12 +02:00
Prasanth Kolachina
6faad1b3cf add bracketLinearizeAll for variants 2018-05-24 09:47:27 +02:00
Krasimir Angelov
ebe7cb3b73 A new function called "completions" is added in the Haskell runtime and used in PGFService. This makes the extraction of completions more platform independent 2017-09-06 15:17:28 +02:00
Krasimir Angelov
01a8e1b88f GF.Command.TreeOperations is now independent from the runtime's internals 2017-09-05 10:29:02 +02:00
Krasimir Angelov
13d8045814 added exprSize and exprFunctions in the Haskell runtime too and use them in TreeOperations 2017-09-05 10:16:48 +02:00
Krasimir Angelov
b7b7a7c91c the embedded grammars now work with both the pure Haskell and the Haskell binding API 2017-08-29 18:44:50 +02:00
aarne
ee2f3d085e vd command now reads local concrete configurations to deal with syncat words; TODO: dissolve clustered multiwords bound with + 2017-04-06 11:55:21 +00:00
hallgren
096b4cfcee PGF service & minibar: only show dependency diagrams if the labels are known
+ The PGF service now reads and caches dependency label configuration files.
+ The grammar info returned by command=grammar has a new boolean field 
  'hasDependencyLabels' to indicate if dependency labels were found for
  the grammar. Also, command=deptree will now fail if no labels are present.
+ The minibar only shows word dependency trees if labels are present.
+ Also changed the type of getDepLabels from [String] -> Labels to
  String -> Labels, since all uses were in the form "getDepLabels . lines".
2016-06-09 13:12:14 +00:00
aarne
0a38e137b6 vd -conll2latex now converts conll to latex. Without going through GF trees, but as a service to the dependency parser community. 2015-11-23 10:43:03 +00:00
aarne
0786dc6f42 dependency labels in parse trees now with the -deps flag, -file=labels_file for configuration. With -nocat option this shows reasonable dep trees, more familiar looking than the vd command. With -showfun flag, the tree gives a rather complete picture of the analysis of the sentence. 2015-11-04 20:36:47 +00:00
krasimir
8c697b72a4 drop the dependency to FST 2015-04-20 11:56:13 +00:00
hallgren
6d72126ffc PGF Service: add an option to return syntax trees in JSON format
The parse/translate/c-parse/c-translate commands now recognize the option
jsontree=true to augment the returned JSON structure with a field called
"jsontree" next to the field "tree", or "jsontrees" next to "trees",
containing the the returned syntax tree in JSON format (the same format
returned by the abstrjson command, similar to the format returned in the
"brackets" field).
2015-03-24 17:37:43 +00:00
kr.angelov
584d589041 a partial support for def rules in the C runtime
The def rules are now compiled to byte code by the compiler and then to
native code by the JIT compiler in the runtime. Not all constructions
are implemented yet. The partial implementation is now in the repository
but it is not activated by default since this requires changes in the
PGF format. I will enable it only after it is complete.
2014-08-11 10:59:10 +00:00
john
9b49608451 PGF web service: Return additional completion info with 'full' flag
BETA! The 'complete' command now has a new flag 'full' which when set
returns additional info about completions.

Without 'full' flag (default):

[
    {
        "from": "PhrasebookEng",
        "brackets": {
            "cat": "_",
            "fid": 0,
            "index": 0,
            "fun": "_",
            "children": [
                {
                    "token": "the"
                }
            ]
        },
        "text": "su",
        "completions": [
            "supermarket",
            "suspect"
        ]
    }
]

With full=true or full=yes:

[
    {
        "from": "PhrasebookEng",
        "brackets": {
            "cat": "_",
            "fid": 0,
            "index": 0,
            "fun": "_",
            "children": [
                {
                    "token": "the"
                }
            ]
        },
        "text": "su",
        "completions": [
            {
                "token": "supermarket",
                "funs": [
                    {
                        "fid": 421,
                        "fun": "Supermarket",
                        "hyps": [],
                        "cat": "PlaceKind"
                    }
                ]
            },
            {
                "token": "suspect",
                "funs": [
                    {
                        "fid": 445,
                        "fun": "Suspect",
                        "hyps": [],
                        "cat": "Property"
                    }
                ]
            }
        ]
    }
]
2014-07-11 09:25:26 +00:00
hallgren
3f57151cc3 Represent identifiers as UTF-8-encoded ByteStrings
This was a fairly simple change thanks to previous work on making the Ident
type abstract and the fact that PGF.CId already uses UTF-8-encoded
ByteStrings.

One potential pitfall is that Data.ByteString.UTF8 uses the same type for
ByteStrings as Data.ByteString. I renamed ident2bs to ident2utf8 and
bsCId to utf8CId, to make it clearer that they work with UTF-8-encoded
ByteStrings.

Since both the compiler input and identifiers are now UTF-8-encoded
ByteStrings, the lexer now creates identifiers without copying any characters.
**END OF DESCRIPTION***

Place the long patch description above the ***END OF DESCRIPTION*** marker.
The first line of this file will be the patch name.


This patch contains the following changes:

M ./src/compiler/GF/Compile/CheckGrammar.hs -3 +3
M ./src/compiler/GF/Compile/GrammarToPGF.hs -2 +2
M ./src/compiler/GF/Grammar/Binary.hs -5 +1
M ./src/compiler/GF/Grammar/Lexer.x -11 +13
M ./src/compiler/GF/Infra/Ident.hs -19 +36
M ./src/runtime/haskell/PGF.hs -1 +1
M ./src/runtime/haskell/PGF/CId.hs -2 +3
2013-11-26 16:12:03 +00:00
kr.angelov
2483dc7728 the content of ParseEngAbs3.probs is now merged with ParseEngAbs.probs. The later is now retrained. Once the grammar is compiled with the .probs file now it doesn't need anything more to do robust parsing. The robustness itself is controlled by the flags 'heuristic_search_factor', 'meta_prob' and 'meta_token_prob' in ParseEngAbs.gf 2013-11-06 10:21:46 +00:00
hallgren
3814841d7d Eliminate mutual dependencies between the GF compiler and the PGF library
+ References to modules under src/compiler have been eliminated from the PGF
  library (under src/runtime/haskell). Only two functions had to be moved (from
  GF.Data.Utilities to PGF.Utilities) to make this possible, other apparent
  dependencies turned out to be vacuous.

+ In gf.cabal, the GF executable no longer directly depends on the PGF library
  source directory, but only on the exposed library modules. This means that
  there is less duplication in gf.cabal and that the 30 modules in the
  PGF library will no longer be compiled twice while building GF.

  To make this possible, additional PGF library modules have been exposed, even
  though they should probably be considered for internal use only. They could
  be collected in a PGF.Internal module, or marked as "unstable", to make
  this explicit.

+ Also, by using the -fwarn-unused-imports flag, ~220 redundant imports were
  found and removed, reducing the total number of imports by ~15%.
2013-11-05 13:11:10 +00:00
kr.angelov
042243f08a added the linref construction in GF. The PGF version number is now bumped 2013-10-30 12:53:36 +00:00
hallgren
9410c6b141 Functions merge trees into tries in the GF Shell and the PGF web service
* In the shell, the new command tt (to_trie) merges a list of trees into a
  trie and prints it in a readable way, where unique subtrees are marked with
  a "*" and alternative subtrees are marked with numbers.
* In the PGF web service, adding the parameter trie=yes to the parse and
  translate commands augments the JSON output with a trie.

Example to try in the shell:

	Phrasebook> p -lang=Eng "your son waits for you" | tt
2013-10-24 17:29:02 +00:00
hallgren
b8ce5ef5b3 PGF.hs: export function missingLins
Also in Commands.hs: be explicit about things imported from the PGF library
that are not in the public API.
Also a couple of haddock documentation fixes.
2013-04-08 15:38:11 +00:00
hallgren
db544b1cc9 PGFService.hs: fix type error caused by change to PGF.graphvizParseTree
Note that some of the graphviz functions have backwards incompatible changes
that might also affect other clients of the PGF run-time library.

Also added graphvizDefaults and export it together with GraphvizOptions from 
the PGF run-time library.
2012-11-22 15:27:16 +00:00
kr.angelov
fe3b5c1360 the Haskell runtime now exports 'functionsByCat' which returns the list of all functions for a given category 2012-09-18 09:48:21 +00:00
kr.angelov
f8fe23fda7 A basic infrastructure for generating Teyjus bytecode from the GF abstract syntax 2012-08-29 11:43:02 +00:00
hallgren
07af8988d3 PGF run-time library: function names in BracketedString (experimental)
+ Make room for function names in the BracketedString data structure.
+ Fill in function names when linearizing an abstract syntax tree to a
  BracketedString.
+ Fill in wildCId when it is not obvious what the function is.
+ Function bracketedLinearize: for compatibility with the other linearization
  functions, return Leaf "" instead of error "cannot linearize".
+ Export flattenBracketedString from module PGF.
+ PGFServce: make function names available in the JSON representation of
  BracketedString.
2012-03-18 20:12:26 +00:00
hallgren
6c5ee3d666 PGF.hs: Add LANGUAGE BangPatterns to make GHC 7.2 happy
Also remove oddly named function forExample (topological sorting) from export
list.
2011-10-20 13:21:28 +00:00
ra.monique
bdc77bf0e4 added topological sort module to PGF - to be used in example based grammar writing 2011-09-15 16:32:49 +00:00
gdetrez
45ecae4b77 Adding a basic lexicon-based tokenizer and the asociated command in gf shell 2011-02-10 15:00:06 +00:00
aarne
dd6e0b1730 moved PGF.ToApi to GF.Compile.ToAPI 2010-12-07 18:05:13 +00:00
ra.monique
6268c2d7d9 added syntax to api translation module 2010-12-05 19:51:19 +00:00
ramona.enache
1f8a0f0876 added giza Alignments with command ga and merged the rendering algorithm for graphviz and giza alignments 2010-10-31 13:39:01 +00:00
krasimir
775e59dabe added explicit depth parameter to the parsing API and the corresponding command in the shell 2010-10-18 16:51:25 +00:00
krasimir
cb8795c222 refactor the API for random generation again. Now PGF contains probabilities in the abstract syntax 2010-10-02 13:03:57 +00:00
krasimir
617ce3cce6 the first revision of exhaustive and random generation with dependent types. Still not quite stable. 2010-09-22 15:49:16 +00:00
krasimir
1c9305e7a3 cleanup and export the Probabilistic API from PGF 2010-09-22 09:06:19 +00:00
krasimir
d3a6866277 more advanced complete function in the PGFService 2010-08-24 15:58:22 +00:00
krasimir
94bd76df72 two new functions in the PGF API: mkAbs, unAbs 2010-07-31 16:40:16 +00:00
krasimir
067d908aa3 now the meta id of the meta variables is accessible via the PGF API 2010-07-31 12:52:20 +00:00
krasimir
b351c9d9dd added function unType in PGF 2010-07-31 12:47:10 +00:00
krasimir
5ae7be358d redesign the open-literals API 2010-07-01 08:51:59 +00:00
krasimir
272dcf6917 introduce the type synonym Token=String in the PGF API 2010-06-29 09:00:41 +00:00
krasimir
88d7631b62 preliminary version of API for Open Literals 2010-06-22 12:31:04 +00:00
krasimir
31856ebb4c now the parser could return partial parse results 2010-05-19 12:31:36 +00:00
krasimir
9e7b914c3c for backward compatibility we have the old parse function again. the old functionality is exposed by parse_ 2010-04-30 20:18:26 +00:00
krasimir
8460598801 first incarnation of the bracketed string API 2010-04-30 14:36:06 +00:00
krasimir
d83c2d01d8 export fullFormLexicon from PGF 2010-03-31 11:09:12 +00:00
krasimir
68482aa7e9 now for every category we store, in PGF, the list of functions for it in source-code order. The order matters for the termination of the exhaustive generation with dependent types. 2010-03-24 11:11:55 +00:00
aarne
716a209f65 PGF.groupResults and the option l -groups, to show ambiguities grouped by laguage 2010-03-22 19:03:06 +00:00
krasimir
f870c4d80f syntax for inaccessible patterns in GF 2010-03-18 19:34:30 +00:00
krasimir
09da1013f9 refactor PGF.Expr and PGF.TypeCheck so that the evaluator always has access to the meta store 2010-02-22 15:50:41 +00:00