Statistical Analysis for Lawyers or Paralegals by uib15803

VIEWS: 24 PAGES: 230

More Info
									     Logic Programming Associates



      LPA software tools
       and applications
by Clive Spenser (Marketing Director)
   Logic Programming Associates
         Logic Programming Associates

Logic Programming Associates
•   Formed 1981
•   Worldwide Reputation
•   AI/Expert Systems Products
•   Privately Held
•   Skilled Staff
      Logic Programming Associates

LPA
 Goal is to build imaginative software
 tools and applications using
 innovation, intelligence and integration
         Logic Programming Associates

LPA Business Activities
•   Product Sales
•   Maintenance
•   Collaborative Research
•   Project Development
•   Training and Consultancy
A Multi-tiered Toolset

        VisiRule


         Flex


         Flint


       WinProlog
         Logic Programming Associates

LPA Software Products
•   VisiRule
•   LPA Prolog for Windows
•   Flex expert system toolkit
•   Flint uncertainty handling toolkit
        WinProlog and corporate resources

                             Intelligence
                                Server



                          WinProlog
                    ProWeb                  ProData
                      CGI                    ODBC




WinProlog is highly connected with access extrenal resources,
                     data and languages
    Logic Programming Associates

LPA Software Products (contd)
•   ProData ODBC database interface
•   Intelligence Server
•   Data Mining toolkit
•   CBR toolkit
•   Dialog Editor
         Logic Programming Associates

LPA Software Products (contd)
•   ProWeb Server
•   WebFlex
•   Chimera Agents
•   Prolog++
        Logic Programming Associates

LPA Customers
•   Large Corporates
•   Research Organizations
•   Universities
•   Colleges & Schools
         Logic Programming Associates

Recent Activies
•   Frisc/Rems-ST DTI projects
•   Forfait CeC project
•   BIL/DealBuilder agreement
•   IBM/Inflow contract
•   OU flex licence
         Logic Programming Associates

Rems-ST
•   Repertory Grids
•   Web-based
•   Data Mining
•   Clustering
Rems-ST - the proposed system
      Security experts : knowledge providers
                                   and users
           inspection    revision


               Rep grids -
          knowledge elicited from         DATA
            security specialists         ANALYSIS   data



                                                      sources
                                          DATA
          Rep grids - knowledge
          inferred from patterns         MINING


      Knowledge Base
           selection    prioritisation
Rems-ST - the proposed system
                                           Elicitation example
                        1                            Argos     Sainsburys   Homebase    Argos      B&Q   Amazon                       5
                                                     On-line        2          3       Additions    5      6
                                                       1                                  4
One-off experience                                     2           5           1          1         2      4      Regular shopping
DIY stuff non-essentials                               1           5           2          3         2      3      Mainly food necessities
No additional rewards benefits                         1           5           1          1         1      3      Additional loyalty link club benefits
Store nearby is accessible                             1           1           5          1         2      5      No store nearby
Circumventing on-line route is possible practical      3           2           4          2         3      5      Problem would lead to ceasing to shop no
alternative to on-line is possible                                                                                alternative to shopping online
Customer service poor when problems                    5           5           5          1         5      5      Problems resolved well / no problems
Communication (about what and when) is poor            3           3           3          1         3      5      Keep me informed
Unreliable delivery                                    5           5           3          1         4      4      Delivery on time and courteous
Complicated delivery mechanism                         4           5           5          1         5      5      Simple delivery mechanism
Site encourages browsing                               5           4           4          5         1      1      Use site to buy something specific
Easy to navigate site                                  4           2           4          4         2      1      Less easy to navigate site
Dead links poor layout                                 3           5           1          3         4      5      Site up to date
Raises doubts about confidence                                                                                    Satisfying goodwill kept intact
Seems stingy hiding info                               1           4           5          1         4      3      Attracts attention to offers
Difficult to spot (buying) opportunities                                                                          Everyone wants a good deal
Seems disorganised                                     2           5           3          1         4      5      Has on-line shopping cracked
Takes ages to download                                 2           5           2          2         3      5      Quick response
Doesn’t keep in touch                                  1           4           2          1         3      5      Keeps in touch with news
Impersonal                                             1           5           1          1         1      5      Personalises the contact
No option to split delivery                            1           1           1          5         1      5      Option to split orders delivery as goods
                                                                                                                  come in
No information about availability / delivery times     1           1           4          1         4      5      Information to inform choice at time of
stock availability                                                                                                order
  Repertory grid cycle

                 Elicitation


 Elicitation                     Analysis
techniques                      techniques



               Interpretation
             KnowledgeGrid
• Knowledge Elicitation
  – Individual repertory grids for all 9 retailers on
    either stock theft or refund fraud
• Knowledge Representation
  – Extensions to repertory grid representation
    (categories)
  – Repertory grid software version 1
• Knowledge Sharing
  – Skills to further develop their grids and elicit,
    construct and interpret new grids
  – Reference grids on stock theft as sharable
    resource across the industry
Interpretation example
 Data analysis framework
Repertory grids
 elicited from
    security                   Hypothesis
  specialists       Data



                                Suggest
                   analysis



                  techniques
         Data                     Test
        Sources
Example - Repertory grid
          Example - Data analysis (rep
          grid)                                                                                CLASS
                                                                                   Sales Person-Management Team

                                                                                  1                                5                 TOTAL
                                                                 count       % t-weight % d-weight count       % t-weight % d-weight
                                                   where
                    CONDITION                      rating=
End of month time pattern-random                             1           3      100.00       75.00         1       20.00     25.00           4
End of month time pattern-random                             5           0        0.00        0.00         4       80.00    100.00           4
TOTAL                                                                    3                                 5                                 8
Spotted quickly-took long to spot                            1           3      100.00       75.00         1       20.00     25.00           4
Spotted quickly-took long to spot                            3           0        0.00        0.00         2       40.00    100.00           2
Spotted quickly-took long to spot                            5           0        0.00        0.00         2       40.00    100.00           2
TOTAL                                                                    3                                 5                                 8
obvious refund fraud-offender understands system             1           3      100.00       75.00         1       20.00     25.00           4
obvious refund fraud-offender understands system             3           0        0.00        0.00         1       20.00    100.00           1
obvious refund fraud-offender understands system             5           0        0.00        0.00         3       60.00    100.00           3
TOTAL                                                                    3                                 5                                 8




            • The count summarizes the number of occurrences of a particular construct
            rating for each class

            • T-weights indicate the probability that an occurrence in the target class has a
            specific construct rating.

            • D-weights show the distribution of examples between different classes; the
            probability that a class is derived from a construct.
Repertory grid technique cycle
                 Elicitation


 Elicitation                     Analysis
