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/04/23 13:08]
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 ====== 
  
  
-===== 20090416 ​==== +====== Spotkania ====== 
-  * rozczytac spec sbvr do poz. parsowania poj. przykładu+[[pl:​miw:​2009:​miw09_prolog_sbvr:​spotkania|Spotkania]]
  
-===== 200903126 ==== 
-  * rulexpress, opis + sshot 
  
-===== 20090312 ​==== +====== ​Sprawozdanie ​======
-  * czy ktos cos robil do SBVR w prologu? +
- +
-===== 20090225 ==== +
-  * 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 76: Linia 69:
  
 ====Reguły w SBVR==== ====Reguły w SBVR====
-Za pomocą ​termór ​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:+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):​ Aletyczne (używane do tworzenia reguł strukturalnych):​
Linia 93: Linia 86:
  
  
-Parsowanie reguł (rozbiór logiczny): \\  +
-{{:​pl:​miw:​2009:​miw09_prolog_sbvr:​pliki:​sbvr_rule_parsing3.jpg}}+
  
 Parsowanie reguł: Parsowanie reguł:
Linia 100: Linia 92:
 {{:​pl:​miw:​2009:​miw09_prolog_sbvr:​pliki:​sbvr_rule_parsing2.jpg}} {{:​pl:​miw:​2009:​miw09_prolog_sbvr:​pliki:​sbvr_rule_parsing2.jpg}}
  
-CDN+
  
  
Linia 121: Linia 113:
  
 \\  \\ 
-[[http://student.agh.edu.pl/​~tapir/MIW/parse.txt|KOD]]+[[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. 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.
 +
 +
 ===Specyfikacja SBVR pod kątem parsowania reguł=== ===Specyfikacja SBVR pod kątem parsowania reguł===
-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 English, która jest reprezentacją tekstową słowników oraz reguł. \\ \\ + 
 + 
 +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 English, która jest reprezentacją tekstową słowników oraz reguł. ​Jak więc wygląda tworzenie reguł?\\ \\ 
  
  
 {{:​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}} {{:​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. \\ \\ +\\ 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 tzw. verb concepts definiujące zależności pomiędzy znaczeniami poszczególnych konceptów. Należy tu zaznaczyć rozdzielenie pomiędzy reprezentacją konceptu (termem) a jego znaczeniem. W 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). ​
 \\ \\  \\ \\ 
-[[http://​student.agh.edu.pl/​~tapir/​MIW/​08-01-02.pdf#​Page=15|Rozdzial]]+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) ===
  
-====== Sprawozdanie ======+[[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 ====== ====== Prezentacja ======
 +[[pl:​miw:​2009:​miw09_prolog_sbvr:​prezentacja|Prezentacja projektu]]
 +
 ====== Materiały ====== ====== Materiały ======
 ====Linki==== ====Linki====
pl/miw/2009/miw09_prolog_sbvr.1240484905.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