Successfully reported this slideshow.
Your SlideShare is downloading. ×

SAPS - Semantic AtomPub-based Services

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Upcoming SlideShare
Ajax
Ajax
Loading in …3
×

Check these out next

1 of 25 Ad

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

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

Advertisement
Advertisement

More Related Content

Viewers also liked (20)

Advertisement

Similar to SAPS - Semantic AtomPub-based Services (20)

More from Markus Lanthaler (14)

Advertisement

Recently uploaded (20)

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 Google 15 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 annotated data 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 order query 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.1 Host: 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.1 Host: api.example.com Content-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 Lanthaler Markus.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/

×