techniques                      techniques



               Interpretation




                   Action
Action sketches - data analysis
• Investigate patterns in data from repertory
  grid
  – Suggests patterns to investigate in data (e.g
    Dixons: theft by sales persons and
    management)
                                                                    REMS research                                                     SID
     • Confirms / rejects patterns
                                                                                                         %                                                  %

     • Suggests additional data to capture            Cases
                                                             Sales Person
                                                                   3
                                                                          Management
                                                                             team
                                                                               5
                                                                                         % Sales
                                                                                          38%
                                                                                                    management
                                                                                                       team
                                                                                                        63%
                                                                                                                   Other
                                                                                                                    55
                                                                                                                              Management
                                                                                                                                 team
                                                                                                                                   35
                                                                                                                                            % Other
                                                                                                                                              61
                                                                                                                                                       management
                                                                                                                                                          team
                                                                                                                                                            39
                                   End of month time pattern       3           1          100%          20%          4             7           7            20
                                             Spotted quickly       3           1          100%          20%         32             10         58            29
                                        Obvious refund fraud       3           1          100%          20%         14             8          25            23

                                                                                                                   Long
                                                                 Long                                             serving
                                                             serving team    New to      % Long                    team         New to      % Long
                                                               member       company      service      % New       member       company      service      % New
                                                       Cases       4           4           50%         50%           69           19          78           22
                                      major loss to company        3           0           75%         0%            21           3            30          16
                              High volume fraud transactions       2           0           50%         0%            28           3            41          16

                                                                                                                    Done
                                                               Done during Done during                             during
                                                                 unusual     normal    % unusual     % normal     unusual     Done during % unusual     % normal
                                                                  times       hours      times        hours         times     normal hours  times        hours
                                                        Cases        1          7         13%          88%             2          31           6           94
                                 Refund and sale same store          1          6        100%          86%             2          25          100          81
                           Refund and sale in different stores       0          1          0%          14%             0           0           0            0

                                                               Refund to    Refund for                            Refund to    Refund for
                                                                product     variety of      %                      product     variety of      %
                                                              'unopened'      faults     unopened    % faults    'unopened'      faults     unopened    % faults
                                                        Cases      2             6         25%        75%             1            4           20          80
                 Refunds made against ficticious sales nearby      2             1         100%       17%             0            0            0           0
                 Refunds used bona fide details in same store      0             5          0%        83%             0            2            0          50
Analyse Page
Review Page
Cluster page
Multiple Regression
Decision Rules
Action sketches - focussing
• Investigate patterns in repertory grids
  – Pick out interesting relationships through focussing (e.g. Dixons:
    small store-large store and bona fide details-false details)




                                      A
                                      B
                                      C
                                      D
                                      E
                                      F
                                      G
                                      H
The Frisc Project

   Lancaster University



   Integrated Business & information Systems (IBiS)



   Logic Programming Associates (LPA)



   AXA Insurance
         Logic Programming Associates

Frisc
•   Bayesian Probabilities
•   Ethnographic studies
•   Refutation
•   Investigation
        Frisc Project Goals
30 month UK government-funded project to
 reduce insurance fraud (approx. £1 billion
                  p.a.).




     Psychological             Technological


      Investigate &            Smart software
     understand fraud       tools to support fraud
    detection practices            detection
         Possible Approaches
                Data Mining




                              Knowledge/
Psychometrics
                               Expertise
            Analysis of Anomalies


                         Insured
Information absence                   Information match

  Suspicious behaviour              Financial status

      Information mismatch         Manner
    Toolset design
              Mass detection tool




            Indicators:

           Intermediate
Bayesian
                 nodes:
 Belief
Network
           Hypotheses:

      Fraud likelihood:
                    Toolset design
           Mass detection tool


             Get fraud
             indicators


Bayesian
 Belief
Network
                     Toolset design
           Mass detection tool


             Get fraud
             indicators


Bayesian      Capture
 Belief       anomaly
Network
                   Toolset design
           Mass detection tool


             Get fraud
             indicators


Bayesian      Capture
 Belief       anomaly
Network

            Assess fraud
             likelihood


              Pay claim
                    Toolset design
           Mass detection tool        Hypothesis testing tool


             Get fraud
             indicators


Bayesian      Capture
 Belief       anomaly
Network

            Assess fraud         Build/retrieve
             likelihood          hypothesis tree
                     Toolset design
           Mass detection tool        Hypothesis testing tool


             Get fraud
             indicators


Bayesian      Capture               Explore
 Belief       anomaly               anomaly
Network

            Assess fraud         Build/retrieve
             likelihood          hypothesis tree
                     Toolset design
           Mass detection tool        Hypothesis testing tool


             Get fraud            Give testing
             indicators             advice


Bayesian      Capture               Explore
 Belief                                                   Argument
              anomaly               anomaly
Network                                                    engine


            Assess fraud         Build/retrieve
             likelihood          hypothesis tree


                                                    Pay / refuse claim
                    Toolset design
           Mass detection tool        Hypothesis testing tool


             Get fraud            Give testing
             indicators             advice


Bayesian      Capture               Explore
 Belief                                                   Argument
              anomaly               anomaly
Network                                                    engine


            Assess fraud         Build/retrieve
             likelihood          hypothesis tree
        Logic Programming Associates

Forfait
•   Decision Maps
•   Monte Carlo Simulation
•   Crisis Simulation
•   Training
  Schematic of the Encapsulation of Domain Knowledge
                                                Crisis Simulation Mode
                                                User deploys resources
                                Advice
                                To User
                   Decision
                    Maps
Domain Knowledge



                                                   Fire Attack
                                                    strategy



                               FORFAIT
                               Knowledge
                                 Base
                                                      FIRE
                                                   Propagation
                                                      model
                              Planning Mode
                    Truth     FORFAIT deploys
                    Tables    resources
                                                                                        Truth Table (part)
The Decision Tree
                                                           Influencing Factors                                                                                   Decisions




                                                                                         Burning for Land Clearance




                                                                                                                            Restrictive Practices
                     Hierarchy of Decisions




                                                                                                                                                    Land Management
                                                                   Population Density




                                                                                                                                                                         Fire Breaks
                                              Land Value




                                                                                                                                                                                       Education
            Father         Son     Grandson
                                              L                    L                      L                             1   M                       L                    L             L
                                              L                    L                      M                             2   L                       L                    M             M
                                              L                    L                      H                             3   L                       L                    M             H
                                              L                    M                      L                             4   M                       M                    L             L
                                              L                    M                      M                             5   L                       M                    M             M
                                              L                    M                      H                             6   L                       M                    M             H
                                              L                    H                      L                             7   M                       H                    L             M
                                              L                    H                      M                             8   L                       H                    M             L
                                              L                    H                      H                             9   L                       H                    M             H
                                              M                    L                      L                            10   H                       L                    L             M



 Pre-Fire
 Decision
   Tree
                                                                                                                      Modifying
                                                                                                                       Factors




               Influencing Factors
