GithubHelp home page GithubHelp logo

tiendil / morphologic Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 1.0 2.55 MB

morphological analysis tool: https://tiendil.github.io/morphologic/

License: BSD 3-Clause "New" or "Revised" License

JavaScript 30.34% HTML 0.59% Vue 68.99% Shell 0.09%
knowledge-base morphology-analysis solution-architecture solutions-engineering

morphologic's Introduction

Development for fun and profit

Old-school indie game developer & hacker. My languages are Russian & English.

Most of my career I develop games:

Interesting stuff about me:

  • Have not attached to a single technology, can easily switch to the most appropriate stack for a current project.
  • Can do a lot of things besides programming: game design, marketing, support, community development, etc.
  • Actually, I operate my own hobby mini-MMO game, where I do almost everything.
  • Check my blog for interesting essays: https://tiendil.org/ — someday I will translate it to English :-)

Have a good day. Feel free to contact me by email: [email protected] — I like to exchange letters.

Discord: 427884798099456010

morphologic's People

Contributors

tiendil avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Forkers

upl-depot

morphologic's Issues

Извлечение признаков из внешних источников

Группы признаков можно заполнять / дополнять автоматически, извлекая их из внешних баз знаний (например википедии) или из специализированных генераторов (например, можно сделать генератор цветовых признаков).

Включение / отключение правил

Сейчас правило можно только создать и удалить. Необходима возможность его временно отключить (так как правило может быть сложным и постоянно воссоздавать его будет заметной проблемой).

Дополнительные модификаторы стоимость решения

Это мета-задача со списком всех возможны модификаторов.

  • Учитывая разную мощность множеств свойств в группах, логично добавить правила «меньше свойств — лучше», «больше свойств лучше», «стараться получить от A до B свойств из одной группы». Частично это можно сделать сейчас, создав множество правил «Change Solution Score at», но это откровенно неудобно.

Мета: Список срезов и инструментов

На «базу знаний» можно смотреть через разные срезы. Необходимо добавить больше их вариантов.

Это мета-задача со списком всех возможных срезов.

  • Groups — отображение свойств по группам.
  • Rules — отображение всех правил.
  • Solution — список лучших решений.
  • Advices — список предложений по дополнению базы знаний (результат работы эвристик).
  • Попарное сравнение свойств. В итоге должен получиться ориентированный ацикличный граф, по которому можно автоматически назначить оценку каждого свойства (и пересчитывать её при ручном изменении оценки свойств).

Разработать словарик

Так как предметная область продукта почти никому не известна, необходимо разработать словарик терминологии (и внедрить).

Мета: социально-сетевый фичи

Это мета-задача со списком потенциальных социальных фичей.

  • Шариг признаков, правил, проектов. В идеале, импорт в / экспорт из указаных репозиториев на github.
  • Публичный доступ к проектам на сайте morphologic. С возможность копировать себе весь проект или его часть.
  • Pull requests для публичных проектов.
  • Совместное редактирование проектов.

История применения советов эвристик, статусы советов.

Будет особенно актуально после gh-10.

Необходимы статусы советов:

  • новый;
  • был применён пользовалетем;
  • был отклонён пользователем.

Необходимо запоминать какими советы посмотрел пользователь, чтобы не повторять их.

Необходимо решить, что делать с советами, которые стали неактуальными.

Необходимо решить, по каким критериям давать повторные советы (например, совет был дан, применё пользователем, потом база знаний изменилась и совет снова стал актуальным).

Формирование красивого отчёта

В отчёте должны быть в понятном человеку виде:

  • исходные данные (свойства и ограничения);
  • найденные решения;
  • объяснение, почему найденые решения лучшие;
  • дополнительная информация, направленная на облегчение понимание и расширение знаний о предметной области.

Вложенные группы свойств

Часть групп свойств может быть доступно только если в решение добавлена необходимое свойство из «родительской» группы.

Пример со снегоходом.

Группы частей снегохода:

  • двигатель: AA (бензин), AB, AC;
  • движитель: B, B2, B3;
  • трансмиссия: C1, C2, C3.

Вложенные группы для бензинового двигателя:

  • мощность: AA1, AA2, AA2;
  • материал: BB1, BB2, BB3.

см. также gh-14

История изменений проекта и чекпоинты

Основная задача морфологическго анализа — исследование пространства решений. Поэтому пользователю часто надо изменять правила в базе знаний, пробуя разные варианты.

Это будет делать значительно проще, если проект пользователя будет иметь историю изменений, а в идеале — находиться под системой контроля версий.

Доработки шаблонов множеств свойств

Шаблоны используются в правилах для описания их применения сразу ко множеству решений.

Возможные доработки:

  • Убирать (предупреждать) одинаковые свойства в альтернативных ветвях.
  • Убирать (предупреждать) бессмысленные добавление свойств в шаблон.
  • Сворачивание / разворачивание частей шаблона.

Мета: Список эвристик

Эвристики «дают советы» по дополнению базы знаний.

Это мета-задача со списком всех эвристик.

  • Группа не имеет свойств с назначеной оценкой — назначте оценку.
  • Есть два лучших решения с частично одинаковыми свойствами — если оценить или изменить оценку входящих в них свойств, то решения могут стать оптимальнее.
  • Отслеживание дубликатов правил — если дубликат найден, предложить изменить или удалить.
  • Отслеживание взаимоисключающих правил — если дубликат найден, предложить изменить или удалить.
  • Отслеживание бессмысленные / устаревшие правила (не ограничивающие область решений, относящиеся к свойствам из изменившихся групп) — если дубликат найден, предложить изменить или удалить.
  • При наличии нескольких лучших решений с элементами без оценок, предлагать сравнить пару своств из разных решений или явно оценить каждое из свойств.
  • Определять свойства, которые реже прочих упоминаются в правилах и предлагать добавить дополнительные правила с ними.
  • Определять какое правило больше прочих влияет на результат.
  • Если решение не удаётся найти, отображать какие правила мешают этому сильнее всего.
  • Если решение ищется слишком долго, предлагать свойства, которые было бы полезно ограничиит дополнительными правилами.
  • Оценивать сложность правил и ругаться, если есть риск переполнения памяти (особенность текущей реализации).

Переписать на TypeScript

Сейчас весь код написан на ванильном JavaScript. Необходимо переписать на TypeScript, чтобы повысить надёжность.

Мета: возможные направления использования

Это мета-задача со списком всех возможных направлений использования.

По этому списку мжно добавлять предопределённые примеры.

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

Умный интерфейс эвристик

Сейчас эвристики предлагают статические советы (вкладка Advices).

Будет намного удобнее, если в свете сразу будет кнопка «применить» или кнопки нескольких вариантов действий, если таковые есть.

См. также gh-13

Мета: интерфейсные фичи

Это мета-задача со списком всех возможных доработок интерфейса.

  • Перетягивание панелей групп.
  • Перетягивание свойств панели группы и между панелями.
  • История операций редактирования (см. также gh-13).
  • Явное отображение ситуации, когда решение не найдено (и обновление статистики).
  • Выбор аватарок групп пользователем (см. также https://github.com/man15h/vue-jazzicon).
  • Менять цвет заголовка правила в зависимости от его логики (условия, действия).
  • Для свойства отображать количество (и список) правил, в которых оно задействовано.
  • Унифицировать отображение мощности множества в правилах и группах.
  • Возможность добавить комментарий к любому элементу базы знаний.
  • Ко всем элементам интерфейса добавить всплывающие подсказки.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.