From 46a46821b37bc5e11065304c0e9494a667a66c25 Mon Sep 17 00:00:00 2001
From: Bartlomiej Niton <bartek.niton@gmail.com>
Date: Wed, 25 Jan 2017 16:07:01 +0100
Subject: [PATCH] Added preferable spejd config to resources directory.

---
 src/main/resources/spejd_config/config.ini |  320 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/main/resources/spejd_config/rules.sr   | 8103 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/main/resources/spejd_config/sample.cfg |  110 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 8533 insertions(+), 0 deletions(-)
 create mode 100644 src/main/resources/spejd_config/config.ini
 create mode 100644 src/main/resources/spejd_config/rules.sr
 create mode 100644 src/main/resources/spejd_config/sample.cfg

diff --git a/src/main/resources/spejd_config/config.ini b/src/main/resources/spejd_config/config.ini
new file mode 100644
index 0000000..9bd375c
--- /dev/null
+++ b/src/main/resources/spejd_config/config.ini
@@ -0,0 +1,320 @@
+#
+# FILES LOCATION
+# all paths in this file are relative to location of this config file, 
+# except for absolute paths 
+# (in UNIXes starting from '/', in Windows starting from '<letter>:\' or '\')
+#
+
+# a file containing Spejd's grammar
+# in this example file you can find the Spejd rules syntax explained
+rules = rules.sr
+
+# tagset used in grammar and input/output
+# see that file for details on used format
+tagset = sample.cfg
+
+#
+# PROCESSING CHAIN
+#
+
+# list of tools to be executed between reader and writer modules
+
+# for spejd with preprocessing with dictionary
+# (dictionary entries may be multiple - with different names after colon, see below)
+# processingChain = dictionary:example_dict spejd
+
+# spejd preceded with the pantera tagger (Spejd must have pantera support built in)
+# processingChain = pantera spejd
+
+# spejd alone (the default)
+processingChain = spejd
+
+# no tools (only reader and writer) - can be used as format converter
+# processingChain = 
+
+# number of threads to use, 0 means autodetect ( = number of detected cpus)
+maxThreads = 0
+
+#
+# INPUT
+#
+
+# inputType: auto|xcesAna|tei|txt
+# auto chooses reader basing on the file name / extension:
+#   - *.txt/*.txt.gz = txt
+#   - morph.xml/morph.xml.gz = xcesAna
+#   - ann_segmentation.xml/ann_segmentation.xml.gz = tei, without using morphosyntax
+#   - ann_morphosyntax.xml/ann_morphosyntax.xml.gz = tei, using morphosyntax
+# with txt and tei without morphosyntax the Morfeusz morphological analyzer is used (unless disabled)
+
+inputType = auto
+
+# encoding of input files (overrides any XML coding tags!)
+#
+# note: the acronymsAfter, acronymsBefore options, and contents of various files
+# such as ogonkifyFile, morfeusz disambiguation rules or dictionaries must be
+# in this encoding too.
+inputEncoding = UTF-8
+
+# regexp describing names of input files 
+# to look for when traversing directories given in command line
+# does not affect file names given explicitly in command line
+
+inputFiles = morph\.xml(\.gz)?|.*\.txt(\.gz)?|ann_morphosyntax\.xml(\.gz)?
+
+# to ignore any disambiguation found in input?
+
+ignoreDisamb = no
+
+# Spejd can use XML id attributes available in the input. Sometimes this may cause
+# problems (e.g. duplicate id values in the scope of file), so can be turned off
+ignoreIDs = no
+
+#
+# OUTPUT
+#
+
+# format of the output file(s): tei|xcesAna|null
+#       null = for testing only, does not write anything 
+
+outputType = tei
+
+# can interpretations deleted by Spejd be discarded at will (yes)
+# or should be preserved for the final output (no)? 
+
+discardDeleted = yes
+
+# the suffix to be added to the target file name
+
+outputSuffix = .xml
+
+# The core name of the output file. Depending on the output type
+# some infixes can be added between it and output suffix.
+# Caution: this option replaces the name of the input file.
+# With output suffix containing only extension equal to extension of 
+# the input file (e.g. .xml for the XML input file) spejd will
+# overwrite input files with output.
+# 
+# Leave empty or comment out to use the input file name instead.
+
+outputFilenameCore = ann
+
+# If set to 'yes' spejd will backup existing output files to <name>.bak
+
+backupExistingFiles = no
+
+# apply gzip compression to output?
+
+compressOutput = yes
+
+# put <f>'s in single line and omit empty sentences/paragraphs when writing tei?
+
+compactTeiOutput = no
+
+# NKJP (National Corpus of Polish) compatibility mode:
+# dont write <f name="interps"> and <fs type="lex"> in *_words.xml
+# assuming that there can be only one interpretation marked as "correct" for each token.
+# 
+# It is a user task to make sure that there will be no tokens with multiple
+# correct interpretations
+teiSingleSyntokInterp = yes
+
+# again, NKJP compatibility:
+# place group's heads information inside the <fs type"group">
+# as features instead of marking it as 'type' attribute of group's elements
+teiFsGroupHeads = yes
+
+# for backward compatibility with Spejd 1.2, it is probably easier to parse structures
+# written in bottom up order, starting from leafs to the root 
+# (all entities defined before referencing)
+teiBottomUpSyntacticStructures = no
+
+# DIAGNOSTICS
+
+# report progress every reportInterval seconds
+# use 0 to completely disable progress reports
+
+reportInterval = 5
+
+# more verbose reports?
+debug = no
+
+# mark which rule has deleted an interpretation?
+
+ruleMarking = no
+
+# are tag/tagset errors fatal?
+# If turned on, Spejd will try to its best to output only tags conforming the tagset,
+# but they may be useless.
+# This option exists only to preserve compatibility with older versions of Spejd, which
+# accepted incorrect rules. Please do not use when developing new grammars.
+#
+# !!! use at your own risk and don't report crashes when using this option !!!
+nonfatalTagErrors = no
+
+# if to silence the (nonfatal) tag errors?
+muffleTagWarnings = no
+
+# Disable correctness checks of tags in between rules execution?
+# If set, tags can be temporary incomplete or incorrect, but the usual validation
+# before writing is stil performed to make sure Spejd will output only
+# correct tags.
+# Not recommended for developing new grammars.
+tagErrorsOnlyOnTheEnd = no
+
+
+######################################################################
+# MODULE-SPECIFIC OPTIONS
+######################################################################
+
+
+# DICTIONARIES
+
+# list of files containing morphological dictionaries 
+# to be applied as "dictionary:example_dict" tool to the input
+# the format of lines of files is:
+# orthographic form,base (lexical) form:tag
+#
+# or:
+# ,base (lexical) form:some_parts_of_tag;condition
+#
+# In the first variant the orthographical form is used for matching words.
+# Tag definition is expanded (it may contain wildcards).
+#
+# In the second variant orthographic form is ommited. In that case a base form is used to match.
+# The tags of existing interpretations which match the base form are corrected/modified
+# according to the specified tag.
+# This variant allows the tag to be not full/complete, but only specifying some
+# of the attributes (some parts).
+# This variant also allows to specify conditions on tag that must
+# be meet to perform the modification. The condition has form of a partial tag, just like
+# in the "tag" section of modifying variant. A condition restricts modified interpretations to
+# that ones which have all values of the specified attributes among the specified values.
+# If an attribute is ommited in the specification it means that there are no restrictions
+# on this attribute value and it can be anything (including absence of value).
+# When a condition is empty (that means: there are no restrictions on any attribute),
+# a semicolon preceding it can be ommited and the format is:
+# ,base (lexical) form:some_parts_of_tag
+#
+# The above two variants of entries can be mixed.
+# All the entries with orthographic form are applied before applying any
+# of the entries without orth in the scope of a single 'dictionary:<name>' tool,
+# no matter in which file in this list they appear.
+#
+# The encoding of dictionary files must be the same as inputEncoding.
+#dictionary:example_dict = sample_dict lexdictnum
+
+
+# PANTERA CONFIGURATION
+
+# Pantera can use its own built-in tweaked version of Morfeusz.
+# If this option is set, all interpretations set by reader
+# or any tools preceding pantera in the toolchain are dropped
+panteraDoOwnMorphAnalysis = yes
+
+# tagset for pantera, leave empty for a default (check pantera documentation for details)
+panteraTagsetName =
+
+# pantera's engine, leave empty for a default (check pantera documentation for details)
+panteraEnginePath =
+
+
+# SPEJD SEMANTICS
+
+# default strategy for matching syntactic entities
+# use * for greedy, + for possessive, ? for reluctant
+
+matchStrategy = *
+
+# should agree(case,1,2) return true, if both 1 and 2 have no case?
+
+nullAgreement = no
+
+# SPEJD FSM INTERNALS
+
+# number of single-rule automata to be composed together, usually not needed to change
+# Rule of thumb: if Spejd consumes much too much memory, it's better to decrease this
+# number than to set very low memoryLimit - it gives smaller impact on performance
+composeLimit = 150
+
+# memory limit in megabytes 
+# when memory usage exceeds this limit the rarely-used states removal procedure 
+# (or GC, a garbage collector) is launched
+# use as an emergency brake, for standard limit see above.
+# The memoryLimit is approximate, actual memory usage may be slightly higher
+# (it depends on memory allocator library buffers size)
+memoryLimit = 1900
+
+# approx. percent of DFA states to leave after the states removal
+leavePercent = 80
+
+# The definitive limit of normal GC usage. GC removes only complex states, so if there are lots
+# of plain states it can't prevent from exceeding memoryLimit. If the percent of complex states
+# is less than minComplexPercent, all the DFAs are dropped and they are built from the beggining
+# just like if the spejd would be restarted. However it does not recompile rules, so it's faster.
+minComplexPercent = 10
+
+
+# A maximal number of unicode characters which can appear in rules compiled to internal regex
+# It must be higher than the highest number of values of a single attribute (including
+# numeric attributes) and must be higher than a number of unique characters appearing in all rules.
+# Setting too high can increase the memory usage.
+maxNumberOfValues = 4000
+
+
+# BUILT-IN MORPHOLOGICAL ANALYZER 'MORFEUSZ'
+
+# disable Morfeusz completely, useful when some other tool replaces interpretations, e.g. pantera
+disableMorfeusz = yes
+
+# Morfeusz produces ambiguous segmentation, which can be resolved by simple rule-based 
+# disambiguator. This option specifies a file to load rules from.
+# The rule format is described in the example file
+# (leave empty for the builtin default, which is actualy the example file)
+
+# The encoding of this file must be the same as inputEncoding.
+morfeuszSegmentationDisambiguationRules = segm_disamb.conf
+
+# PLAIN TEXT READER - GENERAL
+
+# mock xml:id for the whole text input referred from the output in string-range notation
+# (in TEI output it appears in *segmentation.xml)
+stringRangeMockID = p-1
+
+# PLAIN TEXT READER - SENTENCER
+
+# list of acronyms - 
+# if a dot is found after one of them, it is not a sentence break
+
+acronymsAfter  = prof|dr|mgr|doc|ul|np|godz|gen|płk|mjr|por|tzw|tzn|proc|nt|art|ust|ww|www|ws|dz
+
+# list of acronyms (actually top level domain names) - 
+# if a dot is found before one of them, it is not a sentence break
+
+acronymsBefore = ac|ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|asia|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cat|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|info|int|io|iq|ir|is|it|je|jm|jo|jobs|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mil|mk|ml|mm|mn|mo|mobi|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tel|tf|tg|th|tj|tk|tl|tm|tn|to|tp|tr|travel|tt|tv|tw|tz|ua|ug|uk|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw
+
+
+# PLAIN TEXT READER - OGONKIFIER
+
+# name of file with ogonkify (diacrit completion) substitutions
+# the format is:
+# <letter without diacritics>=<list of possible letters with diacritics separated by '|'>
+# see the example ogonkifier.ini
+
+# The encoding of this file must be the same as inputEncoding.
+#ogonkifyFile     = ogonkifier.ini
+
+# when to use ogonkifier:
+# A - Always, 
+# N - Never,
+# M - only when the Morphological analyzer fails to analyse a word
+
+ogonkifyStrategy = N
+
+# min and max length of words to ogonkify
+
+ogonkifyMinLength = 3
+ogonkifyMaxLength = 13
+
+
+
diff --git a/src/main/resources/spejd_config/rules.sr b/src/main/resources/spejd_config/rules.sr
new file mode 100644
index 0000000..0ec1100
--- /dev/null
+++ b/src/main/resources/spejd_config/rules.sr
@@ -0,0 +1,8103 @@
+######Gramatyka dla projektu CORE
+######Autor: Katarzyna Głowińska
+######wersja z 15.02.2012
+
+# MACRO DEFINITIONS
+
+Define czasownik = [pos~~"winien|praet|bedzie|fin|impt|imps|inf"];
+
+Define lub_imieslow = 
+    [pos~~"winien|praet|bedzie|fin|impt|imps|inf|pcon|pant|pred"];
+
+Define lub_grupa = [synh=[]] | $lub_imieslow;
+
+Define tytul = [orth~"[Kk]s\.|[Hh]r\.|o\.|s\.|[Pp]\.|[Pp]s\.|[Rr]ed\.|[Pp]rof\.|[Dd]oc\.|[Dd]yr\.|[Mm]in\.|[Mm]ec\.|[Ii]nż\.|[Aa]rch\.|[Gg]en\.|[Gg]en\. gen\.|[Gg]en\. dyw\.|[Gg]en\. bryg\.|[Ss]t\. szer\.|[Ss]zer\.|[Kk]pt\.|[Pp]por\.||[Tt]ow\.|[Kk]ol\.|[Hh]m\.|[Dd]h\.|[Kk]om\.|[Nn]adkom\.|[Pp]odkom\.|[Pp]os\.||[Pp]łk|[Pp]płk|[Mm]jr|[Rr]tm|[Dd]r?|[Mm]gr|[Aa]bp|[Aa]bp\.|[Bb]p|[Bb]p\.|[Kk]ard\.|śp\.|Mr|[Ll]ek\. med\." && pos~"Brev"];
+Define tytul1 = [base~"porucznik"];
+		
+Define osoba = [base~".*burmistrz|król.*|redaktor.*|pan.?|państwo|aktor|doktor|prymas|szkoleniowiec|księżna|prorokini|babcia|szlachcic|rodzina|archeolog|kustosz|markiz|prezbiter|psycholog|prałat|biznesmen|fizyk|wójt|artystka|konserwator|rabbi|radny|brat|sir|obywatel|.*mistrz|finansista|harcerz|papież|scenograf|dziennikar.*|metodysta|autor|autorka|sędzia|ojciec|generał|mecenas|handlowiec|obrońca|.*minister|.*anin|.*biskup|kardynał|senator|.*premier|Polak|Duńczyk|Białorusinka|Włoch|Ukrainiec|Ukrainka|geolog|.*prezydent|ksiądz|magister|kurator|trener|poseł|posłanka|prezes|.*starosta|.*wojewoda|perkusista|basista|.*marszałek|kolega|ciotka|sekretarz|profesor|lobbysta|dyrektor|.*reporter|poet.*|reżyser|konserwatysta|de"];
+
+Define adv_przy_adj = [pos~"Adv" && base~"zdecydowanie|trochę|nieuleczalnie|.*krotnie|chronicznie|szczególnie|wyłącznie|praktycznie|strasznie|rażąco|jakościowo|skrajnie|znacznie|niesłychanie|jawnie|czysto|ogólnie|stosunkowo|możliwie|równie|nowo|kompletnie|całkowicie|przesadnie|lekko|wyjątkowo|nieco|znacząco|zbyt|zdumiewająco|wyraźnie|niezwykle|średnio|zupełnie|niezbyt|bardzo|odpowiednio|całkiem|coraz|szaro|na tyle|mało|przewlekle|niezwykle|względnie|tak|prawnie|prawdziwie|.*proporcjonalnie|tymczasowo"];
+
+Define qub_przy_adj = [pos~"Qub" && base~"jeszcze|dosyć|dość|naprawdę|nie|to|właśnie|około|zaledwie|nawet|przynajmniej|zgoła|tam|pseudo|już|jeszcze|niemal|jedynie"];
+
+Define qub_przy_num = [pos~"Qub" && base~"dokładnie|niespełna|.*ledwie|ponad|za|już|prawie|nie|jeszcze|tylko|przeszło|około|nawet|aż|minimum|niemal"];
+
+Define adv_przy_num = [pos~"Adv" && base~"ledwo|zbyt|znacznie|bardzo|niezbyt|tak|coraz|nieskończenie|wyjątkowo|jak|trochę|raptem|.*krotnie"];
+
+Define instytucja = [orth~"[Kk]op\." && pos~"Brev"];
+
+
+# RULES
+
+#Rule "liczba -- liczba cyframi"
+#
+#Match: [orth~"[1-9][0-9]*"] (ns [orth~"[,-]"] ns [orth~"[0-9]+"])?;
+#Eval:  word(liczba,1.orth);
+#AW: nie łapie się np. "0,5"?
+
+##########SŁOWA SKŁADNIOWE
+
+Rule	"frazeo: a nuż"
+
+Match:	[base~"a"] [base~"nuż"];
+Eval:	word(Qub, 0.base);
+
+
+#LD Tę regułę trzeba na razie wyłączyć, bo produkuje niepełne tagi.
+#brak informacji morfologicznych dla Adj
+#Rule	"frazeo: a vista"
+#
+#Match:	[base~"a"] [base~"vista"];
+#Eval:	word(2, Adj, 0.base);
+
+
+Rule	"frazeo: a więc"
+
+Match:	[base~"a" && pos~"conj"] [base~"więc" && pos~"conj"];
+Eval:	word(Conj, 0.base);
+
+
+Rule	"frazeo: ani rusz"
+
+Match:	[base~"ani"] [orth~"rusz"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: ani trochę"
+
+Match:	[base~"ani"] [base~"trochę"];
+Eval:	word(Adv, 0.base);
+
+
+Rule	"frazeo: ani w ząb"
+
+Match:	[base~"ani|ni"] [base~"w"] [orth~"ząb"];
+Eval:	word(Adv, 0.base);
+
+
+Rule	"frazeo: bądź co bądź"
+
+Match:	[orth~"[Bb]ądź" && pos~~"impt"]
+	[base~"co" && pos~"comp"]
+	[orth~"bądź" && pos~~"impt"]; 
+Eval:	word(Qub, "bądź co bądź");
+
+
+Rule	"DisG: bądź co bądź"
+
+Match:	[base~"bądź co bądź"];
+Eval:	group(DisG, 1,1);
+
+
+Rule	"frazeo: bez mała"
+
+Match:	[base~"bez" && pos~~"prep"] 
+	[orth~"mała"]; 
+Eval:	word(Qub, 1.base " " 2.orth);
+
+
+Rule	"frazeo: bez trudu"
+
+Match:	[base~"bez" && pos~~"prep"] [orth~"trudu"]; 
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: bez wątpienia"
+
+Match:	[base~"bez" && pos~~"prep"] [orth~"wątpienia"]; 
+Eval:	word(Qub, 1.base " " 2.orth);
+
+
+Rule	"frazeo: bez względu na"
+
+Match:	[base~"bez"] [orth~"względu"] [base~"na"]; 
+Eval:	word(Prep:acc, "bez względu na");
+
+
+Rule	"frazeo: blisko (Prep)"
+
+Match:	[orth~"[Bb]lisko"];
+Right:	[pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact" 
+	&& case~~"gen"];
+Eval:	word(Prep:gen, "blisko");
+
+
+Rule	"frazeo: bliżej (Prep)"
+
+Match:	[orth~"[Bb]liżej"];
+Right:	[pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact" 
+	&& case~~"gen"];
+Eval:	word(Prep:gen, "bliżej");
+
+
+Rule	"frazeo: najbliżej (Prep)"
+
+Match:	[orth~"[Nn]ajbliżej"];
+Right:	[pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact" 
+	&& case~~"gen"];
+Eval:	word(Prep:gen, "najbliżej");
+
+
+Rule	"frazeo: Bogu ducha winny"
+
+Match:	[orth~"[Bb]ogu"] [orth~"ducha"] [base~"winny"]; 
+Eval:	word(3, Adj, "Bogu ducha winny");
+
+
+Rule	"frazeo: Brawo,"
+
+Match:	[orth~"[Bb]rawo"]; 
+Right:	ns [base~","];
+Eval:	word(Interj, 1.base);
+
+
+Rule	"DisG: Brawo,"
+
+Match:	[base~"brawo" && pos~"Interj"]; 
+Eval:	group(DisG, 1,1);
+
+
+Rule	"frazeo: broń Boże"
+
+Match:	[orth~"[Bb]roń"] [orth~"[Bb]oże"]; 
+Eval:	word(Interj, "broń Boże");
+
+
+Rule	"DisG: broń Boże"
+
+Match:	[base~"broń Boże" && pos~"Interj"]; 
+Eval:	group(DisG, 1,1);
+
+
+Rule	"frazeo: być może"
+
+Match:	[orth~"[Bb]yć"] [orth~"może"]; 
+Eval:	word(Qub, 1.base " " 2.orth);
+
+
+Rule	"frazeo: chargé d’affaires"
+
+Match:	[base~"chargé"] [base~"d'affaires"]; 
+Eval:	word(1, Noun, 0.base);
+
+
+Rule	"frazeo: chyba że"
+
+Match:	[base~"chyba"] [base~"że"]; 
+Eval:	word(Comp, 0.base);
+
+
+Rule	"frazeo: co gorsza|więcej"
+
+Match:	[base~"co"] [orth~"gorsza|więcej"]; 
+Eval:	word(Qub, 1.base " " 2.orth);
+
+
+Rule	"frazeo: co najmniej"
+
+Match:	[base~"co"] [orth~"najmniej"]; 
+Eval:	word(Qub, 1.base " " 2.orth);
+
+
+Rule	"frazeo: co najwyżej"
+
+Match:	[base~"co"] [orth~"najwyżej"]; 
+Eval:	word(Qub, 1.base " " 2.orth);
+
+
+Rule	"frazeo: co niemiara"
+
+Match:	[orth~"co"] [base~"niemiara"]; 
+Eval:	word(Adv, 0.base);
+
+
+Rule	"frazeo: co prawda"
+
+Match:	[orth~"[Cc]o"] [orth~"prawda"]; 
+Eval:	word(Qub, 0.base);
+
+
+Rule	"DisG: co prawda"
+
+Match:	[base~"co prawda"]; 
+Eval:	group(DisG, 1,1);
+
+
+Rule	"frazeo: co rusz"
+
+Match:	[orth~"[Cc]o"] [orth~"rusz"]; 
+Eval:	word(Adv, "co rusz");
+
+
+Rule	"frazeo: co i rusz"
+
+Match:	[orth~"[Cc]o"] [base~"i"] [orth~"rusz"]; 
+Eval:	word(Adv, "co i rusz");
+
+
+Rule	"frazeo: co tchu"
+
+Match:	[orth~"[Cc]o"] [orth~"tchu"]; 
+Eval:	word(Adv, "co tchu");
+
+
+Rule	"frazeo: coraz to"
+
+Match:	[base~"coraz"] [orth~"to"]; 
+Eval:	word(Adv, "coraz to");
+
+
+Rule	"frazeo: Cóż,"
+
+Left:	sb;
+Match:	[base~"cóż"]; 
+Right:	ns [base~","];
+Eval:	word(Interj, 2.base);
+
+
+Rule	"DisG: Cóż,"
+
+Match:	[base~"cóż" && pos~"Interj"]; 
+Eval:	group(DisG, 1,1);
+
+
+Rule	"frazeo: dawno temu"
+
+Match:	[orth~"[Dd]awno"] [base~"temu"]; 
+Eval:	word(Adv, 0.base);
+
+
+Rule	"frazeo: do/u diabła"
+
+Match:	[base~"do|u"] [orth~"diabła"]; 
+Eval:	word(Interj, 1.base " " 2.orth);
+
+
+Rule	"DisG: do/u diabła"
+
+Match:	([base~"do diabła"] | [base~"u diabła"]); 
+Eval:	group(DisG, 1,1);
+
+
+Rule	"frazeo: do/od rzeczy"
+
+Match:	[base~"do|od"] [orth~"rzeczy"];
+Right:	[case!~"gen"]; 
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: do cna"
+
+Match:	[base~"do" && pos~~"prep"] [base~"cna"];
+Eval:	word(Adv, 0.base);
+
+
+Rule	"frazeo: do spraw"
+Match:	[base~"do"] [orth~"spraw"]; 
+Right:	[pos~~"subst|ger" && case~~"gen"];
+Eval:	word(Prep:gen, 1.base " " 2.orth);
+
+
+Rule	"frazeo: do syta i in."
+
+Match:	[base~"do" && pos~~"prep"] 
+	[orth~"czysta|naga|niedawna|ostatka|pełna|późna|sucha|syta|szczętu|upadłego|żywa"]; 
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: do widzenia"
+
+Match:	[base~"do"] [orth~"widzenia"]; 
+Eval:	word(Interj, 1.base " " 2.orth);
+
+
+Rule	"frazeo: do żywego (1)"
+
+Match:	[base~"do"] [orth~"żywego"]; 
+Right:	[case!~"gen"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: do żywego (2)"
+
+Match:	[base~"do"] [orth~"żywego"]; 
+Right:	ns [pos~"interp"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: dopiero co"
+
+Match:	[base~"dopiero"] [orth~"co"]; 
+Eval:	word(Adv, 0.base);
+
+
+Rule	"frazeo: na dzień dobry"
+
+Match:	[base~"na" && pos~"prep"] [orth~"dzień"] [orth~"dobry"]; 
+Eval:	word(Adv, 0.base);
+
+
+Rule	"frazeo: dzień dobry"
+
+Match:	[orth~"[Dd]zień"] [orth~"dobry"]; 
+Eval:	word(Interj, 0.base);
+
+
+Rule	"frazeo: dziwnym trafem"
+
+Match:	[orth~"[Dd]ziwnym"] [orth~"trafem"]; 
+Eval:	word(Adv, "dziwnym trafem");
+
+
+Rule	"frazeo: happy end"
+
+Match:	[base~"happy"] [base~"end"]; 
+Eval:	word(2, Noun, 0.base);
+
+
+Rule	"frazeo: gdzie|kiedy itp. indziej"
+
+Match:	[base~"gdzie|gdzieś|gdziekolwiek|nigdzie|wszędzie|kiedy|kiedykolwiek"] [base~"indziej"]; 
+Eval:	word(Adv, 0.base);
+
+
+Rule	"frazeo: expressis verbis"
+
+Match:	[base~"expressis"] [base~"verbis"]; 
+Eval:	word(Adv, 0.base);
+
+
+Rule	"frazeo: i to"
+
+Left:	[base~","];
+Match:	[base~"i" && pos~"conj"] [base~"to" && pos~"qub"]; 
+Eval:	word(Qub, 0.base);
+
+
+Rule	"frazeo: in corpore"
+
+Match:	[base~"in"] [base~"corpore"]; 
+Eval:	word(Adv, 0.base);
+
+
+Rule	"frazeo: innymi słowy"
+
+Match:	[orth~"[Ii]nnymi"] [orth~"słowy"]; 
+Eval:	word(Qub, "innymi " 2.orth);
+
+
+Rule	"DisG: innymi słowy"
+
+Match:	[base~"innymi słowy"]; 
+Eval:	group(DisG, 1,1);
+
+
+Rule	"frazeo: inaczej mówiąc"
+
+Match:	[orth~"[Ii]naczej"] [orth~"mówiąc"]; 
+Eval:	word(Qub, "inaczej " 2.orth);
+
+
+Rule	"DisG: inaczej mówiąc"
+
+Match:	[base~"inaczej mówiąc"]; 
+Eval:	group(DisG, 1,1);
+
+
+Rule	"frazeo: i tak dalej"
+
+Match:	[base~"i"] [base~"tak" && pos~"adv"] [orth~"dalej"]; 
+Eval:	word(Qub, "i tak dalej");
+
+
+Rule	"DisG: i tak dalej"
+
+Match:	[base~"i tak dalej"]; 
+Eval:	group(DisG, 1,1);
+
+
+#LD Na razie wyłączyłam regułę, bo trzeba lepiej opisać kontekst.
+#Rule	"frazeo: i tak"
+#
+#Match:	[base~"i"] [base~"tak"]; 
+#Eval:	word(Qub, 0.base);
+#? częściej Adv, ale trudno podać dobry kontekst
+
+
+Rule	"frazeo: jak dotąd"
+
+Match:	[base~"jak"] [base~"dotąd"]; 
+Eval:	word(Adv, 0.base);
+
+
+Rule	"frazeo: tak czy owak|siak"
+
+Match:	[orth~"[Tt]ak"] [base~"czy"] [orth~"owak|siak"]; 
+Eval:	word(Qub, 0.base);
+
+
+Rule	"DisG: tak czy owak|siak"
+
+Match:	[base~"tak czy owak|tak czy siak"];
+Eval:	group(DisG, 1,1);
+
+
+Rule	"frazeo: tak jakby (Comp)"
+
+Left:	[base~","];
+Match:	[base~"tak"] [base~"jakby"]; 
+Eval:	word(Comp, 0.base);
+
+
+Rule	"frazeo: tak jakby (Qub)"
+
+Match:	[base~"tak"] [base~"jakby"]; 
+Eval:	word(Qub, 0.base);
+
+
+Rule	"frazeo: tak jak gdyby"
+
+Left:	[base~","];
+Match:	[base~"tak"] [base~"jak"] [base~"gdyby"]; 
+Eval:	word(Comp, 0.base);
+
+
+Rule	"frazeo: jak gdyby (Comp)"
+
+Left:	[base~","];
+Match:	[base~"jak"] [base~"gdyby"]; 
+Eval:	word(Comp, 0.base);
+
+
+Rule	"frazeo: jak gdyby (Qub)"
+
+Match:	[base~"jak"] [base~"gdyby"]; 
+Eval:	word(Qub, 0.base);
+#[KG: może lepiej opisać kontekst (na razie wystarczy)]
+
+
+Rule	"frazeo: jak najbardziej (Interj)"
+
+Left:	sb;
+Match:	[base~"jak"] [orth~"najbardziej"];
+Right:	[pos~"interp"]? se;
+Eval:	word(Interj, 2.base " " 3.orth); #LD zmiana cyferek
+
+
+Rule	"frazeo: jak najbardziej (Adv)"
+
+Match:	[base~"jak"] [orth~"najbardziej"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: jak też"
+
+Match:	[base~"jak"] [base~"też"]; 
+Eval:	word(Conj, 0.base);
+
+
+Rule	"frazeo: jako że|iż"
+
+Match:	[base~"jako"] [base~"że|iż"]; 
+Eval:	word(Comp, 0.base);
+
+
+Rule	"frazeo: jako żywo"
+
+Match:	[base~"jako"] [base~"żywo"]; 
+Eval:	word(Adv, 0.base);
+
+
+Rule	"frazeo: jednym tchem"
+
+Match:	[orth~"[Jj]ednym"] [orth~"tchem"]; 
+Eval:	word(Adv, "jednym tchem");
+
+
+Rule	"frazeo: Jezus Maria"
+
+Match:	[orth~"[Jj]ezus"] [orth~"[Mm]aria"];
+Eval:	word(Interj, 0.orth);
+
+
+Rule	"frazeo: kick boxing"
+
+Match:	[base~"kick"] [base~"boxing"];
+Eval:	word(2, Noun, 0.base);
+
+
+Rule	"frazeo: krok po kroku"
+
+Match:	[orth~"[Kk]rok"] [base~"po"] [orth~"kroku"];
+Eval:	word(Adv, "krok po kroku");
+
+
+Rule	"frazeo: krok w krok"
+
+Match:	[orth~"[Kk]rok"] [base~"w"] [orth~"krok"];
+Eval:	word(Adv, 0.base);
+
+
+Rule	"frazeo: krok za krokiem"
+
+Match:	[orth~"[Kk]rok"] [base~"za"] [orth~"krokiem"];
+Eval:	word(Adv, "krok za krokiem");
+
+
+Rule	"frazeo: ku pamięci"
+Match:	[base~"ku"] [orth~"pamięci"]; 
+Right:	[pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact" 
+	&& case~~"gen"];
+Eval:	word(Prep:gen, 1.base " " 2.orth);
+
+
+Rule	"frazeo: latem|jesienią|zimą|wiosną"
+
+Match:	[base~"lato|jesień|zima|wiosna" && case~"inst"];
+Eval:	word(Adv, 0.orth);
+
+
+Rule	"frazeo: mało kto|co"
+
+Match:	[orth~"[Mm]ało"] [base~"kto|co"];
+Eval:	word(2, Noun, 0.base);
+
+
+Rule	"frazeo: Matko Boska"
+
+Match:	[orth~"[Mm]atko"] [orth~"[Bb]oska|jedyna|[Śś]więta"];
+Eval:	word(Interj, 0.orth);
+
+
+Rule	"frazeo: mimo to"
+
+Match:	[base~"mimo|pomimo" && pos~~"prep"] [base~"to"];
+Eval:	word(Qub, 0.base);
+
+
+Rule	"frazeo: mimo wszystko"
+
+Match:	[base~"mimo|pomimo" && pos~~"prep"] [base~"wszystko"];
+Eval:	word(Qub, 0.base);
+
+
+Rule	"frazeo: mniej więcej"
+
+Match:	[orth~"[Mm]niej"] [orth~"więcej"];
+Eval:	word(Qub, "mniej więcej");
+
+
+Rule	"frazeo: mniej lub więcej"
+
+Match:	[orth~"mniej"] [base~"lub|bądź"] [orth~"więcej|bardziej"];
+Eval:	word(Adv, 0.orth);
+
+
+Rule	"frazeo: musztarda po obiedzie"
+
+Match:	[base~"musztarda"] [base~"po"] [orth~"obiedzie"];	#LD zmiana orth na base w 1. el.
+Eval:	word(1, Noun, 1.base " " 2.base " " 3.orth);	#LD dodano:"1, "
+
+
+Rule	"frazeo: na baczność"
+
+Match:	[base~"na"] [orth~"baczność"];
+Eval:	word(Adv, 0.base);
+
+
+Rule	"frazeo: na bakier"
+
+Match:	[base~"na" && pos~~"prep"] [orth~"bakier"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: na bazie i in."
+Match:	[base~"na"] 
+	[orth~"bazie|czele|drodze|gruncie|końcu|łamach|miarę|mocy|modłę|poczet|podstawie|progu|przeciąg|przełomie|przestrzeni|punkcie|rzecz|skalę|skutek|szkodę|środku|temat|tle|wypadek|wzór|zakończenie|zasadzie"]; 
+Right:	[pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact" 
+	&& case~~"gen"];
+Eval:	word(Prep:gen, 1.base " " 2.orth);
+
+
+Rule	"frazeo: na co dzień"
+
+Match:	[base~"na"] [orth~"co"] [orth~"dzień"]; 
+Eval:	word(Adv, 0.base);
+
+Rule	"frazeo: na czas"
+
+Match:	[base~"na" && pos~~"prep"] [orth~"czas"];
+Right:	[case!~"acc"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: na czele"
+
+Match:	[base~"na"] [orth~"czele"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: na dłuższą|krótszą metę"
+
+Match:	[base~"na"] [orth~"dłuższą|krótszą"] [orth~"metę"];
+Eval:	word(Adv, 1.base " " 2.orth " " 3.orth);
+
+
+Rule	"frazeo: na dobrą sprawę"
+
+Match:	[base~"na"] [orth~"dobrą"] [orth~"sprawę"];
+Eval:	word(Qub, "na dobrą sprawę");
+
+
+Rule	"frazeo: na dobre i na złe"
+
+Match:	[base~"na" && pos~~"prep"] [orth~"dobre"] [base~"i"]
+	[base~"na" && pos~~"prep"] [orth~"złe"];
+Eval:	word(Adv, "na dobre i na złe");
+
+
+Rule	"frazeo: na dobre"
+
+Match:	[base~"na"] [orth~"dobre"];
+Right:	[case!~"acc"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: na dobry początek"
+
+Match:	[base~"na"] [orth~"dobry"] [orth~"początek"];
+Eval:	word(Adv, 0.base);
+
+
+Rule	"frazeo: na dodatek"
+
+Match:	[base~"na"] [orth~"dodatek"];
+Eval:	word(Qub, 1.base " " 2.orth);
+
+
+Rule	"frazeo: na domiar złego"
+
+Match:	[base~"na"] [orth~"domiar"] [orth~"złego"];
+Eval:	word(Qub, "na domiar złego");
+
+
+Rule	"frazeo: na dwoje"
+
+Match:	[base~"na"] [orth~"dwoje"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: na golasa i in."
+
+Match:	[base~"na" && pos~~"prep"] [orth~"golasa|głodniaka|pewniaka|stojaka|waleta|wariata"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: na gwałt|głos"
+
+Match:	[base~"na"] [orth~"gwałt|głos"];
+Eval:	word(Adv, 0.base);
+
+
+Rule	"frazeo: na jaw"
+
+Match:	[base~"na"] [orth~"jaw"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: na/w lewo/prawo"
+
+Match:	[base~"na|w"] [orth~"lewo|prawo" && pos~"adjp"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: na/od kiedy"
+
+Match:	[base~"na|od"] [base~"kiedy"];
+Eval:	word(Adv, 0.base);
+
+
+Rule	"frazeo: na łeb, na szyję"
+
+Match:	[base~"na"] [orth~"łeb"] ns [base~","]? [base~"na"] [orth~"szyję"];
+Eval:	word(Adv, "na łeb, na szyję");
+
+
+Rule	"frazeo: na odczepne i in."
+
+Match:	[base~"na" && pos~~"prep"] [orth~"odczepne|odchodne"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: na odczepnego i in."
+
+Match:	[base~"na" && pos~~"prep"] [orth~"całego|głodnego|odczepnego|upartego"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: na odchodnym i in."
+
+Match:	[base~"na" && pos~~"prep"] [orth~"odchodnym|odjezdnym|wychodnym|wyjezdnym"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: na odtrąbiono"
+
+Match:	[base~"na" && pos~~"prep"] [orth~"odtrąbiono"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: na odwrót|opak"
+
+Match:	[base~"na"] [orth~"odwrót|opak"];
+Eval:	word(Qub, 0.base);
+
+
+Rule	"frazeo: na ogół"
+
+Match:	[base~"na" && pos~~"prep"] [orth~"ogół"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: na oścież"
+
+Match:	[base~"na" && pos~~"prep"] [base~"oścież"];
+Eval:	word(Adv, 0.base);
+
+
+Rule	"frazeo: na oślep"
+
+Match:	[base~"na"] [base~"oślep"];
+Eval:	word(Adv, 0.base);
+
+
+Rule	"frazeo: na pewno"
+
+Match:	[base~"na" && pos~~"prep"] [orth~"pewno"];
+Eval:	word(Qub, 1.base " " 2.orth);
+
+
+Rule	"frazeo: na pierwszy rzut oka"
+
+Match:	[base~"na"] [orth~"pierwszy"] [orth~"rzut"] [orth~"oka"];
+Eval:	word(Adv, 1.base " " 2.base " " 3.base " " 4.orth);
+
+
+Rule	"frazeo: na piśmie"
+
+Match:	[base~"na" && pos~~"prep"] [orth~"piśmie"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: na początku (Prep)"
+Match:	[base~"na"] [orth~"początku|wstępie"]; 
+Right:	[pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact" 
+	&& case~~"gen"];
+Eval:	word(Prep:gen, 1.base " " 2.orth);
+
+
+Rule	"frazeo: na początku (Adv)"
+
+Match:	[base~"na"] [orth~"początku|wstępie"]; 
+Right:	[case!~"gen"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: na poczekaniu"
+
+Match:	[base~"na"] [orth~"poczekaniu"]; 
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: na powrót"
+
+Match:	[base~"na"] [orth~"powrót"];
+Eval:	word(Adv, 0.base);
+
+
+Rule	"frazeo: na poziomie (Prep)"
+
+Match:	[base~"na"] [orth~"poziomie"]; 
+Right:	[pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact" 
+	&& case~~"gen"];
+Eval:	word(Prep:gen, 1.base " " 2.orth);
+
+
+Rule	"frazeo: na poziomie (Adj)"
+
+Match:	[base~"na"] [orth~"poziomie"]; 
+Right:	[case!~"gen"];
+Eval:	word(Adjc, 1.base " " 2.orth);
+
+
+Rule	"frazeo: na pozór"
+
+Match:	[base~"na"] [orth~"pozór"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: na przekór"
+Match:	[base~"na"] [orth~"przekór"]; 
+Right:	[pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact" 
+	&& case~~"dat"];
+Eval:	word(Prep:dat, 1.base " " 2.orth);
+
+
+Rule	"frazeo: na przemian"
+
+Match:	[base~"na" && pos~~"prep"] [base~"przemian"];
+Eval:	word(Adv, 0.base);
+
+
+Rule	"frazeo: na przykład"
+
+Match:	[base~"na" && pos~~"prep"] [orth~"przykład"];
+Right:	[case!~"gen"];
+Eval:	word(Qub, 1.base " " 2.orth);
+
+
+Rule	"DisG: na przykład"
+
+Match:	[base~"na przykład" && pos~~"Qub"];
+Eval:	group(DisG, 1,1);
+
+
+#Rule	"frazeo: na przyszłość"
+#
+#Match:	[base~"na"] [orth~"przyszłość"];
+#Eval:	word(Adv, 0.base);
+#odróżnić od "plany na przyszłość"
+
+
+Rule	"frazeo: na razie (Interj)"
+
+Match:	[base~"na" && pos~~"prep"] [orth~"razie"];
+Right:	[base~"!" && pos~"interp"];
+Eval:	word(Interj, 1.base " " 2.orth);
+
+
+Rule	"frazeo: na razie (Adv)"
+
+Match:	[base~"na" && pos~~"prep"] [orth~"razie"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: na równi z"
+Match:	[base~"na"] [orth~"równi"] [base~"z"]; 
+Eval:	word(3, Prep, 1.base " " 2.orth " " 3.base);
+
+
+Rule	"frazeo: na siłę"
+
+Match:	[base~"na" && pos~~"prep"] [orth~"siłę"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: na stałe"
+
+Match:	[base~"na" && pos~~"prep"] [orth~"stałe" && pos~"adjp"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: na szczęście"
+
+Match:	[base~"na"] [orth~"szczęście"];
+Eval:	word(Adv, 0.base);
+
+
+Rule	"frazeo: na własne oczy|uszy"
+
+Match:	[base~"na"] [orth~"własne"] [orth~"oczy|uszy"]; 
+Eval:	word(Adv, 1.base " " 2.orth " " 3.orth);
+
+
+Rule	"frazeo: na własność"
+
+Match:	[base~"na" && pos~~"prep"] [orth~"własność"]; 
+Eval:	word(Adv, 0.base);
+
+
+Rule	"frazeo: na wpół"
+
+Match:	[base~"na" && pos~~"prep"] [orth~"wpół"]; 
+Right:	[base!~"do"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: na wprost (Prep)"
+
+Match:	[base~"na" && pos~~"prep"] [orth~"wprost"]; 
+Right:	[pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact" 
+	&& case~~"gen"];
+Eval:	word(Prep:gen, 1.base " " 2.orth);
+
+
+Rule	"frazeo: na wprost i in."
+
+Match:	[base~"na" && pos~~"prep"] 
+	[orth~"wprost|przełaj|wyprzódki"]; 
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: na wskroś"
+
+Match:	[base~"na" && pos~~"prep"] [base~"wskroś"]; 
+Eval:	word(Adv, 0.base);
+
+
+Rule	"frazeo: na wszelki wypadek"
+
+Match:	[base~"na"] [orth~"wszelki"] [orth~"wypadek"]; 
+Eval:	word(Adv, 1.base " " 2.orth " " 3.orth);
+
+
+Rule	"frazeo: na wyrost|wznak"
+
+Match:	[base~"na"] [orth~"wyrost|wznak"]; 
+Eval:	word(Adv, 0.base);
+
+
+Rule	"frazeo: na zakończenie|koniec"
+
+Match:	[base~"na"] [orth~"zakończenie|koniec"];
+Right:	[case!~"gen"]; 
+Eval:	word(Adv, 0.base);
+
+
+Rule	"frazeo: na złość"
+
+Match:	[base~"na" && pos~~"prep"] [orth~"złość"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: na/od zawsze"
+
+Match:	[base~"na|od" && pos~~"prep"] [base~"zawsze"];
+Eval:	word(Adv, 0.base);
+
+
+Rule	"frazeo: na -o (1)"
+
+Match:	[base~"na" && pos~~"prep"] 
+	[orth~".*o" && pos~~"adv" && base!~"bardzo|pewno"];
+Right:	[pos!~"adj|pact|ppas"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: na -o (2)"
+
+Match:	[base~"na" && pos~~"prep"] 
+	[orth~".*o" && pos~~"adv" && base!~"bardzo|pewno"];
+Right:	ns [pos~"interp"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: na zewnątrz + gen"
+
+Match:	[base~"na" && pos~~"prep"] [base~"zewnątrz"]; 
+Right:	[pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact" 
+	&& case~~"gen"];
+Eval:	word(Prep:gen, 0.base);
+
+
+Rule	"frazeo: na/od/z zewnątrz"
+
+Match:	[base~"na|od|z" && pos~~"prep"] [base~"zewnątrz"]; 
+Eval:	word(Adv, 0.base);
+
+
+Rule	"frazeo: nad podziw|wyraz"
+
+Match:	[base~"nad" && pos~~"prep"] [orth~"podziw|wyraz"];
+Eval:	word(Adv, 0.base);
+
+
+Rule	"frazeo: nade wszystko"
+
+Match:	[orth~"[Nn]ade"] [orth~"wszystko"];
+Eval:	word(Qub, "nade wszystko");
+
+
+Rule	"frazeo: nie lada"
+
+Match:	[base~"nie"] [base~"lada"];
+Eval:	word(Qub, 0.base);
+
+
+Rule	"frazeo: ni stąd, ni zowąd"
+
+Match:	[base~"ni"] [base~"stąd"] ns [base~","] [base~"ni"] [base~"zowąd"];
+Eval:	word(Adv, 0.base);
+
+
+Rule	"frazeo: non stop"
+
+Match:	[base~"non"] [base~"stop"];
+Eval:	word(Adv, 0.base);
+
+
+Rule	"frazeo: o krok od"
+Match:	[base~"o" && pos~"prep"] [orth~"krok"] [base~"od"]; 
+Eval:	word(Prep:gen, 0.base);
+
+
+Rule	"frazeo: o mało (co)"
+Match:	[base~"o"] [orth~"mało"] [orth~"co"]?; 
+Eval:	word(Adv, 0.base);
+
+
+Rule	"frazeo: o wiele (1)"
+
+Match:	[base~"o" && pos~~"prep"] [orth~"wiele" && pos~~"num"];
+Right:	[base~"za"] [pos~"adj|adv" && degree~"pos"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: o wiele (2)"
+
+Match:	[base~"o" && pos~~"prep"] [orth~"wiele" && pos~~"num"];
+Right:	[pos~"adj|adv" && degree~"com"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: od czasu do czasu"
+
+Match:	[base~"od"] [orth~"czasu"]
+	[base~"do"] [orth~"czasu"]; 
+Eval:	word(Adv, "od czasu do czasu");
+
+
+Rule	"frazeo: od dawna/nowa"
+
+Match:	[base~"od" && pos~~"prep"] 
+	[orth~"dawna|niedawna|pradawna|nowa|razu|zaraz"]; 
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+#LD zmieniłam regułę i rozmnożyłam
+#info: rozmnożone, bo nie da się wziąć informacji od elementu spoza linii Match
+Rule	"frazeo: od groma + m1"
+
+Match:	[base~"od"] [orth~"groma"]; 
+Right:	[pos~"adj|subst" && gender~"m1"];
+Eval:	word(Num:pl:acc:m1:rec, 1.base " " 2.orth);
+#przypadek "z sufitu"
+
+Rule	"frazeo: od groma + m2"
+
+Match:	[base~"od"] [orth~"groma"]; 
+Right:	[pos~"adj|subst" && gender~"m2"];
+Eval:	word(Num:pl:acc:m2:rec, 1.base " " 2.orth);
+#przypadek "z sufitu"
+
+Rule	"frazeo: od groma + m3"
+
+Match:	[base~"od"] [orth~"groma"]; 
+Right:	[pos~"adj|subst" && gender~"m3"];
+Eval:	word(Num:pl:acc:m3:rec, 1.base " " 2.orth);
+#przypadek "z sufitu"
+
+Rule	"frazeo: od groma + f"
+
+Match:	[base~"od"] [orth~"groma"]; 
+Right:	[pos~"adj|subst" && gender~"f"];
+Eval:	word(Num:pl:acc:f:rec, 1.base " " 2.orth);
+#przypadek "z sufitu"
+
+Rule	"frazeo: od groma + n"
+
+Match:	[base~"od"] [orth~"groma"]; 
+Right:	[pos~"adj|subst" && gender~"n"];
+Eval:	word(Num:pl:acc:n:rec, 1.base " " 2.orth);
+#przypadek "z sufitu"
+
+Rule	"frazeo: od groma + brak NG"
+
+Match:	[base~"od"] [orth~"groma"]; 
+Right:	[pos!~"adj|subst"];
+Eval:	word(Num:pl:acc:n:rec, 1.base " " 2.orth);
+#przypadek i rodzaj "z sufitu"
+
+
+Rule	"frazeo: od kuchni"
+
+Match:	[base~"od"] [orth~"kuchni"]; 
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: od niechcenia"
+
+Match:	[base~"od" && pos~~"prep"] [orth~"niechcenia"]; 
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: od początku (Adv)"
+Match:	[base~"od"] [orth~"początku"]; 
+Right:	[case!~"gen"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: od przypadku do przypadku"
+
+Match:	[base~"od"] [orth~"przypadku"]
+	[base~"do"] [orth~"przypadku"]; 
+Eval:	word(Adv, "od przypadku do przypadku");
+
+
+Rule	"frazeo: od stóp do głów"
+
+Match:	[base~"od"] [orth~"stóp"]
+	[base~"do"] [orth~"głów"]; 
+Eval:	word(Adv, 1.base " " 2.orth " " 3.base " " 4.orth);
+
+
+Rule	"frazeo: od ucha do ucha"
+
+Match:	[base~"od"] [orth~"ucha"]
+	[base~"do"] [orth~"ucha"]; 
+Eval:	word(Adv, "od ucha do ucha");
+
+
+Rule	"frazeo: odnośnie do"
+Match:	[base~"odnośnie"] [base~"do"]; 
+Eval:	word(Prep:gen, 0.base);
+
+
+Rule	"frazeo: oko w oko"
+
+Match:	[orth~"[Oo]ko"] [base~"w"] [orth~"oko"]; 
+Eval:	word(Adv, 0.base);
+
+
+Rule	"frazeo: twarzą w twarz"
+
+Match:	([orth~"[Tt]warzą"] | [orth~"[Tt]warz"]) [base~"w"] [orth~"twarz"]; 
+Eval:	word(Adv, 1.orth " " 2.base " " 3.base);
+
+
+Rule	"frazeo: panie dzieju"
+
+Match:	[orth~"[Pp]anie"] [orth~"dzieju"];
+Eval:	word(Interj, "panie dzieju");
+
+
+Rule	"DisG: panie dzieju"
+
+Match:	[base~"panie dzieju"];
+Eval:	group(DisG, 1,1);
+
+
+Rule	"frazeo: pędem"
+
+Match:	[base~"pęd" && case~"inst" && number~"sg"];
+Right:	$czasownik;
+Eval:	word(Adv, "pędem");
+
+
+Rule	"frazeo: piąte przez dziesiąte"
+
+Match:	[orth~"[Pp]iąte"] [base~"przez"] [orth~"dziesiąte"];
+Eval:	word(Adv, "piąte przez dziesiąte");
+
+
+Rule	"frazeo: Po co "
+
+Left:	sb;
+Match:	[base~"po" && pos~~"prep"] [orth~"co|cóż"];
+Eval:	word(Adv, 0.base);
+##było też "na co", ale inne rzeczy się łapały
+
+
+Rule	"frazeo: , po co"
+
+Left:	[base~","];
+Match:	[base~"po" && pos~~"prep"] [orth~"co|cóż"];
+Eval:	word(Adv, 0.base);
+##było też "na co", ale inne rzeczy się łapały
+
+
+Rule	"frazeo: po drodze"
+
+Match:	[base~"po" && pos~~"prep"] [orth~"drodze"];
+Right:	[pos!~"adj"];
+Eval:	word(Adv, 1.base " " 2.orth);
+##tu można dokładniej: prawy kontekst to albo nie "szybkiego" albo nie przymiotnik w miejscowniku (jak to zapisać ! && !?)
+
+
+Rule	"frazeo: po herbacie|zawodach"
+
+Left:	[base~"i"];
+Match:	[base~"po" && pos~~"prep"] [orth~"herbacie|zawodach"];
+Eval:	word(Adv, 2.base " " 3.orth); #LD zmiana cyferek
+
+
+Rule	"frazeo: po imieniu"
+
+Match:	[base~"po"] [orth~"imieniu"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: po prostu"
+
+Match:	[base~"po" && pos~~"prep"] [orth~"prostu"];
+Eval:	word(Qub, 1.base " " 2.orth);
+
+
+Rule	"frazeo: po trochu itp."
+
+Match:	[base~"po" && pos~~"prep"] [orth~"trochu|trosze|troszeczku|troszku"];
+Eval:	word(Qub, 1.base " " 2.orth);
+
+
+Rule	"frazeo: po wiele/okroć"
+
+Match:	[base~"po"] [base~"wielekroć|wielokroć"];
+Eval:	word(Adv, 0.base);
+
+
+Rule	"frazeo: po -u"
+
+Match:	[base~"po" && pos~~"prep"] [orth~".*u" && pos~~"adjp|burk"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: po pierwsze/drugie"
+
+Match:	[base~"po" && pos~~"prep"] 
+	[orth~"pierwsze|drugie|trzecie|czwarte" && pos~~"adj"];
+Eval:	word(Qub, 1.base " " 2.orth);
+#jaka to część mowy? było Adv, ale sądzę, że jednak Qub
+
+
+Rule	"frazeo: po próżnicy"
+
+Match:	[base~"po" && pos~~"prep"] [orth~"próżnicy"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: po raz pierwszy itp."
+
+Match:	[base~"po"] [orth~"raz"] [orth~"pierwszy|drugi|trzeci|czwarty"];
+Eval:	word(Adv, 0.base);
+
+
+Rule	"frazeo: po raz [kolejny]"
+
+Match:	[base~"po"] [orth~"raz"] [base~"adj" && case~"acc"];
+Eval:	word(Adv, 0.base);
+
+
+Rule	"frazeo: po równo"
+
+Match:	[base~"po"] [orth~"równo"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: po zęby"
+
+Match:	[base~"po"] [orth~"zęby"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: pod adresem i in."
+
+Match:	[base~"pod"] 
+	[orth~"adresem|ciężarem|egidą|koniec|maską|okiem|osłoną|płaszczykiem|postacią|pozorem|pretekstem|warunkiem|wezwaniem|wodzą|wpływem|względem"];
+Right:	[pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact" 
+	&& case~~"gen"];
+Eval:	word(Prep:gen, 1.base " " 2.orth);
+
+
+Rule	"frazeo: pod auspicjami"
+
+Match:	[base~"pod"] [orth~"auspicjami"];
+Right:	[pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact" 
+	&& case~~"gen"];
+Eval:	word(Prep:gen, 1.base " " 2.orth);
+
+
+Rule	"frazeo: pod kątem (Prep)"
+
+Match:	[base~"pod"] [orth~"kątem"];
+Right:	[pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact" 
+	&& case~~"gen"];
+Eval:	word(Prep:gen, 1.base " " 2.orth);
+
+
+Rule	"frazeo: pod kątem (Adv)"
+
+Match:	[base~"pod"] [orth~"kątem"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: pod ochroną"
+
+Match:	[base~"pod"] [orth~"ochroną"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: podczas gdy"
+
+Match:	[base~"podczas"] [base~"gdy"];
+Eval:	word(Adv, 0.base);
+
+
+Rule	"frazeo: podobnie jak"
+
+Match:	[base~"podobnie" && pos~"conj"] [base~"jak" && pos~"conj"];
+Eval:	word(Conj, 0.base);
+
+
+Rule	"frazeo: poza tym"
+
+Match:	[base~"poza" && pos~"prep"] [orth~"tym"];
+Right:	[case!~"inst"];
+Eval:	word(Qub, 1.base " " 2.orth);
+
+
+Rule	"frazeo: powiedzmy"
+
+Left:	[base~","];
+Match:	[orth~"powiedzmy"];
+Right:	[base~","];
+Eval:	word(Qub, 2.orth);
+
+
+Rule	"DisG: powiedzmy"
+
+Match:	[base~"powiedzmy"];
+Eval:	group(DisG, 1,1);
+
+
+#Rule	"frazeo: prawda?"
+#
+#Match:	[orth~"prawda" && pos~"subst"] ns [base~"?"];
+#Right:	ns [base~"?"];
+#Eval:	word(Interj, 1.base);
+#!! reguła nie działa
+
+
+Rule	"frazeo: prędzej czy później"
+
+Match:	[orth~"[Pp]rędzej"] [base~"czy"] [orth~"później"];
+Eval:	word(Adv, "prędzej czy później");
+
+
+Rule	"frazeo: wcześniej czy później"
+
+Match:	[orth~"[Ww]cześniej"] [base~"czy"] [orth~"później"];
+Eval:	word(Adv, "wcześniej czy później");
+
+
+Rule	"frazeo: prosit"
+
+Match:	[base~"prosit"];
+Eval:	word(Interj, 1.base);
+
+
+Rule	"frazeo: przede wszystkim"
+
+Match:	[orth~"[Pp]rzede"] [orth~"wszystkim"];
+Eval:	word(Qub, "przede wszystkim");
+
+
+Rule	"frazeo: przy okazji (Prep)"
+
+Match:	[base~"przy"] [orth~"okazji"];
+Right:	[pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact" 
+	&& case~~"gen"];
+Eval:	word(Prep:gen, 1.base " " 2.orth);
+
+
+Rule	"frazeo: przy okazji (Adv)"
+
+Match:	[base~"przy"] [orth~"okazji"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: przy pomocy"
+Match:	[base~"przy"] [orth~"pomocy"];
+Right:	[pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact" 
+	&& case~~"gen"];
+Eval:	word(Prep:gen, 1.base " " 2.orth);
+
+
+Rule	"frazeo: przy czym|tym (Conj)"
+
+Left:	[base~","];
+Match:	[base~"przy"] [orth~"czym|tym" && pos~"subst"];
+Eval:	word(Conj, 2.base " " 3.orth);
+
+
+Rule	"frazeo: przy tym (Qub)"
+
+Match:	[base~"przy"] [orth~"tym" && pos~"subst"];
+Right:	[case!~"loc"];
+Eval:	word(Qub, 1.base " " 2.orth);
+
+
+Rule	"frazeo: przykładowo"
+
+Match:	[orth~"[Pp]rzykładowo"];
+Eval:	word(Qub, 1.base);
+
+
+Rule	"DisG: przykładowo"
+
+Match:	[base~"przykładowo"];
+Eval:	group(DisG, 1,1);
+
+
+Rule	"frazeo: razem z i in."
+
+Match:	[base~"razem|łącznie|wespół|wraz"] [base~"z" && pos~~"prep"];
+Eval:	word(2, Prep, 0.base);
+
+
+Rule	"frazeo: raz po raz"
+
+Match:	[orth~"[Rr]az"] [base~"po"] [orth~"raz"];
+Eval:	word(Adv, 0.base);
+
+Rule	"frazeo: rodem z"
+
+Match:	[orth~"[Rr]odem"] [base~"z" && pos~~"prep"];
+Eval:	word(2, Prep, "rodem z");
+
+
+Rule	"frazeo: rzecz jasna|oczywista"
+
+Match:	[orth~"[Rr]zecz"] [orth~"jasna|oczywista"];
+Eval:	word(Qub, "rzecz " 2.orth);
+#w ISJP "rzecz jasna, że" to Interj, a u nas co?
+
+
+Rule	"DisG: rzecz jasna|oczywista"
+
+Match:	([base~"rzecz jasna"] | [base~"rzecz oczywista"]);
+Eval:	group(DisG, 1,1);
+
+
+Rule	"frazeo: sam w sobie"
+
+Match:	[base~"sam"] [base~"w"] [orth~"sobie"];
+Eval:	word(1, Adj, 1.base " " 2.base " " 3.orth);
+
+
+Rule	"frazeo: skoro świt"
+
+Match:	[orth~"[Ss]koro"] [orth~"świt"];
+Eval:	word(Adv, 0.base);
+
+
+Rule	"frazeo: słowo w słowo"
+
+Match:	[orth~"[Ss]łowo"] [base~"w"] [orth~"słowo"];
+Eval:	word(Adv, 0.base);
+
+
+Rule	"frazeo: status quo"
+
+Match:	[base~"status"] [base~"quo"];
+Eval:	word(1, Noun, 0.base);
+
+
+Rule	"frazeo: swego czasu"
+
+Match:	[orth~"[Ss]wego"] [orth~"czasu"];
+Eval:	word(Adv, "swego czasu");
+
+
+Rule	"frazeo: swoją drogą"
+
+Match:	[orth~"[Ss]woją"] [orth~"drogą"];
+Eval:	word(Qub, "swoją drogą");
+
+
+Rule	"DisG: swoją drogą"
+
+Match:	[base~"swoją drogą"];
+Eval:	group(DisG, 1,1);
+
+
+Rule	"frazeo: tak jakby"
+
+Left:	[base~","];
+Match:	[base~"tak"] [base~"jakby"];
+Eval:	word(Comp, 0.base);
+
+
+Rule	"frazeo: tak naprawdę"
+
+Match:	[base~"tak"] [orth~"naprawdę"];
+Eval:	word(Qub, 1.base " " 2.orth);
+
+
+Rule	"frazeo: tak zwany"
+
+Match:	[base~"tak"] [base~"zwać" && pos~"ppas"];
+Eval:	word(Adj:2.number:2.case:2.gender:pos, "tak zwany");	#LD zmiana
+#Eval:	word(2, Adj:pos, "tak zwany");
+
+
+#Rule	"frazeo: to znaczy"
+#
+#Match:	[orth~"[Tt]o"] [orth~"znaczy"];
+#Eval:	word(Conj, "to znaczy");
+#!! lepiej zdefiniować
+
+
+Rule	"frazeo: tu i ówdzie"
+
+Match:	[base~"tu"] [base~"i"] [base~"ówdzie"];
+Eval:	word(Adv, 0.base);
+
+
+Rule	"frazeo: tym razem"
+
+Match:	[orth~"[Tt]ym"] [orth~"razem"];
+Eval:	word(Adv, "tym razem");
+
+
+Rule	"frazeo: tym samym"
+
+Left:	[pos!~"prep"];
+Match:	[orth~"[Tt]ym"] [orth~"samym"];
+Eval:	word(Qub, "tym samym");
+
+
+Rule	"frazeo: tak samo"
+
+Match:	[base~"tak"] [base~"samo"];
+Eval:	word(Adv:pos, 0.base);
+
+
+Rule	"frazeo: taki sam"
+
+Match:	[base~"taki"] [base~"sam"];
+Eval:	unify(case number gender,1,2);
+	word(1, Adj, 0.base);
+
+
+Rule	"frazeo: ten sam"
+
+Match:	[base~"ten"] [base~"sam"];
+Eval:	unify(case number gender,1,2);
+	word(1, Adj, 0.base);
+
+
+Rule	"frazeo: to samo"
+
+Match:	[base~"to"] [base~"sam"];
+Eval:	unify(case number gender,1,2);
+	word(1, Noun, 1.base " samo");
+
+
+Rule	"frazeo: tyle samo"
+
+Match:	[base~"tyle"] [orth~"samo"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: tyle|tylko że"
+
+Match:	[base~"tyle|tylko"] [base~"że"];
+Eval:	word(Conj, 0.base);
+
+
+Rule	"frazeo: u boku i in."
+Match:	[base~"u"] [orth~"boku|góry|progu|schyłku|stóp"];
+Right:	[pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact" 
+	&& case~~"gen"];
+Eval:	word(Prep:gen, 1.base " " 2.orth);
+
+
+Rule	"frazeo: w biały dzień"
+
+Match:	[base~"w"] [orth~"biały"] [orth~"dzień"];
+Eval:	word(Adv, 0.base);
+
+
+Rule	"frazeo: w całej rozciągłości"
+
+Match:	[base~"w"] [orth~"całej"] [orth~"rozciągłości"];
+Eval:	word(Adv, 1.base " " 2.orth " " 3.orth);
+
+
+Rule	"frazeo: w całości"
+
+Match:	[base~"w"] [orth~"całości"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: w dodatku"
+
+Match:	[base~"w"] [orth~"dodatku"];
+Eval:	word(Qub, 1.base " " 2.orth);
+
+
+Rule	"frazeo: w głos"
+
+Match:	[base~"w"] [orth~"głos"];
+Eval:	word(Adv, 0.base);
+
+
+Rule	"frazeo: w gruncie rzeczy"
+
+Match:	[base~"w"] [orth~"gruncie"] [orth~"rzeczy"];
+Eval:	word(Qub, 1.base " " 2.orth " " 3.orth);
+
+
+Rule	"frazeo: w istocie rzeczy"
+
+Match:	[base~"w"] [orth~"istocie"] [orth~"rzeczy"];
+Eval:	word(Qub, 1.base " " 2.orth " " 3.orth);
+
+
+Rule	"frazeo: w istocie"
+
+Match:	[base~"w"] [orth~"istocie"];
+Eval:	word(Qub, 1.base " " 2.orth);
+
+
+Rule	"frazeo: w każdym razie"
+
+Match:	[base~"w"] [orth~"każdym"] [orth~"razie"];
+Eval:	word(Qub, 1.base " " 2.orth " " 3.orth);
+
+
+Rule	"DisG: w każdym razie"
+
+Match:	[base~"w każdym razie"];
+Eval:	group(DisG, 1,1);
+
+
+Rule	"frazeo: w kucki"
+
+Match:	[base~"w"] [orth~"kucki"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: w myślach|myśli"
+
+Match:	[base~"w"] [orth~"myślach|myśli"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: w najlepsze (1)"
+
+Match:	[base~"w"] [orth~"najlepsze"];
+Right:	[case!~"acc"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: w najlepsze (2)"
+
+Match:	[base~"w"] [orth~"najlepsze"];
+Right:	ns [pos~"interp"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: w oddali"
+
+Match:	[base~"w"] [base~"oddali"];
+Eval:	word(Adv, 0.base);
+
+
+Rule	"frazeo: w ostatniej chwili"
+
+Match:	[base~"w"] [orth~"ostatniej"] [orth~"chwili"];
+Eval:	word(Adv, 1.base " " 2.orth " " 3.orth);
+
+
+Rule	"frazeo: w razie czego"
+
+Match:	[base~"w"] [orth~"razie"] [orth~"czego"];
+Eval:	word(Adv, 1.base " " 2.orth " " 3.orth);
+
+
+Rule	"frazeo: w samą porę"
+
+Match:	[base~"w"] [orth~"samą"] [orth~"porę"];
+Eval:	word(Adv, 1.base " " 2.orth " " 3.orth);
+
+
+Rule	"frazeo: w zaparte"
+
+Match:	[base~"w"] [orth~"zaparte"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: w zasadzie"
+
+Match:	[base~"w"] [orth~"zasadzie"];
+Eval:	word(Qub, 1.base " " 2.orth);
+
+
+Rule	"frazeo: w zgodzie z"
+
+Match:	[base~"w"] [orth~"zgodzie"] [base~"z" && pos~~"prep"];
+Eval:	word(3, Prep, "w zgodzie z");
+
+
+Rule	"frazeo: w zupełności|pełni"
+
+Match:	[base~"w"] [orth~"zupełności|pełni"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: w celu i in."
+
+Match:	[base~"w" && pos~~"prep"] 
+	[orth~"celu|charakterze|ciągu|czasie|dole|drodze|duchu|dziedzinie|imieniu|imię|miejsce|myśl|następstwie|obliczu|obrębie|obronie|pobliże|postaci|przeciągu|przeddzień|przededniu|przypadku|ramach|razie|rodzaju|roli|sferze|skali|sprawie|stronę|środku|świetle|toku|trakcie|wydaniu|wyniku|wypadku|wysokości|zakresie|zastępstwie"];
+Right:	[pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact" 
+	&& case~~"gen"];
+Eval:	word(Prep:gen, 1.base " " 2.orth);
+
+
+Rule	"frazeo: w efekcie i in. (Prep)"
+
+Match:	[base~"w" && pos~~"prep"] 
+	[orth~"efekcie|rezultacie|głąb|głębi|pobliżu|poprzek|końcu"];
+Right:	[pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact" 
+	&& case~~"gen"];
+Eval:	word(Prep:gen, 1.base " " 2.orth);
+
+
+Rule	"frazeo: w efekcie i in. (Adv)"
+
+Match:	[base~"w" && pos~~"prep"] 
+	[orth~"efekcie|rezultacie|głąb|głębi|pobliżu|poprzek"];
+Right:	[case!~"gen"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: w końcu (Qub)"
+
+Match:	[base~"w" && pos~~"prep"] [orth~"końcu"];
+Right:	[case!~"gen"];
+Eval:	word(Qub, 1.base " " 2.orth);
+
+
+Rule	"frazeo: w lot"
+
+Match:	[base~"w"] [orth~"lot"];
+Eval:	word(Adv, 0.base);
+
+
+Rule	"frazeo: w miarę jak (Comp)"
+
+Match:	[base~"w" && pos~~"prep"] [orth~"miarę"] [base~"jak"];
+Eval:	word(Comp, 1.base " " 2.orth " " 3.base);
+
+
+Rule	"frazeo: w miarę (Prep)"
+
+Match:	[base~"w" && pos~~"prep"] [orth~"miarę"];
+Right:	[pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact" 
+	&& case~~"gen"];
+Eval:	word(Prep:gen, 1.base " " 2.orth);
+
+
+Rule	"frazeo: w miarę (Adv)"
+
+Match:	[base~"w" && pos~~"prep"] [orth~"miarę"];
+Right:	[pos~"adj|adv" && degree~"pos"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: w odniesieniu do i in."
+
+Match:	[base~"w" && pos~~"prep"] [orth~"nawiązaniu|odniesieniu|opozycji|przeciwieństwie|stosunku"] 
+	[base~"do" && pos~~"prep"];
+Eval:	word(Prep:gen, 1.base " " 2.orth " " 3.base);
+
+
+Rule	"frazeo: w odpowiedzi na"
+
+Match:	[base~"w" && pos~~"prep"] [orth~"odpowiedzi"] 
+	[base~"na" && pos~~"prep"];
+Eval:	word(Prep:acc, 1.base " " 2.orth " " 3.base);
+
+
+Rule	"frazeo: w odróżnieniu|zależności od"
+
+Match:	[base~"w" && pos~~"prep"] [orth~"odróżnieniu|zależności"] 
+	[base~"od" && pos~~"prep"];
+Eval:	word(Prep:gen, 1.base " " 2.orth " " 3.base);
+
+
+Rule	"frazeo: w ogóle"
+
+Match:	[base~"w"] [orth~"ogóle"];
+Eval:	word(Qub, 1.base " " 2.orth);
+
+
+Rule	"frazeo: w ogólności"
+
+Match:	[base~"w"] [orth~"ogólności"];
+Eval:	word(Qub, 1.base " " 2.orth);
+
+
+Rule	"frazeo: w oparciu o"
+
+Match:	[base~"w" && pos~~"prep"] [orth~"oparciu"] [base~"o" && pos~~"prep"];
+Eval:	word(Prep:acc, 1.base " " 2.orth " " 3.base);
+
+
+Rule	"frazeo: w pojedynkę"
+
+Match:	[base~"w"] [orth~"pojedynkę"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: w porozumieniu z"
+
+Match:	[base~"w" && pos~~"prep"] [orth~"porozumieniu"] 
+	[base~"z" && pos~~"prep"];
+Eval:	word(3, Prep, 1.base " " 2.orth " " 3.base);
+
+
+Rule	"frazeo: w porównaniu|związku z"
+
+Match:	[base~"w" && pos~~"prep"] [orth~"porównaniu|związku"] 
+	[base~"z" && pos~~"prep"];
+Eval:	word(3, Prep, 1.base " " 2.orth " " 3.base);
+
+
+Rule	"frazeo: w porządku (Interj)"
+
+Left:	sb;
+Match:	[base~"w" && pos~~"prep"] [orth~"porządku"];
+Right:	[pos~"interp"]? se;
+Eval:	word(Interj, 2.base " " 3.orth); #LD zmiana cyferek
+
+
+Rule	"frazeo: w porządku (Adv)"
+
+Match:	[base~"w" && pos~~"prep"] [orth~"porządku"]; 
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: wpół do"
+
+Match:	[base~"wpół|pół"] [base~"do"]; 
+Eval:	word(Prep:gen, 0.base);
+
+
+Rule	"frazeo: w sumie"
+
+Match:	[base~"w"] [orth~"sumie"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: w szczególności"
+
+Match:	[base~"w"] [orth~"szczególności"];
+Eval:	word(Qub, 1.base " " 2.orth);
+
+
+Rule	"frazeo: w ślad za"
+
+Match:	[base~"w" && pos~~"prep"] [orth~"ślad"] [base~"za" && pos~~"prep"];
+Eval:	word(Prep:inst, 1.base " " 2.orth " " 3.orth);
+
+
+Rule	"frazeo: w zamian za"
+
+Match:	[base~"w" && pos~~"prep"] [orth~"zamian"] [base~"za" && pos~~"prep"];
+Eval:	word(Prep:acc, 1.base " " 2.orth " " 3.orth);
+
+
+Rule	"frazeo: w zamian"
+
+Match:	[base~"w"] [orth~"zamian"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+Rule	"frazeo: we wnętrzu"
+
+Match:	[orth~"[Ww]e" && pos~~"prep"] [orth~"wnętrzu"];
+Right:	[pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact" 
+	&& case~~"gen"];
+Eval:	word(Prep:gen, 1.base " " 2.orth);
+
+
+Rule	"frazeo: wbrew pozorom"
+
+Match:	[base~"wbrew"] [orth~"pozorom"];
+Eval:	word(Qub, 1.base " " 2.orth);
+
+
+Rule	"frazeo: wszystko jedno"
+
+Match:	[orth~"[Ww]szystko"] [orth~"jedno"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: z całą pewnością"
+
+Match:	[base~"z"] [orth~"całą"] [orth~"pewnością"];
+Eval:	word(Qub, 1.base " " 2.orth " " 3.orth);
+
+
+Rule	"frazeo: z całych sił"
+
+Match:	[base~"z"] [orth~"całych"] [orth~"sił"];
+Eval:	word(Adv, "z " 2.orth " " 3.orth);
+
+
+Rule	"frazeo: ze wszystkich sił"
+
+Match:	[base~"z"] [orth~"wszystkich"] [orth~"sił"];
+Eval:	word(Adv, "ze " 2.orth " " 3.orth);
+
+
+Rule	"frazeo: z całej siły"
+
+Match:	[base~"z"] [orth~"całej"] [orth~"siły"];
+Eval:	word(Adv, 1.base " " 2.orth " " 3.orth);
+
+
+Rule	"frazeo: ile|co sił"
+
+Match:	[orth~"ile|co"] [orth~"sił"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: z ciężkim sercem"
+
+Match:	[orth~"[Zz]"] [orth~"ciężkim"] [orth~"sercem"];
+Eval:	word(Adv, "z " 2.orth " " 3.orth);
+
+
+Rule	"frazeo: z czasem (1)"
+
+Left:	sb;
+Match:	[base~"z" && pos~~"prep"] [orth~"czasem"];
+Eval:	word(Adv, 2.base " " 3.orth);
+
+
+Rule	"frazeo: z czasem (2)"
+
+Match:	[base~"z" && pos~~"prep"] [orth~"czasem"];
+Right:	[pos~"qub"]? $czasownik;
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: z dala|daleka od"
+
+Match:	[base~"z" && pos~~"prep"] [orth~"dala|daleka"] [base~"od"]; 
+Eval:	word(Prep:gen, 1.base " " 2.orth " " 3.base);
+
+
+Rule	"frazeo: daleko od"
+
+Match:	[base~"daleko"] [base~"od"]; 
+Eval:	word(Prep:gen, 0.base);
+
+
+Rule	"frazeo: z bliska/daleka"
+
+Match:	[base~"z" && pos~~"prep"] 
+	[orth~"bliska|cicha|dala|daleka|lekka|lewa|nagła|naprzeciwka|niedaleka|oddali|osobna|ostrożna|przeciwka|rzadka|ukosa|wolna|wysoka"]; 
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: z duszą na ramieniu"
+
+Match:	[base~"z"] [orth~"duszą"] [base~"na"] [orth~"ramieniu"]; 
+Eval:	word(Adv, "z duszą na ramieniu");
+
+
+Rule	"frazeo: z głębi i in."
+
+Match:	[base~"z" && pos~~"prep"] 
+	[orth~"głębi|końcem|okazji|perspektywy|początkiem|pomocą|powodu|przyczyny|racji|ramienia|strony|tyłu|tytułu|wyjątkiem"];
+Right:	[pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact" 
+	&& case~~"gen"];
+Eval:	word(Prep:gen, 1.base " " 2.orth);
+
+
+Rule	"frazeo: z grubsza"
+
+Match:	[base~"z" && pos~~"prep"] [orth~"grubsza"]; 
+Eval:	word(Qub, 1.base " " 2.orth);
+
+Rule	"frazeo: z gruntu"
+
+Match:	[base~"z" && pos~~"prep"] [orth~"gruntu"]; 
+Eval:	word(Adv, 1.base " " 2.orth);
+
+Rule	"frazeo: z|po kolei"
+
+Match:	[base~"z|po" && pos~~"prep"] [orth~"kolei"]; 
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+#LD Tę regułę trzeba na razie wyłączyć, bo produkuje niepełne tagi.
+#brak informacji morfologicznych dla Adj
+#Rule	"frazeo: z krwi i kości"
+
+#Nie można wziąć informacji z elementu z kontekstu, więc reguły trzeba by rozmnożyć. Wtedy będzie 70 reguł (2 liczby, 7 przypadków, 5 rodzajów).
+#Left:	[pos~"subst" && number~"sg"];
+#Match:	[base~"z"] [orth~"krwi"] [base~"i"] [orth~"kości"];
+#Eval:	word(1, Adj, "z krwi i kości");
+
+
+Rule	"frazeo: z łatwością|trudem"
+
+Match:	[base~"z" && pos~~"prep"] [orth~"łatwością|trudem"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: z pewnością"
+
+Match:	[base~"z" && pos~~"prep"] [orth~"pewnością"];
+Eval:	word(Qub, 1.base " " 2.orth);
+
+
+Rule	"frazeo: z powrotem"
+
+Match:	[base~"z"] [orth~"powrotem"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: z pozoru"
+
+Match:	[base~"z"] [orth~"pozoru"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+#LD Tę regułę trzeba na razie wyłączyć, bo produkuje niepełne tagi.
+#brak informacji morfologicznych dla Adj
+#Rule	"frazeo: z prawdziwego zdarzenia"
+#
+#Match:	[base~"z"] [orth~"prawdziwego"] [orth~"zdarzenia"];
+#Eval:	word(Adj, 1.base " " 2.orth " " 3.orth);
+
+
+Rule	"frazeo: z punktu widzenia"
+
+Match:	[base~"z" && pos~~"prep"] [orth~"punktu"] [orth~"widzenia"];
+Right:	[pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact" 
+	&& case~~"gen"];
+Eval:	word(Prep:gen, 1.base " " 2.orth " " 3.orth);
+
+
+Rule	"frazeo: z pyszna"
+
+Match:	[base~"z" && pos~~"prep"] [orth~"pyszna"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: z rana"
+
+Match:	[base~"z" && pos~~"prep"] [orth~"samego"]? [orth~"rana"]; 
+Eval:	word(Adv, 0.orth);
+
+
+Rule	"frazeo: ze smakiem"
+
+Left:	[base~"jeść|zjeść"];
+Match:	[base~"z"] [orth~"smakiem"];
+Eval:	word(Adv, 2.base " " 3.orth);
+
+
+Rule	"frazeo: z zasady"
+
+Match:	[base~"z"] [orth~"zasady|reguły"];
+Eval:	word(Qub, 1.base " " 2.orth);
+
+
+Rule	"frazeo: z zimną krwią"
+
+Match:	[base~"z"] [orth~"zimną"] [orth~"krwią"];
+Eval:	word(Adv, "z " 2.orth " " 3.orth);
+
+
+Rule	"frazeo: z -ska"
+
+Match:	[base~"z" && pos~~"prep"] [orth~".*ska" && pos~~"adjp|burk"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: z tym, że"
+
+Match:	[base~"z"] [orth~"tym"] (ns [base~","])? [base~"że"];
+Eval:	word(Conj, 1.base " " 2.orth 3.base " " 4.base);
+
+
+Rule	"frazeo: z uwagi na"
+
+Match:	[base~"z"] [orth~"uwagi"] [base~"na"]; 
+Eval:	word(Prep:acc, 1.base " " 2.orth " " 3.base);
+
+
+Rule	"frazeo: za darmo|bezcen"
+
+Match:	[base~"za" && pos~~"prep"] [base~"darmo|bezcen"];
+Eval:	word(Adv, 0.base);
+
+
+Rule	"frazeo: za to"
+
+Match:	[base~"za" && pos~~"prep"] [orth~"to"];
+Right:	[case!~"acc"];
+Eval:	word(Qub, 1.base " " 2.orth);
+
+
+Rule	"frazeo: za cenę i in."
+
+Match:	[base~"za" && pos~~"prep"] 
+	[orth~"cenę|pomocą|pośrednictwem|sprawą"];
+Right:	[pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact" 
+	&& case~~"gen"];
+Eval:	word(Prep:gen, 1.base " " 2.orth);
+
+
+Rule	"frazeo: ze względu na"
+
+Match:	[orth~"[Zz]e"] [orth~"względu"] [base~"na"]; 
+Eval:	word(Prep:acc, "ze względu na");
+
+
+Rule	"frazeo: zależnie|niezależnie od"
+
+Match:	[base~"zależnie|niezależnie" && pos~~"adv"] [base~"od" && pos~~"prep"];
+Eval:	word(Prep:gen, 0.base);
+
+
+Rule	"frazeo: zgodnie|niezgodnie z"
+
+Match:	[base~"zgodnie|niezgodnie" && pos~~"adv"] [base~"z" && pos~~"prep"];
+Eval:	word(2, Prep, 0.base);
+
+
+Rule	"frazeo: zwłaszcza że"
+
+Match:	[base~"zwłaszcza"] [base~"że|iż"];
+Eval:	word(Comp, 0.base);
+
+
+Rule	"frazeo: bez/do reszty"
+
+Match:	[base~"bez|do" && pos~~"prep"] [orth~"reszty"];
+Right:	$lub_imieslow;
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: z prawa"
+
+Match:	[base~"z" && pos~~"prep"] [orth~"prawa"];
+Right:	([base!~"do" && pos~~"prep"] | [case!~"gen"]);
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: póki co"
+
+Match:	[base~"póki" && pos~~"comp"] [orth~"co" && pos~~"subst"];
+Eval:	word(Adv, 1.base " " 2.orth);
+
+
+Rule	"frazeo: co do + gen"
+
+Match:	[orth~"[Cc]o" && pos~~"comp"] [base~"do" && pos~~"prep"]; 
+Right:	[pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact" 
+	&& case~~"gen"];
+Eval:	word(Prep:gen, 1.orth " " 2.base);
+
+
+Rule	"frazeo: mimo że/iż"
+
+Match:	[base~"mimo|pomimo"] [base~"że|iż"];
+Eval:	word(Comp, 0.base);
+
+
+Rule	"frazeo: a także"
+
+Match:	[base~"a"] [base~"także"];
+Eval:	word(Conj, 0.base);
+
+
+Rule	"frazeo: a więc (Conj)"
+
+Left:	[base~","];
+Match:	[base~"a"] [base~"więc"];
+Eval:	word(Conj, 0.base);
+
+
+Rule	"frazeo: a więc (Qub)"
+
+Left:	sb;
+Match:	[base~"a"] [base~"więc"];
+Eval:	word(Qub, 0.base);
+
+
+Rule	"frazeo: a zatem (Conj)"
+
+Left:	[base~","];
+Match:	[base~"a"] [base~"zatem"];
+Eval:	word(Conj, 0.base);
+
+
+Rule	"frazeo: a zatem (Qub)"
+
+Left:	sb;
+Match:	[base~"a"] [base~"zatem"];
+Eval:	word(Qub, 0.base);
+
+
+Rule	"frazeo: zarówno ... "
+
+Match:	[base~"zarówno|tak" && pos~~"conj"];
+Right:	[]+ ns [base~","]
+	[base~"jak" && pos~~"conj"] [base~"i" && pos~~"conj"]; 
+Eval:	word(Conj1:discr, 1.base);
+
+
+Rule	"frazeo: nie tylko ..."
+
+Match:	[base~"nie" && pos~~"conj"] [base~"tylko" && pos~~"conj"];
+Right:	[]+ (ns [base~","] []+)? ns [base~","]
+	[base~"lecz|ale" && pos~~"conj"] [base~"i|także|również"]?; 
+Eval:	word(Conj1:discr, "nie tylko");
+
+
+Rule	"frazeo: im ... "
+
+Match:	[base~"im" && pos~~"conj"];
+Right:	[]+ (ns [base~","] []+)? ns [base~","]
+	[base~"tym" && pos~~"conj"]; 
+Eval:	word(Conj1:discr, 1.base);
+
+
+Rule	"frazeo: ani ... "
+
+Match:	[base~"ani" && pos~~"conj"];
+Right:	[]+ ns [base~","]
+	[base~"ani" && pos~~"conj"]; 
+Eval:	word(Conj1:discr, 1.base);
+
+
+Rule	"frazeo: albo ... "
+
+Match:	[base~"albo" && pos~~"conj"];
+Right:	[]+ ns [base~","]
+	[base~"albo" && pos~~"conj"]; 
+Eval:	word(Conj1:discr, 1.base);
+
+
+Rule	"frazeo: nie dość, że ... "
+
+Match:	[base~"nie" && pos~"conj"] [base~"dość" && pos~"conj"]
+	ns [base~","] [base~"że"];
+Right:	[]+ ns [base~","]
+	[base~"to" && pos~~"conj"] [base~"jeszcze" && pos~~"conj"]; 
+Eval:	word(Conj1:discr, 0.base);
+
+
+Rule	"frazeo: na tyle ... "
+
+Match:	[base~"na"] [base~"tyle"];
+Right:	[]* ns [base~","]
+	[base~"na"] [base~"ile"];
+Eval:	word(Conj1:discr, 0.base);
+
+
+Rule	"frazeo: na tyle (Adv)"
+
+Match:	[base~"na"] [base~"tyle"];
+Right:	[pos~"Adj"];
+Eval:	word(Adv, 0.base);
+
+
+Rule	"frazeo: nie tyle ... "
+
+Match:	[base~"nie"] [base~"tyle"];
+Right:	[]* ns [base~","] [base~"ile|co"];
+Eval:	word(Conj1:discr, 0.base);
+
+
+Rule	"frazeo: tym bardziej że"
+
+Match:	[orth~"[Tt]ym"] [orth~"bardziej"] [base~"że"];
+Eval:	word(Comp, "tym bardziej że");
+
+
+Rule	"frazeo: tym bardziej"
+
+Match:	[orth~"[Tt]ym"] [orth~"bardziej"];
+Eval:	word(Qub, "tym bardziej");
+
+
+Rule	"frazeo: jeśli/jeżeli ... "
+
+Match:	[base~"jeśli|jeżeli|skoro|gdyby" && pos~~"comp"];
+Right:	[]+ ns [base~","] [base~"to" && pos~~"conj"]; 
+Eval:	word(Comp1:discr, 1.base);
+
+
+Rule	"frazeo: jak ... "
+
+Match:	[base~"jak" && pos~~"adv"]; ##!czy to ma być adv?
+Right:	[]+ ns [base~","]
+	[base~"to" && pos~~"conj"]; 
+Eval:	word(Comp1:discr, 1.base);
+
+
+Rule	"frazeo: o tyle ... "
+
+Match:	[base~"o"] [base~"tyle"];
+Right:	[]* ns [base~","]
+	[base~"o"] [base~"ile"];
+Eval:	word(Conj1:discr, 0.base);
+
+
+Rule	"frazeo: o ile ... "
+
+Match:	[base~"o"] [base~"ile"];
+Right:	[]* ns [base~","]
+	[base~"o"] [base~"tyle"];
+Eval:	word(Conj1:discr, 0.base);
+
+
+Rule	"frazeo: dopóki ... "
+
+Match:	[base~"dopóki" && pos~~"comp"];
+Right:	[]+ ns [base~","]
+	[base~"dopóty" && pos~~"conj"]; 
+Eval:	word(Comp1:discr, 1.base);
+
+
+Rule	"frazeo: ..., jak i"
+
+Left:	[base~"zarówno|tak" && pos~"Conj1"] []+; 
+Match:	ns [base~","]
+	[base~"jak" && pos~~"conj"] [base~"i|też|również"]; 
+Eval:	word(Conj2:discr, 0.base);
+
+
+Rule	"frazeo: jak również"
+
+Match:	[base~"jak" && pos~~"|conj|adv"] [base~"również" && pos~"conj|qub"]; 
+Eval:	word(Conj, 0.base);
+#nie działa (plik morph-Inne2)
+
+Rule	"frazeo: ..., ale|lecz i|także"
+
+Left:	[base~"nie tylko" && pos~~"Conj1"] []+ (ns [base~","] []+)?;
+Match:	ns [base~","]
+	[base~"lecz|ale" && pos~~"conj"] [base~"i|także|również"]?; 
+Eval:	word(Conj2:discr, 0.base);
+
+
+Rule	"frazeo: ..., tym"
+
+Left:	[base~"im" && pos~~"Conj1"] []+ (ns [base~","] []+)?;
+Match:	ns [base~","] [base~"tym" && pos~~"conj"]; 
+Eval:	word(Conj2:discr, 0.base);
+
+
+Rule	"frazeo: ..., ani"
+
+Left:	[base~"ani" && pos~~"Conj1"] []+;
+Match:	ns [base~","]
+	[base~"ani" && pos~~"conj"]; 
+Eval:	word(Conj2:discr, 0.base);
+
+
+Rule	"frazeo: ..., albo"
+
+Left:	[base~"albo" && pos~~"Conj1"] []+;
+Match:	ns [base~","]
+	[base~"albo" && pos~~"conj"]; 
+Eval:	word(Conj2:discr, 0.base);
+
+
+Rule	"frazeo: ..., to jeszcze "
+
+Left:	[base~"nie dość, że" && pos~~"Conj1"] []+;
+Match:	ns [base~","]
+	[base~"to" && pos~~"conj"] [base~"jeszcze" && pos~~"conj"]; 
+Eval:	word(Conj2:discr, 0.base);
+
+
+Rule	"frazeo: ... na ile"
+
+Left:	[base~"na tyle" && pos~~"Conj1"] []*;
+Match:	ns [base~","] [base~"na"] [base~"ile"];
+Eval:	word(Conj2:discr, 0.base);
+
+
+Rule	"frazeo:  ... ile|co"
+
+Left:	[base~"nie tyle" && pos~~"Conj1"] []*;
+Match:	ns [base~","] [base~"ile|co"];
+Eval:	word(Conj2:discr, 0.base);
+
+
+Rule	"frazeo:  (jeśli)..., to "
+
+Left:	[base~"jeśli|jeżeli|skoro|gdyby" && pos~~"Comp1"] []+;
+Match:	ns [base~","][base~"to" && pos~~"conj"]; 
+Eval:	word(Comp2:discr, 0.base);
+
+
+Rule	"frazeo: (jak) ..., to"
+
+Left:	[base~"jak" && pos~~"Comp1"] []+; 
+Match:	ns [base~","] [base~"to" && pos~~"conj"]; 
+Eval:	word(Comp2:discr, 0.base);
+
+
+Rule	"frazeo: ... o ile"
+
+Left:	[base~"o tyle" && pos~~"Conj1"] []*;
+Match:	ns [base~","] [base~"o"] [base~"ile"];
+Eval:	word(Conj2:discr, 0.base);
+
+
+Rule	"frazeo: ... o tyle"
+
+Left:	[base~"o ile" && pos~~"Conj1"] []*;
+Match:	ns [base~","] [base~"o"] [base~"tyle"];
+Eval:	word(Conj1:discr, 0.base);
+
+
+Rule	"frazeo: ... dopóty"
+
+Left:	[base~"dopóki" && pos~~"Comp1"] []+;
+Match:	ns [base~","]
+	[base~"dopóty" && pos~~"conj"]; 
+Eval:	word(Comp2:discr, 0.base);
+
+
+##$$ dwufunkcyjne
+##do przesady
+##do woli
+#do dnia - wykluczyć subst, pact, adj z prawej (warto?)
+#po pijaku
+#na czele
+
+##JW bliższe frazeologizmom
+
+Rule	"frazeo: tylko i wyłącznie"
+
+Match:	[base~"tylko"] [base~"i"] [base~"wyłącznie"]; 
+Eval:	word(Qub, 0.base);
+
+
+Rule	"frazeo: w dalszym ciągu"
+
+Match:	[base~"w" && pos~~"prep"] [orth~"dalszym"] [orth~"ciągu"]; 
+Eval:	word(Adv, 1.base " " 2.orth " " 3.orth);
+
+
+Rule	"frazeo: za wszelką cenę"
+
+Match:	[base~"za" && pos~~"prep"] [orth~"wszelką"] [orth~"cenę"]; 
+Eval:	word(Adv, 1.base " " 2.orth " " 3.orth);
+
+
+
+##reguły dla skrótów
+
+
+Rule	"Brev: %"
+
+Match:	[base~"%" && pos~~"interp"];
+Right:	[];
+Eval:	word(Brev:npun:NOUN, "procent");
+
+Rule	"Brev: §"
+
+Match:	[base~"§" && pos~~"interp"];
+Right:	[];
+Eval:	word(Brev:npun:NOUN, "paragraf");
+
+
+Rule	"Brev: °"
+
+Match:	[base~"°" && pos~~"interp"];
+Right:	[]; #ns [pos~"interp"]; #!Spejd protestuje
+Eval:	word(Brev:npun:NOUN, "stopień");
+
+
+Rule	"Brev: ub.r. (osobno) (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"ubiegły"] 
+	ns [base~"\."] ns
+	[pos~~"brev" && fullstoppedness~~"pun" && base~~"rok"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NG, "ubiegły rok");
+#czy to nie powinien być jeden segment?
+
+
+Rule	"Brev: ub.r. (osobno) (3)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"ubiegły"] 
+	ns [base~"\."] ns
+	[pos~~"brev" && fullstoppedness~~"pun" && base~~"rok"] 
+	ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:NG, "ubiegły rok");
+#czy to nie powinien być jeden segment?
+
+
+Rule	"Brev: r. (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"rok"] ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: r. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"rok"] ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: r. (3)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"rok"] ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:NOUN, 1.base);
+
+
+Rule	"Brev: r. bez kropki"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"rok"];
+Eval:	word(Brev:pun:NOUN, 1.base);
+##!! nie wiem, jak zapisać, że jako prawy kontekst nie może być "ns kropka"
+
+Rule	"Brev: l. (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"lata"] ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: l. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"lata"] ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: l. (3)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"lata"] ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:NOUN, 1.base);
+
+
+Rule	"Brev: w. (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"wiek"] ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: w. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"wiek"] ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: w. (3)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"wiek"] ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:NOUN, 1.base);
+
+Rule	"Brev: w. (wyspa1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"wyspa"] ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+Rule	"Brev: w. (wyspa2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"wyspa"] ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+Rule	"Brev: w. (wyspa3)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"wyspa"] ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:NOUN, 1.base);
+
+
+Rule	"Brev: godz. godz."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"godzina"] 
+	ns [base~"\."]
+	[pos~~"brev" && fullstoppedness~~"pun" && base~~"godzina"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, "godziny");
+
+
+Rule	"Brev: b.m. (osobno)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"bieżący"] 
+	ns [base~"\."]
+	[pos~~"brev" && fullstoppedness~~"pun" && base~~"miesiąc"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NG, "bieżący miesiąc");
+
+
+Rule	"Brev: godz.|sek.|dn.|mies. (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" 
+	&& base~~"godzina|sekunda|dzień|miesiąc"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: godz.|sek.|mies. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"godzina|sekunda|miesiąc"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: godz.|sek. (3)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"godzina|sekunda"] 
+	ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:NOUN, 1.base);
+
+
+Rule	"Brev: godz. (4)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"godzina"] 
+	ns [base~"\."];
+Right:	ns [pos~"adj|num"];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: pon. i in."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" 
+	&& base~~"poniedziałek|wtorek|środa|czwartek|piątek|sobota|niedziela"] 
+	ns [base~"\."];	#LD dodałam pozostałe dni tygodnia
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: pt."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"piątek"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: tys. (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"tysiąc"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: tys. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"tysiąc"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: tys. (3)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"tysiąc"] 
+	ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:NOUN, 1.base);
+
+
+Rule	"Brev: tys. (bez kropki)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"tysiąc"];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: l. (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"liczba"] ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+Rule	"Brev: proc.|prom. (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"procent|promil"] ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: proc. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"procent"] ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: proc. (3)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"procent"] ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:NOUN, 1.base);
+
+
+Rule	"Brev: pkt. (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"punkt"] ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: pkt. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"punkt"] ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: pkt. (2a)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"punkt"] ns [base~"\."];
+Right:	ns [orth~"[0-9]+"];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: pkt. (2b)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"punkt"] ns [base~"\."];
+Right:	ns [orth~"[0-9]+[0-9.]+"];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: pkt. (3)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"punkt"] ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:NOUN, 1.base);
+
+
+Rule	"Brev: pkt|ppkt"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"punkt|podpunkt"];
+Eval:	word(Brev:npun:NOUN, 1.base);
+
+
+Rule	"Brev: szt."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"sztuka"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: poz.|wyd."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"pozycja|wydanie"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: poł.|pocz. (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"połowa|początek"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: poł.|pocz. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"połowa|początek"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: poł.|pocz. (3)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"połowa|początek"] 
+	ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:NOUN, 1.base);
+
+
+Rule	"Brev: poł. (bez kropki)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"połowa"];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+#!jak zaznaczyć, że tu nie może być "ns ."?
+
+Rule	"Brev: fot. (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" 
+	&& base~~"fotografia|fotograf|zdjęcie"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: fot. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"fotografia"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: art.|h."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"artysta|homoseksualista"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: proj.|oprac."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"projekt|opracowanie"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"NGb: Brev(N=oprac.|proj.)"
+
+Match:	[base~"opracowanie|projekt" && pos~"Brev"];
+Right:	[base~"[A-ZŁŚ].*" && case~"nom"];
+Eval:	group(NGb,1,1);
+
+
+Rule	"Brev: lek. med."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"lekarz"] 
+	ns [base~"\."]
+	[pos~~"brev" && fullstoppedness~~"pun" && base~~"medycyna"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NG, "lekarz medycyny");
+
+
+Rule	"Brev: lek."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"lekarz"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+#jeszcze nie było 
+
+Rule	"Brev: mieszk. (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"mieszkaniec"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: mieszk. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"mieszkaniec"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: mieszk. (3)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"mieszkaniec"] 
+	ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:NOUN, 1.base);
+
+
+Rule	"Brev: Dz.U. (razem)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"dziennik.ustaw"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NG, 1.base);
+
+
+Rule	"Brev: Dz.U. (osobno)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"dziennik"] 
+	ns [base~"\."] ns?
+	[pos~~"brev" && fullstoppedness~~"pun" && base~~"ustawa"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NG, "dziennik ustaw");
+#?czy na etapie segmentacji to nie powinien być jeden brev?
+
+
+Rule	"Brev: Społ.-Ekon."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"społeczno"] 
+	ns [base~"\."] ns
+	[pos~~"brev" && fullstoppedness~~"pun" && base~~"ekonomiczny"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:ADJ, "społeczno-ekonomiczny");
+#?czy na etapie segmentacji to nie powinien być jeden brev?
+
+Rule	"Brev: ust."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"ustęp|ustawa"] ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: ust. (4)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"ustęp"] ns [base~"\."];
+Right:	ns [pos~"adj|num"];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: lit."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"litera"] ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: arch."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"archiwum"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: dol. (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"dolar"] ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: dol. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"dolar"] ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: dol. (3)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"dolar"] ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:NOUN, 1.base);
+
+
+Rule	"Brev: fund."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"fundacja"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: Lic."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"liceum"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: kl."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"klasa"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: im."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"imienia"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: przyp."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"przypisek|przypis"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: tel."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"telefon"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: tel. (2*)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"telefon"] 
+	ns [base~"\."];
+Right:	ns [];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: tel (2) (bez kropki)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"telefon"];
+Right:	ns [base~"/|:"];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: s.|str.|ss.|t.|k.|rozdz."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" 
+	&& base~~"strona|strony|tom|karta|rozdział"] 
+	ns [base~"\."];
+Right:	ns? [];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: str. bez kropki"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"strona"]; 
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: pok.|m."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"pokój|mieszkanie"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: art. (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"artykuł"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: art. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"artykuł"] 
+	ns [base~"\."];
+Right:	ns [base~"[1-9][0-9]*"];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: par."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"paragraf"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: cyt."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"cytat"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: ref. (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"refren"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: ref. (3)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"refren"] 
+	ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:NOUN, 1.base);
+
+
+Rule	"Brev: rys.|tab."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"rysunek|ilustracja|tabela"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: rys. (4)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"rysunek"] 
+	ns [base~"\."];
+Right:	ns [pos~"adj|num"];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: ryc. (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"rycina"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: ryc. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"rycina"] 
+	ns [base~"\."];
+Right:	ns [base~":"];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: wkł. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"wkładka"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: temp."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"temperatura"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: sygn.|zn."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"sygnatura|znak"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: ms."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"manuscriptum"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: reż.|przebud."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" 
+	&& base~~"reżyseria|przebudowa|przyjazd"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: zm. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"zmiana"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: st."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"stopień"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: stow.|tow."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"stowarzyszenie|towarzystwo"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: al.|ul.|pl."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"aleja|ulica|plac"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: ul.|pl. (4)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"ulica|plac"] 
+	ns [base~"\."];
+Right:	ns [];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: złożone strony świata (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" 
+	&& base~~"północny|południowy"] ns [base~"\."]
+	ns? [pos~~"brev" && fullstoppedness~~"pun" 
+	&& base~~"wschód|zachód"] ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NG, 1.base " " 5.base);
+
+
+Rule	"Brev: złożone strony świata (3)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" 
+	&& base~~"północny|południowy"] ns [base~"\."]
+	ns? [pos~~"brev" && fullstoppedness~~"pun" 
+	&& base~~"wschód|zachód"] ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:NG, 1.base " " 5.base);
+
+
+Rule	"Brev: strony świata (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" 
+	&& base~~"wschód|zachód|północ|południe"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: strony świata (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" 
+	&& base~~"wschód|zachód|północ|południe"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: strony świata (3)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" 
+	&& base~~"wschód|zachód|północ|południe"] 
+	ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:NOUN, 1.base);
+
+
+Rule	"Brev: p. (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"piętro"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: p. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"piętro"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: j."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"język"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: kop."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"kopalnia"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: Oddz.|Konst.|Dep."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"oddział|Konstytucja|departament"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: łac. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"łacina"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: śp."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"świętej.pamięci"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NG, 1.base);
+
+
+Rule	"Brev: Sp."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"spółka"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: o.o."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" 
+	&& base~~"ograniczona odpowiedzialność"] ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NG, 1.base);
+
+
+Rule	"Brev: S.C."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" 
+	&& base~~"spółka cywilna"] ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NG, 1.base);
+
+
+Rule	"Brev: Ś.P. (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"świętej"] 
+	ns [base~"\."] ns
+	[pos~~"brev" && fullstoppedness~~"pun" && base~~"pamięci"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NG, 1.base);
+
+
+Rule	"Brev: Ś.P. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"świętej"] 
+	ns [base~"\."] ns
+	[pos~~"brev" && fullstoppedness~~"pun" && base~~"pamięci"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:NG, 1.base);
+
+
+Rule	"Brev: mkw. (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"metr.kwadratowy"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NG, 1.base);
+
+
+Rule	"Brev: mkw. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"metr.kwadratowy"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:NG, 1.base);
+
+
+Rule	"Brev: m kw. (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"metr"] 
+	[pos~~"brev" && fullstoppedness~~"pun" && base~~"kwadratowy"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NG, 1.base);
+
+
+Rule	"Brev: m kw. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"metr"] 
+	[pos~~"brev" && fullstoppedness~~"pun" && base~~"kwadratowy"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:NG, 1.base);
+
+
+Rule	"Brev: m kw. (3)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"metr"] 
+	[pos~~"brev" && fullstoppedness~~"pun" && base~~"kwadratowy"] 
+	ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:NG, 1.base);
+
+
+Rule	"Brev: cdn./c.d.n. (3)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"ciąg.dalszy.nastąpi"] 
+	ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:DisG, 1.base);
+
+
+Rule	"Brev: Cd. (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"ciąg.dalszy"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NG, 1.base);
+#zmienić na DisG?
+
+
+Rule	"Brev: cd. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"ciąg.dalszy"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:NG, 1.base);
+
+
+Rule	"Brev: agd. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && 
+	base~~"artykuły gospodarstwa domowego"] ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:NG, 1.base);
+#? dlaczego pun?
+
+Rule	"Brev: e.w."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"ekwiwalent wodny"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NG, 1.base);
+
+
+Rule	"Brev: A.D."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"Anno.Domini"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NG, 1.base);
+
+
+Rule	"Brev: M.P."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"military police"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NG, 1.base);
+
+
+Rule	"Brev: Ltd. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"limited.company"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:NG, 1.base);
+
+
+Rule	"Brev: T.S.S."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"Turbine"] 
+	ns [base~"\."] ns
+	[pos~~"brev" && fullstoppedness~~"pun" && base~~"Steam"] 
+	ns [base~"\."] ns
+	[pos~~"brev" && fullstoppedness~~"pun" && base~~"Ship"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NG, "Turbine Steam Ship");
+
+
+Rule	"Brev: S.T., N.T. (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" 
+	&& base~~"Stary Testament|Nowy Testament"]
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NG, 1.base);
+
+
+Rule	"Brev: S.T., N.T. (3)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" 
+	&& base~~"Stary Testament|Nowy Testament"]
+	ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:NG, 1.base);
+
+
+Rule	"Brev: Mk|Mt|Łk|J"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" 
+	&& base~~"Ewangelia według świętego Marka|Ewangelia według świętego Mateusza|Ewangelia według świętego Łukasza|Ewangelia według świętego Jana"];
+Eval:	word(Brev:npun:NG, 1.base);
+
+
+Rule	"Brev: Mk|Mt|Łk|J (wg św.)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" 
+	&& base~~"Ewangelia wg św. Marka|Ewangelia wg św. Mateusza|Ewangelia wg św. Łukasza|Ewangelia wg św. Jana"];
+Eval:	word(Brev:npun:NG, 1.base);
+#jak powinno być: "według świętego" czy "wg św."?
+
+
+Rule	"Brev: Kol|Kr|Dz"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" 
+	&& base~~"List do Kolosan|List do Koryntian|Dzieje Apostolskie|List do Efezjan"];
+Eval:	word(Brev:npun:NG, 1.base);
+#dopisać wszystkie listy
+
+
+Rule	"Brev: Biblia - Księgi"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"Księga.Joela|Księga.Samuela|Księga.Izajasza|Księga.Wyjścia|Księga Powtórzonego Prawa|Księga.Jonasza|Księga.Mądrości|Księga.Ezechiela"];
+Eval:	word(Brev:npun:NG, 1.base);
+#dopisać wszystkie księgi
+
+
+Rule	"Brev: ĆD"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"Ćwiczenia Duchowe"];
+Eval:	word(Brev:npun:NG, 1.base);
+
+
+Rule	"Brev: MB"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"Matka Boska"];
+Eval:	word(Brev:npun:NG, 1.base);
+
+
+Rule	"Brev: Ś-W"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"Ściana Wschodnia"]; 
+Right:	[];
+Eval:	word(Brev:npun:NG, 1.base);
+
+
+Rule	"Brev: k."
+
+Left:	[base~"żółty"] ns;
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"kartka"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:NOUN, 3.base);#LD zmiana cyferki
+
+
+Rule	"Brev: P. (Porrhomma)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"Porrhomma"] 
+	ns [base~"\."];
+Right:	[base~"moravicum"];
+Eval:	word(Brev:pun:XXX, 1.base);
+
+
+Rule	"Brev: K.W."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"Krzyż"] 
+	ns [base~"\."] 
+	[pos~~"brev" && fullstoppedness~~"pun" && base~~"Walecznych"] 
+	ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:NG, "Krzyż Walecznych");
+
+
+Rule	"Brev: INF. WŁ."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"informacja"] 
+	ns [base~"\."] 
+	[pos~~"brev" && fullstoppedness~~"pun" && base~~"własny|własna"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:NG, "informacja własna");
+
+
+Rule	"Brev: woj. (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"województwo"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: woj. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"województwo"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: woj. (2*)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"województwo|powiat"] 
+	ns [base~"\."];
+Right:	ns [];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: jez.|rz.|dol.|Przeł."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" 
+	&& base~~"[Jj]ezioro|rzeka|dolina|[Pp]rzełęcz"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: rez."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"rezerwat|rzeka"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: m.st."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"miasto"] 
+	ns [base~"\."] ns
+	[pos~~"brev" && fullstoppedness~~"pun" && base~~"stołeczny"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NG, "miasto stołeczne");
+
+
+Rule	"Brev: pow.|gm.|m.|os."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" 
+	&& base~~"powiat|gmina|miasto|osiedle"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: m. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"miasto"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: m. (3)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"miasto"] 
+	ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:NOUN, 1.base);
+
+
+Rule	"Brev: ok."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"okolica"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: red.(1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"redaktor|redakcja"]
+	 ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: red. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"redaktor|redakcja"]
+	 ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+Rule	"Brev: prof.|doc."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"profesor|docent"]
+	 ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: inż."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"inżynier"]
+	 ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: arch."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"architekt"]
+	 ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: dyr."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"dyrektor|dyrekcja"]
+	 ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: min."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"minister|ministerstwo"]
+	 ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: mec."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"mecenas"]
+	 ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: zast."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"zastępca"]
+	 ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: gen. gen."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"generał"] 
+	ns [base~"\."]
+	[pos~~"brev" && fullstoppedness~~"pun" && base~~"generał"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, "generałowie");
+
+
+Rule	"Brev: gen. bryg."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"generał"] 
+	ns [base~"\."]
+	[pos~~"brev" && fullstoppedness~~"pun" && base~~"brygada"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NG, "generał brygady");
+
+
+Rule	"Brev: gen. dyw."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"generał"] 
+	ns [base~"\."]
+	[pos~~"brev" && fullstoppedness~~"pun" && base~~"dywizja"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NG, "generał dywizji");
+
+
+Rule	"Brev: gen.|kpt.|por.|ppor."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" 
+	&& base~~"generał|kapitan|porucznik|podporucznik"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: st. szer."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"starszy"] 
+	ns [base~"\."]
+	[pos~~"brev" && fullstoppedness~~"pun" && base~~"szeregowy"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NG, "starszy szeregowy");
+
+
+Rule	"Brev: st. post."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"starszy"] 
+	ns [base~"\."]
+	[pos~~"brev" && fullstoppedness~~"pun" && base~~"posterunkowy"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NG, "starszy posterunkowy");
+
+
+Rule	"Brev: st. asp."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"starszy"] 
+	ns [base~"\."]
+	[pos~~"brev" && fullstoppedness~~"pun" && base~~"aspirant"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NG, "starszy aspirant");
+
+
+Rule	"Noun: st. sierżant"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"starszy"] 
+	ns [base~"\."]
+	[pos~~"subst" && base~~"sierżant"];
+Eval:	word(4, Noun, "starszy sierżant");
+##!! uznałam za Noun, bo centrum grupy nie jest skrótem
+
+
+Rule	"Brev: mł. insp."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"młodszy"] 
+	ns [base~"\."]
+	[pos~~"brev" && fullstoppedness~~"pun" && base~~"inspektor"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NG, "młodszy inspektor");
+
+
+Rule	"Brev: młodszy insp."
+
+Match:	[pos~~"adj" && orth~~"[Mm]łodszy"] 
+	[pos~~"brev" && fullstoppedness~~"pun" && base~~"inspektor"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NG, "młodszy inspektor");
+
+
+Rule	"Brev: insp."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"inspektor"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NG, 1.base);
+
+
+Rule	"Brev: szer.|kom."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"szeregowy|komendant"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: tow.|kol."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" 
+	&& base~~"towarzysz|towarzyszka|kolega"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: hm.|dh."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"harcmistrz|druh"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: p.|pp."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"pan|pani|państwo|panowie"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: p. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"pan|pani|państwo"] 
+	ns [base~"\."];
+Right:	ns [];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: ks.|o.|s."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"ksiądz|ojciec|siostra"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: ss. (bez kropki)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"siostra"];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: ks.|hr."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"książę|hrabia"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: OO."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"ojcowie"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: ps."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"pseudonim"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: pos."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"poseł"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: kom.|nadkom.|podkom."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" 
+	&& base~~"komisarz|nadkomisarz|podkomisarz"] ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: jr. (pun)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"junior"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: jr (npun)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"junior"];
+Eval:	word(Brev:npun:NOUN, 1.base);
+
+
+Rule	"Brev: dyw.|p."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"dywizja|pułk"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: p. (2*)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"pułk"] 
+	ns [base~"\."];
+Right:	ns;
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: uł. 3)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"ułan"] 
+	ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:NOUN, 1.base);
+
+
+Rule	"Brev: kat. (3)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"kategoria"] 
+	ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:NOUN, 1.base);
+
+
+Rule	"Brev: pow.|obw.|odl.|poj."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" 
+	&& base~~"powierzchnia|obwód|odległość|pojemność"] ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: głęb.|dł.|szer.|wys."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" 
+	&& base~~"głębokość|długość|szerokość|wysokość"] 
+	ns [base~"\."];
+Right:	ns? [];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: k.p.c. (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" 
+	&& base~~"kodeks postępowania cywilnego"] ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NG, 1.base);
+
+
+Rule	"Brev: k.p.c. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" 
+	&& base~~"kodeks postępowania cywilnego"] ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:NG, 1.base);
+
+
+Rule	"Brev: k.w. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"kodeks wykroczeń"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:NG, 1.base);
+
+
+Rule	"Brev: odp. (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"odpowiedzialność"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: k.k."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"kodeks"] 
+	ns [base~"\."] ns
+	[pos~~"brev" && fullstoppedness~~"pun" && base~~"karny"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NG, "kodeks karny");
+#?czy na etapie segmentacji to nie powinien być jeden brev?
+
+
+Rule	"Brev: k.p."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"kodeks"] 
+	ns [base~"\."] 
+	[pos~~"brev" && fullstoppedness~~"pun" && base~~"praca"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NG, "kodeks pracy");
+#?czy na etapie segmentacji to nie powinien być jeden brev?
+
+
+Rule	"Brev: Zw. Zaw."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"związek"] 
+	ns [base~"\."]
+	[pos~~"brev" && fullstoppedness~~"pun" && base~~"zawodowy"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NG, "związek zawodowy");
+
+
+Rule	"Brev: pap."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"papier"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: wielka litera z kropką przed skrótem"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" 
+	&& base~~"[A-ZŁŚŻĆŹ]"] ns [base~"\."];
+Right:	ns [pos~"brev"];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+Rule	"Brev: wielka litera z kropką + segment"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" 
+	&& base~~"A|B|C|Ć|D|E|F|G|H|I|J|K|L|Ł|M|N|O|P|Q|R|S|Ś|T|U|V|W|Z|Ź|Ż"] ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+Rule	"Brev: litera Br."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"Br"] ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+Rule	"Brev: litera Ch. (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"Ch"] ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+Rule	"Brev: litera Ch. (3)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"Ch"] ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:NOUN, 1.base);
+
+Rule	"Brev: litera Cz. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"Cz"] ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+Rule	"Brev: litera Cz. (3)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"Cz"] ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:NOUN, 1.base);
+
+Rule	"Brev: litera St. (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"St"] ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+Rule	"Brev: litera St. (1a)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"Stanisław"] ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+Rule	"Brev: litera Sz. (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"Sz"] ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+Rule	"Brev: litera Sz. (2a)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"Sz"] ns [base~"\."];
+Right:	ns [pos~"brev"];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+Rule	"Brev: litera Sz. (3)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"Sz"] ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:NOUN, 1.base);
+
+
+Rule	"Brev: litera Th."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"Th"] ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+Rule	"Brev: litera Wł. (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"Wł"] ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+Rule	"Brev: wielka litera z kropką + znak interpunkcyjny"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" 
+	&& base~~"A|B|C|D|E|F|G|H|I|J|K|L|Ł|M|N|O|P|Q|R|S|Ś|T|U|W|Z|Ż"] ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+Rule	"Brev: litera Ch. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"Ch"] ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+Rule	"Brev: litera Sz. (2)"
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"Sz"] ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+Rule	"Brev: wielka litera (base z kropką) (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" 
+	&& base~~"A\.|B\.|C\.|D\.|E\.|F\.|G\.|H\.|I\.|J\.|K\.|L\.|Ł\.|M\.|N\.|O\.|P\.|Q\.|R\.|S\.|Ś\.|T\.|U\.|W\.|Z\.|Ż\."] ns [base~"\."];
+Right:	ns [];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+Rule	"Brev: wielka litera (base z kropką) (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" 
+	&& base~~"A\.|B\.|C\.|D\.|E\.|F\.|G\.|H\.|I\.|J\.|K\.|L\.|Ł\.|M\.|N\.|O\.|P\.|Q\.|R\.|S\.|Ś\.|T\.|U\.|W\.|Z\.|Ż\."] ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+Rule	"Brev: wielka litera z kropką na końcu zdania"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" 
+	&& base~~"A|B|C|D|E|F|G|H|I|J|K|L|Ł|M|N|O|P|Q|R|S|Ś|T|U|W|Z|Ż"] ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:NOUN, 1.base);
+
+Rule	"Brev: wielka litera bez kropki"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"A|B|C|D|E|F|G|H|I|J|K|L|Ł|M|N|O|P|R|S|Ś|T|U|W|Z"];
+Eval:	word(Brev:npun:NOUN, 1.base);
+
+
+Rule	"Brev: wielka litera i dwukropek"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun|npun" && base~~"A|B|C|D|E|F|G|H|I|J|K|L|Ł|M|N|O|P|R|S|Ś|T|U|W|Z"];
+Right:	ns [base~":"];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: wielka litera z kropką"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"A|B|C|D|E|F|G|H|I|J|K|L|Ł|M|N|O|P|R|S|Ś|T|U|W|Z"] ns [base~"\."];
+Right:	(ns | []);
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: duże litery:"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun|npun" && base~~"[A-ZŁŚŻ][A-ZŁŚŻ]+"];
+Right:	ns [base~":"];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: duże litery :"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"[A-ZŁŚŻ][A-ZŁŚŻ][a-z]?"];
+Right:	[base~":"];
+Eval:	word(Brev:npun:NOUN, 1.base);
+
+
+Rule	"Brev: duże litery na końcu zdania"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"[A-ZŁŚŻ][A-ZŁŚŻ]"];
+Right:	se;
+Eval:	word(Brev:npun:NOUN, 1.base);
+
+
+Rule	"Brev: mała litera z kropką jako inicjał"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"a|b|c|cz|d|e|f|g|h|i|j|k|l|ł|m|n|o|p|r|s|ś|t|u|w|z"] ns [base~"\."];
+Right:	(ns | []);
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: mała litera z kropką jako inicjał"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"a|b|c|cz|d|e|f|g|h|i|j|k|l|ł|m|n|o|p|r|s|ś|t|u|w|z"] ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:NOUN, 1.base);
+
+
+Rule	"Brev: skrócone imię (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" 
+	&& base~~"Andrzej|Zenon|Małgorzata|Tadeusz|Grażyna|Krystyna"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: skrócone imię (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" 
+	&& base~~"Andrzej|Zenon|Małgorzata|Tadeusz|Grażyna|Krystyna"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: S.=sen? (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"sen"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: S.=sen? (3)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"sen"] 
+	ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:NOUN, 1.base);
+
+
+Rule	"Brev: Wlkp|Op.|GD. (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"Wielkopolski|Gdański"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:ADJ, 1.base);
+
+
+Rule	"Brev: Wlkp (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"Wielkopolski|Gdański"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:ADJ, 1.base);
+
+
+Rule	"Brev: Wlkp|Op.|GD. (3)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" 
+	&& base~~"Wielkopolski|Opolskie|Gdański"] 
+	ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:ADJ, 1.base);
+#!czy nie powinno być Opolski? (NKJP_1M_1305000001942)
+
+
+Rule	"Brev: Płd (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" 
+	&& base~~"południowy|północny|wschodni|zachodni"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:ADJ, 1.base);
+
+
+Rule	"Brev: Płd (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun"
+	&& base~~"południowy|północny|wschodni|zachodni"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:ADJ, 1.base);
+
+
+Rule	"Brev: Płd (2*)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"północny"] 
+	ns [base~"\."];
+Right:	ns;
+Eval:	word(Brev:pun:ADJ, 1.base);
+#reguła do usunięcia
+
+Rule	"Brev: Płd (3)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" 
+	&& base~~"południowy|północny|wschodni|zachodni"] 
+	ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:ADJ, 1.base);
+
+
+Rule	"Brev: W. (adj)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"wielki|Wielki"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:ADJ, 1.base);
+
+
+Rule	"Brev: św. św."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"święty"] 
+	ns [base~"\."]
+	[pos~~"brev" && fullstoppedness~~"pun" && base~~"święty"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:ADJ, "święci");
+
+
+Rule	"Brev: św.|St.|Najśw. (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" 
+	&& base~~"święty|saint|najświętszy"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:ADJ, 1.base);
+
+
+Rule	"Brev: St"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"Saint"];
+Eval:	word(Brev:npun:ADJ, 1.base);
+
+
+Rule	"Brev: św. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"święty"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:ADJ, 1.base);
+
+
+Rule	"Brev: św. (3)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"święty"] 
+	ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:ADJ, 1.base);
+
+
+Rule	"Brev: paraf.|gm. (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"parafialny|gminny"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:ADJ, 1.base);
+
+
+Rule	"Brev: paraf. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"parafialny"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:ADJ, 1.base);
+
+Rule	"Brev: m.in. (!)" ##czy to nie jest byk?
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"między"] 
+	ns [base~"\."] ns?
+	[pos~~"brev" && fullstoppedness~~"pun" && base~~"inny|innymi"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:DisG, "między innymi");
+
+
+Rule	"Brev: m.in. (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"między.innymi"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:DisG, 1.base);
+
+
+Rule	"Brev: m.in. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"między.innymi"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:DisG, 1.base);
+
+
+Rule	"DisG: między innymi"
+
+Match:	[base~"między.innymi"];
+Eval:	group(DisG, 1,1);
+
+
+Rule	"Brev: in.(1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"inny"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:ADJ, 1.base);
+
+
+Rule	"Brev: in.(2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"inny"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:ADJ, 1.base);
+
+
+Rule	"Brev: in.(3)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"inny"] 
+	ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:ADJ, 1.base);
+
+
+Rule	"Brev: b.|d.|st.|późn.|zm.|zam.|śr.|dysk.|pojed."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" 
+	&& base~~"były|dawny|stary|późniejszy|zmarły|zamieszkały|średni|dyskusyjny|pojedynczy"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:ADJ, 1.base);
+
+
+Rule	"Brev: b.|d.|st.|późn.|zm.|zam.|śr.|dysk.|pojed. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" 
+	&& base~~"były|dawny|stary|późniejszy|zmarły|zamieszkały|średni|dyskusyjny|pojedynczy"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:ADJ, 1.base);
+
+
+Rule	"Brev: d. ns k.p.c."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"dawny"] 
+	ns [base~"\."];
+Right:	ns [pos~"brev"];
+Eval:	word(Brev:pun:ADJ, 1.base);
+#reguła szczegółowa
+
+
+Rule	"Brev: kw"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"kwadratowy"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:ADJ, 1.base);
+
+
+Rule	"Brev: ang. (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"angielski"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:ADJ, 1.base);
+
+
+Rule	"Brev: ang. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"angielski"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:ADJ, 1.base);
+
+
+Rule	"Brev: łac.|wł.|pol."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" 
+	&& base~~"łaciński|włoski|polski"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:ADJ, 1.base);
+
+
+Rule	"Brev: min.|maks."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"minimalny|maksymalny"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:ADJ, 1.base);
+
+
+Rule	"Brev: geogr."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"geograficzny"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:ADJ, 1.base);
+
+
+Rule	"Brev: kolej."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"kolejowy"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:ADJ, 1.base);
+
+
+Rule	"Brev: ppanc."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"przeciwpancerny"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:ADJ, 1.base);
+
+
+Rule	"Brev: ppanc. (3)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"przeciwpancerny"] 
+	ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:ADJ, 1.base);
+
+
+Rule	"Brev: ppanc (bez kropki)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"przeciwpancerny"];
+Eval:	word(Brev:pun:ADJ, 1.base);
+
+
+Rule	"Brev: (50-)proc."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"[1-9][0-9]*-procentowy|procentowy"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:ADJ, 1.base);
+#rozszerzyć regułę
+
+
+Rule	"Brev: n-tys."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"[1-9][0-9]*-tysięczny"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:ADJ, 1.base);
+
+Rule	"Brev: c.k."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"cesarsko-królewski"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:ADJ, 1.base);
+
+
+Rule	"Brev: ż."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"żółty"] 
+	ns [base~"\."];
+Right:	ns [base~"kartka"];
+Eval:	word(Brev:pun:ADJ, 1.base);
+
+
+Rule	"Brev: m sześć. (osobno) (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"metr"]
+	[pos~~"brev" && fullstoppedness~~"pun" && base~~"sześcienny"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:NG, "metr sześcienny");
+
+
+Rule	"Brev: sześć. (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"sześcienny"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:ADJ, 1.base);
+
+
+Rule	"Brev: sześć. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"sześcienny"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:ADJ, 1.base);
+
+
+Rule	"Brev: sześć. (3)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"sześcienny"] 
+	ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:ADJ, 1.base);
+
+
+Rule	"Brev: ur.|zbud.|odbud.|rozbud.|przebud.|założ.|położ. (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" 
+	&& base~~"urodzony|zbudowany|odbudowany|rozbudowany|przebudowany|założony|położony"] ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:PPAS, 1.base);
+
+
+Rule	"Brev: ur.|zbud.|odbud.|rozbud.|przebud.|założ.|położ. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" 
+	&& base~~"urodzony|zbudowany|odbudowany|rozbudowany|przebudowany|założony|położony"] ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:PPAS, 1.base);
+
+
+Rule	"Brev: ur.|zbud.|odbud.|rozbud.|przebud.|założ.|położ. (3)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" 
+	&& base~~"urodzony|zbudowany|odbudowany|rozbudowany|przebudowany|założony|położony"] ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:PPAS, 1.base);
+
+
+Rule	"Brev: dot."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"dotyczący"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:PACT, 1.base);
+
+
+Rule	"Brev: w.w."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"wyżej wymieniony"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:AdjG, 1.base);
+
+
+Rule	"Brev: ww (bez kropki)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"wyżej wymieniony"];
+Right:	[];
+Eval:	word(Brev:pun:AdjG, 1.base);
+
+
+Rule	"Brev: w/w (npun)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" 
+	&& orth~"w/w" && base~~"wyżej wymieniony"];
+Right:	[];
+Eval:	word(Brev:npun:AdjG, 1.base);
+
+
+Rule	"Brev: b.|ew."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"bardzo|ewentualnie"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:ADV, 1.base);
+
+
+Rule	"Brev: jw (bez kropki)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"jak.wyżej"];
+Right:	[];
+Eval:	word(Brev:pun:ADV, 1.base);
+#nie wiem, jaką część mowy dać (na razie ADV)
+
+
+Rule	"Brev: ok."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"około"] 
+	ns [base~"\."];
+Right:	ns? [];
+Eval:	word(Brev:pun:QUB, 1.base);
+##Ale może być prep!
+
+
+Rule	"Brev: np. (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"na.przykład"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:QUB, 1.base);
+
+
+Rule	"Brev: np. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"na.przykład"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:QUB, 1.base);
+
+
+Rule	"Brev: np. (2*)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"na.przykład"] 
+	ns [base~"\."];
+Right:	ns;
+Eval:	word(Brev:pun:QUB, 1.base);
+##reguła do usunięcia
+
+Rule	"Brev: np: (bez kropki)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"na.przykład"];
+Right:	ns [base~":"];
+Eval:	word(Brev:pun:QUB, 1.base);
+
+
+Rule	"Brev: np (bez kropki)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"na.przykład"];
+Right:	[];
+Eval:	word(Brev:pun:QUB, 1.base);
+
+
+Rule	"Brev: nb."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"nota.bene"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:QUB, 1.base);
+##!!! spr. czy to Qub
+
+
+Rule	"Brev: k."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"koło"] 
+	ns [base~"\."];
+Right:	[pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact" 
+	&& case~~"gen"];
+Eval:	word(Brev:pun:PREP, 1.base);
+
+
+Rule	"Brev: m."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"między"] 
+	ns [base~"\."];
+Right:	[pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact" 
+	&& case~~"inst"];
+Eval:	word(Brev:pun:PREP, 1.base);
+
+
+Rule	"Brev: pow."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"powyżej"] 
+	ns [base~"\."];
+Eval:	word(Brev:pun:PREP, 1.base);
+
+
+Rule	"Brev: n"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"nad"];
+Eval:	word(Brev:npun:PREP, 1.base);
+
+
+Rule	"Brev: por.|zob.|p."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"porównaj|zobacz|patrz"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:VERB, 1.base);
+
+
+Rule	"Brev: zob.:"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"zobacz"] 
+	ns [base~"\."];
+Right:	ns [base~":"];
+Eval:	word(Brev:pun:VERB, 1.base);
+
+
+Rule	"Brev: wyst.|zm.|proj."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" 
+	&& base~~"występują|zmarł|projektował"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:VERB, 1.base);
+
+
+Rule	"Brev: br. (1a)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"bieżący.rok"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NG, 1.base);
+
+
+Rule	"Brev: br. (1b)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"bieżącego.roku"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NG, 1.base);
+
+
+Rule	"Brev: br. (2a)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"bieżący.rok"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:NG, 1.base);
+
+
+Rule	"Brev: br. (3a)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"bieżący.rok"] 
+	ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:NG, 1.base);
+
+
+Rule	"Brev: br. (3b)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"bieżącego.roku"] 
+	ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:NG, 1.base);
+
+
+Rule	"Brev: ub.r. (1a)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"ubiegły.rok"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NG, 1.base);
+
+
+Rule	"Brev: ub.r. (2a)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"ubiegły.rok"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:NG, 1.base);
+
+
+Rule	"Brev: ub.r. (3a)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"ubiegły.rok"] 
+	ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:NG, 1.base);
+
+
+Rule	"Brev: ub.r. (1b)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"ubiegłego.roku"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NG, "ubiegły rok");
+
+
+Rule	"Brev: ub.r. (2b)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"ubiegłego.roku"] 
+	ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:NG, "ubiegły rok");
+
+
+Rule	"Brev: ub."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"ubiegły"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:ADJ, 1.base);
+
+
+Rule	"Brev: bm. (1a)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"bieżącego.miesiąca"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NG, "bieżący miesiąc");
+
+
+Rule	"Brev: bm. (1b)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"bieżący.miesiąc"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NG, 1.base);
+
+
+Rule	"Brev: bm. (2a)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"bieżącego.miesiąca"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:NG, "bieżący miesiąc");
+
+
+Rule	"Brev: bm. (2b)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"bieżący.miesiąc"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:NG, 1.base);
+
+
+Rule	"Brev: bm. (3a)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"bieżącego.miesiąca"] 
+	ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:NG, "bieżący miesiąc");
+
+
+Rule	"Brev: bm. (3b)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"bieżący.miesiąc"] 
+	ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:NG, 1.base);
+
+
+Rule	"Brev: c.o."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"centralne.ogrzewanie"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NG, 1.base);
+
+
+Rule	"Brev: w.c. (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"water.closet"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NG, 1.base);
+
+
+Rule	"Brev: w.c. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"water.closet"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:NG, 1.base);
+
+
+Rule	"Brev: w.c. (2A)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"wartości.chrześcijańskie"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:NG, 1.base);
+
+
+Rule	"Brev: S.A. (osobno)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"spółka"] 
+	ns [base~"\."] ns
+	[pos~~"brev" && fullstoppedness~~"pun" && base~~"akcyjny"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:NG, "spółka akcyjna");
+#?czy na etapie segmentacji to nie powinien być jeden brev?
+
+Rule	"Brev: S.A. (3)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"spółka.akcyjna"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NG, 1.base);
+
+
+Rule	"Brev: S.A. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"spółka.akcyjna"] 
+	ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:NG, 1.base);
+
+
+Rule	"Brev: pt. (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"pod.tytułem"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:PrepNG, 1.base);
+
+
+Rule	"Brev: pt. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"pod.tytułem"] 
+	ns [base~"\."];
+Right:	ns [base~":"];
+Eval:	word(Brev:pun:PrepNG, 1.base);
+
+
+Rule	"Brev: pt. (3)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"pod.tytułem"] 
+	ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:PrepNG, 1.base);
+
+
+Rule	"Brev: pt. bez kropki"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"pod.tytułem"];
+Right:	[base~"\""];
+Eval:	word(Brev:pun:PrepNG, 1.base);
+
+
+Rule	"Brev: pn."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"pod.nazwą"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:PrepNG, 1.base);
+
+
+Rule	"Brev: nt."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"na.temat"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:PrepNG, 1.base);
+
+
+Rule	"Brev: pw."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"pod.wezwaniem"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:PrepNG, 1.base);
+
+
+Rule	"Brev: ds."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"do.spraw"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:PrepNG, 1.base);
+
+
+Rule	"Brev: d/s"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"do.spraw"];
+Eval:	word(Brev:npun:PrepNG, 1.base);
+
+
+Rule	"Brev: w/m"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"w.miejscu"];
+Eval:	word(Brev:npun:PrepNG, 1.base);
+
+
+Rule	"Brev: n.p.m. (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"nad.poziomem.morza"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:PrepNG, 1.base);
+
+
+Rule	"Brev: n.p.m. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"nad.poziomem.morza"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:PrepNG, 1.base);
+
+
+Rule	"Brev: n.p.m. (3)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"nad.poziomem.morza"] 
+	ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:PrepNG, 1.base);
+
+
+Rule	"Brev: p.n.e. (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"przed.naszą.erą"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:PrepNG, 1.base);
+
+
+Rule	"Brev: p.n.e. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"przed.naszą.erą"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:PrepNG, 1.base);
+
+
+Rule	"Brev: p.n.e. (3)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"przed.naszą.erą"] 
+	ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:PrepNG, 1.base);
+
+
+Rule	"Brev: pne (bez kropki)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"przed.naszą.erą"];
+Eval:	word(Brev:pun:PrepNG, 1.base);
+
+
+Rule	"Brev: n.e. (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"naszej.ery"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NG, 1.base);
+
+
+Rule	"Brev: n.e. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"naszej.ery"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:NG, 1.base);
+
+
+Rule	"Brev: n.e. (3)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"naszej.ery"] 
+	ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:NG, 1.base);
+
+
+Rule	"Brev: itd. (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"i.tak.dalej"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:DisG, 1.base);
+
+
+Rule	"Brev: itd. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"i.tak.dalej"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:DisG, 1.base);
+
+
+Rule	"Brev: itd. (3)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"i.tak.dalej"] 
+	ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:DisG, 1.base);
+
+
+Rule	"Brev: itd. (bez kropki)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"i.tak.dalej"];
+Eval:	word(Brev:pun:DisG, 1.base);
+
+
+Rule	"Brev: itp. (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"i.tym.podobne"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:DisG, 1.base);
+
+
+Rule	"Brev: itp. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"i.tym.podobne"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev-se:pun:DisG, 1.base);
+
+
+Rule	"Brev: itp. (3)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"i.tym.podobne"] 
+	ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:DisG, 1.base);
+
+
+Rule	"Brev: itp bez kropki"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"i.tym.podobne"];
+Eval:	word(Brev:pun:DisG, 1.base);
+##!!tu powinno być wyraźnie, że nie może wystąpić kropka, ale jak zapisać
+
+Rule	"Brev: etc. (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"et.cetera"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:DisG, 1.base);
+
+
+Rule	"Brev: etc. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"et.cetera"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev-se:pun:DisG, 1.base);
+
+
+Rule	"Brev: etc. (3)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"et.cetera"] 
+	ns [base~"\."];
+Right:	se;
+Eval:	word(Brev-se:pun:DisG, 1.base);
+
+
+Rule	"Brev: tzn. (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"to.znaczy"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:CONJ, 1.base);
+
+
+Rule	"Brev: tzn. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"to.znaczy"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:CONJ, 1.base);
+
+
+Rule	"Brev: tj. (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"to.jest"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:CONJ, 1.base);
+
+
+Rule	"Brev: tj. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"to.jest"] 
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:CONJ, 1.base);
+
+
+Rule	"Brev: wzgl."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"względnie"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:CONJ, 1.base);
+##spr. część mowy
+
+Rule	"Brev: tzw."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"tak zwany"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:ADJ, 1.base);
+
+
+Rule	"Brev: tzw. (bez kropki)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"tak zwany"];
+Eval:	word(Brev:pun:ADJ, 1.base);
+
+
+Rule	"Brev: el.-magn."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"elektro"] 
+	ns [base~"\."] 
+	ns [base~"-"] ns
+	[pos~~"brev" && fullstoppedness~~"pun" && base~~"magnetyczny"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:ADJ, "elektro-magnetyczny");
+
+
+Rule	"Brev: zł"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"złoty"];
+Eval:	word(Brev:npun:NOUN, 1.base);
+
+
+Rule	"Brev: gr"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"grosz"];
+Eval:	word(Brev:npun:NOUN, 1.base);
+
+
+Rule	"Brev: mln"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"milion"];
+Eval:	word(Brev:npun:NOUN, 1.base);
+
+
+Rule	"Brev: mld"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"miliard"];
+Eval:	word(Brev:npun:NOUN, 1.base);
+
+
+Rule	"Brev: bln"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"bilion"];
+Eval:	word(Brev:npun:NOUN, 1.base);
+
+
+Rule	"Brev: cm (1)"
+Match:	[pos~~"brev" && fullstoppedness~~"npun" 
+	&& base~~"nanometr|mikrometr|milimetr|centymetr|metr|kilometr"];
+Eval:	word(Brev:npun:NOUN, 1.base);
+
+
+Rule	"Brev: cm (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" 
+	&& base~~"nanometr|milimetr|centymetr|metr|kilometr"];
+Right:	ns [base~"\."] se;
+Eval:	word(Brev:npun:NOUN, 1.base);
+##?? to "se" ma być?
+
+Rule	"Brev: m2|km2"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~".*metr.kwadratowy"];
+Eval:	word(Brev:npun:NG, 1.base);
+
+
+Rule	"Brev: m3|dm3|ccm"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~".*metr.sześcienny"];
+Eval:	word(Brev:npun:NG, 1.base);
+
+
+Rule	"Brev: ml|l"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"mililitr|litr"];
+Eval:	word(Brev:npun:NOUN, 1.base);
+
+
+Rule	"Brev: q"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"kwintal"];
+Eval:	word(Brev:npun:NOUN, 1.base);
+
+
+Rule	"Brev: h|d"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"godzina|doba"];
+Eval:	word(Brev:npun:NOUN, 1.base);
+
+
+Rule	"Brev: min"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"minuta"];
+Eval:	word(Brev:npun:NOUN, 1.base);
+
+
+Rule	"Brev: st"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"stopa"];
+Eval:	word(Brev:npun:NOUN, 1.base);
+
+
+Rule	"Brev: H|h"
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"wysokość|głębokość"];
+Eval:	word(Brev:npun:NOUN, 1.base);
+
+
+Rule	"Brev: nr"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"numer"];
+Eval:	word(Brev:npun:NOUN, 1.base);
+
+
+Rule	"Brev: nr."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"numer"] ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: nr (bez kropki-błąd)"
+
+Left:	[pos~"prep"];
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"numer"];
+Eval:	word(Brev:pun:NOUN, 2.base);
+
+
+Rule	"Brev: mg|g|dg|kg|pg"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"miligram|gram|dekagram|kilogram|pikogram"];
+Eval:	word(Brev:npun:NOUN, 1.base);
+
+
+Rule	"Brev: t"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"tona"];
+Eval:	word(Brev:npun:NOUN, 1.base);
+
+
+Rule	"Brev: ha"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"hektar"];
+Eval:	word(Brev:npun:NOUN, 1.base);
+
+
+Rule	"Brev: pc"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"parsek"];
+Eval:	word(Brev:npun:NOUN, 1.base);
+
+
+Rule	"Brev: płk|ppłk|mjr|rtm|kmdr"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun|pun" 
+	&& base~~"pułkownik|podpułkownik|major|rotmistrz|komandor"];
+Eval:	word(Brev:npun:NOUN, 1.base);
+
+##AW: zrobiłam osobną regułę, bo skrót rtm. powinien być z kropką
+Rule	"Brev: rtm."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" 
+	&& base~~"rotmistrz"]
+	ns [base~"\."];
+Eval:	word(Brev:npun:NOUN, 1.base);
+
+Rule	"Brev: bp/abp"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"biskup|arcybiskup"];
+Eval:	word(Brev:npun:NOUN, 1.base);
+
+
+Rule	"Brev: bp.|kard."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" 
+	&& base~~"biskup|arcybiskup|kardynał"] 
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: dr hab."
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"doktor"]
+	[pos~~"brev" && fullstoppedness~~"pun" && base~~"habilitowany"]
+	ns [base~"\."];
+Eval:	word(Brev:pun:NG, "doktor habilitowany");
+
+
+Rule	"Brev: dr. hab."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"doktor"]
+	ns [base~"\."] 
+	[pos~~"brev" && fullstoppedness~~"pun" && base~~"habilitowany"]
+	ns [base~"\."];
+Eval:	word(Brev:pun:NG, "doktor habilitowany");
+
+
+Rule	"Brev: dr|mgr"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"doktor|magister"];
+Eval:	word(Brev:npun:NOUN, 1.base);
+
+
+Rule	"Brev: dr."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"doktor"]
+	ns [base~"\."];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: dr (pun - bez kropki)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"doktor"];
+Right:	[base~"[A-ZŁ].*" && case~"gen|dat|inst|loc"];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: z-ca"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"zastępca"];
+Eval:	word(Brev:npun:NOUN, 1.base);
+
+
+Rule	"Brev: wf"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"wychowanie.fizyczne"];
+Eval:	word(Brev:npun:NG, 1.base);
+
+
+Rule	"Brev: wf"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && 
+	base~~"wychowanie.fizyczne"] ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NG, 1.base);
+
+
+Rule	"Brev: S-ka"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"spółka"];
+Eval:	word(Brev:npun:NOUN, 1.base);
+
+
+Rule	"Brev: Mr"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"mister"];
+Eval:	word(Brev:npun:NOUN, 1.base);
+
+
+Rule	"Brev: Mb/s"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"megabajt"]
+	ns [base~"/"] ns
+	[pos~~"brev" && fullstoppedness~~"npun" && base~~"sekunda"];
+Eval:	word(Brev:npun:NG, "megabajt na sekundę");
+
+
+Rule	"Brev: M/s"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"motor.ship"];
+Eval:	word(Brev:npun:NG, 1.base);
+
+
+Rule	"Brev: MB|kB"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"megabajt|kilobajt"];
+Eval:	word(Brev:npun:NOUN, 1.base);
+
+
+Rule	"Brev: V|kV|MW|kWh|GJ"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"wolt|kilowolt|megawat|kilowatogodzina|gigadżul"];
+Eval:	word(Brev:npun:NOUN, 1.base);
+#uzupełnić o inne możliwe
+
+
+Rule	"Brev: Gs|T|mT|0e"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"gaus|tesla|militesla|ersted"];
+Eval:	word(Brev:npun:NOUN, 1.base);
+
+
+Rule	"Brev: Al"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"aluminium"];
+Eval:	word(Brev:npun:NOUN, 1.base);
+
+
+Rule	"Brev: IgE"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"Immunoglobina E"];
+Eval:	word(Brev:npun:NG, 1.base);
+
+
+Rule	"Brev: St|Sc"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"[Ss]tratus|[Ss]tratocumulus"];
+Eval:	word(Brev:npun:NOUN, 1.base);
+##! jest dużą i małą literą - jak powinno być?
+
+
+Rule	"Brev: MHz|GHz"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"megaherc|gigaherc"];
+Eval:	word(Brev:npun:NOUN, 1.base);
+
+
+Rule	"Brev: KM"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"koń.mechaniczny"];
+Eval:	word(Brev:npun:NG, 1.base);
+
+
+Rule	"Brev: SA"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"spółka.akcyjna"];
+Eval:	word(Brev:npun:NG, 1.base);
+
+
+Rule	"Brev: PS|PS."
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"postscriptum"];
+Eval:	word(Brev:npun:NOUN, 1.base);
+
+
+Rule	"Brev: P.S."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" 
+	&& orth~~"[Pp]\.[Ss]|PS" && base~~"post scriptum"] 
+	ns [base~"\."];
+Eval:	word(Brev:pun:NOUN, 1.base);
+#było base postscriptum, jest post scriptum, zmienić brev_pos?
+
+
+Rule	"Brev: X"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"październik"];
+Eval:	word(Brev:npun:NOUN, 1.base);
+#uzupełnić inne miesiące
+
+
+Rule	"Brev: UK|BTW|EOT"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"UK|south|by the way|end of topic|in my humble opinion|Action Script"];
+Eval:	word(Brev:npun:XXX, 1.base);
+
+
+Rule	"DisG: BTW"
+
+Match:	[base~"by the way"];
+Eval:	group(DisG, 1,1);
+
+
+Rule	"Brev: Ctrl"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"Control"];
+Eval:	word(Brev:npun:XXX, 1.base);
+
+
+Rule	"Brev: Wny"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"wielmożny"];
+Eval:	word(Brev:npun:ADJ, 1.base);
+
+
+Rule	"Brev: Wn"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"winien"];
+Eval:	word(Brev:npun:VERB, 1.base);
+
+
+Rule	"Brev: wielka litera w cudzysłowie"
+
+Match:	[orth~"\""] ns 
+	[pos~~"brev" && fullstoppedness~~"pun" && base~~"B|S"]
+	ns [orth~"\""];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 3.base);
+
+
+Rule	"Brev: T[rybuna]"
+
+Match:	[orth~"\""] ns 
+	[pos~~"brev" && fullstoppedness~~"npun" && base~~"trybuna"]
+	ns [orth~"\""];
+Eval:	word(Brev:npun:NOUN, 3.base);
+
+
+Rule	"Brev: Rz[eczpospolita]"
+
+Match:	[orth~"\""] ns 
+	[pos~~"brev" && fullstoppedness~~"npun" && base~~"Rzeczpospolita"]
+	ns [orth~"\""];
+Eval:	word(Brev:npun:NOUN, 3.base);
+
+
+Rule	"Brev: Dz[iennik]"
+
+Match:	[orth~"\""] ns 
+	[pos~~"brev" && fullstoppedness~~"npun" && base~~"dziennik"]
+	ns [orth~"\""];
+Eval:	word(Brev:npun:NOUN, 3.base);
+
+
+Rule	"Brev: S[olidarność] (1)"
+
+Match:	[orth~"\""] ns 
+	[pos~~"brev" && fullstoppedness~~"npun" && base~~"[Ss]olidarność"]
+	ns [orth~"\""];
+Right:	[];
+Eval:	word(Brev:npun:NOUN, 3.base);
+
+
+Rule	"Brev: S[olidarność] (2)"
+
+Match:	[orth~"\""] ns 
+	[pos~~"brev" && fullstoppedness~~"npun" && base~~"[Ss]olidarność"]
+	ns [orth~"\""];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:npun:NOUN, 3.base);
+
+
+Rule	"Brev: RM"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"Radio.Maryja"];
+Eval:	word(Brev:npun:NG, 1.base);
+
+
+Rule	"Brev: TL"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"Trybuna.Ludu"];
+Eval:	word(Brev:npun:NG, 1.base);
+
+
+Rule	"Brev: ST"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"Stary.Testament"];
+Eval:	word(Brev:npun:NG, 1.base);
+
+
+Rule	"Brev: KK|DCIoS"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"Kościół.Katolicki|Dominikańskie Centrum Informacji o Sektach"];
+Eval:	word(Brev:npun:NG, 1.base);
+
+
+Rule	"Brev: K."
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"kościół"]
+	ns [base~"\."];
+Right:	[];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: W. (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"pun" && base~~"wszechświat"]
+	ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:pun:NOUN, 1.base);
+
+
+Rule	"Brev: NTG"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"nie ta grupa"];
+Eval:	word(Brev:npun:NG, 1.base);
+
+
+Rule	"Brev: TM"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"trade.mark"];
+Eval:	word(Brev:npun:NG, 1.base);
+#NG czy XXX?
+
+
+Rule	"Brev: m[agnitudo] (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"magnitudo"]; 
+Right:	ns [pos~"interp"];
+Eval:	word(Brev:npun:XXX, 1.base);
+
+
+Rule	"Brev: °C"
+
+Match:	[base~"°" && pos~"interp"] ns?
+	[pos~~"brev" && base~~"Celsjusza|Celsjusz"];
+Eval:	word(Brev:npun:NG, "stopień Celsjusza");
+
+
+Rule	"Brev: st. C"
+
+Match:	[pos~~"Brev" && fullstoppedness~~"pun" && base~~"stopień"] ns?
+	[pos~~"brev" && base~~"Celsjusza|Celsjusz"];
+Eval:	word(Brev:npun:NG, "stopień Celsjusza");
+
+
+Rule	"Brev: C"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"Celsjusza"];
+Eval:	word(Brev:npun:NOUN, 1.base);
+
+
+Rule	"Brev: o (stopień)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"stopień"];
+Right:	[];
+Eval:	word(Brev:npun:NOUN, 1.base);
+
+
+Rule	"Brev: Mbps"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"megabajt.na.sekundę"];
+Eval:	word(Brev:npun:NG, 1.base);
+
+
+Rule	"Brev: Kbps"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"kilobajt.na.sekundę"];
+Eval:	word(Brev:npun:NG, 1.base);
+
+
+Rule	"Brev: km/h"
+
+Match:	[orth~"km"] ns [base~"/"] ns [orth~"h"];
+Eval:	word(Brev:npun:NG, "kilometr na godzinę");
+
+
+Rule	"Brev: m/sek"
+
+Match:	[orth~"m"] ns [base~"/"] ns [orth~"sek"];
+Eval:	word(Brev:pun:NG, "metr na sekundę");
+#! czy to ma być pun?
+
+
+Rule	"Brev: kg/Mg"
+
+Match:	[orth~"kg"] ns [base~"/"] ns [orth~"Mg"];
+Eval:	word(Brev:npun:NG, "kilogram na megagram");
+
+
+Rule	"Brev: kg/Mg"
+
+Match:	[orth~"pg"] ns [base~"/"] ns [orth~"ml"];
+Eval:	word(Brev:npun:NG, "pikogram na mililitr");
+
+
+Rule	"Brev: q/ha"
+
+Match:	[orth~"q"] ns [base~"/"] ns [orth~"ha"];
+Eval:	word(Brev:npun:NG, "kwintal na hektar");
+
+
+Rule	"Brev: we/wy"
+
+Match:	[orth~"we"] ns [base~"/"] ns [orth~"wy"];
+Eval:	word(Brev:npun:NG, "wejście/wyjście");
+
+
+Rule	"Brev: sp. z o.o."
+
+Match:	[orth~"[Ss]p"] ns [base~"\."] [base~"z"] [orth~"o.o"] ns [base~"\."];
+Eval:	word(Brev:pun:NG, "spółka z ograniczoną odpowiedzialnością");
+
+
+Rule	"Brev: wg (2)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"według"];
+Right:	[base~"\""] ns 
+	[pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact" && case~~"gen"];
+Eval:	word(Brev:npun:PREP, 1.base);
+
+
+Rule	"Brev: wg (1)"
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"według"];
+Right:	[pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact" 
+	&& case~~"gen"];
+Eval:	word(Brev:npun:PREP, 1.base);
+
+
+Rule	"Brev: wg + proj."
+
+Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"według"];
+Right:	[base~"projekt" && pos~"Brev"];
+Eval:	word(Brev:npun:PREP, 1.base);
+#reguła szczegółowa
+
+
+#Rule	"Brev: xxx"
+#
+#Match:	[pos~~"brev" && fullstoppedness~~"npun" && base~~"xxx"];
+#Eval:	word(Brev:npun:NOUN, 1.base);
+
+#Rule	"skrót z kropką (1.1)"
+#
+#Match:	[pos~~"brev" && fullstoppedness~~"pun"] ns [base~"\."];
+#Right:	[];
+#Eval:	word(Brev:pun, 1.base);
+
+#Rule	"skrót z kropką (1.1a)"
+#
+#Match:	[pos~~"brev" && fullstoppedness~~"pun"] ns [base~"\."];
+#Right:	ns [pos~"interp"];
+#Eval:	word(Brev:pun, 1.base);
+
+#Rule	"skrót z kropką na końcu zdania"
+#
+#Match:	[pos~~"brev" && fullstoppedness~~"pun"] ns [base~"\."];
+#Right:	se;
+#Eval:	word(Brev-se:pun, 1.base);
+
+#Rule	"skrót bez kropki"
+#
+#Match:	[pos~~"brev" && fullstoppedness~~"npun"];
+#Eval:	word(Brev:npun, 1.base);
+
+#Rule	"skrót z kropką (1.2)"
+#
+#Match:	[pos~~"brev" && fullstoppedness~~"pun"] ns [base~"\."];
+#Right:	[];
+#Eval:	word(Brev:pun, 1.base);
+
+
+Rule	"wielokropek"
+
+Match:	[base~~"\."] ns [base~"\."] ns [base~~"\."];
+Eval:	word(Interp, 0.base);
+
+
+Rule	"skrótowce w gen pl "
+
+Match:	[pos~~"ign"] ns [base~"-"] ns [base~~"owców"];
+Eval:	word(Noun:pl:gen:m1, 1.base "-owiec");
+#jeśli to dobra reguła (chodzi o "ign", to ją rozmnożyć
+
+
+Rule	"Adj: opisowy stopień wyższy"
+
+Match:	[orth~"[Bb]ardziej"] [pos~"adj"];
+Eval:	word(2, Adj:com, 2.base);
+
+
+Rule	"Adv: opisowy stopień wyższy"
+
+Match:	[orth~"[Bb]ardziej"] [pos~"adv"];
+Eval:	word(2, Adv:com, 2.base);
+
+
+Rule	"Adj: opisowy stopień najwyższy"
+
+Match:	[orth~"[Nn]ajbardziej"] [pos~"adj"];
+Eval:	word(2, Adj:sup, 2.base);
+
+
+Rule	"Adv: opisowy stopień najwyższy"
+
+Match:	[orth~"[Nn]ajbardziej"] [pos~"adv"];
+Eval:	word(2, Adv:sup, 2.base);
+
+
+
+Rule	"liczba z kropką w określeniu godziny (1)"
+
+Left:	[pos~~"prep"] [base~"godzina"];
+Match:	[orth~"[0-9][0-9]?" && pos~"adj"]
+	ns [base~"\."]; 
+Right:	ns? [orth~"[0-9][0-9]*" && pos~"num"];
+Eval:	unify(case,1,2,3);
+	word(3, Adj, 3.base);
+
+
+Rule	"liczba z kropką w określeniu godziny (1a)"
+
+Left:	[pos~~"prep"] [orth~"godz\."];
+Match:	[orth~"[0-9][0-9]?" && pos~"adj"]
+	ns [base~"\."]; 
+Right:	ns? [orth~"[0-9][0-9]*" && pos~"num"];
+Eval:	unify(case,1,3);
+	word(3, Adj, 3.base);
+
+
+Rule	"liczba z kropką w określeniu godziny (2)"
+
+Left:	[pos~~"prep"];
+Match:	[orth~"[0-9][0-9]?" && pos~"adj"]
+	ns [base~"\."]; 
+Right:	ns? [orth~"[0-9][0-9]*" && pos~"num"];
+Eval:	unify(case,1,2);
+	word(2, Adj, 2.base);
+
+
+Rule	"liczba z kropką w określeniu godziny (3)"
+
+Left:	[base~"godzina"];
+Match:	[orth~"[0-9][0-9]?" && pos~"adj"]
+	ns [base~"\."];
+Right:	ns? [orth~"[0-9][0-9]*" && pos~"num"];
+Eval:	unify(case number gender,1,2);
+	word(2, Adj, 2.base);
+
+
+Rule	"liczba z kropką (1)"
+
+Left:	[];
+Match:	[pos~~"adj" && base~~"[0-9]+"] ns [base~"\."];
+Right:	[];
+Eval:	word(2, Adj, 2.base);
+
+
+Rule	"liczba z kropką (2)"
+
+Left:	[];
+Match:	[pos~~"adj" && base~~"[0-9]+"] ns [base~"\."];
+Right:	ns [pos~"interp"];
+Eval:	word(2, Adj, 2.base);
+
+
+Rule	"liczba z kropką (3)"
+
+Left:	[base!~"artykuł|paragraf|ustęp|punkt"];
+Match:	[pos~~"adj" && base~~"[0-9]+"] ns [base~"\."];
+Right:	se;
+Eval:	word(2, Adj-se, 2.base);
+
+
+Rule	"ułamki: 1/2"
+
+Match:	[base~"1" && pos~"adj"]
+	ns [base~"/"] ns
+	[base~"[1-9][0-9]?" && pos~"adj"];
+Eval:	word(Num:1.number:1.case:1.gender:rec, 0.base);	#LD zmiana
+#Eval:	word(1, Num:rec, 0.base);
+
+
+Rule	"ułamki: 10/11 itp."
+
+Match:	[base~"[1-9][0-9]" && pos~"num"]
+	ns [base~"/"] ns
+	[base~"[1-9][0-9]+" && pos~"adj"];
+Eval:	word(Num:1.number:1.case:1.gender:rec, 0.base);	#LD zmiana
+#Eval:	word(1, Num:rec, 0.base);
+
+
+Rule	"ułamki: 2/3 itp."
+
+Match:	[base~"[2-9]" && pos~"num"]
+	ns [base~"/"] ns
+	[base~"[1-9][0-9]?" && pos~"adj"];
+Eval:	word(Num:1.number:1.case:1.gender:rec, 0.base);	#LD zmiana
+#Eval:	word(1, Num:rec, 0.base);
+
+
+Rule	"adja-adja-adja-adj" #polsko-brytyjsko-holendersko-kanadyjski
+
+Match:	[pos~"adja"] ns [base~"-"] ns [pos~"adja"] ns [base~"-"] ns [pos~"adja"] ns [base~"-"] ns [pos~"adj"];
+Eval:	word(13, Adj, 1.orth "-" 5.orth "-" 9.orth "-" 13.base);
+
+
+Rule	"adja-adja-adj" #biurowo-handlowo-usługowy
+
+Match:	[pos~"adja"] ns [base~"-"] ns [pos~"adja"] ns [base~"-"] ns? [pos~"adj"];
+Eval:	word(9, Adj, 1.orth "-" 5.orth "-" 9.base);
+
+
+Rule	"adja-adj" #rolno-spożywczy
+
+Match:	[pos~"adja"] ns [base~"-"] ns [pos~"adj"];
+Eval:	word(5, Adj, 1.orth "-" 5.base);
+
+
+Rule	"adja-adj (inny dywiz)" 
+
+Match:	[pos~"adja"] ns [base~"–"] ns [pos~"adj"];
+Eval:	word(5, Adj, 1.orth "-" 5.base);
+
+
+Rule	"adja - adj" #ze spacjami
+
+Match:	[pos~"adja"] [base~"-"] [pos~"adj"];
+Eval:	word(3, Adj, 1.orth"-"3.base);
+
+
+Rule	"inne-adj" #zero-procentowy
+
+Match:	[] ns [base~"-"] ns [pos~"adj"];
+Eval:	word(5, Adj, 1.orth "-" 5.base);
+
+
+#Rule	"coś-subst"
+#
+#Match:	[] ns [base~"-"] ns [pos~"subst"];
+#Eval:	word(5, Noun, 1.base "-" 5.base);
+#!To zamieniłam na regułę ostrzejszą:
+
+Rule	"subst-subst"
+
+Match:	[pos~"subst"] ns [base~"-"] ns [pos~"subst"];
+Eval:	unify(case,1,5);
+	word(5, Noun, 1.base "-" 5.base);
+
+
+Rule	"subst w cudzysłowie"
+
+Match:	[orth~"\""] ns [pos~"subst"] ns [orth~"\""];
+Eval:	word(3, Noun, 0.base);
+
+
+Rule	"subst w innym cudzysłowie"
+
+Match:	[orth~"„|“|”|\""] ns [pos~"subst"] ns [orth~"”|’’"];
+Eval:	word(3, Noun, 0.base);
+
+
+Rule	"subst w cudzysłowie (przecinki)"
+
+Match:	[base~","] ns [base~","] ns [pos~"subst"] ns [orth~"\""];
+Eval:	word(5, Noun, 0.base);
+
+
+Rule	"subst w cudzysłowie (z tyłu apostrofy)"
+
+Match:	[orth~"„"] ns [pos~"subst"] ns [base~"’"] ns [base~"’"];
+Eval:	word(3, Noun, 0.base);
+##!!a może zamienić te wszystkie dziwne cudzysłowy na normalne (w base)
+
+
+Rule	"subst w apostrofach"
+
+Match:	[orth~"'"] ns [pos~"subst"] ns [base~"'"];
+Eval:	word(3, Noun, 0.base);
+
+
+Rule	"subst w cudzysłowie (nawiasy kątowe)"
+
+Match:	[base~"&gt;"] ns [base~"&gt;"] 
+	ns [pos~"subst"] ns 
+	[base~"&lt;"] ns [base~"&lt;"];
+Eval:	word(5, Noun, 0.base);
+
+
+Rule	"adj w cudzysłowie"
+
+Match:	[orth~"\""] ns [pos~"adj"] ns [orth~"\""];
+Eval:	word(3, Adj, 0.base);
+
+
+Rule	"Pred: tryb przypuszczający - czas przeszły (1)"
+
+Match:	[pos~"pred"] [base~"by"] [base~"być" && pos~"praet"];
+Eval:	word(Pred:past:cond:imperf:aff, 1.base);	#LD dodałam "aff"
+
+
+Rule	"Pred: tryb przypuszczający - czas przeszły (2)"
+
+Match:	[pos~"pred"] [base~"być" && pos~"praet"] ns [base~"by"];
+Eval:	word(Pred:past:cond:imperf:aff, 1.base);	#LD dodałam "aff"
+#brak przykładu
+
+
+Rule	"Pred: tryb przypuszczający - czas teraźniejszy"
+
+Match:	[pos~"pred" && base!~"to"] [base~"by"];
+Eval:	word(Pred:pres:cond:imperf:aff, 1.base);	#LD dodałam "aff"
+
+
+Rule	"Pred: zanegowany czas przeszły (1)"
+
+Match:	[base~~"nie" && pos~~"qub"] [base~"być" && pos~"praet"] [pos~"pred"];
+Eval:	word(Pred:past:ind:imperf:neg, 3.base);
+
+
+Rule	"Pred: zanegowany czas przeszły (2)"
+
+Match:	[pos~"pred"] [base~~"nie" && pos~~"qub"] [base~"być" && pos~"praet"];
+Eval:	word(Pred:past:ind:imperf:neg, 1.base);
+
+
+Rule	"Pred: czas przeszły (1)"
+
+Match:	[base~"być" && pos~"praet"] [pos~"pred"];
+Eval:	word(Pred:past:ind:imperf:aff, 2.base);	#LD dodałam "aff"
+
+
+Rule	"Pred: czas przeszły (2)"
+
+Match:	[pos~"pred"] [base~"być" && pos~"praet"];
+Eval:	word(Pred:past:ind:imperf:aff, 1.base);	#LD dodałam "aff"
+
+
+Rule	"Pred: czas przyszły z negacją (1)"
+
+Match:	[base~~"nie" && pos~~"qub"] [base~"być" && pos~"bedzie"] [pos~"pred"];
+Eval:	word(Pred:fut:ind:imperf:neg, 2.base);
+
+
+Rule	"Pred: czas przyszły z negacją (2)"
+
+Match:	[pos~"pred"] [base~~"nie" && pos~~"qub"] [base~"być" && pos~"bedzie"];
+Eval:	word(Pred:fut:ind:imperf:neg, 1.base);
+
+
+Rule	"Pred: czas przyszły (1)"
+
+Match:	[base~"być" && pos~"bedzie"] [pos~"pred"];
+Eval:	word(Pred:fut:ind:imperf:aff, 2.base);
+
+
+Rule	"Pred: czas przyszły (2)"
+
+Match:	[pos~"pred"] [base~"być" && pos~"bedzie"];
+Eval:	word(Pred:fut:ind:imperf:aff, 1.base);
+
+
+Rule	"Pred: czas teraźniejszy z negacją (1)"
+
+Match:	[base~~"nie" && pos~~"qub"] [base~"być" && pos~"fin"] [pos~"pred"];
+Eval:	word(Pred:pres:ind:imperf:neg, 3.base);
+
+
+Rule	"Pred: czas teraźniejszy z negacją (2)"
+
+Match:	[pos~"pred"] [base~~"nie" && pos~~"qub"] [base~"być" && pos~"fin"];
+Eval:	word(Pred:pres:ind:imperf:neg, 1.base);
+
+
+Rule	"Pred: czas teraźniejszy (1)"
+
+Match:	[base~"być" && pos~"fin"] [pos~"pred"];
+Eval:	word(Pred:pres:ind:imperf:aff, 2.base);	#LD dodałam "aff"
+
+
+Rule	"Pred: czas teraźniejszy (2)"
+
+Match:	[pos~"pred"] [base~"być" && pos~"fin"];
+Eval:	word(Pred:pres:ind:imperf:aff, 1.base);	#LD dodałam "aff"
+
+
+#LD Jedna nowa reguła zamiast dwóch starych
+Rule	"praet + aglt"
+
+Match:	[pos~"praet"] ns [pos~"aglt"];
+Eval:	word(Verbfin:1.number:3.person:past:ind:1.aspect:nrefl:aff:1.gender, 1.base);
+
+
+#Rule	"Praet + Aglt (1. osoba)"
+#
+#Match:	[pos~"praet"] ns [pos~"aglt" && person~"pri"];
+#Eval:	word(1, Verbfin:pri:past:ind, 1.base);
+#
+#Rule	"Praet + Aglt (2. osoba)"
+#
+#Match:	[pos~"praet"] ns [pos~"aglt" && person~"sec"];
+#Eval:	word(1, Verbfin:sec:past:ind, 1.base);
+
+
+#LD 2 reguły na tryb warunkowy zamieniłam na 4, a potem znów na 2, ale inne
+Rule	"praet(imperf) + by + aglt"
+
+Match:	[pos~"praet" && aspect~"imperf"] ns [base~"by"] ns [pos~"aglt"];
+Eval:	word(Verbfin:1.number:5.person:pres:cond:1.aspect:nrefl:aff:1.gender, 1.base);
+
+
+Rule	"praet(perf) + by + aglt"
+
+Match:	[pos~"praet" && aspect~"perf"] ns [base~"by"] ns [pos~"aglt"];
+Eval:	word(Verbfin:1.number:5.person:fut:cond:1.aspect:nrefl:aff:1.gender, 1.base);
+
+
+#Rule	"Praet(imperf) + by + Aglt (1. osoba)"
+#
+#Match:	[pos~"praet" && aspect~"imperf"] ns [base~"by"] 
+#	ns [pos~"aglt" && person~"pri"];
+#Eval:	word(1, Verbfin:pri:pres:cond, 1.base);
+#
+#Rule	"Praet(perf) + by + Aglt (1. osoba)"
+#
+#Match:	[pos~"praet" && aspect~"perf"] ns [base~"by"] 
+#	ns [pos~"aglt" && person~"pri"];
+#Eval:	word(1, Verbfin:pri:fut:cond, 1.base);
+#
+#Rule	"Praet(imperf) + by + Aglt (2. osoba)"
+#
+#Match:	[pos~"praet" && aspect~"imperf"] ns [base~"by"] 
+#	ns [pos~"aglt" && person~"sec"];
+#Eval:	word(1, Verbfin:sec:pres:cond, 1.base);
+#
+#Rule	"Praet(perf) + by + Aglt (2. osoba)"
+#
+#Match:	[pos~"praet" && aspect~"perf"] ns [base~"by"] 
+#	ns [pos~"aglt" && person~"sec"];
+#Eval:	word(1, Verbfin:sec:fut:cond, 1.base);
+
+
+#LD Tu regułę zamieniłam na 2. i zmieniłam linię Eval
+Rule	"praet(imperf) + by"
+
+Match:	[pos~"praet" && aspect~"imperf"] ns [base~"by"];
+Eval:	word(Verbfin:1.number:ter:pres:cond:1.aspect:nrefl:aff:1.gender, 1.base);
+
+
+Rule	"praet(perf) + by"
+
+Match:	[pos~"praet" && aspect~"perf"] ns [base~"by"];
+Eval:	word(Verbfin:1.number:ter:fut:cond:1.aspect:nrefl:aff:1.gender, 1.base);
+
+
+Rule	"imps + by"
+
+Match:	[pos~"imps"] [base~"by"];
+Eval:	word(Imps:cond:1.aspect:nrefl:aff, 1.base);	#LD zmiana
+#Eval:	word(1, Imps:cond, 1.base);
+
+
+Rule	"by + imps"
+
+Match:	[base~"by"] [pos~"imps"];
+Eval:	word(Imps:cond:2.aspect:nrefl:aff, 2.base);	#LD zmiana
+#Eval:	word(2, Imps:cond, 2.base);
+
+
+#LD Jedna nowa reguła zamiast dwóch starych
+Rule	"winien + aglt - czas przeszły"
+
+Match:	[pos~"winien"] ns [pos~"aglt"] [base~"być" && pos~"praet"];
+Eval:	word(Winien:1.number:3.person:1.gender:past:ind:1.aspect:nrefl:aff, 1.base);
+
+
+#Rule	"Winien - czas przeszły (1. osoba)"
+#
+#Match:	[pos~"winien"] ns [pos~"aglt" && person~"pri"]
+#	[base~"być" && pos~"praet"];
+#Eval:	word(1, Winien:pri:past:ind, 1.base);
+#
+#Rule	"Winien - czas przeszły (2. osoba)"
+#
+#Match:	[pos~"winien"] ns [pos~"aglt" && person~"sec"] 
+#	[base~"być" && pos~"praet"];
+#Eval:	word(1, Winien:sec:past:ind, 1.base);
+
+
+Rule	"Winien  - czas przeszły (3. osoba)"
+
+Match:	[pos~"winien"] [base~"być" && pos~"praet"];
+Eval:	word(1, Winien:ter:past:ind:nrefl:aff, 1.base);	#LD dodałam "nrefl:aff"
+
+
+#LD Jedna nowa reguła zamiast dwóch starych
+Rule	"winien + by + aglt - tryb przypuszczający"
+
+Match:	[pos~"winien"] [base~"by"] ns [pos~"aglt"];
+Eval:	word(Winien:1.number:4.person:1.gender:pres:cond:1.aspect:nrefl:aff, 1.base);
+
+
+#Rule	"Winien + by + Aglt (1. osoba)"
+#
+#Match:	[pos~"winien"] [base~"by"] ns [pos~"aglt" && person~"pri"];
+#Eval:	word(1, Winien:pri:pres:cond, 1.base);
+#
+#Rule	"Winien + by + Aglt (2. osoba)"
+#
+#Match:	[pos~"winien"] [base~"by"] ns [pos~"aglt" && person~"sec"];
+#Eval:	word(1, Winien:sec:pres:cond, 1.base);
+
+
+Rule	"Winien + by (3. osoba)"
+
+Match:	[pos~"winien"] [base~"by"];
+Eval:	word(1, Winien:ter:pres:cond:nrefl:aff, 1.base);	#LD dodałam "nrefl:aff"
+
+
+#LD Jedna nowa reguła zamiast dwóch starych
+Rule	"winien + aglt - czas teraźniejszy"
+
+Match:	[pos~"winien"] ns [pos~"aglt"];
+Eval:	word(Winien:1.number:3.person:1.gender:pres:ind:1.aspect:nrefl:aff, 1.base);
+
+
+#Rule	"Winien + Aglt (1. osoba)"
+#
+#Match:	[pos~"winien"] ns [pos~"aglt" && person~"pri"];
+#Eval:	word(1, Winien:pri:pres:ind, 1.base);
+#
+#Rule	"Winien + Aglt (2. osoba)"
+#
+#Match:	[pos~"winien"] ns [pos~"aglt" && person~"sec"];
+#Eval:	word(1, Winien:sec:pres:ind, 1.base);
+
+
+Rule	"Winien (3. osoba)"
+
+Match:	[pos~"winien"];
+Eval:	word(1, Winien:ter:pres:ind:nrefl:aff, 1.base);	#LD dodałam "nrefl:aff"
+
+
+Rule	"czas przyszły: bedzie + się + inf"
+
+Match:	[pos~"bedzie"] [base~"się"] [pos~"inf"];
+Eval:	word(1, Verbfin:fut:ind:refl:aff, 3.base);
+
+
+Rule	"czas przyszły: inf + się + bedzie"
+
+Match:	[pos~"inf"] [base~"się"] [pos~"bedzie"];
+Eval:	word(3, Verbfin:fut:ind:refl:aff, 1.base);
+
+
+Rule	"czas przyszły: bedzie + inf"
+
+Match:	[pos~"bedzie"] [pos~"inf"];
+Eval:	word(1, Verbfin:fut:ind:nrefl:aff, 2.base);	#LD dodałam "nrefl:aff"
+
+
+Rule	"czas przyszły: inf + bedzie"
+
+Match:	[pos~"inf"] [pos~"bedzie"];
+Eval:	word(2, Verbfin:fut:ind:nrefl:aff, 1.base);	#LD dodałam "nrefl:aff"
+
+
+#LD Jedna nowa reguła zamiast pięciu starych.
+Rule	"czas przyszły: bedzie się + praet"
+
+Match:	[pos~"bedzie"] [base~"się"] 
+	[pos~"praet" && aspect~"imperf"];
+Eval:	word(Verbfin:1.number:1.person:fut:ind:1.aspect:refl:aff:3.gender, 3.base);
+
+
+#rozmnożone reguły (rodzaj z praet)
+#Rule	"czas przyszły: bedzie się + praet (m1)"
+#
+#Match:	[pos~"bedzie"] [base~"się"] 
+#	[pos~"praet" && aspect~"imperf" && gender~"m1"];
+#Eval:	word(1, Verbfin:fut:ind:refl:m1, 3.base);
+#
+#Rule	"czas przyszły: bedzie się + praet (m2)"
+#
+#Match:	[pos~"bedzie"] [base~"się"] 
+#	[pos~"praet" && aspect~"imperf" && gender~"m2"];
+#Eval:	word(1, Verbfin:fut:ind:refl:m2, 3.base);
+#
+#Rule	"czas przyszły: bedzie się + praet (m3)"
+#
+#Match:	[pos~"bedzie"] [base~"się"]
+#	[pos~"praet" && aspect~"imperf" && gender~"m3"];
+#Eval:	word(1, Verbfin:fut:ind:refl:m3, 3.base);
+#
+#Rule	"czas przyszły: bedzie się + praet (f)"
+#
+#Match:	[pos~"bedzie"] [base~"się"]
+#	[pos~"praet" && aspect~"imperf" && gender~"f"];
+#Eval:	word(1, Verbfin:fut:ind:refl:f, 3.base);
+#
+#Rule	"czas przyszły: bedzie się + praet (n)"
+#
+#Match:	[pos~"bedzie"] [base~"się"]
+#	[pos~"praet" && aspect~"imperf" && gender~"n"];
+#Eval:	word(1, Verbfin:fut:ind:refl:n, 3.base);
+
+
+#LD Jedna nowa reguła zamiast pięciu starych.
+Rule	"czas przyszły: bedzie + praet"
+
+Match:	[pos~"bedzie"] [pos~"praet" && aspect~"imperf"];
+Eval:	word(Verbfin:1.number:1.person:fut:ind:1.aspect:nrefl:aff:2.gender, 2.base);
+
+
+#rozmnożone reguły (rodzaj z praet)
+#Rule	"czas przyszły: bedzie + praet (m1)"
+#
+#Match:	[pos~"bedzie"] [pos~"praet" && aspect~"imperf" && gender~"m1"];
+#Eval:	word(1, Verbfin:fut:ind:m1, 2.base);
+#
+#Rule	"czas przyszły: bedzie + praet (m2)"
+#
+#Match:	[pos~"bedzie"] [pos~"praet" && aspect~"imperf" && gender~"m2"];
+#Eval:	word(1, Verbfin:fut:ind:m2, 2.base);
+#
+#Rule	"czas przyszły: bedzie + praet (m3)"
+#
+##Match:	[pos~"bedzie"] [pos~"praet" && aspect~"imperf" && gender~"m3"];
+#Eval:	word(1, Verbfin:fut:ind:m3, 2.base);
+#
+#Rule	"czas przyszły: bedzie + praet (f)"
+#
+#Match:	[pos~"bedzie"] [pos~"praet" && aspect~"imperf" && gender~"f"];
+#Eval:	word(1, Verbfin:fut:ind:f, 2.base);
+#
+#Rule	"czas przyszły: bedzie + praet (n)"
+#
+#Match:	[pos~"bedzie"] [pos~"praet" && aspect~"imperf" && gender~"n"];
+#Eval:	word(1, Verbfin:fut:ind:n, 2.base);
+
+
+#LD Jedna nowa reguła zamiast pięciu starych.
+Rule	"czas przyszły: praet + bedzie"
+
+Match:	[pos~"praet" && aspect~"imperf"] [pos~"bedzie"];
+Eval:	word(Verbfin:2.number:2.person:fut:ind:2.aspect:nrefl:aff:1.gender, 1.base);
+
+
+#rozmnożone reguły (rodzaj z praet)
+#Rule	"czas przyszły: praet (m1) + bedzie"
+#
+#Match:	[pos~"praet" && aspect~"imperf" && gender~"m1"] [pos~"bedzie"];
+#Eval:	word(2, Verbfin:fut:ind:m1, 1.base);
+#
+#Rule	"czas przyszły: praet (m2) + bedzie"
+#
+#Match:	[pos~"praet" && aspect~"imperf" && gender~"m2"] [pos~"bedzie"];
+#Eval:	word(2, Verbfin:fut:ind:m2, 1.base);
+#
+#Rule	"czas przyszły: praet (m3) + bedzie"
+#
+#Match:	[pos~"praet" && aspect~"imperf" && gender~"m3"] [pos~"bedzie"];
+#Eval:	word(2, Verbfin:fut:ind:m3, 1.base);
+#
+#Rule	"czas przyszły: praet (f) + bedzie"
+#
+#Match:	[pos~"praet" && aspect~"imperf" && gender~"f"] [pos~"bedzie"];
+#Eval:	word(2, Verbfin:fut:ind:f, 1.base);
+#
+#Rule	"czas przyszły: praet (n) + bedzie"
+#
+#Match:	[pos~"praet" && aspect~"imperf" && gender~"n"] [pos~"bedzie"];
+#Eval:	word(2, Verbfin:fut:ind:n, 1.base);
+
+
+#info: Ta reguła musi być po innych z "bedzie"
+Rule	"bedzie -> Verbfin" 
+
+Match:  [pos~~"bedzie"];
+Eval:	word(1, Verbfin:fut:ind:nrefl:aff, );	#LD dodałam "aff"
+
+
+#info: Ta reguła musi być po czasie przyszłym złożonym i innych dla praet
+Rule	"praet -> Verbfin" 
+
+Match:  [pos~~"praet"];
+Eval:	word(Verbfin:1.number:ter:past:ind:1.aspect:nrefl:aff:1.gender, 1.base);	#LD zmieniłam całą linię
+#Eval:	word(1, Verbfin:ter:past:ind:nrefl:aff, );
+
+
+Rule	"fin perf -> Verbfin" 
+
+Match:  [pos~~"fin" && aspect~~"perf"];
+Eval:	word(1, Verbfin:fut:ind:nrefl:aff, );	#LD dodałam ind:nrefl:aff
+
+
+Rule	"fin imperf -> Verbfin" 
+
+Match:  [pos~~"fin" && aspect~"imperf"];
+Eval:	word(1, Verbfin:pres:ind:nrefl:aff, );	#LD dodałam ind:nrefl:aff
+
+
+#LD Regułę "impt -> Verbfin" rozbiłam na dwie.
+Rule	"impt imperf -> Verbfin" 
+
+Match:  [pos~~"impt" && aspect~"imperf"];
+Eval:	word(1, Verbfin:pres:imp:nrefl:aff, );	#LD dodałam nrefl:aff
+
+
+Rule	"impt perf -> Verbfin" 
+
+Match:  [pos~~"impt" && aspect~"perf"];
+Eval:	word(1, Verbfin:fut:imp:nrefl:aff, );	#LD dodałam nrefl:aff
+
+
+Rule	"tryb rozkazujący z niech: niech + czasownik"
+
+Match:	[base~"niech|niechaj" && pos~"qub"] [pos~"Verbfin" && tense!~past];
+Eval:	alter(2, imp, 2.base);	#LD zamiast word jest alter 
+#Eval:	word(2, imp, 2.base); 
+
+
+Rule	"tryb rozkazujący z niech: niech + się + czasownik"
+
+Match:	[base~"niech|niechaj" && pos~"qub"] 
+	[orth~"się"] [pos~"Verbfin" && tense!~past];
+Eval:	alter(3, imp:refl, 3.base);	#LD zamiast word jest alter  
+#Eval:	word(3, imp:refl, 3.base); 
+
+
+
+#!!!byc może ta reguła niepotrzebna (sprawdzić)
+#Rule	"tryb oznajm. dla reszty"
+#
+#Match:	[pos~"Verbfin|Winien|Pred" && mood!~"cond|imp"];
+#Eval:	#word(1, ind, ); 
+#	set(1.pos:1.number:1.person:1.tense:ind:1.aspect:1.gender, , 1);
+#	alter(1, ind, );	#LD zamiast word jest alter
+
+
+Rule	"imps -> Imps" 
+
+Match:  [pos~~"imps"];
+Eval:	word(1, Imps:ind:nrefl:aff, );	#LD dopisałam "nrefl:aff"
+
+
+Rule	"inf -> Inf" 
+
+Match:  [pos~~"inf"];
+Eval:	word(1, Inf:nrefl:aff, );	#LD dopisałam "nrefl:aff"
+
+
+#LD nowa reguła
+Rule	"negacja dla predykatywów"
+
+Match:	[base~"nie" && pos~"qub"] [pos~"pred"];
+Eval:	word(2, Pred:pres:ind:imperf:neg, 2.base);
+#info: "nie" nie wchodzi do base
+
+
+Rule	"pred -> Pred" 
+
+Match:  [pos~~"pred"];
+Eval:	word(1, Pred:pres:ind:imperf:aff, );	#LD dopisane "aff"
+#Predykatyw "to" również otrzymuje te trzy wartości.
+
+
+#Rule	"winien -> Winien" 
+#
+#Match:  [pos~~"winien"];
+#Eval:	word(1, Winien, );
+
+
+Rule	"pant -> Pant" 
+
+Match:  [pos~~"pant"];
+Eval:	word(1, Pant:nrefl:aff, );	#LD dopisałam nrefl:
+
+
+Rule	"pcon -> Pcon" 
+
+Match:  [pos~~"pcon"];
+Eval:	word(1, Pcon:nrefl:aff, );	#LD dopisałam nrefl:
+
+
+Rule	"pact -> Pact" 
+
+Match:  [pos~~"pact"];
+Eval:	word(1, Pact:nrefl, );	#LD dopisałam nrefl:
+
+
+Rule	"ppas -> Ppas" 
+
+Match:  [pos~~"ppas"];
+Eval:	word(1, Ppas:nrefl, );	#LD dopisałam nrefl:
+
+
+Rule	"zwrotność dla czasowników, imiesłowów itp. (3a)"
+
+Match:	[orth~"[Ss]ię"] [base~"nie" && pos~"qub"]  
+	[pos~"Verbfin|Imps|Inf|Pant|Pcon|Pact|Ppas"];
+Eval:	word(3, refl:neg, 3.base " " 1.base);
+
+
+Rule	"zwrotność: czasownik modalny + się + bezokolicznik"
+
+Left:	[pos~"Verbfin|Pred" 
+	&& base~"musieć|móc|mieć|należeć|wypadać|woleć|chcieć|trzeba|warto|można|wolno"];
+Match:	[orth~"się"] [pos~"Inf"];
+Eval:	word(3, refl, 3.base " " 2.base);
+
+
+Rule	"zwrotność: inny czasownik + się + bezokolicznik"
+
+Match:	[pos~"Verbfin"] [orth~"się"];
+Right:	[pos~"Inf"];
+Eval:	word(1, refl, 0.base);
+
+
+Rule	"zwrotność dla czasowników, imiesłowów itp. (1)"
+
+Match:	[pos~"Verbfin|Imps|Inf|Pant|Pcon|Pact|Ppas"] [orth~"się"];
+Eval:	word(1, refl, 0.base);
+
+
+Rule	"zwrotność dla czasowników, imiesłowów itp. (2)"
+
+Match:	[orth~"[Ss]ię"] [pos~"Verbfin|Imps|Inf|Pant|Pcon|Pact|Ppas"];
+Eval:	word(2, refl, 2.base " " 1.base);
+
+
+Rule	"zwrotność dla gerundiów (3)"
+
+Match:	[orth~"[Ss]ię"] [base~"nie" && pos~"qub"] [pos~"ger"];
+Eval:	word(3, Noun:refl:neg, 3.base " " 1.base);
+
+
+Rule	"zwrotność dla gerundiów (1)"
+
+Match:	[pos~"ger"] [orth~"się"];
+Eval:	word(1, Noun:refl, 0.base);
+
+
+Rule	"zwrotność dla gerundiów (2)"
+
+Match:	[orth~"[Ss]ię"] [pos~"ger"];
+Eval:	word(2, Noun:refl, 2.base " " 1.base);
+
+
+#ta reguła za chwilę będzie niepotrzebna
+#Rule	"nrefl dla reszty"
+#
+#Match:	[pos~"Verbfin|Ger" && reflexivity!~"refl"];	#LD usunęłam Pcon, Pant, Inf, Ppas, Pact, Imps
+#Eval:	#word(1, nrefl, ); 
+#	alter(1, nrefl, );	#LD zamiast word jest alter
+#co ze zwrotnością dla Ger, która teraz jest Noun
+
+
+Rule	"negacja dla czasowników, imiesłowów"
+
+Match:	[base~"nie" && pos~"qub"] 
+	([pos~"Verbfin|Pred|Winien|Imps|Inf|Pant|Pcon|Pact|Ppas|Ger"]);
+Eval:	word(2, neg, 2.base);
+#info: "nie" nie wchodzi do base
+
+
+#ta reguła za chwilę będzie niepotrzebna
+#Rule	"brak negacji dla reszty"
+#
+#Match:	[pos~"Verbfin|Winien|Pred|Ger" && negation!~"neg"];	#LD usunęłam Pcon, Pant, Inf, Ppas, Pact, Imps
+#Eval:	#word(1, aff, ); 
+#	alter(1, aff, );	#LD zamiast word jest alter
+
+
+Rule	"Verbfin w cudzysłowie"
+
+Match:	[orth~"\""] ns [pos~"Verbfin"] ns [orth~"\""];
+Eval:	word(3, Verbfin, 0.base);
+
+
+Rule	"adjc -> Adjc" 
+
+Match:  [pos~~"adjc"];
+Eval:	word(1, Adjc, );
+
+
+Rule	"adj -> Adj" 
+
+Match:  [pos~~"adj"];
+Eval:	word(1, Adj, );
+
+
+Rule	"adv -> Adv" 
+
+Match:  [pos~~"adv"];
+Eval:	word(1, Adv, );
+
+
+Rule	"conj -> Conj" 
+
+Match:  [pos~~"conj"];
+Eval:	word(1, Conj, );
+
+
+Rule	"comp -> Comp" 
+
+Match:  [pos~~"comp"];
+Eval:	word(1, Comp, );
+
+
+Rule	"interj -> Interj" 
+
+Match:  [pos~~"interj"];
+Eval:	word(1, Interj, );
+
+
+Rule	"interp -> Interp" 
+
+Match:  [pos~~"interp"];
+Eval:	word(1, Interp, );
+
+
+Rule	"qub -> Qub" 
+
+Match:  [pos~~"qub"];
+Eval:	word(1, Qub, );
+
+
+Rule	"prep -> Prep" 
+
+Match:  [pos~~"prep"];
+Eval:	word(1, Prep, );
+
+
+Rule	"subst|depr|ger -> Noun" 
+
+Match:  [pos~~"subst|depr|ger"];
+Eval:	word(1, Noun, );
+
+
+Rule	"num -> Num" 
+
+Match:  [pos~~"num"];
+Eval:	word(1, Num, );
+
+
+Rule	"numcol -> Numcol" 
+
+Match:  [pos~~"numcol"];
+Eval:	word(1, Numcol, );
+
+
+Rule	"ppron12 -> Ppron12" 
+
+Match:  [pos~~"ppron12"];
+Eval:	word(1, Ppron12, );
+
+
+Rule	"ppron3 -> Ppron3" 
+
+Match:  [pos~~"ppron3"];
+Eval:	word(1, Ppron3, );
+
+
+Rule	"siebie -> Siebie" 
+
+Match:  [pos~~"siebie"];
+Eval:	word(1, Siebie, );
+
+
+Rule	"xxx -> Xxx" 
+
+Match:  [pos~~"xxx"];
+Eval:	word(1, Xxx, );
+
+
+#*Brev
+#Rule	"brev -> Brev" 
+#
+#Match:  [pos~~"brev"];
+#Eval:	word(1, Brev, );
+
+##################	1. GRUPY SKŁADNIOWE
+
+################	1.2 GRUPY NIEZAGNIEŻDŻONE
+
+Rule	"tytuły"
+
+Match:	[orth~"„|“|”|\"|'|»"] ns?
+		[orth~"[A-ZĆŁŚŹŻ].*"][]* ns
+		[orth~"”|’’|\"|'|“|«"];
+Eval:	group(NG,3,3);
+
+
+###############		ADRESY
+
+Rule	"NGadres: ul. + nazwa (Adj)"
+
+Match:	[base~"ulica|plac|aleja"]
+	[orth~"[A-ZŻŁÓŚĆŹ].*" && pos~"Adj"];
+	#[orth~"[0-9][0-9]*"]?;		Czy numery nie są zagnieżdżone?
+Eval:	group(NGadres,1,1);
+
+
+###########		DATY
+
+Rule	"NGdata: pełna data cyframi"
+
+Match:	[orth~"[0-9][0-9]?"] ns [orth~"\."] ns
+	[orth~"[0-9][0-9]?"]  ns [orth~"\."] ns
+	[orth~"[1-9][0-9]*"] [orth~"r."]?;
+Eval:	group(NGdata,5,5);
+
+
+Rule	"NGdata: pełna data"
+
+Match:	[base~"dzień"]?	
+	[orth~"[0-9][0-9]?[-–]?[0-9]?[0-9]?"] (ns? [orth~"-"] ns? [orth~"[0-9][0-9]?"])?
+	([base~"styczeń|luty|marzec|kwiecień||kwi|maj|czerwiec|lipiec|sierpień|wrzesień|październik|listopad|grudzień"] | [orth~"bm\."])
+	([orth~"[1-9][0-9]*"] ns? [orth~"zeszłego|tego|ubiegłego"]? [base~"rok"] | [pos~"Brev" && base~"bieżącego.roku"])?;
+Eval:	group(NGdata,4,4);
+
+Rule	"NGdata: miesiąc + rok"
+
+Match:	[pos~"Adj"]?
+		[base~"styczeń|luty|marzec|kwiecień|maj|czerwiec|lipiec|sierpień|wrzesień|październik|listopad|grudzień"]
+		([orth~"[1-9][0-9]*"] ns? [base~"rok"]? | [pos~"Brev" && base~"bieżącego.roku|ubiegłego.roku"] | ([pos~"Brev" && base~"ubiegły"] [orth~"roku"]));
+Eval:	unify(number case gender,1,2);
+		group(NGdata,2,2);
+
+Rule	"NGdata: pełna data (miesiąc rzymskimi)"
+
+Match:	[orth~"[0-9][0-9]?[-–]?[0-9]?[0-9]?"] (ns? [orth~"-"] ns? [orth~"[0-9][0-9]?"])?
+	[base~"I|II|III|IV|V|VI|VII|VIII|IX|X|XI|XII"]
+	[orth~"[1-9][0-9]*"]? [base~"rok"]?;
+Eval:	group(NGdata,3,3);
+
+Rule	"NGdata: liczba cyframi + rok"
+
+Match:	[orth~"[1-9][0-9]*[-–]?[1-9]?[0-9]*"] (ns? [orth~"-"] ns? [orth~"[0-9][0-9]?"])?
+		([pos~"Brev" && base~"rok"] | [pos~"Noun" && base~"rok" && number~"sg"]);
+Eval:	group(NGdata,3,3);
+
+Rule 	"NGdata: (Adj) + rok + liczba cyframi"
+
+Match:	[pos~"Adj"]?
+		[base~"rok"]
+		([orth~"[1-9][0-9]*[-–]?[1-9]?[0-9]*"] | ([orth~"[1-9][0-9]*"] ns? [orth~"-|/"] ns? [orth~"[1-9][0-9]*"]));
+Eval:	group(NGdata,2,2);
+
+Rule	"NGdata: liczba cyframi rzymskimi + 'wiek'"
+
+Match:	[orth~"[IVCMLX][IVCMLX]*[-–]?[IVCMLX]*" && pos!~"Conj|Noun"]
+		[base~"wiek"];
+Eval:	group(NGdata,2,2);
+
+		
+##################	GODZINY
+
+Rule	"NGgodz: godzina + liczba cyframi + kropka + liczba cyframi (lub zakres liczbowy)"
+
+Match:	[base~"godzina"] ns?
+		([orth~"[0-1][0-9]"] | [orth~"2[0-3]"] | [orth~"[1-9]"]) (ns [orth~":|\."] ns? ([orth~"[0-5][0-9]"] | [orth~"[0-5][0-9][-–][1-9][0-9]?"] ns [orth~"\.|:"] ns [orth~"[0-5][0-9]"]))?;
+Eval:	group(NGgodz,1,1);
+
+Rule	"NGgodz: liczba cyframi + dwukropek / kropka + liczba cyframi (lub zakres liczbowy)" 
+
+Match:	([orth~"[0-1][0-9]"] | [orth~"2[0-3]"] | [orth~"[1-9]"]) ns [orth~":|\."] ns? ([orth~"[0-5][0-9]"] | [orth~"[0-5][0-9][-–][1-9][0-9]?"] ns [orth~"\.|:"] ns [orth~"[0-5][0-9]"]);
+Eval:	group(NGgodz,1,1);
+
+#################	POZOSTAŁE GRUPY
+
+#################	GRUPY LICZEBNIKOWE
+
+Rule	"NGl: czas trzyelementowy (np. godzina:minuta:sekunda)"
+
+Match:	[orth~"[0-9][0-9]*"] ns [orth~":|\."] ns [orth~"[0-9][0-9]*"] ns [orth~":|,"] ns [orth~"[0-9][0-9]*"];
+Eval:	group(NGl,1,1);
+
+Rule	"NGl: wyniki sportowe i przypisy oxfordzkie (x:y): liczba cyframi + dwukropek + liczba cyframi"
+
+Match:	[orth~"[0-9][0-9]*"] ns [orth~":"] ns? [orth~"[0-9][0-9]*[a-z]?"];
+Eval:	group(NGl,1,1);
+
+Rule	"NGl: Adj + Num (zgoda) + Noun (rząd)" #te pięć kobiet
+
+Match:	[pos~"Adj" && case!~"gen" && base!~"który"]
+		$qub_przy_num?
+		[pos~"Num|Numcol"]
+		[pos~"Noun" && case~"gen"];
+Eval:	unify(number case gender,1,2);
+		unify(gender,1,3,4);
+		group(NGl,3,4);
+
+
+Rule	"NGl: (Adj) + Num + (Adj) + Noun + (Adj) (rząd)"
+
+Match:	[pos~"Adj" && case~"gen"]?
+		$qub_przy_num?
+		[pos~"Num|Numcol" && case!~"gen"]
+		[pos~"Adj" && case~"gen"]?
+		[pos~"Noun" && case~"gen"]
+		[pos~"Adj" && case~"gen"]?;
+Eval:	unify(gender,1,3,4,5,6);
+		group(NGl,3,5);
+	
+		
+Rule 	"NGl: (Qub|Adv) + (Adj) + Num + (n*Adj) + Noun + (Adj) (zgoda)"
+
+Match:	($qub_przy_adj | $qub_przy_num | $adv_przy_num)?
+		[pos~"Adj"]?
+		[pos~"Num|Numcol"]
+		([pos~"Adj|Pant|Ppas" && base!~"pozbawić"])?
+		((ns [orth~","])? ([base~"lecz|ale|choć|chociaż|bo|czyli"] | [base~"a"]? [base~"mimo to"])? [pos~"Adj|Pant|Ppas" && base!~"który|pozbawić"])*
+		[pos~"Noun|Ppron12|Ppron3"]
+		[pos~"Adj"]?;
+Eval:	unify(number case gender,2,3,4,6,7);
+		group(NGl,3,6);
+		
+		
+Rule	"NGl: Num + Noun (procent)"
+
+Match:	$qub_przy_adj?
+		[pos~"Num"]
+		[pos~"Noun" && orth~"procent"];
+Eval:	group(NGl,2,3);
+
+		
+Rule	"NGl: Adj + liczba cyframi + Noun (rząd)" #te 5 kobiet
+
+Left:	([pos!~"Noun"] | [pos~"Noun" && case~"gen"] | sb);	#to może być za ostry warunek, ale żeby temu zaradzić, trzeba by rozmnożyć reguły (różne przypadki osobno)
+Match:	[pos~"Adj" && case!~"gen"]
+		[orth~"[1-9][0-9]*[-–]?[1-9]?[0-9]*"]
+		[pos~"Noun" && case~"gen"];
+Eval:	unify(number gender,2,4);
+		group(NGl,3,4);
+		
+Rule	"NGl: (Qub) + (Adj) + liczba cyframi + (Adj) + Noun + (Adj) (zgoda + rząd)"
+
+Match:	($qub_przy_num | [pos~"Brev" && base~"około" && brev_pos~"QUB"])?
+		[pos~"Adj"]?
+		[orth~"[1-9][0-9]*[-–]?[1-9]?[0-9]*"]
+		[pos~"Adj"]?
+		[pos~"Noun"]
+		[pos~"Adj"];
+Eval:	unify(number case gender,2,4,5,6);
+		group(NGl,3,5);
+		
+		
+Rule	"NGl: (Qub) + (Adj) + liczba cyframi + (Adj) + Noun + (Adj) (zgoda + rząd)"
+
+Match:	($qub_przy_num | [pos~"Brev" && base~"około" && brev_pos~"QUB"])?
+		[pos~"Adj"]?
+		[orth~"[1-9][0-9]*[-–]?[1-9]?[0-9]*"]
+		[pos~"Adj"]?
+		[pos~"Noun"];
+Eval:	unify(number case gender,2,4,5);
+		group(NGl,3,5);
+		
+		
+Rule	"NGl: Adj + liczba cyframi + Noun (procent)"
+
+Match:	[pos~"Adj"]
+		[orth~"[1-9][0-9]*[-–]?[1-9]?[0-9]*"]
+		[pos~"Noun" && orth~"procent"];
+Eval:	group(NGl,2,3);
+
+Rule	"NGl: (Adv|Qub) + Num|liczba cyframi + Brev"
+
+Match:	($qub_przy_num | $adv_przy_num)?
+		([pos~"Num|Numcol"] | [orth~"[1-9][0-9]*[-–]?[1-9]?[0-9]*"])
+		[pos~"Brev|Brev-se" && brev_pos~~"NOUN|NG" && orth!~"§|im\."];
+Eval:	group(NGl,2,3);
+
+Rule	"NGl: Noun + Num (rząd)"
+
+Match:	[pos~"Noun" && case~"gen"]
+		[pos~"Num|Numcol"];
+Right:	([pos~"Noun|Adj" && case!~"gen"] | [pos!~"Noun|Adj"] | se | ns);
+Eval:	group(NGl,2,1);
+
+Rule	"NGl: Noun + Num (zgoda)"
+
+Match:	[pos~"Noun"]
+		[pos~"Num|Numcol"];
+Right:	([pos~"Noun|Adj" && case!~"gen"] | [pos!~"Noun|Adj"] | se | ns);
+Eval:	unify(number case gender,1,2);
+		group(NGl,2,1);
+		
+		
+Rule	"NGl: Adj + Noun + liczba cyframi (rząd)" #tych przebiegów 10
+
+Match:	[pos~"Adj" && case~"gen"]
+		[pos~"Noun" && case~"gen"]
+		[orth~"[1-9][0-9]*[-–]?[1-9]?[0-9]*"];
+Right:	([pos~"Noun|Adj" && case!~"gen"] | [pos!~"Noun|Adj"] | se | ns);
+Eval:	unify(number gender,1,2);
+		group(NGl,3,2);
+		
+
+Rule	"NGl: zakresy liczbowe (cyframi), trójelementowe"
+
+Match:	[orth~"[1-9][0-9]*"] ns? [orth~"-|–"] ns? [orth~"[1-9][0-9]*"];
+Eval:	group(NGl,1,1);
+		
+
+###############################			GRUPY RZECZOWNIKOWO-RZECZOWNIKOWE
+	
+
+Rule	"NGs: (Adj) + Noun(osoba) + (Noun[osoba]) + Noun + (Noun) (tytuł + imię + nazwisko)"
+
+Match:	[pos~"Adj"]?
+		($osoba | $tytul)
+		[pos~"Adj"]?
+		($osoba | $tytul)?
+		([pos~"Noun" && base~"[A-ZĆŁŚŹŻÓ].*" && orth!~"Skarbu|Rosji|Francji"] | [pos~"Noun" && base~"sprawozdawca"])
+		[pos~"Noun|Adj" && orth~"[A-ZĆŁŚŹŻÓ].*"]*;
+Eval:	unify(number case,1,2,3,4,5,6);
+		group(NGs,2,2);
+#łapie się ministra Skarbu Państwa, ale dużo grup niezagnieżdżonych się nie złapie, jeśli wyeliminuje się dopełniacze
+#dziwnostka: dlaczego na tę regułę i regułę niżej łapią się dwuczłonowe nazwiska z łącznikami?
+		
+Rule	"NGs: (Adj) + Noun + (Adj) + n*Noun"
+
+Match:	$tytul?
+		[pos~"Adj" && case!~"gen"]?
+		[pos~"Noun"	&& case!~"gen"]
+		[pos~"Adj" && case!~"gen"]?
+		[pos~"Noun" && case!~"gen"]+;
+Eval:	unify(number case,2,3,4,5);
+		group(NGs,3,3);
+#nie łapią się dopełniacze, można na wszelki wypadek zrezygnować jeszcze z mianowników
+
+
+Rule	"NGs: nazwiska w dopełniaczu"
+
+Match:	[pos~"Adj" && case~"gen"]?
+		[pos~"Noun" && base~"[A-ZĆŁŚŹŻÓ].*" && case~"gen"]
+		[pos~"Noun" && base~"[A-ZĆŁŚŹŻÓ].*" && case~"gen"];
+Eval:	unify(number,1,2,3);
+		group(NGs,2,2);
+
+
+Rule	"NGs: Noun + Noun (chodzi o dopełniacze)"
+
+Match:	$osoba
+		$osoba;
+Eval:	group(NGs,1,1);
+
+
+		
+#################################		GRUPY RZECZOWNIKOWO-PRZYMIOTNIKOWE	
+	
+Rule	"NGa: przymiotnik porządkowy rzymskimi + (Adj) + Noun + (Adj)"
+
+Match:	[orth~"[IVCMLX][IVCMLX]*[-–]?[IVCMLX]*" && pos!~"Conj|Noun"]
+		[pos~"Adj"]?
+		[pos~"Noun"]
+		[pos~"Adj"]?;
+Eval:	unify(number case gender,2,3,4);
+		group(NGa,3,3);
+		
+Rule	"NGa: przymiotnik porządkowy rzymskimi + wiek"
+
+Match:	[orth~"[IVCMLX][IVCMLX]*[-–]?[IVCMLX]*"]
+		[orth~"w\."];
+Eval:	group(NGa,2,2);
+#próbowałam dodać ewentualne "p.n.e.", ale nie działa, bo na ms to skróty od 'piętro', 'nowy' i wykrzyknik 'e'
+		
+Rule	"NGa: Noun + (Noun) + (Noun) + przymiotnik porządkowy rzymskimi"
+
+Match:	[pos~"Noun"]
+		[pos~"Noun" && orth~"[A-ZŹĆŻÓŚ].*"]?
+		[pos~"Noun" && orth~"[A-ZŹĆŻÓŚ].*"]?
+		[orth~"[IVCMLX][IVCMLX]*[-–]?[IVCMLX]*" && pos!~"Conj|Noun"];
+Eval:	unify(number case gender,1,2,3);
+		group(NGa,1,1);
+		
+
+Rule	"NGa: paragraf/artykuł + numer cyframi"
+
+Match:	[base~"artykuł|§|$"] ns? [orth~"[0-9][0-9]*[-–]?[0-9]?[0-9]*"];
+Eval:	group(NGa,1,1);
+###	'artykuł' się nie łapie, bo 'art' to ign na ms
+
+Rule	"NGa: msza św."
+
+Match:	[base~"msza|komunia|pismo" && pos~"Noun"] [base~"święty" && pos~"Brev"];
+Eval:	group(NGa,1,1);
+		
+Rule	"NGa: jak + Adj (sup) + Noun"
+
+Match:	[base~"jak" && pos~"Adv"]
+		[pos~"Adj" && degree~"sup"]
+		[pos~"Noun"];
+Eval:	unify(number case gender,2,3);
+		group(NGa,3,3);
+		
+Rule	"NGx: zaimek + Adj gen"
+
+Match:	[base~"coś|nic|co|cóż"] ([pos~"Adj" && case~"gen"] | [orth~"więcej"]);
+Eval:	group(NGx,1,1);	
+
+Rule	"NGa: (Adj) + Ppron3 + Noun"
+
+Match:	[pos~"Adj"]?
+		[pos~"Ppron3" && case~"gen" && post-prepositionality~"npraep"]
+		[pos~"Adj"]?
+		[pos~"Noun"]
+		[pos~"Adj"]?;
+Eval:	group(NGa,4,4);
+#	UWAGA! Na tę regułę i regułę niżej łapią się też (błędnie) dopełniacze przy gerundiach i rzeczownikach wymagających dopełniacza, np. "ich zamrożenie", "ich kupno" - dwuznaczne konstrukcje, błędy nie do wyeliminowania, jeśli zostaniemy przy tej regule i jeśli na ms nie odróżnimy ppron3 od równokształtnego adj
+
+Rule	"NGa: Noun + Ppron3"
+
+Match:	[pos~"Noun"]
+		[pos~"Ppron3" && case~"gen"];
+Eval:	group(NGa,1,1);
+		
+		
+###################	Adj na początku
+		
+# nie łapią się, choć są w materiale: zasadniczo, często, trudno, wciąż, niegdyś, szeroko, kiedyś, późno, mocno, głęboko, nagle, wspaniale, jak (w pytaniach), niekiedy - UWAGA - PROBLEMATYCZNE; większość to tak naprawdę imiesłowy, a nie adj (błędy automatycznej anotacji)		
+Rule	"NGa: Adv + Adj + (n*((Adv) + Adj)) + Noun + (Adj)"
+
+Match:	$adv_przy_adj
+		[pos~"Adj|Pact" && base!~"pozbawić|który"]
+		[pos~"Adv" && base!~"gdy|gdzie|kiedy|rano|jak"]?
+		((ns [orth~","])? ([base~"lecz|ale|choć|chociaż|bo|czyli"] | [base~"a"]? [base~"mimo to"])? [pos~"Adv" && base!~"gdy|gdzie|kiedy|rano|jak"]? [pos~"Adj|Pact|Ppas" && base!~"który|pozbawić"])*
+		[pos~"Noun|Ppron12|Ppron3"]
+		[pos~"Adj"]?;
+Eval:	unify(number case gender,2,5,6);
+		group(NGa,5,5);
+		
+Rule	"NGa: (Adv) + Ppas (Nom) + Noun + (Adj)"
+
+Left:	([pos~"Verbfin" && base!~"być|zostać"] | [pos!~"Verbfin"] | sb);
+Match:	$qub_przy_adj?
+		[pos~"Adv" && base!~"jak|gdzie|kiedy|gdy|skąd|dokąd|dlaczego|dlatego|tymczasem|odtąd"]?
+		[pos~"Ppas" && case~"nom"]
+		$qub_przy_adj?
+		[pos~"Noun" && case~"nom"]
+		[pos~"Adj" && case~"nom"]?;
+Eval:	unify(number gender,4,6,7);
+		group(NGa,6,6);
+		
+Rule	"NGa: (Adv) + Ppas (nNom) + Noun + (Adj)"
+
+Match:	$qub_przy_adj?
+		[pos~"Adv" && base!~"jak|gdzie|kiedy|gdy|skąd|dokąd|dlaczego|dlatego|tymczasem"]?
+		[pos~"Ppas" && case!~"nom"]
+		$qub_przy_adj?
+		[pos~"Adj" && case!~"nom"]?
+		[pos~"Noun" && case!~"nom"]
+		[pos~"Adj" && case!~"nom"]?;
+Eval:	unify(number gender,3,5,6,7);
+		group(NGa,6,6);
+
+		
+##"pozbawiony" wymaga zagnieżdżonego dopełniacza (chyba że dziwny przestawny szyk); oczywiście jest tego więcej - tu wprowadzone "awaryjnie";
+##z krótkiego przeglądu NKJP wynika, że wypadki, kiedy będą się łąpać przypadkowo niechciane zagnieżdżające Ppas, są raczej wyjątkowe
+##IMHO więcej szkody z usunięcia Ppas niż z pozostawienia
+Rule 	"NGa: (Qub) + Adj + (n*((Adv) + Adj)) + Noun + (Adj)"
+
+Match:	$qub_przy_adj?
+		[pos~"Adj|Pact" && base!~"pozbawić|który"]
+		$qub_przy_adj?
+		[pos~"Adv" && base!~"gdy|gdzie|kiedy|rano|jak"]?
+		((ns [orth~","])? ([base~"lecz|ale|choć|chociaż|bo|czyli"] | [base~"a"]? [base~"mimo to"])? $qub_przy_adj? [pos~"Adv" && base!~"gdy|gdzie|kiedy|rano|jak"]? [pos~"Adj|Pact|Ppas" && base!~"który|pozbawić"])+
+		[pos~"Noun|Ppron12|Ppron3"]
+		[pos~"Adj" && base!~"który"]?;
+Eval:	unify(number case gender,2,6,7);
+		group(NGa,6,6);
+		
+		
+Rule 	"NGa: (Qub) + Adj + (Qub) + (Adv) + Noun + (Adj)"
+
+Match:	$qub_przy_adj?
+		[pos~"Adj|Pact" && base!~"pozbawić|który"]
+		$qub_przy_adj?
+		[pos~"Adv" && base!~"gdy|gdzie|kiedy|rano|jak"]?
+		[pos~"Noun|Ppron12|Ppron3"]
+		[pos~"Adj" && base!~"który"]?;
+Eval:	unify(number case gender,2,5,6);
+		group(NGa,5,5);
+		
+		
+Rule	"NGa: Adj + Noun"
+		
+Match:	[pos~"Adj|Pact" && base!~"pozbawić|który"]
+		[pos~"Noun|Ppron12|Ppron3"];
+Eval:	unify(number case gender,1,2);
+		group(NGa,2,2);
+################## ta reguła zrobiona interwencyjnie, bo nie łapało się "wszelkie siatki" w "rozpracowujących wszelkie siatki"; może trzeba tę skomplikowaną regułę rozbić na mniejsze
+
+##################		Noun na początku
+		
+
+		
+Rule	"NGa: Noun + (Adv) + n*Adj Gen"
+
+Match:	[pos~"Noun|Ppron12|Ppron3" && base!~"co" && case~"gen"] [pos~"Adv"]? [pos~"Adj|Pact|Ppas" && case~"gen"]+;
+#Right:	([pos!~"Noun"] | [pos~"Noun" && case!~"gen"] | ns | se);
+Eval:	unify(number case gender,1,3);
+		group(NGa,1,1);
+#Ograniczenie prawego kontekstu jest za mocne: trzeba by rozmnożyć regułę: nie może być zgody między Adj a rzeczownikiem w prawym kontekście
+
+Rule	"NGa: Noun + (Adv) + n*Adj nGen nNom (po przecinkach)"
+
+Match:	[pos~"Noun|Ppron12|Ppron3" && base!~"co" && case!~"gen"] 
+		[pos~"Adv"]? 
+		[pos~"Adj|Pact|Ppas" && case!~"gen|nom" && base!~"który"]
+		(ns [orth~","] [pos~"Adj|Pact|Ppas" && base!~"który|pozbawić"])+;
+Eval:	unify(number case gender,1,3);
+		group(NGa,1,1);
+		
+Rule	"NGa: Noun + (Adv) + n*Adj nGen nNom"
+
+Match:	[pos~"Noun|Ppron12|Ppron3" && base!~"co" && case!~"gen"] [pos~"Adv"]? [pos~"Adj|Pact|Ppas" && case!~"gen|nom" && base!~"który"]+;
+Eval:	unify(number case gender,1,3);
+		group(NGa,1,1);		
+
+Rule	"NGa: Noun + (Adv) + n*Adj Nom"
+
+Left:	([pos~"Verbfin" && base!~"być|zostać"] | [pos!~"Verbfin"] | sb);
+Match:	[pos~"Noun|Ppron12|Ppron3" && case~"nom"] 
+		[pos~"Adv"]?
+		[pos~"Adj|Pact|Ppas" && case~"nom"]+;
+Right:	([pos~"Verbfin" && base!~"być|zostać"] | [pos!~"Verbfin"] | ns | se);
+Eval:	unify(number gender,2,4);
+		group(NGa,2,2);
+		
+Rule	"NGa w cudzysłowie"
+
+Match:	[orth~"„|“|”|\"|'|»"] ns?
+		[type="NGa" && synh=[orth~"[a-zćłśźżó].*"]] ns?
+		[orth~"”|’’|\"|'|“|«"];
+Eval:	group(NGa,3,3);
+
+######################################			GRUPY PRZYMIOTNIKOWE
+
+Rule	"AdjGl: Num + Adj (rząd)"
+
+Match:	$qub_przy_num?
+		[pos~"Num|Numcol"]
+		[pos~"Adj" && case~"gen"];
+Eval:	group(AdjGl,2,3);
+
+Rule	"AdjGl: Num + Adj (zgoda)"
+
+Match:	$qub_przy_num?
+		[pos~"Num|Numcol"]
+		[pos~"Adj"];
+Eval:	unify(number case gender,2,3);
+		group(AdjGl,2,3);
+
+Rule	"AdjGl: liczba cyframi + Adj"
+
+Match:	[orth~"[1-9][0-9]*[-–]?[1-9]?[0-9]*"]
+		[pos~"Adj"];
+Eval:	group(AdjGl,1,2);
+
+Rule	"Adj + Adj"
+
+Match:	[pos~"Adj"]
+		[pos~"Adj" && base!~"który"];
+Eval:	unify(number case gender,1,2);
+		group(AdjG,1,1);
+		
+Rule	"Adv + Adj"
+
+Match:	$adv_przy_adj
+		[pos~"Adj|Ppas"];
+Eval:	group(AdjG,2,2);
+
+#####################################			GRUPY ZE SKRÓTAMI (nie wychwytywane wyżej)
+
+Rule	"NGb: Brev(NOUN) + Noun"
+
+Match:	[pos~"Brev" && brev_pos~~"NOUN" && base!~"imienia|ulica|plac|aleja"]
+		[pos~"Noun" && base~"[A-ZĆŹŻŚÓ].*"]+;
+Eval:	group(NGb,1,1);
+
+Rule	"NGb: Brev(ADJ) + Noun"
+
+Match:	[pos~"Brev" && brev_pos~~"ADJ" && base!~"imienia|ulica|plac|aleja"]
+		[pos~"Noun" && base~"[A-ZĆŹŻŚÓ].*"]
+		[pos~"Noun" && base~"[A-ZĆŹŻŚÓ].*"]*;
+Eval:	group(NGb,2,2);
+
+Rule	"Noun + Brev (NOUN|ADJ)"
+
+Match:	[pos~"Noun"]
+		[pos~"Brev|Brev-se" && brev_pos~"NOUN|ADJ" && base!~"imienia|ulica|plac|aleja"];
+Eval:	group(NGb,1,1);
+
+
+Rule	"NGb: Brev + liczba cyframi"
+
+Match:	[pos~~"Brev" && brev_pos~"NOUN"] ns?
+		[orth~"[1-9][0-9]*[-–]?[1-9]?[0-9]*"] (ns [orth~"-"] ns [orth~"[0-9]+"])?;
+Eval:	group(NGb,1,1);
+
+############################################		POJEDYNCZE WYRAZY
+
+Rule 	"(Qub) + Noun"
+
+Match:	[pos~"Qub" && base~"prawie|ponad|dopiero|niby|byle|niemal|nie|tylko|jeszcze|już|minimum|ani|i|to"]?
+		[pos~"Noun|Ppron12|Ppron3|Siebie"];
+Eval:	group(NG,2,2);
+
+Rule	"(Qub) + Num"
+
+Match:	($qub_przy_num | [pos~"Brev" && brev_pos~QUB && base~"około"])?
+		[pos~"Num"];
+Eval:	group(NumG,2,2);
+
+
+Rule	"(Qub) + Adj"
+
+Match:	$qub_przy_adj?
+		[pos~"Adj|Ppas|Pact"];
+Eval:	group(AdjG,2,2);
+
+Rule	"Brev"
+
+Match:	[pos~"Brev" && brev_pos~"NOUN"];
+Eval:	group(NG,1,1);
+
+Rule	"grupa w cudzysłowie"
+
+Match:	[orth~"„|“|”|\"|'|»"] ns?
+		[type="NG" && synh=[orth~"[a-zćłśźżó].*"]] ns?
+		[orth~"”|’’|\"|'|“|«"];
+Eval:	group(NG,3,3);
+
+###############################			GRUPY ZAGNIEŻDŻONE
+
+########################################		ADRESY
+
+Rule	"NGadres: ulica + NG(gen) +(numer)"
+
+Match:	[type="NG" && synh=[base~"ulica|plac|aleja"]]
+		[type="NG" && synh=[case~"gen" && base~"[A-ZŁÓŻŹĆ].*"]]
+		([orth~"[0-9][0-9]?[-–]?[0-9]?[0-9]?[A-ZŁŚŻ]?"] (ns? [orth~"-"] ns? [orth~"[0-9][0-9]?"])?)?;
+Eval:	group(NGadres,1,1);
+
+
+Rule	"NGadres: NGadres + numer"
+
+Match:	[type="NGadres"]
+		[orth~"[0-9][0-9]?[-–]?[0-9]?[0-9]?[A-ZŁŚŻ]?"] (ns? [orth~"-"] ns? [orth~"[0-9][0-9]?"])?;
+Eval:	group(NGadres,1,1);
+
+######################################		GRUPY NG2
+
+Rule	"NG2: NG(gen) + NG"
+
+Match:	[type="NG|NGa" && synh=[case~"gen" && base~"pan|pani|państwo|to|podziw|nauczyciel|typ|rodzaj|wielkość|sława|wysokość|strumień|klasa|próba|jakość|słowo|wspomnienie|Boryn.*|iskra"]]
+		[type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb" && synh=[base!~"co|on|ja|ty|my|wy|siebie"]];
+Eval:	group(NG2,2,2);
+
+
+Rule	"NG2: NG + NG(gen) + [NG(nom|gen|dat|inst)]"
+
+Match:	[type=".*" && synh=[base~"odbywać|ozdabiać|wysycić|przywracać|zastąpić|dociążyć|wydawać|udzielić|udzielać|udostępniać|stawić|przekazać|zapewnić|utrudniać|oduczać|zafascynowanie|objąć|dociążyć|nadawanie"]]
+		[type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb" && synh=[case~"gen" && base!~"co|siebie"]];
+Right:	[type=".*"];
+Eval:	group(NG2,1,1);
+
+
+Rule	"NG2: [NG] + NG(gen) + NG(dat) | NG + NG(dat) + [NG(gen)]"
+
+Match:	[type=".*" && synh=[base~"przybliżenie|uchylić|przekazać|podać|wręczyć|nieść|przesłać|darować|darowanie"]]
+		[type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb" && synh=[case~"dat" && base!~"co|siebie"]];
+Right:	[type=".*"];
+Eval:	group(NG2,1,1);
+
+
+Rule	"NG2: [NG] + NG(gen) + NG(inst) | NG + NG(inst) + [NG(gen)]"
+
+Match:	[type=".*" && synh=[base~"pomalować"]]
+		[type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb" && synh=[case~"inst" && base!~"co|siebie"]];
+Right:	[type=".*"];
+Eval:	group(NG2,1,1);
+
+
+
+Rule	"NG2: NG + NG(gen) nie przed NG(gen) i nie przed koordynacją"
+
+Left:	([synh=[base!~"mistrzostwo|rekord|ułatwienie|order|puchar"]] | sb | [pos~".*"]);
+Match:	[type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb" && synh=[base!~"co|on|ja|ty|my|wy|siebie|to"]]
+		([type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb" && synh=[case~"gen" && base!~"co|on|ja|ty|my|wy|siebie|nic"]] | [type="NGadres" && synh=[pos~"Brev"]]);
+Right:	(se | (ns [orth~","] ([pos!~"Conj"] | [type=".*" && synh=[case!~"gen"]])) | (ns [orth!~","]) | ([pos~"Conj"] [type=".*" && synh=[case!~"gen"]]) | [pos!~"Conj"] | [type=".*" && synh=[case!~"gen"]]);
+Eval:	group(NG2,2,2);
+
+
+Rule	"NG2: NG + NG(gen) nie przed NG(gen) i nie przed koordynacją (2)"
+
+Left:	([synh=[base!~"mistrzostwo|rekord|ułatwienie|order|puchar"]] | sb | [pos~".*"]);
+Match:	[type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb" && synh=[base!~"co|on|ja|ty|my|wy|siebie|to"]]
+		([type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb" && synh=[case~"gen" && base!~"co|on|ja|ty|my|wy|siebie|nic"]] | [type="NGadres" && synh=[pos~"Brev"]]);
+Right:	(se | (ns [orth~","] ([pos!~"Conj"] | [type=".*" && synh=[case!~"gen"]])) | (ns [orth!~","]) | ([pos~"Conj"] [type=".*" && synh=[case!~"gen"]]) | [pos!~"Conj"] | [type=".*" && synh=[case!~"gen"]]);
+Eval:	group(NG2,2,2);
+
+
+Rule	"NG2: NG + NG(dat)"
+
+Match:	[type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb" && synh=[base~"kwota|uświadomić|służba|czytanie|psycholog|zapobieżenie|przypomnienie|pomoc|wyobrażenie|przekazać|przeciwstawić się|radzić|zbiorowość|sprzeniewierzać się|zapobieganie|ofiara|konferencja|wierność|udzielić|czynić|zawód|umożliwić|chwała|raj|poddany"]]
+		[type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb" && synh=[case~"dat" && base!~"co|on|ja|ty|my|wy|siebie"]];
+Right:	(se | (ns [orth~","] ([pos!~"Conj"] | [type=".*" && synh=[case!~"dat"]])) | (ns [orth!~","]) | ([pos~"Conj"] [type=".*" && synh=[case!~"dat"]]) | [pos!~"Conj"] | [type=".*" && synh=[case!~"gen"]]);
+Eval:	group(NG2,1,1);
+
+
+Rule	"NG2: NG(Pact) + NG(acc)"
+
+Match:	[type="AdjG|NGa" && synh=[base!~"który|jaki|co|siebie"]]
+		[type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb" && synh=[case~"acc" && base!~"co|siebie"]];
+Right:	(se | (ns [orth~","] ([pos!~"Conj"] | [type=".*" && synh=[case!~"acc"]])) | (ns [orth!~","]) | ([pos~"Conj"] [type=".*" && synh=[case!~"acc"]]) | [pos!~"Conj"] | [type=".*" && synh=[case!~"gen"]]);
+Eval:	group(NG2,1,1);
+
+
+Rule	"NG2: NG + NG(inst)"
+
+Match:	[type="NG|NGa" && synh=[base!~"co|on|ja|ty|my|wy|siebie|czas"]]
+		[type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb" && synh=[case~"inst" && base!~"co|ja|ty|my|wy|on|siebie|czas"]];
+Right:	(se | (ns [orth~","] ([pos!~"Conj"] | [type=".*" && synh=[case!~"inst"]])) | (ns [orth!~","]) | ([pos~"Conj"] [type=".*" && synh=[case!~"inst"]]) | [pos!~"Conj"] | [type=".*" && synh=[case!~"gen"]]);
+Eval:	group(NG2,1,1);
+
+
+Rule	"NG2: NG + NGl z cyframi"
+
+Match:	[type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb" && synh=[base!~"co|on|ja|ty|my|wy|siebie"]]
+		[type="NGl"];
+Eval:	group(NG2,1,1);
+
+#############################################	GRUPY SKOORDYNOWANE NG po NG2
+
+Rule	"NGk: NG(gen) + NG(gen)"
+
+Left:	[type=".*"] [pos~"Conj"]?;
+Match:	[type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb" && synh=[case~"gen"]]
+		(([pos~"Conj"] | (ns? [orth~",|-|–|\+|/|:"] ns?) | (ns [orth~","] [pos~"Conj"]))
+		[type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb" && synh=[case~"gen"]])+;
+Eval:	group(NGk,3,3);
+
+Rule	"NGk: NG(dat) + NG(dat)"
+
+Left:	[type=".*"] [pos~"Conj"]?;
+Match:	[type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb" && synh=[case~"dat"]]
+		(([pos~"Conj"] | (ns? [orth~",|-|–|\+|/|:"] ns?) | (ns [orth~","] [pos~"Conj"]))
+		[type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb" && synh=[case~"dat"]])+;
+Eval:	group(NGk,3,3);
+
+Rule	"NGk: NG(acc) + NG(acc)"
+
+Left:	[type="AdjG|NGa"] [pos~"Conj"]?;
+Match:	[type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb" && synh=[case~"acc"]]
+		(([pos~"Conj"] | (ns? [orth~",|-|–|\+|/|:"] ns?) | (ns [orth~","] [pos~"Conj"]))
+		[type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb" && synh=[case~"acc"]])+;
+Eval:	group(NGk,3,3);
+
+Rule	"NGk: NG(inst) + NG(inst)"
+
+Left:	[type=".*"] [pos~"Conj"]?;
+Match:	[type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb" && synh=[case~"inst"]]
+		(([pos~"Conj"] | (ns? [orth~",|-|–|\+|/|:"] ns?) | (ns [orth~","] [pos~"Conj"]))
+		[type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb" && synh=[case~"inst"]])+;
+Eval:	group(NGk,3,3);
+
+#############################################	GRUPY NG2 Z GRUPAMI SKOORDYNOWANYMI
+
+
+Rule	"NG2: NG + NGk(gen) + [NG(nom|gen|dat|inst)]"
+
+Match:	[type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb" && synh=[base~"odbywać|ozdabiać|wysycić|przywracać|zastąpić|dociążyć|wydawać|udzielić|udzielać|udostępniać|stawić|przekazać|zapewnić|utrudniać|oduczać|zafascynowanie|objąć|dociążyć|nadawanie"]]
+		[type="NGk" && synh=[case~"gen" && base!~"co|siebie"]];
+Right:	[type=".*"];
+Eval:	group(NG2,1,1);
+
+
+Rule	"NG2: [NG] + NG(gen) + NGk(dat) | NG + NG(dat) + [NG(gen)]"
+
+Match:	[type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb" && synh=[base~"przybliżenie|uchylić|przekazać|podać|wręczyć|nieść|przesłać|darować|darowanie"]]
+		[type="NGk" && synh=[case~"dat" && base!~"co|siebie"]];
+Right:	[type=".*"];
+Eval:	group(NG2,1,1);
+
+
+Rule	"NG2: [NG] + NG(gen) + NGk(inst) | NG + NGk(inst) + [NG(gen)]"
+
+Match:	[type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb" && synh=[base~"pomalować"]]
+		[type="NGk" && synh=[case~"inst"]];
+Right:	[type=".*"];
+Eval:	group(NG2,1,1);
+
+
+Rule	"NG2: NG + NGk(gen)"
+
+Left:	([synh=[base!~"mistrzostwo|rekord|ułatwienie|order|puchar"]] | sb | [pos~".*"]);
+Match:	[type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb" && synh=[base!~"co|on|ja|ty|my|wy|siebie"]]
+		[type="NGk" && synh=[case~"gen"]];
+Eval:	group(NG2,2,2);
+
+
+Rule	"NG2: NG + NGk(gen)(2)"
+
+Left:	([synh=[base!~"mistrzostwo|rekord|ułatwienie|order|puchar"]] | sb | [pos~".*"]);
+Match:	[type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb" && synh=[base!~"co|on|ja|ty|my|wy|siebie"]]
+		[type="NGk" && synh=[case~"gen"]];
+Eval:	group(NG2,2,2);
+
+
+Rule	"NG2: NG + NGk(dat)"
+
+Match:	[type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb" && synh=[base!~"obszar|rozdział|błogosławieństwo|ulegać|scena"]]
+		[type="NGk" && synh=[case~"dat"]];
+Eval:	group(NG2,1,1);
+
+
+Rule	"NG2: NG(Pact) + NGk(acc)"
+
+Match:	[type="AdjG|NGa" && synh=[base~"koić|mieć|usuwać|przyjmować|zaburzać|organ|tłumaczyć|obejmować|bariera|dotyczyć"]]
+		[type="NGk" && synh=[case~"acc"]];
+Eval:	group(NG2,1,1);
+
+
+Rule	"NG2: NG + NGk(inst)"
+
+Match:	[type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb" && synh=[base~"handlować|kosz"]]
+		[type="NGk" && synh=[case~"inst"]];
+Eval:	group(NG2,1,1);
+
+
+###################################	NG2 W CUDZYSŁOWACH
+
+Rule	"NG2 w cudzysłowie"
+
+Match:	[orth~"„|“|”|\"|'|»"] ns?
+		[type="NG2" && synh=[orth~"[a-zćłśźżó].*"]] ns?
+		[orth~"”|’’|\"|'|“|«"];
+Eval:	group(NG2,3,3);
+
+#########################################################	GRUPY NG3
+
+
+Rule	"NG3: NG2 + NG (gen)"
+
+Match:	[type="NG2"]
+		[type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NG2" && synh=[case~"gen" && base!~"co|on|ja|ty|my|wy|siebie"]];
+Right:	(se | (ns [orth~","] ([pos!~"Conj"] | [type=".*" && synh=[case!~"gen"]])) | (ns [orth!~","]) | ([pos~"Conj"] [type=".*" && synh=[case!~"gen"]]) | [pos!~"Conj"] | [type=".*" && synh=[case!~"gen"]]);
+Eval:	group(NG3,1,1);
+
+Rule	"NG3: NG2 + NG(dat)"
+
+Match:	[type="NG2"]
+		[type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NG2" && synh=[case~"dat" && base!~"co|on|ja|ty|my|wy|siebie"]];
+Right:	(se | (ns [orth~","] ([pos!~"Conj"] | [type=".*" && synh=[case!~"dat"]])) | (ns [orth!~","]) | ([pos~"Conj"] [type=".*" && synh=[case!~"dat"]]) | [pos!~"Conj"] | [type=".*" && synh=[case!~"gen"]]);
+Eval:	group(NG3,1,1);
+
+Rule	"NG3: NG2 + NG(inst)"
+
+Match:	[type="NG2"]
+		[type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NG2" && synh=[case~"inst" && base!~"co|on|ja|ty|my|wy|siebie"]];
+Right:	(se | (ns [orth~","] ([pos!~"Conj"] | [type=".*" && synh=[case!~"inst"]])) | (ns [orth!~","]) | ([pos~"Conj"] [type=".*" && synh=[case!~"inst"]]) | [pos!~"Conj"] | [type=".*" && synh=[case!~"gen"]]);
+Eval:	group(NG3,1,1);
+
+
+Rule	"NG3: NG + NG2(gen)"
+
+Match:	[type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb|NG2" && synh=[base!~"co|on|ja|ty|my|wy|siebie"]]
+		[type="NG2" && synh=[case~"gen"]];
+Eval:	group(NG3,1,1);
+
+
+Rule	"NG3: NG + NG2(acc)"
+
+Match:	[type="NGa|AdjG" && synh=[base!~"który|jaki|co|siebie"]]
+		[type="NG2" && synh=[case~"acc"]];
+Eval:	group(NG3,1,1);
+
+
+Rule	"NG3: NG + NG2(inst)"
+
+Match:	[type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb|NG2" && synh=[base~"uczeń|zarządzać|azbest|sterować|nauczać|manipulować|uczulenie|osoba|środowisko|chodzić|twarz|objąć|badanie|wstrząs|żonglerka|zainteresowanie|tydzień|napięcie|odkaszlnąć|sygnał|istota|sztych"]]
+		[type="NG2" && synh=[case~"inst"]];
+Eval:	group(NG3,1,1);
+
+Rule	"NG3: NG + NG(gen) + NG(gen)"
+
+Match:	[type="NG" && synh=[base~"mistrzostwo|order|rekord|puchar"]]
+		[type="NG" && synh=[case~"gen"]]
+		[type="NG|NGa" && synh=[case~"gen"]];
+Eval:	group(NG3,1,1);
+
+#############################################	GRUPY SKOORDYNOWANE NG po NG3
+
+Rule	"NGk: NG(2)(gen) + NG(2)(gen)"
+
+Left:	[type=".*"] [pos~"Conj"]?;
+Match:	[type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb|NG2" && synh=[case~"gen"]]
+		(([pos~"Conj"] | (ns? [orth~",|-|–|\+|/|:"] ns?) | (ns [orth~","] [pos~"Conj"]))
+		[type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NG2" && synh=[case~"gen"]])+;
+Eval:	group(NGk,3,3);
+
+Rule	"NGk: NG(2)(dat) + NG(2)(dat)"
+
+Left:	[type=".*"] [pos~"Conj"]?;
+Match:	[type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb|NG2" && synh=[case~"dat"]]
+		(([pos~"Conj"] | (ns? [orth~",|-|–|\+|/|:"] ns?) | (ns [orth~","] [pos~"Conj"]))
+		[type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NG2" && synh=[case~"dat"]])+;
+Eval:	group(NGk,3,3);
+
+Rule	"NGk: NG(2)(acc) + NG(2)(acc)"
+
+Left:	[type="AdjG|NGa"] [pos~"Conj"]?;
+Match:	[type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb|NG2" && synh=[case~"acc"]]
+		(([pos~"Conj"] | (ns? [orth~",|-|–|\+|/|:"] ns?) | (ns [orth~","] [pos~"Conj"]))
+		[type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NG2" && synh=[case~"acc"]])+;
+Eval:	group(NGk,3,3);
+
+Rule	"NGk: NG(2)(inst) + NG(2)(inst)"
+
+Left:	[type=".*"] [pos~"Conj"]?;
+Match:	[type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb|NG2" && synh=[case~"inst"]]
+		(([pos~"Conj"] | (ns? [orth~",|-|–|\+|/|:"] ns?) | (ns [orth~","] [pos~"Conj"]))
+		[type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NG2" && synh=[case~"inst"]])+;
+Eval:	group(NGk,3,3);
+
+########################################################	GRUPY NG3 Z GRUPAMI SKOORDYNOWANYMI
+
+
+Rule	"NG3: NGk + NG (gen)"
+
+Match:	[type="NGk"]
+		[type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NG2" && synh=[case~"gen" && base!~"co|on|ja|ty|my|wy|siebie"]];
+Eval:	group(NG3,1,1);
+
+Rule	"NG3: NGk + NG(dat)"
+
+Match:	[type="NGk"]
+		[type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NG2" && synh=[case~"dat" && base!~"co|on|ja|ty|my|wy|siebie"]];
+Eval:	group(NG3,1,1);
+
+Rule	"NG3: NGk + NG(inst)"
+
+Match:	[type="NGk"]
+		[type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NG2" && synh=[case~"inst" && base!~"co|on|ja|ty|my|wy|siebie"]];
+Eval:	group(NG3,1,1);
+
+
+Rule	"NG3: NG + NGk(gen)"
+
+Match:	[type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb|NG2" && synh=[base!~"co|on|ja|ty|my|wy|siebie"]]
+		[type="NGk" && synh=[case~"gen"]];
+Eval:	group(NG3,1,1);
+
+
+Rule	"NG3: NG + NGk(acc)"
+
+Match:	[type="NGa|AdjG" && synh=[base!~"który|jaki|co|siebie"]]
+		[type="NGk" && synh=[case~"acc"]];
+Eval:	group(NG3,1,1);
+
+
+Rule	"NG3: NG + NGk(inst)"
+
+Match:	[type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb|NG2" && synh=[base!~"co|on|ja|ty|my|wy|siebie"]]
+		[type="NGk" && synh=[case~"inst"]];
+Eval:	group(NG3,1,1);
+
+###################################	NG3 W CUDZYSŁOWACH
+
+Rule	"NG3 w cudzysłowie"
+
+Match:	[orth~"„|“|”|\"|'|»"] ns?
+		[type="NG3" && synh=[orth~"[a-zćłśźżó].*"]] ns?
+		[orth~"”|’’|\"|'|“|«"];
+Eval:	group(NG3,3,3);
+
+##########################################################		GRUPY NG4
+
+Rule	"NG4: NG + NG3(gen)"
+
+Match:	[type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb|NG2|NG3" && synh=[base!~"co|on|ja|ty|my|wy|siebie"]]
+		[type="NG3" && synh=[case~"gen"]];
+Eval:	group(NG4,1,1);
+
+Rule	"NG4: NG + NG3(dat)"
+
+Match:	[type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb|NG2|NG3" && synh=[base!~"co|on|ja|ty|my|wy|siebie"]]
+		[type="NG3" && synh=[case~"dat"]];
+Eval:	group(NG4,1,1);
+
+
+Rule	"NG4: AdjG + NG3(acc)"
+
+Match:	[type="NGa|AdjG" && synh=[base!~"który|jaki|co|siebie"]]
+		[type="NG3" && synh=[case~"acc"]];
+Eval:	group(NG4,1,1);
+
+Rule	"NG4: NG + NG3(inst)"
+
+Match:	[type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb|NG2|NG3" && synh=[base!~"co|on|ja|ty|my|wy|siebie"]]
+		[type="NG3" && synh=[case~"inst"]];
+Eval:	group(NG4,1,1);
+
+
+#############################################	GRUPY SKOORDYNOWANE NG po NG4
+
+Rule	"NGk: NG(3)(gen) + NG(3)(gen)"
+
+Left:	[type=".*"] [pos~"Conj"]?;
+Match:	[type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NG2|NG3" && synh=[case~"gen"]]
+		(([pos~"Conj"] | (ns? [orth~",|-|–|\+|/|:"] ns?) | (ns [orth~","] [pos~"Conj"]))
+		[type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NG2|NG3" && synh=[case~"gen"]])+;
+Eval:	group(NGk,3,3);
+
+Rule	"NGk: NG(3)(dat) + NG(3)(dat)"
+
+Left:	[type=".*"] [pos~"Conj"]?;
+Match:	[type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NG2|NG3" && synh=[case~"dat"]]
+		(([pos~"Conj"] | (ns? [orth~",|-|–|\+|/|:"] ns?) | (ns [orth~","] [pos~"Conj"]))
+		[type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NG2" && synh=[case~"dat"]])+;
+Eval:	group(NGk,3,3);
+
+Rule	"NGk: NG(3)(acc) + NG(3)(acc)"
+
+Left:	[type="AdjG|NGa"] [pos~"Conj"]?;
+Match:	[type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NG2|NG3" && synh=[case~"acc"]]
+		(([pos~"Conj"] | (ns? [orth~",|-|–|\+|/|:"] ns?) | (ns [orth~","] [pos~"Conj"]))
+		[type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NG2|NG3" && synh=[case~"acc"]])+;
+Eval:	group(NGk,3,3);
+
+Rule	"NGk: NG(3)(inst) + NG(3)(inst)"
+
+Left:	[type=".*"] [pos~"Conj"]?;
+Match:	[type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NumG|NG2|NG3" && synh=[case~"inst"]]
+		(([pos~"Conj"] | (ns? [orth~",|-|–|\+|/|:"] ns?) | (ns [orth~","] [pos~"Conj"]))
+		[type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NumG|NG2|NG3" && synh=[case~"inst"]])+;
+Eval:	group(NGk,3,3);
+
+
+##########################################################		GRUPY NG4 Z GRUPAMI SKOORDYNOWANYMI
+
+Rule	"NG4: NG + NGk(gen)"
+
+Match:	[type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb|NG2|NG3" && synh=[base!~"co|on|ja|ty|my|wy|siebie"]]
+		[type="NGk" && synh=[case~"gen"]];
+Eval:	group(NG4,1,1);
+
+Rule	"NG4: NG + NGk(dat)"
+
+Match:	[type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb|NG2|NG3" && synh=[base!~"co|on|ja|ty|my|wy|siebie"]]
+		[type="NGk" && synh=[case~"dat"]];
+Eval:	group(NG4,1,1);
+
+
+Rule	"NG4: NG + NGk(acc)"
+
+Match:	[type="NGa|AdjG" && synh=[base!~"który|jaki|co|siebie"]]
+		[type="NGk" && synh=[case~"acc"]];
+Eval:	group(NG4,1,1);
+
+Rule	"NG4: NG + NGk(inst)"
+
+Match:	[type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb|NG2|NG3" && synh=[base!~"co|on|ja|ty|my|wy|siebie"]]
+		[type="NGk" && synh=[case~"inst"]];
+Eval:	group(NG4,1,1);
+
+############################################	NG4 W CUDZYSŁOWIE
+
+Rule	"NG4 w cudzysłowie"
+
+Match:	[orth~"„|“|”|\"|'|»"] ns?
+		[type="NG4" && synh=[orth~"[a-zćłśźżó].*"]] ns?
+		[orth~"”|’’|\"|'|“|«"];
+Eval:	group(NG4,3,3);
+
+#######################################################	GRUPY NG5
+
+Rule	"NG5: NG + NG4"
+
+Match:	[type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb|NG2|NG3|NG4" && synh=[base!~"co|on|ja|ty|my|wy|siebie"]]
+		[type="NG4" && synh=[case~"gen"]];
+Eval:	group(NG5,1,1);
+
+Rule	"NG5 w cudzysłowie"
+
+Match:	[orth~"„|“|”|\"|'|»"] ns?
+		[type="NG5" && synh=[orth~"[a-zćłśźżó].*"]] ns?
+		[orth~"”|’’|\"|'|“|«"];
+Eval:	group(NG5,3,3);
+
+####################################################################################		KOORDYNACJE
+
+Rule	"NGk: imię + imię + nazwisko(pl)"
+
+Match:	[type="NGk" && synh=[base~"[A-ZŁŚŹŻĆÓ].*"]]
+		[type="NG" && synh=[base~"[A-ZŁŚŹŻĆÓ].*" && number~"pl"]];
+Eval:	unify(case,1,2);
+		group(NGk,1,1);
+
+Rule	"NGk: NG + NG"
+
+Match:	[type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NumG|NG2|NG3|NG4|NG5"]
+		(([base!~"ale|lecz|więc" && pos~"Conj"] | (ns? [orth~",|\+|/|:"] ns?) | (ns [orth~","] [base!~"ale|lecz|więc" && pos~"Conj"]))
+		[type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NumG|NG2|NG3|NG4|NG5"])*
+		([base!~"ale|lecz|więc" && pos~"Conj"] | (ns? [orth~",|\+|/|:"] ns?) | (ns [orth~","] [base!~"ale|lecz|więc" && pos~"Conj"]))
+		[type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NumG|NG2|NG3|NG4|NG5" && synh=[base!~"kto|co"]];
+Eval:	unify(case,1,4);
+		group(NGk,1,1);
+		
+Rule	"NGk: coś jakieś i czegoś"
+
+Match:	[type="NGa"]
+		[base~"i"]
+		[type="NGa" && synh=[case~"gen"]];
+Eval:	group(NGk,1,1);
+
+###########################		SKOORDYNOWANE DATY
+
+Rule	"Liczba + spójnik + NGdata"
+
+Match:	[orth~"[0-9][0-9]?[-–]?[0-9]?[0-9]?"] (ns? [orth~"-"] ns? [orth~"[0-9][0-9]?"])?
+		[base~"i" && pos~"Conj"]
+		[type="NGdata"];
+Eval:	group(NGkdata,1,1);
+
+Rule	"NG + spójnik + NGdata"
+
+Match:	[type="NG" && synh=[base~"styczeń|luty|marzec|kwiecień|maj|czerwiec|lipiec|sierpień|wrzesień|październik|listopad|grudzień"]]
+		[base~"i" && pos~"Conj"]
+		[type="NGdata"];
+Eval:	unify(case,1,3);
+		group(NGkdata,1,1);
+		
+##########################		SKOORDYNOWANE LICZEBNIKI
+
+Rule	"Liczba + spójnik + NGl"
+
+Match:	[orth~"[0-9][0-9]?[-–]?[0-9]?[0-9]?"] (ns? [orth~"-"] ns? [orth~"[0-9][0-9]?"])?
+		[base~"i|lub" && pos~"Conj"]
+		[type="NGl"];
+Eval:	group(NGkl,1,4);
+		
+Rule	"NGk w cudzysłowie"
+
+Match:	[orth~"„|“|”|\"|'|»"] ns?
+		[type="NGk" && synh=[orth~"[a-zćłśźżó].*"]] ns?
+		[orth~"”|’’|\"|'|“|«"];
+Eval:	group(NGk,3,3);
+
+		
+		
+########################################################	ZDANIA WZGLĘDNE
+
+########################		ZDANIA WZGLĘDNE
+
+Rule	"NG + który + Verbfin"
+
+Match:	[type=".*"] ns [orth~","] [pos~"Prep"]?
+		[type="AdjG" && synh=[base~"który|jaki"]]
+		(ns | [] | [synh=[]])*
+		[pos~"Verbfin"]
+		([pos!~"Verbfin"] | [synh=[]])*;
+Right:	ns [orth~",|\."];
+Eval:	#unify(number gender,1,4);
+		group(NGkg,1,1);
+		
+Rule	"NG + kto|co + Verbfin"
+
+Match:	[synh=[base~"ten|to"]] ns [orth~","] [pos~"Prep"]?
+		[synh=[base~"kto|co"]]
+		(ns | [] | [synh=[]])*
+		[pos~"Verbfin"]
+		([pos!~"Verbfin"] | [synh=[]])*;
+Right:	ns [orth~",|\."];
+Eval:	#unify(number gender,1,4);
+		group(NGkg,1,1);
+
+
+#############################################	GRUPY SKOORDYNOWANE ZE ZDANIAMI WZGLĘDNYMI
+
+Rule	"NGk: NG(kg) + NG(kg)"
+
+Match:	[type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NumG|NG2|NG3|NG4|NG5|NGkg"]
+		(([pos~"Conj"] | (ns? [orth~",|-|–|\+|/|:"] ns?) | (ns [orth~","] [pos~"Conj"]))
+		[type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NumG|NG2|NG3|NG4|NG5|NGkg"])*
+		([pos~"Conj"] | (ns? [orth~",|-|–|\+|/|:"] ns?) | (ns [orth~","] [pos~"Conj"]))
+		[type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NumG|NG2|NG3|NG4|NG5|NGkg"];
+Eval:	unify(case,1,4);
+		group(NGk,1,1);
+
+
+##########################################################
+############################################ reguly z NKJP
+
+###########GRUPY SKŁADNIOWE
+
+
+Rule	"PrepNGb: Prep + dol. rz. + nazwa (Noun)"
+
+Match:	[pos~"Prep"] [base~"dolina" && pos~"Brev"]
+	[base~"rzeka" && pos~"Brev"]
+	[base~"[A-ZŻŁÓŚ].*" && pos~"Noun" && gender~"f" && case~~"gen"];
+Eval:	group(PrepNG,1,2);
+
+
+Rule	"PrepNGb: Prep + jez. + nazwa (Noun)"
+
+Match:	[pos~"Prep"] 
+	[base~"jezioro" && pos~"Brev"]
+	[pos~"Noun" && case~~"nom" && base~"[A-ZŻŁÓŚ].*"];
+Eval:	group(PrepNG,1,2);
+
+
+Rule	"PrepNGb: Prep + rz. + nazwa (Adj+Noun)"
+
+Match:	[pos~"Prep"] 
+	[base~"rzeka" && pos~"Brev"]
+	[base~"[A-ZŻŁÓŚ].*" && pos~"Adj" && gender~"f"]
+	[base~"[A-ZŻŁÓŚ].*" && pos~"Noun" && gender~"f"];
+Eval:	unify(case,1,3,4);
+	group(PrepNG,1,2);
+
+
+Rule	"PrepNGb: Prep + m. + nazwa (Noun)"
+
+Match:	[pos~"Prep"] 
+	[base~"miasto" && pos~"Brev"]
+	[base~"[A-ZŻŁÓŚ].*" && pos~"Noun" && gender~"m3"];
+Eval:	unify(case,1,3);
+	group(PrepNG,1,2);
+
+
+Rule	"PrepNG: Prep + skrót + nazwa"
+
+Match:	[pos~"Prep"] $instytucja
+	([pos~"Noun" && case~~"nom" && base~"[A-ZŁŚŻ].*"] |
+	[pos~"Noun" && case~~"nom" && base~"\"[A-ZŁŚŻ].*"]);
+Eval:	group(PrepNG,1,2);
+
+
+Rule	"PrepNG: Noun + temu"
+
+Match:	([pos~"Noun"] | [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NumG|NG2|NG3|NG4|NG5|NGkg"])
+	[base~~"temu" && pos~~"Prep"];
+Eval:	unify(case,1,2);
+	group(PrepNG,2,1);
+
+
+Rule	"PrepNG: Prep + którego + NG"
+
+Match:	[pos~~"Prep"] 
+	[base~"który" && case~"gen"]
+	([pos~~"Noun"] | [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NumG|NG2|NG3|NG4|NG5|NGkg"]);
+Eval:	unify(case,1,3);
+	unify(number gender,2,3);
+	group(PrepNG,1,3);
+
+
+Rule	"PrepNG: Prep + NG + którego"
+
+Match:	[pos~~"Prep"] 
+	([pos~~"Noun"] | [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NumG|NG2|NG3|NG4|NG5|NGkg"])
+	[base~"który" && case~"gen"];
+Eval:	unify(case,1,2);
+	unify(number gender,2,3);
+	group(PrepNG,1,2);
+
+
+Rule	"PrepNG: Prep + NG"
+
+Match:	[pos~~"Prep"] 
+	([pos~~"Noun"] | [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NumG|NG2|NG3|NG4|NG5|NGkg"]);
+Eval:	unify(case,1,2);
+	group(PrepNG,1,2);
+
+
+Rule	"PrepNG: Prep + art. + liczba"
+
+Match:	[pos~~"Prep"] [base~"artykuł"] [pos~"Adj" && orth~"[1-9][0-9]*"] 
+	(ns [base~"\."])? [pos~~"Noun" && case~"gen"];
+Eval:	group(PrepNG,1,2);
+
+
+Rule	"PrepNG: Prep + Adj + Brev(ADJ) + NG"
+
+Match:	[pos~~"Prep"] [pos~~"Adj"] 
+	[pos~"Brev" && brev_pos~~"ADJ|AdjG"] 
+	([pos~~"Noun"] | [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NumG|NG2|NG3|NG4|NG5|NGkg"]);
+Eval:	unify(case number gender,2,4);
+	unify(case,1,4);
+	group(PrepNG,1,4);
+
+
+Rule	"grupa PrepNG w cudzysłowie"
+
+Match:	[orth~"\""] ns [type="PrepNG"] ns [orth~"\""];
+Eval:	group(PrepNG,3,3);
+
+		
diff --git a/src/main/resources/spejd_config/sample.cfg b/src/main/resources/spejd_config/sample.cfg
new file mode 100644
index 0000000..cf19c50
--- /dev/null
+++ b/src/main/resources/spejd_config/sample.cfg
@@ -0,0 +1,110 @@
+# Config file format for shallow parser
+
+[ATTR]
+
+# Attributes and their values
+
+number                  = sg pl
+case                    = nom gen dat acc inst loc voc
+gender                  = m1 m2 m3 f n
+person                  = pri sec ter
+degree                  = pos com sup
+tense                   = pres past fut
+mood                    = ind imp cond
+reflexivity             = refl nrefl
+aspect                  = imperf perf
+negation                = aff neg
+accommodability         = congr rec
+accentability           = akc nakc
+post-prepositionality   = npraep praep
+agglutination           = agl nagl
+vocalicity              = nwok wok
+fullstoppedness         = pun npun
+brev_pos                = NOUN ADJ ADV QUB PREP CONJ VERB PPAS PACT XXX NG PrepNG AdjG DisG
+cont                    = discr ndiscr
+
+
+[POS]
+
+# Part of speech definitions.
+
+adja    =
+adjp    =
+adjc    =
+conj    =
+comp    =
+interp  = 
+pred    =
+xxx     =
+adv     = [degree]
+imps    = aspect
+inf     = aspect
+pant    = aspect
+pcon    = aspect
+qub     = [vocalicity]
+prep    = case [vocalicity]
+siebie  = case
+subst   = number case gender
+depr    = number case gender
+ger     = number case gender aspect negation
+ppron12 = number case gender person [accentability]
+ppron3  = number case gender person accentability post-prepositionality
+num     = number case gender accommodability
+numcol  = number case gender accommodability
+adj     = number case gender degree
+pact    = number case gender aspect negation
+ppas    = number case gender aspect negation
+winien  = number gender aspect
+praet   = number gender aspect [agglutination]
+bedzie  = number person aspect
+fin     = number person aspect
+impt    = number person aspect
+aglt    = number person aspect vocalicity
+brev    = fullstoppedness
+burk    =
+interj  =
+ign     =
+
+# Syntactic words
+
+Adjc    =
+Conj    = 
+Conj1   = [cont]
+Conj2   = [cont]
+Conj3   = [cont]
+Conj4   = [cont]
+Comp    =
+Comp1   = [cont]
+Comp2   = [cont]
+Interj  =
+Interp  =
+Qub     = [vocalicity]
+Xxx     =
+Adv     = [degree]
+Imps    = mood aspect reflexivity negation 
+Inf     = aspect reflexivity negation 
+Pant    = aspect reflexivity negation 
+Pcon    = aspect reflexivity negation 
+Prep    = case [vocalicity]
+Siebie  = case
+Noun    = number case gender [aspect] [reflexivity] [negation] 
+Ppron12 = number case gender person [accentability]
+Ppron3  = number case gender person accentability post-prepositionality
+Num     = number case gender accommodability
+Numcol  = number case gender accommodability
+Adj     = number case gender degree
+Adj-se  = number case gender degree
+Pact    = number case gender aspect reflexivity negation 
+Ppas    = number case gender aspect reflexivity negation 
+Verbfin = number person tense mood aspect reflexivity negation [gender] 
+Winien  = number person gender tense mood aspect reflexivity negation
+Pred    = tense mood aspect negation
+Brev    = fullstoppedness brev_pos
+Brev-se    = fullstoppedness brev_pos
+
+
+# Named Entities (of sorts):
+
+liczba  =
+#waluta  = 
+
--
libgit2 0.22.2