JPF Probabilistic Frames Masami Takikawa Information Extraction & Transport [email protected] February 4, 2003 JPF 1 JPF Overview Object-oriented Knowledge Representation Language for Probabilistic Inference Practical and Commercially Available Used mostly for military R&D Object-classification, tracking, sensor fusion, situation assessment, decision making, etc. Targets real-time inference with largescale models (at least hundreds of nodes) Layered Architecture ICE: GUI IDE & wizard for specific modeling task Assessment Engine: application framework Provides data-driven construction mechanism JPF: OO modeling language Provides frame-based abstraction JSPIScript: OO scripting language Provides easy instantiation/access/query JSPI: BN inference engine Provides efficient exact/approximate computation Process frames ICE JPF BN Assessment Engine Prob & Decision JSPI C++ code OO modeling Instantiation and Connection Observation, Query, and Decision making JSPIScript Compiling February 4, 2003 JPF 4 JPF Language Based on AI frame language (Precursor to OOPL) Frame: class with multiple inheritance Slot: instance variable Facet: variable type FrameInstance: instance February 4, 2003 JPF 5 Example: Electrical Circuits frame Circuit slot output facet domain = [0,1] facet distribution = [.5, .5] end; Circuit output Each slot specifies a BN node. February 4, 2003 JPF 6 Inverter Frame Inverter frame Inverter isa Circuit Input Circuit slot input facet domain = Circuit output state slot state facet domain = [OK, Stuck0] facet distribution = [.9, .1] slot output facet domain = [0,1] output facet parents = [input.output,state] facet distribution = function input,state { if state==OK then 1-input else 0 end } end; February 4, 2003 JPF 7 Two Inverter Instances inp1 = Circuit->makeInstance("inp1"); inv1 = Inverter->makeInstance("inv1"); inv1->input = inp1; inv2 = Inverter->makeInstance("inv2"); inv2->input = inv1; Frame->makeInstance(“name”) will create a new instance. frameInstance->slot = X will connect frame instances. February 4, 2003 JPF 8 Two Inverter BN Inverter 1 Input Circuit output Inverter 2 state state output output Prediction: P(inv2.output | inp.output) Diagnosis: P(inv1.state | inp.output, inv1.output) Decoding: P(inp.output | inv2.output) February 4, 2003 JPF 9 Sensor Frame – Assoc Hyp frame Sensor slot whichCircuit facet domain = Circuit facet distribution = UniformDiscreteDistribution slot observation facet domain = [0,1] facet parents = [whichCircuit.output] facet distribution = function output { if output==0 then [0.9, 0.1] else [0.2, 0.8] end } end; February 4, 2003 JPF 10 Two Sensor Instances s1 = Sensor->makeInstance(); s1->whichCircuit->addValueToDomain(inp1); s1->observation->observe(0); s2 = Sensor->makeInstance(); s2->whichCircuit->addValueToDomain(inv1); s2->whichCircuit->addValueToDomain(inv2); s2->observation->observe(0); February 4, 2003 JPF 11 Two Sensor BN Inverter 1 Inverter 2 Input Circuit output Which inverter is sensor2 connected to? state output output Sensor 1 Which [inp1] February 4, 2003 state Sensor 2 Which [inv1,inv2] Obs=0 JPF Obs=0 12 Other Topics Subtype Hypotheses Existence Hypotheses Efficient Rep/Comp of Assoc Hyp Efficient Rep/Comp of Aggregation (e.g.,MAX) Partially Dynamic BN (Markov Processes) Decision and Utility Inference (Exact/Approximation) Query Compiler & Real-time Computing Modeling Methodologies (How to debug?) Modeling Idioms (Roles, Sets, Relations, etc.) Dynamic Data-driven Construction February 4, 2003 JPF 13
© Copyright 2026 Paperzz