Уровни работы с ISO 15926 «Ассемблер» ISO 15926:2 - EXPRESS actual_individual, class_of_class Аксиомы ISO 15926:7 - First Order Logic ActualIndididual(x)

Презентация:



Advertisements
Похожие презентации
БАЗЫ ДАННЫХ ЛЕКЦИЯ 6. тема: ПРОЕКТИРОВАНИЕ ВНУТРЕННЕЙ МОДЕЛИ.
Advertisements

OOП Инна Исаева. Подпрограмма – это большая программа, разделённая на меньшие части. В программе одна из подпрограмм является главной. Её задача состоит.
Введение в формальные (аксиоматические) системы. Формальные системы - это системы операций над объектами, понимаемыми как последовательность символов.
Поиск в базах данных с заранее неизвестной структурой. Теория.Практика.Приложения. Горелов С.С. МГУ им. М.В. Ломоносова механико-математический факультет.
Лекция RAISE Development Method: некоторые виды спецификаций и проверка согласованности моделей.
МГУ имени Ломоносова, механико-математический факультет, кафедра вычислительной математики Исследование проблемы переполнения буферов в программах Пучков.
1 Кубенский А.А. Функциональное программирование. Глава 4. Основы лямбда-исчисления Рекурсия в лямбда-исчислении fac = λn.(if (= n 0) 1 (* n (fac.
Анализ вычислительной сложности алгоритмов Теория сложности вычислений.
Сошников Дмитрий Валерьевич к.ф.-м.н., доцент Факультет инноваций и высоких технологий Московский физико-технический институт.
Классификация и регрессия Доклад по курсу Интеллектуальный анализ данных Закирова А.Р. 1.
Троицкий Д.И. Лингвистическое и программное обеспечение САПР 1 Классификация грамматик и языков Лекция 9 Кафедра «Автоматизированные станочные системы»
1 Кубенский А.А. Дискретная математика. Глава 2. Элементы математической логики Исчисление высказываний Высказывание – утверждение о математических.
Логическое программировыание Презентация 5 Списки в Прологе.
Графический способ решения систем уравнений Предмет математики настолько серьезен, что полезно не упустить случая сделать его немного занимательным. Б.
Моделирование и исследование мехатронных систем Курс лекций.
Введение в математическую логику и теорию алгоритмов Алексей Львович Семенов Лекция 5.
Вспомогательный алгоритм Вспомогательный алгоритм Вспомогательный алгоритм Вспомогательный алгоритм Метод пошаговой детализации Метод пошаговой детализации.
Лекция 5. Язык программирования - ассемблер. Логические основы компьютера.
Язык высокого уровня компилятор Программа компиляторов Сделал:Студент группы:Ис-2о(очная)Воротов Валентин.
Транксрипт:

Уровни работы с ISO «Ассемблер» ISO 15926:2 - EXPRESS actual_individual, class_of_class Аксиомы ISO 15926:7 - First Order Logic ActualIndididual(x) PossibleIndividual(x) «Темплейты» ISO 15926:7 (FOL/rewriting) ApprovalTriple(x, y, z) Approval(x) & hasApproved(x, y) & hasApprover(x, z) OIM (Object Information Model) Domain specific templates??? DSL internal/external (e.g. Python)

Историческая перспектива «Ассемблер» 15926:2 слишком сложен для неспециалистов Решение ввели «темплейты» 15926:7 fact oriented определены поверх аксиоматики на языке First Order Logic (Prover9) аксиомы/темплейты нормативны в 15926:7, т.е. де-факто reference implementation Альтеранативный вариант ISO 15926:8 реализация поверх OWL Широкий набор OWL инструментария

Проверка целостности Основа реализации проверка целостности описаний К примеру, исключить случаи, когда ActualIndividual одновременно является ClassOfIndividual «Референсная» проверка относительно аксиоматики 15926:7 «Разворачиваем» темплейты Проверяем, что полученный набор утверждений выполним относительно аксиоматики

Проверка целостности с помощью логик FOL provers (или model finders) e.g. Prover9 (and lots of others) Трансляция в DL logics Provers: FaCT++, Pellet, RacerPro, HermiT Трансляция в SAT (propositional logics) Не уверен, что всегда возможна прямая трансляци, но можно использовать incremental подход Другие логики HOL/Type-theory Избыточно, но удобно для встраивания в языки и для мета-теор. целей

Зачем делать свою реализацию? Производительность/масштабируемость FOL слишком мощная для 15926:7: гибко, но медленно К примеру, тормозит на абстрактных класс из-за недетерминизма (OR-branching) Большие размеры моделей O(a*n)/O(b*n 2 ) для унарных/бинарных предикатов Все описание обрабатывается одновременно возможно разбиение на подзадачи

Зачем делать свою реализацию? (продолжение) Поиск и индексация в хранилищах данных опирается на те же структуры данных Создание инструментария и DSL Быстрая проверка на ошибки критична для юзабилити Сообщения об ошибках К примеру, Осман уже реализовал :) Мега-мета-проект: 15926L :)

Общая идея алгоритмов проверки целостности Пытаемся строить модель/интерпретацию для описания для каждого класса (отношения) задаем список инстансов (пар), которые ему принадлежат Проверяем (конечную) модель на соответствие аксиомам Медленно, нужны оптимизации сотни предикатов/1000+ аксиом бинарные отношения - O(n 2 ) недетерминизм Надо учитывать особенности аксиоматики

Построение модели T теория (аксиомы), F формула вида & | (плюс предикаты и константы) Берем все константы исходное множество инстансов F преобразуем дизъюнктивную форму вида (A&B&C)|(D&E&F)|..|(X&Y&Z) – Or-branching экспонента в worst-case Перебираем конъюнкты A(a)&B(b)&C(d) – Исходное множество утверждений – Выводим новые, используя аксиомы – Если модель непротиворечива - win Все конъюнкты противоречивы - fail

Построение модели (аксиомы) A(x)&..&B(x) C(x) – Если все A(a)..B(a) есть в текущей модели, добавляем C(a) A(x)&..&B(x) C(x)|D(x) – Or-branching – Дважды-экспоненциально в worst-case! ~(A(x)&..B(x)) – Эквивалентно A(x)&..&B(x) False – Если аксиома применима противоречие A(x)&..&B(x) u Φ(u,x) – Добавляем новые инстансы в модель – Потенциально неограниченные модели! – В 15926:2 к счастью ограниченны :)

Особенности аксиоматики 15926:2 Единственный источник конфликтов disjoint аксиомы (one_of(Class1, Class2 etc)) Достаточно конечных моделей намекается в стандарте :) Похоже можно избавится от бинарных отношений (e.g. hasClassifier(x,y)) Резко сокращает размеры моделей «Линейные» (компактные) модели В стандарте не намекается, но скорее всего :) Недетерминизм в основном вызван трансляцией abstract class, но не только

Альтернативный вариант Проверка целостности как проверка типов некоторого языка программирования Изначально так и примерно и было EXPRESS language Удобнее для встраивания в DSL Проблемы с использованием сущ. языков Множественное наследование Oneof (далеко не во всех языках) Недетерминизм Abstract class трансляция

Алтернативный вариант (продолжение) Осман уже что-то сделал :) Скорее всего проблемы с недетерминизмом Оптизимации алгоритма Инкрементальный (проверяем по частям) Компактные модели оптимизации недетерминизма оптимизации AND-branhing, быстрые проверки конфликтов Хранилище данных Можно сделать эффективнее чем triple-store