Редактор знаний Knowledge.NET Санкт-Петербургский Государственный Университет Докладчик Черепанов Дмитрий Научный руководитель Сафонов Владимир Олегович, проф., д.т.н.
Постановка задачи Инструмент для работы со знаниями на языке Knowledge.NET Визуализация Ввод Модификация
Архитектура Реализован как расширение (add-in) для Visual Studio 2005 Запускается автоматически вместе с VS Использование стандартного интерфейса среды VS
Возможности Новый тип проекта Текстовое, графическое представления Навигация Конвертор Инсталлятор
Новый тип проекта
Стандартный для VS набор видов проектов расширен новым - Knowledge Копирование шаблонов при установке Microsoft.Win32.Registry.LocalMachine.OpenSubKey("Software\ Microsoft\VisualStudio\8.0) + "ProjectTemplates\CSharp\Windows\1033
Текстовое и графическое представления
Схема MVC (Model / View / Controller) Отделяет вид от модели, устанавливая между ними протокол взаимодействияподписка/оповещение Паттерн Observer Наблюдатели (observers) уведомляются об изменении в состоянии субъекта (subject)
Интерфейсы и методы Методы интерфейса ISubject Attach(IObserver) – присоединение набл. Detach(IObserver) – отсоединение набл. Notify() – уведомление об изменении субъекта Методы интерфейса IObserver Update(ISubject) – интерфейс обновления наблюдателя
Навигация
Реализация Построение регулярного выражения Поиск вхождений в исходном тексте System.Text.RegularExpression Поиск текста в документе EnvDTE
Конвертация
Реализация Класс KnowledgeAdapter – адаптирует интерфейс внутреннего представления конвертора Запуск конвертора (Knowledge.Core.dll) Обновление наблюдателя KnowledgeCsView
Инсталлятор
Реализация Проект Knowledge.Setup Проект Knowledge.Setup.CustomActions Регистрация add-in (копирование KnowledgeNETFramework.AddIn) Регистрация нового типа проекта (копирование шаблонов)
Шаблоны Observer – независимое изменение модели и представлений Adapter – переиспользование внутреннего представления Singleton – контроллер, описывает как интерфейс реагирует на действия пользователя
Инструменты Log4net Enable logging at runtime Hierarchical logging Devenv.eve.config Visual Studio Add-In Wizard Visual Studio Setup Wizard
TODO Исправление дефектов Синхронизация представлений Текстовое -> графическое Графическое -> текстовое Формирование.expert по модели Онтологии Модель / конвертор
?