(C) 2014, Антон Колонин, Aigents Group, http://aigents.com
1. Введение
В данной работе обсуждается использование платформы Aigents для представления событий [1] и сценариев, а также возможности их причинно-следственного анализа и возможности выявления путей управления ходом развития процессов по мере из реализации.
2. Определения и задачи
Основополагающими понятиями в системе Aigents [2] являются вещь (или сущность) и набор (или множество).
Вещь (Thing)
- может иметь одно или более свойств (properties)
- идентифицируется одним или более текстовым шаблоном (свойство patterns) [3]
- свойство имя (name) по умолчанию само является текстовым шаблоном
- может являться экземпляром вещи более высокого уровня абстракции
Набор (Set)
- может иметь несколько вещей в своем составе
- может быть дизъюнктивным - включать альтернативные вещи в стилие логической операции
ИЛИ (Any-Set) - может быть конъюнктивным - включать совокупность необходимых вещей в стиле логической
операции И (And-Set) - может быть конъюнктивно-упорядоченным - включать совокупность необходимых вещей в
стиле логической операции И, с обязательным порядком следования (Seq-Set)
При анализе цепей событий и их причинно-следственном анализе, могут быть рассмотрены следующие категории вещей.
- Актор (Actor) - вещь, совокупностью своих свойств и шаблонов определяющая актора того или иного отношения в той или иной роли, например - вода, камень, точение, руководство, Иван Петров, ООО Сигма, США, ООН)
- Роль — вещь, определяющая качество актора какого либо явления или роль, играемую им в данном явлении
- Явление (Appearance) - вещь, объединяющая несколько акторов явления в различных ролях (являющихся свойствами явления как вещи), например:
- “Вода камень точит” (вода - в роли субъекта, точит - в роли глагола, камень - в роли объекта)
- “Иван Петров руководит ООО Здоровье+” (Иван Петров - в роли субъекта, руководство - в роли глагола, ООО Здоровье+ - в роли объекта)
- Событие (Event) - явление, характеризуемое свойством времени (times)
Анализ имеющих место явлений и событий может приводить к формированию следующих наборов вещей.
- Взаимосвязанные явления (Coupled Appearances) - конъюнктивный набор явлений, имеющих одних и тех же акторов в одних и тех же ролях, например:
- Вода камень точит
- Вода - источник жизни
- Вода превращается в пар
- Тесно связанные явления - конъюнктивный набор явлений, имеющих несколько одних и тех же акторов в одних и тех же ролях, например:
- Иван Петров - глава Департамента Здравоохранения
- Иван Петров является учредителем Фондом Благоденствия
- Иван Петров руководит ООО Здоровье+
- Совпадение (Coincidence) - конъюнктивный набор связанных событий, имеющих одно и то- же значения свойства времени (связанные по времени)
- Связанное совпадение (Coupled Coincidence) - конъюнктивный набор событий, связанных не только по времени
- Тесно связанное совпадение - конъюнктивный набор событий, тесно связанных не только по времени
- Сценарий (Scenario) - упорядоченный набор явлений или связанных явлений, которые могут быть реализованы в различных процессах
- Процесс (Process) - упорядоченный набор событий и совпадений, могут реализовывать различные сценарии
Как вещи, так и явления, так и сценарии могут обладать различной степенью абстракции, например:
- Иван Петров в различных явлениях и событиях может выступать как Ванечка, Ванюша,
Ванька, Иван, Иван Сидорович, Петров, Сидороыч, обладатель паспорта N 12 34 567890 итд. - “Иван Петров руководит ООО Здоровье+” может быть реализовано как “У Вани жена -
директор ООО Здоровье+”, “Сидорыч владеет у Здоровье+ контрольным пакетом” итд. - Сценарий “Петров возглавил бюджетное учреждение, после чего обосновал коммерческую
фирму” может быть реализован как “Петров стал главой Департамента Здравоохранения, после чего его жена открыло ООО Здоровье+” либо “Петров возглавил Отдел Строительства, после чего зарегистрировал ООО Ново-стройка”.
На основании сценариев (состоящих из явлений) и процессов (состоящих из событий), могут быть выявлены следующие сложные наборы
- Альтернативный Актор (Alternative Actor) - дизъюнктивный набор акторов, могущих играть некоторую роль в явлении с высокой степенью абстракции, как правило — определяет область допустимых значений для той или иной роли.
- Например, наборы X = {Петров Сидоров}, Y {обосновать, открыть, зарегистрировать} и Z {ООО Ново-стройка и ООО Здоровье+} могут быть использованы как акторы абстрактного явления “X Y Z”, экземпляром которого может являться “Петров зарегистрировал ООО Ново-стройка”
- Ситуация (Situation/Context) - набор явлений, не обязательно непосредственно связанных между собой, но являющихся абстрактными по отношению к достаточно большому числу совпадений, то есть - связанные как общее-частное с одновременно проявляющимися явлениями
- Например, абстрактная ситуация (X Y Z, A жена X, A B C), где B это альтернатива {возглавлять руководить}, а C это {“Департамент Здравоохранения” “Отдел Строительства”} означает опосредованный через близкие родственные связи конфликт интересов в случае мужа, возглавляющего коммерческую фирму и жены, руководящей бюджетной структурой (Петров руководит ООО Здоровье+, Петрова - жена Петрова, Петрова руководит Департаментом Здравоохранения)
- Ситуационная развилка (Situational/Contextual Fork) - дизъюнктивный набор явлений или ситуаций, имеющих равную или различную вероятность реализации в ходе развития сценария или процесса.
- Ситуационные триггеры (Situational/Contextual Trigger) - явление или событие, дополняющее ситуационную развилку до состояния с измененными вероятностями реализации составляющих ее альтернатив, то есть — фактически направляющих (явно, или с какой-то вероятностью) развитие процесса по соответствующему варианту сценария.
Рис. 1. На рисунке в верхней части приводится пример абстрактного сценария, включающего последовательность не привязанных к конкретному времени ситуаций, включающих явления с абстрактными-же акторами. В нижней части рисунке приводится процесс, реализующий данный сценарий. В том и другом случае показаны абстрактные (сверху) и конкретные (снизу) ситуационные развилки и триггеры, обеспечивающие возможность альтернативных вариантов развития и выбора одного из них.
Задачами причинно-следственного анализа является следующее:
- Выявление событий и их акторов - по соответствию шаблонам явлений текстов в источниках Интернета;
- Выявление процессов и определение составляющих их совпадений, событий и их акторов - по совокупности событий;
- Формирование возможных абстрактных сценариев и определение составляющих их ситуаций, явлений и наборов их альтернативных акторов - по совокупности процессов;
- Выявление пересекающихся и альтернативных сценариев и ситуационных развилок - по совокупности сценариев;
- Определение ситуационных триггеров, могущих повлиять на развитие сценария в конкретном процессе при прохождении той или иной ситуационной развилки - по совокупности развилок.
3. Выявление событий и акторов. Вещи и шаблоны
Давайте посмотрим, насколько многообразие описанных вещей и наборов может быть описано в терминах базовой онтологической модели и языке описания шаблонов существующей версии платформы Aigents [2,3].
Актор - определятся как именованная вещь, или вещь со свойством name. При этом, идентифицирующие вещь в тексте шаблоны могут браться как неявно через само имя вещи (поддерживается пользовательским интерфейсом Aigents 1.0.9), так и явно через свойство patterns (не поддерживается пользовательским интерфейсом Aigents 1.0.9, но может быть задано через разговорную консоль Talks).
Неявное описание шаблона актора через лемму [3]:
There name "{антон иван}".
Ok.
Явное описание шаблона актора через лемму [3]:
There name person.
Ok.
Name person patterns "{антон иван}".
Ok.
What person patterns?
Person patterns '{Антон Иван}'.
Явное описание шаблона актора через набор шаблонов:
There name person.
Ok.
Name person patterns антон, иван. Ok.
What person patterns?
Person patterns антон, иван.
Явление - определяется как именованная либо не именованная вещь, которая может содержать переменные в явно или неявно заданных шаблонах. Каждая переменная явно или неявно определяет свойство вещи, определяемое для каждого события данного явления как актор в некоторой роли (например, явление “приобретение” с шаблоном “$покупатель купил $покупку” определяет две переменные $покупатель и $покупка, которые могут быть заполнены фактическими акторами в соответствующих ролях при создании события данного явления).
- При отсутствии переменных, считаем явление унарным, тождественной актору, а событие для данной вещи будет рассматриваться как явление самого актора в конкретный момент времени как такового (например, выявленное в тексте соответствие шаблону “{обама {президент сша}}” будет говорить об упоминании текущего президента США в тексте и приведет к созданию соответствующего события).
- При наличии одной переменной, считаем явление бинарным (например - субъект- предикат), а значение переменой при создании события будет соответствовать, в контексте самого явления единственному его актору (например, в шаблоне явления “{обама {президент сша}} {сказал объявил заявил} $obamas_point” в качестве актора будет содержимое заявления Обамы).
- При наличии более чем одной переменной, явление будет характеризоваться соответствующим числом акторов в ролях, определяемых именами атрибутов (например, текст “Обама принудил ЕС ввести санкции против России”, при соответствии шаблону явления “обама принудил $organization ввести санкции против $country” определит значения organization=”ЕС” и country “россии”).
Примеры описания шаблонов с переменными:
There name person_saying_something patterns "{антон иван ольга} {сказал сказала} $someting".
Ok.
What person_saying_something?
Person_saying_something name person_saying_something, patterns '{антон иван ольга} {сказал сказала} $something'.
Событие - определяется как явление-экземпляр некоего явления-класса, связанный с ним свойством наследования is и имеющий также свойство времени times - со значением, соответствующим времени выявления события. Кроме того, при создании события определяются его свойства sources - заполненное ресурсом (url) источника текста, а также свойство text - заполненное полным текстом соответствия шаблону по тексту.
Типизация свойств (переменных шаблонов)
В версии Aigents 1.0.9, наличие переменных у шаблонов явления, по умолчанию, не приводит к созданию вещей-акторов при создании событий для явлений при обнаружении соответствия шаблону в тексте. То есть, при создании событий, свойства заполняются текстовыми значениями. При этом однако, существует возможность ограничения на возможные значения переменных посредством указания класса свойств-переменных - из числа предопределенных типов (word, time, number, money). Для типизации переменной свойства, необходимо явно указать обладание вещи данным свойством посредством свойства has.
Примеры описания шаблонов с переменными:
There name item_quantity_cost patterns “В продаже $item , количество $amount , цена cost”, has amount, cost.
Ok.
Cost is money.
Ok.
Amount is number.
Ok.
В следующей версии платформы Aigents, для выявления полноценных событий явлений с акторами- явлениями, предполагается ввести возможность типизации свойств через шаблоны вещей акторов таким образом, что при выявлении соответствия шаблону актора (роли) в составе шаблона явления, в качестве значения переменной будет подставляться не текст, а непосредственно сам актор. Это будет выглядеть примерно так.
There name person_doing_something patterns "$person $doing $something", has person, doing, something.
Ok.
Person is “{антон иван ольга}”
Ok.
Doing is “{{сказал сказала} {написал написала}}” Ok.
4. Модель данных и математическая модель
Согласно приведенным выше понятиям, можно представить изображенную на рис.2 модель данных с отношениями наследования (is), обладания (has), связанности со временем (times), а также отношениями вхождения в наборы — конъюнктивный (and-set) и конъюнктивно-упорядоченный (seq-set). Прежде всего, введем необходимые базовые определения. При этом рассмотрим как абстрактные, не привязанные к конкретному времени вещи (роли, явления, ситуации и сценарии), так и конкретные вещи (соответственно — актеры, события, совпадения и процессы), являющиеся привязанными к реальному времени реализациями.
G – совокупность всех возможных абстрактных и конкретных вещей (ролей и актеров, явлений и событий, ситуаций и совпадений, сценариев и процессов) присутствующих в рассматриваемом информационном пространстве, причем, если определить пространство как граф, с некоей вещью как g являющейся вершиной графа.
R – совокупность всех возможных ролей, или подмножество G, определяющее метаданные – совокупность вещей, определяющих роли r для других явлений (типы бинарных связей в графе).
A – совокупность всех возможных акторов, или подмножество G, определяющее набор допустимых значений для реализации ролей в явлениях, где каждый актор a может быть связан отношением наследования с играемыми им ролями.
E – совокупность всех возможных явлений, или подмножество G, определяющее возможные комбинации ролей, играемых теми или иными акторами в этих явлениях.
S — подмножество G как множество ситуаций s, имеющих место с включением в них соответствующих явлений.
Q — относительное время, определяющее порядок следования (ситуаций в сценариях) q.
O — подмножество G как множество возможных сценариев o, включающих те или иные ситуации в определенной последовательности (в относительном времени).
T – рассматриваемый интервал времен, с точкой времени определяемой как t, где t изменяется от 0 до бесконечности, с любым возможным инкрементом по дискретной оси.
V – совокупность всех возможных событий, или подмножество G, определяющее каждое отдельное событие v проявление какого-либо явления в определенный момент времени.
C – совокупность всех возможных совпадений, или подмножество G, определяемое как все существующие на временной оси суперпозиции событий, где каждая рассматриваемая суперпозиция отдельный момент времени может быть обозначена как c.
P – подмножество G, определяемое как все возможные процессы, протекавшие или протекающие в рассматриваемом временном пространстве, где каждый процесс p включает в себя цепочку совпадений с нарастающим значением времени.
Рис. 2. Используемая модель данных с типами отношений.
Далее, введем необходимые функциональные множества и функции, согласно данным выше определениям. При этом, каждую определяемую функция можно рассматривать как определяющую множество в качестве функции булевой (где true обозначает вхождение в множество, а false — исключение из него) либо вероятностной (непрерывной на интервале от 0 до 1, определяющей, таким образом, нечеткое множество).
A(r) — все акторы данной роли
R(a) — все роли актора
R(e) — все роли в данном явлении (определяет множество связей типа has в графе)
E(r) — все явления с данной ролью (обратна предыдущей)
E(v) — все явления, описывающие данное событие
E(t) — все явления, имеющие реализующие их события в указанный момент времени, или вероятность того или иного явления в это время
V(e) — все события, представляющие данное явление
V(t) — все события в данный момент времени, или вероятность того либо иного конкретного события в указанный момент времени («событийная функция»)
A(v) — все акторы данного события, A(v,r) — в указанной роли (определяет подграф связей типа r в общем графе)
V(a) — все события с данным актором, V(a,r) — в указанной роли (обратна предыдущей), V(a,r,t) — в заданное время (определяет временной срез подграфа связей типа r)
S(e) — все ситуации, включающие данное явление
E(s) — все явления, включающие данную ситуацию
S(c) — все ситуации, обобщающие данное совпадение
C(s) — все совпадения, обобщаемые данной ситуацией
C(v) — все совпадения, включающие данное событие
V(c) — все события, входящие в данное совпадение
C(t) — все совпадения в данный момент времени, C(t,v) — с включением указанного события
V(t) — все события в данный момент времени, V(t,c) — ассоциированные в указанном совпадении O(s) — все сценарии, включающие конкретную ситуацию, O(s,q) — с указанной очередностью
S(o) — множество ситуаций в данном сценарий, S(o,q) — в указанной очередности
P(t) — множество процессов, происходящих в данный момент времени
P(c) — множество процессов, включающих данное совпадение, P(c,t) — в указанное время
O(p) — множество сценариев, являющихся обобщением данного процесса
P(o) — множество процессов, обобщаемых данным сценарием
C(p) — множество совпадений, включающих данный процесс, C(p,t) — в указанное время
T(a), T(v), T(c), T(p) — временные континуумы существования указанных актора, события, совпадения и процесса — соответственно (в совокупности определяют подграф связей типа times)
Следует обратить внимание, что функции R(a), E(v), S(c) и O(p) на своих областях определения сами определяют множество отношений наследования между конкретными (акторы, события, совпадения, процессы) и абстрактными (роли, явления, ситуации, сценарии) вещами, и имеют соответствующие обратные функции A(r), V(e), C(s) и P(o).
Для дальнейшего обсуждения важно заметить, что понятие конкретных и абстрактных вещей в приведенных выше определениях является относительным, то есть одна и та же вещь может являться конкретной по отношению к вещи более высокого уровня (в одном контексте) и более абстрактной по отношению к вещи более низкого уровня (в другом контексте). Например, абстрактная фраза «мама что-то делала» описывает явление по отношению к более конкретному событию «мама что-то мыла» и, в то же самое время, последняя фраза является абстрактным явлением по отношению к еще более конкретному «мама мыла раму». Таким образом, все определяемые выше множества, в общем случае, могут быть в той или иной степени пересекающимися, а вводимые функции иметь пересекающиеся области значений.
5. Унифицированный алгоритмический подход
В дальнейшем, считаем данный подход применимым для формализации когнитивных функций различного порядка — начиная от распознавания устных и письменных текстов, включая выявление смысловых шаблонов в тексте и заканчивая причинно-следственным анализом высокоуровневых событий, выявляемых как в текстах, так и в реальной жизни. Тем самым, полагаем реализуемый унифицированный алгоритмический аппарат применимым на различных когнитивных уровнях — оперируя на каждом из них с данными более низкого уровня, передавая результаты на более высокий. Соответствие понятий различных уровней абстракции и различного типа агрегации применительно к указанным функциям представлено в приведенной ниже таблице.
Табл 1. Схема соответствия различных данных различных когнитивных функций формальным понятиям рассматриваемой модели — более конкретным (строки 1-4) и более абстрактным (строки 4-8).
Соответственно, в рамках имеющихся системы понятий и математической модели, определим виды анализа, позволяющие переходить между различными уровнями абстракции и степенями агрегации в пределах реализации когнитивной функции того или другого уровня — представленные на следующем рисунке.
Рис. 3. Виды анализа, позволяющие осуществлять переходы между низкими (снизу) и высокими (сверху) уровнями абстракции и степенями агрегации (атомарные - влево, упорядоченные - вправо).
- Роле-определение (Role scoping) — определение множества акторов, формирующих область определения значения роли по множеству событий, представляющих одно и то же
явление — от частных случаев к общему. Например, конкретные события загорания светофора красным, желтым или зеленым цветом определяет роль «цвет» с акторами «красный», «желтый» и «зеленый» в абстрактном явлении загорания светофора. В качестве другого примера, конкретные события по мытью окна мамой или папой определяет роль «чистящий» с акторами «мама» и «папа» в абстрактном явлении чистки окна. Наконец, события представляющие соединяющий штрих в букве «н» при написаниях ее различным почерком, определяют значения роли (свойства, в данном случае) «наклон» в диапазоне углов наклона, близким к горизонтальному. - Выделение акторов (Actor differentiation) — определение отдельных акторов, играющих сходную роль во множестве событий, общных между собой по акторам в других ролях — от
общего, к частному. Для первого из приведенных выше примеров — при значении роли «яркость» равной «горит» у загорания светофора, анализ прецедентов позволяет выявить значения роли «роли» цвет - «красный», «желтый» и «зеленый». Далее, факты мытья окна мамой и папой могут выявить как того, так и другого в качестве исполнителя роли «чистящий». Соответственно, изучение множества написаний буквы «н» позволяет выявить все углы наклона соединительного штриха как значения роли (свойства) «наклон». - Унификация явлений (Appearance unification) — определение множества событий характеризуемых сходным набором ролей и акторов, играющих эти роли, при различии
отдельных акторов в конкретных событиях. То есть, абстрактное явление загорания светофора может характеризоваться акторами «красный», «желтый» и «зеленый» в роли «цвет» при различных событиях такого рода, абстрактное явление мытье окна может в разных событиях реализоваться с акторами «мама» или «папа» в роли «моющего», а множество конкретных штрихов, соединяющих вертикальные штрихи при различных написаниях буквы «н» определят абстрактное явление, отличное от похожего штриха при написании буквы «п». - Кластеризация событий (Event clustering) — определение множества совпадений как групп совпадающих по времени событий, относящихся к одной и той-же группе явлений. Например,
совпадения загорания светофора красным цветом с движением самых разных машин на дороге, или — совпадения мытья окна кем-либо с увеличением количества света в комнате и четкости объектов видимых сквозь стекло, либо — визуальное совпадение горизонтального штриха между двумя вертикальными штрихами со звуком «н», произносимым мамой или папой. - Унификация ситуаций (Situation unification) — определение множества совпадений, объединяющих группы событий, относящихся к одной и той-же группе явлений, то есть — типичной ситуации. К примеру, ситуацией в этих терминах может быть определенный цвет светофора при движении машин на дороге либо его отсутствии. Далее, абстрактное мытье окна кем-либо, сопровождаемое увеличением степени прозрачности стекла также может быть рассмотрено как ситуация. Наконец, под формальное определение ситуации попадает любое сочетание двух вертикальных штрихов с соединяющем их посередине горизонтальным, формирующее букву «н».
- Связывание совпадений (Coincidence chaining) — определение цепочек совпадений, следующих одно за другим во времени, образующих непрерывный процесс. Процессом может
быть ожидание сегодняшним утром у светофора на перекрестке по дороге на работу, с последующим переходом улицы на зеленый свет и благополучным достижением обочины на другой стороне дороги. Также, процессом является мытье окна в гостиной комнате этой весной, начиная с залезания на подоконник, собственно мытья стекол мокрой тряпкой и последующей протиркой их газетами. В свою очередь, последовательность звуков речи произносимой кем-либо, или выходящих из-под чьего-либо пера печатных символов, формирующих слово, тоже подходит под определение процесса. - Унификация сценариев (Scenario unification) — определение цепочек таких ситуаций, которые объединяют совпадения, следующий друг за другом точно той-же
последовательности, или, другими словами — объединяющих непустое множество процессов на реальной временной оси. Примером сценария может быть успешный переход улицы на зеленый цвет светофора, так и несчастный случай при переходе на красный. Не привязанное к конкретному времени абстрактное мытье окна — тоже сценарий. Соответственно, транскрипция устного слова либо его письменное написание в словаре также является сценарием. - Выявление ситуационных развилок (Situational fork detection) — для семейства сценариев, имеющих одну и ту же часть (то есть, содержащих идентичные цепочки ситуаций),
но различающиеся по ситуациям в конце (исходам), нахождение последней ситуации в цепочке идентичных — за которой начинается различие сценариев. К примеру, ситуационной развилкой может быть загорание красного сигнала светофора при выходе пешехода на проезжую часть и одновременным началом движения транспорта — с тем или иным исходом. Другим примером ситуационной развилки является окончание мытья окна мокрой тряпкой, когда либо не просушенной газетой стекло может оказаться с грязными разводами после просыхания, либо — протертое — оказаться кристально чистым. Наконец, про распознавании цепочки звуков [jo] следующими звеньями в цепи [см. цепи Маркова] может быть как [ж] в слове «ёж», так и [л] в слове «ёлка». - Выделение ситуационных триггеров (Situational trigger differentiation) — для семейства сценариев с выявленными ситуационными развилками, в первой ситуации после развилки,
определение в различных сценариях явлений или наборов явлений, совокупность которых определяет различные исходы сценариев. В первом из рассматриваемых примеров ситуационным триггером для сценария с фатальным исходом может быть выход на проезжую часть при красном свете светофора. Во втором примере, ситуационным триггером для исхода служит протирка окна газетой после окончания мытья его мокрой тряпкой — что гарантирует исход с действительно чистым стеклом. В последнем примере, сами символы и звуки «ж» и «л» являются такими триггерами, предопределяющими окончательное смысловое значение слова, отличное только в эмоциональных оттенках («ёж» и «ёжик», или «ёлка»).
6. Заключение
Описанная выше модель находится в процесс реализации в рамках проекта https://aigents.com/, начиная с 2014 года, по настоящее время. Следите за обновлениями на сайте и в наших группах в соцсетях:
https://www.youtube.com/aigents
https://www.facebook.com/aigents
https://plus.google.com/+Aigents
https://medium.com/@aigents
https://steemit.com/@aigents
https://golos.id/@aigents
https://vk.com/aigents
Список литературы
- Survey on Event tracking and Event Evolution
http://www.ijcta.com/documents/volumes/vol3issue1/ijcta2012030101.pdf - Intelligent Agent for Web Watching : Language and Belief System
http://aigents.com/papers/2014AgentBeliefKolonin.pdf - Подсказка по системе Aigents
http://aigents.com/ru/help.html - Fractals in the Nervous System: conceptual implications for Theoretical Neuroscience. http://arxiv.org/pdf/0910.2741.pdf
- Story Teller: Detecting and Tracking Hot Topics to Enhance Search Engine Performance http://iir.ruc.edu.cn/project/storyteller.jsp
- WebSkimming: An Automatic Navigation Method along Context-Path for Web Documents http://www2002.org/CDROM/poster/202/
@aigents, поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Награда за количество опубликованных постов
Вы можете нажать на бейдж, чтобы увидеть свою страницу на Доске Почета.
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
Чтобы поддержать вашу работу, я также проголосовал за ваш пост!
Не пропустите прочитать последний пост в Доске почета!