Decision Module
Modifying Factors


       Semantic values:
       vh:     Very High
       h:      High
       a:      Average
       l:      Low
       vl:     Very Low




             Example:
       Here detection time is
               “vh”
             Very High
Uncertainty in
Decision Making                                  Very Low
                                                                 P              P’

                                                             Stochastic           Modified
                                                             (Sampled)           Distribution
                                                  Low
                                                               Model               Biases
        Scenario conditions                                  Parameter            Sampling
         (High, Medium, Low)

                                                               Consider Model Parameter:
                                                                 P =“Initial Fire Hazard”
                                                  Medium

                                  Modifying
                                 Factor e.g.                  Fuzzy Hedge “Very Low”
                               “Time to Detect                gives:
                                    Fire”          High
                                                                      P’ << P

                                                              Biasing the sampling of Initial
                                                              Fire Hazard to the low end of
                                                 Very High    the range of possible values

                                                  Fuzzy
                                                  Hedge
                                                 Functions
        Logic Programming Associates

AI Characteristics
• Search
• Partial Information
• Rules
        Logic Programming Associates

AI Applications
•   Knowledge Management
•   Configuration
•   Planning & Scheduling
•   Diagnostics
•   Natural Language
         Logic Programming Associates

AI Techniques
•   Expert (KB) Systems
•   Case based reasoning
•   Constraint based reasoning
•   Neuro-Fuzzy
•   Genetic Algorithms
         Logic Programming Associates

AI in Industry
•   Financial
•   Databases
•   Manufacturing
•   Distribution
•   Decision Support (Business Intelligence)
         Logic Programming Associates

AI & Engineering
•   Intelligent Design Systems
•   Production Planning
•   Product Selection/Re-use
•   Information Management
         Logic Programming Associates

Some LPA Customer Applications

•   Infermed - Arezzo
•   InFlow
•   BIL - DealBuilder
•   Cassandra
         Logic Programming Associates

Infermed - Arezzo
•   Decision Logic
•   Argumentation theory
•   Clinical Trials
•   VB front end
Composer - dogs
Arezzo process
          Creating Guidelines
Guidelines are comprised of the four AREZZO task
    types
•   Actions,
•   Decisions
•   Enquiries
•   Plans
Composer Window
Composeer – protocol1
Decision Editor on task: decision
1
Expression Editor
Scheduling and Pre-Conditions
Drink flowchart
Run Guidelines - drinks
        Logic Programming Associates

InFlow – Social Network Analysis software
•   Link Analysis
•   Network Measurements
•   Metrics
•   Reports
•   Visualization
Network Diagram
Jays Team
Network Measurements
Network Diagram
Uncloaking Terrorist Networks
By the middle of October
enough data was available to
start seeing patterns in the
hijacker network. Initially, we
examined the prior trusted
contacts (Erickson, 1981) - those
ties formed long ago through
living and learning together. The
network self-organized (via a
network layout algorithm) into
the shape of a serpent .


Initial Network
Yet, work has to be done, plans have
to be executed. How does a covert
network accomplish its goals?
Through the judicious use of
transitory shortcuts (Watts, 1999) in
the network. Meetings were held
that connected distant parts of the
network to coordinate tasks and
report progress. After coordination
was accomplished, the cross-ties
went dormant. One well documented
meeting of the hijacker network took
place in Las Vegas. The ties from
this and other meetings are shown in
gold.

Revised Network
            Logic Programming Associates

Business Integrity Ltd
•   Founded in 2000 as a Joint Venture between LPA and TL
•   Remit is to commercialise document automation technology
•   Uses LPA WinProlog and ProWeb
•   Has sold to most leading law-firms
•   Also used by Microsoft, Reuters, Amazon, Cisco
•   Target sectors are legal, healthcare and financial
         Logic Programming Associates

BIL – DealBuilder
•   Document Assembly
•   Word files as input
•   Web-based question/answers
•   Generates PDF
•   Integrated with DM solutions
       Logic Programming Associates

DealBuilder
 Business Integrity has changed the way lawyers
 and compliance specialists regard online contract
 automation, whether as part of an automated sales
 contract process, a bank trading system, or a law
 firm client engagement initiative
       Logic Programming Associates

Document Assembly
 Enables complex documents and legal contracts to
 be automatically converted to easy-to-use web-
 based questionnaires. Non-specialist users can
 complete the questionnaires online to generate
 perfect pre-approved documents in a fraction of the
 time it would take to manually create them
              Logic Programming Associates

Microsoft and DealBuilder
 Business Integrity is pleased to announce that Microsoft is now using DealBuilder in its Legal and
 Corporate Affairs department to generate End User License Agreements in multiple languages. The
 Microsoft LCA department uses DealBuilder integrated with Microsoft SharePoint to streamline the
 contract lifecycle. This solution allows paralegals or attorneys to answer business questions through an
 online intelligent questionnaire and generate a standard license agreement.

 “Like many legal departments, we used a manual process to draft, translate and store our product
 license terms. This resulted in many resources spent identifying current appropriate license terms,
 drafting English language license terms and having it localized. Now, with a few clicks and the push of a
 button our paralegals and attorneys can produce a license agreement with Microsoft‟s standard license
 terms in multiple languages. This is a huge savings in drafting time and localization costs. ” said Chris
 Breunig, Sr . Attorney, Microsoft Legal and Corporate Affairs.
           Logic Programming Associates

Amazon and DealBuilder
 Commenting on the project, Michael Miller, Amazon‟s UK Legal Director and
 Associate General Counsel said: “With automated drafting we can safely
 devolve the creation of relatively standardised legal documents to the
 business and at the same time offer them a more efficient, faster service. It
 also means that my department‟s legal resources are freed up to concentrate
 on the non-standard exceptions and more complex work. I see this as a first
 stage deployment of DealBuilder and I am excited about the prospect of
 deploying DealBuilder more broadly within our operations, with a view also to
 integrating DealBuilder with the corporate Peoplesoft (TM) HR system.
                Logic Programming Associates

Reuters and DealBuilder
•   Business Integrity is pleased to announce that Reuters has contracted to use Business
    Integrity's world-leading DealBuilder online contract automation software as part of its
    drive to improve customers‟ experience when contracting with Reuters. With the new
    system, Reuters sales executives and contract negotiators will be able to generate
    consistent and legally pre-approved sales agreements in seconds by updating a few
    business questions on a browser based questionnaire.

