9 Pages

FinalDraft0

Course: CSCI 322, Fall 2009
School: CSU Chico
Rating:
 
 
 
 
 

Word Count: 6414

Document Preview

Tools Implementing for Artificial Intelligence Featuring Java Anne Keuneke Department of Computer Science California State University, Chico Chico, California Abstract Tools for Artificial Intelligence (AI) which are easy to interpret and use are hard to find for the average computer user. With the popularity of the language Java and the potentials it provides for building high-level knowledge constructs and...

Register Now

Unformatted Document Excerpt

Coursehero >> California >> CSU Chico >> CSCI 322

Course Hero has millions of student submitted documents similar to the one
below including study guides, practice problems, reference materials, practice exams, textbook help and tutor support.

Course Hero has millions of student submitted documents similar to the one below including study guides, practice problems, reference materials, practice exams, textbook help and tutor support.
Tools Implementing for Artificial Intelligence Featuring Java Anne Keuneke Department of Computer Science California State University, Chico Chico, California Abstract Tools for Artificial Intelligence (AI) which are easy to interpret and use are hard to find for the average computer user. With the popularity of the language Java and the potentials it provides for building high-level knowledge constructs and methodologies, Java should be strongly considered for AI programming. The purpose of this paper is to show AI researchers, AI application builders and AI users how the language tools of Java and the tools developed with Java can be used to achieve their research goals and to begin to provide the general populous access to readable, understandable and usable AI tools. Keywords: Artificial Intelligence, Java, programming constructs, tools 1 Introduction As in any discipline or trade, progress is more easily achieved when one has the proper tools. Depending on the level of expertise one has mastered and the products one is attempting to create, the tools (and the complexity therein) may vary. This paper addresses the use of Java as a tool to build Artificial Intelligence (AI) systems. Researchers in AI have categorized research in the field into three levels: the knowledge level, the symbol level, and the systems (machine) level [1,2]. Even though it is "just a language", this paper illustrates the power of the programming language Java to benefit each of these levels of AI study as follows: Knowledge level: this paper provides links to high-level tools, written in Java, which perform specific tasks [3,4,5] that meet knowledge level issues, and can be used as modules to build higher-level knowledge constructs. Symbol level: the paper uses and illustrates the power and flexibility of Java to make the translation between the machine and knowledge level. Specifically, it demonstrates how readily the constructs of the language allow one to build the necessary symbol level modules by providing tools which address levels of algorithm design, development, and implementation. Machine level: Java's rapid acceptance into the mainstream is due to traits which make it the language of choice for numerous reasons: cross-platform, David Paulson Software Design Engineer Hewlett Packard Co. Roseville, California. modularity, parallelism, remote access, network connectivity, etc. The purpose of this paper is to 1. 2. Provide the general populous access to readable, understandable and usable AI tools Show AI researchers, AI application builders and AI users how the language tools of Java (and tools developed with Java) can be used to achieve their research goals. 2 Background It is as though AI were a well-kept secret. Or perhaps it is construed as an intellectual extravagance. Institutions of Higher Learning have long been known for their research facilities and "interesting" results. But how often do these creative endeavors generate products? If one is privileged to be at an institution where AI research is funded, marvelous potentials are observed. In the past, it was well known that much of this work might be published, but probably never be commonly used. In lay terms, it would "never see the light of day" for a decade - or more and some would never be seen. Research. But the excitement exists and outstanding innovative work is achieved. So where are the products of these research efforts? In 1998, the cover of AI Magazine announced that AI had reached adolescence [6]. Still, unless one was an "AI researcher" most of the work remained unknown, inaccessible, to some "dead". Why? "Maybe AI needs a new image. A recent issue if Business Week points out that 70 percent of the Fortune 500 use artificial intelligence technology such as database marketing, agent software, or voice recognition, but the moniker "AI" carries such a stigma that no one will admit to using of selling AI software"[7]. AI is not just an intellectual extravagance. One does not need to put their entire career into the field or have resources to purchase special equipment, or take forever to understand the details or build the needed environment. There should, and can, exist easily accessible works in AI to give students, industry, and any interested party both the knowledge and the tools of AI. The focus here is to bring the forces of AI, Java, and the World-WideWeb (WWW) together to provide this access. simply because it allows access to millions of users, but since Java can run on the web, individuals can be exposed to AI programs in action. There is no better way to promote a product than to make it visible. Because Java is cross-platform, its use is independent of the user's machine. Resources will not limit the number of people who can use the software. Java is free. Cost will not limit the number of people who can try the software. One of the reasons that students new to AI have a difficult time is that instructional resources are often not provided. Specifically, there are a number of web sites that provide AI materials [8,9,10], but these sites often provide tools which new researchers find lacking in one or more of the following: 1. needed background - Texts in AI are available, but unless these are easily accessible, a resource may not be used since the individual does not know enough background about the tool's functionality or purpose. 2. needed language - There are many tools in LISP available; not too many institutions use LISP in their curriculum anymore. 3. needed tools - The CMU repository [10] provides a number of resources, but unless one already knows what they are looking for, it is difficult to find desired AI tools. 4. needed manual - How does this tool work? The software may be available, but there is no (or insufficient) documentation on how to run it. This paper is divided into two sections. The first section discusses various Java constructs that are useful for AI development. The second section provides examples of systems and information on two ubiquitous tools (Structured Matching and Classification) written in Java which also provide the necessary background and manuals as noted above. Links to web sites focusing on AI in Java are provided. 3 Language Constructs of Java to Assist in AI Research For those AI researchers who are writing new tools, there are many reasons why Java is the language to which one would want to migrate. Java was first presented as "small" and "easy". Although this is true of the basic constructs of the language, one cannot fully appreciate the complexity and utility of the language until becoming familiar with the class library. Sun makes this easy by providing an online API [11]. The Java 2.0 platform API provides a wealth of packages with tools both for beginners and experienced programmers. This section discusses a number of Specifically, this union will provide availability through the following mechanisms: Use of the WWW will allow AI materials to be seen. Not s capabilities, interesting to AI programmers, that Java provides. It should be noted that not only are these capabilities useful tools, but the organization and mechanisms of each construct makes them astonishingly easy to use. 3.1 GUIs At the surface level, one requires programming constructs to make AI tools visible to the ultimate users. First access will probably be a web page with an applet, servlet, or an application to download. This page should provide access to the introductory material, background information, user manuals, and either demos of systems (via snapshots or actual running systems (applets or servlets)) or possibly jars for downloading applications (jars allow one to package all the needed class files into a single file - similar to UNIX tar). Java provides a plethora of windowing capabilities and GUIs for presentation, user input and system output purposes. Whether applications or applets are chosen for running systems, the same windowing constructs can be used. For more information see the AWT (java.awt) and SWING (javax.swing) packages in the API [11]. For programmers new to Java, one should be aware of where they want their code to run. If one wants to run on the web, then an applet or servlet would be used. However, Applets have strong security constraints, most notably, an applet cannot access files or tools on machines other than the machine serving the web page. Often a database may be on a separate machine. This would cause an Applet security violation. For more on applet security see [12]. Alternatives are thus either using servlets or applications. Servlets and JavaServer Pages (JSP) are dynamically created web pages. Currently the main use of Servlets is for E-commerce pages. Servlets do not have the same security restrictions as applets and thus the programmer can assume the capability of persistent data. JavaServer Pages are a close cousin to the Servlet Technology. JSP offers similar capabilities with the added separation of HTML presentation from application content. The Java Servlets and Java Server Pages APIs support dynamic HTML generation and session management for browser clients, thus making them a feasible tool for running dynamic AI applications on the web. For more information, see Marty Hall's excellent book [13] or the Servlet Tutorial [14] and the JSP page [15]. Use of a database in Java programs is achieved with the help of the JDBC package. Just as Java is cross platform, the JDBC can be used to connect Java programs to various platforms with a few simple connection calls. Sun provides a tutorial for JDBC as well [16]. 3.2 Harnessing Computational Complexity Given these presentation and connectivity tools, the programmer can then focus on the programming of the AI tool. One definition of Artificial Intelligence, the study of how to make exponentially hard problems solvable in polynomial time, illustrates the close relationship between AI and computational complexity. Complexity can only be tamed when knowledge is represented so that it can be accessed and used. One main constituent in achieving this ease of use is the potential of parallelism. Computing power thus requires distributed architectures. Various techniques can be used to achieve such architectures. The following addresses a number of alternatives provided in Java. First, language constructs from early versions of Java Threads, Java Native Interface (JNI) and Remote Method Invocation (RMI) - are discussed to illustrate their potential for parallelism, use of legacy code, and distributed programming. This is followed by aspects of Jini, Jiro and additional technologies now available which can be used for distributed programming, blackboard system development and agent implementations. For an example tool that implements and describes the use of the constructs of RMI, JNI and Jini, see Paulson [17]. 3.3 Threads Threads are a core Java class provided in the basic package java.lang. A thread represents a single process in execution on a system. Threads are sometimes referred to as light-weight processes or execution contexts. Typically, each thread controls a single aspect within a program, such as monitoring a particular input device, handling all of the disk I/O, or for AI problems, testing various branches of a knowledge structure (say a tree or graph). A single-threaded program uses only one thread to control its execution. vonNeumann machines predicate machines can run only one process at a time - one can compare this to applications being single-threaded. Multithreaded applications use several execution contexts to accomplish their tasks. They make use of the fact that many tasks contain separate and distinct sub-tasks. One thread can be used for each subtask. It is easy to see the use of threads in AI programming. Parallel machines remain expensive for the average user; using Java, programmers can start testing their parallel algorithms through the use of Threads. Pruning a space in parallel greatly reduces the complexity. A multithreaded program allows each thread to start and finish as quickly as possible; this behavior provides better response to real-time input. See the Thread tutorial [18] or the books [19, 20] for more information. 3.4 JNI JNI (Java Native Interface) is the native programming interface for Java, and has been a feature of the JDK since Java release 1.1 [21]. JNI allows Java code that runs within a JVM to call applications and libraries written in other languages, such as C, C++, and assembly. JNI is needed to write native methods to handle situations in which an application cannot be written entirely in Java. For example, a need may arise to use native methods and the JNI in the following situations: The standard Java class library does not support the platform dependent features needed by an application, for example device specific I/O. A library or application written in another programming language may already exist and need to be made accessible to Java applications It may be necessary to implement a small portion of time critical code in a lower-level programming language, such as assembly, which the Java application can then control. In using JNI to call legacy code, the utility `Javah' is used to create an ANSI `C' compatible header file from a class file containing methods marked as `native'. The programmer must then create the platform specific native library using the untouched and unmodified header file. A Java application can then load this native library at runtime and complete the calls to the native code. The JNI calling functionality is, of necessity, partially built-in to the JVM, as part of the platform specific adaptations of a specific JVM port. See the Java Native Interface(JNI) tutorial [22] for more information. 3.5 RMI Threads are a useful tool for parallelism on a single machine but could also be a useful tool to spawn processes on multiple additional machines. The combination of Threads and RMI (Remote Method Invocation) would allow applications to subtask across the web. RMI enables the programmer to create distributed Javabased applications in which the methods of remote Java objects can be invoked from other Java virtual machines (JVM), possibly on different hosts. It closely parallels the older RPC (Remote Procedure Call) sockets-based clientserver mechanism [23]. A Java program can call a method on a remote object after it obtains a reference to the remote object. This reference is obtained either by looking up the remote object in the Java naming service provided by RMI or by receiving the reference as an argument or a return value. A client can call a remote object in a server which itself can be a client of other remote objects, so that RMI can be bi-directional between a client and server. RMI is itself implemented completely in Java, and uses a mechanism in which the client's remote method calls are forwarded to a stub class, which runs in the local client JVM. This stub class meets the interface requirements of the server's remote methods. A local JVM does not actually internally contain the support for remote method features. The server has a corresponding skeleton class that also runs in the server's local JVM. The stub and skeleton classes are created using the `rmic' utility on the class file containing the remote method interface definition. These stubs and skeletons actually handle the entire networking interaction through the RMI package functionality. The RMI package is in turn built on the TCP/IP sockets methods in the `java.net core' Java package. One of the biggest advantages of RMI over other remote processing methods is that in a purely Java system design, the RMI remote methods calls look identical to normal, local, method calls. There are, of course, rules to follow to be sure code will work with RMI and there is some small overhead to initiate the client/server connection. The fact that remote methods look like local methods helps promote good object-oriented design without encumbering the design with too many client/server communication details. See the Remote Method Invocation (RMI) tutorial [24] for more information. 3.6 Jini Overview "Jini is possibly the most compelling reason to write in Java," says Sun CEO Scott McNealy. "The nice advantage is, if you can write in Java, you can write in Jini today"[25]. The above constructs, Threads, JNI (Java Native Interface) and RMI (Remote Method Invocation), have been available for several years. Jini [26] was fairly recently released, on January 25, 1999. The Jini Technology Starter Kit is not part of the Java 2 Standard Edition but can be downloaded at the Jini Connection Page [27]. Basically, the Jini infrastructure is built on the Java Remote Method Invocation system, but then adds two components: the discovery protocol and the lookup service. There are not as many well-documented Jini application examples available as with the more mature technologies of JNI and RMI. It is interesting, however, that Jini already has been used for AI applications, in particular, for use in agent research. Benedicto, "Regions: A Scalable Infrastructure for Scoped Service Location in Ubiquitous Computing" [28] Deleo, "A Demonstration of JiniTM Technology and the K Virtual Machine" [29] MITs Hive [30] UMBC example projects, including Ronin a Jini-based distributed agent development framework and a Jini Prolog Engine Service [31] Jini is a set of Java networking protocols intended to make Java-based devices or services network mobile. The Jini connection technology is presented as a new system architecture that brings to the network the facilities of distributed computing, network-based services, seamless expansion, reliable smart devices, and ease of administration [32]. The Jini concept was actually part of the original Java concept when Java was still called Oak and was targeted as an OS for small, smart appliances [33]. Part of the concept is built on the fact that modern appliances often have a lot of computing horsepower built-in, but are still reliant on some central system for the device to be network accessible. That central system will have operating system specific drivers installed to access the appliance. Jini provides the infrastructure needed for smart devices to advertise their features or services directly on the network and for other devices or applications to find and make use of those services. Specifically, a great deal of the power of Jini connection technology lies in its ability to move objects (service objects and attributes) across networked systems. Jini was designed as an ideal object-oriented infrastructure for networking devices unencumbered by a target application or platform. However, it is possible to see in its design tools for generating distributed systems development and to observe remedies for many of the issues that are encountered in creating CORBA or RMI-based solutions. A few essential design goals of Jini were: Simplicity: meaning just enough to meet the infrastructure goal without being everything to everybody, and small enough to be usable on appliances. Reliability: planning for the fact that a network is not 100% reliable, although many network systems, like LAN's, often assume that it is. Scalability: meaning that the communities of Jini devices can be organized hierarchically for larger application environments. Jini connection technology requires the following: an infrastructure which operates as a dynamically distributed system a common language and implementation that enables low-overhead communication between distributed objects a lookup service (which identifies objects that supply those services) an add-in protocol which is implemented on each device--called the discovery/join protocol a subtract-out mechanism--providing resilience when a device is unplugged--which is called leasing available for use in user created services. An example is the case of the Jini Lookup service sending a notification to a particular service if a service of some specific type joins or leaves the community. Transactions provide a protocol very similar to the twophase commit protocol used in many databases. The purpose is to ensure some set of events has occurred without partial completion. Jini implements a Transaction Participation Interface in which a set of objects registers with a Transaction Manager object. The Transaction Manager then invokes specific methods: `prepare' followed by `commit', within each registered object to guarantee in advance that the entire sequence could complete. The Manager gives each object a chance to abort, negating all of the transaction chain. Transactions will probably not be a frequently used part of Jini but are provided for completeness of the reliability of the Jini distributed object architecture when complex distributed sequences are needed. General Jini information can be found at the following: "How Jini Technology Makes This Work?" at [26] Jini Connection Technology [27] Jini Whitepapers [32] Core Jini by Keith Edwards [33] "The Jini Vision" by Bill Venners [34] The Jini community [35] "The End of Protocols" by Jim Waldo, the lead architect for Jini [36]. Jini is thus comprised of five new extensions Java to networking functionality: Discovery, Lookup, Leasing, Remote Events, and Transactions. Discovery is the process used by a service object to find and join a Jini community. In practice, Discovery is made up of three announcement protocols by which an object sends out self-descriptive packets. Either these are sent as a network broadcast to the entire network, called Multicast Request and Announcement, or to a specific Jini community Lookup server if one is known, called Unicast Discovery. Note that the range of multicast discovery is limited by the network topology, specifically whether inter-subnet routers are configured to pass multicast packets. The Lookup service is a required central Jini service, although a given Jini community could have several instances. The Lookup service intercepts the Discovery requests and registers the object's services as available. Part of the registration includes capturing a variety of details about the service: name, physical location, community name, duration of availability, etc. It also includes an actual proxy object, which an eventual user will download to access the service. Discovery and Lookup comprise the core features of Jini. The other protocols are features that enhance Jini's network reliability. Leasing is a mechanism for monitoring the availability of a service. When the service registers itself, the Lookup service creates a lease object. A lease object defines how long the service will be advertised as available on the lookup server. The lease may be retrieved and the lease extended. If the service does not renew before the lease expires, it will eventually be dropped from the Lookup service as an available service and any associated proxy objects will be dropped from memory. This makes the services self-cleaning in the sense that inactive services do not waste network bandwidth or Lookup server resources. Thus, the lease mechanism serves as a type of networked garbage collection. Remote events, as the name implies, extend the local JVM's event notification mechanism to network distributed objects. These are used by the Jini protocols and are 3.7 Jiro Jiro technology is an extension to the Java and Jini technologies for dynamic management of heterogeneous services on a network. For effective, faster and easier management of Jini, developers should consider Jiro. The base management services of the Jiro specification provide a common set of services for managing resources throughout the management domain. Specifically, the Jiro specification introduces an event service, scheduling service, controller service, logging service and a transaction manager. Jiro technology delivers: Simple Manageability -- by enabling creation of automated and policy-based management functionality to handle routine administrative tasks Greater Interoperability -- through platformindependent components and interfaces that simplify integration with other management solutions Dynamic Service Availability -- through a central management domain accessible to all Jiro technologyenabled resources on the network Improved Uptime -- by enabling devices to perform intelligent self-monitoring and corrective actions without waiting for human intervention 3.9 Java Message Service and JavaSpaces Overview See http://www.sun.com/jiro/ for information and downloading. One of the fundamental concepts of Jiro technology is the base management services. But how are these services that are being managed represented? Another fundamental concept of Jiro is FederatedBeans architecturebased components. The dynamic management services of the Jiro specification support the deployment, updating and recall of complete distributed management applications composed of FederatedBeans architecture-based components. The FederatedBeans API is downloaded with the Jiro Software Development Kit. The following discusses what Beans are in Java. 3.8 JavaBeans and Enterprise JavaBeans Java technology currently has a component model called JavaBeans, which supports reusable development components. Specifically, a Java Bean is a reusable software component that can be visually manipulated in builder tools (much like Delphi or Visual Basic). Beans may be visible objects, like AWT components, or invisible objects, like queues and stacks. A builder/integration tool manipulates Beans to create applets and applications. The simplest kind of a bean is really nothing more than a Java class that follows some fairly strict naming conventions for its event listeners and its methods. The Java Developer Connection has some nice tutorials on Beans [37]. To AI researchers, such a construct allows one to program knowledge specific modules that can be manipulated by related components. The tool resembles the idea of Knowledge Sources in a Blackboard system [38,39]. Or more simply, modules which perform a specific task [3]. Whether components are for distributed systems or running on single machines, the use of modularity and interoperability is always a good design plan. Such a construct allows for generic task components that can be added together with minimum user programming to provide higher-level tools. Enterprise JavaBeans (EJB) technology defines a model for the development and deployment of reusable Java server components. Components are, again, pre-developed pieces of application code that can be assembled into working application systems. The EJB architecture extends the JavaBeans component model to support server components (application components that run in an application server) [40]. EJB technology supports application development based on a multi-tier, distributed object architecture in which most of an application's logic is moved from the client to the server. The application logic is partitioned into one or more objects that are deployed in an application server. For more on Enterprise JavaBeans, see the tutorial [41]. In object-oriented programs, objects send messages to objects. In distributed systems, components send messages (and sometimes whole components) to components. Such a flow of objects necessitates advanced mechanisms for message passing and communication between various applications. The Java Message Service (JMS) will work in concert with other technologies to provide reliable, asynchronous communications between components in a distributed computing environment. JMS is a common API and provider framework that enables the development of portable, message-based applications in the Java programming language. The JMS specification provides significant improvements over traditional process-oriented messaging systems and improves programmer productivity by defining a common set of messaging concepts and programming strategies that will be supported by all JMS technology-compliant messaging systems. For more information on the Java Message Service API, visit http://java.sun.com/products/jms. JavaSpaces services are tools for building distributed protocols. They are designed to work with applications that can model themselves as flows of objects through one or more servers. "JavaSpaces technology is a simple unified mechanism for dynamic communication, coordination, and sharing of objects between Java technology-based network resources such as clients and servers. In a distributed application, JavaSpaces technology acts as a virtual space between providers and requesters of network resources or objects. This allows participants in a distributed solution to exchange tasks, requests and information in the form of Java technology-based objects. JavaSpaces technology provides developers with the ability to create and store objects with persistence, which allows for process integrity"[42]. JavaSpaces technology is available for downloading at [42]. A definition of the JavaSpaces application model and terms [43] illustrates a possibly use for JavaSpaces for AI Blackboard or distributed parallel systems: A JavaSpaces service holds entries. An entry is a typed group of objects, expressed in a class for the Java platform. Entries are described in detail in the Jini[tm] Entry Specification [44]. An entry can be written into a JavaSpaces service, which creates a copy of that entry in the space that can be used in future lookup operations. One can look up entries in a JavaSpaces service using templates, which are entry objects that have some or all of its fields set to specified values that must be matched exactly. Remaining fields are left as wildcards--these fields are not used in the lookup. There are two kinds of lookup operations: read and take. A read request to a space returns either an entry that matches the template on which the read is done, or an indication that no match was found. A take request operates like a read, but if a match is found, the matching entry is removed from the space. One can request a JavaSpaces service to notify an agent when an entry that matches a specified template is written. This is done using the distributed event model contained in the package net.jini.core.event and described in the Jini[tm] Distributed Event Specification [44]. All operations that modify a JavaSpaces service are performed in a transactionally secure manner with respect to that space. That is, if a write operation returns successfully, that entry was written into the space (although an intervening take may remove it from the space before a subsequent lookup). If a take operation returns an entry, that entry has been removed from the space, and no future operation will read or take the same entry. In other words, each entry in the space can be taken at most once. Note, however, that two or more entries in a space may have exactly the same value. The architecture of JavaSpaces technology supports a simple transaction mechanism that allows multi-operation and/or multi-space updates to complete atomically. This is done using the twophase commit model under the default transaction semantics, as defined in the package net.jini.core.transaction and described in the Jini[tm] Transaction Specification [44]. Entries written into a JavaSpaces service are governed by a lease, as defined in the package net.jini.core.lease and described in the Jini [tm] Distributed Lease Specification [44]. 4 Available Generic AI Tools in Java The remainder of this paper provides links to AI tools that have already been developed in Java. Elaborate AI tools can be built by using the lower-level modules implemented by others. Two problem-solving tasks that are modules in almost any AI application are structured matching and classification. In this section, an implementation in Java of a structured matcher is presented to provide the reader with one AI tool to add to their toolset. The design of the tool provided here is from work completed at The Ohio State University's Laboratory for Artificial Intelligence Research [3,4,5]. These tools were first written in Interlisp-D [4], translated to CLOS [45], then to Smalltalk (no longer available), and now they are being implemented in Java [46,47]. 4.1 Structured Matcher The Structured Matcher program implements a technique called hypothesis testing or matching. This is viewed as matching a hypothesis to a situation using a hierarchical representation of evidence abstractions. Such a tool can verify that a certain hypothesis is valid (or not) in a given case. A structured matcher is a simple matcher or truth table that contains parameters or questions which can be used to determine a confidence level for a hypothesis. To reduce the level of complexity, some of the parameters could be grouped into sub-decisions, which are simple matchers themselves. These simple matchers would be contained within their parent simple matcher just as a parameter would. When the root simple matcher resolves its truth table and encounters a column that represents a simple matcher, the processing of the current simple matcher would be put on hold while the child simple matcher would be resolved. The web pages for the tool [46] include an introduction and how to use the tool: http://aiweb.ecst.csuchico.edu/tasks/SM/paper/SMpaper.html an extendable Structured Matcher: allows a user to add different question types, and the manual for how to use it: http://ai-web.ecst.csuchico.edu/tasks/SM /paper/appendices.html source code http://ai-web.ecst.csuchico.edu/tasks/SM /heinke/download/strmatprg.htm 4.2 Classification The task is seen as determining what categories or hypotheses apply to a situation given a description of the situation. The classification tool consists of a hierarchy of specialists that mirror a diagnostic classification hierarchy. Each specialist (hypothesis) should have a subtask to establish or reject it; the current tool uses a serializable structured matcher as the method of verification. If the specialist is establi...

