-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpackage.yaml
99 lines (90 loc) · 3.25 KB
/
package.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
name: XSaiga
version: 1.7.0.0
synopsis: An implementation of a polynomial-time top-down parser suitable for NLP
homepage: http://speechweb2.cs.uwindsor.ca/solarman4/demo_sparql.html
license: BSD3
license-file: LICENSE
author: Dr. Rahmatullah Hafiz, Dr. Richard Frost <[email protected]>, Shane Peelar, Paul Callaghan, Eric Matthews
maintainer: Shane Peelar <[email protected]>
category: Parsing, Natural Language Processing, Memoization, Parser Combinators, Attribute Grammars, Text
github: InBetweenNames/Solarman
build-type: Simple
description: |
This package contains a Haskell implementation of the X-SAIGA project's parser combinators. The combinators
enable fully-general attribute grammars to be implemented as executable specifications. Although the parser
is top-down, and therefore highly modular, left-recursive productions are allowed and fully-general synthesized
and inherited attribute dependencies are also allowed. The parse tree, which is decorated with attribute values,
is built as a compact Tomita-style graph. Lazy evaluation enables attribute values to be evaluated only as needed.
Time and space complexity are both O(n^4) where n is the length of the input. An example natural-language interface (called Solarman)
to a semantic-web style RDF triplestore with approximately 3,000 facts about the solar system has been built
as an executable specification of an attribute grammar. Solarman is included in this archive.
Solarman computes answers to queries using an event-based denotational semantics which is based on Montague and Davidsonian semantics.
A web site [3] has been created so that readers can enter queries and find out more about Solarman.
.
\[1] <http://cs.uwindsor.ca/~richard/PUBLICATIONS/PADL_08.pdf>
.
\[2] <http://cs.uwindsor.ca/~richard/PUBLICATIONS/PADL_10.pdf>
.
\[3] <http://speechweb2.cs.uwindsor.ca/solarman4/demo_sparql.html>
flags:
instore:
description: Use built-in triplestore (no network access)
manual: True
default: False
asterius:
description: Use when building for Asterius -- sets up hooks for querying triplestores via XMLHttpRequest
manual: True
default: False
dependencies:
- base >=4.6 && < 5
- pretty >= 1.1
- hsparql >= 0.3.6
- rdf4h >= 1.2
- text >= 0.11
- containers >= 0.5
- network
- bifunctors
- mtl
- bytestring
- cgi
- fastcgi
- random
- data-constructors
- aeson
- hashable
- unordered-containers
- vector
- generic-data
#SPARQL backend
when:
- condition: flag(instore)
then:
cpp-options: -DINSTORE
else:
dependencies: network
- condition: flag(asterius)
cpp-options: -DASTERIUS
dependencies: asterius-prelude >= 0.0.1
default-extensions:
- DoAndIfThenElse
- OverloadedStrings
- FlexibleInstances
- NoMonomorphismRestriction
library:
source-dirs: src
exposed-modules:
- XSaiga.Getts
- XSaiga.AGParser2
- XSaiga.TypeAg2
- XSaiga.SolarmanTriplestore
#- XSaiga.Interactive
- XSaiga.LocalData
- XSaiga.CGI
#when:
# - condition: flag(instore)
# exposed-modules: XSaiga.LocalData
executables:
solarman.cgi:
source-dirs: driver
main: Main.hs
dependencies: XSaiga