You are on page 1of 53

OntoUML: Non-sortály, relace, relátor

BI-KOM: Konceptuální modelování #3

doc. Ing. Robert Pergl, Ph.D. (robert.pergl@fit.cvut.cz)

1 / 53
Obsah přednášky
1. Non-sortální typy
2. Non-rigidita a semi-rigidita
3. Stereotypy: «Category», «RoleMixin», «PhaseMixin», «Mixin»
4. Formální a materiální relace: «formal», «material», «Relator»

2 / 53
Non-sortální typy
Nemá vlastní identitu z hlediska našeho vnímání (v implementaci ji mít může: primární
klíč, UUID, ...).
Instance získá od non-sortálního typu obecné vlastnosti ale nikoliv princip identity.
Všechny třídy reprezentující non-sortal typy jsou abstraktní.
Instance non-sortal typu mohou mít různé principy identity.
Například: Pojistitelná věc může být Auto, Budova, Část těla (sportovce).

3 / 53
Kategorie non-sortálních typů

4 / 53
Rigidní non-sortál: «Category»
Rigidní non-sortal reprezentující nutné (□) vlastnosti instancí různých sortálů
Typicky používané pro "kategorizaci" různých «kind» & «subkind», ale pravidla umožňují
i další podtypy.
Typicky tvoří nejsvrchnější vrstvu typů ontologie.

5 / 53
Rigidní non-sortál: «Category» - pravidla
Category může mít (z dosud představených typů) jako podtyp pouze Kind (resp.
SubKind ) nebo jiné Category .

Kind může být podtypem vícero Category a Category mohou být nadtypem vícero
Kind .

Všechny Kind v rámci Category musí být navzájem disjunktní.


(a tudíž) Všechny podtypy Category tvoří disjunktní množinu nadtypu

(generalization set).

Na druhou stranu, jelikož Category reprezentují vlastnosti vícero druhů, jsou zřídka
complete .

6 / 53
Kategorie non-sortálních typů

7 / 53
Anti-rigidní non-sortály: «RoleMixin» - motivace
Toto je chybný model různých typů zákazníků.
Anti-rigidní typ nemůže být nadtypem rigidního.

«role»
Customer

«kind» «kind»
Person Organisation

8 / 53
Anti-rigidní non-sortály: «RoleMixin»
RoleMixin jsou anti-rigidní a relačně závislé non-sortální typy reprezentující možné (◊)
vlastnosti instancí různých druhů.
Podobně jako Category používáme ke klasifikaci instancí typu Kind , RoleMixin
používáme ke klasifikaci instancí typu Role .

«roleMixin»
Customer

«role» «role»
PersonalCustomer CorporateCustomer

9 / 53
Anti-rigidní non-sortály: «RoleMixin» - použití

«kind» «roleMixin» «kind»


Person Customer Organisation

«role» «role»
PersonalCustomer CorporateCustomer

10 / 53
Anti-rigidní non-sortály: «RoleMixin» - použití

Order
1..*

«kind» «roleMixin» «kind»


Person Customer Organisation

«role» «role»
PersonalCustomer CorporateCustomer

11 / 53
Anti-rigidní non-sortály: «RoleMixin» - vzor

F
1..*

«roleMixin»
D A E

«role» «role»
B C

12 / 53
Anti-rigidní non-sortály: «RoleMixin» - příklad

13 / 53
Anti-rigidní non-sortály: «RoleMixin» - příklad

14 / 53
Anti-rigidní non-sortály: «PhaseMixin»
PhaseMixin jsou anti-rigidní non-sortální typy reprezentující možné (◊) intrinsické
vlastnosti instancí různých druhů.
PhaseMixin používáme ke klasifikaci instancí typu Phase .

Rozdíl mezi PhaseMixin a RoleMixin je opět zejména v relační závislosti obdobně


jako mezi Phase a Role .
Nová kategorie typů z OntoUML 2.0.

15 / 53
Kategorie non-sortálních typů

16 / 53
Non-rigidita
Anti-rigidita (R− ) není logickou negací rigidity (R+ ).
Non-rigidita (¬R+ ) je logickou negací rigidity; R− je silnější omezení.

R+ (T ) =def □(∀x : T (x) ⟹ □(T (x)))


¬R+ (T ) =def ◊(∃x : T (x) ∧ ◊(¬T (x)))


R− (T ) =def □(∀x : T (x) ⟹ ◊(¬T (x)))