•   “Like most legal departments in large organizations, we draft and store our many sales
    agreements using manual processes – processes that are time consuming and vary from
    region to region" said Rosemary Martin, Global General Counsel at Reuters. "Our aim is
    to enhance customer satisfaction while reducing the time from order to contract. We
    believe that DealBuilder‟s leading technology will enable us to meet that challenge
    consistently across the organization.”
                                           IntellX
Make support lawyers the highest fee earners in the Firm by capturing their know-how in
automated precedents.
Modern law firms have invested heavily in their know-how. This often takes the form of contract
precedents, standards or models, along with guidance and drafting notes. These aids help fee-
earners create accurate and consistent documents quickly.
IntellX takes your know-how a stage further, automatically automating precedents, standards or
models and representing them as simple, online questionnaires. Fee-earners simply complete the
questionnaire and the software reliably generates a perfect document. With reliable document
automation law firms can produce more, higher quality documents in a given time and improve
the working environment for their staff.
IntellX is designed and proven as tool that can be used by lawyers, typically Professional Support
Lawyers (PSLs) or Paralegals. As know-how is created in the normal way, IntellX analyses and
automates the documents without the need for any computer programming expertise.
Unlike all previous 'document assembly' tools, IntellX works directly from the precedent,
eliminating the delays and errors associated with separate 'document templates', macros, XML
mark-up or other computer gobbledygook. No expensive consultants needed either.
IntellX is changing the way PSLs work, enabling them to produce top quality, fully automated
know-how, in the same time it takes them to draft a precedent. IntellX enables them to become
the most productive lawyers in their firm.
         Logic Programming Associates

DealBuilder
•   Legal document generator
•   Web-hosted
•   Mark-up logic
•   Desktop Analyser
DealBuilder - Web Based Document Automation Software

Contract precedents, standards or models have enabled lawyers to produce contracts faster
and to more consistent standards. DealBuilder takes this know how a stage further by
representing your precedents as easy to use, online questionnaires. Fee-earners simply
complete the form and DealBuilder immediately delivers a perfect draft document derived
from your know-how.
Vitally, DealBuilder is proven as accurate and reliable, providing legal document automation
that fee-earners can trust. It saves time too. Comparisons have shown that first draft
documents are typically produced by DealBuilder in 20% or less of the time it takes a fee-
earner to derive a draft from a traditional precedent.
Designed to open standards, DealBuilder fits into the way your firm works and links to any
document management system.
Being entirely browser based, DealBuilder is quick and easy to install and use, however large
your firm. There is no costly or time-consuming installation or management to worry about.
The drafting of legal documents can be time-consuming and tedious. It's a task that lawyers
seldom enjoy doing and clients don't like paying for it. Through
automation, DealBuilder eliminates long-winded drafting and
frees your fee-earners for higher value, client facing work.
           Logic Programming Associates

KnowGravity - Cassandra
• Assistant for System Specification AND Requirements
  Analysis
• assistant that guides software developers through the
  software development process.
• analyses project information held in one of many familiar
  UML-based CASE tools
• derives issues to be clarified or suggests the next steps to be
  done in the project
                     Cassandra’s Architecture




                            Main Application




                              Cassandra’s
                               Repository




           Input                                  Output
        Interfaces                              Interfaces
CASE                                                         CASE
Tools                                                        Tools



                            Agent Modules
           Logic Programming Associates

The size of the Cassandra application is currently about 7'000 lines of
Prolog code, of which about 3'500 lines are generic and thus highly
reusable (module management, licence management, GUI handling,
internationalization, and timing).
            Logic Programming Associates

Currently Input Interfaces for the following CASE tools are
available (no Output Interfaces have been developed so far):

        •    Artisan RTS V3.0 (XIARTRTS30)
        •    Select Enterprise V5.2 (XISELE52)
        •    Select SSADM V4.0 (XISELS40)
        •    Rational Rose 98 (XIROSE98)
Cassandra dynamically loads extension modules at startup time, at least some parts of
the user interface depend on the currently loaded modules. The figures above show
such an effect in case of different Input Interfaces. Depending on the selected Input
Interface (source), different options apply to that Input Interface.
              A simple meta model



                       M               e
                              o d e l El m     e n t
                       Na m      e




     t
En t i y                                                         c
                                                            Ba s i   T y p e
                                                               n t o
                                                          De f i i i n
            1 O   wn e r
                                                       1
                                                        T y p e

                     *                    *
                  b
           At t r i u t e s
                                     b
                              At t r i u t e
                                t
                       De f a u l
                                 Meta model name and version
                                       declaration
          1.   BBasic data type declarations
          2.   OObject type declarations
          3.   SSubtype/supertype association declarations
          4.   PPartition declarations




                                                                   
mm_version('A very simple meta model', '0.1.0', ['0.1.*']).
name(Name) :- atom(Name).

rep_type(model_element, [name(name)]).
rep_type(entity, [attributes(ref(attribute), set)]).           
rep_type(attribute,
[default,owner(ref(entity)),type(ref(basic_type))]).
rep_type(basic_type, [definition]).

rep_isa(entity, model_element).
rep_isa(attribute, model_element).
rep_isa(basic_type, model_element).
                                                               
rep_partition(structure, [entity, attribute]).
                                                               
            Logic Programming Associates

The meta objects declared in this way may be manipulated by a set of
built-in access predicates. These can be classified as follows:

• predicates to create, find, inspect, and delete meta
  objects
• predicates to manipulate attributes
• predicates to manipulate associations
• predicates to initialize, load and unload the
  Repository
         Logic Programming Associates

LPA Prolog for Windows
•   World-class Prolog compiler system
•   Robust and reliable run-time engine
•   Closely integrated with Windows
•   Used in industry, research & teaching
         Logic Programming Associates

LPA Prolog for Windows (integration)
•   Direct access to external DLLs
•   Automation support for Word, Excel etc
•   Embeddable using Intelligence Server
•   Socket support for TCP/IP and others
         Logic Programming Associates

LPA Prolog for Windows (I)
•   Windows XP, 2K, ME, 98, NT
•   Incremental and optimised compilation
•   Stand-alone application creation
•   Hashing functions for large corpora
•   Unicode support for Arabic, Chinese etc
         Logic Programming Associates

LPA Prolog for Windows (II)
•   Integrated development environment
•   Multiple edit windows
•   Source-level debugger
•   Text search and replace facilities
•   Printer and font access
         Logic Programming Associates

