80 likes | 181 Views
Rosetta: Ontology-Based Translation. ISO TIE CoABS/HPKB. Hans Chalupsky Yolanda Gil Jim Blythe Bob MacGregor Information Sciences Institute University of Southern California {chalupsky, gil, blythe, macgregor}@isi.edu http://www.isi.edu/expect/projects/agents/rosetta.
E N D
Rosetta:Ontology-Based Translation ISO TIE CoABS/HPKB Hans Chalupsky Yolanda Gil Jim Blythe Bob MacGregor Information Sciences Institute University of Southern California {chalupsky, gil, blythe, macgregor}@isi.edu http://www.isi.edu/expect/projects/agents/rosetta
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
M Step 1:Agents register ontologies with Rosetta Rosetta PLANET Plan Ontology (HPKB) aN a2 Agents Agent Capabilities Ontology aN a1 CoABS Grid Operators Domain Model Operators Domain Model Mapping KB a1 a2 Agent Model Agent Models
Capabilities/ requests Step 2:Setting up for two agents to communicate Agent2 model Agent1 model Capabilities/ requests KB of representation reformulation rules Requested service by Agent1 Capability of Agent2 Rosetta Wrapper Wrapper Agent1 Agent2
Without Rosetta: message sent: :content (return-route :SizeOfRt 9 :Xcoords ( 47.987 47.984 47.983 47.979 47.965 47.946 47.945 47.933 47.932 ) :Ycoords ( 29.321 29.324 29.324 29.328 29.328 29.347 29.347 29.359 29.359 )) :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 20374 -y 56533 -cell 35198) (...) (...) (...) ... )) :sender Rosetta :receiver teamMoksaf_RPA No wrapper code needed Using Rosetta with CoABS TIE 1:Syntactic and Knowledge Free Transformations Problem: Data formats (vectors of coords vs. XY pairs) Problem: Conversions (lat-long vs. x-y-cell coordinates)
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 0.000000 -lon 0.000000 point LP_A -lat 29.384322 -lon 48.039903 point WP_A -lat 29.354845 -lon 47.999734 point DP_A -lat 29.333773 -lon 47.997891 point LZ_A -lat 29.329179 -lon 47.995596 point RP_A -lat 29.321262 -lon 47.987511 point DASP_B -lat 29.358754 -lon 47.931455 point DASP_A -lat 29.237487 -lon 47.982873 :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 29.384322 -lon 48.039903 detach-point DP_A -lat 29.333773 -lon 47.997891 landing-zone LZ_A -lat 29.329179 -lon 47.995596 MAIN detach-at-sea-pt DASP_B -lat 29.358754 -lon 47.931455 ALTERNATIVE detach-at-sea-pt DASP_A -lat 29.237487 -lon 47.982873 way-point WP_A -lat 29.354845 -lon 47.999734 rally-point RP_A -lat 29.321262 -lon 47.987511 home-base-point DefaultHBPoint -lat 0.00 -lon 0.00 :sender oaa-kqml-bridge :receiver Rosetta Using Rosetta with CoABS TIE 1:Ontology-Based Term Transformations Problem: Input/output requirements need to be addressed (e.g., order and semantics of route points for helicopter agents)
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< 29.3843 and s.LAT> 29.355 and s.LON< 48.0399 and s.LON> 48.011 :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 Using Rosetta with CoABS TIE 1:Ontology-Based Transformations Problem: Diverse views and languages (e.g., helicopters had segments, SAMSITE finder queried with SQL about regions)
OntoMorph Rewrite Rules within Rosetta (DEFREWRITE translate-find-sites-to-SQL{(find-sites :table ?table :route (sequence :elements (?pointA ?pointB))) <translate-route-segment-region ?pointA ?pointB> (?minlat ?maxlat ?minlong ?maxlong)}==> (select distinct s.LAT, s.LON from ?table s where s.LAT '< ?maxlat and s.lat '> ?minlat and s.LON '< ?maxlong and s.LON '> ?minlong) …) (DEFREWRITE translate-route-segment-region{?pointA ?pointB <lookup-domain-point ?pointA> (?? :coords (latlong :lat ?latA :long ?longA) ??) <lookup-domain-point ?pointB> (?? :coords (latlong :lat ?latB :long ?longB) ??)}==> (<min ?latA ?latB> <max ?latA ?latB><min ?longA ?longB> <max ?longA ?longB>)) Match intermediate representation Rule invocation Result destructuring Retrieve point coordinates from domain/discourse KB Anonymoussequence variable