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.
Semantic AtomPub-based Services                           Markus Lanthaler© Matt Reinbold                           Graz U...
Web services are increasingly popular
Twitter      Facebook     Google15 billion    5 billion   5 billion per day      per day     per day
76% of the APIs are RESTful            [ProgrammableWeb, May 2010]
but
© Nesster
Two Options
Two Options
Exchange of semantically annotateddata through a well-defined interface
SAPS’ Semantic Layer SAWSDL          JSON Schema+          …XML Schema           JSON              …  Atom             Ato...
pay orderquery products                 Restbucks
<?xml version="1.0" encoding=utf-8?><service xmlns="http://www.w3.org/2007/app"        xmlns:atom="http://www.w3.org/2005/...
<collection href="/orders" >  <atom:title>Orders</atom:title>  <accept saps:schema="/schemas/purchase-order.xsd">    appli...
<collection href="/products" >  <atom:title>Products</atom:title>  <accept />  <categories fixed="yes">    <atom:category ...
<?xml version="1.0" encoding="UTF-8"?><OpenSearchDescription     xmlns="http://a9.com/-/spec/opensearch/1.1/">  <ShortName...
<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom">  <title type="text">Search for EAN 230000...
<content type="application/xml">  <product xmlns="http://example.com/products"      xmlns:xsi="http://www.w3.org/2001/XMLS...
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"    xmlns:sawsdl="http://www.w3.org/ns/sawsdl">  <xsd:element name...
<collection href="/orders" >  <atom:title>Orders</atom:title>  <accept saps:schema="/schemas/purchase-order.xsd">    appli...
strong emphasis on simplicity                      discovery and composition
Thank You© 2011, Markus Lanthaler. Some Rights Reserved.http://creativecommons.org/licenses/by-nc-sa/3.0/
Questions?Markus LanthalerMarkus.Lanthaler@student.TUGraz.at
Image Credits(1) http://www.flickr.com/photos/furryscalyman/3695730985/(3) Adapted from “Two Billion is Cool,” M. Thomson....
SAPS - Semantic AtomPub-based Services
SAPS - Semantic AtomPub-based Services
Upcoming SlideShare
Loading in …5
×

SAPS - Semantic AtomPub-based Services

Presentation of SAPS at the 1st International Workshop on the Information-Centric Web (IC-Web 2011) at the 11th IEEE/IPSJ International Symposium on Applications and the Internet (SAINT 2011) in Munich, Germany

  • Be the first to comment