LPA Prolog for Windows (III)
•   Edinburgh syntax
•   440 built-in predicates
•   Access to DLLs and Windows APIs
•   DCGs
•   Unique string data type - powerful I/O
         Logic Programming Associates

LPA Prolog for Windows (IV)
•   Scientific mathematical functions
•   Enhanced date and time predicates
•   Dialog & menu creation/handling
•   Formatted I/O
•   Graphics routines
        Logic Programming Associates

LPA Prolog for Windows (V)
•   User-defined hooks
•   Meta-programming
•   On-line help
•   Extensive manuals and tutorials (PDF)
Various WinProlog dialogs
       Logic Programming Associates

WinProlog - String Data Type
• Main uses:
   I/O streams
   Data transfer
   Large scale text processing
• Maximum length of 3 gigabytes
• Doesn‟t use dictionary, unlike atoms
         Logic Programming Associates

Formatted Input/Output
• Read a formatted term
• Write a formatted term
• Supported formats: atom, char list, fixed point
  number, integer, unsigned integer, arbitrary radix,
  string
Travelling Salesman screen
Debugger Screen
          Logic Programming Associates

Call Graph
•   View the outline of a Prolog program
•   A graph of predicate calls
•   Top-level predicate can be selected
•   Depth can be defined
•   Get predicate info - interpreted, static, etc.
Call-graph and code
       Logic Programming Associates

Flex - Frame Graph
• Similar technology to Call Graph
• Shows flex frame hierarchy
Frame Graph and Code
Flex - Frame Browser
         Logic Programming Associates

Dialog Editor
•   Create Windows dialogs „graphically‟
•   Written in Win-Prolog
•   Generates Prolog code for programs
•   Existing dialogs can be imported
                        Dialog Editor Pallet
                Pointer Tool    Push Button Tool   Check Box Tool



           List Box Tool                               Radio Button Tool



                                                       Group Box Tool
       Combo Box Tool


                                                       Static Tool
Horizontal Scrollbar Tool



       Vertical Scrollbar          Edit Tool       Grafix Tool
       Tool
Dialog Style Dialog
Static Style dialog
         Logic Programming Associates

Cross Referencer
•   Built-in predicates called directly
•   Predicates both defined and called
•   Predicates defined, but not called
•   Predicates called, but not defined
         Logic Programming Associates

User-Defined Hooks
• Messages received by Win-Prolog can be handled
  by a user-defined hook
• Find/Change Box Hooks - intercept messages from
  the built-in Find or Change dialogs
• Abort Hook - intercept calls to the abort predicate
        Logic Programming Associates

User-Defined Hooks
• Break Hook - intercept the user pressing <Ctrl-
  Break> during execution of a particular predicate
• Debug Hook - intercept calls to the debugger when
  a spied predicate is about to be executed
        Logic Programming Associates

User-Defined Hooks
• Error Hook - intercept error messages
• Timer Hook - called when a timer expires
• Messages Hook - intercept messages before Win-
  Prolog itself sees them
         Logic Programming Associates

Meta Programming
• ?- menu( good_meal ).
• menu( Meal ) :-
    Call =.. [Meal,Starter,Main,Dessert,Wine],
    call( Call ).
• Call is instantiated to the Prolog term:
    good_meal(Starter,Main,Dessert,Wine)
         Logic Programming Associates

Data Mining Toolkit
•   AI origins (search)
•   Latest „silver bullet‟
•   Value-added to DB community?
•   Links to Knowledge Management
         Logic Programming Associates

Data Mining Techniques
•   Machine learning
•   Induction (ID3 et al)
•   Statistical analysis (SPSS, MathLab)
•   Neural Nets (Clementine)
         Logic Programming Associates

Data Mining Activities
•   Rule generation
•   Clustering - segmentation
•   Dependency detection
•   Sequence analysis
         Logic Programming Associates

Data Mining Objectives
•   Reduce customer „Churn‟
•   Better marketing targeting
•   Improve business projections
•   Bespoke packages for cross-selling
         Logic Programming Associates

Data Mining Process
•   Data pre-processing
•   Data analysis
•   Data selection
•   Data mining
                        Removing Columns                            Rule Discovery
                          and Filtering


         Selection                            Constructing a                                Evaluation/
                                                 Target                                    Interpretation




                                                          Reduced and                  Rules
                                                          Filtered View
                                                           with Target



 Data                                                                                                       Knowledge
Source




                     View            Reduced and          Reduced and                Clusters
                                     Filtered View        Filtered View
                                                          with Metrics



                                           Constructing Metrics     Discovering Clusters




                                              Stages in the Data-Mining Process
       Logic Programming Associates

Data-Mining Toolkit
• Predicates provide programmatic access to
  ODBC data sources
• Dedicated data-mining predicates
• Can be used with Intelligence Server - User
  interface in other language
       Logic Programming Associates

Key Points
• ODBC-based
• API-based toolkit
• Uses data source engine for performance
         Logic Programming Associates

4 Phases
•   Create View
•   Construct Target
•   Generate Influence Factors
•   Discover Rules
       Logic Programming Associates

Constructing the target
• Single Formula
• Conjunction of Formulae
Significance Chart
Venn Diagram of definitions
    Target Conditions
     (T)      (C)
                        View
                         (V)




                        Target Hit
                           (P)
        Logic Programming Associates

Discover Influential Conditions
• Candidate Conditions
• Influential Conditions („interestingness‟)
          Logic Programming Associates

Sorting Influential Conditions
•   Condition
•   Significance
•   Truth
•   Base Coverage
•   Target Coverage
•   Entropy
         Logic Programming Associates

Combining Influential Conditions
•   Committing to a Rule
•   Strengthening a Rule
•   Weakening a Rule
•   „Best‟ Rule
          Logic Programming Associates

Variables Used
•   V - number of rows in the view (NORV)
•   H - NORV where the hypothesis holds
•   C - NORV where the candidate condition holds
•   P - NORV where both the hypothesis and the
    candidate condition hold
        Logic Programming Associates

Default Formulae
• P / H >= 0.2
• aln(P/V) - aln((C-P)/V)
       Logic Programming Associates

Acceptable Rules
• IF Cond1 AND ... Condn THEN Hypothesis
• is deemed to be acceptable providing
• P/H >= 0.20 AND P/C >= 0.20
             Logic Programming Associates

Order of Rule Generation
•   1.   IF A THEN H          9. IF B AND D THEN H
•   2.   IF B THEN H         10. IF C AND D THEN H
•   3.   IF C THEN H         11. IF A AND B AND C THEN H
•   4.   IF D THEN H         12. IF A AND B AND D THEN H
•   5.   IF A AND B THEN H   13. IF A AND C AND D THEN H
•   6.   IF A AND C THEN H   14. IF B AND C AND D THEN H
•   7.   IF A AND D THEN H   15. IF A AND B AND C AND D
•   8.   IF B AND C THEN H       THEN H
        Logic Programming Associates

