Ontology Grounded Metalanguage
OGML (ang. Ontology Grounded Metalanguage, Metajęzyk zagnieżdżony w ontologii) – metajęzyk podobny do MOF[1] (ang. Meta-Object Facility ). MOF to standard dla inżynierii modelowej, którego celem jest zapewnienie zestawu interfejsów za pomocą których można manipulować i tworzyć interfejsy CORBA (ang. Common Object Request Broker Architecture, Powszednia architektura obsługi żądań pośrednika). Celem powstania OGML było zajęcie się trudnościami MOF: architekturą modelowania liniowego, niejednoznacznymi konstrukcjami i niezrozumiałą/niejasną architekturą.
OGML zapewnia zagnieżdżoną architekturę modelowania z trzema stałymi warstwami (modelu, języka i metajęzyka). Konstrukcja ta obrazuje w jaki sposób różne modele są ze sobą zgodne i jak mogą być obsługiwane. Konstrukcje w OGML dobierane są zgodnie z wytycznymi ontologii, co pozwala jasno rozróżnić właściwości/obiekty od klasy/obiekty od siebie. Wybór ten jest źródłem pewnych anomalii w definicji np. relacji.
Ponadto, OGML zawiera wyraźne pojęcie tworzenia instancji[2]: elementy modelu kodują jego typ, a języki definiują semantykę tworzenia instancji. Te dodatkowe informacje są potrzebne w architekturze modelowania względnego, aby dało się rozróżnić widoki strukturalne i koncepcyjne modeli, na przykład: możemy chcieć oglądać model UML (Unified Modeling Language) jako instancję języka obiektowego i instancję modelu klasy (Clabject[3]). Zapewniając ten podwójny widok na warstwie metamodelu i warstwie językowej, OGML zapewnia bardzo precyzyjną architekturę modelowania i ekspresyjny sposób radzenia sobie z modelami.
Przypisy
[edytuj | edytuj kod]- ↑ C. Atkinson , T. Kuhne , Model-driven development: a metamodeling foundation, „IEEE Software”, 20 (5), 2003, s. 36–41, DOI: 10.1109/ms.2003.1231149, ISSN 0740-7459 [dostęp 2020-01-26] .
- ↑ Alfons Laarman , Ivan Kurtev , Ontological Metamodeling with Explicit Instantiation, Berlin, Heidelberg: Springer Berlin Heidelberg, 2010, s. 174–183, DOI: 10.1007/978-3-642-12107-4_14, ISBN 978-3-642-12106-7 [dostęp 2020-01-26] .
- ↑ oop – What is a clabject? [online], Stack Overflow [dostęp 2020-01-26] .