Some Thoughts to Consider 1 • What is so ‘artificial’ about Artificial Intelligence? • Just what are ‘Knowledge Based Systems’ anyway? • Why would we ever want to study this stuff? • Mind is what the brain does. • ‘Brains cause minds’ - Searle. • Software is to machine as mind is to brain. • ‘Knowledge is power’ - Francis Bacon. • Can machines think? • What does it mean to build software systems that are ‘people-literate’, rather than having people be ‘computer-literate’? • Does the study and use of AI help us better understand how people think and act? Anticipated Benefits of Investing in Emerging Technologies • Particularly the technologies of: • • • • • Knowledge based systems Agent oriented systems Service oriented architectures Neural networks Genetic algorithms • Move people to a new level of problem solving. • Raise business concepts and operations to a higher level of understanding. • Manage the increased complexity of running the business. • Reduce the time required to field new applications. • Produce more intelligent performance enhancement applications. • Reduce long term system maintenance time. • Provide bottom-line value to clients and profit for the corporation. The Main Design Issues • • • Representation • What structures or ‘metaphors’ shall be used? Knowledge • Where and how shall it be represented? Process Control Flow • Where in the architecture shall it reside? Types of Knowledge • Facts • Process Knowledge • Operational Know-How • Market Knowledge • Technology/System/Database Knowledge • Dependency Knowledge • Causality Knowledge • Conflict Knowledge • Constraint Knowledge Types of Knowledge • • Concept Knowledge (Objects, Nodes) • • • • Physical objects Actions Events Categories Relationship Knowledge (Links, Arcs) • • • • • A-kind-of Part-of Instance-of Cause-of Acts-on • Descriptive Knowledge (Attributes) • Procedural Knowledge (Algorithms) • Inheritance Knowledge (Classes) • Heuristic Knowledge (Rules of Thumb) • Inference Knowledge (Strategies) • Emergent Knowledge (Neural Nets) Types of Representation • Declarative (Facts) • Procedural (Instructions) • Inferential (Implied by Reasoning) Mechanisms of Representation • • • • • • • • Rules Frames Predicate Logic Semantic Networks Classes – Objects – Methods Actors – Agents Neural Nets Genetic Algorithms Key Knowledge Engineering Activities • • • Knowledge Acquisition • • • • Interviewing experts Protocol analysis Prototype iteration System acquisition of knowledge (learning) Knowledge Representation • • • Categories of the knowledge Structure of the knowledge Tool selection Knowledge Utilization • • • • • Control structure – “knowledge flow” Reasoning strategies Justification and explanation Dealing with uncertainty and incompleteness System validation So, What About Decision Support? • We are evolving a new kind of product. • • One that is knowledge-enriched, with locally-authored decision support. Rather than a vendor-supplied, predetermined package of software logic and data structures. • This requires intense knowledge engineering and knowledge representation that is substantially different from traditional programming practice. • Knowledge is represented declaratively in a knowledge base such that customers can customize it for local use. • Knowledge is not represented in programming language code. Model Based Software Design • Represents a different way of thinking about software design and implementation. • Takes the clinical (business) knowledge out of the Java code. • Moves the problem solving process to a higher level of abstraction. • Models become the vernacular for clinical (business) architecture discussions. • Representation is ‘outside’ the Java classes, rather than ‘inside’ the Java classes. • The Java classes become more like ‘engines’ that manage and reason over the external representations. • The movement to XML, RDF, and OWL is movement in this design direction. Motivation for Model Based Architecture • We’re growing out of traditional ‘database-toscreen’ types of product. • We are faced with providing more ‘knowledge-rich’ products. • Customers require customization of the content we deliver for their specific product venue. • More and more of our traditional products require integration and interoperability. • Analysts are required to participate more in the design of representational structures. • Developers are required to participate more in product design. • The level of complexity of our products is increasing beyond what is manageable by traditional development means.