Download presentation
Presentation is loading. Please wait.
Published byGarey Bruce Modified over 9 years ago
1
1 Cougaar FrameSet Overview March 2, 2007 Rich Shapiro, John Zinky
2
2 FrameSet Knowledge Representation Host Process Object Class Java Objects are code generated –Frames and relationships defined using XML –Support multiple Java interfaces Cougaar Blackboard, JESS Shadow Facts, Java Beans Applet viewer Slot inference (Real-time) –Type (is-a) –Containment (has-a) –Visitor Pattern (composed-of) –Aggregation (summary-of) Relationships are also Frames –Benefits from Frame inheritance Meta-data tags –Defined at compile-time Slots, frames, framesets –Example Slot meta-data Type, default-value, units, path, doc, member, warn, immutable, notify-blackboard, notify-listeners, transient Thing Equip Appl Frame name value Relationship parent-name value child-name value Containment inheritance Type inheritance
3
3 Runtime (Frame Sets) Build indexes to resolve relationship Queries and iterators over frames Change Callbacks Slot Inference (type, containment, visitor, aggregation) –Recalculation regulated by meta data –Recalculation bundled to handle massive changes Hooks into infrastructure (Cougaar, Jess, Beans, GUI) –Persistence –Relays –Subscriptions Extended reflective interface on FrameSets, Frames, and Slots FrameSet Spec (XML) FrameSet Instances (XML) Indexes Frames Blackboard Clients Jess Clients Read/Write Create/Delete Beans Clients
4
4 Real Time Inference Prototype (on frame) –Use Java Class system –No Dynamic default slot inheritance (future?) Containment (on frame) –Detects add, delete, change of slot value –Calculated by Property change Visitor (on slot) –Follows a path of relationships to a slot –Update Plugin detects changes to relationships and slots along path Aggregation (on slot) –Follows relationships to children –Update Plugin detects changes slots and add/delete of relationships –Aggregate calculated by user-defined Java function.
5
5 Framesets Code Generator Cougaar Black Board Prototype Spec.xml Prototype Spec.xml Code Gen Instance Spec.xml Instance Spec.xml Prototype Spec.dtd Prototype Spec.uml Jess Rule Engine Table GUI OpenMap GUI Applet GUI Prototype Java Classes Java Applet Structs FrameSet Loader RDF to FrameSet ArgoUml Inter-agent Coordination Jess DefClass Metrics Service
6
6 Cougaar Plugins Add/Modify/Delete Frames Blackboard SASSI Optimizer SASSI Optimizer FrameSet Situation Policies Status Sensor Optimizer Wrapper GUI Engine Situation Inference Rules Jess Engine Control Actuator Managed System GUI Display
7
7 Frames Displayed via Swing GUI Table View X-Y Graphs Pie Chart GIS Map
8
8 BlackboardBrowser Browser Based Java Applet Code Generator creates light-weight projections of Frames –Struct objects are loaded into client-side java program running in a user’s browser –Struct objects are kept in sync with server-side FrameSet –The applet-runtime libraries are purged of dependencies on other jars. Code Generator could use the same architecture to support AJAX –(e.g. Goggle map) FrameSet Indexes Frames Prototype Spec.xml Prototype Spec.xml Code Gen Applet Struct Update Plugin Display Code Filter view Change records HTTP
9
9 JESS Rule Engine Processes Frames Partitioned Blackboard LHS Patterns Real-Time Knowledge Feeds RHS Trigger Assert Retract Domain Processing Domain Routines Domain Objects Code Libraries Agent Domain Processing Coordination with External Systems Coordination with Physical Environment Coordination with Peer Agents Blackboard Partitions managed by Coordination Artifacts Agents Concentrate on domain processing Procedural codeJess Rule code
10
10 FrameSet Definitions Displayed as UML FrameSet code generator outputs a subset of the UML exchange file ArgoUML can input and display the FrameSet definition graphically Useful for debugging and maybe documentation.
11
11 FrameSet Servlet can inspect Frames Cougaar blackboard holds all the frames. Queries can be based on frame kind and slot values Frames slot values can be modified. Metric values have both a value and a confidence.
12
12 Relationships are also frames Relationships can change dynamically. Slot inheritance is recalculated, when relationships change. One changing in a relationship can change multiple slot values (through inheritance) Relationship frames are easy to transmit,
13
13 Demo Monitors the Cougaar Society Itself A model of the Cougaar society is created in a FrameSet. The status values are updated in realtime using the Cougaar Metrics service Frame Debug GUI shows view of society model. TopologyDemo Agents: Monitor agent containing a FrameSet on its Cougaar blackboard Source1 and Sink1 agents ping each other as fast as they can NODE1 and NODE2 are control agents for Java process NameServer agent supplies naming for the society
14
14 FrameSet Debug GUI can Inspect Frames Brown slots are inherited from the container. White slots are inherited from the frame’s prototype (IsA relationship) Containment hierarchy is on the left column Type hierarchy is in the middle column
15
15 FrameSet GUI can Inspect Prototypes Yellow Slot show the slots defined by this prototype. Default values are defined, which can be over written by the prototype’s children
16
16 Focus on Knowledge Sharing Among Agents Extensions to Cougaar Agent Infrastructure –Frame Sets to store knowledge –Coordination Artifacts to transfer knowledge –Forward-Chaining Rules detect patterns in knowledge Benefits –Exploits meta-data to help: Generate efficient Java Classes Change notification integrated into Blackboard, Jess, Java Beans, QoS-adaptive Transfer and Translation Run time debugging via servlet and GUIs –Separation of Agent Domain processing from Coordination –Range of tradeoffs for Access Time vs Storage Space Knowledge Rep A Knowledge Rep B Tracking Translation Transfer “Model”“View”
17
17 QoS-Adaptive Translation Changes the Translation Mechanics to Match the Situation Host Process Object Method Class Method capacity Latency= Load / Capacity Load Object Latency QoS-Adaptive Translation Deltas Change Reconstruction Translation Should take into account –Structure of starting and ending data structures –Probability and frequency that structures will change –The constraints of the transfer path Change Detection Transfer Constraints
18
18 Example: Not One Transfer Algorithm Where should the division be done? –What if, Load is fixed and Capacity changes –What if, the Load changes and Capacity is fixed –What if, Capacity is really multiple parameters with different change rates –What if, network connection slow –What if, destination or source computer is slow Latency= Load / Capacity
19
19 Frame: F1 P Relationship: Frame F1 P Relationship: F1 Frame F1 Relationships Vs Slot Value Relationships are bi-directional Binding attribute, name, id, ref Relationship binding cache is stored in the FrameSet not the Frame Frame F2 C Relationship: Frame F2 C Relationship:F2 Frame F2 Join Relationship: R1 Parent: F2 Child: F1 Pointers
20
20 Slot Domain Meta Data Default Value Units Type Doc Future –Value constraints –Formulas (like aggregation, but with multiple dependant slots, value relative) Like QuO RSS
21
21 Slot Systemic Metadata Immutable Member Warn notify-blackboard notify-listeners inheritable-through –all –prototype-only transient
22
22 FrameSet Indexing Frame ID –Hash table Relationship –Frames relationships –Parent and Child frames
23
23 Example: Frame Specification <slot name="color" type="java.awt.Color" default-value="java.awt.Color.BLUE" inheritable-through="prototype-only"> <aggregate-by relation="processCapacityRepresents" aggregator="ColorFromStatus" related-slot="status"/> <relation-prototype name="linkSource" prototype="relationship" parent-prototype="process" child-prototype="link"> <relation-prototype name="processAtLocation" prototype="contains" parent-prototype="location" child-prototype="process"> Containment Inheritance Containment Inheritance Type Inheritance Type Inheritance Visitor Accessor Visitor Accessor Aggregator Accessor Aggregator Accessor Relationship Visitor Specification Visitor Specification
24
24 Example: XML Instance Specification Process analyzer1 Process sensor1 Location greenwich Location paris Link analyzer1-sensor1 Process At Location Link Source Link Destination
25
25 Realtime Knowledge Sharing Automation Architecture System Resource Constraints FrameSet Indexes Instances Sensor Instances/ Changes Coordination Artifact Application Change Notification FrameSet Indexes Instances Knowledge Representation Schema Code Generator Translation Rules Knowledge Representation Schema Code Generator Design Data Structure Translation Specify Semantic Translation Semantic Mapping Sensor Data Structure Mapping Application Data Structure Mapping Application Ontology Sensor Ontology Expected Usage Patterns Design Knowledge Rep Design Knowledge Rep Expected Usage Patterns
26
26 When To Use FrameSets Real time models of physical world –Containment first class –Change notification Several kinds (but not yet “adaptable”) Inference Engine (Jess) –Expand raw input –Translation between Knowledge Representations Built in Views –GUIs (applets, openmap) –External Tools (Beans, Jess) Data Structures for OWL Graphs (FUTURE) –Input Translation –Output Translation
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.