summaryrefslogtreecommitdiffstats
path: root/JLanguageTool/src/rules/uk
diff options
context:
space:
mode:
Diffstat (limited to 'JLanguageTool/src/rules/uk')
-rw-r--r--JLanguageTool/src/rules/uk/grammar.xml190
-rw-r--r--JLanguageTool/src/rules/uk/replace.txt24
2 files changed, 214 insertions, 0 deletions
diff --git a/JLanguageTool/src/rules/uk/grammar.xml b/JLanguageTool/src/rules/uk/grammar.xml
new file mode 100644
index 0000000..982e152
--- /dev/null
+++ b/JLanguageTool/src/rules/uk/grammar.xml
@@ -0,0 +1,190 @@
+<?xml version="1.0" encoding="utf-8"?>
+<?xml-stylesheet type="text/xsl" href="../print.xsl"
+title="Pretty print" ?>
+<?xml-stylesheet type="text/css" href="../rules.css"
+title="Easy editing stylesheet" ?>
+<!--
+Ukrainian grammar and typo rules for LanguageTool
+Copyright (C) 2007 Andriy Rysin
+$Id$
+-->
+
+<rules lang="uk" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="../rules.xsd">
+
+ <category name="Punctuation">
+ <!-- TODO:
+ Вставні вирази: "з іншого боку", "на мою думку", "на жаль"
+ Вставні слова : "певно", "напевно", "вірите", ""
+
+ Question:
+ can "surround by commas" rule be more compact-written?
+ -->
+
+ <rulegroup id="PLEASE_NO_COMMA" name="«будь ласка» виділяється комами">
+ <rule>
+ <pattern mark_to="0">
+ <token>будь</token>
+ <token>ласка</token>
+ <token negate="yes" regexp="yes">,|\.</token>
+ </pattern>
+ <message>Відсутня права кома: <suggestion>\1 \2, \3</suggestion>.</message>
+ <example type="correct">Запитайте, <marker>будь ласка, у</marker> водія.</example>
+ <example type="incorrect">Запитайте, <marker>будь ласка у</marker> водія.</example>
+ </rule>
+ <rule>
+ <pattern>
+ <token negate="yes">,<exception postag="SENT_START"/></token>
+ <token>будь</token>
+ <token>ласка</token>
+ </pattern>
+ <message>Відсутня ліва кома: <suggestion>\1, \2 \3</suggestion>.</message>
+ <example type="correct">Запитайте, будь ласка, у водія.</example>
+ <example type="incorrect"><marker>Запитайте будь ласка</marker>, у водія.</example>
+ </rule>
+ </rulegroup>
+
+ <rulegroup id="INSERTED_WORDS_NO_COMMA" name="вставні слова, напр., «мабуть», «щоправда», виділяються комами">
+ <rule>
+ <pattern mark_to="0">
+ <token regexp="yes">мабуть|врешті|по-перше|по-друге|по-третє|щоправда|о?крім того|а втім</token>
+ <token negate="yes" regexp="yes">,|\.</token>
+ </pattern>
+ <message>Відсутня права кома: <suggestion>\1, \2</suggestion>.</message>
+ <example type="correct">Це, <marker>мабуть,</marker> водій.</example>
+ <example type="incorrect">Це, <marker>мабуть водій</marker>.</example>
+ </rule>
+ <rule>
+ <pattern>
+ <token negate="yes">,<exception postag="SENT_START"/></token>
+ <token regexp="yes">мабуть|по-перше|по-друге|по-третє|щоправда|о?крім того|а втім</token>
+ </pattern>
+ <message>Відсутня ліва кома: <suggestion>\1, \2</suggestion>.</message>
+ <example type="correct"><marker>Мабуть,</marker> це водій.</example>
+ <example type="correct">Це<marker>, мабуть</marker>, водій.</example>
+ <example type="incorrect"><marker>Це мабуть</marker>, водій.</example>
+ </rule>
+ </rulegroup>
+
+<!--
+ не працює надійно, окрім того може перекриватися з правилами, які вимагають кому
+ <rule id="LIST_AND_NO_COMMA" name="та і або у списках не виділяється комою">
+ <pattern mark_from="2">
+ <token regexp="yes">.*</token>
+ <token>,</token>
+ <token regexp="yes">.*</token>
+ <token>,</token>
+ <token regexp="yes">і|та|або</token>
+ </pattern>
+ <message>"та", "і" та "або" в переліку, зазвичай, не виділяється комою: <suggestion>\3 \5</suggestion>.</message>
+ <example type="correct">Підтримує німецьку, <marker>англійську та</marker> українську мови.</example>
+ <example type="incorrect">Підтримує німецьку, <marker>англійську, та</marker> українську мови.</example>
+ </rule>
+-->
+ <rulegroup name="Відсутня кома перед «але», ..." id="COMMA_BEFORE_BUT">
+ <rule>
+ <pattern>
+ <token regexp="yes" negate="yes">[\p{Punct}–—\(]<exception postag="SENT_START"/></token>
+ <token>але</token>
+ </pattern>
+ <message>Відсутня кома перед „але”: <suggestion>\1, \2</suggestion></message>
+ <example type="correct">Вгадав всі літери, але не зміг прочитати слово.</example>
+ <example type="incorrect">Вгадав всі <marker>літери але</marker> не зміг прочитати слово.</example>
+ </rule>
+ </rulegroup>
+
+
+ </category>
+
+ <category name="Grammar">
+ <!-- TODO:
+ додати підтримку POS та словоформ
+ -->
+ <rulegroup name="Узгодженість" id="CONISTENCY1">
+ <rule>
+ <pattern>
+ <token regexp="yes">в|у</token>
+ <token postag="verb"/>
+ </pattern>
+ <message>Прийменник перед дієсловом <suggestion>\2</suggestion></message>
+ <example type="correct">Їм треба їхати.</example>
+ <example type="correct">Їм треба вїхати.</example>
+ <example type="incorrect">Їм треба <marker>в їхати</marker>.</example>
+ </rule>
+ </rulegroup>
+
+ <!-- нереальне правило - лише для тестування теґу "refl"
+ <rulegroup name="Узгодженість 2" id="CONISTENCY2">
+ <rule>
+ <pattern>
+ <token regexp="yes" negate="yes">мусиш|хочеш</token>
+ <token postag="refl"/>
+ </pattern>
+ <message>Невірне використання зворотного дієслова <suggestion>Хочеш \2</suggestion></message>
+ <example type="correct">Хочеш дивитися?</example>
+ <example type="incorrect">Велике <marker>дерево дивитися</marker>.</example>
+ </rule>
+ </rulegroup>
+ -->
+ </category>
+
+ <category name="Style">
+ <!-- TODO:
+ проблеми: 1) як пропонувати "й", якщо наступне не почитанється з "й", і "та", якщо далі не йде "а"
+ 2) як пропонувати частину слова "дощ йде" -> "дощ іде"?
+ -->
+ <rulegroup name="Милозвучність" id="NICE">
+ <!--
+ <rule>
+ <pattern>
+ <token regexp="yes">.*[аеєиіїоуюя]</token>
+ <token regexp="yes">і</token>
+ </pattern>
+ <message>Зіяння <suggestion>\1 й</suggestion> <suggestion>\1 та</suggestion></message>
+ <example type="correct">Поле й ліс.</example>
+ <example type="correct">Поле та ліс.</example>
+ <example type="incorrect"><marker>Поле і</marker> ліс.</example>
+ </rule>
+ -->
+ <rule>
+ <pattern>
+ <token regexp="yes">.*[аеєиіїоуюя]</token>
+ <token>у</token>
+ <token regexp="yes" negate="yes">в.*</token>
+ </pattern>
+ <message>Зіяння <suggestion>\1 в \3</suggestion></message>
+ <example type="correct">Балка в степу.</example>
+ <example type="incorrect"><marker>Балка у степу</marker>.</example>
+ </rule>
+ <rule>
+ <pattern>
+ <token>зі</token>
+ <token regexp="yes">[аеєиіїоуюя].*</token>
+ </pattern>
+ <message>Зіяння <suggestion>з \2</suggestion></message>
+ <example type="correct">Потяг з Австрії.</example>
+ <example type="incorrect">Потяг <marker>зі Австрії</marker>.</example>
+ </rule>
+ </rulegroup>
+ </category>
+
+ <!--
+ <category name="Borrowings">
+ TODO:
+ 1) залежні від лексем
+ 2) незалежні (невідмінювані)
+ -->
+
+ <!-- незалежні
+ <rulegroup id="NON_LEXEM_BORROWING" name="калькування">
+ <rule>
+ <pattern>
+ <token regexp="yes"></token>
+ </pattern>
+ <message>Неукраїнське слово: <suggestion></suggestion>.</message>
+ </rule>
+ </rulegroup>
+
+ </category> -->
+
+</rules>
diff --git a/JLanguageTool/src/rules/uk/replace.txt b/JLanguageTool/src/rules/uk/replace.txt
new file mode 100644
index 0000000..b411af7
--- /dev/null
+++ b/JLanguageTool/src/rules/uk/replace.txt
@@ -0,0 +1,24 @@
+# TODO: додати підтримку відмінювання
+# TODO: додати підтримку фраз
+
+# незмінювані
+накінець=нарешті
+
+# лексеми
+багатократний=багаторазовий
+висок=скроня
+гордитись=пишатись
+жилий=житловий
+лишнiй=зайвий
+мiроприємство=захід
+насморк=нежить
+оточуючий=навколишній
+поясниця=поперек
+пропуск=перепустка
+співпадати=збігатися
+строчка=рядок
+
+# сполуки
+#рахую, що=вважаю, що
+#в розстрочку=на виплат
+#так як=оскільки