Find millions of documents on Course Hero - Study Guides, Lecture Notes, Reference Materials, Practice Exams and more. Course Hero has millions of course specific materials providing students with the best way to expand their education.

Below is a small sample set of documents:

LSU - NR - 54742
COOPERATIVE EXTENSION SERVICE Ouachita Parish 704 Cypress Street West Monroe, LA 71291-2922 (318) 323-2251 Fax: (318) 387-9376 Website: www.lsuagcenter.comEXTENSION PROGRAMS Agriculture and Forestry Community Leadership Economic Development Environ
Boise State - EDTECH - 573
Internet Plagiarism: Scavenger Hunt!With so much information out there on the internet it is often difficult to know what to do when you feel that your students may be plagiarizing their work. We will be using a scavenger hunt to help us answer some
CSU Chico - CSCI - 640
Appendix AMan Pagesman whatis whatis(1)Typical Man Page SectionsSection 1 2 3 4 5 6 7 8 Contents User commands System calls C library functions Devices and network interfaces File formats Games and demos Environments, tables, and troff macros S
CSU Chico - GEOS - 142
The Moon Project: Graphs 2003 Ann Bykerk-Kauffman, Dept. of Geological and Environmental Sciences, California State University, Chico*Example Graph for Topic #1 The example graph is on the next page; the data used for this graph are listed below.
CSU Chico - GEOS - 142
Lab Activity on Sedimentary and Metamorphic Rocks 2002 Ann Bykerk-Kauffman, Dept. of Geological and Environmental Sciences, California State University, Chico*ObjectivesWhen you have completed this lab you should be able to: 1. Identify five type
CSU Chico - GEOS - 142
Planetarium Lab #1: Introduction to the Stars, Planets and Moon 2002 Ann Bykerk-Kauffman, Dept. of Geological and Environmental Sciences, California State University, Chico*Map to the PlanetariumThe planetarium is Building #15 on the campus map b
CSU Chico - GEOS - 142
Notes on the Videotape What Makes Clouds? 2002 Ann Bykerk-Kauffman, Dept. of Geological and Environmental Sciences, California State University, Chico*A. Question: What are clouds made of? 1. Investigation: Examining plant leaves in a cloud near t
Purdue - MA - 15300
Cengage Now Hints for Lesson 9 and 10 In general: You can visit www.math.purdue.edu/MA 153 and use the discussion board to post questions and/or read responses. Matt will be live on that board MWF from 6-8 pm all semester. If you post a question at a
Allan Hancock College - TELE - 4363
48Outlinelocal receiver Effect Terminal ProblemOE Transmission Z Capture overwhelms` HiddenTerminal Problem" ExposedTime-varyingchannel ImmediateACKs for MACCollision Avoidance Random delaybefore transmithandshaking' RTS/CT
Boise State - EE - 551
EE 551/451, Fall, 2006 Communication SystemsZhu HanDepartment of Electrical and Computer EngineeringClass 29 Dec. 7th, 2006StatisticsGrade based on relative values and clusters. Do not be the outlier.Midterm mean 52.42 1 .8 1 .6 1 .4 1 .2
CSU Chico - UNIV - 101
Are You Reference Source Fit?Using Online Reference Sources Access Reference & Quick Facts from the Meriam Librarys ReSEARCH Station. Follow the pathway to the source lis ted for each question (the general category is firs t and the specific sou
Palmer College of Chiropractic West - PHILOSOPHY - 116
Palmer College of Chiropractic Syllabus Philosophy VI (116 9100) PHILOSOPHIC DISCUSSIONS Philosophy and Practice Department SPRING 2009 (092Trimester) 2 Credits Lecture Schedule: Tuesdays 7:30-9:15 a.m., Room P206 Instructors: This course will be a
Palmer College of Chiropractic West - PHILOSOPHY - 114
Component Models of Subluxation5-Component Model (Flesia-Dishman-Faye-Lantz) 1. Kinesiopathology 2. Neuropathophysiology 3. Myopathology 4. Histopathology 5. Biochemical changes/pathophysiology Subluxation Components (Seaman-Lantz) 1. Kinesiopatholo
Boise State - CSI - 20081014
WHAT YOU SHOULD KNOW ABOUT THE RFISReading First Impact Study (by the USDE and IES)The Following Slides are Taken Directly FromThe Evaluation of Reading First and The Reading First Impact Study: What did we learn and where d we go f l d h do from
E. Kentucky - GOSHORNJMU - 384
5225Wieder zurckhaltendPiccolo FluteOboe Clarinet in Bb BassoonHorn in F 1R & b c b a2 b b> &b c R b> &b c > n # n &c ?b c w > b &c &c &c . > > bbDi nuovo rit.Di nuovo rit.> bb b b> p b> b pp b b> >
E. Kentucky - DES - 250
DESIGN 250(INTRODUCTION TO GRAPHIC DESIGN)Samples of Students Workg a lon G hasLinks a haa flat tope p r 5 e 2 P19u taF iswide ontopsa r hacalligraphic earoman based on rript inscionseric gi lld it esigne din 19
Boise State - M - 502
Notes on Sequent Calculus with ExercisesRandall Holmes October 9, 2006In this handout, we modify the propositional part of the calculus in the book to allow more than one formula on the right of the which we insist on putting between the premises a
Allan Hancock College - PHYS - 1131
1 PHYS 1121 and 1131. Administration etc First year officeUNSW admin sitewww.phys.unsw.edu.au/COURSES/FIRST_YEAR/ for syllabus, assessment, timetables, etcvista.elearning.unsw.edu.auquizzes and on line tutorials Home page for mechanics: Multime
Allan Hancock College - CS - 3221
COMP3221: Microprocessors and Embedded SystemsLecture 31: Embedded Systemshttp:/www.cse.unsw.edu.au/~cs3221 Lecturer: Hui Wu Session 2, 2005COMP3221/9221: Microprocessors and Embedded SystemsOverview What is an embedded system? Characteristic
Wilfrid Laurier - ENEL - 563
ENEL 563 Biomedical Signal Analysis Fall 2008 Assignment 3 Design a second-order Butterworth lowpass filter with a -3 dB cutoff frequency of 80 Hz and sampling frequency of 200 Hz. Follow the design procedure and example on pp 122124 of the textbook.
Allan Hancock College - CS - 9242
Why Threads Are A Bad Idea (for most purposes)John Ousterhout Sun Microsystems Laboratoriesjohn.ousterhout@eng.sun.com http:/www.sunlabs.com/~ousterIntroductionuu u uThreads: Grew up in OS world (processes). Evolved into user-level tool.
Allan Hancock College - CS - 9242
Fundamental Concepts Address SpacesL4 Programming Introduction Unit of protection, resource management Threads Execution abstraction and provide unique identifiers Communication: Synchronous Identification: uidsIPC AS construction: ma
University of Montana - ASTRO - 353
Radius luminosity relation: log R25 = -0.249 MB - 4.00 Independent of Hubble Type.Sa Sb ScMean B V color:(B V)~0.6 0.64 0.52Sb Sc0.75SaMean M/LB ratio:6.2Sa4.5Sb2.6ScGas fraction ( Mgas/Mtotal ):0.04Sa0.08Sb0.16Sc"
University of Montana - ASTRO - 353
Homework # 5Astronomy 353 Galactic Astrophysics and Cosmology Spring 2009 Due: Wednesday, March 25 Reading: Chapter 27, The Structure of the Universe (Note: Problem numbers in old edition in parentheses.)1. 27.2 (25.2) [Hint: A circle (or ring) v
University of Montana - MATH - 444
PositionPlanetDistanceDiameterPeriod1Mercury363030882Venus 6775202253Earth 9379263654Mars 14242176875Jupiter4848883843326Saturn 88774896107607Uranus 176531762306848Neptune279130774601889Pluto 36541
University of Montana - ETD - 04102007
8-1Chapter 8APPENDIX ASTATEMENT OF WORK May 8, 2006Methods and Procedures for Developing Map Symbology and Cartographic Products for Emergency Management in MontanaMontana Department of Administration/ITSD on Behalf of the Montana Critical
University of Montana - ETD - 04102007
2-12METHODOLOGY The methods used for conducting this research have been empirical when it cameto choosing the list of templates to include, but theoretical and conceptual when it came to actually building them. It was necessary to research as m
University of Montana - ETD - 12082006
Chapter 3 Cognitive walkthrough and heuristic evaluation3.1 OverviewIn the previous chapter, the preliminary design of the web based CO2SYS program was discussed. This chapter will talk about how to evaluate this preliminary design with two simplif
University of Montana - BIOL - 223
PIGMY HIPPOPOTAMUS OF LIBERIA. The animal, when full grown, weighs less than SOO pounds, and stands only 30 inches high at the shoulder. He is, therefore, easily restrained by fences, and would not offer the problem of control, if domesticated, that
University of Montana - BIOL - 223
BIOL223 Genetics & EvolutionMarch 16, 2009 Intro to Population GeneticsFRI MON Selection Selection, Genetic Drift and Non-random matingWed Migration & population structureAnnouncementsReading: Freeman & Herron Mon Ch. 6, pp. 182-194, Wed Ch. 7
University of Montana - CS - 335
Computer Science 335, Programming Languages. April 7, 2001Solutions to Assignment 8Due date: Wednesday, April 4 at the beginning of class (on paper). Assignments turned after the due date will be penalized 20% as in the late assignment policy. 1.
University of Montana - CS - 101
FunctionProceduresSandeepPulavartyAnnouncementsAssignment2&PopQuiz1gradesareposted Assignment3: DueThu.Oct14th LateAssignments 25pointswillbedeductedforthefirstweak 50pointswillbedeductedforthesecondweak WillnotbeacceptedthereafterPas
University of Montana - CS - 101
ArraysSandeepPulavartyAnnouncementMidTermonWed.Mar30ArraysAnarrayisacollectionofdataitemsthathave thesametype Youcanthinkofanarrayasalistofitems Thelistmustcontainonlyitemsthathavethe sametype Forexample,wecanthavealistofStringsAND Integer
University of Montana - CS - 101
Arrays Sandeep PulavartyArraysAn array is a collection of data items that have the same type You can think of an array as a list of items The list must contain only items that have the same type For example, we can't have a list of Strings AN
University of Montana - CS - 172
IF YOU GET INTO DIFFICULTY AND WANT TO "RETREAT" FROM YOUR CURRENT SITUATIONMouse still workingTo end a "subtask" click a [cancel], [close], or similar button To close a window double-click the control-menu button (upper left of window) - or clic
University of Montana - CS - 121
Syllabus Registration Information:CS 121 Careers in Computer ScienceAutumn 200672674 121_01 W SS 344 12:10 1:00 PM Prerequisite: declared major is Computer Science Co-requisite: none Instructor/Advisor Information: Instructor: Mike O'Conner O
University of Montana - MATH - 241
Statistical calculations on non-graphing calculatorsMany calculators can compute one-variable statistics (mean, standard deviation) for a set of data. Some can also calculate two-variable statistics (Pearson's correlation, least squares line) for a
University of Montana - MATH - 447
Lab #1 Demo 2008MA 447Statistical Methods, Fall,Topics/Objectives: This lab is an introduction to SPSS (a Statistical Package for the Social Sciences). It seems to be a very nice piece of statistical software for people who are not statistician s
University of Montana - MATH - 447
393. Looking at Data: RelationshipsThis chapter describes methods for examining the relationship between two quantitative variables or two categorical variables. 3.1 Relationships between quantitative variables In analyzing the relationship betwee
University of Montana - MATH - 241
Math 241 Spring 2003 SPSS HW 1 Due Thursday, February 6 Limit: 1 page All text in your assignments should be typed, including your name and section number. You will not receive full credit if this instruction is not followed! 1. Carefully enter the d
University of Montana - ACCT - 451
University of Montana - MATH - 107
Math 107-9Name:1. This is a histogram of the birthweights (in grams) of 189 babies. The bars are labeled with the frequency in each interval. The bars without numbers all had frequency 1.25201920 19 18 191515 14 13 141091053 3 2
University of Montana - MATH - 107
Math 107-9 1. Sammy Sosas homerun counts are: 15 10 33 25 36 40 36 66 63 50 64 49 40 35 14 21Name:Compute a 5-number summary and add his boxplot to the graph below.Write a few sentences comparing the distributions of the homerun counts of these
University of Montana - ETD - 11142008
TESTING xUML: A STUDY OF IMPLEMENTING AND TESTING MODEL DRIVEN ARCHITECTURE By Dylan O Flaherty Bachelor of Science, Computer Science, University of Montana, Missoula, MT, 2007 Thesis presented in partial fulfillment of the requirements for the degre
University of Montana - ETD - 05272008
OXIDATIVE STRESS AND THE GUANOSINE NUCLEOTIDE TRIPHOSPHATE POOL: IMPLICATIONS FOR A BIOMARKER AND MECHANISM OF IMPAIRED CELL FUNCTION By Celeste Maree Bolin B.A. Chemistry, Whitman College, Walla Walla, WA 2001 Dissertation presented in partial fulfi
University of Montana - ETD - 03022007
RHETORIC AND THE RESTORATION LANDSCAPE: FOREST RESTORATION IN ENVIRONMENTAL DEBATE By Gregory Matthew VranizanBachelor of Arts, University of Oregon, 2003Thesis presented in partial fulfillment of the requirements for the degree of Master of Scie
University of Montana - ETD - 12192008
GEODATABASE DESIGN FOR RESOURCE AND LAND MANAGEMENT GIS: MISSOULA FIELD OFFICE BLM CASE STUDY, MISSOULA, MONTANA By Mark Benjamin English B.S. in Geography, Radford University, Radford, Virginia, 1998Thesis presented in partial fulfillment of the r
University of Montana - ETD - 04212008
MISTAKEN IN THE MAN: THE LIFE, DEATH, AND ESTATE TRIAL OF JOHN McCLELLAN By Peter Nels Olsen B.A., Augustana College, Sioux Falls, SD, 2005 Thesis presented in partial fulfillment of the requirements for the degree of Master of Arts in History The Un
University of Montana - ETD - 01042008
HOW THE ENVIRONMENTAL MOVEMENT HAS FAILED THE AMERICAN PUBLIC REVIVING ENVIRONMENTAL ACTION AS PART OF THE PUBLIC CONSCIOUSNESS: ADVERTISING IS THE MISSING TOOLBy Ross Rademacher Bachelor of Arts, Washburn University, Topeka Kansas, 1996 Profession
University of Montana - ETD - 05222007
PREDICTING SPOTTED KNAPWEED (Centaurea maculosa) RANGE EXPANSION NEAR MISSOULA MONTANA USING LOCALIZED CLIMATE AND ELEVATION DATABy William Frank Preston Cumming B.S., Montreat College, Montreat, North Carolina, 2000 Thesis presented in partial ful
University of Montana - ETD - 05272008
THE RELATIONSHIP AMONG WASHINGTON STATE COUNTY COMMISSIONERS KNOWLEDGE AND PERCEPTIONS OF WASHINGTON STATE UNIVERSITY EXTENSION AND THEIR WILLINGNESS TO FUND WSU EXTENSION by James Hilmer Lindstrom MPA Montana State University, Bozeman, MT, 1991 B. S
University of Montana - BIOL - 340
Physical properties of the earth/atmosphere system: Interaction of light and matter Solar energy budget of earth Composition of atmosphere The carbon cycle (CO2 flux and sinks)Outer atmosphereSix-fold increase in population X four-fold increa
Santa Clara - ENGR - 019
Air and Water PollutionBy: Kalie Bass Chris Lamm E. David RodriguezEthical AnalysisAir and water pollution are OKREASON 1: Humans have been polluting the world for centuries. REASON 2: By the time any serious environmental effects take place wel
Santa Clara - ENGR - 300
ENGR 300: Societal Issues in Technology Instructor: Dr. Neil R. Quinn Jr. Student: Ching-Ting NaTechnology Assessment FormTechnology Name: Biotech Category: Genetically Engineered Food Keywords: Gene, Genetic Engineering, Agronomic Benefits Refere
Santa Clara - ENGR - 300
Stephanie Le Engr 300 February 26, 2002 Nuclear Power in the United States To many people, when they hear the phase nuclear power they think of some other nations trying to wipe out the entire population. However, producing and having nuclear power c
Santa Clara - COEN - 351
OtherLaws (PrimarilyforEGovernment)COEN351FederalPropertyand AdministrativeServiceAct(1949)Omnibusbillregulatingvariousaspects oftheacquisition,use,disposalof FederalProperty. PaperworkReductionActof 1995 Thepurposesofthischapterareto
University of Montana - ETD - 09052008
BLACKFEET BELONG TO THE MOUNTAINS: BLACKFEET RELATIONSHIPS WITH THE GLACIER NATIONAL PARK LANDSCAPE AND INSTITUTION By David R. Craig B. A. University of California, Riverside, 1993 Thesis presented in partial fulfillment of the requirements for the
University of Montana - ETD - 09092008
COTTONWOOD ESTABLISHMENT IN A GRAVEL-BED RIVER By Claudio Ivn Meier B.Sc., Universidad de Concepcin, Concepcin, Chile, 1989 Civil Engineer, Universidad de Concepcin, Concepcin, Chile, 1990 M.Sc., Colorado State University, Fort Collins, Colorado, 199
University of Montana - ETD - 03292007
AN ASSESSMENT OF THE HIV PREVENTION NEEDS OF INJECTION DRUG USERS IN MONTANA By Nancy Mae Cunningham Master of Science, The University of Montana, Missoula, Montana, 2000 Bachelor of Science, The University of Wyoming, Laramie, Wyoming, 1988 Disserta
Santa Clara - COEN - 152
COEN252SecurityThreatsNetworkBasedExploitsPhasesofanAttackReconnaissance Scanning GainingAccess ExpandingAccess CoveringTracksReconnaissanceSocialEngineering Icannotaccessmyemail.WhatdoIdo? DumpsterDiving(especiallyusefulwhe
East Los Angeles College - PORT - 560
ALEXIA CONSTANTINOU University of Portsmouth Institute of Criminal Justice StudiesSeptember 2008Dissertation submitted in partial fulfilment for the requirement of the MSc Criminology and Criminal Justice Degree.Institute Of Criminal Justice St