Index: app/TODO
===================================================================
--- app/TODO	(revision df77b87018c36b8848d9856d2cf774d23600b66d)
+++ app/TODO	(revision 6b3be72395bfc594673b8184d6a7624e3800b47d)
@@ -1,4 +1,5 @@
 BARDZO WAZNE:
 
+* w dystrybucji tarball umieszczac pliki w okrelonych miejscach
 * gue SIE NIE KOMPILUJE !!!
 
@@ -6,7 +7,4 @@
 * zamienic kota na lepszego (Kubis) [TO]
 * sen - unikaÄ dwukrotnego wstawiania BOSÃ³w i EOSÃ³w
-* uniezaleznic mar od attr.pm (ew. wcielic attr.pm) [TO]
-* mar nie obsluguje plikow konfiguracyjnych [JW]
-* ser i grp - parametr tags (zeby bral wskazany program tag2re) [TO]
 * polaczyc sen'y [TO]
 * programy z atrybutyem input-field: funkcja process_seg zwraca false, gdy nie ma pola podanego po -I
@@ -15,4 +13,6 @@
 * (zrobione dla ser?) Nazwy pmdb2re -> pmdb.tag2re (grp, ser).
 * Zadania zwiazane z rozbudowa ser (src/ser/TODO).
-* Nowa funkcjonalnoÅÄ dla kot? con? - kaÅŒde zdanie w nowym wierszu 
+* Nowa funkcjonalnoÅÄ dla kot? con? - kaÅŒde zdanie w nowym wierszu
 * opcja info w dgp powinna miec domyslna wartosc d lub h
+
+
Index: app/dist/common/utt_make_config.pl
===================================================================
--- app/dist/common/utt_make_config.pl	(revision 19dfa5cb763e0eab77888cefb54245f0e847cb94)
+++ app/dist/common/utt_make_config.pl	(revision 6b3be72395bfc594673b8184d6a7624e3800b47d)
@@ -20,4 +20,5 @@
 conf_gue(catfile($usr_home, 'gue.conf'), $sys_home);
 conf_lem(catfile($usr_home, 'lem.conf'), $sys_home);
+conf_mar(catfile($usr_home, 'mar.conf'), $sys_home);
 conf_ser(catfile($usr_home, 'ser.conf'), $sys_home);
 conf_dgc(catfile($usr_home, 'dgc.conf'), $sys_home);
@@ -86,4 +87,5 @@
   print FILE makeConfigHeader();
   print FILE "macros=", abs_path("$utthome/lib/utt/terms.m4"), "\n";
+  print FILE "tags=uam\n";
 
   close FILE;
@@ -146,4 +148,15 @@
 }
 