ProWeb Server (I)
• Prolog on the Web (backtracking et al)
• Generates/interfaces to HTML
• Runs as a CGI application on a Windows server
• Personal Web Server/Internet Information
  Server/Netscape FastTrack Server/Apache
• Form-based
          Logic Programming Associates

ProWeb Server (II)
•   Conversation management for multiple clients
•   Overcomes stateless nature of the web
•   Win-Prolog may or may not remain resident
•   Going back in a conversation
•   Control over granularity of conversation
     Logic Programming Associates

Conversation Flow
          Logic Programming Associates

ProWeb Server (III)
•   Use existing HTML templates
•   Generate HTML programmatically
•   Combine the above two
•   Frameset support
•   ODBC support (Access, SQL Server) via ProData
         Logic Programming Associates

ProWeb Launch Page
• A normal HTML page
• Launch ProWeb like you would a Perl script
<FORM METHOD = “get” ACTION = “/proweb/proweb.exe”>
  <INPUT TYPE = “submit” VALUE = “Launch ProWeb”>
</FORM>
        Logic Programming Associates

The Main Goal
• Main entry point into user‟s code
• Example:
  main_goal :-
     proweb_send_form( input_form ).
      Logic Programming Associates

Page, Form and Question
     L
  HTM Page      Defined by proweb_page/ 2

     L
  HTM Form      Defined by proweb_form/ 2

    HTM  L      Defined by proweb_question/ 2
   Question
       Logic Programming Associates

Sending a Form
• proweb_send_form/1 sends a form
• Example:
 proweb_send_form( input_form ).
       Logic Programming Associates

Defining a Form
• proweb_form/2 defines a form
• Example:
  proweb_form( input_form,
                `Hello World!`
             ).
      Logic Programming Associates

A Simple ProWeb Example
main_goal :-
  proweb_send_form( input_form ).

proweb_form(input_form,`Hello World!`).
         Logic Programming Associates

Defining a Question
• Example:
 proweb_question( my_name,
                   [ method = input,
                     type = string
                   ]
                ).
• Create an HTML form question
      Logic Programming Associates

HTML Notation
• Uses standard HTML code from HTML
  template pages
• ProWeb has its own HTML notation
  Example:
  td(bgcolor=red),b @ `Hello`,/td
       Logic Programming Associates
Embedding a Question into a
Form
• proweb_form( input_form,
                [
                  ?my_name,
                  input(type=submit)
                ]
             ).
The Generated HTML Page
      Logic Programming Associates

Retrieving an Answer
• main_goal :-
    proweb_send_form( input_form ),
    proweb_returned_answer(
                        my_name,MyName).
       Logic Programming Associates

Using a Template HTML Page
• Create normal HTML template page
• Point proweb_form/2 at it
• Example:
  proweb_form( hello_form,
                include(‘hello.htm’)
             ).
       Logic Programming Associates

ProWeb Demos
• Many live demos at http://www.lpa.co.uk/
         Logic Programming Associates

Phases of the Moon
•   Based on Win-Prolog example
•   Clear code separation - Prolog & ProWeb
•   Single form that gets resent indefinitely
•   Backtracks to find next solution
•   Moon phase mapped to image file
       Logic Programming Associates

Choose a Meal
• Based on Win-Prolog example
• Backtracks to find next solution that
  matches client‟s meal type setting
• Resend main page until no more solutions
• Each menu item mapped to image file
       Logic Programming Associates

Travelling Salesman
• Based on Win-Prolog example
• Travelling salesman algorithm in Prolog
• Uses Java applet to select towns and
  display route
         Logic Programming Associates

Eliza
•   Classic natural language example
•   Patient/psychiatrist conversation
•   Main form gets resent indefinitely
•   Echoes client‟s input on next page
           Logic Programming Associates

Chat-80
• Geographical database
• Natural language
• “what is the capital of malaysia”
     -> kuala_lumpa
• Query page is resent indefinitely
• Echoes query on next page
         Logic Programming Associates

Network Paths
•   Classic network path algorithm
•   Calculates all solutions upfront
•   Returns shortest path first
•   Programatically builds up „jigsaw‟ image
    based on nodes in path
        Logic Programming Associates

Expert System
• IF…THEN… rules
• Backward or forward chaining
• Javascript popup dialogs provide audit trail
          Logic Programming Associates

E-Forms
•   Lets you define a form and then…
•   Lets you fill in and submit your own form
•   All pages (except 1st) are created programatically
•   Programmatic table generation
•   Extensive use of parameter passing into
    proweb_question/2 clauses
         Logic Programming Associates

Insurance
•   Frame-based
•   Document assembly
•   All 5 pages updated per interaction
•   Javascript help
•   Similar to Scaffold/DealMaker
         Logic Programming Associates

WebFlex
•   An advanced ProWeb application
•   ProWeb and Flex - “Flex on the Web”
•   Deliver KSL knowledge bases on the web
•   KSL compatibility between desktop and web
         Logic Programming Associates

WebFlex
•   No need to learn HTML
•   Automatic session management
•   Transparently generates ProWeb code
•   Graphics (GIF, JPEG etc) support
         Logic Programming Associates

Differences From Desktop flex
•   Data validation at client end
•   Multiple forms/questions on same page
•   Utilise HTML code where required
•   Go back in browser and down different
    execution branch
         Logic Programming Associates

Questions and Answers
• Customise presentation of built-in forms (size,
  colour, font)
• Support for HTML Form fields (listbox, radio)
• Generate Javascript for client-side validation (date,
  time, number)
• Automatic support for images (GIF, JPEG)
        Logic Programming Associates

Robbie the Robot
• Robbie helps select groceries to put into a
  shopping cart.
• Demonstrates forward-chaining in a
  configuration and resource allocation
  problem
          Logic Programming Associates

Solvents
• Select the correct solvent to use when
  cleaning equipment based on…
•   equipment class,
•   the ventilation of the site,
•   the main material of the equipment, and
•   whether the equipment contains rubber compounds
        Logic Programming Associates

Forest Yield
• Expert system that recommends a species
  of tree seed to maximise forest yield
• It tells you where to get the seed, the
  normal yield of the seed and how that yield
  should be varied.
         Logic Programming Associates

Pesticide
•   Choose a pesticide given a pest and a crop
•   Select one or more pests
•   Select a crop
•   Give the harvest due date if asked
•   Receive name of pesticide to use
Pesticide Screen2
           Logic Programming Associates

