Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
pl:miw:2009:miw09_prolog_sbvr [2009/03/17 13:28]
jsi08
pl:miw:2009:miw09_prolog_sbvr [2019/06/27 15:50] (aktualna)
Linia 1: Linia 1:
-====== ​Opis ====== +~~ODT~~ 
-Patryk Łuczyński ​, <​tapirat@gmail.com>​ \\  +====== ​MIW 2009 Prolog_SBVR ​====== 
-==== Prolog_SBVR ====+ 
 +**Zrealizował:​ [[tapirat@gmail.com|Patryk Łuczyński]] (4RI) 
   * Look at the [[http://​www.omg.org/​spec/​SBVR/​|SBVR]].   * Look at the [[http://​www.omg.org/​spec/​SBVR/​|SBVR]].
   * Prepare a concise desc/​present.   * Prepare a concise desc/​present.
Linia 8: Linia 10:
   * provide simple analysis of the SBVR knowledge base on top of the parser   * provide simple analysis of the SBVR knowledge base on top of the parser
  
-====== Spotkania ====== 
  
  
-===== 200903126 ​==== +====== Spotkania ====== 
-  * rulexpress, opis + sshot+[[pl:​miw:​2009:​miw09_prolog_sbvr:​spotkania|Spotkania]]
  
-===== 20090312 ==== 
-  * czy ktos cos robil do SBVR w prologu? 
  
-===== 20090225 ​==== +====== ​Sprawozdanie ​======
-  * nie pakujemy sie w modal logic +
- +
-====== Projekt ​======+
 ===== Opis SBVR ===== ===== Opis SBVR =====
 ==== SBVR w architekturze MDA (Model Driven Architecture) ==== ==== SBVR w architekturze MDA (Model Driven Architecture) ====
Linia 57: Linia 53:
   * Vocabulary for Describing Business Rules – zależne od Vocabulary for Describing Business Vocabularies więc i pośrednio od Meaning and Representation Vocabulary. Definiuje pojęcia potrzebne przy definiowaniu reguł biznesowych (np. reguła strukturalna,​ reguła operatywna).\\ \\    * Vocabulary for Describing Business Rules – zależne od Vocabulary for Describing Business Vocabularies więc i pośrednio od Meaning and Representation Vocabulary. Definiuje pojęcia potrzebne przy definiowaniu reguł biznesowych (np. reguła strukturalna,​ reguła operatywna).\\ \\ 
  
-{{:​pl:​miw:​2009:​miw09_prolog_sbvr:​pliki:​SBVR_voc_constr.gif?​600|Metodyka definiowania nowych słowników i zestawów reguł w standardzie SBVR}} +
-\\ Powyższy schemat przedstawia kolejne kroki definiowania nowego słownika i zestawu reguł. Sposób ten wynika bezpośrednio z zależności pomiędzy sześcioma słownikami zdefiniowanymi w oficjalnej specyfikacji SBVR. Terminologia użyta na schemacie zostanie omówiona przy okazji dyskusji nad SBVR Structured English. \\ \\ +
  
 Z punktu widzenia osoby pragnącej zdefiniować nowe słownictwo oraz reguły na nim oparte, najistotniejsze wydają się być 2 ostatnie słowniki. Przed ich opisaniem warto przedstawić ideę SBVR Structured English. Jest to pewien standard (definiujący różne czcionki do formalnego opisu elementów słownka, oraz wprowadzający nowe słowa kluczowe) opisywania słowników oraz reguł z wykorzystaniem Vocabulary for Describing Business Vocabularies oraz Vocabulary for Describing Business Rules. Jako ciekawostka,​ warto zaznaczyć, że w oficjalnej specyfikacji SBVR wszystkie sześć uprzednio wymienionych słowników zostało opatrzonych czionkami SBVR Structured English. Tworzy nam się więc pętla definicji, która oznacza, że SBVR (Structured English) jest własnym meta-językiem (jest językiem reflektywnym z czym wiążą się pewne problemy semantyczne jak wymaganie podstawowej wiedzy na temat języka – najbardziej znany problem to antynomia kłamcy. \\ \\ Z punktu widzenia osoby pragnącej zdefiniować nowe słownictwo oraz reguły na nim oparte, najistotniejsze wydają się być 2 ostatnie słowniki. Przed ich opisaniem warto przedstawić ideę SBVR Structured English. Jest to pewien standard (definiujący różne czcionki do formalnego opisu elementów słownka, oraz wprowadzający nowe słowa kluczowe) opisywania słowników oraz reguł z wykorzystaniem Vocabulary for Describing Business Vocabularies oraz Vocabulary for Describing Business Rules. Jako ciekawostka,​ warto zaznaczyć, że w oficjalnej specyfikacji SBVR wszystkie sześć uprzednio wymienionych słowników zostało opatrzonych czionkami SBVR Structured English. Tworzy nam się więc pętla definicji, która oznacza, że SBVR (Structured English) jest własnym meta-językiem (jest językiem reflektywnym z czym wiążą się pewne problemy semantyczne jak wymaganie podstawowej wiedzy na temat języka – najbardziej znany problem to antynomia kłamcy. \\ \\
Linia 73: Linia 68:
   * {{:​pl:​miw:​2009:​miw09_prolog_sbvr:​pliki:​fonts:​keyword.gif?​65|Czcionka '​keyword'​}} - 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). \\ \\    * {{:​pl:​miw:​2009:​miw09_prolog_sbvr:​pliki:​fonts:​keyword.gif?​65|Czcionka '​keyword'​}} - 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). \\ \\ 
  
-Parsowanie ​reguł (rozbiór logiczny) \\  +====Reguły w SBVR==== 
-{{:pl:miw:​2009:​miw09_prolog_sbvr:​pliki:​sbvr_rule_parsing.gif}}+Za pomocą termów oraz wyrazów które opisuje się za pomocą czcionki '​verb'​ jesteśmy w stanie skonstruować koncept czasownikowy (verb concept). Takie konstrukcje pozwalają na opisywanie zależności pomiędzy wcześniej zdefiniowanymi pojęciami. Następnie w celu zdefiniowania ​reguły należy taki koncept czasownikowy obłożyć jednym z czterech dostępnych operatorów modalnych:​ 
 + \\ \\  
 +Aletyczne ​(używane do tworzenia reguł strukturalnych)
 +  * It is necessary that ... (Jest konieczne by ...) 
 +  * It is possible that ... (Jest możliwe by...) oraz negacja (It is not possible that... - Nie jest możliwe by...) 
 +\\  
 +Deontyczne (używane do tworzenia reguł operatywnych): 
 +  * It is obligatory that ... (Istnieje obowiązek by...) 
 +  * It is permitted that ... (Zezwala się by) oraz negacja (It is prohibited that... - Zabrania się by ...)
  
-CDN+Reguły strukturalne są prawdziwe z definicji. Są jakby aksjomatami całej działalności,​ opisują znaczenie i zależności elementów występujących w tych regułach(np. "Jest możliwe by zamówienie posiadało więcej niż jedną pozycję"​.). Tego rodzaju reguł nie zalicza się do reguł biznesowych. Do takich należą reguły operatywne (np. "​Istnieje obowiązek by każde zamówienie zostało opłacone w ciągu 24 godzin"​),​ które wyznaczają zasady zachowania w danych sytuacjach. Reguły takie mogą być łamane przez ludzi, dlatego wprowadza się pojęcia poziomu egzekwowania reguł (enforcement level). 
 +\\  \\ 
 +Po dodaniu operatora modalnego należy dodać wszelkie konieczne kwantyfikatory jak np: każdy, co najmniej n, itp. \\ 
  
-==== Narzędzia zgodne z SBVR ==== 
-Po długich poszukiwaniach,​ nie udało mi się odnaleźć jakichkolwiek prób tworzenia oprogramowania do SBVR w języku prolog. Natrafiłem przy okazji na poniższe narzędzia: 
-  * [[pl:​miw:​2009:​miw09_prolog_sbvr:​sbeaver|SBeaVeR]] \\ \\  
  
  
-  * [[pl:​miw:​2009:​miw09_prolog_sbvr:​rulexpress|RuleXpress]] \\ \\  
-Komercyjny produkt firmy RuleArts, będący zgodny ze specyfikacją SBVR. Udało mi się zdobyć 30-dniową wersję ewaluacyjną tego produktu. Program posiada całkiem przejrzysty interfejs graficzny, wprowadzenie słowników oraz reguł jest dosyć proste i po krótkim czasie można biegle poruszać się po programie. Dokumentacja załączona do programu jest całkiem obszerna, jednakże jak zapewnił mnie pan z działu sprzedaży RuleXpress nie obsługuje żadnego eksportu słowników i reguł gdyż jeszcze żaden producent nie obsługuje importu takowych. Znamienne jest również zdanie z ulotki o produkcie mówiące, że w rozwoju programu nie będzie nacisku na publikowaniu danych w formacie zewnętrznym. 
-Screenshoty wkrótce \\  
-\\ \\ Donald Chapin (OMG SBVR Project Leader) w swojej prezentacji wymienia jeszcze kilka programów, które opierają się na słownikach i regułach aczkolwiek żadne z nich nie jest zgodne z SBVR w takim stopniu co dwa powyższe. 
  
  
  
 +Parsowanie reguł:
  
 +{{:​pl:​miw:​2009:​miw09_prolog_sbvr:​pliki:​sbvr_rule_parsing2.jpg}}
  
  
  
  
-====== Sprawozdanie ======+===== Narzędzia zgodne z SBVR ===== 
 +Po długich poszukiwaniach,​ nie udało mi się odnaleźć jakichkolwiek prób tworzenia oprogramowania do SBVR w języku prolog. Natrafiłem przy okazji na poniższe narzędzia:​ 
 +  * [[pl:​miw:​2009:​miw09_prolog_sbvr:​sbeaver|SBeaVeR]]
  
 +  * [[pl:​miw:​2009:​miw09_prolog_sbvr:​rulexpress|RuleXpress]] ​
  
-====== Prezentacja ====== +Donald Chapin (OMG SBVR Project Leader) w swojej prezentacji wymienia jeszcze kilka programów, które opierają się na słownikach i regułach aczkolwiek żadne z nich nie jest zgodne z SBVR w takim stopniu co dwa powyższe.
-====== Materiały ======+
  
 +==== Narzędzia zgodne z SBVR na etapie tworzenia ====
 +  * [[http://​wiki.eclipse.org/​MDT-SBVR_0.7_Project_Plan|MDT-SBVR]] - Model Development Tools obsługujące specyfikację SBVR
 +  * [[http://​sourceforge.net/​projects/​orm|NORMA]] - Natural ORM (Object Role Modelling) Architect for Visual Studio
  
-==== Modal Logic ==== 
  
-□     It is necessary that ..\\  +===== Parser ===== 
-◊     It is possible that …\\ \\  +===Pierwsze podejście=== 
- The most familiar logics in the modal family are constructed from a weak logic called K (after Saul Kripke). Under the narrow reading, modal logic concerns necessity and possibility. A variety of different systems may be developed for such logics using K as a foundation. The symbols of K include ‘~’ for ‘not’, ‘→’ for ‘if…then’,​ and ‘□’ for the modal operator ‘it is necessary that’. ​(The connectives ‘&​’,​ ‘∨’, and ‘↔’ may be defined from ‘~’ and ‘→’ as is done in propositional logic.K results from adding the following to the principles of propositional logic.+Specyfikacja SBVR nie wspomina ani słowem o regułach gramatycznych rządzących zapisem reguł. Wynika to z faktu, że SBVR (jak sama nazwa wskazujedotyczy semantyki czyli powiązania znaczenia z jego reprezentacjąIstotny jest również brak narzuconego zapisu reguł w specyfikacji SBVR (stawia ona na równi wszystkie możliwe formaty). 
  
-    Necessitation Rule  If A is a theorem of Kthen so is □A.+\\  
 +[[https://​ai.ia.agh.edu.pl/​wiki/​_media/​pl:​miw:​2009:​miw09_prolog_sbvr:​pliki:​parser.txt|KOD]] 
 +\\  
 +Powyższy kod był testowany na implementacji SWI Prolog (Windows). Realizuje on (oczywiście w minimalnym zakresie) rozbiór logiczny reguł, który opisany jest w specyfikacji SBVR w rodziale 9 (zwłaszcza 9.2). "​Korzeniem"​ drzewa pokonywanego przy parsowaniu jest dla uproszczenia (zamiast "​rule"​) nieterminal "​Logical_formulation"​. Dla uproszczenia pominięty został rodział 8 "​Meaning and Representation Vocabulary"​który wprowadza powiązania między termami i faktami.
  
-    Distribution Axiom: ​ □(A→B) → (□A→□B). 
  
-(In these principles we use ‘A’ and ‘B’ as metavariables ranging over formulas of the language.) According to the Necessitation Rule, any theorem of logic is necessary. The Distribution Axiom says that if it is necessary that if A then B, then if necessarily A then necessarily B.+===Specyfikacja SBVR pod kątem parsowania reguł===
  
-The operator ◊ (for ‘possibly’) can be defined from □ by letting ◊A = ~□~A. In K, the operators □ and ◊ behave very much like the quantifiers ∀ (all) and ∃ (some). For example, the definition of ◊ from □ mirrors the equivalence of ∀xA with ~∃x~A in predicate logic. Furthermore,​ □(A&​B) entails □A&​□B and vice versa; while □A∨□B entails □(A∨B), but not vice versa. This reflects the patterns exhibited by the universal quantifier: ∀x(A&​B) entails ∀xA&​∀xB and vice versa, while ∀xA ∨ ∀xB entails ∀x(A ∨ B) but not vice versa. Similar parallels between ◊ and ∃ can be drawn. The basis for this correspondence between the modal operators and the quantifiers will emerge more clearly in the section on Possible Worlds Semantics. 
  
-The system K is too weak to provide an adequate account of necessityThe following axiom is not provable in Kbut it is clearly desirable.+Jeżeli mówimy o parsowaniu SBVR to należy przyjąć parsowanie konkretnej notacji będącej zgodną ze [[http://​student.agh.edu.pl/​~tapir/​MIW/​08-01-02.pdf|specyfikacją SBVR]]. W tym wypadku przyjmujemy notację SBVR Structured Englishktóra jest reprezentacją tekstową słowników oraz regułJak więc wygląda tworzenie reguł?\\ \\ 
  
-    (M)  □A→A ​ 
  
-(M) claims that whatever is necessary is the caseNotice that (Mwould be incorrect were □ to be read ‘it ought to be that’, or ‘it was the case that’So the presence of axiom (Mdistinguishes modal from other logics in the modal familyA basic modal logic M results from adding ​(Mto K(Some authors call this system T.)+{{:​pl:​miw:​2009:​miw09_prolog_sbvr:​pliki:​SBVR_voc_constr.gif?​600|Metodyka definiowania nowych słowników i zestawów reguł w standardzie SBVR}} 
 +\\ Powyższy schemat przedstawia kolejne kroki definiowania nowego słownika i zestawu reguł. Sposób ten wynika bezpośrednio z zależności pomiędzy sześcioma słownikami zdefiniowanymi w oficjalnej specyfikacji SBVR. Pierwszym krokiem jest zdefiniowanie zbioru konceptów tzw. noun concepts([[http://pl.wikipedia.org/​wiki/​Poj%C4%99cie|"​Pojęcie – abstrakcyjny,​ myślowy odpowiednik przedmiotu. Po zdefiniowaniu pojęcie staje się terminem."​ - Wikipedia]]) za pomocą termów ​(reprezentacji -  w tym wypadku tekstowych), który ​to zbiór będzie fundamentem do definiowania bardziej złożonych struktur. Kolejnymi elementami jakie należy zdefinować ​to fakty tzwverb concepts definiujące zależności pomiędzy znaczeniami poszczególnych konceptów. Należy tu zaznaczyć rozdzielenie pomiędzy reprezentacją konceptu ​(termema jego znaczeniemW specyfikacji SBVR zależnościom pomiędzy znaczeniami konceptów poświęcony jest [[http://​student.agh.edu.pl/​~tapir/​MIW/​08-01-02.pdf#​page=31|podrozdział 8.1 Meaning ​(str 31)]] 
 +\\ \\  
 +Przykład [[http://​student.agh.edu.pl/​~tapir/​MIW/​08-01-02.pdf#​page=295|EU-Rent Example (str 295)]]: 
 +\\  
 +branch type 
 +\\  
 +Definition: concept that specializes the concept ‘branch’ and that classifies a branch based on hours of operation and car storage capacity 
 +\\ \\  
 +airport branch 
 +\\  
 +Concept Type: branch type 
 +\\  
 +Definition: branch that has an EU-Rent location and has large car storage and has 24-7 operation 
 +\\  
 +Note: This kind of branch is usually at or near a major airport or rail terminal and has sufficient staff to have specialized roles in the workflow. 
 +\\  
 +Necessity: the concept ‘airport branch’ is included in Branches by Type. 
 +\\ \\ 
  
 +
 +Poza zdefiniowaniem samej reprezentacji tekstowej pojęć branch type oraz airport branch, określane są zależności pomiędzy nimi. Zależność jest reprezentowana linią tekstu: "​Concept Type: branch type" przy wpisie airport branch. Napotykając w regule wpis airport branch wiadomo, że jest to instancją bardziej ogólnego konceptu branch type. Rodzaje zależności między konceptami są zdefiniowane w [[http://​student.agh.edu.pl/​~tapir/​MIW/​08-01-02.pdf#​page=31|rozdziale 8.1.1 Concepts (str 31)]]. Te dwa rodzaje wpisów składają się na słownik dotyczący danej dziedziny.
 +\\ 
 +Parsowanie reguł (rozbiór logiczny): \\ 
 +{{:​pl:​miw:​2009:​miw09_prolog_sbvr:​pliki:​sbvr_rule_parsing3.jpg}} ​
 +\\
 +
 +Aby możliwe było przeparsowanie powyższej reguły nie wystarczy słownik zawierający wpisy termów : driver, rental, barred driver. Konieczna jest jeszcze definicja zależności pomiędzy konceptami driver oraz barred driver (prawdopodobnie przez dodanie linii "​Concept Type: driver"​) mówiąca, że barred driver jest konceptem będącym podkategorią bardziej ogólnego konceptu driver. \\ 
 +\\ 
 +Zależności definiowane są również przez fakty. Noun concepts występujące w fakcie zwane są rolami w fakcie i są uwzględniane podczas analizy logicznej sformułowań. O rodzajach sformułowań logicznych zawartych w wyrażeniach mówi [[http://​student.agh.edu.pl/​~tapir/​MIW/​08-01-02.pdf#​page=61|rozdział 9.2 Logical formulations]]. Definiuje on również zależności logiczne pomiędzy sformułowaniami. W rodziale tym nie występuje żadna wzmianka o gramatyce zapisu tych sformułowań (wszak gramatyka może dotyczyć konkretnego zapisu a nie specyfikacji semantyki dopuszczającej różne zapisy - nawet w postaci diagramów). ​
 +\\ \\ 
 +Pewne namiastki gramatyki wprowadza [[http://​student.agh.edu.pl/​~tapir/​MIW/​08-01-02.pdf#​page=249|rozdział opisujący notację SBVR Structured English (str 249)]], a zwłaszcza fragment przedstawiający ​ [[http://​student.agh.edu.pl/​~tapir/​MIW/​08-01-02.pdf#​page=251|słowa kluczowe tej notacji (str 251)]].Znajdujemy tam wpisy typu "it is obligatory that p - obligation formulation"​. Niestety nie jest zdefiniowana "​dolna"​(dalsza od korzenia) część drzewa syntaktycznego w tym wypadku odzwierciedlona przez literę p, która ma reprezentować "​expressions of propositions"​ czyli wyrażenie stwierdzenia. Przeszukując całą specyfikacją SBVR nie natrafiłem na reguły gramatyczne tworzenia takich właśnie wyrażeń. \\ \\ 
 +
 +SBVR posiada dobrze zdefiniowane narzędzia do definiowania zależności semantycznych oraz zależności logicznych. Niestety brak tu gramatyki wymaganej do klasycznego parsowania przy użyciu drzewa syntaktycznego. ​
 +
 +===Kolorowanie napisu na podstawie słownika (Prolog) ===
 +
 +[[https://​ai.ia.agh.edu.pl/​wiki/​_media/​pl:​miw:​2009:​miw09_prolog_sbvr:​pliki:​koloruj.txt|KOD w Prologu]]
 +\\ \\ 
 +Powyższy kod był tworzony i sprawdzany za pomocą SWI Prolog (Windows). W celu kolorowania napisu należy skompilować powyższy plik i wprowadzić cel typu:
 +\\ \\ 
 +go([it,​is,​obligatory,​that,​a,​rental,​has,​a,​rental,​period]).
 +\\ \\ 
 +Na wyjściu stworzony zostanie plik HTML z odpowiednio stylizowanym napisem wejściowym. UWAGA! Program wypisuje wyjście do pierwszego nierozpoznanego napisu lub przetworzenia całego napisu wejściowego. ​
 +\\ \\ 
 +[[http://​student.agh.edu.pl/​~tapir/​MIW/​output.html|Przykładowy plik wyjściowy]]
 +
 +
 +====== Prezentacja ======
 +[[pl:​miw:​2009:​miw09_prolog_sbvr:​prezentacja|Prezentacja projektu]]
 +
 +====== Materiały ======
 ====Linki==== ====Linki====
   *[[http://​home.btconnect.com/​BusinessSemantic/​How_SBVR_Adds_Knowledge_Richness_to_ISO_TC_37_Terminology_Standards.pps]] - pokaz slajdów Donalda Chapina (Project Leader for SBVR) dobrze tłumaczący ideę SBVR   *[[http://​home.btconnect.com/​BusinessSemantic/​How_SBVR_Adds_Knowledge_Richness_to_ISO_TC_37_Terminology_Standards.pps]] - pokaz slajdów Donalda Chapina (Project Leader for SBVR) dobrze tłumaczący ideę SBVR
Linia 146: Linia 200:
   * [[http://​c4i.gmu.edu/​events/​reviews/​2008/​papers/​6_Loaiza.pdf]] -    * [[http://​c4i.gmu.edu/​events/​reviews/​2008/​papers/​6_Loaiza.pdf]] - 
   * [[http://​www.eclipse.org/​modeling/​mdt/?​project=sbvr#​sbvr]]   * [[http://​www.eclipse.org/​modeling/​mdt/?​project=sbvr#​sbvr]]
 +==Prolog parsing==
 +  * [[http://​www.csupomona.edu/​~jrfisher/​www/​prolog_tutorial/​contents.html#​7]] - Prolog Natural Language Parsing
 +  * [[http://​www.dai.ed.ac.uk/​groups/​ssp/​bookpages/​quickprolog/​quickprolog.html]] - Prolog DCG's
 +  * [[http://​www.im.pwr.wroc.pl/​~przemko/​prolog/​m4s4.html]] - Prolog gramatyki
 +  * [[http://​www.oopweb.com/​Prolog/​Documents/​prologbook/​Volume/​node101.html]]
 +  * [[http://​www.ling.helsinki.fi/​kit/​2004k/​ctl272/​Bangor/​clbook_56.html]] - prolog DCG features
 +
 +
 +
  
pl/miw/2009/miw09_prolog_sbvr.1237292931.txt.gz · ostatnio zmienione: 2019/06/27 15:57 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0