R∼ (T ) =def ¬R+ (T ) ∧ ¬R− (T )


17 / 53
Semi-rigidní non-sortál: «Mixin»
Mixin jsou semi-rigidní non-sortály, tj. reprezentují vlastnosti, které jsou nutné (□) pro
některé instance, ale možné (◊) pro některé jiné instance.
Každý Mixin musí být nadtypem rigidního typu a současně nadtypem non-rigidního
typu.

«mixin» «kind»
Seatable Crate

{disjoint} {disjoint, complete}

«kind» «phase» «phase»


Chair Solid Crate Broken Crate

18 / 53
Semi-rigidní non-sortál: «Mixin» - příklad

«mixin» «kind»
Insureditem House

{disjoint}

«kind» «role» Insurance


Car Insured House 1 1..*

19 / 53
Semi-rigidní non-sortál: «Mixin» - příklad

20 / 53
Semi-rigidní non-sortál: «Mixin» - příklad

21 / 53
Rigidní non-sortály

22 / 53
Anti-rigidní non-sortály

23 / 53
Anti-rigidní non-sortály

24 / 53
Semi-rigidní non-sortály

25 / 53
Shrnutí základních kategorií typů OntoUML

26 / 53
Relace v OntoUML
Relace mezi entitami jsou reprezentovány asociacemi (viz první přednáška).
Při podrobnějším pohledu můžeme rozlišit dva typy relací:
Formální relace (Formal Relations)
Materiální relace (Material Relations)
Formální relace existují mezi dvěma entitami přímo, bez dalšího intervenujícího
individua, např. být vyšší než, být starší než.
Vždy jsme schopni identifikovat vnitřní atributy / aspekty entit, které relaci definují: výška
Člověka1 vs. výška Člověka2, věk Člověka1 vs věk Člověka2, apod.

27 / 53
Formální relace

28 / 53
Formální relace

29 / 53
Formální relace

30 / 53
Formální relace
Formální relace jsou vždy relace odvozené – značíme /název .
Odvozené relace jsou takové, které lze dynamicky spočítat na základě ostatních
elementů v modelu.

«category»
* Physical Object

/heavier-than *

«formal»

heavierThan(x, y) =def bigger(weight(x), weight(y))


31 / 53
Formální relace

«mixin»
* Colored Object

/opposite-colored *

«formal»

oppositeColored(x, y) =def oppositeTo(hue(color(x)), hue(color(y)))


32 / 53
Materiální relace - motivace
John se ožení s Mary. (A naopak.)
Tím získá některé další atributy, které jsou ovšem existenčně závislé na Marry (např.
jméno manželky, další jmění, atd.).

33 / 53
Materiální relace - motivace

Nyní předpokládejme, že toto jsou všechny vlastnosti, které John získá tím, že se ožení
s Mary.
Tyto vlastnosti získal John v důsledku zakládající události (founding event), které se
stala (svatba, podepsání tzv. sociálního kontraktu).
Jsou to vlastnosti Johna, ale jsou současně existenčně závislé na Mary.

34 / 53
Materiální relace - motivace

Analogicky je tomu opět u Mary.

35 / 53
Materiální relace - motivace

Entity, která jsou agregací všech vlastností získaných na základě stejné

zakládající události a které jsou externě závislé na stejné entitě, se nazývají qua
individual.

36 / 53
Materiální relace - motivace

Jsou určitým řezem entity z hlediska kontextu materiální relace, tedy representují
agregaci vlastností entity v rámci této relace.

37 / 53
Materiální relace - motivace

Nyní můžeme vytvořit entitu, která je agregací všech qua individuals, které se váží ke
stejné zakládající události a nazveme ji relator.

38 / 53
Materiální relace - motivace

Dále definujeme relaci mediace (mediation), mezi relátorem a entitami, které spojuje.
Mediace je typ existenčně závislé relace.

39 / 53
Materiální relace

«kind» «role» «kind»


treated in ►
Person Patient Medical Unit
1..* 1..*

40 / 53
Materiální relace

41 / 53
Materiální relace: relátory
Relátory jsou klíčové pro hledání odpovědí na otázky typu "Co to znamená, že John je
ženatý s Mary?", "Proč je pravda tvrdit, že Bill pracuje společnost X a nikoliv pro
společnost Y?", apod.
Relátory jsou tedy určitým *pečetidlem (angl. truthmaker) pro materiální relace. Ta
existuje pouze dokud existuje zakládající relátor (např. při zrušení pracovní smlouvy
končí pracovní vztah).
Relátor může mít hmotný odraz (pracovní smlouva, oddací list), nebo může existovat
pouze v mysli, např. "kamarádit", "býti zasnouben" – takovým relátorům říkáme
společenská úmluva (social contract).

