База данных - shyzik93/ManSPy GitHub Wiki
В данный момент используется БД SQLite, состоящая из нескольких таблиц:
- ФАСИФы
- Слова
- Связи слов (отношения)
Планируется постепенный переход к единой таблице связей, а затем - переход на универсальную БД Links.
ФАСИФы
Слова
Связи слов
Поля таблицы:
1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|
Связь | ЧастьРечи | Группа | СловоИлиГруппа | ЭтоГруппаИлиСлово? |
Если пятое поле = 0, то четвёртое поле - это слово. Иначе четвёртое поле - это группа в связи = пятому полю.
Низкоуровневые функции для работы со связями на вход могут принимать как слова (строки), так и их идентификаторы, но возвращают они только идентификаторы. Это позволяет без проблем состыковывать данные функции, образуя новые.
Описание связей — семантических отношений.
- Синоним, Тождественность.
- Нумерация группы - по порядку.
- Четвёртое поле - слово
- Кол-во объектов в группе: неограничено
- Одно слово может входит в одну группу.
- Часть речи учитывается
- Антоним.
- Нумерация группы - по порядку.
- Четвёртое поле - группа из связи "Синоним".
- Кол-во объектов в группе: 2.
- Одна группа может входит в одну группу.
- Часть речи учитывается
- Гипероним (обобщение, надмножество), холоним (что-то состоящее из частей, конструкция).
- Нумерация группы - слово.
- Четвёртое поле - слово или группа из любой связи. Если группа входит в гиперонимы, то следует указывать именно слово, так как указание его группы приведёт к такому же эффекту, но усложнит понимание. То есть, при указании группы в данный гипероним будет входить все слова в группе, включая слово-заголовок группы, если это не идентификатор.
- Кол-во объектов в группе: неограничено.
- Одно слово или группа может входит в несколько групп.
- Часть речи не учитывается.
Антонимия может быть разных вариантов:
- противоположность действий
- противоположность положения объектов в социальной иерархии.
- антагонизм, антибиоз живых объектов в природе.
- противоположность характеров
- конкуренты
Синонимия может различаться по степени отличия оттенков слов.
Все варианты связей представляются разными идентификаторами, но с одинаковым техническим описанием. Хотя смысловое описание связи -тоже разное. По сути, можно сделать базу, содержащую шаблоны технических описаний, чтобы на них ссылаться из смыслового описания. Названия шаблонов: синонимия, антонимия, гиперонимия и т. д. с разными дополнительными настройками.
Проверка на наличие в базе
- Если N.iv как у антонимов и синонимов:
- если создаётся новая группа, то извлекаем группу с такими же типом, словом, извордом, часть речи.
- если добавляется в существующую группу, то извлекаем группу с такими же типом, группой, словом, извордом, часть речи.
- Если N.iv как у гиперонимов:
- то извлекаем группу с такими же типом, группой, словом, извордом