1. Leigh Dodds @ldodds http://kasabi.com Creating APIs over RDF
Data Sources 8 thJune 2011. SemTech 2011
2. The Trouble with SPARQL
3. Try our SPARQL Endpoint! Run Query
4.
http://dbpedia.org/sparql?default-graph-uri=http%3A%2F%2Fdbpedia.org&query=SELECT+%3Fresult+FROM+%3Chttp%3A%2F%2Fdbpedia.org%2Fresource%2FBMW_Z8%3E+WHERE+{+%3Chttp%3A%2F%2Fdbpedia.org%2Fresource%2FBMW_Z8%3E+dbpprop%3Aname+%3Fresult+.+FILTER+%28LANG%28%3Fresult%29+%3D+%27en%27%29+.}&debug=on&timeout=&format=text%2Fhtml&save=display&fname=
Trial and error experiments aren't easy
5. APIs have Affordance They're like pulling a thread The URLs
unravel into useful data
6. http://api.simplegeo.com/1.0/context/{lat},{lon}.json Trial
and error experiments are easy
7. SPARQL is for Power Users
8. How can we give RDF datasets more affordance?
9. Linked Data? Typically not expressive enough to support all
useful interactions Expensive to materialize all useful data
partitions E.g. by date-time, location, top ranking, etc
10. Build Custom APIs? Write custom code against your graph
store Can be expensive to build & maintain Undermines power of
web of data
11. OData? Standard data API from Microsoft Very similar to RDF
& Linked Data approach Can be implemented over SPARQL
endpoint
12. SPARQL Stored Procedures & The Linked Data API
13. SPARQL Stored Procedures
14. Bind SPARQL query to a URL
http://api.kasabi.com/api/find-recipe-ingredient?ingredient={x}
15. More than just a URL shortener 1. Identify query bound to
URL 2. Inject parameters from URL & config 3. Apply
paging/sorting options 4. Execute query 5. Optionally, apply
post-processing transformations
16. Parameter Passing Optional and Required Parameters Mapping
to a particular type of RDF Term, e.g. literal, URI May have a
default value May have a default prefix, e.g. base URL
17. Post-Processing Named transformations that generate a
specific mime-type Supports generating custom output formats
Currently just XSLT. Could support JS
18. Stored Procedure Benefits Declarative approach Offers
simpler interface to developers Retains RDF output, but supports
custom formats
19. The Linked Data API
20. Linked Data API http://purl.org/linked-data/api/spec Jeni
Tennison (TSO), Dave Reynolds (Epimorphics), Leigh Dodds
21. Linked Data API Map parameterised URLs to graph queries to
extract data views
22. Linked Data API Optimize for common query patterns
Prioritize simple RESTful interactions not complex queries Provide
pathway to exploring RDF and SPARQL
23. Processing Model
Select
View
Request
Response
Format
SPARQL Endpoint
SELECT ?itemWHERE { }
Endpoint
DESCRIBE
API Config
24. Selecting Resources URL mapped to query patterns by API
configuration Query variables injected from URL path or query
string Simple path expressions for traversing graph Support for
sorting and paging
25. Viewing Resources Default view is Concise Bounded
Description Can specify arbitrary collections of properties in
config or URL
26. Output Formats Simple JSON and XML formats Standard RDF
serializations Custom formats, including HTML, via XSLT
29. Open Source Implementations Puelia (PHP)
http://code.google.com/p/puelia-php/ Elda (Java)
http://code.google.com/p/elda/
30. Linked Data API Summary Declarative configuration-driven
approach More sophisticated than SSPs Integrates well with Linked
Data publishing Slightly higher learning curve
31. Summary
32. Adopt hybrid approach to encourage adoption Combine Linked
Data with SPARQLpoweredAPIs Recognise need for bridging, adapting
between tools/systems/communities
33. Support a view source approachEnable Crowd-Sourcing of APIs
by sharing configuration & queries
34. Try It For Yourself! http://beta.kasabi.com Linked Data,
RDF and API hosting Demo: 9.30 tomorrow