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:dydaktyka:piw:2010:systemy_ekspertowe:hekate_iii [2011/04/05 16:17]
kkr
pl:dydaktyka:piw:2010:systemy_ekspertowe:hekate_iii [2019/06/27 15:50] (aktualna)
Linia 99: Linia 99:
   * Java   * Java
 === Prolog === === Prolog ===
-Callbacks ​are an ordinary Prolog predicates.+Prolog-based callbacks ​are an ordinary Prolog predicates.
 <​code>​ <​code>​
 xcall ask_console : [AttName] >>>​ (write('​Type value for attribute: ​ '), xcall ask_console : [AttName] >>>​ (write('​Type value for attribute: ​ '),
Linia 116: Linia 116:
  
 === XPCE === === XPCE ===
-Są to predykaty w języku Prolog wzbogacone o funkcje XPCE. Aby zapewnić jednak oprawne działanie interpretera HeaRT nalezy korzystać z tego szkieletu:​ +The XPCE-based ​callbacks consist of the ordinary Prolog predicates that are enriched by XPCE functions.
-The XPCE callbacks consist of the ordinary Prolog predicates that are enriched by XPCE functions.+
 In order to assure the correct integration with HaeRT, the following schema must be used: In order to assure the correct integration with HaeRT, the following schema must be used:
 <​code>​ <​code>​
Linia 146: Linia 145:
 </​code>​ </​code>​
  
-**Ćwiczenie** +**Exercise** \\ 
-Uruchom wnioskowanie dla przykładu z bankomatem i prześledź działanie callbacków:+Run the inference mechanism for the ATM example and trace the callback mechanism:
   * {{:​pl:​dydaktyka:​piw:​2010:​systemy_ekspertowe:​cashpoint-clb-xpce.pl|}}   * {{:​pl:​dydaktyka:​piw:​2010:​systemy_ekspertowe:​cashpoint-clb-xpce.pl|}}
  
 === Java === === Java ===
-Są to programy napisane w języku ​Java uruchamiane przez prolog ​przy użyciu ​JPL. Aby wykorzystać ten mechanizm należy korzystać ze specjalnie przygotowanych do tego klasy+The Java-based callbacks are the Java programs that are executed by prolog ​with the help of JPL. 
-  * DataFetcher.java - klasa abstrakcyjna którą muszą rozszerzać wszystkie callbacki +To exploit this mechanism, the following classes mysu be used
-  * RequestInterface.java - Kontroler +  * DataFetcher.java - an abstract class that must be inherited by all the callbacks 
-  * Response.java - klasa przechowująca dane odebrane od użytkownika.+  * RequestInterface.java - controller 
 +  * Response.java - class that stores a data retrieved from a user.
   ​   ​
-W celu ulatwienia implementacji niektórych callbackówprzygotowano zbiór podstawowych komponentów do pobierania danych od użytkownika:​ +The set of basic componentswhich can be used to the retrieval data from a user, is prepared to facilitate the callbacks implementation. 
-  * ComboBoxFetcher.java - przyjmuje ​listę wartości z jakich można wybieraćZwraca jedną wybraną wartość +  ​* **ComboBoxFetcher.java** creates a list of selectable values. It returns one (selected) value
-  * SliderFetcher.java - przyjmuje przedział wartości numerycznych między którymi można wybieraćZwraca jedna wybraną wartość+  ​* **SliderFetcher.java** allowf for selecting a value from a given range of valuesIt returns one (selected) value
-  * TwoListsFetcher.java - przyjmuje ​listę wartości ​ jakich można wybierać i zwraca również ​listę wybranych wartości+  ​* **TwoListsFetcher.java** creates a list of selectable values. It returns ​list of all selected values
-  * ComboGUI.java - GUI dla ComboBoxFetcher +  ​* **ComboGUI.java** - GUI for ComboBoxFetcher 
-  * SliderGUI.java - GUI dla SliderFetcher +  ​* **SliderGUI.java** - GUI for SliderFetcher 
-  * TwoListsGUI.java - GUI dla TwoListsFetcher +  ​* **TwoListsGUI.java** - GUI for TwoListsFetcher 
- +Download a source code {{:​hekate:​callbackslibrary.zip|here}}. 
-Kod źródłowy klas do pobrania ​{{:​hekate:​callbackslibrary.zip|tutaj}}. +
  
-==Przykład== +== Example ​== 
-Aby wykorzystać któryś z komponentów Java do napisania callbackunależy wykonać następujące kroki+In order to use some of the above components to create callbackyou must go through the following steps
-  - Skompilować kod źródłowy ​<​code>​javac callbacks/​input/​*.java skeleton/​*.java</​code> ​i umieścić go w katalogu z plikiem ​HMR +  - Compile the source code <​code>​javac callbacks/​input/​*.java skeleton/​*.java</​code> ​and move it to the HMR file directory. 
-  - Odpowiednio zmodyfikować plik HMR dopisując atrybutom pole //​callback// ​i uzupełniając go nazwą i listą parametrów jakie callback ​przyjmuje, np. <​code>​callback:​ [ask_symbolic_GUI,​[day]]</​code>​ +  - Modify the HMR file by adding the //​callback// ​filed to the appropriate attributes. 
-  - Dopisać predykaty ​//​xcall// ​do pliku HMR, definiujące wywołanie callbacka, np.:<​code>​+  - Define the value of this filed by entering the name of the callback ​as well as a list of parameters i.e. <​code>​callback:​ [ask_symbolic_GUI,​[day]]</​code>​ 
 +  - Add the //​xcall// ​predicates to the HMR filewhich execute a given callback:<​code>​
   xcall ask_symbolic_GUI : [AttName] >>>​ (   xcall ask_symbolic_GUI : [AttName] >>>​ (
-     %Tworzymy obiekt kontrolera:+     ​% ​Creating controller
  jpl_new('​skeleton.RequestInterface',​[],​T),​  jpl_new('​skeleton.RequestInterface',​[],​T),​
- %Przygotowujemy ​listę parametrów+Creating a list of params
  alsv_domain(AttName,​Domain,​symbolic),​  alsv_domain(AttName,​Domain,​symbolic),​
  Params = [AttName|Domain],​  Params = [AttName|Domain],​
  term_to_atom(Params,​ AtomParams),​  term_to_atom(Params,​ AtomParams),​
-  %Wywołujemy ​callback ​i podajemu my listę parametrów znajdującą sie +         Execute the callback ​with the params contained by AtomPArams ​term
- %w termie ​AtomPArams. ​Wartosc zwrócona przez callback znajdzie się +         ​The result will be stored in Answer ​term.
-  %w termie ​Answer.+
  jpl_call(T,​request,​['​callbacks.input.ComboBoxFetcher',​AtomParams],​Answer),​  jpl_call(T,​request,​['​callbacks.input.ComboBoxFetcher',​AtomParams],​Answer),​
-  %Zamieniamy zwróconą wartość na term i dodajemy go do bazy faktów+         Map the returned value into term and add it the the factbase
  atom_to_term(Answer,​Answer2,​_),​  atom_to_term(Answer,​Answer2,​_),​
  alsv_new_val(AttName,​Answer2)).  alsv_new_val(AttName,​Answer2)).
   </​code>​   </​code>​
-  - Uruchomić ​HeaRT w katalogu z plikiem ​HMR, skompilować ten plik i uruchomić wnioskowanieCallbacki powinny zostać uruchomione.+  - Go to HMR file directory. 
 +  - Run HeaRT tool. 
 +  - Compile ​HMR file. 
 +  - Run the inference mechanism. 
 +  - The callback should be executed.
  
-**Ćwiczenie**  +**Exercise 1** \\ 
-Pobierz poniższy kod {{:​pl:​dydaktyka:​piw:​2010:​systemy_ekspertowe:​kardio.zip|}}. I dla pliku HMR znajdującego się w archiwum uruchom wnioskowanie.+Download the file {{:​pl:​dydaktyka:​piw:​2010:​systemy_ekspertowe:​kardio.zip|}} ​and run the inference for the HMR file.
  
-=== Ćwiczenie === +**Exercise 2** \\ 
-  - Uruchom interpreter ​HeaRT, wczytaj ​{{:​pl:​dydaktyka:​piw:​2010:​systemy_ekspertowe:​cashpoint-clb-xpce.pl|plik}} HMR i uruchom wnioskowanie predykatem ​(//​gox/​3//​). ​Dopisz callback wyświetlający wynik wnioskowania w XPCE. +  - Run HeaRT and load HMR {{:​pl:​dydaktyka:​piw:​2010:​systemy_ekspertowe:​cashpoint-clb-xpce.pl|file}}.  
-  - Pobierz ten {{:​pl:​dydaktyka:​piw:​2010:​systemy_ekspertowe:​thermostat-clb-pl.pl|plik}} HMR i dopisz ​(zmodyfikuj istniejące wersje prologowedo niego callbacki w Javie bazując na przykładzie z poprzedniej sekcji.+  - Then run the infenrence mechnism using predicate ​(//​gox/​3//​). 
 +  - Add a new XPCE-based callback, which would present the results of the inference
 +  - Download HMR {{:​pl:​dydaktyka:​piw:​2010:​systemy_ekspertowe:​thermostat-clb-pl.pl|file}}
 +  - Add (modify an existing Prolog-baseda new JAVA-based callbacks in the same way as in the previous section.
  
  
pl/dydaktyka/piw/2010/systemy_ekspertowe/hekate_iii.1302013032.txt.gz · ostatnio zmienione: 2019/06/27 15:54 (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