База данных - shyzik93/ManSPy GitHub Wiki

В данный момент используется БД SQLite, состоящая из нескольких таблиц:

  1. ФАСИФы
  2. Слова
  3. Связи слов (отношения)

Планируется постепенный переход к единой таблице связей, а затем - переход на универсальную БД Links.

ФАСИФы

Слова

Связи слов

Поля таблицы:

1 2 3 4 5
Связь ЧастьРечи Группа СловоИлиГруппа ЭтоГруппаИлиСлово?

Если пятое поле = 0, то четвёртое поле - это слово. Иначе четвёртое поле - это группа в связи = пятому полю.

Низкоуровневые функции для работы со связями на вход могут принимать как слова (строки), так и их идентификаторы, но возвращают они только идентификаторы. Это позволяет без проблем состыковывать данные функции, образуя новые.

Описание связей — семантических отношений.

  1. Синоним, Тождественность.
  2. Нумерация группы - по порядку.
  3. Четвёртое поле - слово
  4. Кол-во объектов в группе: неограничено
  5. Одно слово может входит в одну группу.
  6. Часть речи учитывается
  7. Антоним.
  8. Нумерация группы - по порядку.
  9. Четвёртое поле - группа из связи "Синоним".
  10. Кол-во объектов в группе: 2.
  11. Одна группа может входит в одну группу.
  12. Часть речи учитывается
  13. Гипероним (обобщение, надмножество), холоним (что-то состоящее из частей, конструкция).
  14. Нумерация группы - слово.
  15. Четвёртое поле - слово или группа из любой связи. Если группа входит в гиперонимы, то следует указывать именно слово, так как указание его группы приведёт к такому же эффекту, но усложнит понимание. То есть, при указании группы в данный гипероним будет входить все слова в группе, включая слово-заголовок группы, если это не идентификатор.
  16. Кол-во объектов в группе: неограничено.
  17. Одно слово или группа может входит в несколько групп.
  18. Часть речи не учитывается.

Антонимия может быть разных вариантов:

  • противоположность действий
  • противоположность положения объектов в социальной иерархии.
  • антагонизм, антибиоз живых объектов в природе.
  • противоположность характеров
  • конкуренты

Синонимия может различаться по степени отличия оттенков слов.

Все варианты связей представляются разными идентификаторами, но с одинаковым техническим описанием. Хотя смысловое описание связи -тоже разное. По сути, можно сделать базу, содержащую шаблоны технических описаний, чтобы на них ссылаться из смыслового описания. Названия шаблонов: синонимия, антонимия, гиперонимия и т. д. с разными дополнительными настройками.

Проверка на наличие в базе

  • Если N.iv как у антонимов и синонимов:
    • если создаётся новая группа, то извлекаем группу с такими же типом, словом, извордом, часть речи.
    • если добавляется в существующую группу, то извлекаем группу с такими же типом, группой, словом, извордом, часть речи.
  • Если N.iv как у гиперонимов:
    • то извлекаем группу с такими же типом, группой, словом, извордом

Динамическое создание связей