42 / 53
Materiální relace: relátory
Relátory hrají klíčovou roli ve specifikaci vztahů M:N.
V E-R modelování v UML se nazývají vazební entita/objekt, bývají však často opomíjeny,
což může mít za následek vágnost.
Mějme např. vztah:

«kind» «role» «kind»


treated in ►
Person Patient Medical Unit
1..* 1..*

Jakými způsoby lze interpretovat kardinality?

43 / 53
Materiální relace: relátory a kardinalita

«kind» «role» «kind»


treated in ►
Person Patient Medical Unit
1..* 1..*

Pacient (P) je ošetřován vícero zdravotnickými jednotkami (ZJ) a P může mít vícero
ošetření (O).
P je ošetřován vícero ZJ, ale P můze mít pouze jedno O.
Vícero P může být ošetřováno jednou ZJ a ZJ může participovat ve vícero O.
P je ošetřován jednou ZJ a P může participovat ve vícero O.
...

44 / 53
Materiální relace: «Relator»
«kind»
Person
«relator»
Treatment
1..* 1..*

«mediation» «mediation»

1 1

«role» «kind»
Patient Medical Unit

Řešení s relátorem vylučuje nejasnosti.


Navíc nás hledání relátoru vede k potřebným úvahám, čím je vztah vlastně definován –
co je truthmaker.

Opět připomenutí: Je třeba nezapomenout na nadtyp role poskytující identitu!

45 / 53
Materiální relace: «material»
Pokud chceme vyznačit a pojmenovat i samotnou materiální relaci, použijeme
odvozenou relaci:

«kind»
Person
«relator»
Treatment
1..* 1..*

«mediation» 1 «mediation»

1 1
1..*
«role» «kind»
«material»
Patient Medical Unit
1..* /treated in ► 1..*

Všimněte si, že se jedná opět o odvozenou relaci – od čeho?


46 / 53
Materiální relace: příklad

«relator» «relator»
«mediation» «mediation» «mediation» «mediation»
Assignment Assignment
1..* 1..* 1..* 1..*

1..*
1..* 1..* 1 1

«role» «role» «role» 1 «role»


«material» «material»
Graduate Student Supervisor Graduate Student Supervisor
1..* /supervised-by ►1..* 1..* /supervised-by ►1..*

47 / 53
Materiální relace: příklad
«kind»
Person

«subkind» «subkind»
Man Woman

«relator»
«mediation» «mediation»
Marriage
1..* 1..*

1 1

«role» «role»
◄ /married-to
Husband Wife
1..* «material» 1..*

1..* 1..*
«material»
/husband-of ►

48 / 53
Materiální relace: specializace
«kind»
Person

«role» «mediation» «relator» «mediation» «kind»


Student 1 1 Enrollment 0..* 1..* Study Programme

{disjoint} {disjoint}

«role» «mediation» «subkind» «mediation» «subkind»


Bachelor 1 1 Bc. Enrollment 0..* 1..* Bc. Study
Student Programme

«role» «mediation» «subkind» «mediation» «subkind»


Master Student 1 1 MSc. Enrollment 0..* 1..* MSc. Study
Programme

49 / 53
Materiální relace: specializace
«kind»
Person

«role» «material» «kind»


Student 0..* /studies ► 1..* Study Programme

{disjoint}
{disjoint}

«role» «material» «subkind»


Bachelor 0..* /studies ► 1..* Bc. Study
Student Programme

«subkind»
«role» «material» MSc. Study
Master Student 0..* /studies ► 1..* Programme

50 / 53
Co je Relator?
Relator je rigidní sortál poskytující identitu, platí pro něj tedy pravidla jako např. pro
Kind , včetně možných podtypů SubKind , Role , a Phase a možných nadtypů
Category , Mixin .

Rozdíl oproti Kind spočívá ve skutečnosti, že musí být truthmaker materiální relace.
Před OntoUML 2.0 byl Relator (stejně Mode a Quality ) aspektem bez identity.

51 / 53
Relator v OntoUML 2.0

Guizzardi, G. et al. (2018): Endurant Types in Ontology-Driven Conceptual Modeling:


Towards OntoUML 2.0.

52 / 53
Konec přednášky

53 / 53

You might also like