SAPS - Semantic AtomPub-based Services

  1. 1. Semantic AtomPub-based Services Markus Lanthaler© Matt Reinbold Graz University of Technology
  2. 2. Web services are increasingly popular
  3. 3. Twitter Facebook Google15 billion 5 billion 5 billion per day per day per day
  4. 4. 76% of the APIs are RESTful [ProgrammableWeb, May 2010]
  5. 5. but
  6. 6. © Nesster
  7. 7. Two Options
  8. 8. Two Options
  9. 9. Exchange of semantically annotateddata through a well-defined interface
  10. 10. SAPS’ Semantic Layer SAWSDL JSON Schema+ …XML Schema JSON … Atom AtomPub OpenSearch HTTP(S) TCP/IP
  11. 11. pay orderquery products Restbucks
  12. 12. <?xml version="1.0" encoding=utf-8?><service xmlns="http://www.w3.org/2007/app" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:saps="http://www.purl.org/saps"> <workspace> <atom:title>Coffee Shop Service</atom:title> <collection href="/products" > <atom:title>Products</atom:title> [...] </collection> <collection href="/orders" > <atom:title>Orders</atom:title> [...] </collection> </workspace></service>
  13. 13. <collection href="/orders" > <atom:title>Orders</atom:title> <accept saps:schema="/schemas/purchase-order.xsd"> application/xml </accept> <categories fixed="yes"> <atom:category scheme= "http://www.purl.org/net/ontology/order.owl#" term="http://www.purl.org/net/ontology/ order.owl#PurchaseOrder" label="Orders" /> </categories></collection>
  14. 14. <collection href="/products" > <atom:title>Products</atom:title> <accept /> <categories fixed="yes"> <atom:category scheme="http://purl.org/goodrelations/v1#" term="http://purl.org/goodrelations/v1#Offering" label="Products" /> </categories> <atom:link rel="search" type="application/opensearchdescription+xml" href="http://api.example.com/productsearch.xml"/></collection>
  15. 15. <?xml version="1.0" encoding="UTF-8"?><OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/"> <ShortName>Product Search</ShortName> <Description>Search for products</Description> <Url xmlns:gr="http://purl.org/goodrelations/v1#" type="application/atom+xml;type=feed" template="http://api.example.com/?q= {searchTerms?}&amp;ean={gr:hasEAN_UCC-13?}" /></OpenSearchDescription>GET /?q=&ean=2300000010015 HTTP/1.1Host: api.example.com
  16. 16. <?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"> <title type="text">Search for EAN 2300000010015</title> [...] <entry> <title>Cappuccino</title> <summary>A hot cappuccino for 1.99 EUR</summary> <id>tag:example.org,2003:3.2397</id> <updated>2009-07-31T12:29:29Z</updated> <published>2008-12-13T08:29:29-04:00</published> <content type="application/xml"> [...] </content> </entry></feed>
  17. 17. <content type="application/xml"> <product xmlns="http://example.com/products" xmlns:xsi="http://www.w3.org/2001/XMLSchema- instance" xsi:schemaLocation="http://example.com/products http://example.com/products.xsd"> <id>http://api.example.org/products/P4197</id> <label>Cappuccino</label> <ean>2300000010015</ean> <sku>P4197</sku> <price>1.99</price> <description>...</description> </product></content>
  18. 18. <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sawsdl="http://www.w3.org/ns/sawsdl"> <xsd:element name="product" type="ProductType" sawsdl:modelReference="http://purl.org/goodrelations/ v1#Offering" /> <xsd:complexType name="ProductType"> <xsd:sequence> <xsd:sequence> <xsd:element name="id" type="xsd:anyURI" /> <xsd:element name="label" type="xsd:string" sawsdl:modelReference="http://www.w3.org/2000/ 01/rdf-schema#label" /> <xsd:element name="ean" type="xsd:string" sawsdl:modelReference="http://purl.org/ goodrelations/v1#hasEAN_UCC-13" /> <xsd:element name="sku" type="xsd:string" sawsdl:modelReference=" http://purl.org/ goodrelations/v1#hasStockKeepingUnit http://www.purl.org/net/ ontology/order.owl#PartNumber" /> <xsd:element name="price" type="xsd:decimal" sawsdl:modelReference="http://purl.org/ goodrelations/v1#hasCurrencyValue" /> <xsd:element name="description" type="xsd:string"
  19. 19. <collection href="/orders" > <atom:title>Orders</atom:title> <accept saps:schema="/schemas/purchase-order.xsd"> application/xml </accept> [...]</collection>POST /orders HTTP/1.1Host: api.example.comContent-Type: application/xml<order xmlns="http://example.com/orders [...]</order> <link rel="next http://example.com/ontology/payment" href="/order/1684/payment" type="application/xml" saps:schema="/schemas/payment.xsd" title="Payment" />
  20. 20. strong emphasis on simplicity discovery and composition
  21. 21. Thank You© 2011, Markus Lanthaler. Some Rights Reserved.http://creativecommons.org/licenses/by-nc-sa/3.0/
  22. 22. Questions?Markus LanthalerMarkus.Lanthaler@student.TUGraz.at
  23. 23. Image Credits(1) http://www.flickr.com/photos/furryscalyman/3695730985/(3) Adapted from “Two Billion is Cool,” M. Thomson. Available: http://corp.klout.com/blog/2011/07/two-billion-is-cool/(6) http://www.flickr.com/photos/nesster/3168425434/

×