summaryrefslogtreecommitdiff
path: root/next-lib/src/parse/oald/asc2gf
diff options
context:
space:
mode:
authorbjorn <bjorn@bringert.net>2008-11-26 14:35:35 +0000
committerbjorn <bjorn@bringert.net>2008-11-26 14:35:35 +0000
commita61a6d5d43de1a7b45d530c32932b96d28e2e21f (patch)
tree45e7a54d4cb92f93976893bed8368c9bff5b459c /next-lib/src/parse/oald/asc2gf
parentd0116c395839cd53dd24cfe1cb26b3f64ddc9430 (diff)
OALD: split lexicon into two: one for open classes and one for closed classes.
Diffstat (limited to 'next-lib/src/parse/oald/asc2gf')
-rw-r--r--next-lib/src/parse/oald/asc2gf34
1 files changed, 29 insertions, 5 deletions
diff --git a/next-lib/src/parse/oald/asc2gf b/next-lib/src/parse/oald/asc2gf
index 3b27e3022..d3db827f8 100644
--- a/next-lib/src/parse/oald/asc2gf
+++ b/next-lib/src/parse/oald/asc2gf
@@ -367,10 +367,15 @@ while ( my $line = <STDIN> ) {
my $absfile = "Oald.gf";
my $cncfile = "OaldEng.gf";
+my $abs_structfile = "OaldStructural.gf";
+my $cnc_structfile = "OaldStructuralEng.gf";
open (ABS, '>', $absfile);
open (CNC, '>', $cncfile);
+open (ABS_STRUCTURAL, '>', $abs_structfile);
+open (CNC_STRUCTURAL, '>', $cnc_structfile);
+
# print a nice comment at the top
@@ -396,26 +401,45 @@ my $header = "-- English lexicon for GF, produced from:\n"
. "-- http://www.stanford.edu/~mpurver/software.html\n"
. "\n";
print ABS $header;
-print CNC $header;
-
print ABS "abstract Oald = Cat ** {\n";
+
+print CNC $header;
print CNC "--# -path=.:alltenses\n";
print CNC "concrete OaldEng of Oald = CatEng ** open ParadigmsEng, IrregEng in {\n";
+print ABS_STRUCTURAL $header;
+print ABS_STRUCTURAL "abstract OaldStructural = Cat ** {\n";
+
+print CNC_STRUCTURAL $header;
+print CNC_STRUCTURAL "--# -path=.:alltenses\n";
+print CNC_STRUCTURAL "concrete OaldStructuralEng of OaldStructural = CatEng ** open ParadigmsEng in {\n";
+
foreach my $name (sort (keys %words)) {
(my $cat = $name) =~ s/.*_([A-Z][A-Za-z\d]*)$/$1/;
my $lin = $words{$name};
- print ABS "fun $name : $cat;\n";
- print CNC "lin $name = $lin;\n";
+ if ( $cat =~ /^(A)|(N)|(V)|(V2)$/ ) {
+ print ABS "fun $name : $cat;\n";
+ print CNC "lin $name = $lin;\n";
+ } else {
+ print ABS_STRUCTURAL "fun $name : $cat;\n";
+ print CNC_STRUCTURAL "lin $name = $lin;\n";
+ }
}
print ABS "}";
print CNC "}";
+print ABS_STRUCTURAL "}";
+print CNC_STRUCTURAL "}";
+
+close(ABS_STRUCTURAL);
+close(CNC_STRUCTURAL);
+
close(ABS);
close(CNC);
-print "\nWrote lexicon to $absfile and $cncfile\n";
+print "\nWrote open lexicon to $absfile and $cncfile\n";
+print "Wrote closed lexicon to $abs_structfile and $cnc_structfile\n";