Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

The API-Application Semantic Gap

2,604 views

Published on

Lightning Talk @ RestFest 2015 on Rest APIs and Application Semantics

Published in: Internet
  • Hi there! Get Your Professional Job-Winning Resume Here - Check our website! http://bit.ly/resumpro
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

The API-Application Semantic Gap

  1. 1. The  API-­‐Applica.on   Seman.cs  Gap   Steven  Willmo,           3scale  Inc   @3scale  -­‐  h,p://www.3scale.net  
  2. 2. On  Demand  API  Infrastructure:     h,p://3scale.net  h,p://www.apitools.com   h,p://apistrat.com     @3scale  me:  @njyx  on  twi,er   Powering  650  APIs   Billions  API  Calls  /  Month  
  3. 3. REST  and  SemanOcs   •  More  Shared   SemanOcs   •  More  ConvenOon   v’s  ConfiguraOon   •  More  Flexible   Clients   Key:  Explicit,  Shared,  Re-­‐usable  SemanOcs   (Image:  MarOn  Fowler  /  Richardson  Model)  
  4. 4.  But  What  Type  of  SemanOcs   ApplicaOon  SemanOcs  =  Chocolate   REST-­‐1-­‐2-­‐3   HTTP   TCP/IP   Domain   Objects   AcOons   ObligaOons   Rights…  
  5. 5. Implicit  v’s  Explicit  ApplicaOon   SemanOcs   Server   Client   API  DefiniOon   Data  Models  /  Ontology   AcOon  DefiniOons   (Mental)  State  
  6. 6. Today’s  REST  APIs   Profile   Message:     Object   Encoding   HTTP  Post   Vocabulary   Human     Readable   Docs   •  Implicit  and  Explicit   SemanOcs   •  Some  is  Machine   Readable   •  Message  Bodies  are   limited   •  HTTP  Verbs  touch   ApplicaOon  SemanOcs  
  7. 7. So…  
  8. 8. “Agent”   There  are  Models:  e.g.  FIPA  Agent   CommunicaOon  Model   (Speech Act: Inform :sender :receiver :content “(equal A B)” :language :ontology)   (Protocol:  Info-­‐Exchange…   (Context:      -­‐  Ontologies    -­‐  Protocols    -­‐  Logical  Frameworks    -­‐  Rights,  Roles,  IdenOOes…   h,p://fipa.org/repository/index.html   A  lot  more  is   possible:   •  Ontologies   •  PerformaOves   •  Protocols   •  Content  Logics:   DL,  FOL,  Temporal,   Constraint   •  Mental  Models   •  P2P  v’s  Client/ Server    
  9. 9. Full  Stack  ApplicaOon  SemanOcs   Level   Example   Context   Ontology,   IdenOty,     Protocol   Request   Protocol   Actude   Request,   Agree,  Cancel,   Reject,  Inform,   …   AcOon   “(Donald  eats   apple)”   Objects   “Apple”,   “Person”   A  lot  more  is  possible:   •  Ontologies   •  PerformaOves   •  Protocols   •  Content  Logics:  DL,   FOL,  Temporal,   Constraint  Logic   •  Mental  Models   •  P2P  v’s  Client/Server    
  10. 10. Progress  From  Mike’s  Talk…   •  Pass  Messages,  Not  Objects   –  J  …  although  is  REST  pure  message  passing?   •  Share  Vocabularies,  Not  Models   –  Share  (External)  Vocabularies,  Not  (internal)  Models   •  Use  Profiles   –  J  …  add  more  to  them   •  (from  James’)  AcOvity  Streams  Ontology   –  J  …  helps  define  context   •  =>  on  the  right  path  
  11. 11. Two  Paths  to  Progress   •  More  Formats,  More  Reasoning     Shared  Explicit  SemanOcs  FTW!   apicommons.org   Experimental  Work…   Reasoning     Clients   •  More  Share  formats    
  12. 12. References   •  References:   – h,p://fipa.org/repository/index.html   – h,p://www.swagger.io   – h,p://alps.io     •  Images:   – Dancing  with  Happiness  –  Yarn   – Nestle  –  KitKat  
  13. 13. steve@3scale.net   @njyx,  @3scale     We  make  awesome  API  management  tools:   h,p://www.3scale.net/    

×