Движок трансфера Apertium ищет шаблоны в вашем исходном тексте. Ищутся те шаблоны, которые определены для каждого вашего правила. Некоторые шаблоны могут состоять из одного слова, другие — из нескольких слов. Движок трансфера сначала пытается сопоставить самые длинные шаблоны, а затем постепенно переходит к более коротким. Это означает, что шаблон из пяти слов будет использован раньше, чем шаблон из трех слов (при условии, что набор слов соответствует обоим шаблонам). Если есть несколько шаблонов одинаковой длины, приоритет отдается первому из перечисленных. Это означает, что в некоторых случаях порядок ваших правил будет иметь значение.
Движок трансфера ищет совпадения в ваших словах в последовательном порядке, начиная с первого слова. Он никогда не найдет совпадение в какой-то точке текста, а затем не вернется к более ранней части текста.
Еще одно важное понятие состоит в том, что движок трансфера обрабатывает слова только один раз для любого сопоставленного шаблона. После обработки слова не проверяются повторно на наличие других совпадений. Другими словами, шаблоны не могут применяться с перекрытием. Например, если у вас есть правило, которое соответствует определитель-существительное, и другое правило, которое соответствует существительное-прилагательное, то при обработке предложения вида определитель-существительное-прилагательное движок использует первое из перечисленных правил, затем отбрасывает три слова и продолжает работу с другими словами. Второе правило не применяется. Другой способ описать это — сказать, что движок обрабатывает слова в отдельных фрагментах.
Если движок трансфера Apertium находит совпадение, он выполняет часть действия вашего правила. Если движок не находит совпадения для слова, он выполняет его перевод по умолчанию в соответствии с тем, что указано в двуязычном словаре. См. «Как применяются правила».
The Apertium transfer engine searches for patterns in your source text. The patterns it searches for are those defined for each rule you have. Some patterns may be one word, some patterns may be multiple words. The transfer engine tries to match the longest patterns first and then progressively goes to shorter and shorter patterns. This means a five-word pattern would be used before a three-word pattern (assuming a set of words would match both patterns.) When there are multiple patterns of the same length, the first one listed gets precedence. This means in some cases the order of your rules will be important.
The transfer engine searches for matches in your words in sequential order starting with the first word. It will never find a match at some point in a text and then go back earlier in the text.
Another important concept is that the transfer engine processes words just once for whatever pattern is matched. After they are processed, the words are not examined again for any other matches. In other words, patterns cannot apply in an overlapping manner. For example, if you have a rule that matches determiner-noun and another one that matches noun-adjective, when a sentence of the form determiner-noun-adjective is processed. The engine uses the rule that is listed first and then discards the three words and continues on to other words. The second rule does not get applied. Another way to describe it is to say that the engine processes words in distinct chunks.
If the Apertium transfer engine finds a match, it runs the action part of your rule. If the engine finds no match for a word, it does default translation of it according to what is in the bilingual dictionary. Cf. “How Rules are Applied”.