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:miw08_ruleruntimeg_2 [2008/03/17 19:33]
miw
pl:miw:miw08_ruleruntimeg_2 [2008/07/01 20:17]
gjn
Linia 1: Linia 1:
-====== Opis ====== ​ 
-Damian Janicki <​janicki.damian@gmail.com>​ 
- 
-Investigate runtime integration aspects, mainly semi-automatical building of a GUI for Prolog programs possibilities XPCE, Static QT/Gtk, Gtk-Server, Java (Swing), Eclipse (SWT) 
- 
-    * input 
- 
-XPCE, QT, GTK, GtkServer, Java etc., SWI Prolog documentation 
- 
-    * output 
- 
-Feasibility study, a prototype. 
- 
-    * integration options for Java: JPL (SWI),​Logtalk (OO Prolog), architecture:​ MVC 
-    * approach: 2 -3 app. cases, M prolog, V in Java, C -> JPL/​Logtalk,​ e.g. ready M in Prolog, build V in Java: Car ES, opposite: ready MV i Java, build M in Prolog, make it work with the V 
- 
-====== Spotkania ====== ​ 
-===== 08.03.04 ===== 
-  * **MISSED** prototyp dla car, tj. ask_question 
- 
-===== 080311 ===== 
-  * problems, problems 
- 
-===== 080318 ===== 
-  * przerobienie car na wywołanie V w Javie 
- 
-====== Projekt ====== 
-Oryginalny system ([[pl:​prolog:​prolog_lab:​prolog_lab_2#​tematprosty_system_ekspertowy]]) 
- 
-<code prolog> 
-% From the book 
-% PROLOG PROGRAMMING IN DEPTH 
-% by Michael A. Covington, Donald Nute, and Andre Vellino 
-% (Prentice Hall, 1997). 
-% Copyright 1997 Prentice-Hall,​ Inc. 
-% For educational use only 
- 
-% File CAR.PL 
-% Simple automotive expert system 
- 
-:- consult('​getyesno.pl'​). ​ % Use ensure_loaded if available. 
- 
-% 
-% Main control procedures 
-% 
- 
-start :- 
-   ​write('​This program diagnoses why a car won''​t start.'​),​nl,​ 
-   ​write('​Answer all questions with Y for yes or N for no.'​),​nl,​ 
-   ​clear_stored_answers,​ 
-   ​try_all_possibilities. 
- 
-try_all_possibilities :-     % Backtrack through all possibilities... 
-   ​defect_may_be(D),​ 
-   ​explain(D),​ 
-   fail. 
- 
-try_all_possibilities. ​      % ...then succeed with no further action. 
- 
- 
-% 
-% Diagnostic knowledge base 
-%   ​(conditions under which to give each diagnosis) 
-% 
- 
-defect_may_be(drained_battery) :- 
-   ​user_says(starter_was_ok,​yes),​ 
-   ​user_says(starter_is_ok,​no). 
- 
-defect_may_be(wrong_gear) :- 
-   ​user_says(starter_was_ok,​no). 
- 
-defect_may_be(starting_system) :- 
-   ​user_says(starter_was_ok,​no). 
- 
-defect_may_be(fuel_system) :- 
-   ​user_says(starter_was_ok,​yes),​ 
-   ​user_says(fuel_is_ok,​no). 
- 
-defect_may_be(ignition_system) :- 
-   ​user_says(starter_was_ok,​yes),​ 
-   ​user_says(fuel_is_ok,​yes). 
- 
- 
-% 
-% Case knowledge base 
-%   ​(information supplied by the user during the consultation) 
-% 
- 
-:- dynamic(stored_answer/​2). 
- 
-   % (Clauses get added as user answers questions.) 
- 
- 
-% 
-% Procedure to get rid of the stored answers 
-% without abolishing the dynamic declaration 
-% 
- 
-clear_stored_answers :- retract(stored_answer(_,​_)),​fail. 
-clear_stored_answers. 
- 
- 
-% 
-% Procedure to retrieve the user's answer to each question when needed, 
-% or ask the question if it has not already been asked 
-% 
- 
-user_says(Q,​A) :- stored_answer(Q,​A). 
- 
-user_says(Q,​A) :- \+ stored_answer(Q,​_),​ 
-                  nl,nl, 
-                  ask_question(Q),​ 
-                  get_yes_or_no(Response),​ 
-                  asserta(stored_answer(Q,​Response)),​ 
-                  Response = A. 
- 
- 
-% 
-% Texts of the questions 
-% 
- 
-ask_question(starter_was_ok) :- 
-   ​write('​When you first started trying to start the car,'​),​nl,​ 
-   ​write('​did the starter crank the engine normally? '),nl. 
- 
-ask_question(starter_is_ok) :- 
-   ​write('​Does the starter crank the engine normally now? '),nl. 
- 
-ask_question(fuel_is_ok) :- 
-   ​write('​Look in the carburetor. ​ Can you see or smell gasoline?'​),​nl. 
- 
- 
-% 
-%  Explanations for the various diagnoses 
-% 
- 
-explain(wrong_gear) :- 
-   nl, 
-   ​write('​Check that the gearshift is set to Park or Neutral.'​),​nl,​ 
-   ​write('​Try jiggling the gearshift lever.'​),​nl. 
- 
-explain(starting_system) :- 
-   nl, 
-   ​write('​Check for a defective battery, voltage'​),​nl,​ 
-   ​write('​regulator,​ or alternator; if any of these is'​),​nl,​ 
-   ​write('​the problem, charging the battery or jump-'​),​nl,​ 
-   ​write('​starting may get the car going temporarily.'​),​nl,​ 
-   ​write('​Or the starter itself may be defective.'​),​nl. 
- 
-explain(drained_battery) :- 
-   nl, 
-   ​write('​Your attempts to start the car have run down the battery.'​),​nl,​ 
-   ​write('​Recharging or jump-starting will be necessary.'​),​nl,​ 
-   ​write('​But there is probably nothing wrong with the battery itself.'​),​nl. 
- 
-explain(fuel_system) :- 
-   nl, 
-   ​write('​Check whether there is fuel in the tank.'​),​nl,​ 
-   ​write('​If so, check for a clogged fuel line or filter'​),​nl,​ 
-   ​write('​or a defective fuel pump.'​),​nl. 
- 
-explain(ignition_system) :- 
-   nl, 
-   ​write('​Check the spark plugs, cables, distributor,'​),​nl,​ 
-   ​write('​coil,​ and other parts of the ignition system.'​),​nl,​ 
-   ​write('​If any of these are visibly defective or long'​),​nl,​ 
-   ​write('​overdue for replacement,​ replace them; if this'​),​nl,​ 
-   ​write('​does not solve the problem, consult a mechanic.'​),​nl. 
-</​code>​ 
- 
-V: Interfejs w Javie 
- 
-<code java> 
-</​code>​ 
- 
-====== Sprawozdanie ====== 
- 
-====== Materiały ====== 
-[[pl:​miw:​miw08_umlandardxtt:​notatki|wszystkie pliki]] 
- 
-[[http://​www.swi-prolog.org/​packages/​jpl/​|JPL - Prolog/Java interface]] 
- 
- 
- 
- 
- 
  
pl/miw/miw08_ruleruntimeg_2.txt · ostatnio zmienione: 2019/06/27 15:50 (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