Intelligence Server
•   Prolog/Flex as the backend (with backtracking)
•   Front-end in VB, Delphi, Java, C#, C/C++
•   Callbacks
•   Multiple instances (support for multi-threading)
•   String-based
•   DLL - six functions
          Logic Programming Associates

Intelligence Server
•   Server independant
•   Clean and safe
•   Uses unlimited size buffer
•   COM example
•   Used to deliver embedded solutions
     Logic Programming Associates

Intelligence Server
              Intelligence Server application




     Client        INT3 8 6 W.DLL               Prolog
            Logic Programming Associates

Intelligence Server - six functions
•   LoadProlog function loads Win-Prolog into memory
•   InitGoal function Initialises a query
•   CallGoal function calls a query initialised by InitGoal
•   TellGoal function returns user input to a query
•   ExitGoal function removes a query
•   HaltProlog function halts a Win-Prolog instance
          Logic Programming Associates
Intelligence Server -
LoadProlog
•   LoadProlog function loads Win-Prolog into memory
•   1st argument - command line switches
•   2nd argument - buffer size
•   3rd argument - character encoding
•   Returned: Win-Prolog instance identifier
          Logic Programming Associates

Intelligence Server - InitGoal
•   InitGoal function Initialises a query
•   1st argument: Win-Prolog instance identifier
•   2nd argument: Prolog query
•   Returned: G (success) + 4-digit number
•   First query 0000, next query 0001, etc.
            Logic Programming Associates

Intelligence Server - CallGoal
•   CallGoal function calls a query initialised by InitGoal
•   Argument: Win-Prolog instance identifier
•   Returned: T 0012 - query 12 succeeded
•   Returned: F 0032 - query 32 failed
•   input/2 - I 0081\nYour name - query 81 requests input
           Logic Programming Associates

Intelligence Server - TellGoal
•   TellGoal function returns user input to a query
•   1st argument: Win-Prolog instance identifier
•   2nd argument: user input to a query
•   Example: TellGoal( 0000, “Rebecca. ”)
•   input/2 - Name = `Rebecca. `
         Logic Programming Associates

Intelligence Server - ExitGoal
• ExitGoal function removes a query
• Argument: Win-Prolog instance identifier
         Logic Programming Associates

Intelligence Server - HaltProlog
• HaltProlog function halts a Win-Prolog instance
• Argument - Win-Prolog instance identifier
           Logic Programming Associates

Intelligence Server - Flags
•   G - goal registered successfully
•   T - called goal succeeded
•   F - called goal failed
•   E - called goal generated an error
•   I - called goal is requesting information
          Logic Programming Associates

ProData
•   Prolog/Database Interface
•   ODBC (Microsoft Access, SQL Server, Oracle, etc.)
•   Database records appear as Prolog facts
•   Built-in predicates for common tasks
•   Any SQL command can be executed
          Logic Programming Associates

ProData Built-in Functions
•   Connect to data source
•   Disconnect from data source
•   Show data sources
•   Show database schema
          Logic Programming Associates

ProData Built-in Functions II
•   Attach to existing table
•   Create table
•   Read records
•   Add, update or delete records
        Logic Programming Associates

WinProlog – Automation I
• Object Linking and Embedding
• Means of communication and control between
  Windows applications
        Logic Programming Associates

WinProlog - Automation II
• Pass data between and control OLE automation
  objects exposed by other Windows applications
  such as Microsoft Word, Excel or Access
• Example: Use WinProlog to create and format a
  document in Microsoft Word
         Logic Programming Associates

Win-Prolog - Automation III
• Initialise the OLE library
  ?- ole_initialise.
• Create a Microsoft Word application object
  ?- ole_create( word, „word.application‟ ).
         Logic Programming Associates

Win-Prolog - Automation IV
• Put the value -1 to its „visible‟ property
  ?- ole_put_property( word, visible, -1 ).
• Getting value for property can return object
  ?- ole_get_property( word, documents, [],
  Documents ).
  Documents = object( word : documents )
         Logic Programming Associates

WinProlog - Automation V
• Add new document to word:document object
  ?- ole_function( word:documents, add, [], Add ).
  Add = object( word : documents : add )
• Close word object and all sub-objects
  ?- ole_close( word).
Logic Programming Associates




   Flex Overview
     Clive Spenser, LPA
          Logic Programming Associates

Principal Components
•   forward-chaining production rules
•   frame-based inheritance
•   backward-chaining relations
•   questions & answers
•   KSL syntax
•   Prolog-level access functions
          Logic Programming Associates

Forward-chaining Rules
•   'ruleset' packages collections of rules
•   data oriented process
•   multiple conditions in rules
•   multiple consequences in rules
        Logic Programming Associates

Forward-chaining Engine
• lots of rules which are potentially useable at
  all times
• data decides which rule to use
• data changes as rules are applied
• some notional end state to help us
  terminate
            Logic Programming Associates

Forward-chaining Cycle
•   find a/all rule(s) whose conditions are satisfiable, and
•   select one and
•   fire that rule (deal with the consequences)
•   update the agenda and
•   go round again until we satisfy termination criteria
        Logic Programming Associates

Rule Selection
• first come first served (efficient, textual
  ordering)
• conflict resolution (inefficient)
• conflict resolution with threshold value
         Logic Programming Associates

Agenda Update
•   promote/demote selected rule
•   cyclic rotation
•   remove unsatisfied rule(s)
•   rule transintion network
•   user-defined update procedure
      Logic Programming Associates

Production Rules
rule 'check status'
  if the applicant`s job is officer
  and the applicant`s age is greater
  than 65
  then send the applicant for grading
  because The job grading affects the
  pension .
         Logic Programming Associates

Weighting of Rules (static)
rule drink_tea
      if the hour is late
      then drink_a_cup_of_tea
      score 5 .
rule drink_beer
      if the fridge contains some beer
      and   the weather is hot
      then drink_a_can_of_beer
      score 10 .
        Logic Programming Associates

Weighting of Rules (dynamic)
rule empty_master_into_slave
  if the master is not empty
  and the slave`s contents > the master`s
  spare_capacity
  then fill_from( master, slave )
  score master`s contents + slave`s contents .
         Logic Programming Associates

Explaining Rules
rule 'check status'
   if the applicant`s job is officer
   and the applicant`s age is greater than 65
   then ask_for_grading
   because The job grading affects the pension .
rule 'check status'
   if the applicant`s job is principal
   and the applicant`s age is greater than 65
   then check_principal_function
   browse file status .
         Logic Programming Associates

Frames
•   Frame-based hierarchy
•   Attributes with default values
•   Current (updateable) values
•   Procedural attachment (demons etc)
           Frame

        bird                            Name