+sub conf_mar() {
+	my $mar_file = shift;
+	my $utthome = shift;
+  open(FILE, ">$mar_file");
+
+  print FILE makeConfigHeader();
+  print FILE "tags=uam\n";
+
+  close FILE;
+}
+
 sub conf_ser() {
 	my $ser_file = shift;
@@ -154,4 +167,5 @@
   print FILE "macros=", abs_path("$utthome/lib/utt/terms.m4"), "\n";
   print FILE "flex-template=", abs_path("$utthome/lib/utt/ser.l.template"), "\n";
+  print FILE "tags=uam\n";
 
   close FILE;
Index: app/dist/struktura.txt
===================================================================
--- app/dist/struktura.txt	(revision df77b87018c36b8848d9856d2cf774d23600b66d)
+++ app/dist/struktura.txt	(revision 6b3be72395bfc594673b8184d6a7624e3800b47d)
@@ -10,5 +10,4 @@
 /usr/local/bin/go		?
 /usr/local/bin/Makefile.go	?
-/usr/local/bin/attr.pm
 /usr/local/bin/gph
 /usr/local/bin/grp
@@ -29,5 +28,5 @@
 
 # R.D. sugeruje /etc/utt
-# lokalnie: ~/.utt lub (trendy) ~/.config/utt 
+# lokalnie: ~/.utt lub (trendy) ~/.config/utt
 /usr/local/etc/utt/con.conf
 /usr/local/etc/utt/cor.conf
@@ -46,4 +45,11 @@
 /usr/local/etc/utt/utt.conf
 
+/usr/local/share/utt/weights.kor
+# lokalnie: ~/.local/share/utt/weights.kor
+/usr/local/share/utt/cats.dgc
+# lokalnie: ~/.local/share/utt/cats.dgc
+/usr/local/share/utt/gram.dgc
+# lokalnie: ~/.local/share/utt/gram.dgc
+
 /usr/local/share/utt/pl_PL.ISO-8859-2/pl_PL.ISO-8859-2.sym
 /usr/local/share/utt/pl_PL.ISO-8859-2/cor.bin
@@ -57,8 +63,8 @@
 /usr/local/lib/utt/ser.l.template
 /usr/local/lib/utt/terms.m4
-/usr/local/lib/utt/weights.kor # -> share
-/usr/local/lib/utt/seg.rb # lok. ~/.local/lib/utt/seg.rb
-/usr/local/lib/utt/cats.dgc # -> share
-/usr/local/lib/utt/gram.dgc # -> share
+/usr/local/lib/utt/seg.rb
+# lokalnie: ~/.local/lib/utt/seg.rb   <-- tego nie trzeba tak
+/usr/local/lib/attr.pm
+# lokalnie: ~/.local/lib/utt/attr.pm
 
 /usr/local/share/doc/utt/FAQ
Index: app/lib/attr.pm
===================================================================
--- app/lib/attr.pm	(revision 6b3be72395bfc594673b8184d6a7624e3800b47d)
+++ app/lib/attr.pm	(revision 6b3be72395bfc594673b8184d6a7624e3800b47d)
@@ -0,0 +1,133 @@
+package attr;
+
+use locale;
+use strict;
+
+use Data::Dumper;
+
+our $pos_re    = qr/(?:[[:upper:]]+)/;
+our $attr_re   = qr/(?:[[:upper:]]+)/;
+our $val_re    = qr/(?:[[:lower:][:digit:]+?!*-]|<[^>\n]+>)/;
+our $av_re     = qr/(?:$attr_re$val_re+)/;
+our $avlist_re = qr/(?:$av_re+)/;
+our $cat_re    = qr/(?:$pos_re(?:\/$avlist_re)?)/;
+
+sub match(\@\@)
+{
+    my ($cat1,$avs1)= @{shift @_};
+    my ($cat2,$avs2)= @{shift @_};
+
+    if($cat1 ne $cat2 && $cat1 ne '*' && $cat2 ne '*')
+    {
+	return 0; 
+    }
+    else
+    {
+      ATTR:for my $attr (keys %$avs1)
+      {
+	  if(exists $avs2->{$attr})
+	  {
+	      for my $val (keys %{$avs1->{$attr}})
+	      {
+		  next ATTR if $avs2->{$attr}->{$val};
+	      }
+	      return 0;
+	      last ATTR;
+	  }
+      }
+    }
+
+    return 1;
+}
+
+sub agree(\@\@$)
+{
+    my $val1 = $_[0]->[1]->{$_[2]};
+    my $val2 = $_[1]->[1]->{$_[2]};
+
+    return 1 if !$val1 || !$val2;
+
+    for my $v (keys %$val1)
+    {
+	return 1 if exists $val2->{$v};
+    }
+    return 0;
+}
+
+# funkcja parse
+# arg:     deskrypcja
+# warto¶æ: referencja do tablicy [<cat>, <avs>],
+#          gdzie <avs> jest referencja do hasza, zawierajacego pary
+#          atrybut=>hasz warto¶ci (pary warto¶æ=>1), czyli np.
+
+#         [
+#           'ADJ',
+#           {
+#             'KOLEDZY' => {
+#                            '<alojzy>' => 1,
+#                            '<karol>' => 1,
+#                            '<jan>' => 1
+#                          },
+#             'C' => {
+#                      'p' => 1,
+#                      'a' => 1,
+#                      'i' => 1
+#                    },
+#             'N' => {
+#                      'p' => 1
+#                    }
+#           }
+#         ];
+
+sub parse ($)
+{
+    my ($dstr)=@_;
+    my $avs={};
+    my ($cat,$attrlist) = split '/', $dstr;
+  ATTR:
+#    while( $attrlist =~ /([[:upper:]]+)((?:[[:lower:][:digit:]+?!*-]|<[^>\n]+>)+)/g )
+    while( $attrlist =~ /($attr_re)($val_re+)/g )
+    {
+	my ($attrstr,$valstr)=($1,$2);
+	my %vals;
+	while($valstr =~ /$val_re/g)
+	{
+	    my $val = $&;
+	    next ATTR if $val eq '*';
+	    $val =~ s/^<([[:lower:]])>$/$1/;
+	    $vals{$val}=1;
+	}
+	
+	$avs->{$attrstr} = \%vals; # dlaczego to dziala? %vals jest lokalne
+    }
+    [$cat, $avs];
+}
+
+# funkcja unparse
+# arg:     jak warto¶æ parse
+# warto¶æ: deskrypcja - napis
+
+sub unparse (\@)
+{
+    my ($cat,$avs)= @{shift @_};
+    my $dstr=$cat;
+    my @attrs = keys %$avs;
+    if(@attrs)
+    {
+	$dstr .= '/';
+	for my $attr ( sort @attrs )
+	{
+	    $dstr .= $attr . (join '', sort keys %{$avs->{$attr}});
+	}
+    }
+    $dstr;
+}
+
+
+sub canonize ($)
+{
+    unparse @{parse @_[0]} ;
+}
+
+
+1;
Index: app/lib/cats.dgc
===================================================================
--- app/lib/cats.dgc	(revision 0214596e4d70b25df913a24f19d50cb0f1b4a69f)
+++ 	(revision )
@@ -1,696 +1,0 @@
-ADJ/DcNpCaGp
-ADJ/DcNpCd
-ADJ/DcNpCgl
-ADJ/DcNpCi
-ADJ/DcNpCnavGaifn
-ADJ/DcNpCnvGp
-ADJ/DcNsCaGi
-ADJ/DcNsCaGpa
-ADJ/DcNsCaiGf
-ADJ/DcNsCavGf
-ADJ/DcNsCdGpain
-ADJ/DcNsCgdlGf
-ADJ/DcNsCgGpain
-ADJ/DcNsCilGpain
-ADJ/DcNsCnavGn
-ADJ/DcNsCnvGpai
-ADJ/DpNpCaGp
-ADJ/DpNpCd
-ADJ/DpNpCgl
-ADJ/DpNpCi
-ADJ/DpNpCnavGaifn
-ADJ/DpNpCnvGp
-ADJ/DpNsCaGi
-ADJ/DpNsCaGpa
-ADJ/DpNsCaiGf
-ADJ/DpNsCavGf
-ADJ/DpNsCdGpain
-ADJ/DpNsCgdlGf
-ADJ/DpNsCgGpain
-ADJ/DpNsCilGpain
-ADJ/DpNsCnavGn
-ADJ/DpNsCnvGpai
-ADJ/DsNpCaGp
-ADJ/DsNpCd
-ADJ/DsNpCgl
-ADJ/DsNpCi
-ADJ/DsNpCnavGaifn
-ADJ/DsNpCnvGp
-ADJ/DsNsCaGi
-ADJ/DsNsCaGpa
-ADJ/DsNsCaiGf
-ADJ/DsNsCavGf
-ADJ/DsNsCdGpain
-ADJ/DsNsCgdlGf
-ADJ/DsNsCgGpain
-ADJ/DsNsCilGpain
-ADJ/DsNsCnavGn
-ADJ/DsNsCnvGpai
-ADJNUM/NpCaGp
-ADJNUM/NpCd
-ADJNUM/NpCgl
-ADJNUM/NpCi
-ADJNUM/NpCnavGaifn
-ADJNUM/NpCnvGp
-ADJNUM/NsCaGi
-ADJNUM/NsCaGpa
-ADJNUM/NsCaiGf
-ADJNUM/NsCavGf
-ADJNUM/NsCdGpain
-ADJNUM/NsCgdlGf
-ADJNUM/NsCgGpain
-ADJNUM/NsCilGpain
-ADJNUM/NsCnavGn
-ADJNUM/NsCnvGpai
-ADJPAP/NpCaGp
-ADJPAP/NpCd
-ADJPAP/NpCgl
-ADJPAP/NpCi
-ADJPAP/NpCnavGaifn
-ADJPAP/NpCnvGp
-ADJPAP/NsCaGi
-ADJPAP/NsCaGpa
-ADJPAP/NsCaiGf
-ADJPAP/NsCavGf
-ADJPAP/NsCdGpain
-ADJPAP/NsCgdlGf
-ADJPAP/NsCgGpain
-ADJPAP/NsCilGpain
-ADJPAP/NsCnavGn
-ADJPAP/NsCnvGpai
-ADJPP/NpCaGp
-ADJPP/NpCd
-ADJPP/NpCgl
-ADJPP/NpCi
-ADJPP/NpCnavGaifn
-ADJPP/NpCnvGp
-ADJPP/NsCaGi
-ADJPP/NsCaGpa
-ADJPP/NsCaiGf
-ADJPP/NsCavGf
-ADJPP/NsCdGpain
-ADJPP/NsCgdlGf
-ADJPP/NsCgGpain
-ADJPP/NsCilGpain
-ADJPP/NsCnavGn
-ADJPP/NsCnvGpai
-ADJPRO/NpCaGp
-ADJPRO/NpCd
-ADJPRO/NpCgl
-ADJPRO/NpCi
-ADJPRO/NpCnavGaifn
-ADJPRO/NpCnvGp
-ADJPRO/NsCaGi
-ADJPRO/NsCaGpa
-ADJPRO/NsCaiGf
-ADJPRO/NsCavGf
-ADJPRO/NsCdGpain
-ADJPRO/NsCgdlGf
-ADJPRO/NsCgGpain
-ADJPRO/NsCilGpain
-ADJPRO/NsCnavGn
-ADJPRO/NsCnvGpai
-ADJPRO/ZdNpCaGp
-ADJPRO/ZdNpCd
-ADJPRO/ZdNpCgl
-ADJPRO/ZdNpCi
-ADJPRO/ZdNpCnavGaifn
-ADJPRO/ZdNpCnvGp
-ADJPRO/ZdNsCaGi
-ADJPRO/ZdNsCaGpa
-ADJPRO/ZdNsCaiGf
-ADJPRO/ZdNsCavGf
-ADJPRO/ZdNsCdGpain
-ADJPRO/ZdNsCgdlGf
-ADJPRO/ZdNsCgGpain
-ADJPRO/ZdNsCilGpain
-ADJPRO/ZdNsCnavGn
-ADJPRO/ZdNsCnvGpai
-ADJPRO/ZgNpCaGp
-ADJPRO/ZgNpCd
-ADJPRO/ZgNpCgl
-ADJPRO/ZgNpCi
-ADJPRO/ZgNpCnavGaifn
-ADJPRO/ZgNpCnvGp
-ADJPRO/ZgNsCaGi
-ADJPRO/ZgNsCaGpa
-ADJPRO/ZgNsCaiGf
-ADJPRO/ZgNsCavGf
-ADJPRO/ZgNsCdGpain
-ADJPRO/ZgNsCgdlGf
-ADJPRO/ZgNsCgGpain
-ADJPRO/ZgNsCilGpain
-ADJPRO/ZgNsCnavGn
-ADJPRO/ZgNsCnvGpai
-ADJPRO/ZiNpCaGp
-ADJPRO/ZiNpCd
-ADJPRO/ZiNpCgl
-ADJPRO/ZiNpCi
-ADJPRO/ZiNpCnavGaifn
-ADJPRO/ZiNpCnvGp
-ADJPRO/ZiNsCaGi
-ADJPRO/ZiNsCaGpa
-ADJPRO/ZiNsCaiGf
-ADJPRO/ZiNsCavGf
-ADJPRO/ZiNsCdGpain
-ADJPRO/ZiNsCgdlGf
-ADJPRO/ZiNsCgGpain
-ADJPRO/ZiNsCilGpain
-ADJPRO/ZiNsCnavGn
-ADJPRO/ZiNsCnvGpai
-ADJPRO/ZnNpCaGp
-ADJPRO/ZnNpCd
-ADJPRO/ZnNpCgl
-ADJPRO/ZnNpCi
-ADJPRO/ZnNpCnavGaifn
-ADJPRO/ZnNpCnvGp
-ADJPRO/ZnNsCaGi
-ADJPRO/ZnNsCaGpa
-ADJPRO/ZnNsCaiGf
-ADJPRO/ZnNsCavGf
-ADJPRO/ZnNsCdGpain
-ADJPRO/ZnNsCgdlGf
-ADJPRO/ZnNsCgGpain
-ADJPRO/ZnNsCilGpain
-ADJPRO/ZnNsCnavGn
-ADJPRO/ZnNsCnvGpai
-ADJPRO/ZqNpCaGp
-ADJPRO/ZqNpCd
-ADJPRO/ZqNpCgl
-ADJPRO/ZqNpCi
-ADJPRO/ZqNpCnavGaifn
-ADJPRO/ZqNpCnvGp
-ADJPRO/ZqNsCaGi
-ADJPRO/ZqNsCaGpa
-ADJPRO/ZqNsCaiGf
-ADJPRO/ZqNsCavGf
-ADJPRO/ZqNsCdGpain
-ADJPRO/ZqNsCgdlGf
-ADJPRO/ZqNsCgGpain
-ADJPRO/ZqNsCilGpain
-ADJPRO/ZqNsCnavGn
-ADJPRO/ZqNsCnvGpai
-ADJPRO/ZqrNpCaGp
-ADJPRO/ZqrNpCd
-ADJPRO/ZqrNpCgl
-ADJPRO/ZqrNpCi
-ADJPRO/ZqrNpCnavGaifn
-ADJPRO/ZqrNpCnvGp
-ADJPRO/ZqrNsCaGi
-ADJPRO/ZqrNsCaGpa
-ADJPRO/ZqrNsCaiGf
-ADJPRO/ZqrNsCavGf
-ADJPRO/ZqrNsCdGpain
-ADJPRO/ZqrNsCgdlGf
-ADJPRO/ZqrNsCgGpain
-ADJPRO/ZqrNsCilGpain
-ADJPRO/ZqrNsCnavGn
-ADJPRO/ZqrNsCnvGpai
-ADJPRO/ZsNpCaGp
-ADJPRO/ZsNpCd
-ADJPRO/ZsNpCgl
-ADJPRO/ZsNpCi
-ADJPRO/ZsNpCnavGaifn
-ADJPRO/ZsNpCnvGp
-ADJPRO/ZsNsCaGi
-ADJPRO/ZsNsCaGpa
-ADJPRO/ZsNsCaiGf
-ADJPRO/ZsNsCavGf
-ADJPRO/ZsNsCdGpain
-ADJPRO/ZsNsCgdlGf
-ADJPRO/ZsNsCgGpain
-ADJPRO/ZsNsCilGpain
-ADJPRO/ZsNsCnavGn
-ADJPRO/ZsNsCnvGpai
-ADJPRP/NpCaGp
-ADJPRP/NpCd
-ADJPRP/NpCgl
-ADJPRP/NpCi
-ADJPRP/NpCnavGaifn
-ADJPRP/NpCnvGp
-ADJPRP/NsCaGi
-ADJPRP/NsCaGpa
-ADJPRP/NsCaiGf
-ADJPRP/NsCavGf
-ADJPRP/NsCdGpain
-ADJPRP/NsCgdlGf
-ADJPRP/NsCgGpain
-ADJPRP/NsCilGpain
-ADJPRP/NsCnavGn
-ADJPRP/NsCnvGpai
-ADVANP
-ADV/Dc
-ADV/Dp
-ADV/Ds
-ADVNUM
-ADVPRO
-ADVPRO/Zd
-ADVPRO/Zi
-ADVPRO/Zn
-ADVPRO/Zq
-ADVPRO/Zqr
-ADVPRO/Zr
-ADVPRP
-APP
-BYC/Vb
-BYC/VpMcNpP1Gaifn
-BYC/VpMcNpP1Gp
-BYC/VpMcNpP2Gaifn
-BYC/VpMcNpP2Gp
-BYC/VpMcNpP3Gaifn
-BYC/VpMcNpP3Gp
-BYC/VpMcNsP1Gf
-BYC/VpMcNsP1Gpai
-BYC/VpMcNsP2Gf
-BYC/VpMcNsP2Gpai
-BYC/VpMcNsP3Gf
-BYC/VpMcNsP3Gn
-BYC/VpMcNsP3Gpai
-BYC/VpMdTaNpP1Gaifn
-BYC/VpMdTaNpP1Gp
-BYC/VpMdTaNpP2Gaifn
-BYC/VpMdTaNpP2Gp
-BYC/VpMdTaNpP3Gaifn
-BYC/VpMdTaNpP3Gp
-BYC/VpMdTaNsP1Gf
-BYC/VpMdTaNsP1Gpai
-BYC/VpMdTaNsP2Gf
-BYC/VpMdTaNsP2Gpai
-BYC/VpMdTaNsP3Gf
-BYC/VpMdTaNsP3Gn
-BYC/VpMdTaNsP3Gpai
-BYC/VpMdTrfNpP1
-BYC/VpMdTrfNpP2
-BYC/VpMdTrfNpP3
-BYC/VpMdTrfNsP1
-BYC/VpMdTrfNsP2
-BYC/VpMdTrfNsP3
-BYC/VpMiNpP1
-BYC/VpMiNpP2
-BYC/VpMiNsP2
-CONJ
-EXCL
-N/GaNpCa
-N/GaNpCd
-N/GaNpCg
-N/GaNpCi
-N/GaNpCl
-N/GaNpCn
-N/GaNpCv
-N/GaNsCa
-N/GaNsCd
-N/GaNsCg
-N/GaNsCi
-N/GaNsCl
-N/GaNsCn
-N/GaNsCv
-N/GfNpCa
-N/GfNpCd
-N/GfNpCg
-N/GfNpCi
-N/GfNpCl
-N/GfNpCn
-N/GfNpCv
-N/GfNsCa
-N/GfNsCd
-N/GfNsCg
-N/GfNsCi
-N/GfNsCl
-N/GfNsCn
-N/GfNsCv
-N/GiNpCa
-N/GiNpCd
-N/GiNpCg
-N/GiNpCi
-N/GiNpCl
-N/GiNpCn
-N/GiNpCv
-N/GiNsCa
-N/GiNsCd
-N/GiNsCg
-N/GiNsCi
-N/GiNsCl
-N/GiNsCn
-N/GiNsCv
-N/GnNpCa
-N/GnNpCd
-N/GnNpCg
-N/GnNpCi
-N/GnNpCl
-N/GnNpCn
-N/GnNpCv
-N/GnNsCa
-N/GnNsCd
-N/GnNsCg
-N/GnNsCi
-N/GnNsCl
-N/GnNsCn
-N/GnNsCv
-N/G?NpCa
-N/G*NpCa
-N/G?NpCd
-N/G*NpCd
-N/G?NpCg
-N/G*NpCg
-N/G?NpCi
-N/G*NpCi
-N/G?NpCl
-N/G*NpCl
-N/G?NpCn
-N/G*NpCn
-N/G?NpCv
-N/G*NpCv
-N/G?NsCa
-N/G?NsCd
-N/G?NsCg
-N/G?NsCi
-N/G?NsCl
-N/G?NsCn
-N/G?NsCv
-N/GpNpCa
-N/GpNpCd
-N/GpNpCg
-N/GpNpCi
-N/GpNpCl
-N/GpNpCn
-N/GpNpCv
-N/GpNsCa
-N/GpNsCd
-N/GpNsCg
-N/GpNsCi
-N/GpNsCl
-N/GpNsCn
-N/GpNsCv
-NPRO/ZdGnNsCa
-NPRO/ZdGnNsCd
-NPRO/ZdGnNsCg
-NPRO/ZdGnNsCi
-NPRO/ZdGnNsCl
-NPRO/ZdGnNsCn
-NPRO/ZgGnNsCa
-NPRO/ZgGnNsCd
-NPRO/ZgGnNsCg
-NPRO/ZgGnNsCi
-NPRO/ZgGnNsCl
-NPRO/ZgGnNsCn
-NPRO/ZgGpNpCa
-NPRO/ZgGpNpCd
-NPRO/ZgGpNpCg
-NPRO/ZgGpNpCi
-NPRO/ZgGpNpCl
-NPRO/ZgGpNpCn
-NPRO/ZiGnNsCa
-NPRO/ZiGnNsCd
-NPRO/ZiGnNsCg
-NPRO/ZiGnNsCi
-NPRO/ZiGnNsCl
-NPRO/ZiGnNsCn
-NPRO/ZiGpNsCa
-NPRO/ZiGpNsCd
-NPRO/ZiGpNsCg
-NPRO/ZiGpNsCi
-NPRO/ZiGpNsCl
-NPRO/ZiGpNsCn
-NPRO/ZnGnNsCa
-NPRO/ZnGnNsCd
-NPRO/ZnGnNsCg
-NPRO/ZnGnNsCi
-NPRO/ZnGnNsCl
-NPRO/ZnGnNsCn
-NPRO/ZnGpNsCa
-NPRO/ZnGpNsCd
-NPRO/ZnGpNsCg
-NPRO/ZnGpNsCi
-NPRO/ZnGpNsCl
-NPRO/ZnGpNsCn
-NPRO/ZpGaifnNpCa
-NPRO/ZpGaifnNpCd
-NPRO/ZpGaifnNpCg
-NPRO/ZpGaifnNpCi
-NPRO/ZpGaifnNpCl
-NPRO/ZpGaifnNpCn
-NPRO/ZpGfNsCa
-NPRO/ZpGfNsCd
-NPRO/ZpGfNsCg
-NPRO/ZpGfNsCi
-NPRO/ZpGfNsCl
-NPRO/ZpGfNsCn
-NPRO/ZpGnNsCa
-NPRO/ZpGnNsCd
-NPRO/ZpGnNsCg
-NPRO/ZpGnNsCi
-NPRO/ZpGnNsCl
-NPRO/ZpGnNsCn
-NPRO/ZpG*NpCa
-NPRO/ZpG*NpCd
-NPRO/ZpG*NpCg
-NPRO/ZpG*NpCi
-NPRO/ZpG*NpCl
-NPRO/ZpG*NpCn
-NPRO/ZpG*NsCa
-NPRO/ZpG*NsCd
-NPRO/ZpG*NsCg
-NPRO/ZpG*NsCi
-NPRO/ZpG*NsCl
-NPRO/ZpG*NsCn
-NPRO/ZpGpaiNsCa
-NPRO/ZpGpaiNsCd
-NPRO/ZpGpaiNsCg
-NPRO/ZpGpaiNsCi
-NPRO/ZpGpaiNsCl
-NPRO/ZpGpaiNsCn
-NPRO/ZpGpNpCa
-NPRO/ZpGpNpCd
-NPRO/ZpGpNpCg
-NPRO/ZpGpNpCi
-NPRO/ZpGpNpCl
-NPRO/ZpGpNpCn
-NPRO/ZqGnNsCa
-NPRO/ZqGnNsCd
-NPRO/ZqGnNsCg
-NPRO/ZqGnNsCi
-NPRO/ZqGnNsCl
-NPRO/ZqGnNsCn
-NPRO/ZqGpNsCa
-NPRO/ZqGpNsCd
-NPRO/ZqGpNsCg
-NPRO/ZqGpNsCi
-NPRO/ZqGpNsCl
-NPRO/ZqGpNsCn
-NPRO/ZqrGnNsCa
-NPRO/ZqrGnNsCd
-NPRO/ZqrGnNsCg
-NPRO/ZqrGnNsCi
-NPRO/ZqrGnNsCl
-NPRO/ZqrGnNsCn
-NPRO/ZqrGpNsCa
-NPRO/ZqrGpNsCd
-NPRO/ZqrGpNsCg
-NPRO/ZqrGpNsCi
-NPRO/ZqrGpNsCl
-NPRO/ZqrGpNsCn
-NPRO/ZxG*N*Ca
-NPRO/ZxG*N*Cd
-NPRO/ZxG*N*Cg
-NPRO/ZxG*N*Ci
-NPRO/ZxG*N*Cl
-NUMCOL/Ca
-NUMCOL/Cd
-NUMCOL/Cg
-NUMCOL/Ci
-NUMCOL/Cl
-NUMCOL/Cn
-NUMCRD/Ca
-NUMCRD/CaGaifn
-NUMCRD/CaGain
-NUMCRD/CaGf
-NUMCRD/CaGp
-NUMCRD/Cd
-NUMCRD/Cg
-NUMCRD/Ci
-NUMCRD/CiGf
-NUMCRD/CiGpain
-NUMCRD/Cl
-NUMCRD/Cn
-NUMCRD/CnGaifn
-NUMCRD/CnGain
-NUMCRD/CnGf
-NUMCRD/CnGp
-NUMCRD/ZiCaGaifn
-NUMCRD/ZiCaGain
-NUMCRD/ZiCaGf
-NUMCRD/ZiCaGp
-NUMCRD/ZiCd
-NUMCRD/ZiCg
-NUMCRD/ZiCi
-NUMCRD/ZiCiGf
-NUMCRD/ZiCiGpain
-NUMCRD/ZiCl
-NUMCRD/ZiCnGaifn
-NUMCRD/ZiCnGain
-NUMCRD/ZiCnGf
-NUMCRD/ZiCnGp
-NUMCRD/ZqiCaGaifn
-NUMCRD/ZqiCaGp
-NUMCRD/ZqiCd
-NUMCRD/ZqiCg
-NUMCRD/ZqiCi
-NUMCRD/ZqiCl
-NUMCRD/ZqiCnGaifn
-NUMCRD/ZqiCnGp
-NUMORD/NpCaGp
-NUMORD/NpCd
-NUMORD/NpCgl
-NUMORD/NpCi
-NUMORD/NpCnavGaifn
-NUMORD/NpCnvGp
-NUMORD/NsCaGi
-NUMORD/NsCaGpa
-NUMORD/NsCaiGf
-NUMORD/NsCavGf
-NUMORD/NsCdGpain
-NUMORD/NsCgdlGf
-NUMORD/NsCgGpain
-NUMORD/NsCilGpain
-NUMORD/NsCnavGn
-NUMORD/NsCnvGpai
-NUMPAR
-NUMPAR/Dc
-NUMPAR/Dp
-NUMPAR/Ds
-NUMPAR/Ns
-NUMPAR/NsGf
-NUMPAR/NsGpain
-NV/Ca
-NV/Cd
-NV/Cg
-NV/Ci
-NV/Cl
-NV/Cn
-ONO
-P
-PART
-P/Ca
-P/Cai
-P/Cal
-P/Cd
-P/Cg
-P/Cga
-P/Cgai
-P/Cgd
-P/Cgi
-P/Ci
-P/Cl
-PPRO/Zp
-V/AiVb
-V/AiViTa
-V/AiVpMcNpP1Gaifn
-V/AiVpMcNpP1Gp
-V/AiVpMcNpP2Gaifn
-V/AiVpMcNpP2Gp
-V/AiVpMcNpP3Gaifn
-V/AiVpMcNpP3Gp
-V/AiVpMcNsP1Gf
-V/AiVpMcNsP1Gpai
-V/AiVpMcNsP2Gf
-V/AiVpMcNsP2Gpai
-V/AiVpMcNsP3Gf
-V/AiVpMcNsP3Gn
-V/AiVpMcNsP3Gpai
-V/AiVpMdTaNpP1Gaifn
-V/AiVpMdTaNpP1Gp
-V/AiVpMdTaNpP2Gaifn
-V/AiVpMdTaNpP2Gp
-V/AiVpMdTaNpP3Gaifn
-V/AiVpMdTaNpP3Gp
-V/AiVpMdTaNsP1Gf
-V/AiVpMdTaNsP1Gpai
-V/AiVpMdTaNsP2Gf
-V/AiVpMdTaNsP2Gpai
-V/AiVpMdTaNsP3Gf
-V/AiVpMdTaNsP3Gn
-V/AiVpMdTaNsP3Gpai
-V/AiVpMdTrfNpP1
-V/AiVpMdTrfNpP2
-V/AiVpMdTrfNpP3
-V/AiVpMdTrfNsP1
-V/AiVpMdTrfNsP2
-V/AiVpMdTrfNsP3
-V/AiVpMiNpP1
-V/AiVpMiNpP2
-V/AiVpMiNsP2
-V/ApVb
-V/ApViTa
-V/ApVpMcNpP1Gaifn
-V/ApVpMcNpP1Gp
-V/ApVpMcNpP2Gaifn
-V/ApVpMcNpP2Gp
-V/ApVpMcNpP3Gaifn
-V/ApVpMcNpP3Gp
-V/ApVpMcNsP1Gf
-V/ApVpMcNsP1Gpai
-V/ApVpMcNsP2Gf
-V/ApVpMcNsP2Gpai
-V/ApVpMcNsP3Gf
-V/ApVpMcNsP3Gn
-V/ApVpMcNsP3Gpai
-V/ApVpMdTaNpP1Gaifn
-V/ApVpMdTaNpP1Gp
-V/ApVpMdTaNpP2Gaifn
-V/ApVpMdTaNpP2Gp
-V/ApVpMdTaNpP3Gaifn
-V/ApVpMdTaNpP3Gp
-V/ApVpMdTaNsP1Gf
-V/ApVpMdTaNsP1Gpai
-V/ApVpMdTaNsP2Gf
-V/ApVpMdTaNsP2Gpai
-V/ApVpMdTaNsP3Gf
-V/ApVpMdTaNsP3Gn
-V/ApVpMdTaNsP3Gpai
-V/ApVpMdTrfNpP1
-V/ApVpMdTrfNpP2
-V/ApVpMdTrfNpP3
-V/ApVpMdTrfNsP1
-V/ApVpMdTrfNsP2
-V/ApVpMdTrfNsP3
-V/ApVpMiNpP1
-V/ApVpMiNpP2
-V/ApVpMiNsP2
-V/GiVb
-V/GiViTa
-V/GiVpMcNpP1Gaifn
-V/GiVpMcNpP1Gp
-V/GiVpMcNpP2Gaifn
-V/GiVpMcNpP2Gp
-V/GiVpMcNpP3Gaifn
-V/GiVpMcNpP3Gp
-V/GiVpMcNsP1Gf
-V/GiVpMcNsP1Gpai
-V/GiVpMcNsP2Gf
-V/GiVpMcNsP2Gpai
-V/GiVpMcNsP3Gf
-V/GiVpMcNsP3Gn
-V/GiVpMcNsP3Gpai
-V/GiVpMdTaNpP1Gaifn
-V/GiVpMdTaNpP1Gp
-V/GiVpMdTaNpP2Gaifn
-V/GiVpMdTaNpP2Gp
-V/GiVpMdTaNpP3Gaifn
-V/GiVpMdTaNpP3Gp
-V/GiVpMdTaNsP1Gf
-V/GiVpMdTaNsP1Gpai
-V/GiVpMdTaNsP2Gf
-V/GiVpMdTaNsP2Gpai
-V/GiVpMdTaNsP3Gf
-V/GiVpMdTaNsP3Gn
-V/GiVpMdTaNsP3Gpai
-V/GiVpMdTrfNpP1
-V/GiVpMdTrfNpP2
-V/GiVpMdTrfNpP3
-V/GiVpMdTrfNsP1
-V/GiVpMdTrfNsP2
-V/GiVpMdTrfNsP3
-V/GiVpMiNpP1
-V/GiVpMiNpP2
-V/GiVpMiNsP2
-VNI
Index: app/lib/gram.dgc
===================================================================
--- app/lib/gram.dgc	(revision 14afb6e48875847a2fe21c189655f5cd73e5f1b1)
+++ 	(revision )
@@ -1,122 +1,0 @@
-#FLAG REL
-
-#UP REL 
-
-#ORDER * pcmpl
-#ORDER ..
-#ORDER subj .. * ..  cmpl
-#ORDER refl .. *
-#ORDER * refl
-
-#CONSTR	cmpl_g	 => ~cmpl_a
-#CONSTR	cmpl_inf => ~(cmpl_g|cmpl_d|cmpl_a|cmpl_p|cmpl_ze|cmpl_s)
-#CONSTR subj_pred => subj
-#constr cmpl_pred => cmpl
-
-
-
-#subj
-ROLE subj         # deklaracja roli (typ zaleznosci) podmiot
-AGR subj N        # zgodnosc podrzednika z nadrzednikiem co do liczby
-AGR subj G        # zgodnosc podrzednika z nadrzednikiem co do rodzaju
-GOV subj */Cn     # wymaganie by podrzednik byl w mianowniku
-
-# pary kategorii, jakie mozna polaczyc zaleznoscia typu podmiot
-
-#	nadrzednik		podrzednik
-LINK	V/VpP3,BYC/VpP3		N,NPRO		subj
-
-# (przecinek znaczy lub)
-
-ROLE cmpl_ga	# dopelnienie w bierniku/dopelniaczu
-ROLE cmpl_d     #             w celowniku
-ROLE cmpl_i     #             w narzedniku
-ROLE cmpl_inf   #             w bezokoliczniku
-ROLE cmpl_s     #             bedace zdaniem
-ROLE cmpl_ze    #             bedace zdaniem poprzedzonym 'ze'
-ROLE aux        
-ROLE mod
-ROLE prep
-ROLE pcmpl
-ROLE ccmpl
-ROLE poss
-ROLE restr
-ROLE part
-
-
-AGR aux N
-AGR aux G
-
-AGR mod N
-AGR mod C
-AGR mod G
-
-AGR pcmpl C
-
-GOV	cmpl_ga	*/Cga
-GOV	cmpl_d	*/Cd
-GOV	cmpl_i	*/Ci
-GOV	poss	*/Cg
-
-SGL subj
-SGL cmpl_ga
-SGL cmpl_d
-SGL cmpl_i
-SGL cmpl_inf
-SGL aux
-SGL pcmpl
-SGL ccmpl
-SGL poss
-SGL restr
-
-REQ	P	pcmpl
-REQ	CONJ	ccmpl
-
-RIGHT pcmpl
-RIGHT ccmpl
-RIGHT cmpl_ze
-RIGHT poss
-
-
-#cmpl_*
-LINK	V,ADVPRP,ADVANP,ADJPRP,ADJPAP,NV	N,NPRO			cmpl_ga
-LINK	V,ADVPRP,ADVANP,ADJPRP,ADJPAP,NV	N,NPRO			cmpl_d
-LINK	V,ADVPRP,ADVANP,ADJPRP,ADJPAP,NV	N,NPRO			cmpl_i
-LINK	V,ADVPRP,ADVANP,ADJPRP,ADJPAP,NV	V/Vb			cmpl_inf
-LINK	V,ADVPRP,ADVANP,ADJPRP,ADJPAP,NV	CONJ			cmpl_ze
-
-#aux
-#czas przyszly analityczny
-LINK	BYC/VpMdTf				V/AiVpP3,V/AiVb		aux
-#czas zaprzeszly(?)
-LINK	BYC/VpMc				V/VpP3			aux
-#BYC jako lacznik w (jest bialy, jest zaszlachtowany, jest pilotem)
-LINK	BYC					ADJPAP/Cn,ADJ/Cn,N/Ci	aux
-
-#mod
-
-LINK	V	ADV,ADVPRP,ADVANP,ADVPRO	mod
-LINK	N,NV	ADJ,ADJPAP,ADJPRP,ADJPRO	mod
-
-
-#prep
-LINK	N,V	P	prep
-
-#pcmpl
-LINK	P	N,NV	pcmpl
-
-
-#poss
-LINK	N	N,NV,NPRO	poss
-
-
-#ccmpl
-LINK	CONJ	V/Vp	ccmpl
-
-
-#restr
-LINK	ADJ	ADV	restr
-
-
-#part
-LINK	V	PART	part
Index: app/lib/seg.rb
===================================================================
--- app/lib/seg.rb	(revision 6b3be72395bfc594673b8184d6a7624e3800b47d)
+++ app/lib/seg.rb	(revision 6b3be72395bfc594673b8184d6a7624e3800b47d)
@@ -0,0 +1,31 @@
+
+class Seg
+  
+  def initialize(s="")
+    @line=s
+    self
+  end
+
+  def to_s
+    @line.chomp
+  end
+
+  def set(s)
+    @line=s
+    self
+  end
+
+  def field(key)
+    if key.class==Fixnum
+      @line.split[key-1]
+    elsif key.class==String
+      @line =~ /\s#{key}:(\S+)/; $1
+    end
+  end
+  alias [] field
+
+  def fields
+    @line.split
+  end
+
+end
Index: app/lib/weights.kor
===================================================================
--- app/lib/weights.kor	(revision a5fdde96132cd61c3f2e6d56c426c96b741427c8)
+++ 	(revision )
@@ -1,21 +1,0 @@
-%stdcor	1
-%xchg	1
-¿  rz 0.5
-ch h  0.5
-u  ó  0.5
-u  o  0.75
-om ¹  0.5
-om a  0.75
-en ê  0.5
-en ê  0.75
-a  ¹  0.25
-c  æ  0.25
-e  ê  0.25
-l  ³  0.25
-n  ñ  0.25
-o  ó  0.25
-s  ¶  0.25
-z  ¿  0.25
-z  Œ  0.25
-x  Œ  0.30
-
Index: app/share/cats.dgc
===================================================================
--- app/share/cats.dgc	(revision 6b3be72395bfc594673b8184d6a7624e3800b47d)
+++ app/share/cats.dgc	(revision 6b3be72395bfc594673b8184d6a7624e3800b47d)
@@ -0,0 +1,696 @@
+ADJ/DcNpCaGp
+ADJ/DcNpCd
+ADJ/DcNpCgl
+ADJ/DcNpCi
+ADJ/DcNpCnavGaifn
+ADJ/DcNpCnvGp
+ADJ/DcNsCaGi
+ADJ/DcNsCaGpa
+ADJ/DcNsCaiGf
+ADJ/DcNsCavGf
+ADJ/DcNsCdGpain
+ADJ/DcNsCgdlGf
+ADJ/DcNsCgGpain
+ADJ/DcNsCilGpain
+ADJ/DcNsCnavGn
+ADJ/DcNsCnvGpai
+ADJ/DpNpCaGp
+ADJ/DpNpCd
+ADJ/DpNpCgl
+ADJ/DpNpCi
+ADJ/DpNpCnavGaifn
+ADJ/DpNpCnvGp
+ADJ/DpNsCaGi
+ADJ/DpNsCaGpa
+ADJ/DpNsCaiGf
+ADJ/DpNsCavGf
+ADJ/DpNsCdGpain
+ADJ/DpNsCgdlGf
+ADJ/DpNsCgGpain
+ADJ/DpNsCilGpain
+ADJ/DpNsCnavGn
+ADJ/DpNsCnvGpai
+ADJ/DsNpCaGp
+ADJ/DsNpCd
+ADJ/DsNpCgl
+ADJ/DsNpCi
+ADJ/DsNpCnavGaifn
+ADJ/DsNpCnvGp
+ADJ/DsNsCaGi
+ADJ/DsNsCaGpa
+ADJ/DsNsCaiGf
+ADJ/DsNsCavGf
+ADJ/DsNsCdGpain
+ADJ/DsNsCgdlGf
+ADJ/DsNsCgGpain
+ADJ/DsNsCilGpain
+ADJ/DsNsCnavGn
+ADJ/DsNsCnvGpai
+ADJNUM/NpCaGp
+ADJNUM/NpCd
+ADJNUM/NpCgl
+ADJNUM/NpCi
+ADJNUM/NpCnavGaifn
+ADJNUM/NpCnvGp
+ADJNUM/NsCaGi
+ADJNUM/NsCaGpa
+ADJNUM/NsCaiGf
+ADJNUM/NsCavGf
+ADJNUM/NsCdGpain
+ADJNUM/NsCgdlGf
+ADJNUM/NsCgGpain
+ADJNUM/NsCilGpain
+ADJNUM/NsCnavGn
+ADJNUM/NsCnvGpai
+ADJPAP/NpCaGp
+ADJPAP/NpCd
+ADJPAP/NpCgl
+ADJPAP/NpCi
+ADJPAP/NpCnavGaifn
+ADJPAP/NpCnvGp
+ADJPAP/NsCaGi
+ADJPAP/NsCaGpa
+ADJPAP/NsCaiGf
+ADJPAP/NsCavGf
+ADJPAP/NsCdGpain
+ADJPAP/NsCgdlGf
+ADJPAP/NsCgGpain
+ADJPAP/NsCilGpain
+ADJPAP/NsCnavGn
+ADJPAP/NsCnvGpai
+ADJPP/NpCaGp
+ADJPP/NpCd
+ADJPP/NpCgl
+ADJPP/NpCi
+ADJPP/NpCnavGaifn
+ADJPP/NpCnvGp
+ADJPP/NsCaGi
+ADJPP/NsCaGpa
+ADJPP/NsCaiGf
+ADJPP/NsCavGf
+ADJPP/NsCdGpain
+ADJPP/NsCgdlGf
+ADJPP/NsCgGpain
+ADJPP/NsCilGpain
+ADJPP/NsCnavGn
+ADJPP/NsCnvGpai
+ADJPRO/NpCaGp
+ADJPRO/NpCd
+ADJPRO/NpCgl
+ADJPRO/NpCi
+ADJPRO/NpCnavGaifn
+ADJPRO/NpCnvGp
+ADJPRO/NsCaGi
+ADJPRO/NsCaGpa
+ADJPRO/NsCaiGf
+ADJPRO/NsCavGf
+ADJPRO/NsCdGpain
+ADJPRO/NsCgdlGf
+ADJPRO/NsCgGpain
+ADJPRO/NsCilGpain
+ADJPRO/NsCnavGn
+ADJPRO/NsCnvGpai
+ADJPRO/ZdNpCaGp
+ADJPRO/ZdNpCd
+ADJPRO/ZdNpCgl
+ADJPRO/ZdNpCi
+ADJPRO/ZdNpCnavGaifn
+ADJPRO/ZdNpCnvGp
+ADJPRO/ZdNsCaGi
+ADJPRO/ZdNsCaGpa
+ADJPRO/ZdNsCaiGf
+ADJPRO/ZdNsCavGf
+ADJPRO/ZdNsCdGpain
+ADJPRO/ZdNsCgdlGf
+ADJPRO/ZdNsCgGpain
+ADJPRO/ZdNsCilGpain
+ADJPRO/ZdNsCnavGn
+ADJPRO/ZdNsCnvGpai
+ADJPRO/ZgNpCaGp
+ADJPRO/ZgNpCd
+ADJPRO/ZgNpCgl
+ADJPRO/ZgNpCi
+ADJPRO/ZgNpCnavGaifn
+ADJPRO/ZgNpCnvGp
+ADJPRO/ZgNsCaGi
+ADJPRO/ZgNsCaGpa
+ADJPRO/ZgNsCaiGf
+ADJPRO/ZgNsCavGf
+ADJPRO/ZgNsCdGpain
+ADJPRO/ZgNsCgdlGf
+ADJPRO/ZgNsCgGpain
+ADJPRO/ZgNsCilGpain
+ADJPRO/ZgNsCnavGn
+ADJPRO/ZgNsCnvGpai
+ADJPRO/ZiNpCaGp
+ADJPRO/ZiNpCd
+ADJPRO/ZiNpCgl
+ADJPRO/ZiNpCi
+ADJPRO/ZiNpCnavGaifn
+ADJPRO/ZiNpCnvGp
+ADJPRO/ZiNsCaGi
+ADJPRO/ZiNsCaGpa
+ADJPRO/ZiNsCaiGf
+ADJPRO/ZiNsCavGf
+ADJPRO/ZiNsCdGpain
+ADJPRO/ZiNsCgdlGf
+ADJPRO/ZiNsCgGpain
+ADJPRO/ZiNsCilGpain
+ADJPRO/ZiNsCnavGn
+ADJPRO/ZiNsCnvGpai
+ADJPRO/ZnNpCaGp
+ADJPRO/ZnNpCd
+ADJPRO/ZnNpCgl
+ADJPRO/ZnNpCi
+ADJPRO/ZnNpCnavGaifn
+ADJPRO/ZnNpCnvGp
+ADJPRO/ZnNsCaGi
+ADJPRO/ZnNsCaGpa
+ADJPRO/ZnNsCaiGf
+ADJPRO/ZnNsCavGf
+ADJPRO/ZnNsCdGpain
+ADJPRO/ZnNsCgdlGf
+ADJPRO/ZnNsCgGpain
+ADJPRO/ZnNsCilGpain
+ADJPRO/ZnNsCnavGn
+ADJPRO/ZnNsCnvGpai
+ADJPRO/ZqNpCaGp
+ADJPRO/ZqNpCd
+ADJPRO/ZqNpCgl
+ADJPRO/ZqNpCi
+ADJPRO/ZqNpCnavGaifn
+ADJPRO/ZqNpCnvGp
+ADJPRO/ZqNsCaGi
+ADJPRO/ZqNsCaGpa
+ADJPRO/ZqNsCaiGf
+ADJPRO/ZqNsCavGf
+ADJPRO/ZqNsCdGpain
+ADJPRO/ZqNsCgdlGf
+ADJPRO/ZqNsCgGpain
+ADJPRO/ZqNsCilGpain
+ADJPRO/ZqNsCnavGn
+ADJPRO/ZqNsCnvGpai
+ADJPRO/ZqrNpCaGp
+ADJPRO/ZqrNpCd
+ADJPRO/ZqrNpCgl
+ADJPRO/ZqrNpCi
+ADJPRO/ZqrNpCnavGaifn
+ADJPRO/ZqrNpCnvGp
+ADJPRO/ZqrNsCaGi
+ADJPRO/ZqrNsCaGpa
+ADJPRO/ZqrNsCaiGf
+ADJPRO/ZqrNsCavGf
+ADJPRO/ZqrNsCdGpain
+ADJPRO/ZqrNsCgdlGf
+ADJPRO/ZqrNsCgGpain
+ADJPRO/ZqrNsCilGpain
+ADJPRO/ZqrNsCnavGn
+ADJPRO/ZqrNsCnvGpai
+ADJPRO/ZsNpCaGp
+ADJPRO/ZsNpCd
+ADJPRO/ZsNpCgl
+ADJPRO/ZsNpCi
+ADJPRO/ZsNpCnavGaifn
+ADJPRO/ZsNpCnvGp
+ADJPRO/ZsNsCaGi
+ADJPRO/ZsNsCaGpa
+ADJPRO/ZsNsCaiGf
+ADJPRO/ZsNsCavGf
+ADJPRO/ZsNsCdGpain
+ADJPRO/ZsNsCgdlGf
+ADJPRO/ZsNsCgGpain
+ADJPRO/ZsNsCilGpain
+ADJPRO/ZsNsCnavGn
+ADJPRO/ZsNsCnvGpai
+ADJPRP/NpCaGp
+ADJPRP/NpCd
+ADJPRP/NpCgl
+ADJPRP/NpCi
+ADJPRP/NpCnavGaifn
+ADJPRP/NpCnvGp
+ADJPRP/NsCaGi
+ADJPRP/NsCaGpa
+ADJPRP/NsCaiGf
+ADJPRP/NsCavGf
+ADJPRP/NsCdGpain
+ADJPRP/NsCgdlGf
+ADJPRP/NsCgGpain
+ADJPRP/NsCilGpain
+ADJPRP/NsCnavGn
+ADJPRP/NsCnvGpai
+ADVANP
+ADV/Dc
+ADV/Dp
+ADV/Ds
+ADVNUM
+ADVPRO
+ADVPRO/Zd
+ADVPRO/Zi
+ADVPRO/Zn
+ADVPRO/Zq
+ADVPRO/Zqr
+ADVPRO/Zr
+ADVPRP
+APP
+BYC/Vb
+BYC/VpMcNpP1Gaifn
+BYC/VpMcNpP1Gp
+BYC/VpMcNpP2Gaifn
+BYC/VpMcNpP2Gp
+BYC/VpMcNpP3Gaifn
+BYC/VpMcNpP3Gp
+BYC/VpMcNsP1Gf
+BYC/VpMcNsP1Gpai
+BYC/VpMcNsP2Gf
+BYC/VpMcNsP2Gpai
+BYC/VpMcNsP3Gf
+BYC/VpMcNsP3Gn
+BYC/VpMcNsP3Gpai
+BYC/VpMdTaNpP1Gaifn
+BYC/VpMdTaNpP1Gp
+BYC/VpMdTaNpP2Gaifn
+BYC/VpMdTaNpP2Gp
+BYC/VpMdTaNpP3Gaifn
+BYC/VpMdTaNpP3Gp
+BYC/VpMdTaNsP1Gf
+BYC/VpMdTaNsP1Gpai
+BYC/VpMdTaNsP2Gf
+BYC/VpMdTaNsP2Gpai
+BYC/VpMdTaNsP3Gf
+BYC/VpMdTaNsP3Gn
+BYC/VpMdTaNsP3Gpai
+BYC/VpMdTrfNpP1
+BYC/VpMdTrfNpP2
+BYC/VpMdTrfNpP3
+BYC/VpMdTrfNsP1
+BYC/VpMdTrfNsP2
+BYC/VpMdTrfNsP3
+BYC/VpMiNpP1
+BYC/VpMiNpP2
+BYC/VpMiNsP2
+CONJ
+EXCL
+N/GaNpCa
+N/GaNpCd
+N/GaNpCg
+N/GaNpCi
+N/GaNpCl
+N/GaNpCn
+N/GaNpCv
+N/GaNsCa
+N/GaNsCd
+N/GaNsCg
+N/GaNsCi
+N/GaNsCl
+N/GaNsCn
+N/GaNsCv
+N/GfNpCa
+N/GfNpCd
+N/GfNpCg
+N/GfNpCi
+N/GfNpCl
+N/GfNpCn
+N/GfNpCv
+N/GfNsCa
+N/GfNsCd
+N/GfNsCg
+N/GfNsCi
+N/GfNsCl
+N/GfNsCn
+N/GfNsCv
+N/GiNpCa
+N/GiNpCd
+N/GiNpCg
+N/GiNpCi
+N/GiNpCl
+N/GiNpCn
+N/GiNpCv
+N/GiNsCa
+N/GiNsCd
+N/GiNsCg
+N/GiNsCi
+N/GiNsCl
+N/GiNsCn
+N/GiNsCv
+N/GnNpCa
+N/GnNpCd
+N/GnNpCg
+N/GnNpCi
+N/GnNpCl
+N/GnNpCn
+N/GnNpCv
+N/GnNsCa
+N/GnNsCd
+N/GnNsCg
+N/GnNsCi
+N/GnNsCl
+N/GnNsCn
+N/GnNsCv
+N/G?NpCa
+N/G*NpCa
+N/G?NpCd
+N/G*NpCd
+N/G?NpCg
+N/G*NpCg
+N/G?NpCi
+N/G*NpCi
+N/G?NpCl
+N/G*NpCl
+N/G?NpCn
+N/G*NpCn
+N/G?NpCv
+N/G*NpCv
+N/G?NsCa
+N/G?NsCd
+N/G?NsCg
+N/G?NsCi
+N/G?NsCl
+N/G?NsCn
+N/G?NsCv
+N/GpNpCa
+N/GpNpCd
+N/GpNpCg
+N/GpNpCi
+N/GpNpCl
+N/GpNpCn
+N/GpNpCv
+N/GpNsCa
+N/GpNsCd
+N/GpNsCg
+N/GpNsCi
+N/GpNsCl
+N/GpNsCn
+N/GpNsCv
+NPRO/ZdGnNsCa
+NPRO/ZdGnNsCd
+NPRO/ZdGnNsCg
+NPRO/ZdGnNsCi
+NPRO/ZdGnNsCl
+NPRO/ZdGnNsCn
+NPRO/ZgGnNsCa
+NPRO/ZgGnNsCd
+NPRO/ZgGnNsCg
+NPRO/ZgGnNsCi
+NPRO/ZgGnNsCl
+NPRO/ZgGnNsCn
+NPRO/ZgGpNpCa
+NPRO/ZgGpNpCd
+NPRO/ZgGpNpCg
+NPRO/ZgGpNpCi
+NPRO/ZgGpNpCl
+NPRO/ZgGpNpCn
+NPRO/ZiGnNsCa
+NPRO/ZiGnNsCd
+NPRO/ZiGnNsCg
+NPRO/ZiGnNsCi
+NPRO/ZiGnNsCl
+NPRO/ZiGnNsCn
+NPRO/ZiGpNsCa
+NPRO/ZiGpNsCd
+NPRO/ZiGpNsCg
+NPRO/ZiGpNsCi
+NPRO/ZiGpNsCl
+NPRO/ZiGpNsCn
+NPRO/ZnGnNsCa
+NPRO/ZnGnNsCd
+NPRO/ZnGnNsCg
+NPRO/ZnGnNsCi
+NPRO/ZnGnNsCl
+NPRO/ZnGnNsCn
+NPRO/ZnGpNsCa
+NPRO/ZnGpNsCd
+NPRO/ZnGpNsCg
+NPRO/ZnGpNsCi
+NPRO/ZnGpNsCl
+NPRO/ZnGpNsCn
+NPRO/ZpGaifnNpCa
+NPRO/ZpGaifnNpCd
+NPRO/ZpGaifnNpCg
+NPRO/ZpGaifnNpCi
+NPRO/ZpGaifnNpCl
+NPRO/ZpGaifnNpCn
+NPRO/ZpGfNsCa
+NPRO/ZpGfNsCd
+NPRO/ZpGfNsCg
+NPRO/ZpGfNsCi
+NPRO/ZpGfNsCl
+NPRO/ZpGfNsCn
+NPRO/ZpGnNsCa
+NPRO/ZpGnNsCd
+NPRO/ZpGnNsCg
+NPRO/ZpGnNsCi
+NPRO/ZpGnNsCl
+NPRO/ZpGnNsCn
+NPRO/ZpG*NpCa
+NPRO/ZpG*NpCd
+NPRO/ZpG*NpCg
+NPRO/ZpG*NpCi
+NPRO/ZpG*NpCl
+NPRO/ZpG*NpCn
+NPRO/ZpG*NsCa
+NPRO/ZpG*NsCd
+NPRO/ZpG*NsCg
+NPRO/ZpG*NsCi
+NPRO/ZpG*NsCl
+NPRO/ZpG*NsCn
+NPRO/ZpGpaiNsCa
+NPRO/ZpGpaiNsCd
+NPRO/ZpGpaiNsCg
+NPRO/ZpGpaiNsCi
+NPRO/ZpGpaiNsCl
+NPRO/ZpGpaiNsCn
+NPRO/ZpGpNpCa
+NPRO/ZpGpNpCd
+NPRO/ZpGpNpCg
+NPRO/ZpGpNpCi
+NPRO/ZpGpNpCl
+NPRO/ZpGpNpCn
+NPRO/ZqGnNsCa
+NPRO/ZqGnNsCd
+NPRO/ZqGnNsCg
+NPRO/ZqGnNsCi
+NPRO/ZqGnNsCl
+NPRO/ZqGnNsCn
+NPRO/ZqGpNsCa
+NPRO/ZqGpNsCd
+NPRO/ZqGpNsCg
+NPRO/ZqGpNsCi
+NPRO/ZqGpNsCl
+NPRO/ZqGpNsCn
+NPRO/ZqrGnNsCa
+NPRO/ZqrGnNsCd
+NPRO/ZqrGnNsCg
+NPRO/ZqrGnNsCi
+NPRO/ZqrGnNsCl
+NPRO/ZqrGnNsCn
+NPRO/ZqrGpNsCa
+NPRO/ZqrGpNsCd
+NPRO/ZqrGpNsCg
+NPRO/ZqrGpNsCi
+NPRO/ZqrGpNsCl
+NPRO/ZqrGpNsCn
+NPRO/ZxG*N*Ca
+NPRO/ZxG*N*Cd
+NPRO/ZxG*N*Cg
+NPRO/ZxG*N*Ci
+NPRO/ZxG*N*Cl
+NUMCOL/Ca
+NUMCOL/Cd
+NUMCOL/Cg
+NUMCOL/Ci
+NUMCOL/Cl
+NUMCOL/Cn
+NUMCRD/Ca
+NUMCRD/CaGaifn
+NUMCRD/CaGain
+NUMCRD/CaGf
+NUMCRD/CaGp
+NUMCRD/Cd
+NUMCRD/Cg
+NUMCRD/Ci
+NUMCRD/CiGf
+NUMCRD/CiGpain
+NUMCRD/Cl
+NUMCRD/Cn
+NUMCRD/CnGaifn
+NUMCRD/CnGain
+NUMCRD/CnGf
+NUMCRD/CnGp
+NUMCRD/ZiCaGaifn
+NUMCRD/ZiCaGain
+NUMCRD/ZiCaGf
+NUMCRD/ZiCaGp
+NUMCRD/ZiCd
+NUMCRD/ZiCg
+NUMCRD/ZiCi
+NUMCRD/ZiCiGf
+NUMCRD/ZiCiGpain
+NUMCRD/ZiCl
+NUMCRD/ZiCnGaifn
+NUMCRD/ZiCnGain
+NUMCRD/ZiCnGf
+NUMCRD/ZiCnGp
+NUMCRD/ZqiCaGaifn
+NUMCRD/ZqiCaGp
+NUMCRD/ZqiCd
+NUMCRD/ZqiCg
+NUMCRD/ZqiCi
+NUMCRD/ZqiCl
+NUMCRD/ZqiCnGaifn
+NUMCRD/ZqiCnGp
+NUMORD/NpCaGp
+NUMORD/NpCd
+NUMORD/NpCgl
+NUMORD/NpCi
+NUMORD/NpCnavGaifn
+NUMORD/NpCnvGp
+NUMORD/NsCaGi
+NUMORD/NsCaGpa
+NUMORD/NsCaiGf
+NUMORD/NsCavGf
+NUMORD/NsCdGpain
+NUMORD/NsCgdlGf
+NUMORD/NsCgGpain
+NUMORD/NsCilGpain
+NUMORD/NsCnavGn
+NUMORD/NsCnvGpai
+NUMPAR
+NUMPAR/Dc
+NUMPAR/Dp
+NUMPAR/Ds
+NUMPAR/Ns
+NUMPAR/NsGf
+NUMPAR/NsGpain
+NV/Ca
+NV/Cd
+NV/Cg
+NV/Ci
+NV/Cl
+NV/Cn
+ONO
+P
+PART
+P/Ca
+P/Cai
+P/Cal
+P/Cd
+P/Cg
+P/Cga
+P/Cgai
+P/Cgd
+P/Cgi
+P/Ci
+P/Cl
+PPRO/Zp
+V/AiVb
+V/AiViTa
+V/AiVpMcNpP1Gaifn
+V/AiVpMcNpP1Gp
+V/AiVpMcNpP2Gaifn
+V/AiVpMcNpP2Gp
+V/AiVpMcNpP3Gaifn
+V/AiVpMcNpP3Gp
+V/AiVpMcNsP1Gf
+V/AiVpMcNsP1Gpai
+V/AiVpMcNsP2Gf
+V/AiVpMcNsP2Gpai
+V/AiVpMcNsP3Gf
+V/AiVpMcNsP3Gn
+V/AiVpMcNsP3Gpai
+V/AiVpMdTaNpP1Gaifn
+V/AiVpMdTaNpP1Gp
+V/AiVpMdTaNpP2Gaifn
+V/AiVpMdTaNpP2Gp
+V/AiVpMdTaNpP3Gaifn
+V/AiVpMdTaNpP3Gp
+V/AiVpMdTaNsP1Gf
+V/AiVpMdTaNsP1Gpai
+V/AiVpMdTaNsP2Gf
+V/AiVpMdTaNsP2Gpai
+V/AiVpMdTaNsP3Gf
+V/AiVpMdTaNsP3Gn
+V/AiVpMdTaNsP3Gpai
+V/AiVpMdTrfNpP1
+V/AiVpMdTrfNpP2
+V/AiVpMdTrfNpP3
+V/AiVpMdTrfNsP1
+V/AiVpMdTrfNsP2
+V/AiVpMdTrfNsP3
+V/AiVpMiNpP1
+V/AiVpMiNpP2
+V/AiVpMiNsP2
+V/ApVb
+V/ApViTa
+V/ApVpMcNpP1Gaifn
+V/ApVpMcNpP1Gp
+V/ApVpMcNpP2Gaifn
+V/ApVpMcNpP2Gp
+V/ApVpMcNpP3Gaifn
+V/ApVpMcNpP3Gp
+V/ApVpMcNsP1Gf
+V/ApVpMcNsP1Gpai
+V/ApVpMcNsP2Gf
+V/ApVpMcNsP2Gpai
+V/ApVpMcNsP3Gf
+V/ApVpMcNsP3Gn
+V/ApVpMcNsP3Gpai
+V/ApVpMdTaNpP1Gaifn
+V/ApVpMdTaNpP1Gp
+V/ApVpMdTaNpP2Gaifn
+V/ApVpMdTaNpP2Gp
+V/ApVpMdTaNpP3Gaifn
+V/ApVpMdTaNpP3Gp
+V/ApVpMdTaNsP1Gf
+V/ApVpMdTaNsP1Gpai
+V/ApVpMdTaNsP2Gf
+V/ApVpMdTaNsP2Gpai
+V/ApVpMdTaNsP3Gf
+V/ApVpMdTaNsP3Gn
+V/ApVpMdTaNsP3Gpai
+V/ApVpMdTrfNpP1
+V/ApVpMdTrfNpP2
+V/ApVpMdTrfNpP3
+V/ApVpMdTrfNsP1
+V/ApVpMdTrfNsP2
+V/ApVpMdTrfNsP3
+V/ApVpMiNpP1
+V/ApVpMiNpP2
+V/ApVpMiNsP2
+V/GiVb
+V/GiViTa
+V/GiVpMcNpP1Gaifn
+V/GiVpMcNpP1Gp
+V/GiVpMcNpP2Gaifn
+V/GiVpMcNpP2Gp
+V/GiVpMcNpP3Gaifn
+V/GiVpMcNpP3Gp
+V/GiVpMcNsP1Gf
+V/GiVpMcNsP1Gpai
+V/GiVpMcNsP2Gf
+V/GiVpMcNsP2Gpai
+V/GiVpMcNsP3Gf
+V/GiVpMcNsP3Gn
+V/GiVpMcNsP3Gpai
+V/GiVpMdTaNpP1Gaifn
+V/GiVpMdTaNpP1Gp
+V/GiVpMdTaNpP2Gaifn
+V/GiVpMdTaNpP2Gp
+V/GiVpMdTaNpP3Gaifn
+V/GiVpMdTaNpP3Gp
+V/GiVpMdTaNsP1Gf
+V/GiVpMdTaNsP1Gpai
+V/GiVpMdTaNsP2Gf
+V/GiVpMdTaNsP2Gpai
+V/GiVpMdTaNsP3Gf
+V/GiVpMdTaNsP3Gn
+V/GiVpMdTaNsP3Gpai
+V/GiVpMdTrfNpP1
+V/GiVpMdTrfNpP2
+V/GiVpMdTrfNpP3
+V/GiVpMdTrfNsP1
+V/GiVpMdTrfNsP2
+V/GiVpMdTrfNsP3
+V/GiVpMiNpP1
+V/GiVpMiNpP2
+V/GiVpMiNsP2
+VNI
Index: app/share/gram.dgc
===================================================================
--- app/share/gram.dgc	(revision 6b3be72395bfc594673b8184d6a7624e3800b47d)
+++ app/share/gram.dgc	(revision 6b3be72395bfc594673b8184d6a7624e3800b47d)
@@ -0,0 +1,122 @@
+#FLAG REL
+
+#UP REL 
+
+#ORDER * pcmpl
+#ORDER ..
+#ORDER subj .. * ..  cmpl
+#ORDER refl .. *
+#ORDER * refl
+
+#CONSTR	cmpl_g	 => ~cmpl_a
+#CONSTR	cmpl_inf => ~(cmpl_g|cmpl_d|cmpl_a|cmpl_p|cmpl_ze|cmpl_s)
+#CONSTR subj_pred => subj
+#constr cmpl_pred => cmpl
+
+
+
+#subj
+ROLE subj         # deklaracja roli (typ zaleznosci) podmiot
+AGR subj N        # zgodnosc podrzednika z nadrzednikiem co do liczby
+AGR subj G        # zgodnosc podrzednika z nadrzednikiem co do rodzaju
+GOV subj */Cn     # wymaganie by podrzednik byl w mianowniku
+
+# pary kategorii, jakie mozna polaczyc zaleznoscia typu podmiot
+
+#	nadrzednik		podrzednik
+LINK	V/VpP3,BYC/VpP3		N,NPRO		subj
+
+# (przecinek znaczy lub)
+
+ROLE cmpl_ga	# dopelnienie w bierniku/dopelniaczu
+ROLE cmpl_d     #             w celowniku
+ROLE cmpl_i     #             w narzedniku
+ROLE cmpl_inf   #             w bezokoliczniku
+ROLE cmpl_s     #             bedace zdaniem
+ROLE cmpl_ze    #             bedace zdaniem poprzedzonym 'ze'
+ROLE aux        
+ROLE mod
+ROLE prep
+ROLE pcmpl
+ROLE ccmpl
+ROLE poss
+ROLE restr
+ROLE part
+
+
+AGR aux N
+AGR aux G
+
+AGR mod N
+AGR mod C
+AGR mod G
+
+AGR pcmpl C
+
+GOV	cmpl_ga	*/Cga
+GOV	cmpl_d	*/Cd
+GOV	cmpl_i	*/Ci
+GOV	poss	*/Cg
+
+SGL subj
+SGL cmpl_ga
+SGL cmpl_d
+SGL cmpl_i
+SGL cmpl_inf
+SGL aux
+SGL pcmpl
+SGL ccmpl
+SGL poss
+SGL restr
+
+REQ	P	pcmpl
+REQ	CONJ	ccmpl
+
+RIGHT pcmpl
+RIGHT ccmpl
+RIGHT cmpl_ze
+RIGHT poss
+
+
+#cmpl_*
+LINK	V,ADVPRP,ADVANP,ADJPRP,ADJPAP,NV	N,NPRO			cmpl_ga
+LINK	V,ADVPRP,ADVANP,ADJPRP,ADJPAP,NV	N,NPRO			cmpl_d
+LINK	V,ADVPRP,ADVANP,ADJPRP,ADJPAP,NV	N,NPRO			cmpl_i
+LINK	V,ADVPRP,ADVANP,ADJPRP,ADJPAP,NV	V/Vb			cmpl_inf
+LINK	V,ADVPRP,ADVANP,ADJPRP,ADJPAP,NV	CONJ			cmpl_ze
+
+#aux
+#czas przyszly analityczny
+LINK	BYC/VpMdTf				V/AiVpP3,V/AiVb		aux
+#czas zaprzeszly(?)
+LINK	BYC/VpMc				V/VpP3			aux
+#BYC jako lacznik w (jest bialy, jest zaszlachtowany, jest pilotem)
+LINK	BYC					ADJPAP/Cn,ADJ/Cn,N/Ci	aux
+
+#mod
+
+LINK	V	ADV,ADVPRP,ADVANP,ADVPRO	mod
+LINK	N,NV	ADJ,ADJPAP,ADJPRP,ADJPRO	mod
+
+
+#prep
+LINK	N,V	P	prep
+
+#pcmpl
+LINK	P	N,NV	pcmpl
+
+
+#poss
+LINK	N	N,NV,NPRO	poss
+
+
+#ccmpl
+LINK	CONJ	V/Vp	ccmpl
+
+
+#restr
+LINK	ADJ	ADV	restr
+
+
+#part
+LINK	V	PART	part
Index: app/share/weights.kor
===================================================================
--- app/share/weights.kor	(revision 6b3be72395bfc594673b8184d6a7624e3800b47d)
+++ app/share/weights.kor	(revision 6b3be72395bfc594673b8184d6a7624e3800b47d)
@@ -0,0 +1,21 @@
+%stdcor	1
+%xchg	1
+¿  rz 0.5
+ch h  0.5
+u  ó  0.5
+u  o  0.75
+om ¹  0.5
+om a  0.75
+en ê  0.5
+en ê  0.75
+a  ¹  0.25
+c  æ  0.25
+e  ê  0.25
+l  ³  0.25
+n  ñ  0.25
+o  ó  0.25
+s  ¶  0.25
+z  ¿  0.25
+z  Œ  0.25
+x  Œ  0.30
+
Index: app/src/dgp/attr.pm
===================================================================
--- app/src/dgp/attr.pm	(revision 0214596e4d70b25df913a24f19d50cb0f1b4a69f)
+++ 	(revision )
@@ -1,133 +1,0 @@
-package attr;
-
-use locale;
-use strict;
-
-use Data::Dumper;
-
-our $pos_re    = qr/(?:[[:upper:]]+)/;
-our $attr_re   = qr/(?:[[:upper:]]+)/;
-our $val_re    = qr/(?:[[:lower:][:digit:]+?!*-]|<[^>\n]+>)/;
-our $av_re     = qr/(?:$attr_re$val_re+)/;
-our $avlist_re = qr/(?:$av_re+)/;
-our $cat_re    = qr/(?:$pos_re(?:\/$avlist_re)?)/;
-
-sub match(\@\@)
-{
-    my ($cat1,$avs1)= @{shift @_};
-    my ($cat2,$avs2)= @{shift @_};
-
-    if($cat1 ne $cat2 && $cat1 ne '*' && $cat2 ne '*')
-    {
-	return 0; 
-    }
-    else
-    {
-      ATTR:for my $attr (keys %$avs1)
-      {
-	  if(exists $avs2->{$attr})
-	  {
-	      for my $val (keys %{$avs1->{$attr}})
-	      {
-		  next ATTR if $avs2->{$attr}->{$val};
-	      }
-	      return 0;
-	      last ATTR;
-	  }
-      }
-    }
-
-    return 1;
-}
-
-sub agree(\@\@$)
-{
-    my $val1 = $_[0]->[1]->{$_[2]};
-    my $val2 = $_[1]->[1]->{$_[2]};
-
-    return 1 if !$val1 || !$val2;
-
-    for my $v (keys %$val1)
-    {
-	return 1 if exists $val2->{$v};
-    }
-    return 0;
-}
-
-# funkcja parse
-# arg:     deskrypcja
-# warto¶æ: referencja do tablicy [<cat>, <avs>],
-#          gdzie <avs> jest referencja do hasza, zawierajacego pary
-#          atrybut=>hasz warto¶ci (pary warto¶æ=>1), czyli np.
-
-#         [
-#           'ADJ',
-#           {
-#             'KOLEDZY' => {
-#                            '<alojzy>' => 1,
-#                            '<karol>' => 1,
-#                            '<jan>' => 1
-#                          },
-#             'C' => {
-#                      'p' => 1,
-#                      'a' => 1,
-#                      'i' => 1
-#                    },
-#             'N' => {
-#                      'p' => 1
-#                    }
-#           }
-#         ];
-
-sub parse ($)
-{
-    my ($dstr)=@_;
-    my $avs={};
-    my ($cat,$attrlist) = split '/', $dstr;
-  ATTR:
-#    while( $attrlist =~ /([[:upper:]]+)((?:[[:lower:][:digit:]+?!*-]|<[^>\n]+>)+)/g )
-    while( $attrlist =~ /($attr_re)($val_re+)/g )
-    {
-	my ($attrstr,$valstr)=($1,$2);
-	my %vals;
-	while($valstr =~ /$val_re/g)
-	{
-	    my $val = $&;
-	    next ATTR if $val eq '*';
-	    $val =~ s/^<([[:lower:]])>$/$1/;
-	    $vals{$val}=1;
-	}
-	
-	$avs->{$attrstr} = \%vals; # dlaczego to dziala? %vals jest lokalne
-    }
-    [$cat, $avs];
-}
-
-# funkcja unparse
-# arg:     jak warto¶æ parse
-# warto¶æ: deskrypcja - napis
-
-sub unparse (\@)
-{
-    my ($cat,$avs)= @{shift @_};
-    my $dstr=$cat;
-    my @attrs = keys %$avs;
-    if(@attrs)
-    {
-	$dstr .= '/';
-	for my $attr ( sort @attrs )
-	{
-	    $dstr .= $attr . (join '', sort keys %{$avs->{$attr}});
-	}
-    }
-    $dstr;
-}
-
-
-sub canonize ($)
-{
-    unparse @{parse @_[0]} ;
-}
-
-
-1;
Index: app/src/dgp/canonize
===================================================================
--- app/src/dgp/canonize	(revision 0214596e4d70b25df913a24f19d50cb0f1b4a69f)
+++ app/src/dgp/canonize	(revision 6b3be72395bfc594673b8184d6a7624e3800b47d)
@@ -6,9 +6,11 @@
 #author:	Tomasz Obrebski
 
+use lib "/usr/local/lib/utt";
+use lib "ENV{HOME}/.local/lib/utt";
+
 use strict;
 use Getopt::Long;
 use attr;
-#use File::HomeDir;
-#use lib "$ENV{HOME}/.utt/lib/perl";
+
 
 my $help;
Index: app/src/dgp/dgc
===================================================================
--- app/src/dgp/dgc	(revision 12d8443b2c87b3744c2563b0c25c44f8350df006)
+++ app/src/dgp/dgc	(revision 6b3be72395bfc594673b8184d6a7624e3800b47d)
@@ -7,10 +7,10 @@
 
 # wymaga niejawnie programu canonize!!!!
-#use lib "ENV{HOME}/.utt/lib/perl";
+use lib "/usr/local/lib/utt";
+use lib "ENV{HOME}/.local/lib/utt";
 
 use strict;
 use Getopt::Long;
 use Data::Dumper;
-
 use attr;
 use File::HomeDir;
Index: app/src/dgp/seg.rb
===================================================================
--- app/src/dgp/seg.rb	(revision ff0fc991d727551b858d38e744ef5e936f54278a)
+++ 	(revision )
@@ -1,31 +1,0 @@
-
-class Seg
-  
-  def initialize(s="")
-    @line=s
-    self
-  end
-
-  def to_s
-    @line.chomp
-  end
-
-  def set(s)
-    @line=s
-    self
-  end
-
-  def field(key)
-    if key.class==Fixnum
-      @line.split[key-1]
-    elsif key.class==String
-      @line =~ /\s#{key}:(\S+)/; $1
-    end
-  end
-  alias [] field
-
-  def fields
-    @line.split
-  end
-
-end
Index: app/src/dgp/tre.rb
===================================================================
--- app/src/dgp/tre.rb	(revision cfed5c16437f8fdaa6995493b975db89abf458c2)
+++ app/src/dgp/tre.rb	(revision 6b3be72395bfc594673b8184d6a7624e3800b47d)
@@ -1,3 +1,3 @@
-#!/usr/bin/ruby
+#!/usr/bin/ruby -I /usr/local/lib/utt -I ~/.local/lib/utt
 
 require 'getoptlong'
@@ -61,5 +61,6 @@
 end
 
-load 'seg.rb'
+require File.expand_path(File.dirname(__FILE__) + "../lib/utt/seg.rb")
+#require 'seg.rb'
 
 $dgpsep=';'
Index: app/src/grp/grp
===================================================================
--- app/src/grp/grp	(revision f5d3b20097c280ad859675079ea5c7bc804b9815)
+++ app/src/grp/grp	(revision 6b3be72395bfc594673b8184d6a7624e3800b47d)
@@ -14,5 +14,4 @@
 
 my $systemconfigfile="/usr/local/etc/utt/grp.conf";
-#my $userconfigfile="$ENV{'HOME'}/.utt/grp.conf";
 my $userconfigfile=home()."/.utt/grp.conf";
 
Index: app/src/mar/mar
===================================================================
--- app/src/mar/mar	(revision 756213194ab50cc6e0ef6edfb9065ff3219f5372)
+++ app/src/mar/mar	(revision 6b3be72395bfc594673b8184d6a7624e3800b47d)
@@ -6,8 +6,11 @@
 #author:	Marcin Walas
 
-#this program tags the tokenized file with given tags 
+#this program tags the tokenized file with given tags
 #tags can be given in any order and configuration through the expression
 #which is one of the parametres of the script
 #contact: d287572@atos.wmid.amu.edu.pl, walasiek@gmail.com
+
+use lib "/usr/local/lib/utt";
+use lib "ENV{HOME}/.local/lib/utt";
 
 use strict;
Index: app/src/ser/ser
===================================================================
--- app/src/ser/ser	(revision f5d3b20097c280ad859675079ea5c7bc804b9815)
+++ app/src/ser/ser	(revision 6b3be72395bfc594673b8184d6a7624e3800b47d)
@@ -13,5 +13,4 @@
 my $LIB_DIR="/usr/local/lib/utt";
 my $systemconfigfile='/usr/local/etc/utt/ser.conf';
-#my $userconfigfile="$ENV{'HOME'}/.utt/ser.conf";
 my $userconfigfile=home()."/.utt/ser.conf";
 
