Prototyping
-
Upload
lawrence-mckenzie -
Category
Documents
-
view
20 -
download
0
description
Transcript of Prototyping
B. Ross Cosc 4f79 1
Prototyping
• Pure Prolog is ideal for prototyping expert systems (as well as other applications)
• For a prototype, the idea is to get a system running for scrutiny by some clients. There is little time for designing the system.
---> A prototype is a feasibility study (and a sales pitch).
• The distinction between shell and knowledge base can be loosened:
- encode the knowledge base as pure Prolog rules, and include shell utilities in it. Use vanilla backward chaining.
• One can always use an existing commercial shell to throw together a prototype, but Prolog is just as useful for this. It is also more readily available, and more adaptive to special requirements.
B. Ross Cosc 4f79 2
Prototyping
Example prototype: Sales Advisor
• system which sells mainframe software
• Knowledge base breakdown:
1. Qualification: see whether this a good prospective customer
2. Objective Benefit Feature analysis (OBF): match customer needs with product benefits
3. Competitive analysis: way to stress product strengths based on competition weaknesses
4. Situation analysis: whether products will run in prostpect's shop
5. Miscellaneous
B. Ross Cosc 4f79 3
Prototyping
Approach
• Encode the knowledge base directly in plain Prolog
• incorporate I/O and other utilities in the KB rules as needed
(won't be purely declarative perhaps)
• no explanation
• "shell" will consist of a few driver utilities, and some advising utilities
• Later, when we win the bid, we can create a more complete system following techniques earlier in the course
B. Ross Cosc 4f79 4
Prototyping
B. Ross Cosc 4f79 5
Prototyping
B. Ross Cosc 4f79 6
Prototyping
B. Ross Cosc 4f79 7
Prototyping
B. Ross Cosc 4f79 8
PrototypingInference engine
• not a meta-interpreter, but code which can drive execution of Prolog KB rules
B. Ross Cosc 4f79 9
Prototyping
User interface:
• very important aspect of prototypes
• most important feature: cosmetics
- eg. windows (helps to have a ready library available)
• can kludge some things
- eg. can incorporate some elementary error detection and user-friendly features
( a client won't be impressed if the prototype appears stupid, or crashes on spelling errors )