ConceptBase

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 22:55, 25 июня 2016.
ConceptBase
Conceptbase.png
All 4 MOF levels for Entity-Relationship Diagrams displayed in the ConceptBase Graph Editor
Разработчики: Team at University of Skövde (HIS) and University of Aachen (RWTH)
Лицензия: FreeBSD-style license [1]
Веб-сайт conceptbase.sourceforge.net

ConceptBase - это дедуктивная и объектно-оринтированная система управления базой данных разработанная в Университете Ахена и Тильбургском Университете. В основном используется для концептуального моделирования и метамоделирования в сфере программного проектирования и соответствующих сферах.

Общее

ConceptBase имеет следующие особенности:

  • Объектно-оринтированные концепты, такие как классы и наследование
  • Правила дедукции заданные движком Datalog
  • Рекурсивное определение функций
  • Активные правила, соответствующие парадигму "событие, условие, действие"
  • Метамоделирование с множеством произвольных уровней абстракции (метаклассы, мета метаклассы)

Определение нотации

В conceptbase метамодель это коллекция связанных метаклассов. Их экземпляры (обычные классы) относятся к модели.

Conceptbase1.png

Метамодель и модель заданы синтаксисом простого текстового фрэйма. Например, поток документов на уровне мета-класса может быть задан так:

Agent with
  attribute
     delivers: Agent
end

Agent!delivers with
  attribute
     content: Document
end

Document end

Бизнес модель нотации

Conceptbase2.png

Другой пример определения нотации с conceptbase это бизнес модель. Бизнес модель определяется так:

Customer isA BMG_Object end
Revenue isA BMG_Object end
CustomerRelationship isA BMG_Object end
Channel isA BMG_Object end
ValueProposition isA BMG_Object end
KeyActivity isA BMG_Object end
KeyResource isA BMG_Object end
Cost isA BMG_Object end
KeyPartner isA BMG_Object end

Метамоделирование

Conceptbase поддерживает OMG UML инфраструктуру [2] уровня абстракции (M0=data level, M1=model or schema level, M2=notation level, M3=notation definition level и так далее и использует единственную структуру данных — P-факт, используемую для представления любой фактической информации. Однако conceptbase не разделяет постулат OMG о том, что между уровнями абстракции разрешены только ссылки инстанциирования. M3 уровень выглядит так:

Concept with
 attribute
    singleDef: Concept;
    necessaryDef: Concept
end
Все M уровни

Объект Concept задает два атрибута-категории singleDef и necessaryDef, которые используются для захвата некоторых объектов со второго уровня. Второй уровень задает язык сущность-отношение:

Concept EntityType with
  attribute
    attr: Domain;
    key: Domain;
    superType: EntityType
end

Concept RelationshipType with
  attribute
    role: EntityType;
    "1..n": EntityType;
    "2..n": EntityType;
    "1..1": EntityType;
    "0..1": EntityType;
    "0..2": EntityType;
    "0..n": EntityType;
    "n..m": EntityType
end

Datalog-based язык ограничений позволяет захватывать семантику нотации нижнего (второго) уровня. В этом случае "0..1" определены так, чтобы разрешать максимум одно отношение.

Уровень M1
Class RelationshipType with
  constraint
    ic_max1: $ forall A/RelationshipType!"0..1" a1,a2,r/Proposition
                   (a1 in A) and From(a1,r) and
                   (a2 in A) and From(a2,r)
                ==> (a1 = a2) $
end

Уровень M1 используется для представления примеров сущность-отношение диаграм. Определения, представленные ниже используют то же текстовое frame-like представление. Это формат принятый сервером ConceptBase в программном интерфейсе. Некоторые клиенты могут генерировать фрэймы из входных данных пользователя и выдавать графическое представление, оптимизированное для соответствующей нотации.

EntityType Staff with
  attr
    name: String;
    hired: Date;
    salary: Integer
  attr,key
   staffno: Integer
end

RelationshipType employs with
  role, "0..n"
    employee: Staff
  role, "1..1"
    employer: University
end
...

Наконец, уровень M0 используется для валидации примеров диаграмм с некоторыми данными. Следует отметить, что некоторые дефиниции из уровня M2 могут быть проверены только на уровне данных.

employs emp3 with
  employee
    who: kurt
  employer
    where: RWTH
end

Примечания

Ссылки