Commit 46a46821b37bc5e11065304c0e9494a667a66c25

Authored by Bartłomiej Nitoń
1 parent 8f86545e

Added preferable spejd config to resources directory.

src/main/resources/spejd_config/config.ini 0 → 100644
  1 +#
  2 +# FILES LOCATION
  3 +# all paths in this file are relative to location of this config file,
  4 +# except for absolute paths
  5 +# (in UNIXes starting from '/', in Windows starting from '<letter>:\' or '\')
  6 +#
  7 +
  8 +# a file containing Spejd's grammar
  9 +# in this example file you can find the Spejd rules syntax explained
  10 +rules = rules.sr
  11 +
  12 +# tagset used in grammar and input/output
  13 +# see that file for details on used format
  14 +tagset = sample.cfg
  15 +
  16 +#
  17 +# PROCESSING CHAIN
  18 +#
  19 +
  20 +# list of tools to be executed between reader and writer modules
  21 +
  22 +# for spejd with preprocessing with dictionary
  23 +# (dictionary entries may be multiple - with different names after colon, see below)
  24 +# processingChain = dictionary:example_dict spejd
  25 +
  26 +# spejd preceded with the pantera tagger (Spejd must have pantera support built in)
  27 +# processingChain = pantera spejd
  28 +
  29 +# spejd alone (the default)
  30 +processingChain = spejd
  31 +
  32 +# no tools (only reader and writer) - can be used as format converter
  33 +# processingChain =
  34 +
  35 +# number of threads to use, 0 means autodetect ( = number of detected cpus)
  36 +maxThreads = 0
  37 +
  38 +#
  39 +# INPUT
  40 +#
  41 +
  42 +# inputType: auto|xcesAna|tei|txt
  43 +# auto chooses reader basing on the file name / extension:
  44 +# - *.txt/*.txt.gz = txt
  45 +# - morph.xml/morph.xml.gz = xcesAna
  46 +# - ann_segmentation.xml/ann_segmentation.xml.gz = tei, without using morphosyntax
  47 +# - ann_morphosyntax.xml/ann_morphosyntax.xml.gz = tei, using morphosyntax
  48 +# with txt and tei without morphosyntax the Morfeusz morphological analyzer is used (unless disabled)
  49 +
  50 +inputType = auto
  51 +
  52 +# encoding of input files (overrides any XML coding tags!)
  53 +#
  54 +# note: the acronymsAfter, acronymsBefore options, and contents of various files
  55 +# such as ogonkifyFile, morfeusz disambiguation rules or dictionaries must be
  56 +# in this encoding too.
  57 +inputEncoding = UTF-8
  58 +
  59 +# regexp describing names of input files
  60 +# to look for when traversing directories given in command line
  61 +# does not affect file names given explicitly in command line
  62 +
  63 +inputFiles = morph\.xml(\.gz)?|.*\.txt(\.gz)?|ann_morphosyntax\.xml(\.gz)?
  64 +
  65 +# to ignore any disambiguation found in input?
  66 +
  67 +ignoreDisamb = no
  68 +
  69 +# Spejd can use XML id attributes available in the input. Sometimes this may cause
  70 +# problems (e.g. duplicate id values in the scope of file), so can be turned off
  71 +ignoreIDs = no
  72 +
  73 +#
  74 +# OUTPUT
  75 +#
  76 +
  77 +# format of the output file(s): tei|xcesAna|null
  78 +# null = for testing only, does not write anything
  79 +
  80 +outputType = tei
  81 +
  82 +# can interpretations deleted by Spejd be discarded at will (yes)
  83 +# or should be preserved for the final output (no)?
  84 +
  85 +discardDeleted = yes
  86 +
  87 +# the suffix to be added to the target file name
  88 +
  89 +outputSuffix = .xml
  90 +
  91 +# The core name of the output file. Depending on the output type
  92 +# some infixes can be added between it and output suffix.
  93 +# Caution: this option replaces the name of the input file.
  94 +# With output suffix containing only extension equal to extension of
  95 +# the input file (e.g. .xml for the XML input file) spejd will
  96 +# overwrite input files with output.
  97 +#
  98 +# Leave empty or comment out to use the input file name instead.
  99 +
  100 +outputFilenameCore = ann
  101 +
  102 +# If set to 'yes' spejd will backup existing output files to <name>.bak
  103 +
  104 +backupExistingFiles = no
  105 +
  106 +# apply gzip compression to output?
  107 +
  108 +compressOutput = yes
  109 +
  110 +# put <f>'s in single line and omit empty sentences/paragraphs when writing tei?
  111 +
  112 +compactTeiOutput = no
  113 +
  114 +# NKJP (National Corpus of Polish) compatibility mode:
  115 +# dont write <f name="interps"> and <fs type="lex"> in *_words.xml
  116 +# assuming that there can be only one interpretation marked as "correct" for each token.
  117 +#
  118 +# It is a user task to make sure that there will be no tokens with multiple
  119 +# correct interpretations
  120 +teiSingleSyntokInterp = yes
  121 +
  122 +# again, NKJP compatibility:
  123 +# place group's heads information inside the <fs type"group">
  124 +# as features instead of marking it as 'type' attribute of group's elements
  125 +teiFsGroupHeads = yes
  126 +
  127 +# for backward compatibility with Spejd 1.2, it is probably easier to parse structures
  128 +# written in bottom up order, starting from leafs to the root
  129 +# (all entities defined before referencing)
  130 +teiBottomUpSyntacticStructures = no
  131 +
  132 +# DIAGNOSTICS
  133 +
  134 +# report progress every reportInterval seconds
  135 +# use 0 to completely disable progress reports
  136 +
  137 +reportInterval = 5
  138 +
  139 +# more verbose reports?
  140 +debug = no
  141 +
  142 +# mark which rule has deleted an interpretation?
  143 +
  144 +ruleMarking = no
  145 +
  146 +# are tag/tagset errors fatal?
  147 +# If turned on, Spejd will try to its best to output only tags conforming the tagset,
  148 +# but they may be useless.
  149 +# This option exists only to preserve compatibility with older versions of Spejd, which
  150 +# accepted incorrect rules. Please do not use when developing new grammars.
  151 +#
  152 +# !!! use at your own risk and don't report crashes when using this option !!!
  153 +nonfatalTagErrors = no
  154 +
  155 +# if to silence the (nonfatal) tag errors?
  156 +muffleTagWarnings = no
  157 +
  158 +# Disable correctness checks of tags in between rules execution?
  159 +# If set, tags can be temporary incomplete or incorrect, but the usual validation
  160 +# before writing is stil performed to make sure Spejd will output only
  161 +# correct tags.
  162 +# Not recommended for developing new grammars.
  163 +tagErrorsOnlyOnTheEnd = no
  164 +
  165 +
  166 +######################################################################
  167 +# MODULE-SPECIFIC OPTIONS
  168 +######################################################################
  169 +
  170 +
  171 +# DICTIONARIES
  172 +
  173 +# list of files containing morphological dictionaries
  174 +# to be applied as "dictionary:example_dict" tool to the input
  175 +# the format of lines of files is:
  176 +# orthographic form,base (lexical) form:tag
  177 +#
  178 +# or:
  179 +# ,base (lexical) form:some_parts_of_tag;condition
  180 +#
  181 +# In the first variant the orthographical form is used for matching words.
  182 +# Tag definition is expanded (it may contain wildcards).
  183 +#
  184 +# In the second variant orthographic form is ommited. In that case a base form is used to match.
  185 +# The tags of existing interpretations which match the base form are corrected/modified
  186 +# according to the specified tag.
  187 +# This variant allows the tag to be not full/complete, but only specifying some
  188 +# of the attributes (some parts).
  189 +# This variant also allows to specify conditions on tag that must
  190 +# be meet to perform the modification. The condition has form of a partial tag, just like
  191 +# in the "tag" section of modifying variant. A condition restricts modified interpretations to
  192 +# that ones which have all values of the specified attributes among the specified values.
  193 +# If an attribute is ommited in the specification it means that there are no restrictions
  194 +# on this attribute value and it can be anything (including absence of value).
  195 +# When a condition is empty (that means: there are no restrictions on any attribute),
  196 +# a semicolon preceding it can be ommited and the format is:
  197 +# ,base (lexical) form:some_parts_of_tag
  198 +#
  199 +# The above two variants of entries can be mixed.
  200 +# All the entries with orthographic form are applied before applying any
  201 +# of the entries without orth in the scope of a single 'dictionary:<name>' tool,
  202 +# no matter in which file in this list they appear.
  203 +#
  204 +# The encoding of dictionary files must be the same as inputEncoding.
  205 +#dictionary:example_dict = sample_dict lexdictnum
  206 +
  207 +
  208 +# PANTERA CONFIGURATION
  209 +
  210 +# Pantera can use its own built-in tweaked version of Morfeusz.
  211 +# If this option is set, all interpretations set by reader
  212 +# or any tools preceding pantera in the toolchain are dropped
  213 +panteraDoOwnMorphAnalysis = yes
  214 +
  215 +# tagset for pantera, leave empty for a default (check pantera documentation for details)
  216 +panteraTagsetName =
  217 +
  218 +# pantera's engine, leave empty for a default (check pantera documentation for details)
  219 +panteraEnginePath =
  220 +
  221 +
  222 +# SPEJD SEMANTICS
  223 +
  224 +# default strategy for matching syntactic entities
  225 +# use * for greedy, + for possessive, ? for reluctant
  226 +
  227 +matchStrategy = *
  228 +
  229 +# should agree(case,1,2) return true, if both 1 and 2 have no case?
  230 +
  231 +nullAgreement = no
  232 +
  233 +# SPEJD FSM INTERNALS
  234 +
  235 +# number of single-rule automata to be composed together, usually not needed to change
  236 +# Rule of thumb: if Spejd consumes much too much memory, it's better to decrease this
  237 +# number than to set very low memoryLimit - it gives smaller impact on performance
  238 +composeLimit = 150
  239 +
  240 +# memory limit in megabytes
  241 +# when memory usage exceeds this limit the rarely-used states removal procedure
  242 +# (or GC, a garbage collector) is launched
  243 +# use as an emergency brake, for standard limit see above.
  244 +# The memoryLimit is approximate, actual memory usage may be slightly higher
  245 +# (it depends on memory allocator library buffers size)
  246 +memoryLimit = 1900
  247 +
  248 +# approx. percent of DFA states to leave after the states removal
  249 +leavePercent = 80
  250 +
  251 +# The definitive limit of normal GC usage. GC removes only complex states, so if there are lots
  252 +# of plain states it can't prevent from exceeding memoryLimit. If the percent of complex states
  253 +# is less than minComplexPercent, all the DFAs are dropped and they are built from the beggining
  254 +# just like if the spejd would be restarted. However it does not recompile rules, so it's faster.
  255 +minComplexPercent = 10
  256 +
  257 +
  258 +# A maximal number of unicode characters which can appear in rules compiled to internal regex
  259 +# It must be higher than the highest number of values of a single attribute (including
  260 +# numeric attributes) and must be higher than a number of unique characters appearing in all rules.
  261 +# Setting too high can increase the memory usage.
  262 +maxNumberOfValues = 4000
  263 +
  264 +
  265 +# BUILT-IN MORPHOLOGICAL ANALYZER 'MORFEUSZ'
  266 +
  267 +# disable Morfeusz completely, useful when some other tool replaces interpretations, e.g. pantera
  268 +disableMorfeusz = yes
  269 +
  270 +# Morfeusz produces ambiguous segmentation, which can be resolved by simple rule-based
  271 +# disambiguator. This option specifies a file to load rules from.
  272 +# The rule format is described in the example file
  273 +# (leave empty for the builtin default, which is actualy the example file)
  274 +
  275 +# The encoding of this file must be the same as inputEncoding.
  276 +morfeuszSegmentationDisambiguationRules = segm_disamb.conf
  277 +
  278 +# PLAIN TEXT READER - GENERAL
  279 +
  280 +# mock xml:id for the whole text input referred from the output in string-range notation
  281 +# (in TEI output it appears in *segmentation.xml)
  282 +stringRangeMockID = p-1
  283 +
  284 +# PLAIN TEXT READER - SENTENCER
  285 +
  286 +# list of acronyms -
  287 +# if a dot is found after one of them, it is not a sentence break
  288 +
  289 +acronymsAfter = prof|dr|mgr|doc|ul|np|godz|gen|płk|mjr|por|tzw|tzn|proc|nt|art|ust|ww|www|ws|dz
  290 +
  291 +# list of acronyms (actually top level domain names) -
  292 +# if a dot is found before one of them, it is not a sentence break
  293 +
  294 +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
  295 +
  296 +
  297 +# PLAIN TEXT READER - OGONKIFIER
  298 +
  299 +# name of file with ogonkify (diacrit completion) substitutions
  300 +# the format is:
  301 +# <letter without diacritics>=<list of possible letters with diacritics separated by '|'>
  302 +# see the example ogonkifier.ini
  303 +
  304 +# The encoding of this file must be the same as inputEncoding.
  305 +#ogonkifyFile = ogonkifier.ini
  306 +
  307 +# when to use ogonkifier:
  308 +# A - Always,
  309 +# N - Never,
  310 +# M - only when the Morphological analyzer fails to analyse a word
  311 +
  312 +ogonkifyStrategy = N
  313 +
  314 +# min and max length of words to ogonkify
  315 +
  316 +ogonkifyMinLength = 3
  317 +ogonkifyMaxLength = 13
  318 +
  319 +
  320 +
... ...
src/main/resources/spejd_config/rules.sr 0 → 100644
  1 +######Gramatyka dla projektu CORE
  2 +######Autor: Katarzyna Głowińska
  3 +######wersja z 15.02.2012
  4 +
  5 +# MACRO DEFINITIONS
  6 +
  7 +Define czasownik = [pos~~"winien|praet|bedzie|fin|impt|imps|inf"];
  8 +
  9 +Define lub_imieslow =
  10 + [pos~~"winien|praet|bedzie|fin|impt|imps|inf|pcon|pant|pred"];
  11 +
  12 +Define lub_grupa = [synh=[]] | $lub_imieslow;
  13 +
  14 +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"];
  15 +Define tytul1 = [base~"porucznik"];
  16 +
  17 +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"];
  18 +
  19 +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"];
  20 +
  21 +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"];
  22 +
  23 +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"];
  24 +
  25 +Define adv_przy_num = [pos~"Adv" && base~"ledwo|zbyt|znacznie|bardzo|niezbyt|tak|coraz|nieskończenie|wyjątkowo|jak|trochę|raptem|.*krotnie"];
  26 +
  27 +Define instytucja = [orth~"[Kk]op\." && pos~"Brev"];
  28 +
  29 +
  30 +# RULES
  31 +
  32 +#Rule "liczba -- liczba cyframi"
  33 +#
  34 +#Match: [orth~"[1-9][0-9]*"] (ns [orth~"[,-]"] ns [orth~"[0-9]+"])?;
  35 +#Eval: word(liczba,1.orth);
  36 +#AW: nie łapie się np. "0,5"?
  37 +
  38 +##########SŁOWA SKŁADNIOWE
  39 +
  40 +Rule "frazeo: a nuż"
  41 +
  42 +Match: [base~"a"] [base~"nuż"];
  43 +Eval: word(Qub, 0.base);
  44 +
  45 +
  46 +#LD Tę regułę trzeba na razie wyłączyć, bo produkuje niepełne tagi.
  47 +#brak informacji morfologicznych dla Adj
  48 +#Rule "frazeo: a vista"
  49 +#
  50 +#Match: [base~"a"] [base~"vista"];
  51 +#Eval: word(2, Adj, 0.base);
  52 +
  53 +
  54 +Rule "frazeo: a więc"
  55 +
  56 +Match: [base~"a" && pos~"conj"] [base~"więc" && pos~"conj"];
  57 +Eval: word(Conj, 0.base);
  58 +
  59 +
  60 +Rule "frazeo: ani rusz"
  61 +
  62 +Match: [base~"ani"] [orth~"rusz"];
  63 +Eval: word(Adv, 1.base " " 2.orth);
  64 +
  65 +
  66 +Rule "frazeo: ani trochę"
  67 +
  68 +Match: [base~"ani"] [base~"trochę"];
  69 +Eval: word(Adv, 0.base);
  70 +
  71 +
  72 +Rule "frazeo: ani w ząb"
  73 +
  74 +Match: [base~"ani|ni"] [base~"w"] [orth~"ząb"];
  75 +Eval: word(Adv, 0.base);
  76 +
  77 +
  78 +Rule "frazeo: bądź co bądź"
  79 +
  80 +Match: [orth~"[Bb]ądź" && pos~~"impt"]
  81 + [base~"co" && pos~"comp"]
  82 + [orth~"bądź" && pos~~"impt"];
  83 +Eval: word(Qub, "bądź co bądź");
  84 +
  85 +
  86 +Rule "DisG: bądź co bądź"
  87 +
  88 +Match: [base~"bądź co bądź"];
  89 +Eval: group(DisG, 1,1);
  90 +
  91 +
  92 +Rule "frazeo: bez mała"
  93 +
  94 +Match: [base~"bez" && pos~~"prep"]
  95 + [orth~"mała"];
  96 +Eval: word(Qub, 1.base " " 2.orth);
  97 +
  98 +
  99 +Rule "frazeo: bez trudu"
  100 +
  101 +Match: [base~"bez" && pos~~"prep"] [orth~"trudu"];
  102 +Eval: word(Adv, 1.base " " 2.orth);
  103 +
  104 +
  105 +Rule "frazeo: bez wątpienia"
  106 +
  107 +Match: [base~"bez" && pos~~"prep"] [orth~"wątpienia"];
  108 +Eval: word(Qub, 1.base " " 2.orth);
  109 +
  110 +
  111 +Rule "frazeo: bez względu na"
  112 +
  113 +Match: [base~"bez"] [orth~"względu"] [base~"na"];
  114 +Eval: word(Prep:acc, "bez względu na");
  115 +
  116 +
  117 +Rule "frazeo: blisko (Prep)"
  118 +
  119 +Match: [orth~"[Bb]lisko"];
  120 +Right: [pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact"
  121 + && case~~"gen"];
  122 +Eval: word(Prep:gen, "blisko");
  123 +
  124 +
  125 +Rule "frazeo: bliżej (Prep)"
  126 +
  127 +Match: [orth~"[Bb]liżej"];
  128 +Right: [pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact"
  129 + && case~~"gen"];
  130 +Eval: word(Prep:gen, "bliżej");
  131 +
  132 +
  133 +Rule "frazeo: najbliżej (Prep)"
  134 +
  135 +Match: [orth~"[Nn]ajbliżej"];
  136 +Right: [pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact"
  137 + && case~~"gen"];
  138 +Eval: word(Prep:gen, "najbliżej");
  139 +
  140 +
  141 +Rule "frazeo: Bogu ducha winny"
  142 +
  143 +Match: [orth~"[Bb]ogu"] [orth~"ducha"] [base~"winny"];
  144 +Eval: word(3, Adj, "Bogu ducha winny");
  145 +
  146 +
  147 +Rule "frazeo: Brawo,"
  148 +
  149 +Match: [orth~"[Bb]rawo"];
  150 +Right: ns [base~","];
  151 +Eval: word(Interj, 1.base);
  152 +
  153 +
  154 +Rule "DisG: Brawo,"
  155 +
  156 +Match: [base~"brawo" && pos~"Interj"];
  157 +Eval: group(DisG, 1,1);
  158 +
  159 +
  160 +Rule "frazeo: broń Boże"
  161 +
  162 +Match: [orth~"[Bb]roń"] [orth~"[Bb]oże"];
  163 +Eval: word(Interj, "broń Boże");
  164 +
  165 +
  166 +Rule "DisG: broń Boże"
  167 +
  168 +Match: [base~"broń Boże" && pos~"Interj"];
  169 +Eval: group(DisG, 1,1);
  170 +
  171 +
  172 +Rule "frazeo: być może"
  173 +
  174 +Match: [orth~"[Bb]yć"] [orth~"może"];
  175 +Eval: word(Qub, 1.base " " 2.orth);
  176 +
  177 +
  178 +Rule "frazeo: chargé d’affaires"
  179 +
  180 +Match: [base~"chargé"] [base~"d'affaires"];
  181 +Eval: word(1, Noun, 0.base);
  182 +
  183 +
  184 +Rule "frazeo: chyba że"
  185 +
  186 +Match: [base~"chyba"] [base~"że"];
  187 +Eval: word(Comp, 0.base);
  188 +
  189 +
  190 +Rule "frazeo: co gorsza|więcej"
  191 +
  192 +Match: [base~"co"] [orth~"gorsza|więcej"];
  193 +Eval: word(Qub, 1.base " " 2.orth);
  194 +
  195 +
  196 +Rule "frazeo: co najmniej"
  197 +
  198 +Match: [base~"co"] [orth~"najmniej"];
  199 +Eval: word(Qub, 1.base " " 2.orth);
  200 +
  201 +
  202 +Rule "frazeo: co najwyżej"
  203 +
  204 +Match: [base~"co"] [orth~"najwyżej"];
  205 +Eval: word(Qub, 1.base " " 2.orth);
  206 +
  207 +
  208 +Rule "frazeo: co niemiara"
  209 +
  210 +Match: [orth~"co"] [base~"niemiara"];
  211 +Eval: word(Adv, 0.base);
  212 +
  213 +
  214 +Rule "frazeo: co prawda"
  215 +
  216 +Match: [orth~"[Cc]o"] [orth~"prawda"];
  217 +Eval: word(Qub, 0.base);
  218 +
  219 +
  220 +Rule "DisG: co prawda"
  221 +
  222 +Match: [base~"co prawda"];
  223 +Eval: group(DisG, 1,1);
  224 +
  225 +
  226 +Rule "frazeo: co rusz"
  227 +
  228 +Match: [orth~"[Cc]o"] [orth~"rusz"];
  229 +Eval: word(Adv, "co rusz");
  230 +
  231 +
  232 +Rule "frazeo: co i rusz"
  233 +
  234 +Match: [orth~"[Cc]o"] [base~"i"] [orth~"rusz"];
  235 +Eval: word(Adv, "co i rusz");
  236 +
  237 +
  238 +Rule "frazeo: co tchu"
  239 +
  240 +Match: [orth~"[Cc]o"] [orth~"tchu"];
  241 +Eval: word(Adv, "co tchu");
  242 +
  243 +
  244 +Rule "frazeo: coraz to"
  245 +
  246 +Match: [base~"coraz"] [orth~"to"];
  247 +Eval: word(Adv, "coraz to");
  248 +
  249 +
  250 +Rule "frazeo: Cóż,"
  251 +
  252 +Left: sb;
  253 +Match: [base~"cóż"];
  254 +Right: ns [base~","];
  255 +Eval: word(Interj, 2.base);
  256 +
  257 +
  258 +Rule "DisG: Cóż,"
  259 +
  260 +Match: [base~"cóż" && pos~"Interj"];
  261 +Eval: group(DisG, 1,1);
  262 +
  263 +
  264 +Rule "frazeo: dawno temu"
  265 +
  266 +Match: [orth~"[Dd]awno"] [base~"temu"];
  267 +Eval: word(Adv, 0.base);
  268 +
  269 +
  270 +Rule "frazeo: do/u diabła"
  271 +
  272 +Match: [base~"do|u"] [orth~"diabła"];
  273 +Eval: word(Interj, 1.base " " 2.orth);
  274 +
  275 +
  276 +Rule "DisG: do/u diabła"
  277 +
  278 +Match: ([base~"do diabła"] | [base~"u diabła"]);
  279 +Eval: group(DisG, 1,1);
  280 +
  281 +
  282 +Rule "frazeo: do/od rzeczy"
  283 +
  284 +Match: [base~"do|od"] [orth~"rzeczy"];
  285 +Right: [case!~"gen"];
  286 +Eval: word(Adv, 1.base " " 2.orth);
  287 +
  288 +
  289 +Rule "frazeo: do cna"
  290 +
  291 +Match: [base~"do" && pos~~"prep"] [base~"cna"];
  292 +Eval: word(Adv, 0.base);
  293 +
  294 +
  295 +Rule "frazeo: do spraw"
  296 +Match: [base~"do"] [orth~"spraw"];
  297 +Right: [pos~~"subst|ger" && case~~"gen"];
  298 +Eval: word(Prep:gen, 1.base " " 2.orth);
  299 +
  300 +
  301 +Rule "frazeo: do syta i in."
  302 +
  303 +Match: [base~"do" && pos~~"prep"]
  304 + [orth~"czysta|naga|niedawna|ostatka|pełna|późna|sucha|syta|szczętu|upadłego|żywa"];
  305 +Eval: word(Adv, 1.base " " 2.orth);
  306 +
  307 +
  308 +Rule "frazeo: do widzenia"
  309 +
  310 +Match: [base~"do"] [orth~"widzenia"];
  311 +Eval: word(Interj, 1.base " " 2.orth);
  312 +
  313 +
  314 +Rule "frazeo: do żywego (1)"
  315 +
  316 +Match: [base~"do"] [orth~"żywego"];
  317 +Right: [case!~"gen"];
  318 +Eval: word(Adv, 1.base " " 2.orth);
  319 +
  320 +
  321 +Rule "frazeo: do żywego (2)"
  322 +
  323 +Match: [base~"do"] [orth~"żywego"];
  324 +Right: ns [pos~"interp"];
  325 +Eval: word(Adv, 1.base " " 2.orth);
  326 +
  327 +
  328 +Rule "frazeo: dopiero co"
  329 +
  330 +Match: [base~"dopiero"] [orth~"co"];
  331 +Eval: word(Adv, 0.base);
  332 +
  333 +
  334 +Rule "frazeo: na dzień dobry"
  335 +
  336 +Match: [base~"na" && pos~"prep"] [orth~"dzień"] [orth~"dobry"];
  337 +Eval: word(Adv, 0.base);
  338 +
  339 +
  340 +Rule "frazeo: dzień dobry"
  341 +
  342 +Match: [orth~"[Dd]zień"] [orth~"dobry"];
  343 +Eval: word(Interj, 0.base);
  344 +
  345 +
  346 +Rule "frazeo: dziwnym trafem"
  347 +
  348 +Match: [orth~"[Dd]ziwnym"] [orth~"trafem"];
  349 +Eval: word(Adv, "dziwnym trafem");
  350 +
  351 +
  352 +Rule "frazeo: happy end"
  353 +
  354 +Match: [base~"happy"] [base~"end"];
  355 +Eval: word(2, Noun, 0.base);
  356 +
  357 +
  358 +Rule "frazeo: gdzie|kiedy itp. indziej"
  359 +
  360 +Match: [base~"gdzie|gdzieś|gdziekolwiek|nigdzie|wszędzie|kiedy|kiedykolwiek"] [base~"indziej"];
  361 +Eval: word(Adv, 0.base);
  362 +
  363 +
  364 +Rule "frazeo: expressis verbis"
  365 +
  366 +Match: [base~"expressis"] [base~"verbis"];
  367 +Eval: word(Adv, 0.base);
  368 +
  369 +
  370 +Rule "frazeo: i to"
  371 +
  372 +Left: [base~","];
  373 +Match: [base~"i" && pos~"conj"] [base~"to" && pos~"qub"];
  374 +Eval: word(Qub, 0.base);
  375 +
  376 +
  377 +Rule "frazeo: in corpore"
  378 +
  379 +Match: [base~"in"] [base~"corpore"];
  380 +Eval: word(Adv, 0.base);
  381 +
  382 +
  383 +Rule "frazeo: innymi słowy"
  384 +
  385 +Match: [orth~"[Ii]nnymi"] [orth~"słowy"];
  386 +Eval: word(Qub, "innymi " 2.orth);
  387 +
  388 +
  389 +Rule "DisG: innymi słowy"
  390 +
  391 +Match: [base~"innymi słowy"];
  392 +Eval: group(DisG, 1,1);
  393 +
  394 +
  395 +Rule "frazeo: inaczej mówiąc"
  396 +
  397 +Match: [orth~"[Ii]naczej"] [orth~"mówiąc"];
  398 +Eval: word(Qub, "inaczej " 2.orth);
  399 +
  400 +
  401 +Rule "DisG: inaczej mówiąc"
  402 +
  403 +Match: [base~"inaczej mówiąc"];
  404 +Eval: group(DisG, 1,1);
  405 +
  406 +
  407 +Rule "frazeo: i tak dalej"
  408 +
  409 +Match: [base~"i"] [base~"tak" && pos~"adv"] [orth~"dalej"];
  410 +Eval: word(Qub, "i tak dalej");
  411 +
  412 +
  413 +Rule "DisG: i tak dalej"
  414 +
  415 +Match: [base~"i tak dalej"];
  416 +Eval: group(DisG, 1,1);
  417 +
  418 +
  419 +#LD Na razie wyłączyłam regułę, bo trzeba lepiej opisać kontekst.
  420 +#Rule "frazeo: i tak"
  421 +#
  422 +#Match: [base~"i"] [base~"tak"];
  423 +#Eval: word(Qub, 0.base);
  424 +#? częściej Adv, ale trudno podać dobry kontekst
  425 +
  426 +
  427 +Rule "frazeo: jak dotąd"
  428 +
  429 +Match: [base~"jak"] [base~"dotąd"];
  430 +Eval: word(Adv, 0.base);
  431 +
  432 +
  433 +Rule "frazeo: tak czy owak|siak"
  434 +
  435 +Match: [orth~"[Tt]ak"] [base~"czy"] [orth~"owak|siak"];
  436 +Eval: word(Qub, 0.base);
  437 +
  438 +
  439 +Rule "DisG: tak czy owak|siak"
  440 +
  441 +Match: [base~"tak czy owak|tak czy siak"];
  442 +Eval: group(DisG, 1,1);
  443 +
  444 +
  445 +Rule "frazeo: tak jakby (Comp)"
  446 +
  447 +Left: [base~","];
  448 +Match: [base~"tak"] [base~"jakby"];
  449 +Eval: word(Comp, 0.base);
  450 +
  451 +
  452 +Rule "frazeo: tak jakby (Qub)"
  453 +
  454 +Match: [base~"tak"] [base~"jakby"];
  455 +Eval: word(Qub, 0.base);
  456 +
  457 +
  458 +Rule "frazeo: tak jak gdyby"
  459 +
  460 +Left: [base~","];
  461 +Match: [base~"tak"] [base~"jak"] [base~"gdyby"];
  462 +Eval: word(Comp, 0.base);
  463 +
  464 +
  465 +Rule "frazeo: jak gdyby (Comp)"
  466 +
  467 +Left: [base~","];
  468 +Match: [base~"jak"] [base~"gdyby"];
  469 +Eval: word(Comp, 0.base);
  470 +
  471 +
  472 +Rule "frazeo: jak gdyby (Qub)"
  473 +
  474 +Match: [base~"jak"] [base~"gdyby"];
  475 +Eval: word(Qub, 0.base);
  476 +#[KG: może lepiej opisać kontekst (na razie wystarczy)]
  477 +
  478 +
  479 +Rule "frazeo: jak najbardziej (Interj)"
  480 +
  481 +Left: sb;
  482 +Match: [base~"jak"] [orth~"najbardziej"];
  483 +Right: [pos~"interp"]? se;
  484 +Eval: word(Interj, 2.base " " 3.orth); #LD zmiana cyferek
  485 +
  486 +
  487 +Rule "frazeo: jak najbardziej (Adv)"
  488 +
  489 +Match: [base~"jak"] [orth~"najbardziej"];
  490 +Eval: word(Adv, 1.base " " 2.orth);
  491 +
  492 +
  493 +Rule "frazeo: jak też"
  494 +
  495 +Match: [base~"jak"] [base~"też"];
  496 +Eval: word(Conj, 0.base);
  497 +
  498 +
  499 +Rule "frazeo: jako że|iż"
  500 +
  501 +Match: [base~"jako"] [base~"że|iż"];
  502 +Eval: word(Comp, 0.base);
  503 +
  504 +
  505 +Rule "frazeo: jako żywo"
  506 +
  507 +Match: [base~"jako"] [base~"żywo"];
  508 +Eval: word(Adv, 0.base);
  509 +
  510 +
  511 +Rule "frazeo: jednym tchem"
  512 +
  513 +Match: [orth~"[Jj]ednym"] [orth~"tchem"];
  514 +Eval: word(Adv, "jednym tchem");
  515 +
  516 +
  517 +Rule "frazeo: Jezus Maria"
  518 +
  519 +Match: [orth~"[Jj]ezus"] [orth~"[Mm]aria"];
  520 +Eval: word(Interj, 0.orth);
  521 +
  522 +
  523 +Rule "frazeo: kick boxing"
  524 +
  525 +Match: [base~"kick"] [base~"boxing"];
  526 +Eval: word(2, Noun, 0.base);
  527 +
  528 +
  529 +Rule "frazeo: krok po kroku"
  530 +
  531 +Match: [orth~"[Kk]rok"] [base~"po"] [orth~"kroku"];
  532 +Eval: word(Adv, "krok po kroku");
  533 +
  534 +
  535 +Rule "frazeo: krok w krok"
  536 +
  537 +Match: [orth~"[Kk]rok"] [base~"w"] [orth~"krok"];
  538 +Eval: word(Adv, 0.base);
  539 +
  540 +
  541 +Rule "frazeo: krok za krokiem"
  542 +
  543 +Match: [orth~"[Kk]rok"] [base~"za"] [orth~"krokiem"];
  544 +Eval: word(Adv, "krok za krokiem");
  545 +
  546 +
  547 +Rule "frazeo: ku pamięci"
  548 +Match: [base~"ku"] [orth~"pamięci"];
  549 +Right: [pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact"
  550 + && case~~"gen"];
  551 +Eval: word(Prep:gen, 1.base " " 2.orth);
  552 +
  553 +
  554 +Rule "frazeo: latem|jesienią|zimą|wiosną"
  555 +
  556 +Match: [base~"lato|jesień|zima|wiosna" && case~"inst"];
  557 +Eval: word(Adv, 0.orth);
  558 +
  559 +
  560 +Rule "frazeo: mało kto|co"
  561 +
  562 +Match: [orth~"[Mm]ało"] [base~"kto|co"];
  563 +Eval: word(2, Noun, 0.base);
  564 +
  565 +
  566 +Rule "frazeo: Matko Boska"
  567 +
  568 +Match: [orth~"[Mm]atko"] [orth~"[Bb]oska|jedyna|[Śś]więta"];
  569 +Eval: word(Interj, 0.orth);
  570 +
  571 +
  572 +Rule "frazeo: mimo to"
  573 +
  574 +Match: [base~"mimo|pomimo" && pos~~"prep"] [base~"to"];
  575 +Eval: word(Qub, 0.base);
  576 +
  577 +
  578 +Rule "frazeo: mimo wszystko"
  579 +
  580 +Match: [base~"mimo|pomimo" && pos~~"prep"] [base~"wszystko"];
  581 +Eval: word(Qub, 0.base);
  582 +
  583 +
  584 +Rule "frazeo: mniej więcej"
  585 +
  586 +Match: [orth~"[Mm]niej"] [orth~"więcej"];
  587 +Eval: word(Qub, "mniej więcej");
  588 +
  589 +
  590 +Rule "frazeo: mniej lub więcej"
  591 +
  592 +Match: [orth~"mniej"] [base~"lub|bądź"] [orth~"więcej|bardziej"];
  593 +Eval: word(Adv, 0.orth);
  594 +
  595 +
  596 +Rule "frazeo: musztarda po obiedzie"
  597 +
  598 +Match: [base~"musztarda"] [base~"po"] [orth~"obiedzie"]; #LD zmiana orth na base w 1. el.
  599 +Eval: word(1, Noun, 1.base " " 2.base " " 3.orth); #LD dodano:"1, "
  600 +
  601 +
  602 +Rule "frazeo: na baczność"
  603 +
  604 +Match: [base~"na"] [orth~"baczność"];
  605 +Eval: word(Adv, 0.base);
  606 +
  607 +
  608 +Rule "frazeo: na bakier"
  609 +
  610 +Match: [base~"na" && pos~~"prep"] [orth~"bakier"];
  611 +Eval: word(Adv, 1.base " " 2.orth);
  612 +
  613 +
  614 +Rule "frazeo: na bazie i in."
  615 +Match: [base~"na"]
  616 + [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"];
  617 +Right: [pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact"
  618 + && case~~"gen"];
  619 +Eval: word(Prep:gen, 1.base " " 2.orth);
  620 +
  621 +
  622 +Rule "frazeo: na co dzień"
  623 +
  624 +Match: [base~"na"] [orth~"co"] [orth~"dzień"];
  625 +Eval: word(Adv, 0.base);
  626 +
  627 +Rule "frazeo: na czas"
  628 +
  629 +Match: [base~"na" && pos~~"prep"] [orth~"czas"];
  630 +Right: [case!~"acc"];
  631 +Eval: word(Adv, 1.base " " 2.orth);
  632 +
  633 +
  634 +Rule "frazeo: na czele"
  635 +
  636 +Match: [base~"na"] [orth~"czele"];
  637 +Eval: word(Adv, 1.base " " 2.orth);
  638 +
  639 +
  640 +Rule "frazeo: na dłuższą|krótszą metę"
  641 +
  642 +Match: [base~"na"] [orth~"dłuższą|krótszą"] [orth~"metę"];
  643 +Eval: word(Adv, 1.base " " 2.orth " " 3.orth);
  644 +
  645 +
  646 +Rule "frazeo: na dobrą sprawę"
  647 +
  648 +Match: [base~"na"] [orth~"dobrą"] [orth~"sprawę"];
  649 +Eval: word(Qub, "na dobrą sprawę");
  650 +
  651 +
  652 +Rule "frazeo: na dobre i na złe"
  653 +
  654 +Match: [base~"na" && pos~~"prep"] [orth~"dobre"] [base~"i"]
  655 + [base~"na" && pos~~"prep"] [orth~"złe"];
  656 +Eval: word(Adv, "na dobre i na złe");
  657 +
  658 +
  659 +Rule "frazeo: na dobre"
  660 +
  661 +Match: [base~"na"] [orth~"dobre"];
  662 +Right: [case!~"acc"];
  663 +Eval: word(Adv, 1.base " " 2.orth);
  664 +
  665 +
  666 +Rule "frazeo: na dobry początek"
  667 +
  668 +Match: [base~"na"] [orth~"dobry"] [orth~"początek"];
  669 +Eval: word(Adv, 0.base);
  670 +
  671 +
  672 +Rule "frazeo: na dodatek"
  673 +
  674 +Match: [base~"na"] [orth~"dodatek"];
  675 +Eval: word(Qub, 1.base " " 2.orth);
  676 +
  677 +
  678 +Rule "frazeo: na domiar złego"
  679 +
  680 +Match: [base~"na"] [orth~"domiar"] [orth~"złego"];
  681 +Eval: word(Qub, "na domiar złego");
  682 +
  683 +
  684 +Rule "frazeo: na dwoje"
  685 +
  686 +Match: [base~"na"] [orth~"dwoje"];
  687 +Eval: word(Adv, 1.base " " 2.orth);
  688 +
  689 +
  690 +Rule "frazeo: na golasa i in."
  691 +
  692 +Match: [base~"na" && pos~~"prep"] [orth~"golasa|głodniaka|pewniaka|stojaka|waleta|wariata"];
  693 +Eval: word(Adv, 1.base " " 2.orth);
  694 +
  695 +
  696 +Rule "frazeo: na gwałt|głos"
  697 +
  698 +Match: [base~"na"] [orth~"gwałt|głos"];
  699 +Eval: word(Adv, 0.base);
  700 +
  701 +
  702 +Rule "frazeo: na jaw"
  703 +
  704 +Match: [base~"na"] [orth~"jaw"];
  705 +Eval: word(Adv, 1.base " " 2.orth);
  706 +
  707 +
  708 +Rule "frazeo: na/w lewo/prawo"
  709 +
  710 +Match: [base~"na|w"] [orth~"lewo|prawo" && pos~"adjp"];
  711 +Eval: word(Adv, 1.base " " 2.orth);
  712 +
  713 +
  714 +Rule "frazeo: na/od kiedy"
  715 +
  716 +Match: [base~"na|od"] [base~"kiedy"];
  717 +Eval: word(Adv, 0.base);
  718 +
  719 +
  720 +Rule "frazeo: na łeb, na szyję"
  721 +
  722 +Match: [base~"na"] [orth~"łeb"] ns [base~","]? [base~"na"] [orth~"szyję"];
  723 +Eval: word(Adv, "na łeb, na szyję");
  724 +
  725 +
  726 +Rule "frazeo: na odczepne i in."
  727 +
  728 +Match: [base~"na" && pos~~"prep"] [orth~"odczepne|odchodne"];
  729 +Eval: word(Adv, 1.base " " 2.orth);
  730 +
  731 +
  732 +Rule "frazeo: na odczepnego i in."
  733 +
  734 +Match: [base~"na" && pos~~"prep"] [orth~"całego|głodnego|odczepnego|upartego"];
  735 +Eval: word(Adv, 1.base " " 2.orth);
  736 +
  737 +
  738 +Rule "frazeo: na odchodnym i in."
  739 +
  740 +Match: [base~"na" && pos~~"prep"] [orth~"odchodnym|odjezdnym|wychodnym|wyjezdnym"];
  741 +Eval: word(Adv, 1.base " " 2.orth);
  742 +
  743 +
  744 +Rule "frazeo: na odtrąbiono"
  745 +
  746 +Match: [base~"na" && pos~~"prep"] [orth~"odtrąbiono"];
  747 +Eval: word(Adv, 1.base " " 2.orth);
  748 +
  749 +
  750 +Rule "frazeo: na odwrót|opak"
  751 +
  752 +Match: [base~"na"] [orth~"odwrót|opak"];
  753 +Eval: word(Qub, 0.base);
  754 +
  755 +
  756 +Rule "frazeo: na ogół"
  757 +
  758 +Match: [base~"na" && pos~~"prep"] [orth~"ogół"];
  759 +Eval: word(Adv, 1.base " " 2.orth);
  760 +
  761 +
  762 +Rule "frazeo: na oścież"
  763 +
  764 +Match: [base~"na" && pos~~"prep"] [base~"oścież"];
  765 +Eval: word(Adv, 0.base);
  766 +
  767 +
  768 +Rule "frazeo: na oślep"
  769 +
  770 +Match: [base~"na"] [base~"oślep"];
  771 +Eval: word(Adv, 0.base);
  772 +
  773 +
  774 +Rule "frazeo: na pewno"
  775 +
  776 +Match: [base~"na" && pos~~"prep"] [orth~"pewno"];
  777 +Eval: word(Qub, 1.base " " 2.orth);
  778 +
  779 +
  780 +Rule "frazeo: na pierwszy rzut oka"
  781 +
  782 +Match: [base~"na"] [orth~"pierwszy"] [orth~"rzut"] [orth~"oka"];
  783 +Eval: word(Adv, 1.base " " 2.base " " 3.base " " 4.orth);
  784 +
  785 +
  786 +Rule "frazeo: na piśmie"
  787 +
  788 +Match: [base~"na" && pos~~"prep"] [orth~"piśmie"];
  789 +Eval: word(Adv, 1.base " " 2.orth);
  790 +
  791 +
  792 +Rule "frazeo: na początku (Prep)"
  793 +Match: [base~"na"] [orth~"początku|wstępie"];
  794 +Right: [pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact"
  795 + && case~~"gen"];
  796 +Eval: word(Prep:gen, 1.base " " 2.orth);
  797 +
  798 +
  799 +Rule "frazeo: na początku (Adv)"
  800 +
  801 +Match: [base~"na"] [orth~"początku|wstępie"];
  802 +Right: [case!~"gen"];
  803 +Eval: word(Adv, 1.base " " 2.orth);
  804 +
  805 +
  806 +Rule "frazeo: na poczekaniu"
  807 +
  808 +Match: [base~"na"] [orth~"poczekaniu"];
  809 +Eval: word(Adv, 1.base " " 2.orth);
  810 +
  811 +
  812 +Rule "frazeo: na powrót"
  813 +
  814 +Match: [base~"na"] [orth~"powrót"];
  815 +Eval: word(Adv, 0.base);
  816 +
  817 +
  818 +Rule "frazeo: na poziomie (Prep)"
  819 +
  820 +Match: [base~"na"] [orth~"poziomie"];
  821 +Right: [pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact"
  822 + && case~~"gen"];
  823 +Eval: word(Prep:gen, 1.base " " 2.orth);
  824 +
  825 +
  826 +Rule "frazeo: na poziomie (Adj)"
  827 +
  828 +Match: [base~"na"] [orth~"poziomie"];
  829 +Right: [case!~"gen"];
  830 +Eval: word(Adjc, 1.base " " 2.orth);
  831 +
  832 +
  833 +Rule "frazeo: na pozór"
  834 +
  835 +Match: [base~"na"] [orth~"pozór"];
  836 +Eval: word(Adv, 1.base " " 2.orth);
  837 +
  838 +
  839 +Rule "frazeo: na przekór"
  840 +Match: [base~"na"] [orth~"przekór"];
  841 +Right: [pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact"
  842 + && case~~"dat"];
  843 +Eval: word(Prep:dat, 1.base " " 2.orth);
  844 +
  845 +
  846 +Rule "frazeo: na przemian"
  847 +
  848 +Match: [base~"na" && pos~~"prep"] [base~"przemian"];
  849 +Eval: word(Adv, 0.base);
  850 +
  851 +
  852 +Rule "frazeo: na przykład"
  853 +
  854 +Match: [base~"na" && pos~~"prep"] [orth~"przykład"];
  855 +Right: [case!~"gen"];
  856 +Eval: word(Qub, 1.base " " 2.orth);
  857 +
  858 +
  859 +Rule "DisG: na przykład"
  860 +
  861 +Match: [base~"na przykład" && pos~~"Qub"];
  862 +Eval: group(DisG, 1,1);
  863 +
  864 +
  865 +#Rule "frazeo: na przyszłość"
  866 +#
  867 +#Match: [base~"na"] [orth~"przyszłość"];
  868 +#Eval: word(Adv, 0.base);
  869 +#odróżnić od "plany na przyszłość"
  870 +
  871 +
  872 +Rule "frazeo: na razie (Interj)"
  873 +
  874 +Match: [base~"na" && pos~~"prep"] [orth~"razie"];
  875 +Right: [base~"!" && pos~"interp"];
  876 +Eval: word(Interj, 1.base " " 2.orth);
  877 +
  878 +
  879 +Rule "frazeo: na razie (Adv)"
  880 +
  881 +Match: [base~"na" && pos~~"prep"] [orth~"razie"];
  882 +Eval: word(Adv, 1.base " " 2.orth);
  883 +
  884 +
  885 +Rule "frazeo: na równi z"
  886 +Match: [base~"na"] [orth~"równi"] [base~"z"];
  887 +Eval: word(3, Prep, 1.base " " 2.orth " " 3.base);
  888 +
  889 +
  890 +Rule "frazeo: na siłę"
  891 +
  892 +Match: [base~"na" && pos~~"prep"] [orth~"siłę"];
  893 +Eval: word(Adv, 1.base " " 2.orth);
  894 +
  895 +
  896 +Rule "frazeo: na stałe"
  897 +
  898 +Match: [base~"na" && pos~~"prep"] [orth~"stałe" && pos~"adjp"];
  899 +Eval: word(Adv, 1.base " " 2.orth);
  900 +
  901 +
  902 +Rule "frazeo: na szczęście"
  903 +
  904 +Match: [base~"na"] [orth~"szczęście"];
  905 +Eval: word(Adv, 0.base);
  906 +
  907 +
  908 +Rule "frazeo: na własne oczy|uszy"
  909 +
  910 +Match: [base~"na"] [orth~"własne"] [orth~"oczy|uszy"];
  911 +Eval: word(Adv, 1.base " " 2.orth " " 3.orth);
  912 +
  913 +
  914 +Rule "frazeo: na własność"
  915 +
  916 +Match: [base~"na" && pos~~"prep"] [orth~"własność"];
  917 +Eval: word(Adv, 0.base);
  918 +
  919 +
  920 +Rule "frazeo: na wpół"
  921 +
  922 +Match: [base~"na" && pos~~"prep"] [orth~"wpół"];
  923 +Right: [base!~"do"];
  924 +Eval: word(Adv, 1.base " " 2.orth);
  925 +
  926 +
  927 +Rule "frazeo: na wprost (Prep)"
  928 +
  929 +Match: [base~"na" && pos~~"prep"] [orth~"wprost"];
  930 +Right: [pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact"
  931 + && case~~"gen"];
  932 +Eval: word(Prep:gen, 1.base " " 2.orth);
  933 +
  934 +
  935 +Rule "frazeo: na wprost i in."
  936 +
  937 +Match: [base~"na" && pos~~"prep"]
  938 + [orth~"wprost|przełaj|wyprzódki"];
  939 +Eval: word(Adv, 1.base " " 2.orth);
  940 +
  941 +
  942 +Rule "frazeo: na wskroś"
  943 +
  944 +Match: [base~"na" && pos~~"prep"] [base~"wskroś"];
  945 +Eval: word(Adv, 0.base);
  946 +
  947 +
  948 +Rule "frazeo: na wszelki wypadek"
  949 +
  950 +Match: [base~"na"] [orth~"wszelki"] [orth~"wypadek"];
  951 +Eval: word(Adv, 1.base " " 2.orth " " 3.orth);
  952 +
  953 +
  954 +Rule "frazeo: na wyrost|wznak"
  955 +
  956 +Match: [base~"na"] [orth~"wyrost|wznak"];
  957 +Eval: word(Adv, 0.base);
  958 +
  959 +
  960 +Rule "frazeo: na zakończenie|koniec"
  961 +
  962 +Match: [base~"na"] [orth~"zakończenie|koniec"];
  963 +Right: [case!~"gen"];
  964 +Eval: word(Adv, 0.base);
  965 +
  966 +
  967 +Rule "frazeo: na złość"
  968 +
  969 +Match: [base~"na" && pos~~"prep"] [orth~"złość"];
  970 +Eval: word(Adv, 1.base " " 2.orth);
  971 +
  972 +
  973 +Rule "frazeo: na/od zawsze"
  974 +
  975 +Match: [base~"na|od" && pos~~"prep"] [base~"zawsze"];
  976 +Eval: word(Adv, 0.base);
  977 +
  978 +
  979 +Rule "frazeo: na -o (1)"
  980 +
  981 +Match: [base~"na" && pos~~"prep"]
  982 + [orth~".*o" && pos~~"adv" && base!~"bardzo|pewno"];
  983 +Right: [pos!~"adj|pact|ppas"];
  984 +Eval: word(Adv, 1.base " " 2.orth);
  985 +
  986 +
  987 +Rule "frazeo: na -o (2)"
  988 +
  989 +Match: [base~"na" && pos~~"prep"]
  990 + [orth~".*o" && pos~~"adv" && base!~"bardzo|pewno"];
  991 +Right: ns [pos~"interp"];
  992 +Eval: word(Adv, 1.base " " 2.orth);
  993 +
  994 +
  995 +Rule "frazeo: na zewnątrz + gen"
  996 +
  997 +Match: [base~"na" && pos~~"prep"] [base~"zewnątrz"];
  998 +Right: [pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact"
  999 + && case~~"gen"];
  1000 +Eval: word(Prep:gen, 0.base);
  1001 +
  1002 +
  1003 +Rule "frazeo: na/od/z zewnątrz"
  1004 +
  1005 +Match: [base~"na|od|z" && pos~~"prep"] [base~"zewnątrz"];
  1006 +Eval: word(Adv, 0.base);
  1007 +
  1008 +
  1009 +Rule "frazeo: nad podziw|wyraz"
  1010 +
  1011 +Match: [base~"nad" && pos~~"prep"] [orth~"podziw|wyraz"];
  1012 +Eval: word(Adv, 0.base);
  1013 +
  1014 +
  1015 +Rule "frazeo: nade wszystko"
  1016 +
  1017 +Match: [orth~"[Nn]ade"] [orth~"wszystko"];
  1018 +Eval: word(Qub, "nade wszystko");
  1019 +
  1020 +
  1021 +Rule "frazeo: nie lada"
  1022 +
  1023 +Match: [base~"nie"] [base~"lada"];
  1024 +Eval: word(Qub, 0.base);
  1025 +
  1026 +
  1027 +Rule "frazeo: ni stąd, ni zowąd"
  1028 +
  1029 +Match: [base~"ni"] [base~"stąd"] ns [base~","] [base~"ni"] [base~"zowąd"];
  1030 +Eval: word(Adv, 0.base);
  1031 +
  1032 +
  1033 +Rule "frazeo: non stop"
  1034 +
  1035 +Match: [base~"non"] [base~"stop"];
  1036 +Eval: word(Adv, 0.base);
  1037 +
  1038 +
  1039 +Rule "frazeo: o krok od"
  1040 +Match: [base~"o" && pos~"prep"] [orth~"krok"] [base~"od"];
  1041 +Eval: word(Prep:gen, 0.base);
  1042 +
  1043 +
  1044 +Rule "frazeo: o mało (co)"
  1045 +Match: [base~"o"] [orth~"mało"] [orth~"co"]?;
  1046 +Eval: word(Adv, 0.base);
  1047 +
  1048 +
  1049 +Rule "frazeo: o wiele (1)"
  1050 +
  1051 +Match: [base~"o" && pos~~"prep"] [orth~"wiele" && pos~~"num"];
  1052 +Right: [base~"za"] [pos~"adj|adv" && degree~"pos"];
  1053 +Eval: word(Adv, 1.base " " 2.orth);
  1054 +
  1055 +
  1056 +Rule "frazeo: o wiele (2)"
  1057 +
  1058 +Match: [base~"o" && pos~~"prep"] [orth~"wiele" && pos~~"num"];
  1059 +Right: [pos~"adj|adv" && degree~"com"];
  1060 +Eval: word(Adv, 1.base " " 2.orth);
  1061 +
  1062 +
  1063 +Rule "frazeo: od czasu do czasu"
  1064 +
  1065 +Match: [base~"od"] [orth~"czasu"]
  1066 + [base~"do"] [orth~"czasu"];
  1067 +Eval: word(Adv, "od czasu do czasu");
  1068 +
  1069 +
  1070 +Rule "frazeo: od dawna/nowa"
  1071 +
  1072 +Match: [base~"od" && pos~~"prep"]
  1073 + [orth~"dawna|niedawna|pradawna|nowa|razu|zaraz"];
  1074 +Eval: word(Adv, 1.base " " 2.orth);
  1075 +
  1076 +
  1077 +#LD zmieniłam regułę i rozmnożyłam
  1078 +#info: rozmnożone, bo nie da się wziąć informacji od elementu spoza linii Match
  1079 +Rule "frazeo: od groma + m1"
  1080 +
  1081 +Match: [base~"od"] [orth~"groma"];
  1082 +Right: [pos~"adj|subst" && gender~"m1"];
  1083 +Eval: word(Num:pl:acc:m1:rec, 1.base " " 2.orth);
  1084 +#przypadek "z sufitu"
  1085 +
  1086 +Rule "frazeo: od groma + m2"
  1087 +
  1088 +Match: [base~"od"] [orth~"groma"];
  1089 +Right: [pos~"adj|subst" && gender~"m2"];
  1090 +Eval: word(Num:pl:acc:m2:rec, 1.base " " 2.orth);
  1091 +#przypadek "z sufitu"
  1092 +
  1093 +Rule "frazeo: od groma + m3"
  1094 +
  1095 +Match: [base~"od"] [orth~"groma"];
  1096 +Right: [pos~"adj|subst" && gender~"m3"];
  1097 +Eval: word(Num:pl:acc:m3:rec, 1.base " " 2.orth);
  1098 +#przypadek "z sufitu"
  1099 +
  1100 +Rule "frazeo: od groma + f"
  1101 +
  1102 +Match: [base~"od"] [orth~"groma"];
  1103 +Right: [pos~"adj|subst" && gender~"f"];
  1104 +Eval: word(Num:pl:acc:f:rec, 1.base " " 2.orth);
  1105 +#przypadek "z sufitu"
  1106 +
  1107 +Rule "frazeo: od groma + n"
  1108 +
  1109 +Match: [base~"od"] [orth~"groma"];
  1110 +Right: [pos~"adj|subst" && gender~"n"];
  1111 +Eval: word(Num:pl:acc:n:rec, 1.base " " 2.orth);
  1112 +#przypadek "z sufitu"
  1113 +
  1114 +Rule "frazeo: od groma + brak NG"
  1115 +
  1116 +Match: [base~"od"] [orth~"groma"];
  1117 +Right: [pos!~"adj|subst"];
  1118 +Eval: word(Num:pl:acc:n:rec, 1.base " " 2.orth);
  1119 +#przypadek i rodzaj "z sufitu"
  1120 +
  1121 +
  1122 +Rule "frazeo: od kuchni"
  1123 +
  1124 +Match: [base~"od"] [orth~"kuchni"];
  1125 +Eval: word(Adv, 1.base " " 2.orth);
  1126 +
  1127 +
  1128 +Rule "frazeo: od niechcenia"
  1129 +
  1130 +Match: [base~"od" && pos~~"prep"] [orth~"niechcenia"];
  1131 +Eval: word(Adv, 1.base " " 2.orth);
  1132 +
  1133 +
  1134 +Rule "frazeo: od początku (Adv)"
  1135 +Match: [base~"od"] [orth~"początku"];
  1136 +Right: [case!~"gen"];
  1137 +Eval: word(Adv, 1.base " " 2.orth);
  1138 +
  1139 +
  1140 +Rule "frazeo: od przypadku do przypadku"
  1141 +
  1142 +Match: [base~"od"] [orth~"przypadku"]
  1143 + [base~"do"] [orth~"przypadku"];
  1144 +Eval: word(Adv, "od przypadku do przypadku");
  1145 +
  1146 +
  1147 +Rule "frazeo: od stóp do głów"
  1148 +
  1149 +Match: [base~"od"] [orth~"stóp"]
  1150 + [base~"do"] [orth~"głów"];
  1151 +Eval: word(Adv, 1.base " " 2.orth " " 3.base " " 4.orth);
  1152 +
  1153 +
  1154 +Rule "frazeo: od ucha do ucha"
  1155 +
  1156 +Match: [base~"od"] [orth~"ucha"]
  1157 + [base~"do"] [orth~"ucha"];
  1158 +Eval: word(Adv, "od ucha do ucha");
  1159 +
  1160 +
  1161 +Rule "frazeo: odnośnie do"
  1162 +Match: [base~"odnośnie"] [base~"do"];
  1163 +Eval: word(Prep:gen, 0.base);
  1164 +
  1165 +
  1166 +Rule "frazeo: oko w oko"
  1167 +
  1168 +Match: [orth~"[Oo]ko"] [base~"w"] [orth~"oko"];
  1169 +Eval: word(Adv, 0.base);
  1170 +
  1171 +
  1172 +Rule "frazeo: twarzą w twarz"
  1173 +
  1174 +Match: ([orth~"[Tt]warzą"] | [orth~"[Tt]warz"]) [base~"w"] [orth~"twarz"];
  1175 +Eval: word(Adv, 1.orth " " 2.base " " 3.base);
  1176 +
  1177 +
  1178 +Rule "frazeo: panie dzieju"
  1179 +
  1180 +Match: [orth~"[Pp]anie"] [orth~"dzieju"];
  1181 +Eval: word(Interj, "panie dzieju");
  1182 +
  1183 +
  1184 +Rule "DisG: panie dzieju"
  1185 +
  1186 +Match: [base~"panie dzieju"];
  1187 +Eval: group(DisG, 1,1);
  1188 +
  1189 +
  1190 +Rule "frazeo: pędem"
  1191 +
  1192 +Match: [base~"pęd" && case~"inst" && number~"sg"];
  1193 +Right: $czasownik;
  1194 +Eval: word(Adv, "pędem");
  1195 +
  1196 +
  1197 +Rule "frazeo: piąte przez dziesiąte"
  1198 +
  1199 +Match: [orth~"[Pp]iąte"] [base~"przez"] [orth~"dziesiąte"];
  1200 +Eval: word(Adv, "piąte przez dziesiąte");
  1201 +
  1202 +
  1203 +Rule "frazeo: Po co "
  1204 +
  1205 +Left: sb;
  1206 +Match: [base~"po" && pos~~"prep"] [orth~"co|cóż"];
  1207 +Eval: word(Adv, 0.base);
  1208 +##było też "na co", ale inne rzeczy się łapały
  1209 +
  1210 +
  1211 +Rule "frazeo: , po co"
  1212 +
  1213 +Left: [base~","];
  1214 +Match: [base~"po" && pos~~"prep"] [orth~"co|cóż"];
  1215 +Eval: word(Adv, 0.base);
  1216 +##było też "na co", ale inne rzeczy się łapały
  1217 +
  1218 +
  1219 +Rule "frazeo: po drodze"
  1220 +
  1221 +Match: [base~"po" && pos~~"prep"] [orth~"drodze"];
  1222 +Right: [pos!~"adj"];
  1223 +Eval: word(Adv, 1.base " " 2.orth);
  1224 +##tu można dokładniej: prawy kontekst to albo nie "szybkiego" albo nie przymiotnik w miejscowniku (jak to zapisać ! && !?)
  1225 +
  1226 +
  1227 +Rule "frazeo: po herbacie|zawodach"
  1228 +
  1229 +Left: [base~"i"];
  1230 +Match: [base~"po" && pos~~"prep"] [orth~"herbacie|zawodach"];
  1231 +Eval: word(Adv, 2.base " " 3.orth); #LD zmiana cyferek
  1232 +
  1233 +
  1234 +Rule "frazeo: po imieniu"
  1235 +
  1236 +Match: [base~"po"] [orth~"imieniu"];
  1237 +Eval: word(Adv, 1.base " " 2.orth);
  1238 +
  1239 +
  1240 +Rule "frazeo: po prostu"
  1241 +
  1242 +Match: [base~"po" && pos~~"prep"] [orth~"prostu"];
  1243 +Eval: word(Qub, 1.base " " 2.orth);
  1244 +
  1245 +
  1246 +Rule "frazeo: po trochu itp."
  1247 +
  1248 +Match: [base~"po" && pos~~"prep"] [orth~"trochu|trosze|troszeczku|troszku"];
  1249 +Eval: word(Qub, 1.base " " 2.orth);
  1250 +
  1251 +
  1252 +Rule "frazeo: po wiele/okroć"
  1253 +
  1254 +Match: [base~"po"] [base~"wielekroć|wielokroć"];
  1255 +Eval: word(Adv, 0.base);
  1256 +
  1257 +
  1258 +Rule "frazeo: po -u"
  1259 +
  1260 +Match: [base~"po" && pos~~"prep"] [orth~".*u" && pos~~"adjp|burk"];
  1261 +Eval: word(Adv, 1.base " " 2.orth);
  1262 +
  1263 +
  1264 +Rule "frazeo: po pierwsze/drugie"
  1265 +
  1266 +Match: [base~"po" && pos~~"prep"]
  1267 + [orth~"pierwsze|drugie|trzecie|czwarte" && pos~~"adj"];
  1268 +Eval: word(Qub, 1.base " " 2.orth);
  1269 +#jaka to część mowy? było Adv, ale sądzę, że jednak Qub
  1270 +
  1271 +
  1272 +Rule "frazeo: po próżnicy"
  1273 +
  1274 +Match: [base~"po" && pos~~"prep"] [orth~"próżnicy"];
  1275 +Eval: word(Adv, 1.base " " 2.orth);
  1276 +
  1277 +
  1278 +Rule "frazeo: po raz pierwszy itp."
  1279 +
  1280 +Match: [base~"po"] [orth~"raz"] [orth~"pierwszy|drugi|trzeci|czwarty"];
  1281 +Eval: word(Adv, 0.base);
  1282 +
  1283 +
  1284 +Rule "frazeo: po raz [kolejny]"
  1285 +
  1286 +Match: [base~"po"] [orth~"raz"] [base~"adj" && case~"acc"];
  1287 +Eval: word(Adv, 0.base);
  1288 +
  1289 +
  1290 +Rule "frazeo: po równo"
  1291 +
  1292 +Match: [base~"po"] [orth~"równo"];
  1293 +Eval: word(Adv, 1.base " " 2.orth);
  1294 +
  1295 +
  1296 +Rule "frazeo: po zęby"
  1297 +
  1298 +Match: [base~"po"] [orth~"zęby"];
  1299 +Eval: word(Adv, 1.base " " 2.orth);
  1300 +
  1301 +
  1302 +Rule "frazeo: pod adresem i in."
  1303 +
  1304 +Match: [base~"pod"]
  1305 + [orth~"adresem|ciężarem|egidą|koniec|maską|okiem|osłoną|płaszczykiem|postacią|pozorem|pretekstem|warunkiem|wezwaniem|wodzą|wpływem|względem"];
  1306 +Right: [pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact"
  1307 + && case~~"gen"];
  1308 +Eval: word(Prep:gen, 1.base " " 2.orth);
  1309 +
  1310 +
  1311 +Rule "frazeo: pod auspicjami"
  1312 +
  1313 +Match: [base~"pod"] [orth~"auspicjami"];
  1314 +Right: [pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact"
  1315 + && case~~"gen"];
  1316 +Eval: word(Prep:gen, 1.base " " 2.orth);
  1317 +
  1318 +
  1319 +Rule "frazeo: pod kątem (Prep)"
  1320 +
  1321 +Match: [base~"pod"] [orth~"kątem"];
  1322 +Right: [pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact"
  1323 + && case~~"gen"];
  1324 +Eval: word(Prep:gen, 1.base " " 2.orth);
  1325 +
  1326 +
  1327 +Rule "frazeo: pod kątem (Adv)"
  1328 +
  1329 +Match: [base~"pod"] [orth~"kątem"];
  1330 +Eval: word(Adv, 1.base " " 2.orth);
  1331 +
  1332 +
  1333 +Rule "frazeo: pod ochroną"
  1334 +
  1335 +Match: [base~"pod"] [orth~"ochroną"];
  1336 +Eval: word(Adv, 1.base " " 2.orth);
  1337 +
  1338 +
  1339 +Rule "frazeo: podczas gdy"
  1340 +
  1341 +Match: [base~"podczas"] [base~"gdy"];
  1342 +Eval: word(Adv, 0.base);
  1343 +
  1344 +
  1345 +Rule "frazeo: podobnie jak"
  1346 +
  1347 +Match: [base~"podobnie" && pos~"conj"] [base~"jak" && pos~"conj"];
  1348 +Eval: word(Conj, 0.base);
  1349 +
  1350 +
  1351 +Rule "frazeo: poza tym"
  1352 +
  1353 +Match: [base~"poza" && pos~"prep"] [orth~"tym"];
  1354 +Right: [case!~"inst"];
  1355 +Eval: word(Qub, 1.base " " 2.orth);
  1356 +
  1357 +
  1358 +Rule "frazeo: powiedzmy"
  1359 +
  1360 +Left: [base~","];
  1361 +Match: [orth~"powiedzmy"];
  1362 +Right: [base~","];
  1363 +Eval: word(Qub, 2.orth);
  1364 +
  1365 +
  1366 +Rule "DisG: powiedzmy"
  1367 +
  1368 +Match: [base~"powiedzmy"];
  1369 +Eval: group(DisG, 1,1);
  1370 +
  1371 +
  1372 +#Rule "frazeo: prawda?"
  1373 +#
  1374 +#Match: [orth~"prawda" && pos~"subst"] ns [base~"?"];
  1375 +#Right: ns [base~"?"];
  1376 +#Eval: word(Interj, 1.base);
  1377 +#!! reguła nie działa
  1378 +
  1379 +
  1380 +Rule "frazeo: prędzej czy później"
  1381 +
  1382 +Match: [orth~"[Pp]rędzej"] [base~"czy"] [orth~"później"];
  1383 +Eval: word(Adv, "prędzej czy później");
  1384 +
  1385 +
  1386 +Rule "frazeo: wcześniej czy później"
  1387 +
  1388 +Match: [orth~"[Ww]cześniej"] [base~"czy"] [orth~"później"];
  1389 +Eval: word(Adv, "wcześniej czy później");
  1390 +
  1391 +
  1392 +Rule "frazeo: prosit"
  1393 +
  1394 +Match: [base~"prosit"];
  1395 +Eval: word(Interj, 1.base);
  1396 +
  1397 +
  1398 +Rule "frazeo: przede wszystkim"
  1399 +
  1400 +Match: [orth~"[Pp]rzede"] [orth~"wszystkim"];
  1401 +Eval: word(Qub, "przede wszystkim");
  1402 +
  1403 +
  1404 +Rule "frazeo: przy okazji (Prep)"
  1405 +
  1406 +Match: [base~"przy"] [orth~"okazji"];
  1407 +Right: [pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact"
  1408 + && case~~"gen"];
  1409 +Eval: word(Prep:gen, 1.base " " 2.orth);
  1410 +
  1411 +
  1412 +Rule "frazeo: przy okazji (Adv)"
  1413 +
  1414 +Match: [base~"przy"] [orth~"okazji"];
  1415 +Eval: word(Adv, 1.base " " 2.orth);
  1416 +
  1417 +
  1418 +Rule "frazeo: przy pomocy"
  1419 +Match: [base~"przy"] [orth~"pomocy"];
  1420 +Right: [pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact"
  1421 + && case~~"gen"];
  1422 +Eval: word(Prep:gen, 1.base " " 2.orth);
  1423 +
  1424 +
  1425 +Rule "frazeo: przy czym|tym (Conj)"
  1426 +
  1427 +Left: [base~","];
  1428 +Match: [base~"przy"] [orth~"czym|tym" && pos~"subst"];
  1429 +Eval: word(Conj, 2.base " " 3.orth);
  1430 +
  1431 +
  1432 +Rule "frazeo: przy tym (Qub)"
  1433 +
  1434 +Match: [base~"przy"] [orth~"tym" && pos~"subst"];
  1435 +Right: [case!~"loc"];
  1436 +Eval: word(Qub, 1.base " " 2.orth);
  1437 +
  1438 +
  1439 +Rule "frazeo: przykładowo"
  1440 +
  1441 +Match: [orth~"[Pp]rzykładowo"];
  1442 +Eval: word(Qub, 1.base);
  1443 +
  1444 +
  1445 +Rule "DisG: przykładowo"
  1446 +
  1447 +Match: [base~"przykładowo"];
  1448 +Eval: group(DisG, 1,1);
  1449 +
  1450 +
  1451 +Rule "frazeo: razem z i in."
  1452 +
  1453 +Match: [base~"razem|łącznie|wespół|wraz"] [base~"z" && pos~~"prep"];
  1454 +Eval: word(2, Prep, 0.base);
  1455 +
  1456 +
  1457 +Rule "frazeo: raz po raz"
  1458 +
  1459 +Match: [orth~"[Rr]az"] [base~"po"] [orth~"raz"];
  1460 +Eval: word(Adv, 0.base);
  1461 +
  1462 +Rule "frazeo: rodem z"
  1463 +
  1464 +Match: [orth~"[Rr]odem"] [base~"z" && pos~~"prep"];
  1465 +Eval: word(2, Prep, "rodem z");
  1466 +
  1467 +
  1468 +Rule "frazeo: rzecz jasna|oczywista"
  1469 +
  1470 +Match: [orth~"[Rr]zecz"] [orth~"jasna|oczywista"];
  1471 +Eval: word(Qub, "rzecz " 2.orth);
  1472 +#w ISJP "rzecz jasna, że" to Interj, a u nas co?
  1473 +
  1474 +
  1475 +Rule "DisG: rzecz jasna|oczywista"
  1476 +
  1477 +Match: ([base~"rzecz jasna"] | [base~"rzecz oczywista"]);
  1478 +Eval: group(DisG, 1,1);
  1479 +
  1480 +
  1481 +Rule "frazeo: sam w sobie"
  1482 +
  1483 +Match: [base~"sam"] [base~"w"] [orth~"sobie"];
  1484 +Eval: word(1, Adj, 1.base " " 2.base " " 3.orth);
  1485 +
  1486 +
  1487 +Rule "frazeo: skoro świt"
  1488 +
  1489 +Match: [orth~"[Ss]koro"] [orth~"świt"];
  1490 +Eval: word(Adv, 0.base);
  1491 +
  1492 +
  1493 +Rule "frazeo: słowo w słowo"
  1494 +
  1495 +Match: [orth~"[Ss]łowo"] [base~"w"] [orth~"słowo"];
  1496 +Eval: word(Adv, 0.base);
  1497 +
  1498 +
  1499 +Rule "frazeo: status quo"
  1500 +
  1501 +Match: [base~"status"] [base~"quo"];
  1502 +Eval: word(1, Noun, 0.base);
  1503 +
  1504 +
  1505 +Rule "frazeo: swego czasu"
  1506 +
  1507 +Match: [orth~"[Ss]wego"] [orth~"czasu"];
  1508 +Eval: word(Adv, "swego czasu");
  1509 +
  1510 +
  1511 +Rule "frazeo: swoją drogą"
  1512 +
  1513 +Match: [orth~"[Ss]woją"] [orth~"drogą"];
  1514 +Eval: word(Qub, "swoją drogą");
  1515 +
  1516 +
  1517 +Rule "DisG: swoją drogą"
  1518 +
  1519 +Match: [base~"swoją drogą"];
  1520 +Eval: group(DisG, 1,1);
  1521 +
  1522 +
  1523 +Rule "frazeo: tak jakby"
  1524 +
  1525 +Left: [base~","];
  1526 +Match: [base~"tak"] [base~"jakby"];
  1527 +Eval: word(Comp, 0.base);
  1528 +
  1529 +
  1530 +Rule "frazeo: tak naprawdę"
  1531 +
  1532 +Match: [base~"tak"] [orth~"naprawdę"];
  1533 +Eval: word(Qub, 1.base " " 2.orth);
  1534 +
  1535 +
  1536 +Rule "frazeo: tak zwany"
  1537 +
  1538 +Match: [base~"tak"] [base~"zwać" && pos~"ppas"];
  1539 +Eval: word(Adj:2.number:2.case:2.gender:pos, "tak zwany"); #LD zmiana
  1540 +#Eval: word(2, Adj:pos, "tak zwany");
  1541 +
  1542 +
  1543 +#Rule "frazeo: to znaczy"
  1544 +#
  1545 +#Match: [orth~"[Tt]o"] [orth~"znaczy"];
  1546 +#Eval: word(Conj, "to znaczy");
  1547 +#!! lepiej zdefiniować
  1548 +
  1549 +
  1550 +Rule "frazeo: tu i ówdzie"
  1551 +
  1552 +Match: [base~"tu"] [base~"i"] [base~"ówdzie"];
  1553 +Eval: word(Adv, 0.base);
  1554 +
  1555 +
  1556 +Rule "frazeo: tym razem"
  1557 +
  1558 +Match: [orth~"[Tt]ym"] [orth~"razem"];
  1559 +Eval: word(Adv, "tym razem");
  1560 +
  1561 +
  1562 +Rule "frazeo: tym samym"
  1563 +
  1564 +Left: [pos!~"prep"];
  1565 +Match: [orth~"[Tt]ym"] [orth~"samym"];
  1566 +Eval: word(Qub, "tym samym");
  1567 +
  1568 +
  1569 +Rule "frazeo: tak samo"
  1570 +
  1571 +Match: [base~"tak"] [base~"samo"];
  1572 +Eval: word(Adv:pos, 0.base);
  1573 +
  1574 +
  1575 +Rule "frazeo: taki sam"
  1576 +
  1577 +Match: [base~"taki"] [base~"sam"];
  1578 +Eval: unify(case number gender,1,2);
  1579 + word(1, Adj, 0.base);
  1580 +
  1581 +
  1582 +Rule "frazeo: ten sam"
  1583 +
  1584 +Match: [base~"ten"] [base~"sam"];
  1585 +Eval: unify(case number gender,1,2);
  1586 + word(1, Adj, 0.base);
  1587 +
  1588 +
  1589 +Rule "frazeo: to samo"
  1590 +
  1591 +Match: [base~"to"] [base~"sam"];
  1592 +Eval: unify(case number gender,1,2);
  1593 + word(1, Noun, 1.base " samo");
  1594 +
  1595 +
  1596 +Rule "frazeo: tyle samo"
  1597 +
  1598 +Match: [base~"tyle"] [orth~"samo"];
  1599 +Eval: word(Adv, 1.base " " 2.orth);
  1600 +
  1601 +
  1602 +Rule "frazeo: tyle|tylko że"
  1603 +
  1604 +Match: [base~"tyle|tylko"] [base~"że"];
  1605 +Eval: word(Conj, 0.base);
  1606 +
  1607 +
  1608 +Rule "frazeo: u boku i in."
  1609 +Match: [base~"u"] [orth~"boku|góry|progu|schyłku|stóp"];
  1610 +Right: [pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact"
  1611 + && case~~"gen"];
  1612 +Eval: word(Prep:gen, 1.base " " 2.orth);
  1613 +
  1614 +
  1615 +Rule "frazeo: w biały dzień"
  1616 +
  1617 +Match: [base~"w"] [orth~"biały"] [orth~"dzień"];
  1618 +Eval: word(Adv, 0.base);
  1619 +
  1620 +
  1621 +Rule "frazeo: w całej rozciągłości"
  1622 +
  1623 +Match: [base~"w"] [orth~"całej"] [orth~"rozciągłości"];
  1624 +Eval: word(Adv, 1.base " " 2.orth " " 3.orth);
  1625 +
  1626 +
  1627 +Rule "frazeo: w całości"
  1628 +
  1629 +Match: [base~"w"] [orth~"całości"];
  1630 +Eval: word(Adv, 1.base " " 2.orth);
  1631 +
  1632 +
  1633 +Rule "frazeo: w dodatku"
  1634 +
  1635 +Match: [base~"w"] [orth~"dodatku"];
  1636 +Eval: word(Qub, 1.base " " 2.orth);
  1637 +
  1638 +
  1639 +Rule "frazeo: w głos"
  1640 +
  1641 +Match: [base~"w"] [orth~"głos"];
  1642 +Eval: word(Adv, 0.base);
  1643 +
  1644 +
  1645 +Rule "frazeo: w gruncie rzeczy"
  1646 +
  1647 +Match: [base~"w"] [orth~"gruncie"] [orth~"rzeczy"];
  1648 +Eval: word(Qub, 1.base " " 2.orth " " 3.orth);
  1649 +
  1650 +
  1651 +Rule "frazeo: w istocie rzeczy"
  1652 +
  1653 +Match: [base~"w"] [orth~"istocie"] [orth~"rzeczy"];
  1654 +Eval: word(Qub, 1.base " " 2.orth " " 3.orth);
  1655 +
  1656 +
  1657 +Rule "frazeo: w istocie"
  1658 +
  1659 +Match: [base~"w"] [orth~"istocie"];
  1660 +Eval: word(Qub, 1.base " " 2.orth);
  1661 +
  1662 +
  1663 +Rule "frazeo: w każdym razie"
  1664 +
  1665 +Match: [base~"w"] [orth~"każdym"] [orth~"razie"];
  1666 +Eval: word(Qub, 1.base " " 2.orth " " 3.orth);
  1667 +
  1668 +
  1669 +Rule "DisG: w każdym razie"
  1670 +
  1671 +Match: [base~"w każdym razie"];
  1672 +Eval: group(DisG, 1,1);
  1673 +
  1674 +
  1675 +Rule "frazeo: w kucki"
  1676 +
  1677 +Match: [base~"w"] [orth~"kucki"];
  1678 +Eval: word(Adv, 1.base " " 2.orth);
  1679 +
  1680 +
  1681 +Rule "frazeo: w myślach|myśli"
  1682 +
  1683 +Match: [base~"w"] [orth~"myślach|myśli"];
  1684 +Eval: word(Adv, 1.base " " 2.orth);
  1685 +
  1686 +
  1687 +Rule "frazeo: w najlepsze (1)"
  1688 +
  1689 +Match: [base~"w"] [orth~"najlepsze"];
  1690 +Right: [case!~"acc"];
  1691 +Eval: word(Adv, 1.base " " 2.orth);
  1692 +
  1693 +
  1694 +Rule "frazeo: w najlepsze (2)"
  1695 +
  1696 +Match: [base~"w"] [orth~"najlepsze"];
  1697 +Right: ns [pos~"interp"];
  1698 +Eval: word(Adv, 1.base " " 2.orth);
  1699 +
  1700 +
  1701 +Rule "frazeo: w oddali"
  1702 +
  1703 +Match: [base~"w"] [base~"oddali"];
  1704 +Eval: word(Adv, 0.base);
  1705 +
  1706 +
  1707 +Rule "frazeo: w ostatniej chwili"
  1708 +
  1709 +Match: [base~"w"] [orth~"ostatniej"] [orth~"chwili"];
  1710 +Eval: word(Adv, 1.base " " 2.orth " " 3.orth);
  1711 +
  1712 +
  1713 +Rule "frazeo: w razie czego"
  1714 +
  1715 +Match: [base~"w"] [orth~"razie"] [orth~"czego"];
  1716 +Eval: word(Adv, 1.base " " 2.orth " " 3.orth);
  1717 +
  1718 +
  1719 +Rule "frazeo: w samą porę"
  1720 +
  1721 +Match: [base~"w"] [orth~"samą"] [orth~"porę"];
  1722 +Eval: word(Adv, 1.base " " 2.orth " " 3.orth);
  1723 +
  1724 +
  1725 +Rule "frazeo: w zaparte"
  1726 +
  1727 +Match: [base~"w"] [orth~"zaparte"];
  1728 +Eval: word(Adv, 1.base " " 2.orth);
  1729 +
  1730 +
  1731 +Rule "frazeo: w zasadzie"
  1732 +
  1733 +Match: [base~"w"] [orth~"zasadzie"];
  1734 +Eval: word(Qub, 1.base " " 2.orth);
  1735 +
  1736 +
  1737 +Rule "frazeo: w zgodzie z"
  1738 +
  1739 +Match: [base~"w"] [orth~"zgodzie"] [base~"z" && pos~~"prep"];
  1740 +Eval: word(3, Prep, "w zgodzie z");
  1741 +
  1742 +
  1743 +Rule "frazeo: w zupełności|pełni"
  1744 +
  1745 +Match: [base~"w"] [orth~"zupełności|pełni"];
  1746 +Eval: word(Adv, 1.base " " 2.orth);
  1747 +
  1748 +
  1749 +Rule "frazeo: w celu i in."
  1750 +
  1751 +Match: [base~"w" && pos~~"prep"]
  1752 + [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"];
  1753 +Right: [pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact"
  1754 + && case~~"gen"];
  1755 +Eval: word(Prep:gen, 1.base " " 2.orth);
  1756 +
  1757 +
  1758 +Rule "frazeo: w efekcie i in. (Prep)"
  1759 +
  1760 +Match: [base~"w" && pos~~"prep"]
  1761 + [orth~"efekcie|rezultacie|głąb|głębi|pobliżu|poprzek|końcu"];
  1762 +Right: [pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact"
  1763 + && case~~"gen"];
  1764 +Eval: word(Prep:gen, 1.base " " 2.orth);
  1765 +
  1766 +
  1767 +Rule "frazeo: w efekcie i in. (Adv)"
  1768 +
  1769 +Match: [base~"w" && pos~~"prep"]
  1770 + [orth~"efekcie|rezultacie|głąb|głębi|pobliżu|poprzek"];
  1771 +Right: [case!~"gen"];
  1772 +Eval: word(Adv, 1.base " " 2.orth);
  1773 +
  1774 +
  1775 +Rule "frazeo: w końcu (Qub)"
  1776 +
  1777 +Match: [base~"w" && pos~~"prep"] [orth~"końcu"];
  1778 +Right: [case!~"gen"];
  1779 +Eval: word(Qub, 1.base " " 2.orth);
  1780 +
  1781 +
  1782 +Rule "frazeo: w lot"
  1783 +
  1784 +Match: [base~"w"] [orth~"lot"];
  1785 +Eval: word(Adv, 0.base);
  1786 +
  1787 +
  1788 +Rule "frazeo: w miarę jak (Comp)"
  1789 +
  1790 +Match: [base~"w" && pos~~"prep"] [orth~"miarę"] [base~"jak"];
  1791 +Eval: word(Comp, 1.base " " 2.orth " " 3.base);
  1792 +
  1793 +
  1794 +Rule "frazeo: w miarę (Prep)"
  1795 +
  1796 +Match: [base~"w" && pos~~"prep"] [orth~"miarę"];
  1797 +Right: [pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact"
  1798 + && case~~"gen"];
  1799 +Eval: word(Prep:gen, 1.base " " 2.orth);
  1800 +
  1801 +
  1802 +Rule "frazeo: w miarę (Adv)"
  1803 +
  1804 +Match: [base~"w" && pos~~"prep"] [orth~"miarę"];
  1805 +Right: [pos~"adj|adv" && degree~"pos"];
  1806 +Eval: word(Adv, 1.base " " 2.orth);
  1807 +
  1808 +
  1809 +Rule "frazeo: w odniesieniu do i in."
  1810 +
  1811 +Match: [base~"w" && pos~~"prep"] [orth~"nawiązaniu|odniesieniu|opozycji|przeciwieństwie|stosunku"]
  1812 + [base~"do" && pos~~"prep"];
  1813 +Eval: word(Prep:gen, 1.base " " 2.orth " " 3.base);
  1814 +
  1815 +
  1816 +Rule "frazeo: w odpowiedzi na"
  1817 +
  1818 +Match: [base~"w" && pos~~"prep"] [orth~"odpowiedzi"]
  1819 + [base~"na" && pos~~"prep"];
  1820 +Eval: word(Prep:acc, 1.base " " 2.orth " " 3.base);
  1821 +
  1822 +
  1823 +Rule "frazeo: w odróżnieniu|zależności od"
  1824 +
  1825 +Match: [base~"w" && pos~~"prep"] [orth~"odróżnieniu|zależności"]
  1826 + [base~"od" && pos~~"prep"];
  1827 +Eval: word(Prep:gen, 1.base " " 2.orth " " 3.base);
  1828 +
  1829 +
  1830 +Rule "frazeo: w ogóle"
  1831 +
  1832 +Match: [base~"w"] [orth~"ogóle"];
  1833 +Eval: word(Qub, 1.base " " 2.orth);
  1834 +
  1835 +
  1836 +Rule "frazeo: w ogólności"
  1837 +
  1838 +Match: [base~"w"] [orth~"ogólności"];
  1839 +Eval: word(Qub, 1.base " " 2.orth);
  1840 +
  1841 +
  1842 +Rule "frazeo: w oparciu o"
  1843 +
  1844 +Match: [base~"w" && pos~~"prep"] [orth~"oparciu"] [base~"o" && pos~~"prep"];
  1845 +Eval: word(Prep:acc, 1.base " " 2.orth " " 3.base);
  1846 +
  1847 +
  1848 +Rule "frazeo: w pojedynkę"
  1849 +
  1850 +Match: [base~"w"] [orth~"pojedynkę"];
  1851 +Eval: word(Adv, 1.base " " 2.orth);
  1852 +
  1853 +
  1854 +Rule "frazeo: w porozumieniu z"
  1855 +
  1856 +Match: [base~"w" && pos~~"prep"] [orth~"porozumieniu"]
  1857 + [base~"z" && pos~~"prep"];
  1858 +Eval: word(3, Prep, 1.base " " 2.orth " " 3.base);
  1859 +
  1860 +
  1861 +Rule "frazeo: w porównaniu|związku z"
  1862 +
  1863 +Match: [base~"w" && pos~~"prep"] [orth~"porównaniu|związku"]
  1864 + [base~"z" && pos~~"prep"];
  1865 +Eval: word(3, Prep, 1.base " " 2.orth " " 3.base);
  1866 +
  1867 +
  1868 +Rule "frazeo: w porządku (Interj)"
  1869 +
  1870 +Left: sb;
  1871 +Match: [base~"w" && pos~~"prep"] [orth~"porządku"];
  1872 +Right: [pos~"interp"]? se;
  1873 +Eval: word(Interj, 2.base " " 3.orth); #LD zmiana cyferek
  1874 +
  1875 +
  1876 +Rule "frazeo: w porządku (Adv)"
  1877 +
  1878 +Match: [base~"w" && pos~~"prep"] [orth~"porządku"];
  1879 +Eval: word(Adv, 1.base " " 2.orth);
  1880 +
  1881 +
  1882 +Rule "frazeo: wpół do"
  1883 +
  1884 +Match: [base~"wpół|pół"] [base~"do"];
  1885 +Eval: word(Prep:gen, 0.base);
  1886 +
  1887 +
  1888 +Rule "frazeo: w sumie"
  1889 +
  1890 +Match: [base~"w"] [orth~"sumie"];
  1891 +Eval: word(Adv, 1.base " " 2.orth);
  1892 +
  1893 +
  1894 +Rule "frazeo: w szczególności"
  1895 +
  1896 +Match: [base~"w"] [orth~"szczególności"];
  1897 +Eval: word(Qub, 1.base " " 2.orth);
  1898 +
  1899 +
  1900 +Rule "frazeo: w ślad za"
  1901 +
  1902 +Match: [base~"w" && pos~~"prep"] [orth~"ślad"] [base~"za" && pos~~"prep"];
  1903 +Eval: word(Prep:inst, 1.base " " 2.orth " " 3.orth);
  1904 +
  1905 +
  1906 +Rule "frazeo: w zamian za"
  1907 +
  1908 +Match: [base~"w" && pos~~"prep"] [orth~"zamian"] [base~"za" && pos~~"prep"];
  1909 +Eval: word(Prep:acc, 1.base " " 2.orth " " 3.orth);
  1910 +
  1911 +
  1912 +Rule "frazeo: w zamian"
  1913 +
  1914 +Match: [base~"w"] [orth~"zamian"];
  1915 +Eval: word(Adv, 1.base " " 2.orth);
  1916 +
  1917 +Rule "frazeo: we wnętrzu"
  1918 +
  1919 +Match: [orth~"[Ww]e" && pos~~"prep"] [orth~"wnętrzu"];
  1920 +Right: [pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact"
  1921 + && case~~"gen"];
  1922 +Eval: word(Prep:gen, 1.base " " 2.orth);
  1923 +
  1924 +
  1925 +Rule "frazeo: wbrew pozorom"
  1926 +
  1927 +Match: [base~"wbrew"] [orth~"pozorom"];
  1928 +Eval: word(Qub, 1.base " " 2.orth);
  1929 +
  1930 +
  1931 +Rule "frazeo: wszystko jedno"
  1932 +
  1933 +Match: [orth~"[Ww]szystko"] [orth~"jedno"];
  1934 +Eval: word(Adv, 1.base " " 2.orth);
  1935 +
  1936 +
  1937 +Rule "frazeo: z całą pewnością"
  1938 +
  1939 +Match: [base~"z"] [orth~"całą"] [orth~"pewnością"];
  1940 +Eval: word(Qub, 1.base " " 2.orth " " 3.orth);
  1941 +
  1942 +
  1943 +Rule "frazeo: z całych sił"
  1944 +
  1945 +Match: [base~"z"] [orth~"całych"] [orth~"sił"];
  1946 +Eval: word(Adv, "z " 2.orth " " 3.orth);
  1947 +
  1948 +
  1949 +Rule "frazeo: ze wszystkich sił"
  1950 +
  1951 +Match: [base~"z"] [orth~"wszystkich"] [orth~"sił"];
  1952 +Eval: word(Adv, "ze " 2.orth " " 3.orth);
  1953 +
  1954 +
  1955 +Rule "frazeo: z całej siły"
  1956 +
  1957 +Match: [base~"z"] [orth~"całej"] [orth~"siły"];
  1958 +Eval: word(Adv, 1.base " " 2.orth " " 3.orth);
  1959 +
  1960 +
  1961 +Rule "frazeo: ile|co sił"
  1962 +
  1963 +Match: [orth~"ile|co"] [orth~"sił"];
  1964 +Eval: word(Adv, 1.base " " 2.orth);
  1965 +
  1966 +
  1967 +Rule "frazeo: z ciężkim sercem"
  1968 +
  1969 +Match: [orth~"[Zz]"] [orth~"ciężkim"] [orth~"sercem"];
  1970 +Eval: word(Adv, "z " 2.orth " " 3.orth);
  1971 +
  1972 +
  1973 +Rule "frazeo: z czasem (1)"
  1974 +
  1975 +Left: sb;
  1976 +Match: [base~"z" && pos~~"prep"] [orth~"czasem"];
  1977 +Eval: word(Adv, 2.base " " 3.orth);
  1978 +
  1979 +
  1980 +Rule "frazeo: z czasem (2)"
  1981 +
  1982 +Match: [base~"z" && pos~~"prep"] [orth~"czasem"];
  1983 +Right: [pos~"qub"]? $czasownik;
  1984 +Eval: word(Adv, 1.base " " 2.orth);
  1985 +
  1986 +
  1987 +Rule "frazeo: z dala|daleka od"
  1988 +
  1989 +Match: [base~"z" && pos~~"prep"] [orth~"dala|daleka"] [base~"od"];
  1990 +Eval: word(Prep:gen, 1.base " " 2.orth " " 3.base);
  1991 +
  1992 +
  1993 +Rule "frazeo: daleko od"
  1994 +
  1995 +Match: [base~"daleko"] [base~"od"];
  1996 +Eval: word(Prep:gen, 0.base);
  1997 +
  1998 +
  1999 +Rule "frazeo: z bliska/daleka"
  2000 +
  2001 +Match: [base~"z" && pos~~"prep"]
  2002 + [orth~"bliska|cicha|dala|daleka|lekka|lewa|nagła|naprzeciwka|niedaleka|oddali|osobna|ostrożna|przeciwka|rzadka|ukosa|wolna|wysoka"];
  2003 +Eval: word(Adv, 1.base " " 2.orth);
  2004 +
  2005 +
  2006 +Rule "frazeo: z duszą na ramieniu"
  2007 +
  2008 +Match: [base~"z"] [orth~"duszą"] [base~"na"] [orth~"ramieniu"];
  2009 +Eval: word(Adv, "z duszą na ramieniu");
  2010 +
  2011 +
  2012 +Rule "frazeo: z głębi i in."
  2013 +
  2014 +Match: [base~"z" && pos~~"prep"]
  2015 + [orth~"głębi|końcem|okazji|perspektywy|początkiem|pomocą|powodu|przyczyny|racji|ramienia|strony|tyłu|tytułu|wyjątkiem"];
  2016 +Right: [pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact"
  2017 + && case~~"gen"];
  2018 +Eval: word(Prep:gen, 1.base " " 2.orth);
  2019 +
  2020 +
  2021 +Rule "frazeo: z grubsza"
  2022 +
  2023 +Match: [base~"z" && pos~~"prep"] [orth~"grubsza"];
  2024 +Eval: word(Qub, 1.base " " 2.orth);
  2025 +
  2026 +Rule "frazeo: z gruntu"
  2027 +
  2028 +Match: [base~"z" && pos~~"prep"] [orth~"gruntu"];
  2029 +Eval: word(Adv, 1.base " " 2.orth);
  2030 +
  2031 +Rule "frazeo: z|po kolei"
  2032 +
  2033 +Match: [base~"z|po" && pos~~"prep"] [orth~"kolei"];
  2034 +Eval: word(Adv, 1.base " " 2.orth);
  2035 +
  2036 +
  2037 +#LD Tę regułę trzeba na razie wyłączyć, bo produkuje niepełne tagi.
  2038 +#brak informacji morfologicznych dla Adj
  2039 +#Rule "frazeo: z krwi i kości"
  2040 +
  2041 +#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).
  2042 +#Left: [pos~"subst" && number~"sg"];
  2043 +#Match: [base~"z"] [orth~"krwi"] [base~"i"] [orth~"kości"];
  2044 +#Eval: word(1, Adj, "z krwi i kości");
  2045 +
  2046 +
  2047 +Rule "frazeo: z łatwością|trudem"
  2048 +
  2049 +Match: [base~"z" && pos~~"prep"] [orth~"łatwością|trudem"];
  2050 +Eval: word(Adv, 1.base " " 2.orth);
  2051 +
  2052 +
  2053 +Rule "frazeo: z pewnością"
  2054 +
  2055 +Match: [base~"z" && pos~~"prep"] [orth~"pewnością"];
  2056 +Eval: word(Qub, 1.base " " 2.orth);
  2057 +
  2058 +
  2059 +Rule "frazeo: z powrotem"
  2060 +
  2061 +Match: [base~"z"] [orth~"powrotem"];
  2062 +Eval: word(Adv, 1.base " " 2.orth);
  2063 +
  2064 +
  2065 +Rule "frazeo: z pozoru"
  2066 +
  2067 +Match: [base~"z"] [orth~"pozoru"];
  2068 +Eval: word(Adv, 1.base " " 2.orth);
  2069 +
  2070 +
  2071 +#LD Tę regułę trzeba na razie wyłączyć, bo produkuje niepełne tagi.
  2072 +#brak informacji morfologicznych dla Adj
  2073 +#Rule "frazeo: z prawdziwego zdarzenia"
  2074 +#
  2075 +#Match: [base~"z"] [orth~"prawdziwego"] [orth~"zdarzenia"];
  2076 +#Eval: word(Adj, 1.base " " 2.orth " " 3.orth);
  2077 +
  2078 +
  2079 +Rule "frazeo: z punktu widzenia"
  2080 +
  2081 +Match: [base~"z" && pos~~"prep"] [orth~"punktu"] [orth~"widzenia"];
  2082 +Right: [pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact"
  2083 + && case~~"gen"];
  2084 +Eval: word(Prep:gen, 1.base " " 2.orth " " 3.orth);
  2085 +
  2086 +
  2087 +Rule "frazeo: z pyszna"
  2088 +
  2089 +Match: [base~"z" && pos~~"prep"] [orth~"pyszna"];
  2090 +Eval: word(Adv, 1.base " " 2.orth);
  2091 +
  2092 +
  2093 +Rule "frazeo: z rana"
  2094 +
  2095 +Match: [base~"z" && pos~~"prep"] [orth~"samego"]? [orth~"rana"];
  2096 +Eval: word(Adv, 0.orth);
  2097 +
  2098 +
  2099 +Rule "frazeo: ze smakiem"
  2100 +
  2101 +Left: [base~"jeść|zjeść"];
  2102 +Match: [base~"z"] [orth~"smakiem"];
  2103 +Eval: word(Adv, 2.base " " 3.orth);
  2104 +
  2105 +
  2106 +Rule "frazeo: z zasady"
  2107 +
  2108 +Match: [base~"z"] [orth~"zasady|reguły"];
  2109 +Eval: word(Qub, 1.base " " 2.orth);
  2110 +
  2111 +
  2112 +Rule "frazeo: z zimną krwią"
  2113 +
  2114 +Match: [base~"z"] [orth~"zimną"] [orth~"krwią"];
  2115 +Eval: word(Adv, "z " 2.orth " " 3.orth);
  2116 +
  2117 +
  2118 +Rule "frazeo: z -ska"
  2119 +
  2120 +Match: [base~"z" && pos~~"prep"] [orth~".*ska" && pos~~"adjp|burk"];
  2121 +Eval: word(Adv, 1.base " " 2.orth);
  2122 +
  2123 +
  2124 +Rule "frazeo: z tym, że"
  2125 +
  2126 +Match: [base~"z"] [orth~"tym"] (ns [base~","])? [base~"że"];
  2127 +Eval: word(Conj, 1.base " " 2.orth 3.base " " 4.base);
  2128 +
  2129 +
  2130 +Rule "frazeo: z uwagi na"
  2131 +
  2132 +Match: [base~"z"] [orth~"uwagi"] [base~"na"];
  2133 +Eval: word(Prep:acc, 1.base " " 2.orth " " 3.base);
  2134 +
  2135 +
  2136 +Rule "frazeo: za darmo|bezcen"
  2137 +
  2138 +Match: [base~"za" && pos~~"prep"] [base~"darmo|bezcen"];
  2139 +Eval: word(Adv, 0.base);
  2140 +
  2141 +
  2142 +Rule "frazeo: za to"
  2143 +
  2144 +Match: [base~"za" && pos~~"prep"] [orth~"to"];
  2145 +Right: [case!~"acc"];
  2146 +Eval: word(Qub, 1.base " " 2.orth);
  2147 +
  2148 +
  2149 +Rule "frazeo: za cenę i in."
  2150 +
  2151 +Match: [base~"za" && pos~~"prep"]
  2152 + [orth~"cenę|pomocą|pośrednictwem|sprawą"];
  2153 +Right: [pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact"
  2154 + && case~~"gen"];
  2155 +Eval: word(Prep:gen, 1.base " " 2.orth);
  2156 +
  2157 +
  2158 +Rule "frazeo: ze względu na"
  2159 +
  2160 +Match: [orth~"[Zz]e"] [orth~"względu"] [base~"na"];
  2161 +Eval: word(Prep:acc, "ze względu na");
  2162 +
  2163 +
  2164 +Rule "frazeo: zależnie|niezależnie od"
  2165 +
  2166 +Match: [base~"zależnie|niezależnie" && pos~~"adv"] [base~"od" && pos~~"prep"];
  2167 +Eval: word(Prep:gen, 0.base);
  2168 +
  2169 +
  2170 +Rule "frazeo: zgodnie|niezgodnie z"
  2171 +
  2172 +Match: [base~"zgodnie|niezgodnie" && pos~~"adv"] [base~"z" && pos~~"prep"];
  2173 +Eval: word(2, Prep, 0.base);
  2174 +
  2175 +
  2176 +Rule "frazeo: zwłaszcza że"
  2177 +
  2178 +Match: [base~"zwłaszcza"] [base~"że|iż"];
  2179 +Eval: word(Comp, 0.base);
  2180 +
  2181 +
  2182 +Rule "frazeo: bez/do reszty"
  2183 +
  2184 +Match: [base~"bez|do" && pos~~"prep"] [orth~"reszty"];
  2185 +Right: $lub_imieslow;
  2186 +Eval: word(Adv, 1.base " " 2.orth);
  2187 +
  2188 +
  2189 +Rule "frazeo: z prawa"
  2190 +
  2191 +Match: [base~"z" && pos~~"prep"] [orth~"prawa"];
  2192 +Right: ([base!~"do" && pos~~"prep"] | [case!~"gen"]);
  2193 +Eval: word(Adv, 1.base " " 2.orth);
  2194 +
  2195 +
  2196 +Rule "frazeo: póki co"
  2197 +
  2198 +Match: [base~"póki" && pos~~"comp"] [orth~"co" && pos~~"subst"];
  2199 +Eval: word(Adv, 1.base " " 2.orth);
  2200 +
  2201 +
  2202 +Rule "frazeo: co do + gen"
  2203 +
  2204 +Match: [orth~"[Cc]o" && pos~~"comp"] [base~"do" && pos~~"prep"];
  2205 +Right: [pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact"
  2206 + && case~~"gen"];
  2207 +Eval: word(Prep:gen, 1.orth " " 2.base);
  2208 +
  2209 +
  2210 +Rule "frazeo: mimo że/iż"
  2211 +
  2212 +Match: [base~"mimo|pomimo"] [base~"że|iż"];
  2213 +Eval: word(Comp, 0.base);
  2214 +
  2215 +
  2216 +Rule "frazeo: a także"
  2217 +
  2218 +Match: [base~"a"] [base~"także"];
  2219 +Eval: word(Conj, 0.base);
  2220 +
  2221 +
  2222 +Rule "frazeo: a więc (Conj)"
  2223 +
  2224 +Left: [base~","];
  2225 +Match: [base~"a"] [base~"więc"];
  2226 +Eval: word(Conj, 0.base);
  2227 +
  2228 +
  2229 +Rule "frazeo: a więc (Qub)"
  2230 +
  2231 +Left: sb;
  2232 +Match: [base~"a"] [base~"więc"];
  2233 +Eval: word(Qub, 0.base);
  2234 +
  2235 +
  2236 +Rule "frazeo: a zatem (Conj)"
  2237 +
  2238 +Left: [base~","];
  2239 +Match: [base~"a"] [base~"zatem"];
  2240 +Eval: word(Conj, 0.base);
  2241 +
  2242 +
  2243 +Rule "frazeo: a zatem (Qub)"
  2244 +
  2245 +Left: sb;
  2246 +Match: [base~"a"] [base~"zatem"];
  2247 +Eval: word(Qub, 0.base);
  2248 +
  2249 +
  2250 +Rule "frazeo: zarówno ... "
  2251 +
  2252 +Match: [base~"zarówno|tak" && pos~~"conj"];
  2253 +Right: []+ ns [base~","]
  2254 + [base~"jak" && pos~~"conj"] [base~"i" && pos~~"conj"];
  2255 +Eval: word(Conj1:discr, 1.base);
  2256 +
  2257 +
  2258 +Rule "frazeo: nie tylko ..."
  2259 +
  2260 +Match: [base~"nie" && pos~~"conj"] [base~"tylko" && pos~~"conj"];
  2261 +Right: []+ (ns [base~","] []+)? ns [base~","]
  2262 + [base~"lecz|ale" && pos~~"conj"] [base~"i|także|również"]?;
  2263 +Eval: word(Conj1:discr, "nie tylko");
  2264 +
  2265 +
  2266 +Rule "frazeo: im ... "
  2267 +
  2268 +Match: [base~"im" && pos~~"conj"];
  2269 +Right: []+ (ns [base~","] []+)? ns [base~","]
  2270 + [base~"tym" && pos~~"conj"];
  2271 +Eval: word(Conj1:discr, 1.base);
  2272 +
  2273 +
  2274 +Rule "frazeo: ani ... "
  2275 +
  2276 +Match: [base~"ani" && pos~~"conj"];
  2277 +Right: []+ ns [base~","]
  2278 + [base~"ani" && pos~~"conj"];
  2279 +Eval: word(Conj1:discr, 1.base);
  2280 +
  2281 +
  2282 +Rule "frazeo: albo ... "
  2283 +
  2284 +Match: [base~"albo" && pos~~"conj"];
  2285 +Right: []+ ns [base~","]
  2286 + [base~"albo" && pos~~"conj"];
  2287 +Eval: word(Conj1:discr, 1.base);
  2288 +
  2289 +
  2290 +Rule "frazeo: nie dość, że ... "
  2291 +
  2292 +Match: [base~"nie" && pos~"conj"] [base~"dość" && pos~"conj"]
  2293 + ns [base~","] [base~"że"];
  2294 +Right: []+ ns [base~","]
  2295 + [base~"to" && pos~~"conj"] [base~"jeszcze" && pos~~"conj"];
  2296 +Eval: word(Conj1:discr, 0.base);
  2297 +
  2298 +
  2299 +Rule "frazeo: na tyle ... "
  2300 +
  2301 +Match: [base~"na"] [base~"tyle"];
  2302 +Right: []* ns [base~","]
  2303 + [base~"na"] [base~"ile"];
  2304 +Eval: word(Conj1:discr, 0.base);
  2305 +
  2306 +
  2307 +Rule "frazeo: na tyle (Adv)"
  2308 +
  2309 +Match: [base~"na"] [base~"tyle"];
  2310 +Right: [pos~"Adj"];
  2311 +Eval: word(Adv, 0.base);
  2312 +
  2313 +
  2314 +Rule "frazeo: nie tyle ... "
  2315 +
  2316 +Match: [base~"nie"] [base~"tyle"];
  2317 +Right: []* ns [base~","] [base~"ile|co"];
  2318 +Eval: word(Conj1:discr, 0.base);
  2319 +
  2320 +
  2321 +Rule "frazeo: tym bardziej że"
  2322 +
  2323 +Match: [orth~"[Tt]ym"] [orth~"bardziej"] [base~"że"];
  2324 +Eval: word(Comp, "tym bardziej że");
  2325 +
  2326 +
  2327 +Rule "frazeo: tym bardziej"
  2328 +
  2329 +Match: [orth~"[Tt]ym"] [orth~"bardziej"];
  2330 +Eval: word(Qub, "tym bardziej");
  2331 +
  2332 +
  2333 +Rule "frazeo: jeśli/jeżeli ... "
  2334 +
  2335 +Match: [base~"jeśli|jeżeli|skoro|gdyby" && pos~~"comp"];
  2336 +Right: []+ ns [base~","] [base~"to" && pos~~"conj"];
  2337 +Eval: word(Comp1:discr, 1.base);
  2338 +
  2339 +
  2340 +Rule "frazeo: jak ... "
  2341 +
  2342 +Match: [base~"jak" && pos~~"adv"]; ##!czy to ma być adv?
  2343 +Right: []+ ns [base~","]
  2344 + [base~"to" && pos~~"conj"];
  2345 +Eval: word(Comp1:discr, 1.base);
  2346 +
  2347 +
  2348 +Rule "frazeo: o tyle ... "
  2349 +
  2350 +Match: [base~"o"] [base~"tyle"];
  2351 +Right: []* ns [base~","]
  2352 + [base~"o"] [base~"ile"];
  2353 +Eval: word(Conj1:discr, 0.base);
  2354 +
  2355 +
  2356 +Rule "frazeo: o ile ... "
  2357 +
  2358 +Match: [base~"o"] [base~"ile"];
  2359 +Right: []* ns [base~","]
  2360 + [base~"o"] [base~"tyle"];
  2361 +Eval: word(Conj1:discr, 0.base);
  2362 +
  2363 +
  2364 +Rule "frazeo: dopóki ... "
  2365 +
  2366 +Match: [base~"dopóki" && pos~~"comp"];
  2367 +Right: []+ ns [base~","]
  2368 + [base~"dopóty" && pos~~"conj"];
  2369 +Eval: word(Comp1:discr, 1.base);
  2370 +
  2371 +
  2372 +Rule "frazeo: ..., jak i"
  2373 +
  2374 +Left: [base~"zarówno|tak" && pos~"Conj1"] []+;
  2375 +Match: ns [base~","]
  2376 + [base~"jak" && pos~~"conj"] [base~"i|też|również"];
  2377 +Eval: word(Conj2:discr, 0.base);
  2378 +
  2379 +
  2380 +Rule "frazeo: jak również"
  2381 +
  2382 +Match: [base~"jak" && pos~~"|conj|adv"] [base~"również" && pos~"conj|qub"];
  2383 +Eval: word(Conj, 0.base);
  2384 +#nie działa (plik morph-Inne2)
  2385 +
  2386 +Rule "frazeo: ..., ale|lecz i|także"
  2387 +
  2388 +Left: [base~"nie tylko" && pos~~"Conj1"] []+ (ns [base~","] []+)?;
  2389 +Match: ns [base~","]
  2390 + [base~"lecz|ale" && pos~~"conj"] [base~"i|także|również"]?;
  2391 +Eval: word(Conj2:discr, 0.base);
  2392 +
  2393 +
  2394 +Rule "frazeo: ..., tym"
  2395 +
  2396 +Left: [base~"im" && pos~~"Conj1"] []+ (ns [base~","] []+)?;
  2397 +Match: ns [base~","] [base~"tym" && pos~~"conj"];
  2398 +Eval: word(Conj2:discr, 0.base);
  2399 +
  2400 +
  2401 +Rule "frazeo: ..., ani"
  2402 +
  2403 +Left: [base~"ani" && pos~~"Conj1"] []+;
  2404 +Match: ns [base~","]
  2405 + [base~"ani" && pos~~"conj"];
  2406 +Eval: word(Conj2:discr, 0.base);
  2407 +
  2408 +
  2409 +Rule "frazeo: ..., albo"
  2410 +
  2411 +Left: [base~"albo" && pos~~"Conj1"] []+;
  2412 +Match: ns [base~","]
  2413 + [base~"albo" && pos~~"conj"];
  2414 +Eval: word(Conj2:discr, 0.base);
  2415 +
  2416 +
  2417 +Rule "frazeo: ..., to jeszcze "
  2418 +
  2419 +Left: [base~"nie dość, że" && pos~~"Conj1"] []+;
  2420 +Match: ns [base~","]
  2421 + [base~"to" && pos~~"conj"] [base~"jeszcze" && pos~~"conj"];
  2422 +Eval: word(Conj2:discr, 0.base);
  2423 +
  2424 +
  2425 +Rule "frazeo: ... na ile"
  2426 +
  2427 +Left: [base~"na tyle" && pos~~"Conj1"] []*;
  2428 +Match: ns [base~","] [base~"na"] [base~"ile"];
  2429 +Eval: word(Conj2:discr, 0.base);
  2430 +
  2431 +
  2432 +Rule "frazeo: ... ile|co"
  2433 +
  2434 +Left: [base~"nie tyle" && pos~~"Conj1"] []*;
  2435 +Match: ns [base~","] [base~"ile|co"];
  2436 +Eval: word(Conj2:discr, 0.base);
  2437 +
  2438 +
  2439 +Rule "frazeo: (jeśli)..., to "
  2440 +
  2441 +Left: [base~"jeśli|jeżeli|skoro|gdyby" && pos~~"Comp1"] []+;
  2442 +Match: ns [base~","][base~"to" && pos~~"conj"];
  2443 +Eval: word(Comp2:discr, 0.base);
  2444 +
  2445 +
  2446 +Rule "frazeo: (jak) ..., to"
  2447 +
  2448 +Left: [base~"jak" && pos~~"Comp1"] []+;
  2449 +Match: ns [base~","] [base~"to" && pos~~"conj"];
  2450 +Eval: word(Comp2:discr, 0.base);
  2451 +
  2452 +
  2453 +Rule "frazeo: ... o ile"
  2454 +
  2455 +Left: [base~"o tyle" && pos~~"Conj1"] []*;
  2456 +Match: ns [base~","] [base~"o"] [base~"ile"];
  2457 +Eval: word(Conj2:discr, 0.base);
  2458 +
  2459 +
  2460 +Rule "frazeo: ... o tyle"
  2461 +
  2462 +Left: [base~"o ile" && pos~~"Conj1"] []*;
  2463 +Match: ns [base~","] [base~"o"] [base~"tyle"];
  2464 +Eval: word(Conj1:discr, 0.base);
  2465 +
  2466 +
  2467 +Rule "frazeo: ... dopóty"
  2468 +
  2469 +Left: [base~"dopóki" && pos~~"Comp1"] []+;
  2470 +Match: ns [base~","]
  2471 + [base~"dopóty" && pos~~"conj"];
  2472 +Eval: word(Comp2:discr, 0.base);
  2473 +
  2474 +
  2475 +##$$ dwufunkcyjne
  2476 +##do przesady
  2477 +##do woli
  2478 +#do dnia - wykluczyć subst, pact, adj z prawej (warto?)
  2479 +#po pijaku
  2480 +#na czele
  2481 +
  2482 +##JW bliższe frazeologizmom
  2483 +
  2484 +Rule "frazeo: tylko i wyłącznie"
  2485 +
  2486 +Match: [base~"tylko"] [base~"i"] [base~"wyłącznie"];
  2487 +Eval: word(Qub, 0.base);
  2488 +
  2489 +
  2490 +Rule "frazeo: w dalszym ciągu"
  2491 +
  2492 +Match: [base~"w" && pos~~"prep"] [orth~"dalszym"] [orth~"ciągu"];
  2493 +Eval: word(Adv, 1.base " " 2.orth " " 3.orth);
  2494 +
  2495 +
  2496 +Rule "frazeo: za wszelką cenę"
  2497 +
  2498 +Match: [base~"za" && pos~~"prep"] [orth~"wszelką"] [orth~"cenę"];
  2499 +Eval: word(Adv, 1.base " " 2.orth " " 3.orth);
  2500 +
  2501 +
  2502 +
  2503 +##reguły dla skrótów
  2504 +
  2505 +
  2506 +Rule "Brev: %"
  2507 +
  2508 +Match: [base~"%" && pos~~"interp"];
  2509 +Right: [];
  2510 +Eval: word(Brev:npun:NOUN, "procent");
  2511 +
  2512 +Rule "Brev: §"
  2513 +
  2514 +Match: [base~"§" && pos~~"interp"];
  2515 +Right: [];
  2516 +Eval: word(Brev:npun:NOUN, "paragraf");
  2517 +
  2518 +
  2519 +Rule "Brev: °"
  2520 +
  2521 +Match: [base~"°" && pos~~"interp"];
  2522 +Right: []; #ns [pos~"interp"]; #!Spejd protestuje
  2523 +Eval: word(Brev:npun:NOUN, "stopień");
  2524 +
  2525 +
  2526 +Rule "Brev: ub.r. (osobno) (1)"
  2527 +
  2528 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"ubiegły"]
  2529 + ns [base~"\."] ns
  2530 + [pos~~"brev" && fullstoppedness~~"pun" && base~~"rok"]
  2531 + ns [base~"\."];
  2532 +Right: [];
  2533 +Eval: word(Brev:pun:NG, "ubiegły rok");
  2534 +#czy to nie powinien być jeden segment?
  2535 +
  2536 +
  2537 +Rule "Brev: ub.r. (osobno) (3)"
  2538 +
  2539 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"ubiegły"]
  2540 + ns [base~"\."] ns
  2541 + [pos~~"brev" && fullstoppedness~~"pun" && base~~"rok"]
  2542 + ns [base~"\."];
  2543 +Right: se;
  2544 +Eval: word(Brev-se:pun:NG, "ubiegły rok");
  2545 +#czy to nie powinien być jeden segment?
  2546 +
  2547 +
  2548 +Rule "Brev: r. (1)"
  2549 +
  2550 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"rok"] ns [base~"\."];
  2551 +Right: [];
  2552 +Eval: word(Brev:pun:NOUN, 1.base);
  2553 +
  2554 +
  2555 +Rule "Brev: r. (2)"
  2556 +
  2557 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"rok"] ns [base~"\."];
  2558 +Right: ns [pos~"interp"];
  2559 +Eval: word(Brev:pun:NOUN, 1.base);
  2560 +
  2561 +
  2562 +Rule "Brev: r. (3)"
  2563 +
  2564 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"rok"] ns [base~"\."];
  2565 +Right: se;
  2566 +Eval: word(Brev-se:pun:NOUN, 1.base);
  2567 +
  2568 +
  2569 +Rule "Brev: r. bez kropki"
  2570 +
  2571 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"rok"];
  2572 +Eval: word(Brev:pun:NOUN, 1.base);
  2573 +##!! nie wiem, jak zapisać, że jako prawy kontekst nie może być "ns kropka"
  2574 +
  2575 +Rule "Brev: l. (1)"
  2576 +
  2577 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"lata"] ns [base~"\."];
  2578 +Right: [];
  2579 +Eval: word(Brev:pun:NOUN, 1.base);
  2580 +
  2581 +
  2582 +Rule "Brev: l. (2)"
  2583 +
  2584 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"lata"] ns [base~"\."];
  2585 +Right: ns [pos~"interp"];
  2586 +Eval: word(Brev:pun:NOUN, 1.base);
  2587 +
  2588 +
  2589 +Rule "Brev: l. (3)"
  2590 +
  2591 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"lata"] ns [base~"\."];
  2592 +Right: se;
  2593 +Eval: word(Brev-se:pun:NOUN, 1.base);
  2594 +
  2595 +
  2596 +Rule "Brev: w. (1)"
  2597 +
  2598 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"wiek"] ns [base~"\."];
  2599 +Right: [];
  2600 +Eval: word(Brev:pun:NOUN, 1.base);
  2601 +
  2602 +
  2603 +Rule "Brev: w. (2)"
  2604 +
  2605 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"wiek"] ns [base~"\."];
  2606 +Right: ns [pos~"interp"];
  2607 +Eval: word(Brev:pun:NOUN, 1.base);
  2608 +
  2609 +
  2610 +Rule "Brev: w. (3)"
  2611 +
  2612 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"wiek"] ns [base~"\."];
  2613 +Right: se;
  2614 +Eval: word(Brev-se:pun:NOUN, 1.base);
  2615 +
  2616 +Rule "Brev: w. (wyspa1)"
  2617 +
  2618 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"wyspa"] ns [base~"\."];
  2619 +Right: [];
  2620 +Eval: word(Brev:pun:NOUN, 1.base);
  2621 +
  2622 +Rule "Brev: w. (wyspa2)"
  2623 +
  2624 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"wyspa"] ns [base~"\."];
  2625 +Right: ns [pos~"interp"];
  2626 +Eval: word(Brev:pun:NOUN, 1.base);
  2627 +
  2628 +Rule "Brev: w. (wyspa3)"
  2629 +
  2630 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"wyspa"] ns [base~"\."];
  2631 +Right: se;
  2632 +Eval: word(Brev-se:pun:NOUN, 1.base);
  2633 +
  2634 +
  2635 +Rule "Brev: godz. godz."
  2636 +
  2637 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"godzina"]
  2638 + ns [base~"\."]
  2639 + [pos~~"brev" && fullstoppedness~~"pun" && base~~"godzina"]
  2640 + ns [base~"\."];
  2641 +Right: [];
  2642 +Eval: word(Brev:pun:NOUN, "godziny");
  2643 +
  2644 +
  2645 +Rule "Brev: b.m. (osobno)"
  2646 +
  2647 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"bieżący"]
  2648 + ns [base~"\."]
  2649 + [pos~~"brev" && fullstoppedness~~"pun" && base~~"miesiąc"]
  2650 + ns [base~"\."];
  2651 +Right: [];
  2652 +Eval: word(Brev:pun:NG, "bieżący miesiąc");
  2653 +
  2654 +
  2655 +Rule "Brev: godz.|sek.|dn.|mies. (1)"
  2656 +
  2657 +Match: [pos~~"brev" && fullstoppedness~~"pun"
  2658 + && base~~"godzina|sekunda|dzień|miesiąc"]
  2659 + ns [base~"\."];
  2660 +Right: [];
  2661 +Eval: word(Brev:pun:NOUN, 1.base);
  2662 +
  2663 +
  2664 +Rule "Brev: godz.|sek.|mies. (2)"
  2665 +
  2666 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"godzina|sekunda|miesiąc"]
  2667 + ns [base~"\."];
  2668 +Right: ns [pos~"interp"];
  2669 +Eval: word(Brev:pun:NOUN, 1.base);
  2670 +
  2671 +
  2672 +Rule "Brev: godz.|sek. (3)"
  2673 +
  2674 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"godzina|sekunda"]
  2675 + ns [base~"\."];
  2676 +Right: se;
  2677 +Eval: word(Brev-se:pun:NOUN, 1.base);
  2678 +
  2679 +
  2680 +Rule "Brev: godz. (4)"
  2681 +
  2682 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"godzina"]
  2683 + ns [base~"\."];
  2684 +Right: ns [pos~"adj|num"];
  2685 +Eval: word(Brev:pun:NOUN, 1.base);
  2686 +
  2687 +
  2688 +Rule "Brev: pon. i in."
  2689 +
  2690 +Match: [pos~~"brev" && fullstoppedness~~"pun"
  2691 + && base~~"poniedziałek|wtorek|środa|czwartek|piątek|sobota|niedziela"]
  2692 + ns [base~"\."]; #LD dodałam pozostałe dni tygodnia
  2693 +Right: [];
  2694 +Eval: word(Brev:pun:NOUN, 1.base);
  2695 +
  2696 +
  2697 +Rule "Brev: pt."
  2698 +
  2699 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"piątek"]
  2700 + ns [base~"\."];
  2701 +Right: [];
  2702 +Eval: word(Brev:pun:NOUN, 1.base);
  2703 +
  2704 +
  2705 +Rule "Brev: tys. (1)"
  2706 +
  2707 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"tysiąc"]
  2708 + ns [base~"\."];
  2709 +Right: [];
  2710 +Eval: word(Brev:pun:NOUN, 1.base);
  2711 +
  2712 +
  2713 +Rule "Brev: tys. (2)"
  2714 +
  2715 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"tysiąc"]
  2716 + ns [base~"\."];
  2717 +Right: ns [pos~"interp"];
  2718 +Eval: word(Brev:pun:NOUN, 1.base);
  2719 +
  2720 +
  2721 +Rule "Brev: tys. (3)"
  2722 +
  2723 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"tysiąc"]
  2724 + ns [base~"\."];
  2725 +Right: se;
  2726 +Eval: word(Brev-se:pun:NOUN, 1.base);
  2727 +
  2728 +
  2729 +Rule "Brev: tys. (bez kropki)"
  2730 +
  2731 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"tysiąc"];
  2732 +Eval: word(Brev:pun:NOUN, 1.base);
  2733 +
  2734 +
  2735 +Rule "Brev: l. (1)"
  2736 +
  2737 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"liczba"] ns [base~"\."];
  2738 +Right: [];
  2739 +Eval: word(Brev:pun:NOUN, 1.base);
  2740 +
  2741 +Rule "Brev: proc.|prom. (1)"
  2742 +
  2743 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"procent|promil"] ns [base~"\."];
  2744 +Right: [];
  2745 +Eval: word(Brev:pun:NOUN, 1.base);
  2746 +
  2747 +
  2748 +Rule "Brev: proc. (2)"
  2749 +
  2750 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"procent"] ns [base~"\."];
  2751 +Right: ns [pos~"interp"];
  2752 +Eval: word(Brev:pun:NOUN, 1.base);
  2753 +
  2754 +
  2755 +Rule "Brev: proc. (3)"
  2756 +
  2757 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"procent"] ns [base~"\."];
  2758 +Right: se;
  2759 +Eval: word(Brev-se:pun:NOUN, 1.base);
  2760 +
  2761 +
  2762 +Rule "Brev: pkt. (1)"
  2763 +
  2764 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"punkt"] ns [base~"\."];
  2765 +Right: [];
  2766 +Eval: word(Brev:pun:NOUN, 1.base);
  2767 +
  2768 +
  2769 +Rule "Brev: pkt. (2)"
  2770 +
  2771 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"punkt"] ns [base~"\."];
  2772 +Right: ns [pos~"interp"];
  2773 +Eval: word(Brev:pun:NOUN, 1.base);
  2774 +
  2775 +
  2776 +Rule "Brev: pkt. (2a)"
  2777 +
  2778 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"punkt"] ns [base~"\."];
  2779 +Right: ns [orth~"[0-9]+"];
  2780 +Eval: word(Brev:pun:NOUN, 1.base);
  2781 +
  2782 +
  2783 +Rule "Brev: pkt. (2b)"
  2784 +
  2785 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"punkt"] ns [base~"\."];
  2786 +Right: ns [orth~"[0-9]+[0-9.]+"];
  2787 +Eval: word(Brev:pun:NOUN, 1.base);
  2788 +
  2789 +
  2790 +Rule "Brev: pkt. (3)"
  2791 +
  2792 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"punkt"] ns [base~"\."];
  2793 +Right: se;
  2794 +Eval: word(Brev-se:pun:NOUN, 1.base);
  2795 +
  2796 +
  2797 +Rule "Brev: pkt|ppkt"
  2798 +
  2799 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"punkt|podpunkt"];
  2800 +Eval: word(Brev:npun:NOUN, 1.base);
  2801 +
  2802 +
  2803 +Rule "Brev: szt."
  2804 +
  2805 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"sztuka"]
  2806 + ns [base~"\."];
  2807 +Right: [];
  2808 +Eval: word(Brev:pun:NOUN, 1.base);
  2809 +
  2810 +
  2811 +Rule "Brev: poz.|wyd."
  2812 +
  2813 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"pozycja|wydanie"]
  2814 + ns [base~"\."];
  2815 +Right: [];
  2816 +Eval: word(Brev:pun:NOUN, 1.base);
  2817 +
  2818 +
  2819 +Rule "Brev: poł.|pocz. (1)"
  2820 +
  2821 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"połowa|początek"]
  2822 + ns [base~"\."];
  2823 +Right: [];
  2824 +Eval: word(Brev:pun:NOUN, 1.base);
  2825 +
  2826 +
  2827 +Rule "Brev: poł.|pocz. (2)"
  2828 +
  2829 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"połowa|początek"]
  2830 + ns [base~"\."];
  2831 +Right: ns [pos~"interp"];
  2832 +Eval: word(Brev:pun:NOUN, 1.base);
  2833 +
  2834 +
  2835 +Rule "Brev: poł.|pocz. (3)"
  2836 +
  2837 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"połowa|początek"]
  2838 + ns [base~"\."];
  2839 +Right: se;
  2840 +Eval: word(Brev-se:pun:NOUN, 1.base);
  2841 +
  2842 +
  2843 +Rule "Brev: poł. (bez kropki)"
  2844 +
  2845 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"połowa"];
  2846 +Right: [];
  2847 +Eval: word(Brev:pun:NOUN, 1.base);
  2848 +#!jak zaznaczyć, że tu nie może być "ns ."?
  2849 +
  2850 +Rule "Brev: fot. (1)"
  2851 +
  2852 +Match: [pos~~"brev" && fullstoppedness~~"pun"
  2853 + && base~~"fotografia|fotograf|zdjęcie"]
  2854 + ns [base~"\."];
  2855 +Right: [];
  2856 +Eval: word(Brev:pun:NOUN, 1.base);
  2857 +
  2858 +
  2859 +Rule "Brev: fot. (2)"
  2860 +
  2861 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"fotografia"]
  2862 + ns [base~"\."];
  2863 +Right: ns [pos~"interp"];
  2864 +Eval: word(Brev:pun:NOUN, 1.base);
  2865 +
  2866 +
  2867 +Rule "Brev: art.|h."
  2868 +
  2869 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"artysta|homoseksualista"]
  2870 + ns [base~"\."];
  2871 +Right: [];
  2872 +Eval: word(Brev:pun:NOUN, 1.base);
  2873 +
  2874 +
  2875 +Rule "Brev: proj.|oprac."
  2876 +
  2877 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"projekt|opracowanie"]
  2878 + ns [base~"\."];
  2879 +Right: [];
  2880 +Eval: word(Brev:pun:NOUN, 1.base);
  2881 +
  2882 +
  2883 +Rule "NGb: Brev(N=oprac.|proj.)"
  2884 +
  2885 +Match: [base~"opracowanie|projekt" && pos~"Brev"];
  2886 +Right: [base~"[A-ZŁŚ].*" && case~"nom"];
  2887 +Eval: group(NGb,1,1);
  2888 +
  2889 +
  2890 +Rule "Brev: lek. med."
  2891 +
  2892 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"lekarz"]
  2893 + ns [base~"\."]
  2894 + [pos~~"brev" && fullstoppedness~~"pun" && base~~"medycyna"]
  2895 + ns [base~"\."];
  2896 +Right: [];
  2897 +Eval: word(Brev:pun:NG, "lekarz medycyny");
  2898 +
  2899 +
  2900 +Rule "Brev: lek."
  2901 +
  2902 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"lekarz"]
  2903 + ns [base~"\."];
  2904 +Right: [];
  2905 +Eval: word(Brev:pun:NOUN, 1.base);
  2906 +#jeszcze nie było
  2907 +
  2908 +Rule "Brev: mieszk. (1)"
  2909 +
  2910 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"mieszkaniec"]
  2911 + ns [base~"\."];
  2912 +Right: [];
  2913 +Eval: word(Brev:pun:NOUN, 1.base);
  2914 +
  2915 +
  2916 +Rule "Brev: mieszk. (2)"
  2917 +
  2918 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"mieszkaniec"]
  2919 + ns [base~"\."];
  2920 +Right: ns [pos~"interp"];
  2921 +Eval: word(Brev:pun:NOUN, 1.base);
  2922 +
  2923 +
  2924 +Rule "Brev: mieszk. (3)"
  2925 +
  2926 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"mieszkaniec"]
  2927 + ns [base~"\."];
  2928 +Right: se;
  2929 +Eval: word(Brev-se:pun:NOUN, 1.base);
  2930 +
  2931 +
  2932 +Rule "Brev: Dz.U. (razem)"
  2933 +
  2934 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"dziennik.ustaw"]
  2935 + ns [base~"\."];
  2936 +Right: [];
  2937 +Eval: word(Brev:pun:NG, 1.base);
  2938 +
  2939 +
  2940 +Rule "Brev: Dz.U. (osobno)"
  2941 +
  2942 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"dziennik"]
  2943 + ns [base~"\."] ns?
  2944 + [pos~~"brev" && fullstoppedness~~"pun" && base~~"ustawa"]
  2945 + ns [base~"\."];
  2946 +Right: [];
  2947 +Eval: word(Brev:pun:NG, "dziennik ustaw");
  2948 +#?czy na etapie segmentacji to nie powinien być jeden brev?
  2949 +
  2950 +
  2951 +Rule "Brev: Społ.-Ekon."
  2952 +
  2953 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"społeczno"]
  2954 + ns [base~"\."] ns
  2955 + [pos~~"brev" && fullstoppedness~~"pun" && base~~"ekonomiczny"]
  2956 + ns [base~"\."];
  2957 +Right: [];
  2958 +Eval: word(Brev:pun:ADJ, "społeczno-ekonomiczny");
  2959 +#?czy na etapie segmentacji to nie powinien być jeden brev?
  2960 +
  2961 +Rule "Brev: ust."
  2962 +
  2963 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"ustęp|ustawa"] ns [base~"\."];
  2964 +Right: [];
  2965 +Eval: word(Brev:pun:NOUN, 1.base);
  2966 +
  2967 +
  2968 +Rule "Brev: ust. (4)"
  2969 +
  2970 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"ustęp"] ns [base~"\."];
  2971 +Right: ns [pos~"adj|num"];
  2972 +Eval: word(Brev:pun:NOUN, 1.base);
  2973 +
  2974 +
  2975 +Rule "Brev: lit."
  2976 +
  2977 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"litera"] ns [base~"\."];
  2978 +Right: [];
  2979 +Eval: word(Brev:pun:NOUN, 1.base);
  2980 +
  2981 +
  2982 +Rule "Brev: arch."
  2983 +
  2984 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"archiwum"]
  2985 + ns [base~"\."];
  2986 +Right: [];
  2987 +Eval: word(Brev:pun:NOUN, 1.base);
  2988 +
  2989 +
  2990 +Rule "Brev: dol. (1)"
  2991 +
  2992 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"dolar"] ns [base~"\."];
  2993 +Right: [];
  2994 +Eval: word(Brev:pun:NOUN, 1.base);
  2995 +
  2996 +
  2997 +Rule "Brev: dol. (2)"
  2998 +
  2999 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"dolar"] ns [base~"\."];
  3000 +Right: ns [pos~"interp"];
  3001 +Eval: word(Brev:pun:NOUN, 1.base);
  3002 +
  3003 +
  3004 +Rule "Brev: dol. (3)"
  3005 +
  3006 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"dolar"] ns [base~"\."];
  3007 +Right: se;
  3008 +Eval: word(Brev-se:pun:NOUN, 1.base);
  3009 +
  3010 +
  3011 +Rule "Brev: fund."
  3012 +
  3013 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"fundacja"]
  3014 + ns [base~"\."];
  3015 +Right: [];
  3016 +Eval: word(Brev:pun:NOUN, 1.base);
  3017 +
  3018 +
  3019 +Rule "Brev: Lic."
  3020 +
  3021 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"liceum"]
  3022 + ns [base~"\."];
  3023 +Right: [];
  3024 +Eval: word(Brev:pun:NOUN, 1.base);
  3025 +
  3026 +
  3027 +Rule "Brev: kl."
  3028 +
  3029 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"klasa"]
  3030 + ns [base~"\."];
  3031 +Right: [];
  3032 +Eval: word(Brev:pun:NOUN, 1.base);
  3033 +
  3034 +
  3035 +Rule "Brev: im."
  3036 +
  3037 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"imienia"]
  3038 + ns [base~"\."];
  3039 +Right: [];
  3040 +Eval: word(Brev:pun:NOUN, 1.base);
  3041 +
  3042 +
  3043 +Rule "Brev: przyp."
  3044 +
  3045 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"przypisek|przypis"]
  3046 + ns [base~"\."];
  3047 +Right: [];
  3048 +Eval: word(Brev:pun:NOUN, 1.base);
  3049 +
  3050 +
  3051 +Rule "Brev: tel."
  3052 +
  3053 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"telefon"]
  3054 + ns [base~"\."];
  3055 +Right: [];
  3056 +Eval: word(Brev:pun:NOUN, 1.base);
  3057 +
  3058 +
  3059 +Rule "Brev: tel. (2*)"
  3060 +
  3061 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"telefon"]
  3062 + ns [base~"\."];
  3063 +Right: ns [];
  3064 +Eval: word(Brev:pun:NOUN, 1.base);
  3065 +
  3066 +
  3067 +Rule "Brev: tel (2) (bez kropki)"
  3068 +
  3069 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"telefon"];
  3070 +Right: ns [base~"/|:"];
  3071 +Eval: word(Brev:pun:NOUN, 1.base);
  3072 +
  3073 +
  3074 +Rule "Brev: s.|str.|ss.|t.|k.|rozdz."
  3075 +
  3076 +Match: [pos~~"brev" && fullstoppedness~~"pun"
  3077 + && base~~"strona|strony|tom|karta|rozdział"]
  3078 + ns [base~"\."];
  3079 +Right: ns? [];
  3080 +Eval: word(Brev:pun:NOUN, 1.base);
  3081 +
  3082 +
  3083 +Rule "Brev: str. bez kropki"
  3084 +
  3085 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"strona"];
  3086 +Eval: word(Brev:pun:NOUN, 1.base);
  3087 +
  3088 +
  3089 +Rule "Brev: pok.|m."
  3090 +
  3091 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"pokój|mieszkanie"]
  3092 + ns [base~"\."];
  3093 +Right: [];
  3094 +Eval: word(Brev:pun:NOUN, 1.base);
  3095 +
  3096 +
  3097 +Rule "Brev: art. (1)"
  3098 +
  3099 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"artykuł"]
  3100 + ns [base~"\."];
  3101 +Right: [];
  3102 +Eval: word(Brev:pun:NOUN, 1.base);
  3103 +
  3104 +
  3105 +Rule "Brev: art. (2)"
  3106 +
  3107 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"artykuł"]
  3108 + ns [base~"\."];
  3109 +Right: ns [base~"[1-9][0-9]*"];
  3110 +Eval: word(Brev:pun:NOUN, 1.base);
  3111 +
  3112 +
  3113 +Rule "Brev: par."
  3114 +
  3115 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"paragraf"]
  3116 + ns [base~"\."];
  3117 +Right: [];
  3118 +Eval: word(Brev:pun:NOUN, 1.base);
  3119 +
  3120 +
  3121 +Rule "Brev: cyt."
  3122 +
  3123 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"cytat"]
  3124 + ns [base~"\."];
  3125 +Right: [];
  3126 +Eval: word(Brev:pun:NOUN, 1.base);
  3127 +
  3128 +
  3129 +Rule "Brev: ref. (1)"
  3130 +
  3131 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"refren"]
  3132 + ns [base~"\."];
  3133 +Right: [];
  3134 +Eval: word(Brev:pun:NOUN, 1.base);
  3135 +
  3136 +
  3137 +Rule "Brev: ref. (3)"
  3138 +
  3139 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"refren"]
  3140 + ns [base~"\."];
  3141 +Right: se;
  3142 +Eval: word(Brev-se:pun:NOUN, 1.base);
  3143 +
  3144 +
  3145 +Rule "Brev: rys.|tab."
  3146 +
  3147 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"rysunek|ilustracja|tabela"]
  3148 + ns [base~"\."];
  3149 +Right: [];
  3150 +Eval: word(Brev:pun:NOUN, 1.base);
  3151 +
  3152 +
  3153 +Rule "Brev: rys. (4)"
  3154 +
  3155 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"rysunek"]
  3156 + ns [base~"\."];
  3157 +Right: ns [pos~"adj|num"];
  3158 +Eval: word(Brev:pun:NOUN, 1.base);
  3159 +
  3160 +
  3161 +Rule "Brev: ryc. (1)"
  3162 +
  3163 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"rycina"]
  3164 + ns [base~"\."];
  3165 +Right: [];
  3166 +Eval: word(Brev:pun:NOUN, 1.base);
  3167 +
  3168 +
  3169 +Rule "Brev: ryc. (2)"
  3170 +
  3171 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"rycina"]
  3172 + ns [base~"\."];
  3173 +Right: ns [base~":"];
  3174 +Eval: word(Brev:pun:NOUN, 1.base);
  3175 +
  3176 +
  3177 +Rule "Brev: wkł. (2)"
  3178 +
  3179 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"wkładka"]
  3180 + ns [base~"\."];
  3181 +Right: ns [pos~"interp"];
  3182 +Eval: word(Brev:pun:NOUN, 1.base);
  3183 +
  3184 +
  3185 +Rule "Brev: temp."
  3186 +
  3187 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"temperatura"]
  3188 + ns [base~"\."];
  3189 +Right: [];
  3190 +Eval: word(Brev:pun:NOUN, 1.base);
  3191 +
  3192 +
  3193 +Rule "Brev: sygn.|zn."
  3194 +
  3195 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"sygnatura|znak"]
  3196 + ns [base~"\."];
  3197 +Right: [];
  3198 +Eval: word(Brev:pun:NOUN, 1.base);
  3199 +
  3200 +
  3201 +Rule "Brev: ms."
  3202 +
  3203 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"manuscriptum"]
  3204 + ns [base~"\."];
  3205 +Right: [];
  3206 +Eval: word(Brev:pun:NOUN, 1.base);
  3207 +
  3208 +
  3209 +Rule "Brev: reż.|przebud."
  3210 +
  3211 +Match: [pos~~"brev" && fullstoppedness~~"pun"
  3212 + && base~~"reżyseria|przebudowa|przyjazd"]
  3213 + ns [base~"\."];
  3214 +Right: [];
  3215 +Eval: word(Brev:pun:NOUN, 1.base);
  3216 +
  3217 +
  3218 +Rule "Brev: zm. (2)"
  3219 +
  3220 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"zmiana"]
  3221 + ns [base~"\."];
  3222 +Right: ns [pos~"interp"];
  3223 +Eval: word(Brev:pun:NOUN, 1.base);
  3224 +
  3225 +
  3226 +Rule "Brev: st."
  3227 +
  3228 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"stopień"]
  3229 + ns [base~"\."];
  3230 +Right: [];
  3231 +Eval: word(Brev:pun:NOUN, 1.base);
  3232 +
  3233 +
  3234 +Rule "Brev: stow.|tow."
  3235 +
  3236 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"stowarzyszenie|towarzystwo"]
  3237 + ns [base~"\."];
  3238 +Right: [];
  3239 +Eval: word(Brev:pun:NOUN, 1.base);
  3240 +
  3241 +
  3242 +Rule "Brev: al.|ul.|pl."
  3243 +
  3244 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"aleja|ulica|plac"]
  3245 + ns [base~"\."];
  3246 +Right: [];
  3247 +Eval: word(Brev:pun:NOUN, 1.base);
  3248 +
  3249 +
  3250 +Rule "Brev: ul.|pl. (4)"
  3251 +
  3252 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"ulica|plac"]
  3253 + ns [base~"\."];
  3254 +Right: ns [];
  3255 +Eval: word(Brev:pun:NOUN, 1.base);
  3256 +
  3257 +
  3258 +Rule "Brev: złożone strony świata (1)"
  3259 +
  3260 +Match: [pos~~"brev" && fullstoppedness~~"pun"
  3261 + && base~~"północny|południowy"] ns [base~"\."]
  3262 + ns? [pos~~"brev" && fullstoppedness~~"pun"
  3263 + && base~~"wschód|zachód"] ns [base~"\."];
  3264 +Right: [];
  3265 +Eval: word(Brev:pun:NG, 1.base " " 5.base);
  3266 +
  3267 +
  3268 +Rule "Brev: złożone strony świata (3)"
  3269 +
  3270 +Match: [pos~~"brev" && fullstoppedness~~"pun"
  3271 + && base~~"północny|południowy"] ns [base~"\."]
  3272 + ns? [pos~~"brev" && fullstoppedness~~"pun"
  3273 + && base~~"wschód|zachód"] ns [base~"\."];
  3274 +Right: se;
  3275 +Eval: word(Brev-se:pun:NG, 1.base " " 5.base);
  3276 +
  3277 +
  3278 +Rule "Brev: strony świata (1)"
  3279 +
  3280 +Match: [pos~~"brev" && fullstoppedness~~"pun"
  3281 + && base~~"wschód|zachód|północ|południe"]
  3282 + ns [base~"\."];
  3283 +Right: [];
  3284 +Eval: word(Brev:pun:NOUN, 1.base);
  3285 +
  3286 +
  3287 +Rule "Brev: strony świata (2)"
  3288 +
  3289 +Match: [pos~~"brev" && fullstoppedness~~"pun"
  3290 + && base~~"wschód|zachód|północ|południe"]
  3291 + ns [base~"\."];
  3292 +Right: ns [pos~"interp"];
  3293 +Eval: word(Brev:pun:NOUN, 1.base);
  3294 +
  3295 +
  3296 +Rule "Brev: strony świata (3)"
  3297 +
  3298 +Match: [pos~~"brev" && fullstoppedness~~"pun"
  3299 + && base~~"wschód|zachód|północ|południe"]
  3300 + ns [base~"\."];
  3301 +Right: se;
  3302 +Eval: word(Brev-se:pun:NOUN, 1.base);
  3303 +
  3304 +
  3305 +Rule "Brev: p. (1)"
  3306 +
  3307 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"piętro"]
  3308 + ns [base~"\."];
  3309 +Right: [];
  3310 +Eval: word(Brev:pun:NOUN, 1.base);
  3311 +
  3312 +
  3313 +Rule "Brev: p. (2)"
  3314 +
  3315 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"piętro"]
  3316 + ns [base~"\."];
  3317 +Right: ns [pos~"interp"];
  3318 +Eval: word(Brev:pun:NOUN, 1.base);
  3319 +
  3320 +
  3321 +Rule "Brev: j."
  3322 +
  3323 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"język"]
  3324 + ns [base~"\."];
  3325 +Right: [];
  3326 +Eval: word(Brev:pun:NOUN, 1.base);
  3327 +
  3328 +
  3329 +Rule "Brev: kop."
  3330 +
  3331 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"kopalnia"]
  3332 + ns [base~"\."];
  3333 +Right: [];
  3334 +Eval: word(Brev:pun:NOUN, 1.base);
  3335 +
  3336 +
  3337 +Rule "Brev: Oddz.|Konst.|Dep."
  3338 +
  3339 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"oddział|Konstytucja|departament"]
  3340 + ns [base~"\."];
  3341 +Right: [];
  3342 +Eval: word(Brev:pun:NOUN, 1.base);
  3343 +
  3344 +
  3345 +Rule "Brev: łac. (2)"
  3346 +
  3347 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"łacina"]
  3348 + ns [base~"\."];
  3349 +Right: ns [pos~"interp"];
  3350 +Eval: word(Brev:pun:NOUN, 1.base);
  3351 +
  3352 +
  3353 +Rule "Brev: śp."
  3354 +
  3355 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"świętej.pamięci"]
  3356 + ns [base~"\."];
  3357 +Right: [];
  3358 +Eval: word(Brev:pun:NG, 1.base);
  3359 +
  3360 +
  3361 +Rule "Brev: Sp."
  3362 +
  3363 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"spółka"]
  3364 + ns [base~"\."];
  3365 +Right: [];
  3366 +Eval: word(Brev:pun:NOUN, 1.base);
  3367 +
  3368 +
  3369 +Rule "Brev: o.o."
  3370 +
  3371 +Match: [pos~~"brev" && fullstoppedness~~"pun"
  3372 + && base~~"ograniczona odpowiedzialność"] ns [base~"\."];
  3373 +Right: [];
  3374 +Eval: word(Brev:pun:NG, 1.base);
  3375 +
  3376 +
  3377 +Rule "Brev: S.C."
  3378 +
  3379 +Match: [pos~~"brev" && fullstoppedness~~"pun"
  3380 + && base~~"spółka cywilna"] ns [base~"\."];
  3381 +Right: [];
  3382 +Eval: word(Brev:pun:NG, 1.base);
  3383 +
  3384 +
  3385 +Rule "Brev: Ś.P. (1)"
  3386 +
  3387 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"świętej"]
  3388 + ns [base~"\."] ns
  3389 + [pos~~"brev" && fullstoppedness~~"pun" && base~~"pamięci"]
  3390 + ns [base~"\."];
  3391 +Right: [];
  3392 +Eval: word(Brev:pun:NG, 1.base);
  3393 +
  3394 +
  3395 +Rule "Brev: Ś.P. (2)"
  3396 +
  3397 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"świętej"]
  3398 + ns [base~"\."] ns
  3399 + [pos~~"brev" && fullstoppedness~~"pun" && base~~"pamięci"]
  3400 + ns [base~"\."];
  3401 +Right: ns [pos~"interp"];
  3402 +Eval: word(Brev:pun:NG, 1.base);
  3403 +
  3404 +
  3405 +Rule "Brev: mkw. (1)"
  3406 +
  3407 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"metr.kwadratowy"]
  3408 + ns [base~"\."];
  3409 +Right: [];
  3410 +Eval: word(Brev:pun:NG, 1.base);
  3411 +
  3412 +
  3413 +Rule "Brev: mkw. (2)"
  3414 +
  3415 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"metr.kwadratowy"]
  3416 + ns [base~"\."];
  3417 +Right: ns [pos~"interp"];
  3418 +Eval: word(Brev:pun:NG, 1.base);
  3419 +
  3420 +
  3421 +Rule "Brev: m kw. (1)"
  3422 +
  3423 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"metr"]
  3424 + [pos~~"brev" && fullstoppedness~~"pun" && base~~"kwadratowy"]
  3425 + ns [base~"\."];
  3426 +Right: [];
  3427 +Eval: word(Brev:pun:NG, 1.base);
  3428 +
  3429 +
  3430 +Rule "Brev: m kw. (2)"
  3431 +
  3432 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"metr"]
  3433 + [pos~~"brev" && fullstoppedness~~"pun" && base~~"kwadratowy"]
  3434 + ns [base~"\."];
  3435 +Right: ns [pos~"interp"];
  3436 +Eval: word(Brev:pun:NG, 1.base);
  3437 +
  3438 +
  3439 +Rule "Brev: m kw. (3)"
  3440 +
  3441 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"metr"]
  3442 + [pos~~"brev" && fullstoppedness~~"pun" && base~~"kwadratowy"]
  3443 + ns [base~"\."];
  3444 +Right: se;
  3445 +Eval: word(Brev-se:pun:NG, 1.base);
  3446 +
  3447 +
  3448 +Rule "Brev: cdn./c.d.n. (3)"
  3449 +
  3450 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"ciąg.dalszy.nastąpi"]
  3451 + ns [base~"\."];
  3452 +Right: se;
  3453 +Eval: word(Brev-se:pun:DisG, 1.base);
  3454 +
  3455 +
  3456 +Rule "Brev: Cd. (1)"
  3457 +
  3458 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"ciąg.dalszy"]
  3459 + ns [base~"\."];
  3460 +Right: [];
  3461 +Eval: word(Brev:pun:NG, 1.base);
  3462 +#zmienić na DisG?
  3463 +
  3464 +
  3465 +Rule "Brev: cd. (2)"
  3466 +
  3467 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"ciąg.dalszy"]
  3468 + ns [base~"\."];
  3469 +Right: ns [pos~"interp"];
  3470 +Eval: word(Brev:pun:NG, 1.base);
  3471 +
  3472 +
  3473 +Rule "Brev: agd. (2)"
  3474 +
  3475 +Match: [pos~~"brev" && fullstoppedness~~"pun" &&
  3476 + base~~"artykuły gospodarstwa domowego"] ns [base~"\."];
  3477 +Right: ns [pos~"interp"];
  3478 +Eval: word(Brev:pun:NG, 1.base);
  3479 +#? dlaczego pun?
  3480 +
  3481 +Rule "Brev: e.w."
  3482 +
  3483 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"ekwiwalent wodny"]
  3484 + ns [base~"\."];
  3485 +Right: [];
  3486 +Eval: word(Brev:pun:NG, 1.base);
  3487 +
  3488 +
  3489 +Rule "Brev: A.D."
  3490 +
  3491 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"Anno.Domini"]
  3492 + ns [base~"\."];
  3493 +Right: [];
  3494 +Eval: word(Brev:pun:NG, 1.base);
  3495 +
  3496 +
  3497 +Rule "Brev: M.P."
  3498 +
  3499 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"military police"]
  3500 + ns [base~"\."];
  3501 +Right: [];
  3502 +Eval: word(Brev:pun:NG, 1.base);
  3503 +
  3504 +
  3505 +Rule "Brev: Ltd. (2)"
  3506 +
  3507 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"limited.company"]
  3508 + ns [base~"\."];
  3509 +Right: ns [pos~"interp"];
  3510 +Eval: word(Brev:pun:NG, 1.base);
  3511 +
  3512 +
  3513 +Rule "Brev: T.S.S."
  3514 +
  3515 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"Turbine"]
  3516 + ns [base~"\."] ns
  3517 + [pos~~"brev" && fullstoppedness~~"pun" && base~~"Steam"]
  3518 + ns [base~"\."] ns
  3519 + [pos~~"brev" && fullstoppedness~~"pun" && base~~"Ship"]
  3520 + ns [base~"\."];
  3521 +Right: [];
  3522 +Eval: word(Brev:pun:NG, "Turbine Steam Ship");
  3523 +
  3524 +
  3525 +Rule "Brev: S.T., N.T. (1)"
  3526 +
  3527 +Match: [pos~~"brev" && fullstoppedness~~"pun"
  3528 + && base~~"Stary Testament|Nowy Testament"]
  3529 + ns [base~"\."];
  3530 +Right: [];
  3531 +Eval: word(Brev:pun:NG, 1.base);
  3532 +
  3533 +
  3534 +Rule "Brev: S.T., N.T. (3)"
  3535 +
  3536 +Match: [pos~~"brev" && fullstoppedness~~"pun"
  3537 + && base~~"Stary Testament|Nowy Testament"]
  3538 + ns [base~"\."];
  3539 +Right: se;
  3540 +Eval: word(Brev-se:pun:NG, 1.base);
  3541 +
  3542 +
  3543 +Rule "Brev: Mk|Mt|Łk|J"
  3544 +
  3545 +Match: [pos~~"brev" && fullstoppedness~~"npun"
  3546 + && 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"];
  3547 +Eval: word(Brev:npun:NG, 1.base);
  3548 +
  3549 +
  3550 +Rule "Brev: Mk|Mt|Łk|J (wg św.)"
  3551 +
  3552 +Match: [pos~~"brev" && fullstoppedness~~"npun"
  3553 + && base~~"Ewangelia wg św. Marka|Ewangelia wg św. Mateusza|Ewangelia wg św. Łukasza|Ewangelia wg św. Jana"];
  3554 +Eval: word(Brev:npun:NG, 1.base);
  3555 +#jak powinno być: "według świętego" czy "wg św."?
  3556 +
  3557 +
  3558 +Rule "Brev: Kol|Kr|Dz"
  3559 +
  3560 +Match: [pos~~"brev" && fullstoppedness~~"npun"
  3561 + && base~~"List do Kolosan|List do Koryntian|Dzieje Apostolskie|List do Efezjan"];
  3562 +Eval: word(Brev:npun:NG, 1.base);
  3563 +#dopisać wszystkie listy
  3564 +
  3565 +
  3566 +Rule "Brev: Biblia - Księgi"
  3567 +
  3568 +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"];
  3569 +Eval: word(Brev:npun:NG, 1.base);
  3570 +#dopisać wszystkie księgi
  3571 +
  3572 +
  3573 +Rule "Brev: ĆD"
  3574 +
  3575 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"Ćwiczenia Duchowe"];
  3576 +Eval: word(Brev:npun:NG, 1.base);
  3577 +
  3578 +
  3579 +Rule "Brev: MB"
  3580 +
  3581 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"Matka Boska"];
  3582 +Eval: word(Brev:npun:NG, 1.base);
  3583 +
  3584 +
  3585 +Rule "Brev: Ś-W"
  3586 +
  3587 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"Ściana Wschodnia"];
  3588 +Right: [];
  3589 +Eval: word(Brev:npun:NG, 1.base);
  3590 +
  3591 +
  3592 +Rule "Brev: k."
  3593 +
  3594 +Left: [base~"żółty"] ns;
  3595 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"kartka"]
  3596 + ns [base~"\."];
  3597 +Right: ns [pos~"interp"];
  3598 +Eval: word(Brev:pun:NOUN, 3.base);#LD zmiana cyferki
  3599 +
  3600 +
  3601 +Rule "Brev: P. (Porrhomma)"
  3602 +
  3603 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"Porrhomma"]
  3604 + ns [base~"\."];
  3605 +Right: [base~"moravicum"];
  3606 +Eval: word(Brev:pun:XXX, 1.base);
  3607 +
  3608 +
  3609 +Rule "Brev: K.W."
  3610 +
  3611 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"Krzyż"]
  3612 + ns [base~"\."]
  3613 + [pos~~"brev" && fullstoppedness~~"pun" && base~~"Walecznych"]
  3614 + ns [base~"\."];
  3615 +Right: se;
  3616 +Eval: word(Brev-se:pun:NG, "Krzyż Walecznych");
  3617 +
  3618 +
  3619 +Rule "Brev: INF. WŁ."
  3620 +
  3621 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"informacja"]
  3622 + ns [base~"\."]
  3623 + [pos~~"brev" && fullstoppedness~~"pun" && base~~"własny|własna"]
  3624 + ns [base~"\."];
  3625 +Right: ns [pos~"interp"];
  3626 +Eval: word(Brev:pun:NG, "informacja własna");
  3627 +
  3628 +
  3629 +Rule "Brev: woj. (1)"
  3630 +
  3631 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"województwo"]
  3632 + ns [base~"\."];
  3633 +Right: [];
  3634 +Eval: word(Brev:pun:NOUN, 1.base);
  3635 +
  3636 +
  3637 +Rule "Brev: woj. (2)"
  3638 +
  3639 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"województwo"]
  3640 + ns [base~"\."];
  3641 +Right: ns [pos~"interp"];
  3642 +Eval: word(Brev:pun:NOUN, 1.base);
  3643 +
  3644 +
  3645 +Rule "Brev: woj. (2*)"
  3646 +
  3647 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"województwo|powiat"]
  3648 + ns [base~"\."];
  3649 +Right: ns [];
  3650 +Eval: word(Brev:pun:NOUN, 1.base);
  3651 +
  3652 +
  3653 +Rule "Brev: jez.|rz.|dol.|Przeł."
  3654 +
  3655 +Match: [pos~~"brev" && fullstoppedness~~"pun"
  3656 + && base~~"[Jj]ezioro|rzeka|dolina|[Pp]rzełęcz"]
  3657 + ns [base~"\."];
  3658 +Right: [];
  3659 +Eval: word(Brev:pun:NOUN, 1.base);
  3660 +
  3661 +
  3662 +Rule "Brev: rez."
  3663 +
  3664 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"rezerwat|rzeka"]
  3665 + ns [base~"\."];
  3666 +Right: [];
  3667 +Eval: word(Brev:pun:NOUN, 1.base);
  3668 +
  3669 +
  3670 +Rule "Brev: m.st."
  3671 +
  3672 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"miasto"]
  3673 + ns [base~"\."] ns
  3674 + [pos~~"brev" && fullstoppedness~~"pun" && base~~"stołeczny"]
  3675 + ns [base~"\."];
  3676 +Right: [];
  3677 +Eval: word(Brev:pun:NG, "miasto stołeczne");
  3678 +
  3679 +
  3680 +Rule "Brev: pow.|gm.|m.|os."
  3681 +
  3682 +Match: [pos~~"brev" && fullstoppedness~~"pun"
  3683 + && base~~"powiat|gmina|miasto|osiedle"]
  3684 + ns [base~"\."];
  3685 +Right: [];
  3686 +Eval: word(Brev:pun:NOUN, 1.base);
  3687 +
  3688 +
  3689 +Rule "Brev: m. (2)"
  3690 +
  3691 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"miasto"]
  3692 + ns [base~"\."];
  3693 +Right: ns [pos~"interp"];
  3694 +Eval: word(Brev:pun:NOUN, 1.base);
  3695 +
  3696 +
  3697 +Rule "Brev: m. (3)"
  3698 +
  3699 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"miasto"]
  3700 + ns [base~"\."];
  3701 +Right: se;
  3702 +Eval: word(Brev-se:pun:NOUN, 1.base);
  3703 +
  3704 +
  3705 +Rule "Brev: ok."
  3706 +
  3707 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"okolica"]
  3708 + ns [base~"\."];
  3709 +Right: [];
  3710 +Eval: word(Brev:pun:NOUN, 1.base);
  3711 +
  3712 +
  3713 +Rule "Brev: red.(1)"
  3714 +
  3715 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"redaktor|redakcja"]
  3716 + ns [base~"\."];
  3717 +Right: [];
  3718 +Eval: word(Brev:pun:NOUN, 1.base);
  3719 +
  3720 +
  3721 +Rule "Brev: red. (2)"
  3722 +
  3723 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"redaktor|redakcja"]
  3724 + ns [base~"\."];
  3725 +Right: ns [pos~"interp"];
  3726 +Eval: word(Brev:pun:NOUN, 1.base);
  3727 +
  3728 +Rule "Brev: prof.|doc."
  3729 +
  3730 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"profesor|docent"]
  3731 + ns [base~"\."];
  3732 +Right: [];
  3733 +Eval: word(Brev:pun:NOUN, 1.base);
  3734 +
  3735 +
  3736 +Rule "Brev: inż."
  3737 +
  3738 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"inżynier"]
  3739 + ns [base~"\."];
  3740 +Right: [];
  3741 +Eval: word(Brev:pun:NOUN, 1.base);
  3742 +
  3743 +
  3744 +Rule "Brev: arch."
  3745 +
  3746 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"architekt"]
  3747 + ns [base~"\."];
  3748 +Right: [];
  3749 +Eval: word(Brev:pun:NOUN, 1.base);
  3750 +
  3751 +
  3752 +Rule "Brev: dyr."
  3753 +
  3754 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"dyrektor|dyrekcja"]
  3755 + ns [base~"\."];
  3756 +Right: [];
  3757 +Eval: word(Brev:pun:NOUN, 1.base);
  3758 +
  3759 +
  3760 +Rule "Brev: min."
  3761 +
  3762 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"minister|ministerstwo"]
  3763 + ns [base~"\."];
  3764 +Right: [];
  3765 +Eval: word(Brev:pun:NOUN, 1.base);
  3766 +
  3767 +
  3768 +Rule "Brev: mec."
  3769 +
  3770 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"mecenas"]
  3771 + ns [base~"\."];
  3772 +Right: [];
  3773 +Eval: word(Brev:pun:NOUN, 1.base);
  3774 +
  3775 +
  3776 +Rule "Brev: zast."
  3777 +
  3778 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"zastępca"]
  3779 + ns [base~"\."];
  3780 +Right: [];
  3781 +Eval: word(Brev:pun:NOUN, 1.base);
  3782 +
  3783 +
  3784 +Rule "Brev: gen. gen."
  3785 +
  3786 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"generał"]
  3787 + ns [base~"\."]
  3788 + [pos~~"brev" && fullstoppedness~~"pun" && base~~"generał"]
  3789 + ns [base~"\."];
  3790 +Right: [];
  3791 +Eval: word(Brev:pun:NOUN, "generałowie");
  3792 +
  3793 +
  3794 +Rule "Brev: gen. bryg."
  3795 +
  3796 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"generał"]
  3797 + ns [base~"\."]
  3798 + [pos~~"brev" && fullstoppedness~~"pun" && base~~"brygada"]
  3799 + ns [base~"\."];
  3800 +Right: [];
  3801 +Eval: word(Brev:pun:NG, "generał brygady");
  3802 +
  3803 +
  3804 +Rule "Brev: gen. dyw."
  3805 +
  3806 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"generał"]
  3807 + ns [base~"\."]
  3808 + [pos~~"brev" && fullstoppedness~~"pun" && base~~"dywizja"]
  3809 + ns [base~"\."];
  3810 +Right: [];
  3811 +Eval: word(Brev:pun:NG, "generał dywizji");
  3812 +
  3813 +
  3814 +Rule "Brev: gen.|kpt.|por.|ppor."
  3815 +
  3816 +Match: [pos~~"brev" && fullstoppedness~~"pun"
  3817 + && base~~"generał|kapitan|porucznik|podporucznik"]
  3818 + ns [base~"\."];
  3819 +Right: [];
  3820 +Eval: word(Brev:pun:NOUN, 1.base);
  3821 +
  3822 +
  3823 +Rule "Brev: st. szer."
  3824 +
  3825 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"starszy"]
  3826 + ns [base~"\."]
  3827 + [pos~~"brev" && fullstoppedness~~"pun" && base~~"szeregowy"]
  3828 + ns [base~"\."];
  3829 +Right: [];
  3830 +Eval: word(Brev:pun:NG, "starszy szeregowy");
  3831 +
  3832 +
  3833 +Rule "Brev: st. post."
  3834 +
  3835 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"starszy"]
  3836 + ns [base~"\."]
  3837 + [pos~~"brev" && fullstoppedness~~"pun" && base~~"posterunkowy"]
  3838 + ns [base~"\."];
  3839 +Right: [];
  3840 +Eval: word(Brev:pun:NG, "starszy posterunkowy");
  3841 +
  3842 +
  3843 +Rule "Brev: st. asp."
  3844 +
  3845 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"starszy"]
  3846 + ns [base~"\."]
  3847 + [pos~~"brev" && fullstoppedness~~"pun" && base~~"aspirant"]
  3848 + ns [base~"\."];
  3849 +Right: [];
  3850 +Eval: word(Brev:pun:NG, "starszy aspirant");
  3851 +
  3852 +
  3853 +Rule "Noun: st. sierżant"
  3854 +
  3855 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"starszy"]
  3856 + ns [base~"\."]
  3857 + [pos~~"subst" && base~~"sierżant"];
  3858 +Eval: word(4, Noun, "starszy sierżant");
  3859 +##!! uznałam za Noun, bo centrum grupy nie jest skrótem
  3860 +
  3861 +
  3862 +Rule "Brev: mł. insp."
  3863 +
  3864 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"młodszy"]
  3865 + ns [base~"\."]
  3866 + [pos~~"brev" && fullstoppedness~~"pun" && base~~"inspektor"]
  3867 + ns [base~"\."];
  3868 +Right: [];
  3869 +Eval: word(Brev:pun:NG, "młodszy inspektor");
  3870 +
  3871 +
  3872 +Rule "Brev: młodszy insp."
  3873 +
  3874 +Match: [pos~~"adj" && orth~~"[Mm]łodszy"]
  3875 + [pos~~"brev" && fullstoppedness~~"pun" && base~~"inspektor"]
  3876 + ns [base~"\."];
  3877 +Right: [];
  3878 +Eval: word(Brev:pun:NG, "młodszy inspektor");
  3879 +
  3880 +
  3881 +Rule "Brev: insp."
  3882 +
  3883 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"inspektor"]
  3884 + ns [base~"\."];
  3885 +Right: [];
  3886 +Eval: word(Brev:pun:NG, 1.base);
  3887 +
  3888 +
  3889 +Rule "Brev: szer.|kom."
  3890 +
  3891 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"szeregowy|komendant"]
  3892 + ns [base~"\."];
  3893 +Right: [];
  3894 +Eval: word(Brev:pun:NOUN, 1.base);
  3895 +
  3896 +
  3897 +Rule "Brev: tow.|kol."
  3898 +
  3899 +Match: [pos~~"brev" && fullstoppedness~~"pun"
  3900 + && base~~"towarzysz|towarzyszka|kolega"]
  3901 + ns [base~"\."];
  3902 +Right: [];
  3903 +Eval: word(Brev:pun:NOUN, 1.base);
  3904 +
  3905 +
  3906 +Rule "Brev: hm.|dh."
  3907 +
  3908 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"harcmistrz|druh"]
  3909 + ns [base~"\."];
  3910 +Right: [];
  3911 +Eval: word(Brev:pun:NOUN, 1.base);
  3912 +
  3913 +
  3914 +Rule "Brev: p.|pp."
  3915 +
  3916 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"pan|pani|państwo|panowie"]
  3917 + ns [base~"\."];
  3918 +Right: [];
  3919 +Eval: word(Brev:pun:NOUN, 1.base);
  3920 +
  3921 +
  3922 +Rule "Brev: p. (2)"
  3923 +
  3924 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"pan|pani|państwo"]
  3925 + ns [base~"\."];
  3926 +Right: ns [];
  3927 +Eval: word(Brev:pun:NOUN, 1.base);
  3928 +
  3929 +
  3930 +Rule "Brev: ks.|o.|s."
  3931 +
  3932 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"ksiądz|ojciec|siostra"]
  3933 + ns [base~"\."];
  3934 +Right: [];
  3935 +Eval: word(Brev:pun:NOUN, 1.base);
  3936 +
  3937 +
  3938 +Rule "Brev: ss. (bez kropki)"
  3939 +
  3940 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"siostra"];
  3941 +Right: [];
  3942 +Eval: word(Brev:pun:NOUN, 1.base);
  3943 +
  3944 +
  3945 +Rule "Brev: ks.|hr."
  3946 +
  3947 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"książę|hrabia"]
  3948 + ns [base~"\."];
  3949 +Right: [];
  3950 +Eval: word(Brev:pun:NOUN, 1.base);
  3951 +
  3952 +
  3953 +Rule "Brev: OO."
  3954 +
  3955 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"ojcowie"]
  3956 + ns [base~"\."];
  3957 +Right: [];
  3958 +Eval: word(Brev:pun:NOUN, 1.base);
  3959 +
  3960 +
  3961 +Rule "Brev: ps."
  3962 +
  3963 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"pseudonim"]
  3964 + ns [base~"\."];
  3965 +Right: [];
  3966 +Eval: word(Brev:pun:NOUN, 1.base);
  3967 +
  3968 +
  3969 +Rule "Brev: pos."
  3970 +
  3971 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"poseł"]
  3972 + ns [base~"\."];
  3973 +Right: [];
  3974 +Eval: word(Brev:pun:NOUN, 1.base);
  3975 +
  3976 +
  3977 +Rule "Brev: kom.|nadkom.|podkom."
  3978 +
  3979 +Match: [pos~~"brev" && fullstoppedness~~"pun"
  3980 + && base~~"komisarz|nadkomisarz|podkomisarz"] ns [base~"\."];
  3981 +Right: [];
  3982 +Eval: word(Brev:pun:NOUN, 1.base);
  3983 +
  3984 +
  3985 +Rule "Brev: jr. (pun)"
  3986 +
  3987 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"junior"]
  3988 + ns [base~"\."];
  3989 +Right: [];
  3990 +Eval: word(Brev:pun:NOUN, 1.base);
  3991 +
  3992 +
  3993 +Rule "Brev: jr (npun)"
  3994 +
  3995 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"junior"];
  3996 +Eval: word(Brev:npun:NOUN, 1.base);
  3997 +
  3998 +
  3999 +Rule "Brev: dyw.|p."
  4000 +
  4001 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"dywizja|pułk"]
  4002 + ns [base~"\."];
  4003 +Right: [];
  4004 +Eval: word(Brev:pun:NOUN, 1.base);
  4005 +
  4006 +
  4007 +Rule "Brev: p. (2*)"
  4008 +
  4009 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"pułk"]
  4010 + ns [base~"\."];
  4011 +Right: ns;
  4012 +Eval: word(Brev:pun:NOUN, 1.base);
  4013 +
  4014 +
  4015 +Rule "Brev: uł. 3)"
  4016 +
  4017 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"ułan"]
  4018 + ns [base~"\."];
  4019 +Right: se;
  4020 +Eval: word(Brev-se:pun:NOUN, 1.base);
  4021 +
  4022 +
  4023 +Rule "Brev: kat. (3)"
  4024 +
  4025 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"kategoria"]
  4026 + ns [base~"\."];
  4027 +Right: se;
  4028 +Eval: word(Brev-se:pun:NOUN, 1.base);
  4029 +
  4030 +
  4031 +Rule "Brev: pow.|obw.|odl.|poj."
  4032 +
  4033 +Match: [pos~~"brev" && fullstoppedness~~"pun"
  4034 + && base~~"powierzchnia|obwód|odległość|pojemność"] ns [base~"\."];
  4035 +Right: [];
  4036 +Eval: word(Brev:pun:NOUN, 1.base);
  4037 +
  4038 +
  4039 +Rule "Brev: głęb.|dł.|szer.|wys."
  4040 +
  4041 +Match: [pos~~"brev" && fullstoppedness~~"pun"
  4042 + && base~~"głębokość|długość|szerokość|wysokość"]
  4043 + ns [base~"\."];
  4044 +Right: ns? [];
  4045 +Eval: word(Brev:pun:NOUN, 1.base);
  4046 +
  4047 +
  4048 +Rule "Brev: k.p.c. (1)"
  4049 +
  4050 +Match: [pos~~"brev" && fullstoppedness~~"pun"
  4051 + && base~~"kodeks postępowania cywilnego"] ns [base~"\."];
  4052 +Right: [];
  4053 +Eval: word(Brev:pun:NG, 1.base);
  4054 +
  4055 +
  4056 +Rule "Brev: k.p.c. (2)"
  4057 +
  4058 +Match: [pos~~"brev" && fullstoppedness~~"pun"
  4059 + && base~~"kodeks postępowania cywilnego"] ns [base~"\."];
  4060 +Right: ns [pos~"interp"];
  4061 +Eval: word(Brev:pun:NG, 1.base);
  4062 +
  4063 +
  4064 +Rule "Brev: k.w. (2)"
  4065 +
  4066 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"kodeks wykroczeń"]
  4067 + ns [base~"\."];
  4068 +Right: ns [pos~"interp"];
  4069 +Eval: word(Brev:pun:NG, 1.base);
  4070 +
  4071 +
  4072 +Rule "Brev: odp. (1)"
  4073 +
  4074 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"odpowiedzialność"]
  4075 + ns [base~"\."];
  4076 +Right: [];
  4077 +Eval: word(Brev:pun:NOUN, 1.base);
  4078 +
  4079 +
  4080 +Rule "Brev: k.k."
  4081 +
  4082 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"kodeks"]
  4083 + ns [base~"\."] ns
  4084 + [pos~~"brev" && fullstoppedness~~"pun" && base~~"karny"]
  4085 + ns [base~"\."];
  4086 +Right: [];
  4087 +Eval: word(Brev:pun:NG, "kodeks karny");
  4088 +#?czy na etapie segmentacji to nie powinien być jeden brev?
  4089 +
  4090 +
  4091 +Rule "Brev: k.p."
  4092 +
  4093 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"kodeks"]
  4094 + ns [base~"\."]
  4095 + [pos~~"brev" && fullstoppedness~~"pun" && base~~"praca"]
  4096 + ns [base~"\."];
  4097 +Right: [];
  4098 +Eval: word(Brev:pun:NG, "kodeks pracy");
  4099 +#?czy na etapie segmentacji to nie powinien być jeden brev?
  4100 +
  4101 +
  4102 +Rule "Brev: Zw. Zaw."
  4103 +
  4104 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"związek"]
  4105 + ns [base~"\."]
  4106 + [pos~~"brev" && fullstoppedness~~"pun" && base~~"zawodowy"]
  4107 + ns [base~"\."];
  4108 +Right: [];
  4109 +Eval: word(Brev:pun:NG, "związek zawodowy");
  4110 +
  4111 +
  4112 +Rule "Brev: pap."
  4113 +
  4114 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"papier"]
  4115 + ns [base~"\."];
  4116 +Right: [];
  4117 +Eval: word(Brev:pun:NOUN, 1.base);
  4118 +
  4119 +
  4120 +Rule "Brev: wielka litera z kropką przed skrótem"
  4121 +
  4122 +Match: [pos~~"brev" && fullstoppedness~~"pun"
  4123 + && base~~"[A-ZŁŚŻĆŹ]"] ns [base~"\."];
  4124 +Right: ns [pos~"brev"];
  4125 +Eval: word(Brev:pun:NOUN, 1.base);
  4126 +
  4127 +Rule "Brev: wielka litera z kropką + segment"
  4128 +
  4129 +Match: [pos~~"brev" && fullstoppedness~~"pun"
  4130 + && 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~"\."];
  4131 +Right: [];
  4132 +Eval: word(Brev:pun:NOUN, 1.base);
  4133 +
  4134 +Rule "Brev: litera Br."
  4135 +
  4136 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"Br"] ns [base~"\."];
  4137 +Right: [];
  4138 +Eval: word(Brev:pun:NOUN, 1.base);
  4139 +
  4140 +Rule "Brev: litera Ch. (1)"
  4141 +
  4142 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"Ch"] ns [base~"\."];
  4143 +Right: [];
  4144 +Eval: word(Brev:pun:NOUN, 1.base);
  4145 +
  4146 +Rule "Brev: litera Ch. (3)"
  4147 +
  4148 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"Ch"] ns [base~"\."];
  4149 +Right: se;
  4150 +Eval: word(Brev-se:pun:NOUN, 1.base);
  4151 +
  4152 +Rule "Brev: litera Cz. (2)"
  4153 +
  4154 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"Cz"] ns [base~"\."];
  4155 +Right: ns [pos~"interp"];
  4156 +Eval: word(Brev:pun:NOUN, 1.base);
  4157 +
  4158 +Rule "Brev: litera Cz. (3)"
  4159 +
  4160 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"Cz"] ns [base~"\."];
  4161 +Right: se;
  4162 +Eval: word(Brev-se:pun:NOUN, 1.base);
  4163 +
  4164 +Rule "Brev: litera St. (1)"
  4165 +
  4166 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"St"] ns [base~"\."];
  4167 +Right: [];
  4168 +Eval: word(Brev:pun:NOUN, 1.base);
  4169 +
  4170 +Rule "Brev: litera St. (1a)"
  4171 +
  4172 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"Stanisław"] ns [base~"\."];
  4173 +Right: [];
  4174 +Eval: word(Brev:pun:NOUN, 1.base);
  4175 +
  4176 +Rule "Brev: litera Sz. (1)"
  4177 +
  4178 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"Sz"] ns [base~"\."];
  4179 +Right: [];
  4180 +Eval: word(Brev:pun:NOUN, 1.base);
  4181 +
  4182 +Rule "Brev: litera Sz. (2a)"
  4183 +
  4184 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"Sz"] ns [base~"\."];
  4185 +Right: ns [pos~"brev"];
  4186 +Eval: word(Brev:pun:NOUN, 1.base);
  4187 +
  4188 +Rule "Brev: litera Sz. (3)"
  4189 +
  4190 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"Sz"] ns [base~"\."];
  4191 +Right: se;
  4192 +Eval: word(Brev-se:pun:NOUN, 1.base);
  4193 +
  4194 +
  4195 +Rule "Brev: litera Th."
  4196 +
  4197 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"Th"] ns [base~"\."];
  4198 +Right: [];
  4199 +Eval: word(Brev:pun:NOUN, 1.base);
  4200 +
  4201 +Rule "Brev: litera Wł. (1)"
  4202 +
  4203 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"Wł"] ns [base~"\."];
  4204 +Right: [];
  4205 +Eval: word(Brev:pun:NOUN, 1.base);
  4206 +
  4207 +Rule "Brev: wielka litera z kropką + znak interpunkcyjny"
  4208 +
  4209 +Match: [pos~~"brev" && fullstoppedness~~"pun"
  4210 + && 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~"\."];
  4211 +Right: ns [pos~"interp"];
  4212 +Eval: word(Brev:pun:NOUN, 1.base);
  4213 +
  4214 +Rule "Brev: litera Ch. (2)"
  4215 +
  4216 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"Ch"] ns [base~"\."];
  4217 +Right: ns [pos~"interp"];
  4218 +Eval: word(Brev:pun:NOUN, 1.base);
  4219 +
  4220 +Rule "Brev: litera Sz. (2)"
  4221 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"Sz"] ns [base~"\."];
  4222 +Right: ns [pos~"interp"];
  4223 +Eval: word(Brev:pun:NOUN, 1.base);
  4224 +
  4225 +Rule "Brev: wielka litera (base z kropką) (2)"
  4226 +
  4227 +Match: [pos~~"brev" && fullstoppedness~~"pun"
  4228 + && 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~"\."];
  4229 +Right: ns [];
  4230 +Eval: word(Brev:pun:NOUN, 1.base);
  4231 +
  4232 +Rule "Brev: wielka litera (base z kropką) (1)"
  4233 +
  4234 +Match: [pos~~"brev" && fullstoppedness~~"pun"
  4235 + && 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~"\."];
  4236 +Right: [];
  4237 +Eval: word(Brev:pun:NOUN, 1.base);
  4238 +
  4239 +Rule "Brev: wielka litera z kropką na końcu zdania"
  4240 +
  4241 +Match: [pos~~"brev" && fullstoppedness~~"pun"
  4242 + && 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~"\."];
  4243 +Right: se;
  4244 +Eval: word(Brev-se:pun:NOUN, 1.base);
  4245 +
  4246 +Rule "Brev: wielka litera bez kropki"
  4247 +
  4248 +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"];
  4249 +Eval: word(Brev:npun:NOUN, 1.base);
  4250 +
  4251 +
  4252 +Rule "Brev: wielka litera i dwukropek"
  4253 +
  4254 +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"];
  4255 +Right: ns [base~":"];
  4256 +Eval: word(Brev:pun:NOUN, 1.base);
  4257 +
  4258 +
  4259 +Rule "Brev: wielka litera z kropką"
  4260 +
  4261 +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~"\."];
  4262 +Right: (ns | []);
  4263 +Eval: word(Brev:pun:NOUN, 1.base);
  4264 +
  4265 +
  4266 +Rule "Brev: duże litery:"
  4267 +
  4268 +Match: [pos~~"brev" && fullstoppedness~~"pun|npun" && base~~"[A-ZŁŚŻ][A-ZŁŚŻ]+"];
  4269 +Right: ns [base~":"];
  4270 +Eval: word(Brev:pun:NOUN, 1.base);
  4271 +
  4272 +
  4273 +Rule "Brev: duże litery :"
  4274 +
  4275 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"[A-ZŁŚŻ][A-ZŁŚŻ][a-z]?"];
  4276 +Right: [base~":"];
  4277 +Eval: word(Brev:npun:NOUN, 1.base);
  4278 +
  4279 +
  4280 +Rule "Brev: duże litery na końcu zdania"
  4281 +
  4282 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"[A-ZŁŚŻ][A-ZŁŚŻ]"];
  4283 +Right: se;
  4284 +Eval: word(Brev:npun:NOUN, 1.base);
  4285 +
  4286 +
  4287 +Rule "Brev: mała litera z kropką jako inicjał"
  4288 +
  4289 +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~"\."];
  4290 +Right: (ns | []);
  4291 +Eval: word(Brev:pun:NOUN, 1.base);
  4292 +
  4293 +
  4294 +Rule "Brev: mała litera z kropką jako inicjał"
  4295 +
  4296 +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~"\."];
  4297 +Right: se;
  4298 +Eval: word(Brev-se:pun:NOUN, 1.base);
  4299 +
  4300 +
  4301 +Rule "Brev: skrócone imię (1)"
  4302 +
  4303 +Match: [pos~~"brev" && fullstoppedness~~"pun"
  4304 + && base~~"Andrzej|Zenon|Małgorzata|Tadeusz|Grażyna|Krystyna"]
  4305 + ns [base~"\."];
  4306 +Right: [];
  4307 +Eval: word(Brev:pun:NOUN, 1.base);
  4308 +
  4309 +
  4310 +Rule "Brev: skrócone imię (2)"
  4311 +
  4312 +Match: [pos~~"brev" && fullstoppedness~~"pun"
  4313 + && base~~"Andrzej|Zenon|Małgorzata|Tadeusz|Grażyna|Krystyna"]
  4314 + ns [base~"\."];
  4315 +Right: ns [pos~"interp"];
  4316 +Eval: word(Brev:pun:NOUN, 1.base);
  4317 +
  4318 +
  4319 +Rule "Brev: S.=sen? (1)"
  4320 +
  4321 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"sen"]
  4322 + ns [base~"\."];
  4323 +Right: [];
  4324 +Eval: word(Brev:pun:NOUN, 1.base);
  4325 +
  4326 +
  4327 +Rule "Brev: S.=sen? (3)"
  4328 +
  4329 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"sen"]
  4330 + ns [base~"\."];
  4331 +Right: se;
  4332 +Eval: word(Brev-se:pun:NOUN, 1.base);
  4333 +
  4334 +
  4335 +Rule "Brev: Wlkp|Op.|GD. (1)"
  4336 +
  4337 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"Wielkopolski|Gdański"]
  4338 + ns [base~"\."];
  4339 +Right: [];
  4340 +Eval: word(Brev:pun:ADJ, 1.base);
  4341 +
  4342 +
  4343 +Rule "Brev: Wlkp (2)"
  4344 +
  4345 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"Wielkopolski|Gdański"]
  4346 + ns [base~"\."];
  4347 +Right: ns [pos~"interp"];
  4348 +Eval: word(Brev:pun:ADJ, 1.base);
  4349 +
  4350 +
  4351 +Rule "Brev: Wlkp|Op.|GD. (3)"
  4352 +
  4353 +Match: [pos~~"brev" && fullstoppedness~~"pun"
  4354 + && base~~"Wielkopolski|Opolskie|Gdański"]
  4355 + ns [base~"\."];
  4356 +Right: se;
  4357 +Eval: word(Brev-se:pun:ADJ, 1.base);
  4358 +#!czy nie powinno być Opolski? (NKJP_1M_1305000001942)
  4359 +
  4360 +
  4361 +Rule "Brev: Płd (1)"
  4362 +
  4363 +Match: [pos~~"brev" && fullstoppedness~~"pun"
  4364 + && base~~"południowy|północny|wschodni|zachodni"]
  4365 + ns [base~"\."];
  4366 +Right: [];
  4367 +Eval: word(Brev:pun:ADJ, 1.base);
  4368 +
  4369 +
  4370 +Rule "Brev: Płd (2)"
  4371 +
  4372 +Match: [pos~~"brev" && fullstoppedness~~"pun"
  4373 + && base~~"południowy|północny|wschodni|zachodni"]
  4374 + ns [base~"\."];
  4375 +Right: ns [pos~"interp"];
  4376 +Eval: word(Brev:pun:ADJ, 1.base);
  4377 +
  4378 +
  4379 +Rule "Brev: Płd (2*)"
  4380 +
  4381 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"północny"]
  4382 + ns [base~"\."];
  4383 +Right: ns;
  4384 +Eval: word(Brev:pun:ADJ, 1.base);
  4385 +#reguła do usunięcia
  4386 +
  4387 +Rule "Brev: Płd (3)"
  4388 +
  4389 +Match: [pos~~"brev" && fullstoppedness~~"pun"
  4390 + && base~~"południowy|północny|wschodni|zachodni"]
  4391 + ns [base~"\."];
  4392 +Right: se;
  4393 +Eval: word(Brev-se:pun:ADJ, 1.base);
  4394 +
  4395 +
  4396 +Rule "Brev: W. (adj)"
  4397 +
  4398 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"wielki|Wielki"]
  4399 + ns [base~"\."];
  4400 +Right: [];
  4401 +Eval: word(Brev:pun:ADJ, 1.base);
  4402 +
  4403 +
  4404 +Rule "Brev: św. św."
  4405 +
  4406 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"święty"]
  4407 + ns [base~"\."]
  4408 + [pos~~"brev" && fullstoppedness~~"pun" && base~~"święty"]
  4409 + ns [base~"\."];
  4410 +Right: [];
  4411 +Eval: word(Brev:pun:ADJ, "święci");
  4412 +
  4413 +
  4414 +Rule "Brev: św.|St.|Najśw. (1)"
  4415 +
  4416 +Match: [pos~~"brev" && fullstoppedness~~"pun"
  4417 + && base~~"święty|saint|najświętszy"]
  4418 + ns [base~"\."];
  4419 +Right: [];
  4420 +Eval: word(Brev:pun:ADJ, 1.base);
  4421 +
  4422 +
  4423 +Rule "Brev: St"
  4424 +
  4425 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"Saint"];
  4426 +Eval: word(Brev:npun:ADJ, 1.base);
  4427 +
  4428 +
  4429 +Rule "Brev: św. (2)"
  4430 +
  4431 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"święty"]
  4432 + ns [base~"\."];
  4433 +Right: ns [pos~"interp"];
  4434 +Eval: word(Brev:pun:ADJ, 1.base);
  4435 +
  4436 +
  4437 +Rule "Brev: św. (3)"
  4438 +
  4439 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"święty"]
  4440 + ns [base~"\."];
  4441 +Right: se;
  4442 +Eval: word(Brev-se:pun:ADJ, 1.base);
  4443 +
  4444 +
  4445 +Rule "Brev: paraf.|gm. (1)"
  4446 +
  4447 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"parafialny|gminny"]
  4448 + ns [base~"\."];
  4449 +Right: [];
  4450 +Eval: word(Brev:pun:ADJ, 1.base);
  4451 +
  4452 +
  4453 +Rule "Brev: paraf. (2)"
  4454 +
  4455 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"parafialny"]
  4456 + ns [base~"\."];
  4457 +Right: ns [pos~"interp"];
  4458 +Eval: word(Brev:pun:ADJ, 1.base);
  4459 +
  4460 +Rule "Brev: m.in. (!)" ##czy to nie jest byk?
  4461 +
  4462 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"między"]
  4463 + ns [base~"\."] ns?
  4464 + [pos~~"brev" && fullstoppedness~~"pun" && base~~"inny|innymi"]
  4465 + ns [base~"\."];
  4466 +Right: [];
  4467 +Eval: word(Brev:pun:DisG, "między innymi");
  4468 +
  4469 +
  4470 +Rule "Brev: m.in. (1)"
  4471 +
  4472 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"między.innymi"]
  4473 + ns [base~"\."];
  4474 +Right: [];
  4475 +Eval: word(Brev:pun:DisG, 1.base);
  4476 +
  4477 +
  4478 +Rule "Brev: m.in. (2)"
  4479 +
  4480 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"między.innymi"]
  4481 + ns [base~"\."];
  4482 +Right: ns [pos~"interp"];
  4483 +Eval: word(Brev:pun:DisG, 1.base);
  4484 +
  4485 +
  4486 +Rule "DisG: między innymi"
  4487 +
  4488 +Match: [base~"między.innymi"];
  4489 +Eval: group(DisG, 1,1);
  4490 +
  4491 +
  4492 +Rule "Brev: in.(1)"
  4493 +
  4494 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"inny"]
  4495 + ns [base~"\."];
  4496 +Right: [];
  4497 +Eval: word(Brev:pun:ADJ, 1.base);
  4498 +
  4499 +
  4500 +Rule "Brev: in.(2)"
  4501 +
  4502 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"inny"]
  4503 + ns [base~"\."];
  4504 +Right: ns [pos~"interp"];
  4505 +Eval: word(Brev:pun:ADJ, 1.base);
  4506 +
  4507 +
  4508 +Rule "Brev: in.(3)"
  4509 +
  4510 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"inny"]
  4511 + ns [base~"\."];
  4512 +Right: se;
  4513 +Eval: word(Brev-se:pun:ADJ, 1.base);
  4514 +
  4515 +
  4516 +Rule "Brev: b.|d.|st.|późn.|zm.|zam.|śr.|dysk.|pojed."
  4517 +
  4518 +Match: [pos~~"brev" && fullstoppedness~~"pun"
  4519 + && base~~"były|dawny|stary|późniejszy|zmarły|zamieszkały|średni|dyskusyjny|pojedynczy"]
  4520 + ns [base~"\."];
  4521 +Right: [];
  4522 +Eval: word(Brev:pun:ADJ, 1.base);
  4523 +
  4524 +
  4525 +Rule "Brev: b.|d.|st.|późn.|zm.|zam.|śr.|dysk.|pojed. (2)"
  4526 +
  4527 +Match: [pos~~"brev" && fullstoppedness~~"pun"
  4528 + && base~~"były|dawny|stary|późniejszy|zmarły|zamieszkały|średni|dyskusyjny|pojedynczy"]
  4529 + ns [base~"\."];
  4530 +Right: ns [pos~"interp"];
  4531 +Eval: word(Brev:pun:ADJ, 1.base);
  4532 +
  4533 +
  4534 +Rule "Brev: d. ns k.p.c."
  4535 +
  4536 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"dawny"]
  4537 + ns [base~"\."];
  4538 +Right: ns [pos~"brev"];
  4539 +Eval: word(Brev:pun:ADJ, 1.base);
  4540 +#reguła szczegółowa
  4541 +
  4542 +
  4543 +Rule "Brev: kw"
  4544 +
  4545 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"kwadratowy"]
  4546 + ns [base~"\."];
  4547 +Right: [];
  4548 +Eval: word(Brev:pun:ADJ, 1.base);
  4549 +
  4550 +
  4551 +Rule "Brev: ang. (1)"
  4552 +
  4553 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"angielski"]
  4554 + ns [base~"\."];
  4555 +Right: [];
  4556 +Eval: word(Brev:pun:ADJ, 1.base);
  4557 +
  4558 +
  4559 +Rule "Brev: ang. (2)"
  4560 +
  4561 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"angielski"]
  4562 + ns [base~"\."];
  4563 +Right: ns [pos~"interp"];
  4564 +Eval: word(Brev:pun:ADJ, 1.base);
  4565 +
  4566 +
  4567 +Rule "Brev: łac.|wł.|pol."
  4568 +
  4569 +Match: [pos~~"brev" && fullstoppedness~~"pun"
  4570 + && base~~"łaciński|włoski|polski"]
  4571 + ns [base~"\."];
  4572 +Right: [];
  4573 +Eval: word(Brev:pun:ADJ, 1.base);
  4574 +
  4575 +
  4576 +Rule "Brev: min.|maks."
  4577 +
  4578 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"minimalny|maksymalny"]
  4579 + ns [base~"\."];
  4580 +Right: [];
  4581 +Eval: word(Brev:pun:ADJ, 1.base);
  4582 +
  4583 +
  4584 +Rule "Brev: geogr."
  4585 +
  4586 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"geograficzny"]
  4587 + ns [base~"\."];
  4588 +Right: [];
  4589 +Eval: word(Brev:pun:ADJ, 1.base);
  4590 +
  4591 +
  4592 +Rule "Brev: kolej."
  4593 +
  4594 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"kolejowy"]
  4595 + ns [base~"\."];
  4596 +Right: [];
  4597 +Eval: word(Brev:pun:ADJ, 1.base);
  4598 +
  4599 +
  4600 +Rule "Brev: ppanc."
  4601 +
  4602 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"przeciwpancerny"]
  4603 + ns [base~"\."];
  4604 +Right: [];
  4605 +Eval: word(Brev:pun:ADJ, 1.base);
  4606 +
  4607 +
  4608 +Rule "Brev: ppanc. (3)"
  4609 +
  4610 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"przeciwpancerny"]
  4611 + ns [base~"\."];
  4612 +Right: se;
  4613 +Eval: word(Brev-se:pun:ADJ, 1.base);
  4614 +
  4615 +
  4616 +Rule "Brev: ppanc (bez kropki)"
  4617 +
  4618 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"przeciwpancerny"];
  4619 +Eval: word(Brev:pun:ADJ, 1.base);
  4620 +
  4621 +
  4622 +Rule "Brev: (50-)proc."
  4623 +
  4624 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"[1-9][0-9]*-procentowy|procentowy"]
  4625 + ns [base~"\."];
  4626 +Right: [];
  4627 +Eval: word(Brev:pun:ADJ, 1.base);
  4628 +#rozszerzyć regułę
  4629 +
  4630 +
  4631 +Rule "Brev: n-tys."
  4632 +
  4633 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"[1-9][0-9]*-tysięczny"]
  4634 + ns [base~"\."];
  4635 +Right: [];
  4636 +Eval: word(Brev:pun:ADJ, 1.base);
  4637 +
  4638 +Rule "Brev: c.k."
  4639 +
  4640 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"cesarsko-królewski"]
  4641 + ns [base~"\."];
  4642 +Right: [];
  4643 +Eval: word(Brev:pun:ADJ, 1.base);
  4644 +
  4645 +
  4646 +Rule "Brev: ż."
  4647 +
  4648 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"żółty"]
  4649 + ns [base~"\."];
  4650 +Right: ns [base~"kartka"];
  4651 +Eval: word(Brev:pun:ADJ, 1.base);
  4652 +
  4653 +
  4654 +Rule "Brev: m sześć. (osobno) (2)"
  4655 +
  4656 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"metr"]
  4657 + [pos~~"brev" && fullstoppedness~~"pun" && base~~"sześcienny"]
  4658 + ns [base~"\."];
  4659 +Right: ns [pos~"interp"];
  4660 +Eval: word(Brev:pun:NG, "metr sześcienny");
  4661 +
  4662 +
  4663 +Rule "Brev: sześć. (1)"
  4664 +
  4665 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"sześcienny"]
  4666 + ns [base~"\."];
  4667 +Right: [];
  4668 +Eval: word(Brev:pun:ADJ, 1.base);
  4669 +
  4670 +
  4671 +Rule "Brev: sześć. (2)"
  4672 +
  4673 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"sześcienny"]
  4674 + ns [base~"\."];
  4675 +Right: ns [pos~"interp"];
  4676 +Eval: word(Brev:pun:ADJ, 1.base);
  4677 +
  4678 +
  4679 +Rule "Brev: sześć. (3)"
  4680 +
  4681 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"sześcienny"]
  4682 + ns [base~"\."];
  4683 +Right: se;
  4684 +Eval: word(Brev-se:pun:ADJ, 1.base);
  4685 +
  4686 +
  4687 +Rule "Brev: ur.|zbud.|odbud.|rozbud.|przebud.|założ.|położ. (1)"
  4688 +
  4689 +Match: [pos~~"brev" && fullstoppedness~~"pun"
  4690 + && base~~"urodzony|zbudowany|odbudowany|rozbudowany|przebudowany|założony|położony"] ns [base~"\."];
  4691 +Right: [];
  4692 +Eval: word(Brev:pun:PPAS, 1.base);
  4693 +
  4694 +
  4695 +Rule "Brev: ur.|zbud.|odbud.|rozbud.|przebud.|założ.|położ. (2)"
  4696 +
  4697 +Match: [pos~~"brev" && fullstoppedness~~"pun"
  4698 + && base~~"urodzony|zbudowany|odbudowany|rozbudowany|przebudowany|założony|położony"] ns [base~"\."];
  4699 +Right: ns [pos~"interp"];
  4700 +Eval: word(Brev:pun:PPAS, 1.base);
  4701 +
  4702 +
  4703 +Rule "Brev: ur.|zbud.|odbud.|rozbud.|przebud.|założ.|położ. (3)"
  4704 +
  4705 +Match: [pos~~"brev" && fullstoppedness~~"pun"
  4706 + && base~~"urodzony|zbudowany|odbudowany|rozbudowany|przebudowany|założony|położony"] ns [base~"\."];
  4707 +Right: se;
  4708 +Eval: word(Brev-se:pun:PPAS, 1.base);
  4709 +
  4710 +
  4711 +Rule "Brev: dot."
  4712 +
  4713 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"dotyczący"]
  4714 + ns [base~"\."];
  4715 +Right: [];
  4716 +Eval: word(Brev:pun:PACT, 1.base);
  4717 +
  4718 +
  4719 +Rule "Brev: w.w."
  4720 +
  4721 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"wyżej wymieniony"]
  4722 + ns [base~"\."];
  4723 +Right: [];
  4724 +Eval: word(Brev:pun:AdjG, 1.base);
  4725 +
  4726 +
  4727 +Rule "Brev: ww (bez kropki)"
  4728 +
  4729 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"wyżej wymieniony"];
  4730 +Right: [];
  4731 +Eval: word(Brev:pun:AdjG, 1.base);
  4732 +
  4733 +
  4734 +Rule "Brev: w/w (npun)"
  4735 +
  4736 +Match: [pos~~"brev" && fullstoppedness~~"npun"
  4737 + && orth~"w/w" && base~~"wyżej wymieniony"];
  4738 +Right: [];
  4739 +Eval: word(Brev:npun:AdjG, 1.base);
  4740 +
  4741 +
  4742 +Rule "Brev: b.|ew."
  4743 +
  4744 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"bardzo|ewentualnie"]
  4745 + ns [base~"\."];
  4746 +Right: [];
  4747 +Eval: word(Brev:pun:ADV, 1.base);
  4748 +
  4749 +
  4750 +Rule "Brev: jw (bez kropki)"
  4751 +
  4752 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"jak.wyżej"];
  4753 +Right: [];
  4754 +Eval: word(Brev:pun:ADV, 1.base);
  4755 +#nie wiem, jaką część mowy dać (na razie ADV)
  4756 +
  4757 +
  4758 +Rule "Brev: ok."
  4759 +
  4760 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"około"]
  4761 + ns [base~"\."];
  4762 +Right: ns? [];
  4763 +Eval: word(Brev:pun:QUB, 1.base);
  4764 +##Ale może być prep!
  4765 +
  4766 +
  4767 +Rule "Brev: np. (1)"
  4768 +
  4769 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"na.przykład"]
  4770 + ns [base~"\."];
  4771 +Right: [];
  4772 +Eval: word(Brev:pun:QUB, 1.base);
  4773 +
  4774 +
  4775 +Rule "Brev: np. (2)"
  4776 +
  4777 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"na.przykład"]
  4778 + ns [base~"\."];
  4779 +Right: ns [pos~"interp"];
  4780 +Eval: word(Brev:pun:QUB, 1.base);
  4781 +
  4782 +
  4783 +Rule "Brev: np. (2*)"
  4784 +
  4785 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"na.przykład"]
  4786 + ns [base~"\."];
  4787 +Right: ns;
  4788 +Eval: word(Brev:pun:QUB, 1.base);
  4789 +##reguła do usunięcia
  4790 +
  4791 +Rule "Brev: np: (bez kropki)"
  4792 +
  4793 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"na.przykład"];
  4794 +Right: ns [base~":"];
  4795 +Eval: word(Brev:pun:QUB, 1.base);
  4796 +
  4797 +
  4798 +Rule "Brev: np (bez kropki)"
  4799 +
  4800 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"na.przykład"];
  4801 +Right: [];
  4802 +Eval: word(Brev:pun:QUB, 1.base);
  4803 +
  4804 +
  4805 +Rule "Brev: nb."
  4806 +
  4807 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"nota.bene"]
  4808 + ns [base~"\."];
  4809 +Right: [];
  4810 +Eval: word(Brev:pun:QUB, 1.base);
  4811 +##!!! spr. czy to Qub
  4812 +
  4813 +
  4814 +Rule "Brev: k."
  4815 +
  4816 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"koło"]
  4817 + ns [base~"\."];
  4818 +Right: [pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact"
  4819 + && case~~"gen"];
  4820 +Eval: word(Brev:pun:PREP, 1.base);
  4821 +
  4822 +
  4823 +Rule "Brev: m."
  4824 +
  4825 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"między"]
  4826 + ns [base~"\."];
  4827 +Right: [pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact"
  4828 + && case~~"inst"];
  4829 +Eval: word(Brev:pun:PREP, 1.base);
  4830 +
  4831 +
  4832 +Rule "Brev: pow."
  4833 +
  4834 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"powyżej"]
  4835 + ns [base~"\."];
  4836 +Eval: word(Brev:pun:PREP, 1.base);
  4837 +
  4838 +
  4839 +Rule "Brev: n"
  4840 +
  4841 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"nad"];
  4842 +Eval: word(Brev:npun:PREP, 1.base);
  4843 +
  4844 +
  4845 +Rule "Brev: por.|zob.|p."
  4846 +
  4847 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"porównaj|zobacz|patrz"]
  4848 + ns [base~"\."];
  4849 +Right: [];
  4850 +Eval: word(Brev:pun:VERB, 1.base);
  4851 +
  4852 +
  4853 +Rule "Brev: zob.:"
  4854 +
  4855 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"zobacz"]
  4856 + ns [base~"\."];
  4857 +Right: ns [base~":"];
  4858 +Eval: word(Brev:pun:VERB, 1.base);
  4859 +
  4860 +
  4861 +Rule "Brev: wyst.|zm.|proj."
  4862 +
  4863 +Match: [pos~~"brev" && fullstoppedness~~"pun"
  4864 + && base~~"występują|zmarł|projektował"]
  4865 + ns [base~"\."];
  4866 +Right: [];
  4867 +Eval: word(Brev:pun:VERB, 1.base);
  4868 +
  4869 +
  4870 +Rule "Brev: br. (1a)"
  4871 +
  4872 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"bieżący.rok"]
  4873 + ns [base~"\."];
  4874 +Right: [];
  4875 +Eval: word(Brev:pun:NG, 1.base);
  4876 +
  4877 +
  4878 +Rule "Brev: br. (1b)"
  4879 +
  4880 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"bieżącego.roku"]
  4881 + ns [base~"\."];
  4882 +Right: [];
  4883 +Eval: word(Brev:pun:NG, 1.base);
  4884 +
  4885 +
  4886 +Rule "Brev: br. (2a)"
  4887 +
  4888 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"bieżący.rok"]
  4889 + ns [base~"\."];
  4890 +Right: ns [pos~"interp"];
  4891 +Eval: word(Brev:pun:NG, 1.base);
  4892 +
  4893 +
  4894 +Rule "Brev: br. (3a)"
  4895 +
  4896 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"bieżący.rok"]
  4897 + ns [base~"\."];
  4898 +Right: se;
  4899 +Eval: word(Brev-se:pun:NG, 1.base);
  4900 +
  4901 +
  4902 +Rule "Brev: br. (3b)"
  4903 +
  4904 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"bieżącego.roku"]
  4905 + ns [base~"\."];
  4906 +Right: se;
  4907 +Eval: word(Brev-se:pun:NG, 1.base);
  4908 +
  4909 +
  4910 +Rule "Brev: ub.r. (1a)"
  4911 +
  4912 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"ubiegły.rok"]
  4913 + ns [base~"\."];
  4914 +Right: [];
  4915 +Eval: word(Brev:pun:NG, 1.base);
  4916 +
  4917 +
  4918 +Rule "Brev: ub.r. (2a)"
  4919 +
  4920 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"ubiegły.rok"]
  4921 + ns [base~"\."];
  4922 +Right: ns [pos~"interp"];
  4923 +Eval: word(Brev:pun:NG, 1.base);
  4924 +
  4925 +
  4926 +Rule "Brev: ub.r. (3a)"
  4927 +
  4928 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"ubiegły.rok"]
  4929 + ns [base~"\."];
  4930 +Right: se;
  4931 +Eval: word(Brev-se:pun:NG, 1.base);
  4932 +
  4933 +
  4934 +Rule "Brev: ub.r. (1b)"
  4935 +
  4936 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"ubiegłego.roku"]
  4937 + ns [base~"\."];
  4938 +Right: [];
  4939 +Eval: word(Brev:pun:NG, "ubiegły rok");
  4940 +
  4941 +
  4942 +Rule "Brev: ub.r. (2b)"
  4943 +
  4944 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"ubiegłego.roku"]
  4945 + ns [base~"\."];
  4946 +Right: se;
  4947 +Eval: word(Brev-se:pun:NG, "ubiegły rok");
  4948 +
  4949 +
  4950 +Rule "Brev: ub."
  4951 +
  4952 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"ubiegły"]
  4953 + ns [base~"\."];
  4954 +Right: [];
  4955 +Eval: word(Brev:pun:ADJ, 1.base);
  4956 +
  4957 +
  4958 +Rule "Brev: bm. (1a)"
  4959 +
  4960 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"bieżącego.miesiąca"]
  4961 + ns [base~"\."];
  4962 +Right: [];
  4963 +Eval: word(Brev:pun:NG, "bieżący miesiąc");
  4964 +
  4965 +
  4966 +Rule "Brev: bm. (1b)"
  4967 +
  4968 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"bieżący.miesiąc"]
  4969 + ns [base~"\."];
  4970 +Right: [];
  4971 +Eval: word(Brev:pun:NG, 1.base);
  4972 +
  4973 +
  4974 +Rule "Brev: bm. (2a)"
  4975 +
  4976 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"bieżącego.miesiąca"]
  4977 + ns [base~"\."];
  4978 +Right: ns [pos~"interp"];
  4979 +Eval: word(Brev:pun:NG, "bieżący miesiąc");
  4980 +
  4981 +
  4982 +Rule "Brev: bm. (2b)"
  4983 +
  4984 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"bieżący.miesiąc"]
  4985 + ns [base~"\."];
  4986 +Right: ns [pos~"interp"];
  4987 +Eval: word(Brev:pun:NG, 1.base);
  4988 +
  4989 +
  4990 +Rule "Brev: bm. (3a)"
  4991 +
  4992 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"bieżącego.miesiąca"]
  4993 + ns [base~"\."];
  4994 +Right: se;
  4995 +Eval: word(Brev-se:pun:NG, "bieżący miesiąc");
  4996 +
  4997 +
  4998 +Rule "Brev: bm. (3b)"
  4999 +
  5000 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"bieżący.miesiąc"]
  5001 + ns [base~"\."];
  5002 +Right: se;
  5003 +Eval: word(Brev-se:pun:NG, 1.base);
  5004 +
  5005 +
  5006 +Rule "Brev: c.o."
  5007 +
  5008 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"centralne.ogrzewanie"]
  5009 + ns [base~"\."];
  5010 +Right: [];
  5011 +Eval: word(Brev:pun:NG, 1.base);
  5012 +
  5013 +
  5014 +Rule "Brev: w.c. (1)"
  5015 +
  5016 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"water.closet"]
  5017 + ns [base~"\."];
  5018 +Right: [];
  5019 +Eval: word(Brev:pun:NG, 1.base);
  5020 +
  5021 +
  5022 +Rule "Brev: w.c. (2)"
  5023 +
  5024 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"water.closet"]
  5025 + ns [base~"\."];
  5026 +Right: ns [pos~"interp"];
  5027 +Eval: word(Brev:pun:NG, 1.base);
  5028 +
  5029 +
  5030 +Rule "Brev: w.c. (2A)"
  5031 +
  5032 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"wartości.chrześcijańskie"]
  5033 + ns [base~"\."];
  5034 +Right: ns [pos~"interp"];
  5035 +Eval: word(Brev:pun:NG, 1.base);
  5036 +
  5037 +
  5038 +Rule "Brev: S.A. (osobno)"
  5039 +
  5040 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"spółka"]
  5041 + ns [base~"\."] ns
  5042 + [pos~~"brev" && fullstoppedness~~"pun" && base~~"akcyjny"]
  5043 + ns [base~"\."];
  5044 +Right: ns [pos~"interp"];
  5045 +Eval: word(Brev:pun:NG, "spółka akcyjna");
  5046 +#?czy na etapie segmentacji to nie powinien być jeden brev?
  5047 +
  5048 +Rule "Brev: S.A. (3)"
  5049 +
  5050 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"spółka.akcyjna"]
  5051 + ns [base~"\."];
  5052 +Right: [];
  5053 +Eval: word(Brev:pun:NG, 1.base);
  5054 +
  5055 +
  5056 +Rule "Brev: S.A. (2)"
  5057 +
  5058 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"spółka.akcyjna"]
  5059 + ns [base~"\."];
  5060 +Right: se;
  5061 +Eval: word(Brev-se:pun:NG, 1.base);
  5062 +
  5063 +
  5064 +Rule "Brev: pt. (1)"
  5065 +
  5066 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"pod.tytułem"]
  5067 + ns [base~"\."];
  5068 +Right: [];
  5069 +Eval: word(Brev:pun:PrepNG, 1.base);
  5070 +
  5071 +
  5072 +Rule "Brev: pt. (2)"
  5073 +
  5074 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"pod.tytułem"]
  5075 + ns [base~"\."];
  5076 +Right: ns [base~":"];
  5077 +Eval: word(Brev:pun:PrepNG, 1.base);
  5078 +
  5079 +
  5080 +Rule "Brev: pt. (3)"
  5081 +
  5082 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"pod.tytułem"]
  5083 + ns [base~"\."];
  5084 +Right: se;
  5085 +Eval: word(Brev-se:pun:PrepNG, 1.base);
  5086 +
  5087 +
  5088 +Rule "Brev: pt. bez kropki"
  5089 +
  5090 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"pod.tytułem"];
  5091 +Right: [base~"\""];
  5092 +Eval: word(Brev:pun:PrepNG, 1.base);
  5093 +
  5094 +
  5095 +Rule "Brev: pn."
  5096 +
  5097 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"pod.nazwą"]
  5098 + ns [base~"\."];
  5099 +Right: [];
  5100 +Eval: word(Brev:pun:PrepNG, 1.base);
  5101 +
  5102 +
  5103 +Rule "Brev: nt."
  5104 +
  5105 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"na.temat"]
  5106 + ns [base~"\."];
  5107 +Right: [];
  5108 +Eval: word(Brev:pun:PrepNG, 1.base);
  5109 +
  5110 +
  5111 +Rule "Brev: pw."
  5112 +
  5113 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"pod.wezwaniem"]
  5114 + ns [base~"\."];
  5115 +Right: [];
  5116 +Eval: word(Brev:pun:PrepNG, 1.base);
  5117 +
  5118 +
  5119 +Rule "Brev: ds."
  5120 +
  5121 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"do.spraw"]
  5122 + ns [base~"\."];
  5123 +Right: [];
  5124 +Eval: word(Brev:pun:PrepNG, 1.base);
  5125 +
  5126 +
  5127 +Rule "Brev: d/s"
  5128 +
  5129 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"do.spraw"];
  5130 +Eval: word(Brev:npun:PrepNG, 1.base);
  5131 +
  5132 +
  5133 +Rule "Brev: w/m"
  5134 +
  5135 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"w.miejscu"];
  5136 +Eval: word(Brev:npun:PrepNG, 1.base);
  5137 +
  5138 +
  5139 +Rule "Brev: n.p.m. (1)"
  5140 +
  5141 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"nad.poziomem.morza"]
  5142 + ns [base~"\."];
  5143 +Right: [];
  5144 +Eval: word(Brev:pun:PrepNG, 1.base);
  5145 +
  5146 +
  5147 +Rule "Brev: n.p.m. (2)"
  5148 +
  5149 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"nad.poziomem.morza"]
  5150 + ns [base~"\."];
  5151 +Right: ns [pos~"interp"];
  5152 +Eval: word(Brev:pun:PrepNG, 1.base);
  5153 +
  5154 +
  5155 +Rule "Brev: n.p.m. (3)"
  5156 +
  5157 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"nad.poziomem.morza"]
  5158 + ns [base~"\."];
  5159 +Right: se;
  5160 +Eval: word(Brev-se:pun:PrepNG, 1.base);
  5161 +
  5162 +
  5163 +Rule "Brev: p.n.e. (1)"
  5164 +
  5165 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"przed.naszą.erą"]
  5166 + ns [base~"\."];
  5167 +Right: [];
  5168 +Eval: word(Brev:pun:PrepNG, 1.base);
  5169 +
  5170 +
  5171 +Rule "Brev: p.n.e. (2)"
  5172 +
  5173 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"przed.naszą.erą"]
  5174 + ns [base~"\."];
  5175 +Right: ns [pos~"interp"];
  5176 +Eval: word(Brev:pun:PrepNG, 1.base);
  5177 +
  5178 +
  5179 +Rule "Brev: p.n.e. (3)"
  5180 +
  5181 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"przed.naszą.erą"]
  5182 + ns [base~"\."];
  5183 +Right: se;
  5184 +Eval: word(Brev-se:pun:PrepNG, 1.base);
  5185 +
  5186 +
  5187 +Rule "Brev: pne (bez kropki)"
  5188 +
  5189 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"przed.naszą.erą"];
  5190 +Eval: word(Brev:pun:PrepNG, 1.base);
  5191 +
  5192 +
  5193 +Rule "Brev: n.e. (1)"
  5194 +
  5195 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"naszej.ery"]
  5196 + ns [base~"\."];
  5197 +Right: [];
  5198 +Eval: word(Brev:pun:NG, 1.base);
  5199 +
  5200 +
  5201 +Rule "Brev: n.e. (2)"
  5202 +
  5203 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"naszej.ery"]
  5204 + ns [base~"\."];
  5205 +Right: ns [pos~"interp"];
  5206 +Eval: word(Brev:pun:NG, 1.base);
  5207 +
  5208 +
  5209 +Rule "Brev: n.e. (3)"
  5210 +
  5211 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"naszej.ery"]
  5212 + ns [base~"\."];
  5213 +Right: se;
  5214 +Eval: word(Brev-se:pun:NG, 1.base);
  5215 +
  5216 +
  5217 +Rule "Brev: itd. (1)"
  5218 +
  5219 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"i.tak.dalej"]
  5220 + ns [base~"\."];
  5221 +Right: [];
  5222 +Eval: word(Brev:pun:DisG, 1.base);
  5223 +
  5224 +
  5225 +Rule "Brev: itd. (2)"
  5226 +
  5227 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"i.tak.dalej"]
  5228 + ns [base~"\."];
  5229 +Right: ns [pos~"interp"];
  5230 +Eval: word(Brev:pun:DisG, 1.base);
  5231 +
  5232 +
  5233 +Rule "Brev: itd. (3)"
  5234 +
  5235 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"i.tak.dalej"]
  5236 + ns [base~"\."];
  5237 +Right: se;
  5238 +Eval: word(Brev-se:pun:DisG, 1.base);
  5239 +
  5240 +
  5241 +Rule "Brev: itd. (bez kropki)"
  5242 +
  5243 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"i.tak.dalej"];
  5244 +Eval: word(Brev:pun:DisG, 1.base);
  5245 +
  5246 +
  5247 +Rule "Brev: itp. (1)"
  5248 +
  5249 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"i.tym.podobne"]
  5250 + ns [base~"\."];
  5251 +Right: [];
  5252 +Eval: word(Brev:pun:DisG, 1.base);
  5253 +
  5254 +
  5255 +Rule "Brev: itp. (2)"
  5256 +
  5257 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"i.tym.podobne"]
  5258 + ns [base~"\."];
  5259 +Right: ns [pos~"interp"];
  5260 +Eval: word(Brev-se:pun:DisG, 1.base);
  5261 +
  5262 +
  5263 +Rule "Brev: itp. (3)"
  5264 +
  5265 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"i.tym.podobne"]
  5266 + ns [base~"\."];
  5267 +Right: se;
  5268 +Eval: word(Brev-se:pun:DisG, 1.base);
  5269 +
  5270 +
  5271 +Rule "Brev: itp bez kropki"
  5272 +
  5273 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"i.tym.podobne"];
  5274 +Eval: word(Brev:pun:DisG, 1.base);
  5275 +##!!tu powinno być wyraźnie, że nie może wystąpić kropka, ale jak zapisać
  5276 +
  5277 +Rule "Brev: etc. (1)"
  5278 +
  5279 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"et.cetera"]
  5280 + ns [base~"\."];
  5281 +Right: [];
  5282 +Eval: word(Brev:pun:DisG, 1.base);
  5283 +
  5284 +
  5285 +Rule "Brev: etc. (2)"
  5286 +
  5287 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"et.cetera"]
  5288 + ns [base~"\."];
  5289 +Right: ns [pos~"interp"];
  5290 +Eval: word(Brev-se:pun:DisG, 1.base);
  5291 +
  5292 +
  5293 +Rule "Brev: etc. (3)"
  5294 +
  5295 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"et.cetera"]
  5296 + ns [base~"\."];
  5297 +Right: se;
  5298 +Eval: word(Brev-se:pun:DisG, 1.base);
  5299 +
  5300 +
  5301 +Rule "Brev: tzn. (1)"
  5302 +
  5303 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"to.znaczy"]
  5304 + ns [base~"\."];
  5305 +Right: [];
  5306 +Eval: word(Brev:pun:CONJ, 1.base);
  5307 +
  5308 +
  5309 +Rule "Brev: tzn. (2)"
  5310 +
  5311 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"to.znaczy"]
  5312 + ns [base~"\."];
  5313 +Right: ns [pos~"interp"];
  5314 +Eval: word(Brev:pun:CONJ, 1.base);
  5315 +
  5316 +
  5317 +Rule "Brev: tj. (1)"
  5318 +
  5319 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"to.jest"]
  5320 + ns [base~"\."];
  5321 +Right: [];
  5322 +Eval: word(Brev:pun:CONJ, 1.base);
  5323 +
  5324 +
  5325 +Rule "Brev: tj. (2)"
  5326 +
  5327 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"to.jest"]
  5328 + ns [base~"\."];
  5329 +Right: ns [pos~"interp"];
  5330 +Eval: word(Brev:pun:CONJ, 1.base);
  5331 +
  5332 +
  5333 +Rule "Brev: wzgl."
  5334 +
  5335 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"względnie"]
  5336 + ns [base~"\."];
  5337 +Right: [];
  5338 +Eval: word(Brev:pun:CONJ, 1.base);
  5339 +##spr. część mowy
  5340 +
  5341 +Rule "Brev: tzw."
  5342 +
  5343 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"tak zwany"]
  5344 + ns [base~"\."];
  5345 +Right: [];
  5346 +Eval: word(Brev:pun:ADJ, 1.base);
  5347 +
  5348 +
  5349 +Rule "Brev: tzw. (bez kropki)"
  5350 +
  5351 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"tak zwany"];
  5352 +Eval: word(Brev:pun:ADJ, 1.base);
  5353 +
  5354 +
  5355 +Rule "Brev: el.-magn."
  5356 +
  5357 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"elektro"]
  5358 + ns [base~"\."]
  5359 + ns [base~"-"] ns
  5360 + [pos~~"brev" && fullstoppedness~~"pun" && base~~"magnetyczny"]
  5361 + ns [base~"\."];
  5362 +Right: [];
  5363 +Eval: word(Brev:pun:ADJ, "elektro-magnetyczny");
  5364 +
  5365 +
  5366 +Rule "Brev: zł"
  5367 +
  5368 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"złoty"];
  5369 +Eval: word(Brev:npun:NOUN, 1.base);
  5370 +
  5371 +
  5372 +Rule "Brev: gr"
  5373 +
  5374 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"grosz"];
  5375 +Eval: word(Brev:npun:NOUN, 1.base);
  5376 +
  5377 +
  5378 +Rule "Brev: mln"
  5379 +
  5380 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"milion"];
  5381 +Eval: word(Brev:npun:NOUN, 1.base);
  5382 +
  5383 +
  5384 +Rule "Brev: mld"
  5385 +
  5386 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"miliard"];
  5387 +Eval: word(Brev:npun:NOUN, 1.base);
  5388 +
  5389 +
  5390 +Rule "Brev: bln"
  5391 +
  5392 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"bilion"];
  5393 +Eval: word(Brev:npun:NOUN, 1.base);
  5394 +
  5395 +
  5396 +Rule "Brev: cm (1)"
  5397 +Match: [pos~~"brev" && fullstoppedness~~"npun"
  5398 + && base~~"nanometr|mikrometr|milimetr|centymetr|metr|kilometr"];
  5399 +Eval: word(Brev:npun:NOUN, 1.base);
  5400 +
  5401 +
  5402 +Rule "Brev: cm (2)"
  5403 +
  5404 +Match: [pos~~"brev" && fullstoppedness~~"npun"
  5405 + && base~~"nanometr|milimetr|centymetr|metr|kilometr"];
  5406 +Right: ns [base~"\."] se;
  5407 +Eval: word(Brev:npun:NOUN, 1.base);
  5408 +##?? to "se" ma być?
  5409 +
  5410 +Rule "Brev: m2|km2"
  5411 +
  5412 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~".*metr.kwadratowy"];
  5413 +Eval: word(Brev:npun:NG, 1.base);
  5414 +
  5415 +
  5416 +Rule "Brev: m3|dm3|ccm"
  5417 +
  5418 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~".*metr.sześcienny"];
  5419 +Eval: word(Brev:npun:NG, 1.base);
  5420 +
  5421 +
  5422 +Rule "Brev: ml|l"
  5423 +
  5424 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"mililitr|litr"];
  5425 +Eval: word(Brev:npun:NOUN, 1.base);
  5426 +
  5427 +
  5428 +Rule "Brev: q"
  5429 +
  5430 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"kwintal"];
  5431 +Eval: word(Brev:npun:NOUN, 1.base);
  5432 +
  5433 +
  5434 +Rule "Brev: h|d"
  5435 +
  5436 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"godzina|doba"];
  5437 +Eval: word(Brev:npun:NOUN, 1.base);
  5438 +
  5439 +
  5440 +Rule "Brev: min"
  5441 +
  5442 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"minuta"];
  5443 +Eval: word(Brev:npun:NOUN, 1.base);
  5444 +
  5445 +
  5446 +Rule "Brev: st"
  5447 +
  5448 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"stopa"];
  5449 +Eval: word(Brev:npun:NOUN, 1.base);
  5450 +
  5451 +
  5452 +Rule "Brev: H|h"
  5453 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"wysokość|głębokość"];
  5454 +Eval: word(Brev:npun:NOUN, 1.base);
  5455 +
  5456 +
  5457 +Rule "Brev: nr"
  5458 +
  5459 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"numer"];
  5460 +Eval: word(Brev:npun:NOUN, 1.base);
  5461 +
  5462 +
  5463 +Rule "Brev: nr."
  5464 +
  5465 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"numer"] ns [base~"\."];
  5466 +Right: [];
  5467 +Eval: word(Brev:pun:NOUN, 1.base);
  5468 +
  5469 +
  5470 +Rule "Brev: nr (bez kropki-błąd)"
  5471 +
  5472 +Left: [pos~"prep"];
  5473 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"numer"];
  5474 +Eval: word(Brev:pun:NOUN, 2.base);
  5475 +
  5476 +
  5477 +Rule "Brev: mg|g|dg|kg|pg"
  5478 +
  5479 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"miligram|gram|dekagram|kilogram|pikogram"];
  5480 +Eval: word(Brev:npun:NOUN, 1.base);
  5481 +
  5482 +
  5483 +Rule "Brev: t"
  5484 +
  5485 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"tona"];
  5486 +Eval: word(Brev:npun:NOUN, 1.base);
  5487 +
  5488 +
  5489 +Rule "Brev: ha"
  5490 +
  5491 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"hektar"];
  5492 +Eval: word(Brev:npun:NOUN, 1.base);
  5493 +
  5494 +
  5495 +Rule "Brev: pc"
  5496 +
  5497 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"parsek"];
  5498 +Eval: word(Brev:npun:NOUN, 1.base);
  5499 +
  5500 +
  5501 +Rule "Brev: płk|ppłk|mjr|rtm|kmdr"
  5502 +
  5503 +Match: [pos~~"brev" && fullstoppedness~~"npun|pun"
  5504 + && base~~"pułkownik|podpułkownik|major|rotmistrz|komandor"];
  5505 +Eval: word(Brev:npun:NOUN, 1.base);
  5506 +
  5507 +##AW: zrobiłam osobną regułę, bo skrót rtm. powinien być z kropką
  5508 +Rule "Brev: rtm."
  5509 +
  5510 +Match: [pos~~"brev" && fullstoppedness~~"pun"
  5511 + && base~~"rotmistrz"]
  5512 + ns [base~"\."];
  5513 +Eval: word(Brev:npun:NOUN, 1.base);
  5514 +
  5515 +Rule "Brev: bp/abp"
  5516 +
  5517 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"biskup|arcybiskup"];
  5518 +Eval: word(Brev:npun:NOUN, 1.base);
  5519 +
  5520 +
  5521 +Rule "Brev: bp.|kard."
  5522 +
  5523 +Match: [pos~~"brev" && fullstoppedness~~"pun"
  5524 + && base~~"biskup|arcybiskup|kardynał"]
  5525 + ns [base~"\."];
  5526 +Right: [];
  5527 +Eval: word(Brev:pun:NOUN, 1.base);
  5528 +
  5529 +
  5530 +Rule "Brev: dr hab."
  5531 +
  5532 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"doktor"]
  5533 + [pos~~"brev" && fullstoppedness~~"pun" && base~~"habilitowany"]
  5534 + ns [base~"\."];
  5535 +Eval: word(Brev:pun:NG, "doktor habilitowany");
  5536 +
  5537 +
  5538 +Rule "Brev: dr. hab."
  5539 +
  5540 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"doktor"]
  5541 + ns [base~"\."]
  5542 + [pos~~"brev" && fullstoppedness~~"pun" && base~~"habilitowany"]
  5543 + ns [base~"\."];
  5544 +Eval: word(Brev:pun:NG, "doktor habilitowany");
  5545 +
  5546 +
  5547 +Rule "Brev: dr|mgr"
  5548 +
  5549 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"doktor|magister"];
  5550 +Eval: word(Brev:npun:NOUN, 1.base);
  5551 +
  5552 +
  5553 +Rule "Brev: dr."
  5554 +
  5555 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"doktor"]
  5556 + ns [base~"\."];
  5557 +Eval: word(Brev:pun:NOUN, 1.base);
  5558 +
  5559 +
  5560 +Rule "Brev: dr (pun - bez kropki)"
  5561 +
  5562 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"doktor"];
  5563 +Right: [base~"[A-ZŁ].*" && case~"gen|dat|inst|loc"];
  5564 +Eval: word(Brev:pun:NOUN, 1.base);
  5565 +
  5566 +
  5567 +Rule "Brev: z-ca"
  5568 +
  5569 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"zastępca"];
  5570 +Eval: word(Brev:npun:NOUN, 1.base);
  5571 +
  5572 +
  5573 +Rule "Brev: wf"
  5574 +
  5575 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"wychowanie.fizyczne"];
  5576 +Eval: word(Brev:npun:NG, 1.base);
  5577 +
  5578 +
  5579 +Rule "Brev: wf"
  5580 +
  5581 +Match: [pos~~"brev" && fullstoppedness~~"pun" &&
  5582 + base~~"wychowanie.fizyczne"] ns [base~"\."];
  5583 +Right: [];
  5584 +Eval: word(Brev:pun:NG, 1.base);
  5585 +
  5586 +
  5587 +Rule "Brev: S-ka"
  5588 +
  5589 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"spółka"];
  5590 +Eval: word(Brev:npun:NOUN, 1.base);
  5591 +
  5592 +
  5593 +Rule "Brev: Mr"
  5594 +
  5595 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"mister"];
  5596 +Eval: word(Brev:npun:NOUN, 1.base);
  5597 +
  5598 +
  5599 +Rule "Brev: Mb/s"
  5600 +
  5601 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"megabajt"]
  5602 + ns [base~"/"] ns
  5603 + [pos~~"brev" && fullstoppedness~~"npun" && base~~"sekunda"];
  5604 +Eval: word(Brev:npun:NG, "megabajt na sekundę");
  5605 +
  5606 +
  5607 +Rule "Brev: M/s"
  5608 +
  5609 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"motor.ship"];
  5610 +Eval: word(Brev:npun:NG, 1.base);
  5611 +
  5612 +
  5613 +Rule "Brev: MB|kB"
  5614 +
  5615 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"megabajt|kilobajt"];
  5616 +Eval: word(Brev:npun:NOUN, 1.base);
  5617 +
  5618 +
  5619 +Rule "Brev: V|kV|MW|kWh|GJ"
  5620 +
  5621 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"wolt|kilowolt|megawat|kilowatogodzina|gigadżul"];
  5622 +Eval: word(Brev:npun:NOUN, 1.base);
  5623 +#uzupełnić o inne możliwe
  5624 +
  5625 +
  5626 +Rule "Brev: Gs|T|mT|0e"
  5627 +
  5628 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"gaus|tesla|militesla|ersted"];
  5629 +Eval: word(Brev:npun:NOUN, 1.base);
  5630 +
  5631 +
  5632 +Rule "Brev: Al"
  5633 +
  5634 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"aluminium"];
  5635 +Eval: word(Brev:npun:NOUN, 1.base);
  5636 +
  5637 +
  5638 +Rule "Brev: IgE"
  5639 +
  5640 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"Immunoglobina E"];
  5641 +Eval: word(Brev:npun:NG, 1.base);
  5642 +
  5643 +
  5644 +Rule "Brev: St|Sc"
  5645 +
  5646 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"[Ss]tratus|[Ss]tratocumulus"];
  5647 +Eval: word(Brev:npun:NOUN, 1.base);
  5648 +##! jest dużą i małą literą - jak powinno być?
  5649 +
  5650 +
  5651 +Rule "Brev: MHz|GHz"
  5652 +
  5653 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"megaherc|gigaherc"];
  5654 +Eval: word(Brev:npun:NOUN, 1.base);
  5655 +
  5656 +
  5657 +Rule "Brev: KM"
  5658 +
  5659 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"koń.mechaniczny"];
  5660 +Eval: word(Brev:npun:NG, 1.base);
  5661 +
  5662 +
  5663 +Rule "Brev: SA"
  5664 +
  5665 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"spółka.akcyjna"];
  5666 +Eval: word(Brev:npun:NG, 1.base);
  5667 +
  5668 +
  5669 +Rule "Brev: PS|PS."
  5670 +
  5671 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"postscriptum"];
  5672 +Eval: word(Brev:npun:NOUN, 1.base);
  5673 +
  5674 +
  5675 +Rule "Brev: P.S."
  5676 +
  5677 +Match: [pos~~"brev" && fullstoppedness~~"pun"
  5678 + && orth~~"[Pp]\.[Ss]|PS" && base~~"post scriptum"]
  5679 + ns [base~"\."];
  5680 +Eval: word(Brev:pun:NOUN, 1.base);
  5681 +#było base postscriptum, jest post scriptum, zmienić brev_pos?
  5682 +
  5683 +
  5684 +Rule "Brev: X"
  5685 +
  5686 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"październik"];
  5687 +Eval: word(Brev:npun:NOUN, 1.base);
  5688 +#uzupełnić inne miesiące
  5689 +
  5690 +
  5691 +Rule "Brev: UK|BTW|EOT"
  5692 +
  5693 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"UK|south|by the way|end of topic|in my humble opinion|Action Script"];
  5694 +Eval: word(Brev:npun:XXX, 1.base);
  5695 +
  5696 +
  5697 +Rule "DisG: BTW"
  5698 +
  5699 +Match: [base~"by the way"];
  5700 +Eval: group(DisG, 1,1);
  5701 +
  5702 +
  5703 +Rule "Brev: Ctrl"
  5704 +
  5705 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"Control"];
  5706 +Eval: word(Brev:npun:XXX, 1.base);
  5707 +
  5708 +
  5709 +Rule "Brev: Wny"
  5710 +
  5711 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"wielmożny"];
  5712 +Eval: word(Brev:npun:ADJ, 1.base);
  5713 +
  5714 +
  5715 +Rule "Brev: Wn"
  5716 +
  5717 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"winien"];
  5718 +Eval: word(Brev:npun:VERB, 1.base);
  5719 +
  5720 +
  5721 +Rule "Brev: wielka litera w cudzysłowie"
  5722 +
  5723 +Match: [orth~"\""] ns
  5724 + [pos~~"brev" && fullstoppedness~~"pun" && base~~"B|S"]
  5725 + ns [orth~"\""];
  5726 +Right: [];
  5727 +Eval: word(Brev:pun:NOUN, 3.base);
  5728 +
  5729 +
  5730 +Rule "Brev: T[rybuna]"
  5731 +
  5732 +Match: [orth~"\""] ns
  5733 + [pos~~"brev" && fullstoppedness~~"npun" && base~~"trybuna"]
  5734 + ns [orth~"\""];
  5735 +Eval: word(Brev:npun:NOUN, 3.base);
  5736 +
  5737 +
  5738 +Rule "Brev: Rz[eczpospolita]"
  5739 +
  5740 +Match: [orth~"\""] ns
  5741 + [pos~~"brev" && fullstoppedness~~"npun" && base~~"Rzeczpospolita"]
  5742 + ns [orth~"\""];
  5743 +Eval: word(Brev:npun:NOUN, 3.base);
  5744 +
  5745 +
  5746 +Rule "Brev: Dz[iennik]"
  5747 +
  5748 +Match: [orth~"\""] ns
  5749 + [pos~~"brev" && fullstoppedness~~"npun" && base~~"dziennik"]
  5750 + ns [orth~"\""];
  5751 +Eval: word(Brev:npun:NOUN, 3.base);
  5752 +
  5753 +
  5754 +Rule "Brev: S[olidarność] (1)"
  5755 +
  5756 +Match: [orth~"\""] ns
  5757 + [pos~~"brev" && fullstoppedness~~"npun" && base~~"[Ss]olidarność"]
  5758 + ns [orth~"\""];
  5759 +Right: [];
  5760 +Eval: word(Brev:npun:NOUN, 3.base);
  5761 +
  5762 +
  5763 +Rule "Brev: S[olidarność] (2)"
  5764 +
  5765 +Match: [orth~"\""] ns
  5766 + [pos~~"brev" && fullstoppedness~~"npun" && base~~"[Ss]olidarność"]
  5767 + ns [orth~"\""];
  5768 +Right: ns [pos~"interp"];
  5769 +Eval: word(Brev:npun:NOUN, 3.base);
  5770 +
  5771 +
  5772 +Rule "Brev: RM"
  5773 +
  5774 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"Radio.Maryja"];
  5775 +Eval: word(Brev:npun:NG, 1.base);
  5776 +
  5777 +
  5778 +Rule "Brev: TL"
  5779 +
  5780 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"Trybuna.Ludu"];
  5781 +Eval: word(Brev:npun:NG, 1.base);
  5782 +
  5783 +
  5784 +Rule "Brev: ST"
  5785 +
  5786 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"Stary.Testament"];
  5787 +Eval: word(Brev:npun:NG, 1.base);
  5788 +
  5789 +
  5790 +Rule "Brev: KK|DCIoS"
  5791 +
  5792 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"Kościół.Katolicki|Dominikańskie Centrum Informacji o Sektach"];
  5793 +Eval: word(Brev:npun:NG, 1.base);
  5794 +
  5795 +
  5796 +Rule "Brev: K."
  5797 +
  5798 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"kościół"]
  5799 + ns [base~"\."];
  5800 +Right: [];
  5801 +Eval: word(Brev:pun:NOUN, 1.base);
  5802 +
  5803 +
  5804 +Rule "Brev: W. (2)"
  5805 +
  5806 +Match: [pos~~"brev" && fullstoppedness~~"pun" && base~~"wszechświat"]
  5807 + ns [base~"\."];
  5808 +Right: ns [pos~"interp"];
  5809 +Eval: word(Brev:pun:NOUN, 1.base);
  5810 +
  5811 +
  5812 +Rule "Brev: NTG"
  5813 +
  5814 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"nie ta grupa"];
  5815 +Eval: word(Brev:npun:NG, 1.base);
  5816 +
  5817 +
  5818 +Rule "Brev: TM"
  5819 +
  5820 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"trade.mark"];
  5821 +Eval: word(Brev:npun:NG, 1.base);
  5822 +#NG czy XXX?
  5823 +
  5824 +
  5825 +Rule "Brev: m[agnitudo] (2)"
  5826 +
  5827 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"magnitudo"];
  5828 +Right: ns [pos~"interp"];
  5829 +Eval: word(Brev:npun:XXX, 1.base);
  5830 +
  5831 +
  5832 +Rule "Brev: °C"
  5833 +
  5834 +Match: [base~"°" && pos~"interp"] ns?
  5835 + [pos~~"brev" && base~~"Celsjusza|Celsjusz"];
  5836 +Eval: word(Brev:npun:NG, "stopień Celsjusza");
  5837 +
  5838 +
  5839 +Rule "Brev: st. C"
  5840 +
  5841 +Match: [pos~~"Brev" && fullstoppedness~~"pun" && base~~"stopień"] ns?
  5842 + [pos~~"brev" && base~~"Celsjusza|Celsjusz"];
  5843 +Eval: word(Brev:npun:NG, "stopień Celsjusza");
  5844 +
  5845 +
  5846 +Rule "Brev: C"
  5847 +
  5848 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"Celsjusza"];
  5849 +Eval: word(Brev:npun:NOUN, 1.base);
  5850 +
  5851 +
  5852 +Rule "Brev: o (stopień)"
  5853 +
  5854 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"stopień"];
  5855 +Right: [];
  5856 +Eval: word(Brev:npun:NOUN, 1.base);
  5857 +
  5858 +
  5859 +Rule "Brev: Mbps"
  5860 +
  5861 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"megabajt.na.sekundę"];
  5862 +Eval: word(Brev:npun:NG, 1.base);
  5863 +
  5864 +
  5865 +Rule "Brev: Kbps"
  5866 +
  5867 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"kilobajt.na.sekundę"];
  5868 +Eval: word(Brev:npun:NG, 1.base);
  5869 +
  5870 +
  5871 +Rule "Brev: km/h"
  5872 +
  5873 +Match: [orth~"km"] ns [base~"/"] ns [orth~"h"];
  5874 +Eval: word(Brev:npun:NG, "kilometr na godzinę");
  5875 +
  5876 +
  5877 +Rule "Brev: m/sek"
  5878 +
  5879 +Match: [orth~"m"] ns [base~"/"] ns [orth~"sek"];
  5880 +Eval: word(Brev:pun:NG, "metr na sekundę");
  5881 +#! czy to ma być pun?
  5882 +
  5883 +
  5884 +Rule "Brev: kg/Mg"
  5885 +
  5886 +Match: [orth~"kg"] ns [base~"/"] ns [orth~"Mg"];
  5887 +Eval: word(Brev:npun:NG, "kilogram na megagram");
  5888 +
  5889 +
  5890 +Rule "Brev: kg/Mg"
  5891 +
  5892 +Match: [orth~"pg"] ns [base~"/"] ns [orth~"ml"];
  5893 +Eval: word(Brev:npun:NG, "pikogram na mililitr");
  5894 +
  5895 +
  5896 +Rule "Brev: q/ha"
  5897 +
  5898 +Match: [orth~"q"] ns [base~"/"] ns [orth~"ha"];
  5899 +Eval: word(Brev:npun:NG, "kwintal na hektar");
  5900 +
  5901 +
  5902 +Rule "Brev: we/wy"
  5903 +
  5904 +Match: [orth~"we"] ns [base~"/"] ns [orth~"wy"];
  5905 +Eval: word(Brev:npun:NG, "wejście/wyjście");
  5906 +
  5907 +
  5908 +Rule "Brev: sp. z o.o."
  5909 +
  5910 +Match: [orth~"[Ss]p"] ns [base~"\."] [base~"z"] [orth~"o.o"] ns [base~"\."];
  5911 +Eval: word(Brev:pun:NG, "spółka z ograniczoną odpowiedzialnością");
  5912 +
  5913 +
  5914 +Rule "Brev: wg (2)"
  5915 +
  5916 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"według"];
  5917 +Right: [base~"\""] ns
  5918 + [pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact" && case~~"gen"];
  5919 +Eval: word(Brev:npun:PREP, 1.base);
  5920 +
  5921 +
  5922 +Rule "Brev: wg (1)"
  5923 +
  5924 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"według"];
  5925 +Right: [pos~~"subst|ger|adj|ppron12|ppron3|siebie|num|numcol|ppas|pact"
  5926 + && case~~"gen"];
  5927 +Eval: word(Brev:npun:PREP, 1.base);
  5928 +
  5929 +
  5930 +Rule "Brev: wg + proj."
  5931 +
  5932 +Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"według"];
  5933 +Right: [base~"projekt" && pos~"Brev"];
  5934 +Eval: word(Brev:npun:PREP, 1.base);
  5935 +#reguła szczegółowa
  5936 +
  5937 +
  5938 +#Rule "Brev: xxx"
  5939 +#
  5940 +#Match: [pos~~"brev" && fullstoppedness~~"npun" && base~~"xxx"];
  5941 +#Eval: word(Brev:npun:NOUN, 1.base);
  5942 +
  5943 +#Rule "skrót z kropką (1.1)"
  5944 +#
  5945 +#Match: [pos~~"brev" && fullstoppedness~~"pun"] ns [base~"\."];
  5946 +#Right: [];
  5947 +#Eval: word(Brev:pun, 1.base);
  5948 +
  5949 +#Rule "skrót z kropką (1.1a)"
  5950 +#
  5951 +#Match: [pos~~"brev" && fullstoppedness~~"pun"] ns [base~"\."];
  5952 +#Right: ns [pos~"interp"];
  5953 +#Eval: word(Brev:pun, 1.base);
  5954 +
  5955 +#Rule "skrót z kropką na końcu zdania"
  5956 +#
  5957 +#Match: [pos~~"brev" && fullstoppedness~~"pun"] ns [base~"\."];
  5958 +#Right: se;
  5959 +#Eval: word(Brev-se:pun, 1.base);
  5960 +
  5961 +#Rule "skrót bez kropki"
  5962 +#
  5963 +#Match: [pos~~"brev" && fullstoppedness~~"npun"];
  5964 +#Eval: word(Brev:npun, 1.base);
  5965 +
  5966 +#Rule "skrót z kropką (1.2)"
  5967 +#
  5968 +#Match: [pos~~"brev" && fullstoppedness~~"pun"] ns [base~"\."];
  5969 +#Right: [];
  5970 +#Eval: word(Brev:pun, 1.base);
  5971 +
  5972 +
  5973 +Rule "wielokropek"
  5974 +
  5975 +Match: [base~~"\."] ns [base~"\."] ns [base~~"\."];
  5976 +Eval: word(Interp, 0.base);
  5977 +
  5978 +
  5979 +Rule "skrótowce w gen pl "
  5980 +
  5981 +Match: [pos~~"ign"] ns [base~"-"] ns [base~~"owców"];
  5982 +Eval: word(Noun:pl:gen:m1, 1.base "-owiec");
  5983 +#jeśli to dobra reguła (chodzi o "ign", to ją rozmnożyć
  5984 +
  5985 +
  5986 +Rule "Adj: opisowy stopień wyższy"
  5987 +
  5988 +Match: [orth~"[Bb]ardziej"] [pos~"adj"];
  5989 +Eval: word(2, Adj:com, 2.base);
  5990 +
  5991 +
  5992 +Rule "Adv: opisowy stopień wyższy"
  5993 +
  5994 +Match: [orth~"[Bb]ardziej"] [pos~"adv"];
  5995 +Eval: word(2, Adv:com, 2.base);
  5996 +
  5997 +
  5998 +Rule "Adj: opisowy stopień najwyższy"
  5999 +
  6000 +Match: [orth~"[Nn]ajbardziej"] [pos~"adj"];
  6001 +Eval: word(2, Adj:sup, 2.base);
  6002 +
  6003 +
  6004 +Rule "Adv: opisowy stopień najwyższy"
  6005 +
  6006 +Match: [orth~"[Nn]ajbardziej"] [pos~"adv"];
  6007 +Eval: word(2, Adv:sup, 2.base);
  6008 +
  6009 +
  6010 +
  6011 +Rule "liczba z kropką w określeniu godziny (1)"
  6012 +
  6013 +Left: [pos~~"prep"] [base~"godzina"];
  6014 +Match: [orth~"[0-9][0-9]?" && pos~"adj"]
  6015 + ns [base~"\."];
  6016 +Right: ns? [orth~"[0-9][0-9]*" && pos~"num"];
  6017 +Eval: unify(case,1,2,3);
  6018 + word(3, Adj, 3.base);
  6019 +
  6020 +
  6021 +Rule "liczba z kropką w określeniu godziny (1a)"
  6022 +
  6023 +Left: [pos~~"prep"] [orth~"godz\."];
  6024 +Match: [orth~"[0-9][0-9]?" && pos~"adj"]
  6025 + ns [base~"\."];
  6026 +Right: ns? [orth~"[0-9][0-9]*" && pos~"num"];
  6027 +Eval: unify(case,1,3);
  6028 + word(3, Adj, 3.base);
  6029 +
  6030 +
  6031 +Rule "liczba z kropką w określeniu godziny (2)"
  6032 +
  6033 +Left: [pos~~"prep"];
  6034 +Match: [orth~"[0-9][0-9]?" && pos~"adj"]
  6035 + ns [base~"\."];
  6036 +Right: ns? [orth~"[0-9][0-9]*" && pos~"num"];
  6037 +Eval: unify(case,1,2);
  6038 + word(2, Adj, 2.base);
  6039 +
  6040 +
  6041 +Rule "liczba z kropką w określeniu godziny (3)"
  6042 +
  6043 +Left: [base~"godzina"];
  6044 +Match: [orth~"[0-9][0-9]?" && pos~"adj"]
  6045 + ns [base~"\."];
  6046 +Right: ns? [orth~"[0-9][0-9]*" && pos~"num"];
  6047 +Eval: unify(case number gender,1,2);
  6048 + word(2, Adj, 2.base);
  6049 +
  6050 +
  6051 +Rule "liczba z kropką (1)"
  6052 +
  6053 +Left: [];
  6054 +Match: [pos~~"adj" && base~~"[0-9]+"] ns [base~"\."];
  6055 +Right: [];
  6056 +Eval: word(2, Adj, 2.base);
  6057 +
  6058 +
  6059 +Rule "liczba z kropką (2)"
  6060 +
  6061 +Left: [];
  6062 +Match: [pos~~"adj" && base~~"[0-9]+"] ns [base~"\."];
  6063 +Right: ns [pos~"interp"];
  6064 +Eval: word(2, Adj, 2.base);
  6065 +
  6066 +
  6067 +Rule "liczba z kropką (3)"
  6068 +
  6069 +Left: [base!~"artykuł|paragraf|ustęp|punkt"];
  6070 +Match: [pos~~"adj" && base~~"[0-9]+"] ns [base~"\."];
  6071 +Right: se;
  6072 +Eval: word(2, Adj-se, 2.base);
  6073 +
  6074 +
  6075 +Rule "ułamki: 1/2"
  6076 +
  6077 +Match: [base~"1" && pos~"adj"]
  6078 + ns [base~"/"] ns
  6079 + [base~"[1-9][0-9]?" && pos~"adj"];
  6080 +Eval: word(Num:1.number:1.case:1.gender:rec, 0.base); #LD zmiana
  6081 +#Eval: word(1, Num:rec, 0.base);
  6082 +
  6083 +
  6084 +Rule "ułamki: 10/11 itp."
  6085 +
  6086 +Match: [base~"[1-9][0-9]" && pos~"num"]
  6087 + ns [base~"/"] ns
  6088 + [base~"[1-9][0-9]+" && pos~"adj"];
  6089 +Eval: word(Num:1.number:1.case:1.gender:rec, 0.base); #LD zmiana
  6090 +#Eval: word(1, Num:rec, 0.base);
  6091 +
  6092 +
  6093 +Rule "ułamki: 2/3 itp."
  6094 +
  6095 +Match: [base~"[2-9]" && pos~"num"]
  6096 + ns [base~"/"] ns
  6097 + [base~"[1-9][0-9]?" && pos~"adj"];
  6098 +Eval: word(Num:1.number:1.case:1.gender:rec, 0.base); #LD zmiana
  6099 +#Eval: word(1, Num:rec, 0.base);
  6100 +
  6101 +
  6102 +Rule "adja-adja-adja-adj" #polsko-brytyjsko-holendersko-kanadyjski
  6103 +
  6104 +Match: [pos~"adja"] ns [base~"-"] ns [pos~"adja"] ns [base~"-"] ns [pos~"adja"] ns [base~"-"] ns [pos~"adj"];
  6105 +Eval: word(13, Adj, 1.orth "-" 5.orth "-" 9.orth "-" 13.base);
  6106 +
  6107 +
  6108 +Rule "adja-adja-adj" #biurowo-handlowo-usługowy
  6109 +
  6110 +Match: [pos~"adja"] ns [base~"-"] ns [pos~"adja"] ns [base~"-"] ns? [pos~"adj"];
  6111 +Eval: word(9, Adj, 1.orth "-" 5.orth "-" 9.base);
  6112 +
  6113 +
  6114 +Rule "adja-adj" #rolno-spożywczy
  6115 +
  6116 +Match: [pos~"adja"] ns [base~"-"] ns [pos~"adj"];
  6117 +Eval: word(5, Adj, 1.orth "-" 5.base);
  6118 +
  6119 +
  6120 +Rule "adja-adj (inny dywiz)"
  6121 +
  6122 +Match: [pos~"adja"] ns [base~"–"] ns [pos~"adj"];
  6123 +Eval: word(5, Adj, 1.orth "-" 5.base);
  6124 +
  6125 +
  6126 +Rule "adja - adj" #ze spacjami
  6127 +
  6128 +Match: [pos~"adja"] [base~"-"] [pos~"adj"];
  6129 +Eval: word(3, Adj, 1.orth"-"3.base);
  6130 +
  6131 +
  6132 +Rule "inne-adj" #zero-procentowy
  6133 +
  6134 +Match: [] ns [base~"-"] ns [pos~"adj"];
  6135 +Eval: word(5, Adj, 1.orth "-" 5.base);
  6136 +
  6137 +
  6138 +#Rule "coś-subst"
  6139 +#
  6140 +#Match: [] ns [base~"-"] ns [pos~"subst"];
  6141 +#Eval: word(5, Noun, 1.base "-" 5.base);
  6142 +#!To zamieniłam na regułę ostrzejszą:
  6143 +
  6144 +Rule "subst-subst"
  6145 +
  6146 +Match: [pos~"subst"] ns [base~"-"] ns [pos~"subst"];
  6147 +Eval: unify(case,1,5);
  6148 + word(5, Noun, 1.base "-" 5.base);
  6149 +
  6150 +
  6151 +Rule "subst w cudzysłowie"
  6152 +
  6153 +Match: [orth~"\""] ns [pos~"subst"] ns [orth~"\""];
  6154 +Eval: word(3, Noun, 0.base);
  6155 +
  6156 +
  6157 +Rule "subst w innym cudzysłowie"
  6158 +
  6159 +Match: [orth~"„|“|”|\""] ns [pos~"subst"] ns [orth~"”|’’"];
  6160 +Eval: word(3, Noun, 0.base);
  6161 +
  6162 +
  6163 +Rule "subst w cudzysłowie (przecinki)"
  6164 +
  6165 +Match: [base~","] ns [base~","] ns [pos~"subst"] ns [orth~"\""];
  6166 +Eval: word(5, Noun, 0.base);
  6167 +
  6168 +
  6169 +Rule "subst w cudzysłowie (z tyłu apostrofy)"
  6170 +
  6171 +Match: [orth~"„"] ns [pos~"subst"] ns [base~"’"] ns [base~"’"];
  6172 +Eval: word(3, Noun, 0.base);
  6173 +##!!a może zamienić te wszystkie dziwne cudzysłowy na normalne (w base)
  6174 +
  6175 +
  6176 +Rule "subst w apostrofach"
  6177 +
  6178 +Match: [orth~"'"] ns [pos~"subst"] ns [base~"'"];
  6179 +Eval: word(3, Noun, 0.base);
  6180 +
  6181 +
  6182 +Rule "subst w cudzysłowie (nawiasy kątowe)"
  6183 +
  6184 +Match: [base~"&gt;"] ns [base~"&gt;"]
  6185 + ns [pos~"subst"] ns
  6186 + [base~"&lt;"] ns [base~"&lt;"];
  6187 +Eval: word(5, Noun, 0.base);
  6188 +
  6189 +
  6190 +Rule "adj w cudzysłowie"
  6191 +
  6192 +Match: [orth~"\""] ns [pos~"adj"] ns [orth~"\""];
  6193 +Eval: word(3, Adj, 0.base);
  6194 +
  6195 +
  6196 +Rule "Pred: tryb przypuszczający - czas przeszły (1)"
  6197 +
  6198 +Match: [pos~"pred"] [base~"by"] [base~"być" && pos~"praet"];
  6199 +Eval: word(Pred:past:cond:imperf:aff, 1.base); #LD dodałam "aff"
  6200 +
  6201 +
  6202 +Rule "Pred: tryb przypuszczający - czas przeszły (2)"
  6203 +
  6204 +Match: [pos~"pred"] [base~"być" && pos~"praet"] ns [base~"by"];
  6205 +Eval: word(Pred:past:cond:imperf:aff, 1.base); #LD dodałam "aff"
  6206 +#brak przykładu
  6207 +
  6208 +
  6209 +Rule "Pred: tryb przypuszczający - czas teraźniejszy"
  6210 +
  6211 +Match: [pos~"pred" && base!~"to"] [base~"by"];
  6212 +Eval: word(Pred:pres:cond:imperf:aff, 1.base); #LD dodałam "aff"
  6213 +
  6214 +
  6215 +Rule "Pred: zanegowany czas przeszły (1)"
  6216 +
  6217 +Match: [base~~"nie" && pos~~"qub"] [base~"być" && pos~"praet"] [pos~"pred"];
  6218 +Eval: word(Pred:past:ind:imperf:neg, 3.base);
  6219 +
  6220 +
  6221 +Rule "Pred: zanegowany czas przeszły (2)"
  6222 +
  6223 +Match: [pos~"pred"] [base~~"nie" && pos~~"qub"] [base~"być" && pos~"praet"];
  6224 +Eval: word(Pred:past:ind:imperf:neg, 1.base);
  6225 +
  6226 +
  6227 +Rule "Pred: czas przeszły (1)"
  6228 +
  6229 +Match: [base~"być" && pos~"praet"] [pos~"pred"];
  6230 +Eval: word(Pred:past:ind:imperf:aff, 2.base); #LD dodałam "aff"
  6231 +
  6232 +
  6233 +Rule "Pred: czas przeszły (2)"
  6234 +
  6235 +Match: [pos~"pred"] [base~"być" && pos~"praet"];
  6236 +Eval: word(Pred:past:ind:imperf:aff, 1.base); #LD dodałam "aff"
  6237 +
  6238 +
  6239 +Rule "Pred: czas przyszły z negacją (1)"
  6240 +
  6241 +Match: [base~~"nie" && pos~~"qub"] [base~"być" && pos~"bedzie"] [pos~"pred"];
  6242 +Eval: word(Pred:fut:ind:imperf:neg, 2.base);
  6243 +
  6244 +
  6245 +Rule "Pred: czas przyszły z negacją (2)"
  6246 +
  6247 +Match: [pos~"pred"] [base~~"nie" && pos~~"qub"] [base~"być" && pos~"bedzie"];
  6248 +Eval: word(Pred:fut:ind:imperf:neg, 1.base);
  6249 +
  6250 +
  6251 +Rule "Pred: czas przyszły (1)"
  6252 +
  6253 +Match: [base~"być" && pos~"bedzie"] [pos~"pred"];
  6254 +Eval: word(Pred:fut:ind:imperf:aff, 2.base);
  6255 +
  6256 +
  6257 +Rule "Pred: czas przyszły (2)"
  6258 +
  6259 +Match: [pos~"pred"] [base~"być" && pos~"bedzie"];
  6260 +Eval: word(Pred:fut:ind:imperf:aff, 1.base);
  6261 +
  6262 +
  6263 +Rule "Pred: czas teraźniejszy z negacją (1)"
  6264 +
  6265 +Match: [base~~"nie" && pos~~"qub"] [base~"być" && pos~"fin"] [pos~"pred"];
  6266 +Eval: word(Pred:pres:ind:imperf:neg, 3.base);
  6267 +
  6268 +
  6269 +Rule "Pred: czas teraźniejszy z negacją (2)"
  6270 +
  6271 +Match: [pos~"pred"] [base~~"nie" && pos~~"qub"] [base~"być" && pos~"fin"];
  6272 +Eval: word(Pred:pres:ind:imperf:neg, 1.base);
  6273 +
  6274 +
  6275 +Rule "Pred: czas teraźniejszy (1)"
  6276 +
  6277 +Match: [base~"być" && pos~"fin"] [pos~"pred"];
  6278 +Eval: word(Pred:pres:ind:imperf:aff, 2.base); #LD dodałam "aff"
  6279 +
  6280 +
  6281 +Rule "Pred: czas teraźniejszy (2)"
  6282 +
  6283 +Match: [pos~"pred"] [base~"być" && pos~"fin"];
  6284 +Eval: word(Pred:pres:ind:imperf:aff, 1.base); #LD dodałam "aff"
  6285 +
  6286 +
  6287 +#LD Jedna nowa reguła zamiast dwóch starych
  6288 +Rule "praet + aglt"
  6289 +
  6290 +Match: [pos~"praet"] ns [pos~"aglt"];
  6291 +Eval: word(Verbfin:1.number:3.person:past:ind:1.aspect:nrefl:aff:1.gender, 1.base);
  6292 +
  6293 +
  6294 +#Rule "Praet + Aglt (1. osoba)"
  6295 +#
  6296 +#Match: [pos~"praet"] ns [pos~"aglt" && person~"pri"];
  6297 +#Eval: word(1, Verbfin:pri:past:ind, 1.base);
  6298 +#
  6299 +#Rule "Praet + Aglt (2. osoba)"
  6300 +#
  6301 +#Match: [pos~"praet"] ns [pos~"aglt" && person~"sec"];
  6302 +#Eval: word(1, Verbfin:sec:past:ind, 1.base);
  6303 +
  6304 +
  6305 +#LD 2 reguły na tryb warunkowy zamieniłam na 4, a potem znów na 2, ale inne
  6306 +Rule "praet(imperf) + by + aglt"
  6307 +
  6308 +Match: [pos~"praet" && aspect~"imperf"] ns [base~"by"] ns [pos~"aglt"];
  6309 +Eval: word(Verbfin:1.number:5.person:pres:cond:1.aspect:nrefl:aff:1.gender, 1.base);
  6310 +
  6311 +
  6312 +Rule "praet(perf) + by + aglt"
  6313 +
  6314 +Match: [pos~"praet" && aspect~"perf"] ns [base~"by"] ns [pos~"aglt"];
  6315 +Eval: word(Verbfin:1.number:5.person:fut:cond:1.aspect:nrefl:aff:1.gender, 1.base);
  6316 +
  6317 +
  6318 +#Rule "Praet(imperf) + by + Aglt (1. osoba)"
  6319 +#
  6320 +#Match: [pos~"praet" && aspect~"imperf"] ns [base~"by"]
  6321 +# ns [pos~"aglt" && person~"pri"];
  6322 +#Eval: word(1, Verbfin:pri:pres:cond, 1.base);
  6323 +#
  6324 +#Rule "Praet(perf) + by + Aglt (1. osoba)"
  6325 +#
  6326 +#Match: [pos~"praet" && aspect~"perf"] ns [base~"by"]
  6327 +# ns [pos~"aglt" && person~"pri"];
  6328 +#Eval: word(1, Verbfin:pri:fut:cond, 1.base);
  6329 +#
  6330 +#Rule "Praet(imperf) + by + Aglt (2. osoba)"
  6331 +#
  6332 +#Match: [pos~"praet" && aspect~"imperf"] ns [base~"by"]
  6333 +# ns [pos~"aglt" && person~"sec"];
  6334 +#Eval: word(1, Verbfin:sec:pres:cond, 1.base);
  6335 +#
  6336 +#Rule "Praet(perf) + by + Aglt (2. osoba)"
  6337 +#
  6338 +#Match: [pos~"praet" && aspect~"perf"] ns [base~"by"]
  6339 +# ns [pos~"aglt" && person~"sec"];
  6340 +#Eval: word(1, Verbfin:sec:fut:cond, 1.base);
  6341 +
  6342 +
  6343 +#LD Tu regułę zamieniłam na 2. i zmieniłam linię Eval
  6344 +Rule "praet(imperf) + by"
  6345 +
  6346 +Match: [pos~"praet" && aspect~"imperf"] ns [base~"by"];
  6347 +Eval: word(Verbfin:1.number:ter:pres:cond:1.aspect:nrefl:aff:1.gender, 1.base);
  6348 +
  6349 +
  6350 +Rule "praet(perf) + by"
  6351 +
  6352 +Match: [pos~"praet" && aspect~"perf"] ns [base~"by"];
  6353 +Eval: word(Verbfin:1.number:ter:fut:cond:1.aspect:nrefl:aff:1.gender, 1.base);
  6354 +
  6355 +
  6356 +Rule "imps + by"
  6357 +
  6358 +Match: [pos~"imps"] [base~"by"];
  6359 +Eval: word(Imps:cond:1.aspect:nrefl:aff, 1.base); #LD zmiana
  6360 +#Eval: word(1, Imps:cond, 1.base);
  6361 +
  6362 +
  6363 +Rule "by + imps"
  6364 +
  6365 +Match: [base~"by"] [pos~"imps"];
  6366 +Eval: word(Imps:cond:2.aspect:nrefl:aff, 2.base); #LD zmiana
  6367 +#Eval: word(2, Imps:cond, 2.base);
  6368 +
  6369 +
  6370 +#LD Jedna nowa reguła zamiast dwóch starych
  6371 +Rule "winien + aglt - czas przeszły"
  6372 +
  6373 +Match: [pos~"winien"] ns [pos~"aglt"] [base~"być" && pos~"praet"];
  6374 +Eval: word(Winien:1.number:3.person:1.gender:past:ind:1.aspect:nrefl:aff, 1.base);
  6375 +
  6376 +
  6377 +#Rule "Winien - czas przeszły (1. osoba)"
  6378 +#
  6379 +#Match: [pos~"winien"] ns [pos~"aglt" && person~"pri"]
  6380 +# [base~"być" && pos~"praet"];
  6381 +#Eval: word(1, Winien:pri:past:ind, 1.base);
  6382 +#
  6383 +#Rule "Winien - czas przeszły (2. osoba)"
  6384 +#
  6385 +#Match: [pos~"winien"] ns [pos~"aglt" && person~"sec"]
  6386 +# [base~"być" && pos~"praet"];
  6387 +#Eval: word(1, Winien:sec:past:ind, 1.base);
  6388 +
  6389 +
  6390 +Rule "Winien - czas przeszły (3. osoba)"
  6391 +
  6392 +Match: [pos~"winien"] [base~"być" && pos~"praet"];
  6393 +Eval: word(1, Winien:ter:past:ind:nrefl:aff, 1.base); #LD dodałam "nrefl:aff"
  6394 +
  6395 +
  6396 +#LD Jedna nowa reguła zamiast dwóch starych
  6397 +Rule "winien + by + aglt - tryb przypuszczający"
  6398 +
  6399 +Match: [pos~"winien"] [base~"by"] ns [pos~"aglt"];
  6400 +Eval: word(Winien:1.number:4.person:1.gender:pres:cond:1.aspect:nrefl:aff, 1.base);
  6401 +
  6402 +
  6403 +#Rule "Winien + by + Aglt (1. osoba)"
  6404 +#
  6405 +#Match: [pos~"winien"] [base~"by"] ns [pos~"aglt" && person~"pri"];
  6406 +#Eval: word(1, Winien:pri:pres:cond, 1.base);
  6407 +#
  6408 +#Rule "Winien + by + Aglt (2. osoba)"
  6409 +#
  6410 +#Match: [pos~"winien"] [base~"by"] ns [pos~"aglt" && person~"sec"];
  6411 +#Eval: word(1, Winien:sec:pres:cond, 1.base);
  6412 +
  6413 +
  6414 +Rule "Winien + by (3. osoba)"
  6415 +
  6416 +Match: [pos~"winien"] [base~"by"];
  6417 +Eval: word(1, Winien:ter:pres:cond:nrefl:aff, 1.base); #LD dodałam "nrefl:aff"
  6418 +
  6419 +
  6420 +#LD Jedna nowa reguła zamiast dwóch starych
  6421 +Rule "winien + aglt - czas teraźniejszy"
  6422 +
  6423 +Match: [pos~"winien"] ns [pos~"aglt"];
  6424 +Eval: word(Winien:1.number:3.person:1.gender:pres:ind:1.aspect:nrefl:aff, 1.base);
  6425 +
  6426 +
  6427 +#Rule "Winien + Aglt (1. osoba)"
  6428 +#
  6429 +#Match: [pos~"winien"] ns [pos~"aglt" && person~"pri"];
  6430 +#Eval: word(1, Winien:pri:pres:ind, 1.base);
  6431 +#
  6432 +#Rule "Winien + Aglt (2. osoba)"
  6433 +#
  6434 +#Match: [pos~"winien"] ns [pos~"aglt" && person~"sec"];
  6435 +#Eval: word(1, Winien:sec:pres:ind, 1.base);
  6436 +
  6437 +
  6438 +Rule "Winien (3. osoba)"
  6439 +
  6440 +Match: [pos~"winien"];
  6441 +Eval: word(1, Winien:ter:pres:ind:nrefl:aff, 1.base); #LD dodałam "nrefl:aff"
  6442 +
  6443 +
  6444 +Rule "czas przyszły: bedzie + się + inf"
  6445 +
  6446 +Match: [pos~"bedzie"] [base~"się"] [pos~"inf"];
  6447 +Eval: word(1, Verbfin:fut:ind:refl:aff, 3.base);
  6448 +
  6449 +
  6450 +Rule "czas przyszły: inf + się + bedzie"
  6451 +
  6452 +Match: [pos~"inf"] [base~"się"] [pos~"bedzie"];
  6453 +Eval: word(3, Verbfin:fut:ind:refl:aff, 1.base);
  6454 +
  6455 +
  6456 +Rule "czas przyszły: bedzie + inf"
  6457 +
  6458 +Match: [pos~"bedzie"] [pos~"inf"];
  6459 +Eval: word(1, Verbfin:fut:ind:nrefl:aff, 2.base); #LD dodałam "nrefl:aff"
  6460 +
  6461 +
  6462 +Rule "czas przyszły: inf + bedzie"
  6463 +
  6464 +Match: [pos~"inf"] [pos~"bedzie"];
  6465 +Eval: word(2, Verbfin:fut:ind:nrefl:aff, 1.base); #LD dodałam "nrefl:aff"
  6466 +
  6467 +
  6468 +#LD Jedna nowa reguła zamiast pięciu starych.
  6469 +Rule "czas przyszły: bedzie się + praet"
  6470 +
  6471 +Match: [pos~"bedzie"] [base~"się"]
  6472 + [pos~"praet" && aspect~"imperf"];
  6473 +Eval: word(Verbfin:1.number:1.person:fut:ind:1.aspect:refl:aff:3.gender, 3.base);
  6474 +
  6475 +
  6476 +#rozmnożone reguły (rodzaj z praet)
  6477 +#Rule "czas przyszły: bedzie się + praet (m1)"
  6478 +#
  6479 +#Match: [pos~"bedzie"] [base~"się"]
  6480 +# [pos~"praet" && aspect~"imperf" && gender~"m1"];
  6481 +#Eval: word(1, Verbfin:fut:ind:refl:m1, 3.base);
  6482 +#
  6483 +#Rule "czas przyszły: bedzie się + praet (m2)"
  6484 +#
  6485 +#Match: [pos~"bedzie"] [base~"się"]
  6486 +# [pos~"praet" && aspect~"imperf" && gender~"m2"];
  6487 +#Eval: word(1, Verbfin:fut:ind:refl:m2, 3.base);
  6488 +#
  6489 +#Rule "czas przyszły: bedzie się + praet (m3)"
  6490 +#
  6491 +#Match: [pos~"bedzie"] [base~"się"]
  6492 +# [pos~"praet" && aspect~"imperf" && gender~"m3"];
  6493 +#Eval: word(1, Verbfin:fut:ind:refl:m3, 3.base);
  6494 +#
  6495 +#Rule "czas przyszły: bedzie się + praet (f)"
  6496 +#
  6497 +#Match: [pos~"bedzie"] [base~"się"]
  6498 +# [pos~"praet" && aspect~"imperf" && gender~"f"];
  6499 +#Eval: word(1, Verbfin:fut:ind:refl:f, 3.base);
  6500 +#
  6501 +#Rule "czas przyszły: bedzie się + praet (n)"
  6502 +#
  6503 +#Match: [pos~"bedzie"] [base~"się"]
  6504 +# [pos~"praet" && aspect~"imperf" && gender~"n"];
  6505 +#Eval: word(1, Verbfin:fut:ind:refl:n, 3.base);
  6506 +
  6507 +
  6508 +#LD Jedna nowa reguła zamiast pięciu starych.
  6509 +Rule "czas przyszły: bedzie + praet"
  6510 +
  6511 +Match: [pos~"bedzie"] [pos~"praet" && aspect~"imperf"];
  6512 +Eval: word(Verbfin:1.number:1.person:fut:ind:1.aspect:nrefl:aff:2.gender, 2.base);
  6513 +
  6514 +
  6515 +#rozmnożone reguły (rodzaj z praet)
  6516 +#Rule "czas przyszły: bedzie + praet (m1)"
  6517 +#
  6518 +#Match: [pos~"bedzie"] [pos~"praet" && aspect~"imperf" && gender~"m1"];
  6519 +#Eval: word(1, Verbfin:fut:ind:m1, 2.base);
  6520 +#
  6521 +#Rule "czas przyszły: bedzie + praet (m2)"
  6522 +#
  6523 +#Match: [pos~"bedzie"] [pos~"praet" && aspect~"imperf" && gender~"m2"];
  6524 +#Eval: word(1, Verbfin:fut:ind:m2, 2.base);
  6525 +#
  6526 +#Rule "czas przyszły: bedzie + praet (m3)"
  6527 +#
  6528 +##Match: [pos~"bedzie"] [pos~"praet" && aspect~"imperf" && gender~"m3"];
  6529 +#Eval: word(1, Verbfin:fut:ind:m3, 2.base);
  6530 +#
  6531 +#Rule "czas przyszły: bedzie + praet (f)"
  6532 +#
  6533 +#Match: [pos~"bedzie"] [pos~"praet" && aspect~"imperf" && gender~"f"];
  6534 +#Eval: word(1, Verbfin:fut:ind:f, 2.base);
  6535 +#
  6536 +#Rule "czas przyszły: bedzie + praet (n)"
  6537 +#
  6538 +#Match: [pos~"bedzie"] [pos~"praet" && aspect~"imperf" && gender~"n"];
  6539 +#Eval: word(1, Verbfin:fut:ind:n, 2.base);
  6540 +
  6541 +
  6542 +#LD Jedna nowa reguła zamiast pięciu starych.
  6543 +Rule "czas przyszły: praet + bedzie"
  6544 +
  6545 +Match: [pos~"praet" && aspect~"imperf"] [pos~"bedzie"];
  6546 +Eval: word(Verbfin:2.number:2.person:fut:ind:2.aspect:nrefl:aff:1.gender, 1.base);
  6547 +
  6548 +
  6549 +#rozmnożone reguły (rodzaj z praet)
  6550 +#Rule "czas przyszły: praet (m1) + bedzie"
  6551 +#
  6552 +#Match: [pos~"praet" && aspect~"imperf" && gender~"m1"] [pos~"bedzie"];
  6553 +#Eval: word(2, Verbfin:fut:ind:m1, 1.base);
  6554 +#
  6555 +#Rule "czas przyszły: praet (m2) + bedzie"
  6556 +#
  6557 +#Match: [pos~"praet" && aspect~"imperf" && gender~"m2"] [pos~"bedzie"];
  6558 +#Eval: word(2, Verbfin:fut:ind:m2, 1.base);
  6559 +#
  6560 +#Rule "czas przyszły: praet (m3) + bedzie"
  6561 +#
  6562 +#Match: [pos~"praet" && aspect~"imperf" && gender~"m3"] [pos~"bedzie"];
  6563 +#Eval: word(2, Verbfin:fut:ind:m3, 1.base);
  6564 +#
  6565 +#Rule "czas przyszły: praet (f) + bedzie"
  6566 +#
  6567 +#Match: [pos~"praet" && aspect~"imperf" && gender~"f"] [pos~"bedzie"];
  6568 +#Eval: word(2, Verbfin:fut:ind:f, 1.base);
  6569 +#
  6570 +#Rule "czas przyszły: praet (n) + bedzie"
  6571 +#
  6572 +#Match: [pos~"praet" && aspect~"imperf" && gender~"n"] [pos~"bedzie"];
  6573 +#Eval: word(2, Verbfin:fut:ind:n, 1.base);
  6574 +
  6575 +
  6576 +#info: Ta reguła musi być po innych z "bedzie"
  6577 +Rule "bedzie -> Verbfin"
  6578 +
  6579 +Match: [pos~~"bedzie"];
  6580 +Eval: word(1, Verbfin:fut:ind:nrefl:aff, ); #LD dodałam "aff"
  6581 +
  6582 +
  6583 +#info: Ta reguła musi być po czasie przyszłym złożonym i innych dla praet
  6584 +Rule "praet -> Verbfin"
  6585 +
  6586 +Match: [pos~~"praet"];
  6587 +Eval: word(Verbfin:1.number:ter:past:ind:1.aspect:nrefl:aff:1.gender, 1.base); #LD zmieniłam całą linię
  6588 +#Eval: word(1, Verbfin:ter:past:ind:nrefl:aff, );
  6589 +
  6590 +
  6591 +Rule "fin perf -> Verbfin"
  6592 +
  6593 +Match: [pos~~"fin" && aspect~~"perf"];
  6594 +Eval: word(1, Verbfin:fut:ind:nrefl:aff, ); #LD dodałam ind:nrefl:aff
  6595 +
  6596 +
  6597 +Rule "fin imperf -> Verbfin"
  6598 +
  6599 +Match: [pos~~"fin" && aspect~"imperf"];
  6600 +Eval: word(1, Verbfin:pres:ind:nrefl:aff, ); #LD dodałam ind:nrefl:aff
  6601 +
  6602 +
  6603 +#LD Regułę "impt -> Verbfin" rozbiłam na dwie.
  6604 +Rule "impt imperf -> Verbfin"
  6605 +
  6606 +Match: [pos~~"impt" && aspect~"imperf"];
  6607 +Eval: word(1, Verbfin:pres:imp:nrefl:aff, ); #LD dodałam nrefl:aff
  6608 +
  6609 +
  6610 +Rule "impt perf -> Verbfin"
  6611 +
  6612 +Match: [pos~~"impt" && aspect~"perf"];
  6613 +Eval: word(1, Verbfin:fut:imp:nrefl:aff, ); #LD dodałam nrefl:aff
  6614 +
  6615 +
  6616 +Rule "tryb rozkazujący z niech: niech + czasownik"
  6617 +
  6618 +Match: [base~"niech|niechaj" && pos~"qub"] [pos~"Verbfin" && tense!~past];
  6619 +Eval: alter(2, imp, 2.base); #LD zamiast word jest alter
  6620 +#Eval: word(2, imp, 2.base);
  6621 +
  6622 +
  6623 +Rule "tryb rozkazujący z niech: niech + się + czasownik"
  6624 +
  6625 +Match: [base~"niech|niechaj" && pos~"qub"]
  6626 + [orth~"się"] [pos~"Verbfin" && tense!~past];
  6627 +Eval: alter(3, imp:refl, 3.base); #LD zamiast word jest alter
  6628 +#Eval: word(3, imp:refl, 3.base);
  6629 +
  6630 +
  6631 +
  6632 +#!!!byc może ta reguła niepotrzebna (sprawdzić)
  6633 +#Rule "tryb oznajm. dla reszty"
  6634 +#
  6635 +#Match: [pos~"Verbfin|Winien|Pred" && mood!~"cond|imp"];
  6636 +#Eval: #word(1, ind, );
  6637 +# set(1.pos:1.number:1.person:1.tense:ind:1.aspect:1.gender, , 1);
  6638 +# alter(1, ind, ); #LD zamiast word jest alter
  6639 +
  6640 +
  6641 +Rule "imps -> Imps"
  6642 +
  6643 +Match: [pos~~"imps"];
  6644 +Eval: word(1, Imps:ind:nrefl:aff, ); #LD dopisałam "nrefl:aff"
  6645 +
  6646 +
  6647 +Rule "inf -> Inf"
  6648 +
  6649 +Match: [pos~~"inf"];
  6650 +Eval: word(1, Inf:nrefl:aff, ); #LD dopisałam "nrefl:aff"
  6651 +
  6652 +
  6653 +#LD nowa reguła
  6654 +Rule "negacja dla predykatywów"
  6655 +
  6656 +Match: [base~"nie" && pos~"qub"] [pos~"pred"];
  6657 +Eval: word(2, Pred:pres:ind:imperf:neg, 2.base);
  6658 +#info: "nie" nie wchodzi do base
  6659 +
  6660 +
  6661 +Rule "pred -> Pred"
  6662 +
  6663 +Match: [pos~~"pred"];
  6664 +Eval: word(1, Pred:pres:ind:imperf:aff, ); #LD dopisane "aff"
  6665 +#Predykatyw "to" również otrzymuje te trzy wartości.
  6666 +
  6667 +
  6668 +#Rule "winien -> Winien"
  6669 +#
  6670 +#Match: [pos~~"winien"];
  6671 +#Eval: word(1, Winien, );
  6672 +
  6673 +
  6674 +Rule "pant -> Pant"
  6675 +
  6676 +Match: [pos~~"pant"];
  6677 +Eval: word(1, Pant:nrefl:aff, ); #LD dopisałam nrefl:
  6678 +
  6679 +
  6680 +Rule "pcon -> Pcon"
  6681 +
  6682 +Match: [pos~~"pcon"];
  6683 +Eval: word(1, Pcon:nrefl:aff, ); #LD dopisałam nrefl:
  6684 +
  6685 +
  6686 +Rule "pact -> Pact"
  6687 +
  6688 +Match: [pos~~"pact"];
  6689 +Eval: word(1, Pact:nrefl, ); #LD dopisałam nrefl:
  6690 +
  6691 +
  6692 +Rule "ppas -> Ppas"
  6693 +
  6694 +Match: [pos~~"ppas"];
  6695 +Eval: word(1, Ppas:nrefl, ); #LD dopisałam nrefl:
  6696 +
  6697 +
  6698 +Rule "zwrotność dla czasowników, imiesłowów itp. (3a)"
  6699 +
  6700 +Match: [orth~"[Ss]ię"] [base~"nie" && pos~"qub"]
  6701 + [pos~"Verbfin|Imps|Inf|Pant|Pcon|Pact|Ppas"];
  6702 +Eval: word(3, refl:neg, 3.base " " 1.base);
  6703 +
  6704 +
  6705 +Rule "zwrotność: czasownik modalny + się + bezokolicznik"
  6706 +
  6707 +Left: [pos~"Verbfin|Pred"
  6708 + && base~"musieć|móc|mieć|należeć|wypadać|woleć|chcieć|trzeba|warto|można|wolno"];
  6709 +Match: [orth~"się"] [pos~"Inf"];
  6710 +Eval: word(3, refl, 3.base " " 2.base);
  6711 +
  6712 +
  6713 +Rule "zwrotność: inny czasownik + się + bezokolicznik"
  6714 +
  6715 +Match: [pos~"Verbfin"] [orth~"się"];
  6716 +Right: [pos~"Inf"];
  6717 +Eval: word(1, refl, 0.base);
  6718 +
  6719 +
  6720 +Rule "zwrotność dla czasowników, imiesłowów itp. (1)"
  6721 +
  6722 +Match: [pos~"Verbfin|Imps|Inf|Pant|Pcon|Pact|Ppas"] [orth~"się"];
  6723 +Eval: word(1, refl, 0.base);
  6724 +
  6725 +
  6726 +Rule "zwrotność dla czasowników, imiesłowów itp. (2)"
  6727 +
  6728 +Match: [orth~"[Ss]ię"] [pos~"Verbfin|Imps|Inf|Pant|Pcon|Pact|Ppas"];
  6729 +Eval: word(2, refl, 2.base " " 1.base);
  6730 +
  6731 +
  6732 +Rule "zwrotność dla gerundiów (3)"
  6733 +
  6734 +Match: [orth~"[Ss]ię"] [base~"nie" && pos~"qub"] [pos~"ger"];
  6735 +Eval: word(3, Noun:refl:neg, 3.base " " 1.base);
  6736 +
  6737 +
  6738 +Rule "zwrotność dla gerundiów (1)"
  6739 +
  6740 +Match: [pos~"ger"] [orth~"się"];
  6741 +Eval: word(1, Noun:refl, 0.base);
  6742 +
  6743 +
  6744 +Rule "zwrotność dla gerundiów (2)"
  6745 +
  6746 +Match: [orth~"[Ss]ię"] [pos~"ger"];
  6747 +Eval: word(2, Noun:refl, 2.base " " 1.base);
  6748 +
  6749 +
  6750 +#ta reguła za chwilę będzie niepotrzebna
  6751 +#Rule "nrefl dla reszty"
  6752 +#
  6753 +#Match: [pos~"Verbfin|Ger" && reflexivity!~"refl"]; #LD usunęłam Pcon, Pant, Inf, Ppas, Pact, Imps
  6754 +#Eval: #word(1, nrefl, );
  6755 +# alter(1, nrefl, ); #LD zamiast word jest alter
  6756 +#co ze zwrotnością dla Ger, która teraz jest Noun
  6757 +
  6758 +
  6759 +Rule "negacja dla czasowników, imiesłowów"
  6760 +
  6761 +Match: [base~"nie" && pos~"qub"]
  6762 + ([pos~"Verbfin|Pred|Winien|Imps|Inf|Pant|Pcon|Pact|Ppas|Ger"]);
  6763 +Eval: word(2, neg, 2.base);
  6764 +#info: "nie" nie wchodzi do base
  6765 +
  6766 +
  6767 +#ta reguła za chwilę będzie niepotrzebna
  6768 +#Rule "brak negacji dla reszty"
  6769 +#
  6770 +#Match: [pos~"Verbfin|Winien|Pred|Ger" && negation!~"neg"]; #LD usunęłam Pcon, Pant, Inf, Ppas, Pact, Imps
  6771 +#Eval: #word(1, aff, );
  6772 +# alter(1, aff, ); #LD zamiast word jest alter
  6773 +
  6774 +
  6775 +Rule "Verbfin w cudzysłowie"
  6776 +
  6777 +Match: [orth~"\""] ns [pos~"Verbfin"] ns [orth~"\""];
  6778 +Eval: word(3, Verbfin, 0.base);
  6779 +
  6780 +
  6781 +Rule "adjc -> Adjc"
  6782 +
  6783 +Match: [pos~~"adjc"];
  6784 +Eval: word(1, Adjc, );
  6785 +
  6786 +
  6787 +Rule "adj -> Adj"
  6788 +
  6789 +Match: [pos~~"adj"];
  6790 +Eval: word(1, Adj, );
  6791 +
  6792 +
  6793 +Rule "adv -> Adv"
  6794 +
  6795 +Match: [pos~~"adv"];
  6796 +Eval: word(1, Adv, );
  6797 +
  6798 +
  6799 +Rule "conj -> Conj"
  6800 +
  6801 +Match: [pos~~"conj"];
  6802 +Eval: word(1, Conj, );
  6803 +
  6804 +
  6805 +Rule "comp -> Comp"
  6806 +
  6807 +Match: [pos~~"comp"];
  6808 +Eval: word(1, Comp, );
  6809 +
  6810 +
  6811 +Rule "interj -> Interj"
  6812 +
  6813 +Match: [pos~~"interj"];
  6814 +Eval: word(1, Interj, );
  6815 +
  6816 +
  6817 +Rule "interp -> Interp"
  6818 +
  6819 +Match: [pos~~"interp"];
  6820 +Eval: word(1, Interp, );
  6821 +
  6822 +
  6823 +Rule "qub -> Qub"
  6824 +
  6825 +Match: [pos~~"qub"];
  6826 +Eval: word(1, Qub, );
  6827 +
  6828 +
  6829 +Rule "prep -> Prep"
  6830 +
  6831 +Match: [pos~~"prep"];
  6832 +Eval: word(1, Prep, );
  6833 +
  6834 +
  6835 +Rule "subst|depr|ger -> Noun"
  6836 +
  6837 +Match: [pos~~"subst|depr|ger"];
  6838 +Eval: word(1, Noun, );
  6839 +
  6840 +
  6841 +Rule "num -> Num"
  6842 +
  6843 +Match: [pos~~"num"];
  6844 +Eval: word(1, Num, );
  6845 +
  6846 +
  6847 +Rule "numcol -> Numcol"
  6848 +
  6849 +Match: [pos~~"numcol"];
  6850 +Eval: word(1, Numcol, );
  6851 +
  6852 +
  6853 +Rule "ppron12 -> Ppron12"
  6854 +
  6855 +Match: [pos~~"ppron12"];
  6856 +Eval: word(1, Ppron12, );
  6857 +
  6858 +
  6859 +Rule "ppron3 -> Ppron3"
  6860 +
  6861 +Match: [pos~~"ppron3"];
  6862 +Eval: word(1, Ppron3, );
  6863 +
  6864 +
  6865 +Rule "siebie -> Siebie"
  6866 +
  6867 +Match: [pos~~"siebie"];
  6868 +Eval: word(1, Siebie, );
  6869 +
  6870 +
  6871 +Rule "xxx -> Xxx"
  6872 +
  6873 +Match: [pos~~"xxx"];
  6874 +Eval: word(1, Xxx, );
  6875 +
  6876 +
  6877 +#*Brev
  6878 +#Rule "brev -> Brev"
  6879 +#
  6880 +#Match: [pos~~"brev"];
  6881 +#Eval: word(1, Brev, );
  6882 +
  6883 +################## 1. GRUPY SKŁADNIOWE
  6884 +
  6885 +################ 1.2 GRUPY NIEZAGNIEŻDŻONE
  6886 +
  6887 +Rule "tytuły"
  6888 +
  6889 +Match: [orth~"„|“|”|\"|'|»"] ns?
  6890 + [orth~"[A-ZĆŁŚŹŻ].*"][]* ns
  6891 + [orth~"”|’’|\"|'|“|«"];
  6892 +Eval: group(NG,3,3);
  6893 +
  6894 +
  6895 +############### ADRESY
  6896 +
  6897 +Rule "NGadres: ul. + nazwa (Adj)"
  6898 +
  6899 +Match: [base~"ulica|plac|aleja"]
  6900 + [orth~"[A-ZŻŁÓŚĆŹ].*" && pos~"Adj"];
  6901 + #[orth~"[0-9][0-9]*"]?; Czy numery nie są zagnieżdżone?
  6902 +Eval: group(NGadres,1,1);
  6903 +
  6904 +
  6905 +########### DATY
  6906 +
  6907 +Rule "NGdata: pełna data cyframi"
  6908 +
  6909 +Match: [orth~"[0-9][0-9]?"] ns [orth~"\."] ns
  6910 + [orth~"[0-9][0-9]?"] ns [orth~"\."] ns
  6911 + [orth~"[1-9][0-9]*"] [orth~"r."]?;
  6912 +Eval: group(NGdata,5,5);
  6913 +
  6914 +
  6915 +Rule "NGdata: pełna data"
  6916 +
  6917 +Match: [base~"dzień"]?
  6918 + [orth~"[0-9][0-9]?[-–]?[0-9]?[0-9]?"] (ns? [orth~"-"] ns? [orth~"[0-9][0-9]?"])?
  6919 + ([base~"styczeń|luty|marzec|kwiecień||kwi|maj|czerwiec|lipiec|sierpień|wrzesień|październik|listopad|grudzień"] | [orth~"bm\."])
  6920 + ([orth~"[1-9][0-9]*"] ns? [orth~"zeszłego|tego|ubiegłego"]? [base~"rok"] | [pos~"Brev" && base~"bieżącego.roku"])?;
  6921 +Eval: group(NGdata,4,4);
  6922 +
  6923 +Rule "NGdata: miesiąc + rok"
  6924 +
  6925 +Match: [pos~"Adj"]?
  6926 + [base~"styczeń|luty|marzec|kwiecień|maj|czerwiec|lipiec|sierpień|wrzesień|październik|listopad|grudzień"]
  6927 + ([orth~"[1-9][0-9]*"] ns? [base~"rok"]? | [pos~"Brev" && base~"bieżącego.roku|ubiegłego.roku"] | ([pos~"Brev" && base~"ubiegły"] [orth~"roku"]));
  6928 +Eval: unify(number case gender,1,2);
  6929 + group(NGdata,2,2);
  6930 +
  6931 +Rule "NGdata: pełna data (miesiąc rzymskimi)"
  6932 +
  6933 +Match: [orth~"[0-9][0-9]?[-–]?[0-9]?[0-9]?"] (ns? [orth~"-"] ns? [orth~"[0-9][0-9]?"])?
  6934 + [base~"I|II|III|IV|V|VI|VII|VIII|IX|X|XI|XII"]
  6935 + [orth~"[1-9][0-9]*"]? [base~"rok"]?;
  6936 +Eval: group(NGdata,3,3);
  6937 +
  6938 +Rule "NGdata: liczba cyframi + rok"
  6939 +
  6940 +Match: [orth~"[1-9][0-9]*[-–]?[1-9]?[0-9]*"] (ns? [orth~"-"] ns? [orth~"[0-9][0-9]?"])?
  6941 + ([pos~"Brev" && base~"rok"] | [pos~"Noun" && base~"rok" && number~"sg"]);
  6942 +Eval: group(NGdata,3,3);
  6943 +
  6944 +Rule "NGdata: (Adj) + rok + liczba cyframi"
  6945 +
  6946 +Match: [pos~"Adj"]?
  6947 + [base~"rok"]
  6948 + ([orth~"[1-9][0-9]*[-–]?[1-9]?[0-9]*"] | ([orth~"[1-9][0-9]*"] ns? [orth~"-|/"] ns? [orth~"[1-9][0-9]*"]));
  6949 +Eval: group(NGdata,2,2);
  6950 +
  6951 +Rule "NGdata: liczba cyframi rzymskimi + 'wiek'"
  6952 +
  6953 +Match: [orth~"[IVCMLX][IVCMLX]*[-–]?[IVCMLX]*" && pos!~"Conj|Noun"]
  6954 + [base~"wiek"];
  6955 +Eval: group(NGdata,2,2);
  6956 +
  6957 +
  6958 +################## GODZINY
  6959 +
  6960 +Rule "NGgodz: godzina + liczba cyframi + kropka + liczba cyframi (lub zakres liczbowy)"
  6961 +
  6962 +Match: [base~"godzina"] ns?
  6963 + ([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]"]))?;
  6964 +Eval: group(NGgodz,1,1);
  6965 +
  6966 +Rule "NGgodz: liczba cyframi + dwukropek / kropka + liczba cyframi (lub zakres liczbowy)"
  6967 +
  6968 +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]"]);
  6969 +Eval: group(NGgodz,1,1);
  6970 +
  6971 +################# POZOSTAŁE GRUPY
  6972 +
  6973 +################# GRUPY LICZEBNIKOWE
  6974 +
  6975 +Rule "NGl: czas trzyelementowy (np. godzina:minuta:sekunda)"
  6976 +
  6977 +Match: [orth~"[0-9][0-9]*"] ns [orth~":|\."] ns [orth~"[0-9][0-9]*"] ns [orth~":|,"] ns [orth~"[0-9][0-9]*"];
  6978 +Eval: group(NGl,1,1);
  6979 +
  6980 +Rule "NGl: wyniki sportowe i przypisy oxfordzkie (x:y): liczba cyframi + dwukropek + liczba cyframi"
  6981 +
  6982 +Match: [orth~"[0-9][0-9]*"] ns [orth~":"] ns? [orth~"[0-9][0-9]*[a-z]?"];
  6983 +Eval: group(NGl,1,1);
  6984 +
  6985 +Rule "NGl: Adj + Num (zgoda) + Noun (rząd)" #te pięć kobiet
  6986 +
  6987 +Match: [pos~"Adj" && case!~"gen" && base!~"który"]
  6988 + $qub_przy_num?
  6989 + [pos~"Num|Numcol"]
  6990 + [pos~"Noun" && case~"gen"];
  6991 +Eval: unify(number case gender,1,2);
  6992 + unify(gender,1,3,4);
  6993 + group(NGl,3,4);
  6994 +
  6995 +
  6996 +Rule "NGl: (Adj) + Num + (Adj) + Noun + (Adj) (rząd)"
  6997 +
  6998 +Match: [pos~"Adj" && case~"gen"]?
  6999 + $qub_przy_num?
  7000 + [pos~"Num|Numcol" && case!~"gen"]
  7001 + [pos~"Adj" && case~"gen"]?
  7002 + [pos~"Noun" && case~"gen"]
  7003 + [pos~"Adj" && case~"gen"]?;
  7004 +Eval: unify(gender,1,3,4,5,6);
  7005 + group(NGl,3,5);
  7006 +
  7007 +
  7008 +Rule "NGl: (Qub|Adv) + (Adj) + Num + (n*Adj) + Noun + (Adj) (zgoda)"
  7009 +
  7010 +Match: ($qub_przy_adj | $qub_przy_num | $adv_przy_num)?
  7011 + [pos~"Adj"]?
  7012 + [pos~"Num|Numcol"]
  7013 + ([pos~"Adj|Pant|Ppas" && base!~"pozbawić"])?
  7014 + ((ns [orth~","])? ([base~"lecz|ale|choć|chociaż|bo|czyli"] | [base~"a"]? [base~"mimo to"])? [pos~"Adj|Pant|Ppas" && base!~"który|pozbawić"])*
  7015 + [pos~"Noun|Ppron12|Ppron3"]
  7016 + [pos~"Adj"]?;
  7017 +Eval: unify(number case gender,2,3,4,6,7);
  7018 + group(NGl,3,6);
  7019 +
  7020 +
  7021 +Rule "NGl: Num + Noun (procent)"
  7022 +
  7023 +Match: $qub_przy_adj?
  7024 + [pos~"Num"]
  7025 + [pos~"Noun" && orth~"procent"];
  7026 +Eval: group(NGl,2,3);
  7027 +
  7028 +
  7029 +Rule "NGl: Adj + liczba cyframi + Noun (rząd)" #te 5 kobiet
  7030 +
  7031 +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)
  7032 +Match: [pos~"Adj" && case!~"gen"]
  7033 + [orth~"[1-9][0-9]*[-–]?[1-9]?[0-9]*"]
  7034 + [pos~"Noun" && case~"gen"];
  7035 +Eval: unify(number gender,2,4);
  7036 + group(NGl,3,4);
  7037 +
  7038 +Rule "NGl: (Qub) + (Adj) + liczba cyframi + (Adj) + Noun + (Adj) (zgoda + rząd)"
  7039 +
  7040 +Match: ($qub_przy_num | [pos~"Brev" && base~"około" && brev_pos~"QUB"])?
  7041 + [pos~"Adj"]?
  7042 + [orth~"[1-9][0-9]*[-–]?[1-9]?[0-9]*"]
  7043 + [pos~"Adj"]?
  7044 + [pos~"Noun"]
  7045 + [pos~"Adj"];
  7046 +Eval: unify(number case gender,2,4,5,6);
  7047 + group(NGl,3,5);
  7048 +
  7049 +
  7050 +Rule "NGl: (Qub) + (Adj) + liczba cyframi + (Adj) + Noun + (Adj) (zgoda + rząd)"
  7051 +
  7052 +Match: ($qub_przy_num | [pos~"Brev" && base~"około" && brev_pos~"QUB"])?
  7053 + [pos~"Adj"]?
  7054 + [orth~"[1-9][0-9]*[-–]?[1-9]?[0-9]*"]
  7055 + [pos~"Adj"]?
  7056 + [pos~"Noun"];
  7057 +Eval: unify(number case gender,2,4,5);
  7058 + group(NGl,3,5);
  7059 +
  7060 +
  7061 +Rule "NGl: Adj + liczba cyframi + Noun (procent)"
  7062 +
  7063 +Match: [pos~"Adj"]
  7064 + [orth~"[1-9][0-9]*[-–]?[1-9]?[0-9]*"]
  7065 + [pos~"Noun" && orth~"procent"];
  7066 +Eval: group(NGl,2,3);
  7067 +
  7068 +Rule "NGl: (Adv|Qub) + Num|liczba cyframi + Brev"
  7069 +
  7070 +Match: ($qub_przy_num | $adv_przy_num)?
  7071 + ([pos~"Num|Numcol"] | [orth~"[1-9][0-9]*[-–]?[1-9]?[0-9]*"])
  7072 + [pos~"Brev|Brev-se" && brev_pos~~"NOUN|NG" && orth!~"§|im\."];
  7073 +Eval: group(NGl,2,3);
  7074 +
  7075 +Rule "NGl: Noun + Num (rząd)"
  7076 +
  7077 +Match: [pos~"Noun" && case~"gen"]
  7078 + [pos~"Num|Numcol"];
  7079 +Right: ([pos~"Noun|Adj" && case!~"gen"] | [pos!~"Noun|Adj"] | se | ns);
  7080 +Eval: group(NGl,2,1);
  7081 +
  7082 +Rule "NGl: Noun + Num (zgoda)"
  7083 +
  7084 +Match: [pos~"Noun"]
  7085 + [pos~"Num|Numcol"];
  7086 +Right: ([pos~"Noun|Adj" && case!~"gen"] | [pos!~"Noun|Adj"] | se | ns);
  7087 +Eval: unify(number case gender,1,2);
  7088 + group(NGl,2,1);
  7089 +
  7090 +
  7091 +Rule "NGl: Adj + Noun + liczba cyframi (rząd)" #tych przebiegów 10
  7092 +
  7093 +Match: [pos~"Adj" && case~"gen"]
  7094 + [pos~"Noun" && case~"gen"]
  7095 + [orth~"[1-9][0-9]*[-–]?[1-9]?[0-9]*"];
  7096 +Right: ([pos~"Noun|Adj" && case!~"gen"] | [pos!~"Noun|Adj"] | se | ns);
  7097 +Eval: unify(number gender,1,2);
  7098 + group(NGl,3,2);
  7099 +
  7100 +
  7101 +Rule "NGl: zakresy liczbowe (cyframi), trójelementowe"
  7102 +
  7103 +Match: [orth~"[1-9][0-9]*"] ns? [orth~"-|–"] ns? [orth~"[1-9][0-9]*"];
  7104 +Eval: group(NGl,1,1);
  7105 +
  7106 +
  7107 +############################### GRUPY RZECZOWNIKOWO-RZECZOWNIKOWE
  7108 +
  7109 +
  7110 +Rule "NGs: (Adj) + Noun(osoba) + (Noun[osoba]) + Noun + (Noun) (tytuł + imię + nazwisko)"
  7111 +
  7112 +Match: [pos~"Adj"]?
  7113 + ($osoba | $tytul)
  7114 + [pos~"Adj"]?
  7115 + ($osoba | $tytul)?
  7116 + ([pos~"Noun" && base~"[A-ZĆŁŚŹŻÓ].*" && orth!~"Skarbu|Rosji|Francji"] | [pos~"Noun" && base~"sprawozdawca"])
  7117 + [pos~"Noun|Adj" && orth~"[A-ZĆŁŚŹŻÓ].*"]*;
  7118 +Eval: unify(number case,1,2,3,4,5,6);
  7119 + group(NGs,2,2);
  7120 +#łapie się ministra Skarbu Państwa, ale dużo grup niezagnieżdżonych się nie złapie, jeśli wyeliminuje się dopełniacze
  7121 +#dziwnostka: dlaczego na tę regułę i regułę niżej łapią się dwuczłonowe nazwiska z łącznikami?
  7122 +
  7123 +Rule "NGs: (Adj) + Noun + (Adj) + n*Noun"
  7124 +
  7125 +Match: $tytul?
  7126 + [pos~"Adj" && case!~"gen"]?
  7127 + [pos~"Noun" && case!~"gen"]
  7128 + [pos~"Adj" && case!~"gen"]?
  7129 + [pos~"Noun" && case!~"gen"]+;
  7130 +Eval: unify(number case,2,3,4,5);
  7131 + group(NGs,3,3);
  7132 +#nie łapią się dopełniacze, można na wszelki wypadek zrezygnować jeszcze z mianowników
  7133 +
  7134 +
  7135 +Rule "NGs: nazwiska w dopełniaczu"
  7136 +
  7137 +Match: [pos~"Adj" && case~"gen"]?
  7138 + [pos~"Noun" && base~"[A-ZĆŁŚŹŻÓ].*" && case~"gen"]
  7139 + [pos~"Noun" && base~"[A-ZĆŁŚŹŻÓ].*" && case~"gen"];
  7140 +Eval: unify(number,1,2,3);
  7141 + group(NGs,2,2);
  7142 +
  7143 +
  7144 +Rule "NGs: Noun + Noun (chodzi o dopełniacze)"
  7145 +
  7146 +Match: $osoba
  7147 + $osoba;
  7148 +Eval: group(NGs,1,1);
  7149 +
  7150 +
  7151 +
  7152 +################################# GRUPY RZECZOWNIKOWO-PRZYMIOTNIKOWE
  7153 +
  7154 +Rule "NGa: przymiotnik porządkowy rzymskimi + (Adj) + Noun + (Adj)"
  7155 +
  7156 +Match: [orth~"[IVCMLX][IVCMLX]*[-–]?[IVCMLX]*" && pos!~"Conj|Noun"]
  7157 + [pos~"Adj"]?
  7158 + [pos~"Noun"]
  7159 + [pos~"Adj"]?;
  7160 +Eval: unify(number case gender,2,3,4);
  7161 + group(NGa,3,3);
  7162 +
  7163 +Rule "NGa: przymiotnik porządkowy rzymskimi + wiek"
  7164 +
  7165 +Match: [orth~"[IVCMLX][IVCMLX]*[-–]?[IVCMLX]*"]
  7166 + [orth~"w\."];
  7167 +Eval: group(NGa,2,2);
  7168 +#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'
  7169 +
  7170 +Rule "NGa: Noun + (Noun) + (Noun) + przymiotnik porządkowy rzymskimi"
  7171 +
  7172 +Match: [pos~"Noun"]
  7173 + [pos~"Noun" && orth~"[A-ZŹĆŻÓŚ].*"]?
  7174 + [pos~"Noun" && orth~"[A-ZŹĆŻÓŚ].*"]?
  7175 + [orth~"[IVCMLX][IVCMLX]*[-–]?[IVCMLX]*" && pos!~"Conj|Noun"];
  7176 +Eval: unify(number case gender,1,2,3);
  7177 + group(NGa,1,1);
  7178 +
  7179 +
  7180 +Rule "NGa: paragraf/artykuł + numer cyframi"
  7181 +
  7182 +Match: [base~"artykuł|§|$"] ns? [orth~"[0-9][0-9]*[-–]?[0-9]?[0-9]*"];
  7183 +Eval: group(NGa,1,1);
  7184 +### 'artykuł' się nie łapie, bo 'art' to ign na ms
  7185 +
  7186 +Rule "NGa: msza św."
  7187 +
  7188 +Match: [base~"msza|komunia|pismo" && pos~"Noun"] [base~"święty" && pos~"Brev"];
  7189 +Eval: group(NGa,1,1);
  7190 +
  7191 +Rule "NGa: jak + Adj (sup) + Noun"
  7192 +
  7193 +Match: [base~"jak" && pos~"Adv"]
  7194 + [pos~"Adj" && degree~"sup"]
  7195 + [pos~"Noun"];
  7196 +Eval: unify(number case gender,2,3);
  7197 + group(NGa,3,3);
  7198 +
  7199 +Rule "NGx: zaimek + Adj gen"
  7200 +
  7201 +Match: [base~"coś|nic|co|cóż"] ([pos~"Adj" && case~"gen"] | [orth~"więcej"]);
  7202 +Eval: group(NGx,1,1);
  7203 +
  7204 +Rule "NGa: (Adj) + Ppron3 + Noun"
  7205 +
  7206 +Match: [pos~"Adj"]?
  7207 + [pos~"Ppron3" && case~"gen" && post-prepositionality~"npraep"]
  7208 + [pos~"Adj"]?
  7209 + [pos~"Noun"]
  7210 + [pos~"Adj"]?;
  7211 +Eval: group(NGa,4,4);
  7212 +# 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
  7213 +
  7214 +Rule "NGa: Noun + Ppron3"
  7215 +
  7216 +Match: [pos~"Noun"]
  7217 + [pos~"Ppron3" && case~"gen"];
  7218 +Eval: group(NGa,1,1);
  7219 +
  7220 +
  7221 +################### Adj na początku
  7222 +
  7223 +# 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)
  7224 +Rule "NGa: Adv + Adj + (n*((Adv) + Adj)) + Noun + (Adj)"
  7225 +
  7226 +Match: $adv_przy_adj
  7227 + [pos~"Adj|Pact" && base!~"pozbawić|który"]
  7228 + [pos~"Adv" && base!~"gdy|gdzie|kiedy|rano|jak"]?
  7229 + ((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ć"])*
  7230 + [pos~"Noun|Ppron12|Ppron3"]
  7231 + [pos~"Adj"]?;
  7232 +Eval: unify(number case gender,2,5,6);
  7233 + group(NGa,5,5);
  7234 +
  7235 +Rule "NGa: (Adv) + Ppas (Nom) + Noun + (Adj)"
  7236 +
  7237 +Left: ([pos~"Verbfin" && base!~"być|zostać"] | [pos!~"Verbfin"] | sb);
  7238 +Match: $qub_przy_adj?
  7239 + [pos~"Adv" && base!~"jak|gdzie|kiedy|gdy|skąd|dokąd|dlaczego|dlatego|tymczasem|odtąd"]?
  7240 + [pos~"Ppas" && case~"nom"]
  7241 + $qub_przy_adj?
  7242 + [pos~"Noun" && case~"nom"]
  7243 + [pos~"Adj" && case~"nom"]?;
  7244 +Eval: unify(number gender,4,6,7);
  7245 + group(NGa,6,6);
  7246 +
  7247 +Rule "NGa: (Adv) + Ppas (nNom) + Noun + (Adj)"
  7248 +
  7249 +Match: $qub_przy_adj?
  7250 + [pos~"Adv" && base!~"jak|gdzie|kiedy|gdy|skąd|dokąd|dlaczego|dlatego|tymczasem"]?
  7251 + [pos~"Ppas" && case!~"nom"]
  7252 + $qub_przy_adj?
  7253 + [pos~"Adj" && case!~"nom"]?
  7254 + [pos~"Noun" && case!~"nom"]
  7255 + [pos~"Adj" && case!~"nom"]?;
  7256 +Eval: unify(number gender,3,5,6,7);
  7257 + group(NGa,6,6);
  7258 +
  7259 +
  7260 +##"pozbawiony" wymaga zagnieżdżonego dopełniacza (chyba że dziwny przestawny szyk); oczywiście jest tego więcej - tu wprowadzone "awaryjnie";
  7261 +##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
  7262 +##IMHO więcej szkody z usunięcia Ppas niż z pozostawienia
  7263 +Rule "NGa: (Qub) + Adj + (n*((Adv) + Adj)) + Noun + (Adj)"
  7264 +
  7265 +Match: $qub_przy_adj?
  7266 + [pos~"Adj|Pact" && base!~"pozbawić|który"]
  7267 + $qub_przy_adj?
  7268 + [pos~"Adv" && base!~"gdy|gdzie|kiedy|rano|jak"]?
  7269 + ((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ć"])+
  7270 + [pos~"Noun|Ppron12|Ppron3"]
  7271 + [pos~"Adj" && base!~"który"]?;
  7272 +Eval: unify(number case gender,2,6,7);
  7273 + group(NGa,6,6);
  7274 +
  7275 +
  7276 +Rule "NGa: (Qub) + Adj + (Qub) + (Adv) + Noun + (Adj)"
  7277 +
  7278 +Match: $qub_przy_adj?
  7279 + [pos~"Adj|Pact" && base!~"pozbawić|który"]
  7280 + $qub_przy_adj?
  7281 + [pos~"Adv" && base!~"gdy|gdzie|kiedy|rano|jak"]?
  7282 + [pos~"Noun|Ppron12|Ppron3"]
  7283 + [pos~"Adj" && base!~"który"]?;
  7284 +Eval: unify(number case gender,2,5,6);
  7285 + group(NGa,5,5);
  7286 +
  7287 +
  7288 +Rule "NGa: Adj + Noun"
  7289 +
  7290 +Match: [pos~"Adj|Pact" && base!~"pozbawić|który"]
  7291 + [pos~"Noun|Ppron12|Ppron3"];
  7292 +Eval: unify(number case gender,1,2);
  7293 + group(NGa,2,2);
  7294 +################## 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
  7295 +
  7296 +################## Noun na początku
  7297 +
  7298 +
  7299 +
  7300 +Rule "NGa: Noun + (Adv) + n*Adj Gen"
  7301 +
  7302 +Match: [pos~"Noun|Ppron12|Ppron3" && base!~"co" && case~"gen"] [pos~"Adv"]? [pos~"Adj|Pact|Ppas" && case~"gen"]+;
  7303 +#Right: ([pos!~"Noun"] | [pos~"Noun" && case!~"gen"] | ns | se);
  7304 +Eval: unify(number case gender,1,3);
  7305 + group(NGa,1,1);
  7306 +#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
  7307 +
  7308 +Rule "NGa: Noun + (Adv) + n*Adj nGen nNom (po przecinkach)"
  7309 +
  7310 +Match: [pos~"Noun|Ppron12|Ppron3" && base!~"co" && case!~"gen"]
  7311 + [pos~"Adv"]?
  7312 + [pos~"Adj|Pact|Ppas" && case!~"gen|nom" && base!~"który"]
  7313 + (ns [orth~","] [pos~"Adj|Pact|Ppas" && base!~"który|pozbawić"])+;
  7314 +Eval: unify(number case gender,1,3);
  7315 + group(NGa,1,1);
  7316 +
  7317 +Rule "NGa: Noun + (Adv) + n*Adj nGen nNom"
  7318 +
  7319 +Match: [pos~"Noun|Ppron12|Ppron3" && base!~"co" && case!~"gen"] [pos~"Adv"]? [pos~"Adj|Pact|Ppas" && case!~"gen|nom" && base!~"który"]+;
  7320 +Eval: unify(number case gender,1,3);
  7321 + group(NGa,1,1);
  7322 +
  7323 +Rule "NGa: Noun + (Adv) + n*Adj Nom"
  7324 +
  7325 +Left: ([pos~"Verbfin" && base!~"być|zostać"] | [pos!~"Verbfin"] | sb);
  7326 +Match: [pos~"Noun|Ppron12|Ppron3" && case~"nom"]
  7327 + [pos~"Adv"]?
  7328 + [pos~"Adj|Pact|Ppas" && case~"nom"]+;
  7329 +Right: ([pos~"Verbfin" && base!~"być|zostać"] | [pos!~"Verbfin"] | ns | se);
  7330 +Eval: unify(number gender,2,4);
  7331 + group(NGa,2,2);
  7332 +
  7333 +Rule "NGa w cudzysłowie"
  7334 +
  7335 +Match: [orth~"„|“|”|\"|'|»"] ns?
  7336 + [type="NGa" && synh=[orth~"[a-zćłśźżó].*"]] ns?
  7337 + [orth~"”|’’|\"|'|“|«"];
  7338 +Eval: group(NGa,3,3);
  7339 +
  7340 +###################################### GRUPY PRZYMIOTNIKOWE
  7341 +
  7342 +Rule "AdjGl: Num + Adj (rząd)"
  7343 +
  7344 +Match: $qub_przy_num?
  7345 + [pos~"Num|Numcol"]
  7346 + [pos~"Adj" && case~"gen"];
  7347 +Eval: group(AdjGl,2,3);
  7348 +
  7349 +Rule "AdjGl: Num + Adj (zgoda)"
  7350 +
  7351 +Match: $qub_przy_num?
  7352 + [pos~"Num|Numcol"]
  7353 + [pos~"Adj"];
  7354 +Eval: unify(number case gender,2,3);
  7355 + group(AdjGl,2,3);
  7356 +
  7357 +Rule "AdjGl: liczba cyframi + Adj"
  7358 +
  7359 +Match: [orth~"[1-9][0-9]*[-–]?[1-9]?[0-9]*"]
  7360 + [pos~"Adj"];
  7361 +Eval: group(AdjGl,1,2);
  7362 +
  7363 +Rule "Adj + Adj"
  7364 +
  7365 +Match: [pos~"Adj"]
  7366 + [pos~"Adj" && base!~"który"];
  7367 +Eval: unify(number case gender,1,2);
  7368 + group(AdjG,1,1);
  7369 +
  7370 +Rule "Adv + Adj"
  7371 +
  7372 +Match: $adv_przy_adj
  7373 + [pos~"Adj|Ppas"];
  7374 +Eval: group(AdjG,2,2);
  7375 +
  7376 +##################################### GRUPY ZE SKRÓTAMI (nie wychwytywane wyżej)
  7377 +
  7378 +Rule "NGb: Brev(NOUN) + Noun"
  7379 +
  7380 +Match: [pos~"Brev" && brev_pos~~"NOUN" && base!~"imienia|ulica|plac|aleja"]
  7381 + [pos~"Noun" && base~"[A-ZĆŹŻŚÓ].*"]+;
  7382 +Eval: group(NGb,1,1);
  7383 +
  7384 +Rule "NGb: Brev(ADJ) + Noun"
  7385 +
  7386 +Match: [pos~"Brev" && brev_pos~~"ADJ" && base!~"imienia|ulica|plac|aleja"]
  7387 + [pos~"Noun" && base~"[A-ZĆŹŻŚÓ].*"]
  7388 + [pos~"Noun" && base~"[A-ZĆŹŻŚÓ].*"]*;
  7389 +Eval: group(NGb,2,2);
  7390 +
  7391 +Rule "Noun + Brev (NOUN|ADJ)"
  7392 +
  7393 +Match: [pos~"Noun"]
  7394 + [pos~"Brev|Brev-se" && brev_pos~"NOUN|ADJ" && base!~"imienia|ulica|plac|aleja"];
  7395 +Eval: group(NGb,1,1);
  7396 +
  7397 +
  7398 +Rule "NGb: Brev + liczba cyframi"
  7399 +
  7400 +Match: [pos~~"Brev" && brev_pos~"NOUN"] ns?
  7401 + [orth~"[1-9][0-9]*[-–]?[1-9]?[0-9]*"] (ns [orth~"-"] ns [orth~"[0-9]+"])?;
  7402 +Eval: group(NGb,1,1);
  7403 +
  7404 +############################################ POJEDYNCZE WYRAZY
  7405 +
  7406 +Rule "(Qub) + Noun"
  7407 +
  7408 +Match: [pos~"Qub" && base~"prawie|ponad|dopiero|niby|byle|niemal|nie|tylko|jeszcze|już|minimum|ani|i|to"]?
  7409 + [pos~"Noun|Ppron12|Ppron3|Siebie"];
  7410 +Eval: group(NG,2,2);
  7411 +
  7412 +Rule "(Qub) + Num"
  7413 +
  7414 +Match: ($qub_przy_num | [pos~"Brev" && brev_pos~QUB && base~"około"])?
  7415 + [pos~"Num"];
  7416 +Eval: group(NumG,2,2);
  7417 +
  7418 +
  7419 +Rule "(Qub) + Adj"
  7420 +
  7421 +Match: $qub_przy_adj?
  7422 + [pos~"Adj|Ppas|Pact"];
  7423 +Eval: group(AdjG,2,2);
  7424 +
  7425 +Rule "Brev"
  7426 +
  7427 +Match: [pos~"Brev" && brev_pos~"NOUN"];
  7428 +Eval: group(NG,1,1);
  7429 +
  7430 +Rule "grupa w cudzysłowie"
  7431 +
  7432 +Match: [orth~"„|“|”|\"|'|»"] ns?
  7433 + [type="NG" && synh=[orth~"[a-zćłśźżó].*"]] ns?
  7434 + [orth~"”|’’|\"|'|“|«"];
  7435 +Eval: group(NG,3,3);
  7436 +
  7437 +############################### GRUPY ZAGNIEŻDŻONE
  7438 +
  7439 +######################################## ADRESY
  7440 +
  7441 +Rule "NGadres: ulica + NG(gen) +(numer)"
  7442 +
  7443 +Match: [type="NG" && synh=[base~"ulica|plac|aleja"]]
  7444 + [type="NG" && synh=[case~"gen" && base~"[A-ZŁÓŻŹĆ].*"]]
  7445 + ([orth~"[0-9][0-9]?[-–]?[0-9]?[0-9]?[A-ZŁŚŻ]?"] (ns? [orth~"-"] ns? [orth~"[0-9][0-9]?"])?)?;
  7446 +Eval: group(NGadres,1,1);
  7447 +
  7448 +
  7449 +Rule "NGadres: NGadres + numer"
  7450 +
  7451 +Match: [type="NGadres"]
  7452 + [orth~"[0-9][0-9]?[-–]?[0-9]?[0-9]?[A-ZŁŚŻ]?"] (ns? [orth~"-"] ns? [orth~"[0-9][0-9]?"])?;
  7453 +Eval: group(NGadres,1,1);
  7454 +
  7455 +###################################### GRUPY NG2
  7456 +
  7457 +Rule "NG2: NG(gen) + NG"
  7458 +
  7459 +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"]]
  7460 + [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb" && synh=[base!~"co|on|ja|ty|my|wy|siebie"]];
  7461 +Eval: group(NG2,2,2);
  7462 +
  7463 +
  7464 +Rule "NG2: NG + NG(gen) + [NG(nom|gen|dat|inst)]"
  7465 +
  7466 +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"]]
  7467 + [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb" && synh=[case~"gen" && base!~"co|siebie"]];
  7468 +Right: [type=".*"];
  7469 +Eval: group(NG2,1,1);
  7470 +
  7471 +
  7472 +Rule "NG2: [NG] + NG(gen) + NG(dat) | NG + NG(dat) + [NG(gen)]"
  7473 +
  7474 +Match: [type=".*" && synh=[base~"przybliżenie|uchylić|przekazać|podać|wręczyć|nieść|przesłać|darować|darowanie"]]
  7475 + [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb" && synh=[case~"dat" && base!~"co|siebie"]];
  7476 +Right: [type=".*"];
  7477 +Eval: group(NG2,1,1);
  7478 +
  7479 +
  7480 +Rule "NG2: [NG] + NG(gen) + NG(inst) | NG + NG(inst) + [NG(gen)]"
  7481 +
  7482 +Match: [type=".*" && synh=[base~"pomalować"]]
  7483 + [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb" && synh=[case~"inst" && base!~"co|siebie"]];
  7484 +Right: [type=".*"];
  7485 +Eval: group(NG2,1,1);
  7486 +
  7487 +
  7488 +
  7489 +Rule "NG2: NG + NG(gen) nie przed NG(gen) i nie przed koordynacją"
  7490 +
  7491 +Left: ([synh=[base!~"mistrzostwo|rekord|ułatwienie|order|puchar"]] | sb | [pos~".*"]);
  7492 +Match: [type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb" && synh=[base!~"co|on|ja|ty|my|wy|siebie|to"]]
  7493 + ([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"]]);
  7494 +Right: (se | (ns [orth~","] ([pos!~"Conj"] | [type=".*" && synh=[case!~"gen"]])) | (ns [orth!~","]) | ([pos~"Conj"] [type=".*" && synh=[case!~"gen"]]) | [pos!~"Conj"] | [type=".*" && synh=[case!~"gen"]]);
  7495 +Eval: group(NG2,2,2);
  7496 +
  7497 +
  7498 +Rule "NG2: NG + NG(gen) nie przed NG(gen) i nie przed koordynacją (2)"
  7499 +
  7500 +Left: ([synh=[base!~"mistrzostwo|rekord|ułatwienie|order|puchar"]] | sb | [pos~".*"]);
  7501 +Match: [type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb" && synh=[base!~"co|on|ja|ty|my|wy|siebie|to"]]
  7502 + ([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"]]);
  7503 +Right: (se | (ns [orth~","] ([pos!~"Conj"] | [type=".*" && synh=[case!~"gen"]])) | (ns [orth!~","]) | ([pos~"Conj"] [type=".*" && synh=[case!~"gen"]]) | [pos!~"Conj"] | [type=".*" && synh=[case!~"gen"]]);
  7504 +Eval: group(NG2,2,2);
  7505 +
  7506 +
  7507 +Rule "NG2: NG + NG(dat)"
  7508 +
  7509 +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"]]
  7510 + [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb" && synh=[case~"dat" && base!~"co|on|ja|ty|my|wy|siebie"]];
  7511 +Right: (se | (ns [orth~","] ([pos!~"Conj"] | [type=".*" && synh=[case!~"dat"]])) | (ns [orth!~","]) | ([pos~"Conj"] [type=".*" && synh=[case!~"dat"]]) | [pos!~"Conj"] | [type=".*" && synh=[case!~"gen"]]);
  7512 +Eval: group(NG2,1,1);
  7513 +
  7514 +
  7515 +Rule "NG2: NG(Pact) + NG(acc)"
  7516 +
  7517 +Match: [type="AdjG|NGa" && synh=[base!~"który|jaki|co|siebie"]]
  7518 + [type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb" && synh=[case~"acc" && base!~"co|siebie"]];
  7519 +Right: (se | (ns [orth~","] ([pos!~"Conj"] | [type=".*" && synh=[case!~"acc"]])) | (ns [orth!~","]) | ([pos~"Conj"] [type=".*" && synh=[case!~"acc"]]) | [pos!~"Conj"] | [type=".*" && synh=[case!~"gen"]]);
  7520 +Eval: group(NG2,1,1);
  7521 +
  7522 +
  7523 +Rule "NG2: NG + NG(inst)"
  7524 +
  7525 +Match: [type="NG|NGa" && synh=[base!~"co|on|ja|ty|my|wy|siebie|czas"]]
  7526 + [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb" && synh=[case~"inst" && base!~"co|ja|ty|my|wy|on|siebie|czas"]];
  7527 +Right: (se | (ns [orth~","] ([pos!~"Conj"] | [type=".*" && synh=[case!~"inst"]])) | (ns [orth!~","]) | ([pos~"Conj"] [type=".*" && synh=[case!~"inst"]]) | [pos!~"Conj"] | [type=".*" && synh=[case!~"gen"]]);
  7528 +Eval: group(NG2,1,1);
  7529 +
  7530 +
  7531 +Rule "NG2: NG + NGl z cyframi"
  7532 +
  7533 +Match: [type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb" && synh=[base!~"co|on|ja|ty|my|wy|siebie"]]
  7534 + [type="NGl"];
  7535 +Eval: group(NG2,1,1);
  7536 +
  7537 +############################################# GRUPY SKOORDYNOWANE NG po NG2
  7538 +
  7539 +Rule "NGk: NG(gen) + NG(gen)"
  7540 +
  7541 +Left: [type=".*"] [pos~"Conj"]?;
  7542 +Match: [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb" && synh=[case~"gen"]]
  7543 + (([pos~"Conj"] | (ns? [orth~",|-|–|\+|/|:"] ns?) | (ns [orth~","] [pos~"Conj"]))
  7544 + [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb" && synh=[case~"gen"]])+;
  7545 +Eval: group(NGk,3,3);
  7546 +
  7547 +Rule "NGk: NG(dat) + NG(dat)"
  7548 +
  7549 +Left: [type=".*"] [pos~"Conj"]?;
  7550 +Match: [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb" && synh=[case~"dat"]]
  7551 + (([pos~"Conj"] | (ns? [orth~",|-|–|\+|/|:"] ns?) | (ns [orth~","] [pos~"Conj"]))
  7552 + [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb" && synh=[case~"dat"]])+;
  7553 +Eval: group(NGk,3,3);
  7554 +
  7555 +Rule "NGk: NG(acc) + NG(acc)"
  7556 +
  7557 +Left: [type="AdjG|NGa"] [pos~"Conj"]?;
  7558 +Match: [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb" && synh=[case~"acc"]]
  7559 + (([pos~"Conj"] | (ns? [orth~",|-|–|\+|/|:"] ns?) | (ns [orth~","] [pos~"Conj"]))
  7560 + [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb" && synh=[case~"acc"]])+;
  7561 +Eval: group(NGk,3,3);
  7562 +
  7563 +Rule "NGk: NG(inst) + NG(inst)"
  7564 +
  7565 +Left: [type=".*"] [pos~"Conj"]?;
  7566 +Match: [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb" && synh=[case~"inst"]]
  7567 + (([pos~"Conj"] | (ns? [orth~",|-|–|\+|/|:"] ns?) | (ns [orth~","] [pos~"Conj"]))
  7568 + [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb" && synh=[case~"inst"]])+;
  7569 +Eval: group(NGk,3,3);
  7570 +
  7571 +############################################# GRUPY NG2 Z GRUPAMI SKOORDYNOWANYMI
  7572 +
  7573 +
  7574 +Rule "NG2: NG + NGk(gen) + [NG(nom|gen|dat|inst)]"
  7575 +
  7576 +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"]]
  7577 + [type="NGk" && synh=[case~"gen" && base!~"co|siebie"]];
  7578 +Right: [type=".*"];
  7579 +Eval: group(NG2,1,1);
  7580 +
  7581 +
  7582 +Rule "NG2: [NG] + NG(gen) + NGk(dat) | NG + NG(dat) + [NG(gen)]"
  7583 +
  7584 +Match: [type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb" && synh=[base~"przybliżenie|uchylić|przekazać|podać|wręczyć|nieść|przesłać|darować|darowanie"]]
  7585 + [type="NGk" && synh=[case~"dat" && base!~"co|siebie"]];
  7586 +Right: [type=".*"];
  7587 +Eval: group(NG2,1,1);
  7588 +
  7589 +
  7590 +Rule "NG2: [NG] + NG(gen) + NGk(inst) | NG + NGk(inst) + [NG(gen)]"
  7591 +
  7592 +Match: [type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb" && synh=[base~"pomalować"]]
  7593 + [type="NGk" && synh=[case~"inst"]];
  7594 +Right: [type=".*"];
  7595 +Eval: group(NG2,1,1);
  7596 +
  7597 +
  7598 +Rule "NG2: NG + NGk(gen)"
  7599 +
  7600 +Left: ([synh=[base!~"mistrzostwo|rekord|ułatwienie|order|puchar"]] | sb | [pos~".*"]);
  7601 +Match: [type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb" && synh=[base!~"co|on|ja|ty|my|wy|siebie"]]
  7602 + [type="NGk" && synh=[case~"gen"]];
  7603 +Eval: group(NG2,2,2);
  7604 +
  7605 +
  7606 +Rule "NG2: NG + NGk(gen)(2)"
  7607 +
  7608 +Left: ([synh=[base!~"mistrzostwo|rekord|ułatwienie|order|puchar"]] | sb | [pos~".*"]);
  7609 +Match: [type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb" && synh=[base!~"co|on|ja|ty|my|wy|siebie"]]
  7610 + [type="NGk" && synh=[case~"gen"]];
  7611 +Eval: group(NG2,2,2);
  7612 +
  7613 +
  7614 +Rule "NG2: NG + NGk(dat)"
  7615 +
  7616 +Match: [type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb" && synh=[base!~"obszar|rozdział|błogosławieństwo|ulegać|scena"]]
  7617 + [type="NGk" && synh=[case~"dat"]];
  7618 +Eval: group(NG2,1,1);
  7619 +
  7620 +
  7621 +Rule "NG2: NG(Pact) + NGk(acc)"
  7622 +
  7623 +Match: [type="AdjG|NGa" && synh=[base~"koić|mieć|usuwać|przyjmować|zaburzać|organ|tłumaczyć|obejmować|bariera|dotyczyć"]]
  7624 + [type="NGk" && synh=[case~"acc"]];
  7625 +Eval: group(NG2,1,1);
  7626 +
  7627 +
  7628 +Rule "NG2: NG + NGk(inst)"
  7629 +
  7630 +Match: [type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb" && synh=[base~"handlować|kosz"]]
  7631 + [type="NGk" && synh=[case~"inst"]];
  7632 +Eval: group(NG2,1,1);
  7633 +
  7634 +
  7635 +################################### NG2 W CUDZYSŁOWACH
  7636 +
  7637 +Rule "NG2 w cudzysłowie"
  7638 +
  7639 +Match: [orth~"„|“|”|\"|'|»"] ns?
  7640 + [type="NG2" && synh=[orth~"[a-zćłśźżó].*"]] ns?
  7641 + [orth~"”|’’|\"|'|“|«"];
  7642 +Eval: group(NG2,3,3);
  7643 +
  7644 +######################################################### GRUPY NG3
  7645 +
  7646 +
  7647 +Rule "NG3: NG2 + NG (gen)"
  7648 +
  7649 +Match: [type="NG2"]
  7650 + [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NG2" && synh=[case~"gen" && base!~"co|on|ja|ty|my|wy|siebie"]];
  7651 +Right: (se | (ns [orth~","] ([pos!~"Conj"] | [type=".*" && synh=[case!~"gen"]])) | (ns [orth!~","]) | ([pos~"Conj"] [type=".*" && synh=[case!~"gen"]]) | [pos!~"Conj"] | [type=".*" && synh=[case!~"gen"]]);
  7652 +Eval: group(NG3,1,1);
  7653 +
  7654 +Rule "NG3: NG2 + NG(dat)"
  7655 +
  7656 +Match: [type="NG2"]
  7657 + [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NG2" && synh=[case~"dat" && base!~"co|on|ja|ty|my|wy|siebie"]];
  7658 +Right: (se | (ns [orth~","] ([pos!~"Conj"] | [type=".*" && synh=[case!~"dat"]])) | (ns [orth!~","]) | ([pos~"Conj"] [type=".*" && synh=[case!~"dat"]]) | [pos!~"Conj"] | [type=".*" && synh=[case!~"gen"]]);
  7659 +Eval: group(NG3,1,1);
  7660 +
  7661 +Rule "NG3: NG2 + NG(inst)"
  7662 +
  7663 +Match: [type="NG2"]
  7664 + [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NG2" && synh=[case~"inst" && base!~"co|on|ja|ty|my|wy|siebie"]];
  7665 +Right: (se | (ns [orth~","] ([pos!~"Conj"] | [type=".*" && synh=[case!~"inst"]])) | (ns [orth!~","]) | ([pos~"Conj"] [type=".*" && synh=[case!~"inst"]]) | [pos!~"Conj"] | [type=".*" && synh=[case!~"gen"]]);
  7666 +Eval: group(NG3,1,1);
  7667 +
  7668 +
  7669 +Rule "NG3: NG + NG2(gen)"
  7670 +
  7671 +Match: [type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb|NG2" && synh=[base!~"co|on|ja|ty|my|wy|siebie"]]
  7672 + [type="NG2" && synh=[case~"gen"]];
  7673 +Eval: group(NG3,1,1);
  7674 +
  7675 +
  7676 +Rule "NG3: NG + NG2(acc)"
  7677 +
  7678 +Match: [type="NGa|AdjG" && synh=[base!~"który|jaki|co|siebie"]]
  7679 + [type="NG2" && synh=[case~"acc"]];
  7680 +Eval: group(NG3,1,1);
  7681 +
  7682 +
  7683 +Rule "NG3: NG + NG2(inst)"
  7684 +
  7685 +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"]]
  7686 + [type="NG2" && synh=[case~"inst"]];
  7687 +Eval: group(NG3,1,1);
  7688 +
  7689 +Rule "NG3: NG + NG(gen) + NG(gen)"
  7690 +
  7691 +Match: [type="NG" && synh=[base~"mistrzostwo|order|rekord|puchar"]]
  7692 + [type="NG" && synh=[case~"gen"]]
  7693 + [type="NG|NGa" && synh=[case~"gen"]];
  7694 +Eval: group(NG3,1,1);
  7695 +
  7696 +############################################# GRUPY SKOORDYNOWANE NG po NG3
  7697 +
  7698 +Rule "NGk: NG(2)(gen) + NG(2)(gen)"
  7699 +
  7700 +Left: [type=".*"] [pos~"Conj"]?;
  7701 +Match: [type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb|NG2" && synh=[case~"gen"]]
  7702 + (([pos~"Conj"] | (ns? [orth~",|-|–|\+|/|:"] ns?) | (ns [orth~","] [pos~"Conj"]))
  7703 + [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NG2" && synh=[case~"gen"]])+;
  7704 +Eval: group(NGk,3,3);
  7705 +
  7706 +Rule "NGk: NG(2)(dat) + NG(2)(dat)"
  7707 +
  7708 +Left: [type=".*"] [pos~"Conj"]?;
  7709 +Match: [type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb|NG2" && synh=[case~"dat"]]
  7710 + (([pos~"Conj"] | (ns? [orth~",|-|–|\+|/|:"] ns?) | (ns [orth~","] [pos~"Conj"]))
  7711 + [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NG2" && synh=[case~"dat"]])+;
  7712 +Eval: group(NGk,3,3);
  7713 +
  7714 +Rule "NGk: NG(2)(acc) + NG(2)(acc)"
  7715 +
  7716 +Left: [type="AdjG|NGa"] [pos~"Conj"]?;
  7717 +Match: [type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb|NG2" && synh=[case~"acc"]]
  7718 + (([pos~"Conj"] | (ns? [orth~",|-|–|\+|/|:"] ns?) | (ns [orth~","] [pos~"Conj"]))
  7719 + [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NG2" && synh=[case~"acc"]])+;
  7720 +Eval: group(NGk,3,3);
  7721 +
  7722 +Rule "NGk: NG(2)(inst) + NG(2)(inst)"
  7723 +
  7724 +Left: [type=".*"] [pos~"Conj"]?;
  7725 +Match: [type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb|NG2" && synh=[case~"inst"]]
  7726 + (([pos~"Conj"] | (ns? [orth~",|-|–|\+|/|:"] ns?) | (ns [orth~","] [pos~"Conj"]))
  7727 + [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NG2" && synh=[case~"inst"]])+;
  7728 +Eval: group(NGk,3,3);
  7729 +
  7730 +######################################################## GRUPY NG3 Z GRUPAMI SKOORDYNOWANYMI
  7731 +
  7732 +
  7733 +Rule "NG3: NGk + NG (gen)"
  7734 +
  7735 +Match: [type="NGk"]
  7736 + [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NG2" && synh=[case~"gen" && base!~"co|on|ja|ty|my|wy|siebie"]];
  7737 +Eval: group(NG3,1,1);
  7738 +
  7739 +Rule "NG3: NGk + NG(dat)"
  7740 +
  7741 +Match: [type="NGk"]
  7742 + [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NG2" && synh=[case~"dat" && base!~"co|on|ja|ty|my|wy|siebie"]];
  7743 +Eval: group(NG3,1,1);
  7744 +
  7745 +Rule "NG3: NGk + NG(inst)"
  7746 +
  7747 +Match: [type="NGk"]
  7748 + [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NG2" && synh=[case~"inst" && base!~"co|on|ja|ty|my|wy|siebie"]];
  7749 +Eval: group(NG3,1,1);
  7750 +
  7751 +
  7752 +Rule "NG3: NG + NGk(gen)"
  7753 +
  7754 +Match: [type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb|NG2" && synh=[base!~"co|on|ja|ty|my|wy|siebie"]]
  7755 + [type="NGk" && synh=[case~"gen"]];
  7756 +Eval: group(NG3,1,1);
  7757 +
  7758 +
  7759 +Rule "NG3: NG + NGk(acc)"
  7760 +
  7761 +Match: [type="NGa|AdjG" && synh=[base!~"który|jaki|co|siebie"]]
  7762 + [type="NGk" && synh=[case~"acc"]];
  7763 +Eval: group(NG3,1,1);
  7764 +
  7765 +
  7766 +Rule "NG3: NG + NGk(inst)"
  7767 +
  7768 +Match: [type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb|NG2" && synh=[base!~"co|on|ja|ty|my|wy|siebie"]]
  7769 + [type="NGk" && synh=[case~"inst"]];
  7770 +Eval: group(NG3,1,1);
  7771 +
  7772 +################################### NG3 W CUDZYSŁOWACH
  7773 +
  7774 +Rule "NG3 w cudzysłowie"
  7775 +
  7776 +Match: [orth~"„|“|”|\"|'|»"] ns?
  7777 + [type="NG3" && synh=[orth~"[a-zćłśźżó].*"]] ns?
  7778 + [orth~"”|’’|\"|'|“|«"];
  7779 +Eval: group(NG3,3,3);
  7780 +
  7781 +########################################################## GRUPY NG4
  7782 +
  7783 +Rule "NG4: NG + NG3(gen)"
  7784 +
  7785 +Match: [type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb|NG2|NG3" && synh=[base!~"co|on|ja|ty|my|wy|siebie"]]
  7786 + [type="NG3" && synh=[case~"gen"]];
  7787 +Eval: group(NG4,1,1);
  7788 +
  7789 +Rule "NG4: NG + NG3(dat)"
  7790 +
  7791 +Match: [type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb|NG2|NG3" && synh=[base!~"co|on|ja|ty|my|wy|siebie"]]
  7792 + [type="NG3" && synh=[case~"dat"]];
  7793 +Eval: group(NG4,1,1);
  7794 +
  7795 +
  7796 +Rule "NG4: AdjG + NG3(acc)"
  7797 +
  7798 +Match: [type="NGa|AdjG" && synh=[base!~"który|jaki|co|siebie"]]
  7799 + [type="NG3" && synh=[case~"acc"]];
  7800 +Eval: group(NG4,1,1);
  7801 +
  7802 +Rule "NG4: NG + NG3(inst)"
  7803 +
  7804 +Match: [type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb|NG2|NG3" && synh=[base!~"co|on|ja|ty|my|wy|siebie"]]
  7805 + [type="NG3" && synh=[case~"inst"]];
  7806 +Eval: group(NG4,1,1);
  7807 +
  7808 +
  7809 +############################################# GRUPY SKOORDYNOWANE NG po NG4
  7810 +
  7811 +Rule "NGk: NG(3)(gen) + NG(3)(gen)"
  7812 +
  7813 +Left: [type=".*"] [pos~"Conj"]?;
  7814 +Match: [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NG2|NG3" && synh=[case~"gen"]]
  7815 + (([pos~"Conj"] | (ns? [orth~",|-|–|\+|/|:"] ns?) | (ns [orth~","] [pos~"Conj"]))
  7816 + [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NG2|NG3" && synh=[case~"gen"]])+;
  7817 +Eval: group(NGk,3,3);
  7818 +
  7819 +Rule "NGk: NG(3)(dat) + NG(3)(dat)"
  7820 +
  7821 +Left: [type=".*"] [pos~"Conj"]?;
  7822 +Match: [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NG2|NG3" && synh=[case~"dat"]]
  7823 + (([pos~"Conj"] | (ns? [orth~",|-|–|\+|/|:"] ns?) | (ns [orth~","] [pos~"Conj"]))
  7824 + [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NG2" && synh=[case~"dat"]])+;
  7825 +Eval: group(NGk,3,3);
  7826 +
  7827 +Rule "NGk: NG(3)(acc) + NG(3)(acc)"
  7828 +
  7829 +Left: [type="AdjG|NGa"] [pos~"Conj"]?;
  7830 +Match: [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NG2|NG3" && synh=[case~"acc"]]
  7831 + (([pos~"Conj"] | (ns? [orth~",|-|–|\+|/|:"] ns?) | (ns [orth~","] [pos~"Conj"]))
  7832 + [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NG2|NG3" && synh=[case~"acc"]])+;
  7833 +Eval: group(NGk,3,3);
  7834 +
  7835 +Rule "NGk: NG(3)(inst) + NG(3)(inst)"
  7836 +
  7837 +Left: [type=".*"] [pos~"Conj"]?;
  7838 +Match: [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NumG|NG2|NG3" && synh=[case~"inst"]]
  7839 + (([pos~"Conj"] | (ns? [orth~",|-|–|\+|/|:"] ns?) | (ns [orth~","] [pos~"Conj"]))
  7840 + [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NumG|NG2|NG3" && synh=[case~"inst"]])+;
  7841 +Eval: group(NGk,3,3);
  7842 +
  7843 +
  7844 +########################################################## GRUPY NG4 Z GRUPAMI SKOORDYNOWANYMI
  7845 +
  7846 +Rule "NG4: NG + NGk(gen)"
  7847 +
  7848 +Match: [type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb|NG2|NG3" && synh=[base!~"co|on|ja|ty|my|wy|siebie"]]
  7849 + [type="NGk" && synh=[case~"gen"]];
  7850 +Eval: group(NG4,1,1);
  7851 +
  7852 +Rule "NG4: NG + NGk(dat)"
  7853 +
  7854 +Match: [type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb|NG2|NG3" && synh=[base!~"co|on|ja|ty|my|wy|siebie"]]
  7855 + [type="NGk" && synh=[case~"dat"]];
  7856 +Eval: group(NG4,1,1);
  7857 +
  7858 +
  7859 +Rule "NG4: NG + NGk(acc)"
  7860 +
  7861 +Match: [type="NGa|AdjG" && synh=[base!~"który|jaki|co|siebie"]]
  7862 + [type="NGk" && synh=[case~"acc"]];
  7863 +Eval: group(NG4,1,1);
  7864 +
  7865 +Rule "NG4: NG + NGk(inst)"
  7866 +
  7867 +Match: [type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb|NG2|NG3" && synh=[base!~"co|on|ja|ty|my|wy|siebie"]]
  7868 + [type="NGk" && synh=[case~"inst"]];
  7869 +Eval: group(NG4,1,1);
  7870 +
  7871 +############################################ NG4 W CUDZYSŁOWIE
  7872 +
  7873 +Rule "NG4 w cudzysłowie"
  7874 +
  7875 +Match: [orth~"„|“|”|\"|'|»"] ns?
  7876 + [type="NG4" && synh=[orth~"[a-zćłśźżó].*"]] ns?
  7877 + [orth~"”|’’|\"|'|“|«"];
  7878 +Eval: group(NG4,3,3);
  7879 +
  7880 +####################################################### GRUPY NG5
  7881 +
  7882 +Rule "NG5: NG + NG4"
  7883 +
  7884 +Match: [type="NG|NGadres|NGgodz|NGl|NGs|NGa|NGb|NG2|NG3|NG4" && synh=[base!~"co|on|ja|ty|my|wy|siebie"]]
  7885 + [type="NG4" && synh=[case~"gen"]];
  7886 +Eval: group(NG5,1,1);
  7887 +
  7888 +Rule "NG5 w cudzysłowie"
  7889 +
  7890 +Match: [orth~"„|“|”|\"|'|»"] ns?
  7891 + [type="NG5" && synh=[orth~"[a-zćłśźżó].*"]] ns?
  7892 + [orth~"”|’’|\"|'|“|«"];
  7893 +Eval: group(NG5,3,3);
  7894 +
  7895 +#################################################################################### KOORDYNACJE
  7896 +
  7897 +Rule "NGk: imię + imię + nazwisko(pl)"
  7898 +
  7899 +Match: [type="NGk" && synh=[base~"[A-ZŁŚŹŻĆÓ].*"]]
  7900 + [type="NG" && synh=[base~"[A-ZŁŚŹŻĆÓ].*" && number~"pl"]];
  7901 +Eval: unify(case,1,2);
  7902 + group(NGk,1,1);
  7903 +
  7904 +Rule "NGk: NG + NG"
  7905 +
  7906 +Match: [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NumG|NG2|NG3|NG4|NG5"]
  7907 + (([base!~"ale|lecz|więc" && pos~"Conj"] | (ns? [orth~",|\+|/|:"] ns?) | (ns [orth~","] [base!~"ale|lecz|więc" && pos~"Conj"]))
  7908 + [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NumG|NG2|NG3|NG4|NG5"])*
  7909 + ([base!~"ale|lecz|więc" && pos~"Conj"] | (ns? [orth~",|\+|/|:"] ns?) | (ns [orth~","] [base!~"ale|lecz|więc" && pos~"Conj"]))
  7910 + [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NumG|NG2|NG3|NG4|NG5" && synh=[base!~"kto|co"]];
  7911 +Eval: unify(case,1,4);
  7912 + group(NGk,1,1);
  7913 +
  7914 +Rule "NGk: coś jakieś i czegoś"
  7915 +
  7916 +Match: [type="NGa"]
  7917 + [base~"i"]
  7918 + [type="NGa" && synh=[case~"gen"]];
  7919 +Eval: group(NGk,1,1);
  7920 +
  7921 +########################### SKOORDYNOWANE DATY
  7922 +
  7923 +Rule "Liczba + spójnik + NGdata"
  7924 +
  7925 +Match: [orth~"[0-9][0-9]?[-–]?[0-9]?[0-9]?"] (ns? [orth~"-"] ns? [orth~"[0-9][0-9]?"])?
  7926 + [base~"i" && pos~"Conj"]
  7927 + [type="NGdata"];
  7928 +Eval: group(NGkdata,1,1);
  7929 +
  7930 +Rule "NG + spójnik + NGdata"
  7931 +
  7932 +Match: [type="NG" && synh=[base~"styczeń|luty|marzec|kwiecień|maj|czerwiec|lipiec|sierpień|wrzesień|październik|listopad|grudzień"]]
  7933 + [base~"i" && pos~"Conj"]
  7934 + [type="NGdata"];
  7935 +Eval: unify(case,1,3);
  7936 + group(NGkdata,1,1);
  7937 +
  7938 +########################## SKOORDYNOWANE LICZEBNIKI
  7939 +
  7940 +Rule "Liczba + spójnik + NGl"
  7941 +
  7942 +Match: [orth~"[0-9][0-9]?[-–]?[0-9]?[0-9]?"] (ns? [orth~"-"] ns? [orth~"[0-9][0-9]?"])?
  7943 + [base~"i|lub" && pos~"Conj"]
  7944 + [type="NGl"];
  7945 +Eval: group(NGkl,1,4);
  7946 +
  7947 +Rule "NGk w cudzysłowie"
  7948 +
  7949 +Match: [orth~"„|“|”|\"|'|»"] ns?
  7950 + [type="NGk" && synh=[orth~"[a-zćłśźżó].*"]] ns?
  7951 + [orth~"”|’’|\"|'|“|«"];
  7952 +Eval: group(NGk,3,3);
  7953 +
  7954 +
  7955 +
  7956 +######################################################## ZDANIA WZGLĘDNE
  7957 +
  7958 +######################## ZDANIA WZGLĘDNE
  7959 +
  7960 +Rule "NG + który + Verbfin"
  7961 +
  7962 +Match: [type=".*"] ns [orth~","] [pos~"Prep"]?
  7963 + [type="AdjG" && synh=[base~"który|jaki"]]
  7964 + (ns | [] | [synh=[]])*
  7965 + [pos~"Verbfin"]
  7966 + ([pos!~"Verbfin"] | [synh=[]])*;
  7967 +Right: ns [orth~",|\."];
  7968 +Eval: #unify(number gender,1,4);
  7969 + group(NGkg,1,1);
  7970 +
  7971 +Rule "NG + kto|co + Verbfin"
  7972 +
  7973 +Match: [synh=[base~"ten|to"]] ns [orth~","] [pos~"Prep"]?
  7974 + [synh=[base~"kto|co"]]
  7975 + (ns | [] | [synh=[]])*
  7976 + [pos~"Verbfin"]
  7977 + ([pos!~"Verbfin"] | [synh=[]])*;
  7978 +Right: ns [orth~",|\."];
  7979 +Eval: #unify(number gender,1,4);
  7980 + group(NGkg,1,1);
  7981 +
  7982 +
  7983 +############################################# GRUPY SKOORDYNOWANE ZE ZDANIAMI WZGLĘDNYMI
  7984 +
  7985 +Rule "NGk: NG(kg) + NG(kg)"
  7986 +
  7987 +Match: [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NumG|NG2|NG3|NG4|NG5|NGkg"]
  7988 + (([pos~"Conj"] | (ns? [orth~",|-|–|\+|/|:"] ns?) | (ns [orth~","] [pos~"Conj"]))
  7989 + [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NumG|NG2|NG3|NG4|NG5|NGkg"])*
  7990 + ([pos~"Conj"] | (ns? [orth~",|-|–|\+|/|:"] ns?) | (ns [orth~","] [pos~"Conj"]))
  7991 + [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NumG|NG2|NG3|NG4|NG5|NGkg"];
  7992 +Eval: unify(case,1,4);
  7993 + group(NGk,1,1);
  7994 +
  7995 +
  7996 +##########################################################
  7997 +############################################ reguly z NKJP
  7998 +
  7999 +###########GRUPY SKŁADNIOWE
  8000 +
  8001 +
  8002 +Rule "PrepNGb: Prep + dol. rz. + nazwa (Noun)"
  8003 +
  8004 +Match: [pos~"Prep"] [base~"dolina" && pos~"Brev"]
  8005 + [base~"rzeka" && pos~"Brev"]
  8006 + [base~"[A-ZŻŁÓŚ].*" && pos~"Noun" && gender~"f" && case~~"gen"];
  8007 +Eval: group(PrepNG,1,2);
  8008 +
  8009 +
  8010 +Rule "PrepNGb: Prep + jez. + nazwa (Noun)"
  8011 +
  8012 +Match: [pos~"Prep"]
  8013 + [base~"jezioro" && pos~"Brev"]
  8014 + [pos~"Noun" && case~~"nom" && base~"[A-ZŻŁÓŚ].*"];
  8015 +Eval: group(PrepNG,1,2);
  8016 +
  8017 +
  8018 +Rule "PrepNGb: Prep + rz. + nazwa (Adj+Noun)"
  8019 +
  8020 +Match: [pos~"Prep"]
  8021 + [base~"rzeka" && pos~"Brev"]
  8022 + [base~"[A-ZŻŁÓŚ].*" && pos~"Adj" && gender~"f"]
  8023 + [base~"[A-ZŻŁÓŚ].*" && pos~"Noun" && gender~"f"];
  8024 +Eval: unify(case,1,3,4);
  8025 + group(PrepNG,1,2);
  8026 +
  8027 +
  8028 +Rule "PrepNGb: Prep + m. + nazwa (Noun)"
  8029 +
  8030 +Match: [pos~"Prep"]
  8031 + [base~"miasto" && pos~"Brev"]
  8032 + [base~"[A-ZŻŁÓŚ].*" && pos~"Noun" && gender~"m3"];
  8033 +Eval: unify(case,1,3);
  8034 + group(PrepNG,1,2);
  8035 +
  8036 +
  8037 +Rule "PrepNG: Prep + skrót + nazwa"
  8038 +
  8039 +Match: [pos~"Prep"] $instytucja
  8040 + ([pos~"Noun" && case~~"nom" && base~"[A-ZŁŚŻ].*"] |
  8041 + [pos~"Noun" && case~~"nom" && base~"\"[A-ZŁŚŻ].*"]);
  8042 +Eval: group(PrepNG,1,2);
  8043 +
  8044 +
  8045 +Rule "PrepNG: Noun + temu"
  8046 +
  8047 +Match: ([pos~"Noun"] | [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NumG|NG2|NG3|NG4|NG5|NGkg"])
  8048 + [base~~"temu" && pos~~"Prep"];
  8049 +Eval: unify(case,1,2);
  8050 + group(PrepNG,2,1);
  8051 +
  8052 +
  8053 +Rule "PrepNG: Prep + którego + NG"
  8054 +
  8055 +Match: [pos~~"Prep"]
  8056 + [base~"który" && case~"gen"]
  8057 + ([pos~~"Noun"] | [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NumG|NG2|NG3|NG4|NG5|NGkg"]);
  8058 +Eval: unify(case,1,3);
  8059 + unify(number gender,2,3);
  8060 + group(PrepNG,1,3);
  8061 +
  8062 +
  8063 +Rule "PrepNG: Prep + NG + którego"
  8064 +
  8065 +Match: [pos~~"Prep"]
  8066 + ([pos~~"Noun"] | [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NumG|NG2|NG3|NG4|NG5|NGkg"])
  8067 + [base~"który" && case~"gen"];
  8068 +Eval: unify(case,1,2);
  8069 + unify(number gender,2,3);
  8070 + group(PrepNG,1,2);
  8071 +
  8072 +
  8073 +Rule "PrepNG: Prep + NG"
  8074 +
  8075 +Match: [pos~~"Prep"]
  8076 + ([pos~~"Noun"] | [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NumG|NG2|NG3|NG4|NG5|NGkg"]);
  8077 +Eval: unify(case,1,2);
  8078 + group(PrepNG,1,2);
  8079 +
  8080 +
  8081 +Rule "PrepNG: Prep + art. + liczba"
  8082 +
  8083 +Match: [pos~~"Prep"] [base~"artykuł"] [pos~"Adj" && orth~"[1-9][0-9]*"]
  8084 + (ns [base~"\."])? [pos~~"Noun" && case~"gen"];
  8085 +Eval: group(PrepNG,1,2);
  8086 +
  8087 +
  8088 +Rule "PrepNG: Prep + Adj + Brev(ADJ) + NG"
  8089 +
  8090 +Match: [pos~~"Prep"] [pos~~"Adj"]
  8091 + [pos~"Brev" && brev_pos~~"ADJ|AdjG"]
  8092 + ([pos~~"Noun"] | [type="NG|NGadres|NGdata|NGgodz|NGl|NGs|NGa|NGb|NumG|NG2|NG3|NG4|NG5|NGkg"]);
  8093 +Eval: unify(case number gender,2,4);
  8094 + unify(case,1,4);
  8095 + group(PrepNG,1,4);
  8096 +
  8097 +
  8098 +Rule "grupa PrepNG w cudzysłowie"
  8099 +
  8100 +Match: [orth~"\""] ns [type="PrepNG"] ns [orth~"\""];
  8101 +Eval: group(PrepNG,3,3);
  8102 +
  8103 +
... ...
src/main/resources/spejd_config/sample.cfg 0 → 100644
  1 +# Config file format for shallow parser
  2 +
  3 +[ATTR]
  4 +
  5 +# Attributes and their values
  6 +
  7 +number = sg pl
  8 +case = nom gen dat acc inst loc voc
  9 +gender = m1 m2 m3 f n
  10 +person = pri sec ter
  11 +degree = pos com sup
  12 +tense = pres past fut
  13 +mood = ind imp cond
  14 +reflexivity = refl nrefl
  15 +aspect = imperf perf
  16 +negation = aff neg
  17 +accommodability = congr rec
  18 +accentability = akc nakc
  19 +post-prepositionality = npraep praep
  20 +agglutination = agl nagl
  21 +vocalicity = nwok wok
  22 +fullstoppedness = pun npun
  23 +brev_pos = NOUN ADJ ADV QUB PREP CONJ VERB PPAS PACT XXX NG PrepNG AdjG DisG
  24 +cont = discr ndiscr
  25 +
  26 +
  27 +[POS]
  28 +
  29 +# Part of speech definitions.
  30 +
  31 +adja =
  32 +adjp =
  33 +adjc =
  34 +conj =
  35 +comp =
  36 +interp =
  37 +pred =
  38 +xxx =
  39 +adv = [degree]
  40 +imps = aspect
  41 +inf = aspect
  42 +pant = aspect
  43 +pcon = aspect
  44 +qub = [vocalicity]
  45 +prep = case [vocalicity]
  46 +siebie = case
  47 +subst = number case gender
  48 +depr = number case gender
  49 +ger = number case gender aspect negation
  50 +ppron12 = number case gender person [accentability]
  51 +ppron3 = number case gender person accentability post-prepositionality
  52 +num = number case gender accommodability
  53 +numcol = number case gender accommodability
  54 +adj = number case gender degree
  55 +pact = number case gender aspect negation
  56 +ppas = number case gender aspect negation
  57 +winien = number gender aspect
  58 +praet = number gender aspect [agglutination]
  59 +bedzie = number person aspect
  60 +fin = number person aspect
  61 +impt = number person aspect
  62 +aglt = number person aspect vocalicity
  63 +brev = fullstoppedness
  64 +burk =
  65 +interj =
  66 +ign =
  67 +
  68 +# Syntactic words
  69 +
  70 +Adjc =
  71 +Conj =
  72 +Conj1 = [cont]
  73 +Conj2 = [cont]
  74 +Conj3 = [cont]
  75 +Conj4 = [cont]
  76 +Comp =
  77 +Comp1 = [cont]
  78 +Comp2 = [cont]
  79 +Interj =
  80 +Interp =
  81 +Qub = [vocalicity]
  82 +Xxx =
  83 +Adv = [degree]
  84 +Imps = mood aspect reflexivity negation
  85 +Inf = aspect reflexivity negation
  86 +Pant = aspect reflexivity negation
  87 +Pcon = aspect reflexivity negation
  88 +Prep = case [vocalicity]
  89 +Siebie = case
  90 +Noun = number case gender [aspect] [reflexivity] [negation]
  91 +Ppron12 = number case gender person [accentability]
  92 +Ppron3 = number case gender person accentability post-prepositionality
  93 +Num = number case gender accommodability
  94 +Numcol = number case gender accommodability
  95 +Adj = number case gender degree
  96 +Adj-se = number case gender degree
  97 +Pact = number case gender aspect reflexivity negation
  98 +Ppas = number case gender aspect reflexivity negation
  99 +Verbfin = number person tense mood aspect reflexivity negation [gender]
  100 +Winien = number person gender tense mood aspect reflexivity negation
  101 +Pred = tense mood aspect negation
  102 +Brev = fullstoppedness brev_pos
  103 +Brev-se = fullstoppedness brev_pos
  104 +
  105 +
  106 +# Named Entities (of sorts):
  107 +
  108 +liczba =
  109 +#waluta =
  110 +
... ...