Język czy notacja czyli co?

Od cza­su do cza­su jestem pyta­ny czy UML, BPMN, itp.. to nota­cje czy języ­ki, a pada­ją nawet pyta­nia czy to meto­dy. Otóż meto­dy na pew­no nie… (np. mamy dwie meto­dy mode­lo­wa­nia pro­ce­sów biz­ne­so­wych: z uży­ciem nota­cji BPMN i nota­cji eEPC). A pozo­sta­łe dwa?

Nie jest to pro­ste. Dzisiaj pój­dę może nie­co na skró­ty dla­te­go wni­kli­wym pole­cam lek­tu­rę przede wszyst­kim na temat semio­ty­ki, logi­ki i rachun­ku zdań.

Język i znaczenie

Na począ­tek kil­ka defi­ni­cji ogól­nych (wszyst­kie sł. j. pol­skie­go PWN):

język
5. ?utrwa­lo­ny spo­łecz­nie zespół zna­ków doty­czą­cych jakichś dzia­łań czło­wie­ka lub wyra­ża­ją­cych jego emo­cje oraz każ­dy układ ele­men­tów rze­czy­wi­sto­ści, któ­re­mu czło­wiek nadał jakąś treść?

Język jest więc okre­ślo­nym zespo­łem norm, są nimi jed­nak nie tyl­ko zna­ki ale tak­że to, co zna­czą i jaką treść nio­są. Wyrażanie emo­cji czy myśli w ogó­le, rzad­ko jest moż­li­we z uży­ciem tyl­ko jed­ne­go zna­ku. Dlatego w toku ich wyra­ża­nia ope­ru­je­my raczej zdaniami:

zda­nie
1. ?myśl wyra­żo­na słowami?
4. log. ?sen­sow­ne wyra­że­nie oznaj­mia­ją­ce pod­le­ga­ją­ce falsyfikacji?

Tu zaczy­na­my powo­li iść w porząd­ko­wa­nie tego o czym piszę. Każde zda­nie (w logi­ce) może być praw­dzi­we lub nie (tau­to­lo­gia jest zda­niem zawsze praw­dzi­wym, czy­li jest zna­ny fakt je fal­sy­fi­ku­ją­cy ale wie­my, że nigdy taki nie wystą­pi). Jeżeli więc, że treść naj­czę­ściej wyra­ża­my sło­wa­mi (a raczej rzad­ko nie jed­nym sło­wem) to zna­czy, że nale­ży umieć odczy­tać zna­cze­nie zło­że­nia wie­lu słów w jed­nym zda­niu. Jak wie­my o zro­zu­mia­ło­ści (zro­zu­mia­łość ozna­cza, że zda­nie ma dla czy­ta­ją­ce­go okre­ślo­ne zna­cze­nie) decy­du­je układ słów w zda­niu, zna­ki inter­punk­cyj­ne itp.

przecinek

Nawet prze­ci­nek ma zna­cze­nie (jest on ele­men­tem języ­ka) w zda­niu złożonym.

Jednoznaczność (zro­zu­mia­łość, zna­cze­nie) zdań jest tak­że efek­tem kontekstu:

kon­tekst
1. ?frag­ment tek­stu potrzeb­ny do dokład­ne­go rozu­mie­nia danych wyra­zów lub wyrażeń?
3. ?zespół jed­no­stek języ­ko­wych, któ­re sta­no­wią oto­cze­nie danej jednostki?
4. ?zespół odnie­sień nie­zbęd­nych do zro­zu­mie­nia utwo­ru lite­rac­kie­go, dzie­ła nauko­we­go itp.?

zakaz dobijania dziobem niejednoznacznoscJeżeli napi­szę Te dwie kro­wy są paskud­ne” to nadal nie ma pew­no­ści o czym mowa. Bez wie­dzy o tym, czy to roz­mo­wa dwóch rol­ni­ków o inwen­ta­rzu, czy też dwóch kole­ża­nek o dwóch innych, nie wie­my. Słowo palant” tak­że ma wię­cej niż jed­no zna­cze­nie i bez kon­tek­stu jego uży­cia nie wie­my o jakie zna­cze­nie cho­dzi (kole­ga czy mało już popu­lar­na gra) :). Bardzo czę­sto to wła­śnie kon­tekst nada­je znaczenie.

