ostis-dev / kbe Goto Github PK
View Code? Open in Web Editor NEWKnowledge Base source Editor
Home Page: www.ostis.net
License: Other
Knowledge Base source Editor
Home Page: www.ostis.net
License: Other
При создании нового файла необходимо добавить возможность создания уже готовых шаблонов для типовых конструкций.
Шаблоны должны храниться во внешних файлах, которые потом можно легко менять и добавлять. Кроме этого надо учесть такую вещь как размещение. Чтобы указывать в шаблонах как размещать конструкции. Они же не будут жестко фиксированы.
При выравнивании по сетке или связки возникает проблема:
Не пересчитываются dot позицции для дуг. Если же выполнить еще раз, не меняя параметры, то они пересчитываются.
Скорее всего проблема в очередности применения изменений. Все изменения заносятся в стек команд и мы н е знаем в какой очередности они выполняются. Поэтому изменения к дугам могут происходить раньше, чем изменения объектов в которые они входят или выходят. Проблема только, с концами дуг, которые присоединяются к линейным объектам.
Добавить возможность выбора режима редактирования для SCg-констукций. К примеру: редактирование онтологии БЗ, редактирование SCP программ, редактирование Геометрической БЗ и т. д.
По сути каждый режим должен быть описан во внешних файлах и подгружаться системой при старте, после чего у пользователя есть возможность работать с ним. В режиме может быть свой набор команд и стилистик размещения. К примеру при редактировании SCP программ добавить команду создания оператора (целая конструкция).
У пользователя появиться возможность редактировать различные SCg-конструкции по разному. Но при этом останется и лобовой (стандартный вариант).
Пока на стадии идеи.
Будет детальнее описано.
При создании нового файла дать возможность пользователю выбрать его тип. Тип берется из зарегистрированных форматов (scg, m4scp, scs и т. д.) Пока достаточно сделать список корматов и выбор из него (не выпадающий, а обычный список).
Add constraints that will affect to scg constructions. For example, movement constrain for two objects to make them on horizontal line. When we move one of them, the other will be moved to the same Y coordinate.
Ограничители позволят пользователю задавать ограничения на конструкцию, например при перемещении мы можем сказать, что объект А должен находиться на одной горизонтальной линии с объектом Б. Тогда при перемещении одного из объектов второй тоже перемещается.
Очень важным является, чтобы установка ограничителей была очень быстрой и не требовала от пользователя большого времени. Основная цель у пользователя - нарисовать SCg-конструкцию, а не сделать ее красивой. Ограничители позволят лишь опростить некоторые вещи.
В рамках этой задачи необходимо разработать базовые классы для ограничителей, и два базовых ограничителя: выравнивание по горизонтали и вертикали. Которые выставляют ряд объектов в одну линию при перемещении какого либо из них.
Важным является то, что ограничители могут иметь дочерние ограничители, то есть использовать друг друга
При установке числового содержимого с большим показателем экспоненты, например "123e1552", происходить переполнение, и в результате устанавливается ноль. Возможно, стоит ввести ограничения на порядок устанавливаемого числа.
Добавить возможность установки содержимого SCg-рамки при помощи перетягивания файлов.
Логика работы следующая, если файл перетянут на таб-бар, то он открывается при наличии плагина, который его поддерживает.
Если файл перетянут на SCg-окно, то возможны следующие варианты:
Добавить алгоритм выравнивания связок по шаблону как на рисунке http://img233.imageshack.us/img233/2195/template1n.png. При этом выделяется связка которая указана зеленым цветом.
Должна иметься возможность настройки, длины бинарной пары, и расстояния между объектами которые соединены с шиной.
Такой алгоритм должен работать как и выравнивание по сетке. Это значительно упростит набор текстов, так как такие конструкции используются при описании отношений идентификация_, декомпозиция_ и многих других.
Make cmake scripts for project building
Внести в changelog все изменения в версии
Сделать документацию в tex или doxygen формате, и сборку его в pdf
Перевести редактирование исходных кодов на уровень проекта БЗ. Вся база знаний хранится в директории, которая имеет следующую структуру:
Необходимо для всех плагинов добавить интерфейсы получения идентификаторов, ключевых узлов и т. д. И хранить эту информацию централизованно.
В режимах создания дуги, шины, контура при нажатии правой кнопки мыши для отменя создания последней точки выпадает контекстное меню, чего не должно происходить
Добавить окно с подсветкой синтаксиса для редактирования m4scp программ.
Семантическая окрестность может быть представлена на разных языках, для начала предлагается сделать SCn. Пример: https://sourceforge.net/apps/trac/ostis/raw-attachment/ticket/629/sample.png
Появляется при старте KBE, в нем отображается прогресс загрузки инструмента.
Прогресс должен отображаться для всех плагинов и для каждого плагина отдельно.
2 прогрессбара:
1 - % загрузки плагинов
2 - % загрузки конкретного плагина
Продумать и реализовать интерфейсы для алгоритмов обеспечивающих автоматическое размещени конструкций.
Добавить в документацию описание новых возможностей, которые добавлены
Разработвать новый формат хранения scg конструкций. В нем выделить семантику и синтаксис. По сути это обычный scs файл, в котором вся семантика - это scs-текст. Вся синтаксическая информация храниться в конце файла в коментариях
Семантика хранит типы объектов и связи между ними, а синтаксис: цвет, позицию и так далее.
scs-текст /* <object id="2"> <position>100 200</position> <identifier> ... </identifier> <points> <point>...</point> <point>...</point> <point>...</point> </points> </object> */
Для такого формата надо сделать загрузку и сохранение.
Преимущество такого формата, в том, что в него легко можно добавлять новые поля в синтаксис.
Важно, чтобы поле id было уникально для каждого объекта. В начале файла должна быть указана версия. Для проверки совместимости во время загрузки, на случай внесения изменений в формат.
Формат будет иметь расширение scs.
Добавить в список Denis Klimenko и Gr1n
Особенностью должно быть то, что редактирование должно быть визуальным (редактирование на уровне отображаемого текста, а не разметки), при этом сохранение может производить в различной разметке, к примеру одной из разметок может быть текущая используемая в рамках systems.ostis.net
Add settings dialog. This dialog make possible to change any settings for all parts of KBE (inluding plugins). Each plugin interface need function to get abstract description of possible settings. Settings for each plugins shows in separate tab.
Добавить возможность печати с поддержкой автоматического разбиения на страницы.
все что касается scg перенести в отдельную папку
При выборе изображения во время установки содержимого (в диалоге выбора файла), по умолчанию отображаются лишь bmp формат. Необходимо сделать, чтобы по умолчанию отображались все графические форматы, а пользователь потом мог выбрать любой, если ему надо.
Разделить все arrangers по файлам
Make interactive help about working with kbe. Show it on startup. Like a tutorial in game
Сделать так, чтобы инсталятор запускался от имени администратора. Есть проблема при установке на Windows 7, когда не хватает прав.
Переписать механизм arrangers. В интерфейсе оставить только следующие преегружаемые функции:
Сделать возможным изменение позиции идентификатора объекта. Это будет актуально после разработки нового формата issue #54
Add automatic update from server. Make updater as additional application. It starts on kbe start and update it if need.
Just for windows platform. Updating on linux will be throught default update system.
Изменение типа сделать следующим образом. В общем изменение по некоторому признаку включается по нажатии клавиши Alt + <некоторая клавиша>. После чего на экране появляются возможные типы по указанному признаку. каждому из которых соответствует клавиша, нажатие на нее - выбор типа.
Выбор типа по признаку константности для дуг и узлов:
Структурные типы узлов:
Alt + S. Появившимся типа соответствуют следующие клавиши: 1, 2, 3....
Все эти команды должны иметь аналог на панели инструментов. Типа команд редактирования в Word (курсив, подчеркнутый текст, жирный и т.д.)
Add support for different editors made as plugins
Add layers to work with scg-constructions. User can hide/show layers.
Some of them will be created automaticaly. For example, layer that contains nodes, arc, pairs and etc.
Also user can create his own layers.
Сделать возможность добавлять множество идентификаторов на различных языках для каждого объекта, которые потом будут связаны с объектов через отношение идентификация*
Добавить быстрые направляющие как в Photoshop. При перемещении объекта, они приклеиваются на одну линию с гранями, центрами, точками других объектов при достаточно маленьких расстояниях, это позволит быстро выравнивать объекты.
Изменить алфавит в соответсвии с новым описанием:
Make type changin menu like on image:
https://sourceforge.net/apps/trac/ostis/raw-attachment/ticket/243/menu.png
Add hot keys to accelerate type changing
Добавить иконку для выравнивания связки (файл: tool-align-tuple.png)
Запретить перемещение объектов, находящихся внутри контура, за его границы.
Добавить в license.html информацию о лицензии используемых сторонних библиотек (в том числе иконок).
Интерфейсы, которые обеспечивают работу расширений. На базе BaseWindow.
Add help tooltips, that will be show what user can do with current object.
For example, we have selected node. System show tooltips, that help user to work with selected object.
Добавить в алфавит sc-ребро и sc-дугу общего вида.
sc-ребро: https://sourceforge.net/apps/trac/ostis/raw-attachment/ticket/682/1.png
sc-дуга общего вида: https://sourceforge.net/apps/trac/ostis/raw-attachment/ticket/682/2.png
Добавить иконки для операций:
Сделать установку иконок из текущей темы: QIcon::fromTheme("document-save", QIcon(":/document-save.png"))
Add tooltips that show how to work with command.
For example see 3d max 2011.
Добавить исходный файл документации
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.