Statistical Analysis for Lawyers or Paralegals
Description
Statistical Analysis for Lawyers or Paralegals document sample
Document Sample


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
Related docs
Get documents about "