Jak widać zro­zu­mie­nie prze­ka­zu nie musi być pro­ste, a komu­ni­ka­cja pro­sta i łatwa (każ­dy kto się choć raz pokłó­cił z powo­du nie­po­ro­zu­mień o tym wie). Kontekstem zaj­mu­je się:

prag­ma­ty­ka
1. ?dział języ­ko­znaw­stwa, któ­re­go przed­mio­tem są spo­łecz­ne i sytu­acyj­ne warun­ki funk­cjo­no­wa­nia języ­ka oraz cele, jakie mówią­cy chce osią­gnąć przez uży­cie okre­ślo­nych wyra­zów i wyrażeń?

Należy pamię­tać, że zna­cze­nie mają nie tyl­ko poje­dyn­cze sło­wa (zna­ki) ale tak­że ich zło­że­nia („pro­ces biz­ne­so­wy” to jed­no poję­cie ale dwa sło­wa). Innymi sło­wy kon­kret­ne poję­cie może być zapi­sa­ne z uży­ciem jed­ne­go lub wię­cej znaków.

sło­wo
1. ?znak języ­ko­wy mają­cy jakieś znaczenie?

Dlatego zło­że­nie kil­ku zna­ków (słów) tak­że jest zna­kiem (defi­ni­cja sło­wa i słowo/pojęcie przez nią defi­nio­wa­ne, nio­są toż­sa­me zna­cze­nie). Słowo (rozu­mia­ne jako zapis: zło­że­nie liter) moż­na zastą­pić sym­bo­lem gra­ficz­nym (iko­na). O tym traktuje

semio­ty­ka
1. ?ogól­na teo­ria zna­ku w pro­ce­sie poro­zu­mie­wa­nia się ludzi?

w tym:

seman­ty­ka
1. ?dział języ­ko­znaw­stwa, któ­re­go przed­mio­tem jest ana­li­za zna­czeń wyrazów?
2. ?dział semio­ty­ki zaj­mu­ją­cy się bada­niem związ­ków, jakie zacho­dzą mię­dzy wyra­że­nia­mi języ­ka a przed­mio­ta­mi, do któ­rych się one odnoszą?

syn­tak­ty­ka
2. ?dział semio­ty­ki bada­ją­cy wza­jem­ne sto­sun­ki i wła­ści­wo­ści budo­wy wyra­żeń języ­ka w pro­ce­sie poro­zu­mie­wa­nia się ludzi?

Zapisując coś: treść, w celu prze­ka­za­nia jej dru­giej oso­bie komu­ni­ku­je­my się:

komu­ni­ka­cja
2. ?prze­pływ infor­ma­cji mię­dzy urzą­dze­nia­mi, np. tele­fo­na­mi lub komputerami?
3. ?prze­ka­zy­wa­nie i odbie­ra­nie infor­ma­cji w bez­po­śred­nim kon­tak­cie z dru­gą osobą?

treść
1. ?to, co jest zawar­te w czy­jejś wypo­wie­dzi; też: to, co prze­ka­zu­je odbior­cy dzie­ło sztu­ki, w prze­ciw­sta­wie­niu do formy?
2. ?to, co sta­no­wi isto­tę, sens czegoś?

Do komu­ni­ka­cji uży­wa­my znaków:

znak
1. ?kształt, któ­re­mu przy­pi­su­je się okre­ślo­ne znaczenie?
2. ?dźwięk, spoj­rze­nie, gest itp. słu­żą­cy do prze­ka­za­nia informacji?

Znak zna­czy, czy­li ma okre­ślo­ne znacz­nie (pamię­ta­my o kon­tek­ście). Znakiem może być wie­le rze­czy (tak­że gest). Znak ma (nie­sie) zna­cze­nie, znak lub ich zło­że­nie tak­że, prze­ka­zu­je okre­ślo­ną treść:

zna­cze­nie
1. ?myśl zawar­ta w czy­jejś wypo­wie­dzi, w czy­imś zacho­wa­niu itp.?
3. ?treść, któ­rej zna­kiem jest wyraz lub wyrażenie?

zna­czyć
1. ?być zna­kiem czegoś?
3. ?umiesz­czać na czymś lub na kimś znak?
4. ?zosta­wiać na czymś znak, ślad?

Na koniec zosta­wi­łem, spor­ne słowo:

nota­cja ?ozna­cze­nie cze­goś umow­ny­mi zna­ka­mi; też: zbiór takich znaków?

