Метамоделирование: различия между версиями

Содержимое удалено Содержимое добавлено
Нет описания правки
мНет описания правки
Строка 4:
 
И все эти значения любопытны, так как включают в себя элемент мистической, но бесспорной возможности получить необходимое решение в общем виде, добраться до сути, воплотить идеальные представления об организации данных в нечто материальное и работающее.
 
 
15 лет назад смысл этого термина был более прозрачным.
Строка 28 ⟶ 27 :
какие есть свойства и связи между объектами).
 
Данные — это множество простейших единиц информации, которые касаются не абстрактных, а конкретных сущностей
(например, значение определённого свойства определённого элемента).
 
[[Изображение:Уровни модели данных.jpg]]
 
Основная цель метамоделирования — описать данные настолько глубоко,
чтобы они были _самодостаточными_<i>самодостаточными</i> и допускали расширение и модификацию своей структуры.
Аналогичным свойством хотелось бы наделить и софт, работающий с данными.
При метамоделировании это происходит автоматически. Софт, основанный на метамоделировании, гибок, так как он написан не для конкретного случая данных, с конкретной структурой и с фиксированными зависимостями, а _работает<i>работает в общем случае_случае</i>. Информацию о структуре данных он читает из модели и метамодели, и автоматически подстраивается под них.
 
Приведём пример.
Строка 74:
 
Эту дополнительную информацию в данном случае следует называть _моделью данных_.
Имея эту информацию и записав её в формальном виде, мы может осуществить автоматическую проверку наших данных — обнаружить места, где информация не полна (например, отсутствует информация о матери) или некорректна (указано больше двух родителей).
(например, отсутствует информация о матери) или некорректна (указано больше двух родителей).
 
<blockquote>
{{Примечание}}.
Термин _метаданные_ иногда используют как синоним модели данных. Но правильнее считать, что это разные вещи.
 
Метаданные — это просто дополнительная информация, например, некоторый заголовок, прикрепляемый к документу, с информацией об источнике данных, авторе, категории документа, времени создания и т.п. Метаданные не содержат информации о структуре данных и ограничениях, накладываемых на данных. Это просто атрибуты, позволяющие идентифицировать и классифицировать блоки данных.
</blockquote>
{{/Примечание}}
 
 
Действительно, проверку условий консистентности данных можно было бы поручить программисту, который бы "захардкодил" все эти условия в программный код приложений. Правда, если условия консистентности изменятся, то программиста придётся снова привлекать к работе. Это неприятно. Но от этой неприятности несложно избавится.
Строка 116 ⟶ 117 :
Метамодель — это модель данных для описания данных модели данных.
 
<blockquote>
%ENV{remark}%
{{/Примечание}}.
Масло масленое, но тут уж ничего не поделаешь. При описании таких тонких материй
как метамоделирование, приходится активно работать с языком. Русский язык
позволяет делать чудеса — сам он является замечательной метамоделью, которая объединяет множество предметных областей и позволяет записать самые разные знания, накопленные человечеством. Вот бы найти что-нибудь подобное по мощи, но более формальное и интерпретируемое компьютером!
</blockquote>
%ENDENV%
 
Приставка <i>мета-</i> практически всегда имеет относительный характер, и зависит
Строка 159 ⟶ 161 :
Но можно пойти далее и поднять уровень мета-описания (подняв на соответствующий уровень и софт, работающий с данными), а именно, дать описание служебных термов:
 
new_class "class"
Строка 190 ⟶ 192 :
 
 
<b>[[w:Семантика|Семантика]]</b> — это волшебное слово, непосредственно связанное
с метамоделированием. Оно означает скрытое (в обычных базах данных) смысловое значение данных.
 
Строка 230 ⟶ 232 :
Добавляя в систему какую-то возможность, лучше постараться её обобщить
и добавить в систему не специальную единичную фичу, а принципиально расширить
класс возможностей. Будьте уверены -- они понадобятся в будущем.
 
Безусловно, увлекаться поиском универсальных и общих решений не нужно.
Строка 281 ⟶ 283 :
* [[w:Метамоделирование]]
* [[w:RDF]]
 
==Ссылки==
* http://metamodel.org
* [http://www.w3.org/2001/sw Проект SemanticWeb]