MIW 2009 Prolog SBVR
**Zrealizował: Patryk Łuczyński (4RI)
Cel projektu
Celem projektu było przeanalizowanie od niedawna rozwijanego standardu SBVR (Semantics of Business Vocabulary and Rules) służącego do opisu modeli niezależnie od platformy na której modele te będą implementowane. Specyfikacja SBVR tworzy formalne podstawy do tworzenia słowników, które mogą posłużyć do opisu dowolnego przedsięwzięcia, zjawiska za pomocą sformalizowanego języka naturalnego (np angielskiego,polskiego lub innego). Kolejnym celem projektu była próba stworzenia parsera analizującego reguły zgodne z SBVR na podstawie znanego słownika.
SBVR a Model Driven Architecture
Architektura oprogramowania wyróżniająca trzy warstwy:
CIM - Computation Independent Model
PIM - Platform Independent Model
PSM - Platform Specific Model
SBVR umiejscowiony jest w warstwie CIM, czyli modelu najbardziej abstrahującego od sprzętu i oprogramowania.
SBVR a Model Driven Architecture c.d.
Oficjalna specyfikacja SBVR
Dostępna na stronie konsorcjum OMG http://www.omg.org/spec/SBVR/ zorganizowana w słowniki:
Vocabulary Registration Vocabulary
Meaning and Representation Vocabulary
Logical Formulation of Semantics Vocabulary
Formal Logic and Mathematic Vocabulary
Vocabulary for Describing Business Vocabularies
Vocabulary for Describing Business Rules
Do definiowania słowników i reguł bezpośrednio wykorzystuje się dwa ostatnie.
SBVR jako semantyka
Rozdzielenie znaczenia pojęcia od jego reprezentacji. SBVR jest standardem umożliwiającym powiązanie znaczenia i reprezentacji.
Pociąga to za sobą brak standardowej notacji SBVR. Równouprawnione są wszystkie notacje zgodne ze specyfikacją (np Structured English, język polski - odpowiednio sformalizowany, język diagramów), które można dodefiniować.
Specyfikacja SBVR napisana za pomocą Structured English.
SBVR Structured English
Przykładowa notacja słowników i reguł biznesowych. Definiuje 4 czcionki przenoszące meta-dane:

- używana do zaznaczenia pojęć rzeczownikowych?? (noun concept) czyli najbardziej elementarnego (atomicznego) elementu słownika.

- przeznaczona do oznaczania konkretnych obiektów, realizacji (individual koncept) lub też nazw własnych.

- za pomocą tego stylu oznacza się sformułowania definiujące rodzaj faktu, pojęcie czasownikowe. Słowa oznaczane w ten sposób to zazwyczaj czasowniki (stąd ‘pojęcie czasownikowe’ – verb concept), przyimki lub ich kombinacja. Rodzaje faktów, dzielimy na 3 typy ze względu na ilość pojęć (‘noun concept’) jaki zawiera: unarne (charakterystyka, np.
rental is open), binarne (np.
rental has
driver) oraz n-arne (gdzie n > 2, np.
replacement car replaces
rental car during
renting period)
SBVR Structured English c.d.

- w ten sposób wyróżniane są symbole językowe za pomocą, których konstruuje się zdania i reguły. Przykłady: kwantyfikacje (each, exactly one), operatory logiczne (and,or ), operatory logiki modalnej (it is necessary, it is permitted).
Reguły w SBVR
Tworzenie reguł według specyfikacji SBVR:
zdefiniować termy np. car, driver, itp
na podstawie istniejących termów zdefiniować verb concepts np car has driver
Reguły w SBVR c.d.
Reguły strukturalne oraz operatywne (wymagające poziomu przestrzegania).
Istniejące narzędzie zgodne z SBVR
SBeaVeR - Open source, nie została jeszcze napisana w pełni funkcjonalna wersja
RuleXpress firmy RuleArts - w pełni komercyjny produkt, posiada graficzny edytor reguł
Żadne z tych narzędzi nie posiada funkcji parsowania reguł i ich rozbioru logicznego. Istnieją jeszcze inne narzędzia o których wspominają autorzy SBVR, aczkolwiek posiadają one cząstkowe nawiązania do standardu.
Kolorowanie reguł
W ramach projektu udało się stworzyć program w języku Prolog, który na wejściu otrzymuje słownik (w znaczeniu term –> czcionka) oraz napis do przetworzenia, a na wyjściu produkuje plik html zawierający napis z wejścia opatrzony odpowiednimi tagami tak, by po otwarciu przez przeglądarkę wyglądał jak Structured English.