Notacja to zbiór zna­ków. Przypomnę też, że język to mie­dzy inny­mi okre­ślo­ny zbiór zna­ków wraz z opi­sem ich zna­czeń (seman­ty­ka) oraz tym, jakie mają zna­cze­nia ich okre­ślo­ne zło­że­nia (syn­tak­ty­ka). Wiemy już, że zna­cze­nie (treść) mają nie tyl­ko poje­dyn­cze sło­wa (to rzad­ko) ale ich kon­kret­ne zło­że­nia (zda­nia). Przekazanie kon­kret­nych, jed­no­znacz­nych tre­ści, poza rzad­ki­mi wyjąt­ka­mi, wyma­ga więc zbu­do­wa­nia kon­kret­nych zdań czy­li zło­żeń słów (zna­ków)”. Innymi sło­wy, nikt chy­ba nie powie, że książ­ka jaką jest słow­nik języ­ka pol­skie­go, wraz z zasa­da­mi gra­ma­ty­ki, to jest język pol­ski”. Język to jed­nak coś wię­cej”. Słowo język jest dość nie­pre­cy­zyj­ne i ozna­cza wręcz pewien zespół norm i spo­so­bów poro­zu­mie­wa­nia się (w tym idio­my, zespo­ły słów mają­ca inne zna­cze­nie niż każ­de z nich z osob­na). Poprawne (sku­tecz­ne) posłu­gi­wa­nie się danym języ­kiem ozna­cza, że adre­sat zro­zu­miał” treść nadaw­cy (mówią­ce­go).

Porządkujemy to wszystko

Zrobiło się cięż­ko :). Poniżej model poję­cio­wy: dia­gram w nota­cji SBVR poka­zu­ją­cy poję­cia i związ­ki mię­dzy nimi. Jednym z klu­czo­wych narzę­dzi w ana­li­zie jest wła­snie ana­li­za poję­cio­wa i budo­wa­nie słow­ni­ka pojęć dla okre­ślo­nej dzie­dzi­ny (tu wię­cej o tym czy jest dia­gram fak­tów opi­sa­ny w nota­cji SBVR).

jezyk-i-notacja-model-pojeciowy

Powyższy model obra­zu­je związ­ki pomię­dzy opi­sa­ny­mi wyżej poję­cia­mi, pre­cy­zu­je tak­że ich zna­cze­nia. Model poję­cio­wy dla danej dzie­dzi­ny (tu mowa o języ­kach i nota­cjach) powi­nien się cecho­wać mię­dzy inny­mi tym, że zna­cze­nia poszcze­gól­nych pojęć powin­ny być roz­łącz­ne, czy­li speł­niać ary­sto­te­le­sow­ską zasa­dę wyłą­czo­ne­go środ­ka” w logi­ce, brzmią­cą: jeże­li coś jest czymś, to nie jest niczym innym”. Dla zacho­wa­nia jed­no­znacz­no­ści zdań, defi­ni­cje pojęć muszą się więc wza­jem­nie wyklu­czać, tak zbu­do­wa­ny słow­nik nazy­wa­my prze­strze­nią nazw” (ang. namespace).

UML i BPMN to język czy notacja?

Skrót UML zawie­ra w sobie sło­wo lan­gu­age” (ang. język). Historycznie tłu­ma­czyć to moż­na tym, że obec­ne 14 typów dia­gra­mów to kon­kret­ne kon­tek­sty oraz narzu­co­ne kon­struk­cje, któ­re moż­na nazwać zda­nia­mi” (widać to szcze­gól­nie w przy­pad­ku dia­gra­mów Przypadków uży­cia czy Rozlokowania). Jednak obec­na spe­cy­fi­ka­cja UML 2.5 porząd­ku­je i to, sło­wo lan­gu­age” w zasa­dzie nie jest w niej sto­so­wa­ne wobec tego co nazwa­no tam mia­nem UML (W zasa­dzie dzi­siaj mogła by nosić nazwę Object-orien­ted Modeling and Notation 🙂 ).

