1 USC INFORMATION SCIENCES INSTITUTE HPKB - COABS TIE Rosetta: Ontology-Based Translation Hans Chalupsky Yolanda Gil Jim Blythe Bob MacGregor Information Sciences Institute University of Southern California {chalupsky, gil, blythe, ISO TIE CoABS/HPKB
2 USC INFORMATION SCIENCES INSTITUTE HPKB - COABS TIE Ontology-Based Translation Problem: For agents to communicate, they need a translator (unless their representation schemas are identical) Translation between representations requires specialized technology (not just wrappers) An overarching, unifying ontology reduces the translation overhead and increases accuracy Approach: Translation server (Rosetta) that contains: –A middle-level ontology (e.g., PLANET plan ontology) –Broad-coverage domain ontology (e.g., SENSUS or CYC’s IBKB) –Message reformulation tools (derived from ontology merging tools) Rosetta translates inter-agent requests and responses Benefits: Low per-agent implementation overhead Enable scaling-up of heterogeneous agent architectures
3 USC INFORMATION SCIENCES INSTITUTE HPKB - COABS TIE Step 1: Agents register ontologies with Rosetta Domain Model Operators PLANET Plan Ontology (HPKB) Agent Capabilities Ontology Agent Model Agent Models Mapping KB Operators Domain Model Rosetta CoABS Grid Agents a1 aN a2 a1 a2 aN M
4 USC INFORMATION SCIENCES INSTITUTE HPKB - COABS TIE Step 2: Setting up for two agents to communicate Agent2 Wrapper Agent1 Wrapper Rosetta KB of representation reformulation rules Requested service by Agent1 Capability of Agent2 Agent1 model Capabilities/ requests Agent2 model Capabilities/ requests
5 USC INFORMATION SCIENCES INSTITUTE HPKB - COABS TIE Using Rosetta with CoABS TIE 1: Syntactic and Knowledge Free Transformations Without Rosetta: message sent: :content (return-route :SizeOfRt 9 :Xcoords ( ) :Ycoords ( )) :sender Moksaf_RPA :receiver teamMoksaf_RPA the teamMoksaf_RPA wrapper reformatted the points as a list of (x,y) pairs the helicopter agents were extended to translate to "x,y,cell" coordinates. With Rosetta: message sent: :content (return-route :SizeOfRt 9 (-x y cell 35198) (...) (...) (...)... )) :sender Rosetta :receiver teamMoksaf_RPA No wrapper code needed Problem: Data formats (vectors of coords vs. XY pairs) Problem: Conversions (lat-long vs. x-y-cell coordinates)
6 USC INFORMATION SCIENCES INSTITUTE HPKB - COABS TIE Using Rosetta with CoABS TIE 1: Ontology-Based Term Transformations Without Rosetta: bridge agent rearranged route points in the order required by the helicopter agents. Types of route points were implicit in this order message sent: :content POINTS point DefaultHBPoint -lat lon point LP_A -lat lon point WP_A -lat lon point DP_A -lat lon point LZ_A -lat lon point RP_A -lat lon point DASP_B -lat lon point DASP_A -lat lon :receiver teamquickset :sender oaa-kqml-bridge With Rosetta: Bridge agent does not need to order points. Types of route points explicit in message message sent: :content POINTS linkup-point LP_A -lat lon detach-point DP_A -lat lon landing-zone LZ_A -lat lon MAIN detach-at-sea-pt DASP_B -lat lon ALTERNATIVE detach-at-sea-pt DASP_A -lat lon way-point WP_A -lat lon rally-point RP_A -lat lon home-base-point DefaultHBPoint -lat lon 0.00 :sender oaa-kqml-bridge :receiver Rosetta Problem: Input/output requirements need to be addressed (e.g., order and semantics of route points for helicopter agents)
7 USC INFORMATION SCIENCES INSTITUTE HPKB - COABS TIE Using Rosetta with CoABS TIE 1: Ontology-Based Transformations Without Rosetta: helicopter wrappers had to turn route segments into areas and issue query in SQL message sent: :content select distinct s.LAT, s.LON from SAMSITE s where s.LAT and s.LON :receiver ARIADNE_TEAMCORE :sender TEAMARIADNE With Rosetta: helicopter wrappers form request using route segments message sent: :content find SAMSITES from DP_A to LZ_A :sender TEAMARIADNE :receiver Rosetta Problem: Diverse views and languages (e.g., helicopters had segments, SAMSITE finder queried with SQL about regions)
8 USC INFORMATION SCIENCES INSTITUTE HPKB - COABS TIE OntoMorph Rewrite Rules within Rosetta (DEFREWRITE translate-find-sites-to-SQL {(find-sites :table ?table :route (sequence :elements (?pointA ?pointB))) (?minlat ?maxlat ?minlong ?maxlong)} ==> (select distinct s.LAT, s.LON from ?table s where s.LAT ' ?minlat and s.LON ' ?minlong) …) (DEFREWRITE translate-route-segment-region {?pointA ?pointB (?? :coords (latlong :lat ?latA :long ?longA) ??) (?? :coords (latlong :lat ?latB :long ?longB) ??)} ==> ( )) Match intermediate representation Rule invocation Result destructuring Retrieve point coordinates from domain/discourse KB Anonymous sequence variable