View stunning SlideShares in full-screen with the new iOS app!Introducing SlideShare for AndroidExplore all your favorite topics in the SlideShare appGet the SlideShare app to Save for Later — even offline
View stunning SlideShares in full-screen with the new Android app!View stunning SlideShares in full-screen with the new iOS app!
A Open Geo-Social REST API For The WebLessons Learned From the EO-1 Spacecraft, 12 Years Later... Jan 1, 2013Building the Next Generation Of Web Services Using Story-Telling.The Way For Users To Get Information From The Programmable Web...Or Could We Say? Stories 1
Programmable Web Problem # api’s http://www.programmableweb.com/ This Is Becoming an Enormous Issue for Our Neo-Geographers Too Complex... Too Much Coding...Too Little Time...
Our Geo-API Reality, Today! Get Floodmap... Disaster Floods - Port-Au-Prince, Haiti Get Flood Forecast... 60+ standards at diﬀerent version levels 3+ binding types 400+ Organizations 3
Before EO-1 EO-1 (Launched on Nov 21, 2000)• Upload Individual Command • Upload A Goal Sequences • Execute the Goal• Execute Command List Manual, Complex, Time- • Satellite Generates Its Own Consuming, Expensive Command Sequences Based on Current Resource Availability and Context • Now We Can Say: Image Port- Au-Prince, Haiti... and we get it. Port-au-Prince, Haiti 4
EO-1 Wideband Advanced Recorder/Processor vs IPhone 5 Mongoose 5 Processor 32 bit, 12 MHz 6 GB Storage 3 GB Memory 23 kg A6 Chip 32 bit, 1.3 GHz 64 GB Storage 1 GB Memory 112 g, $400 We Have Made Some Progress Since 2001... 5
Programming The [Geo-]Web Today...• If You Want A FloodMap... • Interface to EO-1 Sensor Planning Service... Get Feasibilities, Submit Task • Interface to EO-1 Web Coverage Processing Service... Process FloodMap Algorithm... Pan-sharpening Algorithm... • Interface to EO-1 Sensor Alert Service... Get Notiﬁcation • Interface to EO-1 Sensor Observation Service... Get Data• Repeat for Radarsat-2, MODIS (if you ﬁnd them)... Use Catalog Service...• And These Services May Have Diﬀerent Bindings... REST/RPC, SOAP, GeoServices or REST...• Services May Have Particularities (To Task Radarsat-2, you may need to specify beam mode, polarization... What is that?) Manual, Complex, Time-Consuming, Expensive... Does Not Scale Up For Our Disaster Community. 6
How Can We ReduceComplexity And ImproveAccess To Information? Discovery, Harmonization & Interoperability Issues [OGC REST Standard Working Group] 7
Standard User Media Types Maps and Stories Recipes 144 ch.Users Like Simple Directions and Stories. 8
Donald Norman: Designing For People “Designers have to produce things that tame complexity.” http://www.jnd.orgStages of Execution:- • Start at the top with the goal, the state that is to be achieved. • The goal is translated into an intention to do some action. • The intention must be translated into a set of internal commands, an action sequence that can be performed to satisfy the intention. • The action sequence is still a mutual even: nothing happens until it is executed, performed upon the world. The Design of Everyday Things. New York. 1986 9
Encoding Behavior... Hierarchical Finite State MachinesMany Options... intuitive reactive HFSM Existing Game Technology Behavior Trees Hierarchical Task Network Planners Scripting Workﬂows C++ Planners LUA autonomous integrated purposefule ﬂexible Alex Champandard http://aigamedev.com/open/articles/behavior-trees-part1/ http://aigamedev.com/open/articles/behavior-trees-part2/ 13 http://aigamedev.com/open/articles/behavior-trees-part3/
A Simple Pattern A Behavior TreeTo Model Behavior Start From Goal At The Top Goal G do in parallel Goal G: Do Task1 Do All 1! Only One if condition1 -> A1 1+ Then A2 Next Branch, Do Task2 Task1 A2 ✔ Task2 A4 if condition2 then A3 done!. Cond1 A1 Cond2 A3 ✔ ✔ Go Down The - Execution Strategy Options: Parallel, Sequential or Select First Successful Branch Or Try Next BranchTree Until Action - Objects: Goal And Execute Tasks, Actions 14 Filters (conditions)
ExampleMODIS Behavior Tree for FloodMap Goal Floodmap Activities Tile Avail? Get Product SOS Only 1 Test, 1 Activity 1 OGC Service Sensor Observation Service (SOS) 21
ExampleRADARSAT-2 Behavior Tree for FloodMap Floodmap SPS Task Asset Process Data GET Product SOS WPS GET FEASIBILITIES SUBMIT TASK More Complex Might Need To Task Satellite 3 OGC Services Sensor Planning Service (SPS) Web Processing Service (WPS) Sensor Observation Service (SOS) Optional Sensor Alert Service (SAS)... 22
ExampleEO-1 Behavior Tree for FloodMap Floodmap SPS Task Asset PROCESS FLOODMAP Get Product SOS ALGORITHM WCPS GET SUBMIT FEASIBILITIES TASK Then Need to Apply Special Algorithm... 3 OGC Services Sensor Planning Service Web Coverage Processing Service 23 Sensor Observation Service
Local User Tree For Floodmap (After Query) Goal Floodmap Three Behavior (sub)Trees To Execute in Parallel (or Sequentially...) Behavior Trees MODIS EO-1 RADARSAT2 Retrieved Dynamically .. .. .. ..Client User Activities Web ServicesServer 24
Discovery Via Social Networks Mimick Share, Like, Comment, Collaborate... Resources Activity Activity Behavior Activity Activity Activity Stream 25
Discovery Via Distributed Query Geo-Portals / Federated Catalog Lookups / Super Aggregators Query Client Publish Feed Server Behaviors Behaviors Behaviors 26
NEWAgile Development Process + Implementation• Focus On User Stories (Goals)• Then Develop Scenarios (Behaviors)• Then Implement Service The Same Way Publish Goals/Activities/Behaviors And Generate Activity Streams 27 Same inside as outside!
User CentricValue Proposition• Use Story Telling To Convey Information to Access/Share The Information• Deﬁne User Activities To Interface To Actual Services• Deﬁne Behaviors To Achieve User Goals By Sequencing Activities• Web Services Publish Behaviors On Request Based On User Goals• Users Execute Behaviors To Meet Goals and Retrieve Products• Friends Discover Information/Capabilities On Social Networks Via Stories (Activity Stream, Facebook, Twitter) User Cares About Stories, Goals, Activities, Behaviors... Not Services or Data 28
Floods - Port-Au-Prince, Haiti Get Floodmap NextGEN GeoSocial API User Goal Driven Behavior Tree Realm Activity Layer Information/Goal G1 B2 G1 Independent of Realm Service Implementation A1 A2 A3 Activity Behaviors Orchestration B1 B2 B3 Realm S1 S2 S3 Activities A1 A2 A3 Service Realm ImplementationClient Tomorrows API GeoSocial API REST/RPC SOAP GeoServices Todays API GeoSpatial APIServer Services S1 S2 S3 With Some Service OGC Service Orchestration Standards Realm D1 D2 D3 Data Realm 29