motions  fly
habitat tree                            Slots
 skin feather



frame bird
       default skin    is feather and
       default habitat is a tree and
       default motions are { fly } .
                          jug
          position                   upright
          capacity        15
          contents         0           7.5


         Attribute     Default      Current
          Name          Value        Value
frame jug
       default capacity is 15 and
       default contents is 0 .

action jug_update ;
       do the contents of the jug becomes 7.5 and
       the position of the jug becomes upright .
 Attribute            Default            Current
  Name                Value               Value

   motions                 fly

• attribute name
        such as habitat, describing the concept
• default value
       to be used when there is no current value
• current value
       the current value for the attribute
             Logic Programming Associates

Inheritance
•   left-to-right thru parents, grandparents
•   depth first vs breadth first; limited to N levels
•   specialised inheritance
•   negative inheritance
•   singular vs multiple
         Logic Programming Associates

Relations
•   backward-chaining procedures
•   multiple definitions
•   back-trackable
•   parameter passing
         Logic Programming Associates

Relation example
relation bank_balance( Customer, Balance )
      if C is some customer
      and check that Customer is C`s cust_name
      and check that Balance is C`s balance.
relation bank_balance( Customer, 0 )
      if gensym( cust, NewCust )
      and NewCust is a new customer
      and NewCust`s cust_name becomes Customer
      and NewCust`s balance   becomes 0.
         Logic Programming Associates

Actions
•   backward-chaining procedures
•   single definitions
•   not back-trackable
•   parameter passing
          Logic Programming Associates

Action (examples)
action demo ;
      do invoke ruleset demo_rules .
action empty_into( X, Y ) ;
      do Y`s contents := Y`s contents + X`s contents
      and X`s contents := 0 .
action write_data( Customer ) ;
      do write( 'Customer : ' )
      and write( Customer`s name ) and nl
      and write( 'ID : ' )
      and write( Customer`s id ) and nl .
          Logic Programming Associates

Questions
•   Built-in portable GUI
•   choose one/choose some of list_of_items
•   input X (such that ...)
•   answer is X such that ...
         Logic Programming Associates

Menu question examples
question choose_colours
   Select your colours ;
   choose some of red, green, yellow, blue, black,
   white.
group colours
   red, green, yellow, blue, black, white.
question choose_a_colour
   Select a colour ;
   choose one of colours.
         Logic Programming Associates

Input question examples
 question get_country
     Which country do you live in? ;
     input name .
 question number_of_children
     How many children do you have ? ;
     input integer .
 question room_width
     What is the width of the room (in metres)? ;
     input number .
 question child_names
     Please enter your children’s names ;
     input set .
        Logic Programming Associates

User-constrained Input
 In addition to the pre-defined data types, you can
 specify your own validity checks
 question age_of_applicant
    Please enter your age ;
    input X such that integer( X )and X > 18 .
 question ID_of_applicant
    Please enter your ID ;
    input X such that check_valid_ID( ID ).
         Logic Programming Associates

User-defined Questions
• User-defined questions let you design and invoke
  your own dialog screens from within KSL questions
  question weight_of_applicant
    answer is X such that display_all_weights( X ).

  relation all_weights( X )
    if ......
         Logic Programming Associates

Constraints
 A constraint is a validity check which is automatically invoked
 whenever the value for that slot changes
 constraint maximum_contents_of_vessel
     when the contents of Vessel changes to X
     and Vessel is some vessel
     then check that number( X )
     and X =< the Vessel`s capacity
     otherwise write( 'Illegal contents of vessel ' )
     and write( Vessel )
     and write( ' Contents ' )
     and write( X ) and nl .
         Logic Programming Associates

Demons
 A demon is automatically invoked whenever the
 value for that slot changes.
 demon spy_the_contents
     when the contents of any jug changes from X to Y
     then write( 'jug change ... ' )
     and write( Y - X ) and nl .
 demon check_for_melt_down_of_core
     when the temperature changes to T
     and T is above boiling_point
     then remember that danger_level( red )
     and shut_down .
         Logic Programming Associates

Watchdogs
 A watchdog is automatically invoked whenever there is a
 request for the current value (not the default) of that slot.
 watchdog account_security
     when the contents of account is requested
     and outside_office_hours
     then check that the user`s classification is above 99
     otherwise report_illegal_entry .
 watchdog gift_security
     when the surprise of the box is requested
     then check that the date is 'Christmas Day' .
         Logic Programming Associates

Launches
 A launch attached to a frame is automatically invoked
 whenever a new instance of that frame is created
 launch pick_up_new_carrier_bag
    when Bag is a new instance of carrier
    then write( 'I need another carrier bag ' )
    and write( Bag ) and nl .
 launch female_enrolment
    when Person is a new student
    and female( Person )
    then female_enrolment_questions( Person ) .
           Logic Programming Associates

Inheritance
•   left-to-right thru parents, grandparents
•   depth first vs breadth first; limited to N levels
•   specialised inheritance
•   negative inheritance
•   singular vs multiple
Logic Programming Associates




Chimera Agent Toolkit
     Clive Spenser, LPA
        Logic Programming Associates

Defining Characteristics
•   Autonomy
•   Intentionality
•   Reactivity
•   Communications
         Logic Programming Associates

Agent Architectures
• Reactive Agents (Hive Intelligence)
• Deliberative Agents (Knowledge-Based
  Intelligence)
• Hybrid Architectures
• the Beliefs, Desires and Intentions (BDI)
  Architecture
      Logic Programming Associates

Multi-Agent Systems
• Facilitator Agents
• Agent Communication Languages
          Logic Programming Associates

KQML
•   Knowledge Query and Manipulation Language
•   Developed in the mid 90's by DARPA
•   Performatives
•   Outer Layer and Content Language
         Logic Programming Associates

KQML - Example
 (ask-all
     :content "agent_price(Trader,ici,Bid,Ask,Volume).”
     :language prolog
     :ontology stocktrading
     :reply-with forwardreply
     :sender marketmaker0205
     :receiver bourseagent)
         Logic Programming Associates

KQML Examples
 KQML Examples that can be easily built with the
  Agent Toolkit
 Facilitator Agent
 Client Agent
           Logic Programming Associates

The AGES KB in KSL
frame person default age is 50 .
instance steve is a person ; age is 35 .
relation how_old_is(X,Y)
      if X is some person and check X`s age is Y .
relation younger_than(X,Y)
      if X is some person and Y is some person and
      check X`s age is less than Y`s age .
        Logic Programming Associates

Trading Community Example
• Developed using LPA Agent Toolkit
• Trading Agents
• The Stockmarket Agent
Stocky Diagram

								
To top