Tak więc język czy nota­cja? To zale­ży od tego czy dana spe­cy­fi­ka­cja” opi­su­je wyłącz­nie sym­bo­le czy też ich okre­ślo­ne, i zale­ca­ne w okre­ślo­nych sytu­acjach, kon­struk­cje oraz ich zna­cze­nie. OMG (chy­ba) sta­ra się to ostat­nio jasno sygna­li­zo­wać: UML to jesz­cze lan­gu­age” ale BPMN to już nota­tion”. Specyfikacja UML zawie­ra okre­ślo­ne, seman­tycz­ne (nazwa­ne) kon­struk­cje, mają­ce okre­ślo­ne zna­cze­nia, zwią­za­ne z kon­kret­ny­mi dia­gra­ma­mi (nazwa dia­gra­mu nada­je kon­tekst uży­tym na nich sym­bo­lom, jest to potrzeb­ne bo pamię­taj­my, że w UML wszyst­ko jest kla­są”). W BPMN nie ma cze­goś takie­go (nawet poję­cie pro­ces biz­ne­so­wy” nie jest czę­ścią BPMN, jest ono zde­fi­nio­wa­ne dopie­ro w Dodatku A jako obja­śnie­nie i dodat­ko­wy kon­tekst, w nota­cji zaś BPMN nie ma sym­bo­lu pro­ces biz­ne­so­wy” 🙂 ). To czy dana spe­cy­fi­ka­cja to tyko opis nota­cji czy tak­że języ­ka, zale­ży więc od kon­kret­ne­go przypadku.

usuwanie dwuznaczosci i niejasnosciNiewątpliwie UML, BPMN, CMMN, SBVR, BMM itp., to wszyst­ko są nota­cje, bo są to spe­cy­fi­ka­cje sym­bo­li, ich zna­czeń oraz okre­ślo­na syn­tak­ty­ka. Natomiast o tym co i jak wyra­ża­ją (i czy w ogó­le ;)) two­rzo­ne z ich pomo­cą dia­gra­my, to już inna kwe­stia… To leży w gestii twór­cy dia­gra­mów. A testem jest mie­dzy inny­mi sku­tecz­ność komu­ni­ka­cji: porów­na­nie tego jaką kon­kret­ną treść chciał prze­ka­zać twór­ca dane­go dia­gra­mu i jaką treść ode­brał czy­ta­ją­cy… Analityk zaczy­na od ana­li­zy poję­cio­wej by unik­nąć nie­jed­no­znacz­no­ści w samym prze­ka­zie. Potem dopie­ro doku­men­tu­je, z uży­ciem mode­li two­rzo­nych z pomo­cą nota­cji, to co zastał oraz pro­jek­tu­je to, co chciał­by by, by powsta­ło spo­sób roz­wią­za­nie pro­ble­mu (tu pole­cam lek­tu­rę arty­ku­łu gdzie pisa­łem o tym, że wyma­ga­nia to pro­jekt).

Niewątpliwie więc wszyst­kie języ­ki pro­gra­mo­wa­nia” są języ­ka­mi: mają skład­nię i każ­de zda­nie coś wyra­ża (rozu­mie to i kole­ga pro­gra­mi­sta i kom­pi­la­tor). Wiele nota­cji jed­nak języ­kiem nie jest. O języ­ku moż­na mówić tyl­ko wte­dy, gdy jest samo­wy­star­czal­ny do wyra­ża­nia okre­ślo­nych myśli i tre­ści, do komu­ni­ko­wa­nia ich. Nie może­my tego raczej powie­dzieć o nota­cjach. Diagramy i mode­le wyko­na­ne z pomo­cą w. nota­cji wyma­ga­ją sto­so­wa­nia np. języ­ka” pol­skie­go, do nada­wa­nia nazw sym­bo­lom i dia­gra­mom, bez cze­go dia­gra­my te były by nie­zro­zu­mia­łe. Uważam więc, że uży­wa­nie wobec nota­cji obli­ga­to­ryj­nie nazwy język, jest poważ­nym nad­uży­ciem… Niektóre nota­cje mają swo­ją wer­sję wyko­ny­wal­ną (tu nawią­zu­je do tego że języ­ki pro­gra­mo­wa­nia są” języ­ka­mi”) o czym nie­daw­no pisa­łem (Analityczne i wyko­ny­wal­ne mode­le) jed­nak pamię­tać, nale­ży nota­cja jako taka nie jest języ­kiem pro­gra­mo­wa­nia”, jest tu raczej for­mą budo­wa­nia mecha­ni­zmu (mode­lo­wa­nie), któ­ry dopie­ro po doda­niu wie­lu para­me­trów (czy­li wpro­wa­dze­niu wie­lu słów” z poza nota­cji) pozwa­la taki model uru­cho­mić”.