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:18]
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ł. Jak więc wygląda tworzenie 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. Pierwszym krokiem jest zdefiniowanie zbioru konceptów ([[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 ​+\\ 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.1240485528.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