0
<ul>XCRI-CAP – Aggregator What is it? </ul><ul><li>End to end way of collecting course data from any provider into a unifi...
Optional API's for push submission
Api's for third party embedding / usage
Integrated with XCRI Validator web service </li></ul></ul>
<ul>XCRI-CAP Aggregator API & Tooling Overview Ian Ibbotson Knowledge Integration Ltd </ul><ul>This work is licensed under...
<ul>Project Status </ul><ul><li>Iteration 2 completed – Core development and data ingest
Iteration 3 Work on extending APIs and adding access points
Iteration 4 Implementing Usability and other Feedback </li></ul>
<ul>Overall Architecture </ul>
<ul>1. Feed Manager </ul><ul><li>http://coursedata.k-int.com/FeedManager
Simple HTML Client for owners of XCRI-CAP documents who want them published
Upload / Schedule Collection (Pull)
Force re-harvest
View documents
Approve / Publish to discover app </li></ul>
<ul>Feed Status Page </ul>
<ul>Submission Console </ul>
<ul>Search Harvested Feed </ul>
<ul>Dashboard / Approve (wip) </ul><ul>Backlog includes... - Analysis of facets (Subjects) - Warnings / Errors - Change Fr...
<ul>2. Discovery Interface </ul><ul><li>http://coursedata.k-int.com/discover
Search all published feeds
Facet by subject / provider / TBA
Simple interface for practitioners
Clean URLs
http://coursedata.k-int.com/discover/?q=Science
Content Type Negotiation (accept header, format=json|xml|atom|rss) – OpenSearch. </li></ul>
<ul>Search Interface </ul>
<ul>Results </ul>
Upcoming SlideShare
Loading in...5
×

Xcri aggr dev8d

363

Published on

Brief overview of the API components of the JISC XCRI-CAP aggregator

Published in: Education, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
363
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Xcri aggr dev8d"

  1. 1. <ul>XCRI-CAP – Aggregator What is it? </ul><ul><li>End to end way of collecting course data from any provider into a unified repository </li></ul><ul><ul><li>Scheduled pull of XCRI-CAP documents </li></ul></ul><ul><ul><ul><li>Checksums and date stamps </li></ul></ul></ul><ul><ul><li>Indexing and update of changes in core aggregation database (Mongo, Elasticsearch, triplestore)
  2. 2. Optional API's for push submission
  3. 3. Api's for third party embedding / usage
  4. 4. Integrated with XCRI Validator web service </li></ul></ul>
  5. 5. <ul>XCRI-CAP Aggregator API & Tooling Overview Ian Ibbotson Knowledge Integration Ltd </ul><ul>This work is licensed under a Creative Commons Attribution 3.0 Unported License. </ul>
  6. 6. <ul>Project Status </ul><ul><li>Iteration 2 completed – Core development and data ingest
  7. 7. Iteration 3 Work on extending APIs and adding access points
  8. 8. Iteration 4 Implementing Usability and other Feedback </li></ul>
  9. 9. <ul>Overall Architecture </ul>
  10. 10. <ul>1. Feed Manager </ul><ul><li>http://coursedata.k-int.com/FeedManager
  11. 11. Simple HTML Client for owners of XCRI-CAP documents who want them published
  12. 12. Upload / Schedule Collection (Pull)
  13. 13. Force re-harvest
  14. 14. View documents
  15. 15. Approve / Publish to discover app </li></ul>
  16. 16. <ul>Feed Status Page </ul>
  17. 17. <ul>Submission Console </ul>
  18. 18. <ul>Search Harvested Feed </ul>
  19. 19. <ul>Dashboard / Approve (wip) </ul><ul>Backlog includes... - Analysis of facets (Subjects) - Warnings / Errors - Change Frequency - Interaction with Terminology </ul>
  20. 20. <ul>2. Discovery Interface </ul><ul><li>http://coursedata.k-int.com/discover
  21. 21. Search all published feeds
  22. 22. Facet by subject / provider / TBA
  23. 23. Simple interface for practitioners
  24. 24. Clean URLs
  25. 25. http://coursedata.k-int.com/discover/?q=Science
  26. 26. Content Type Negotiation (accept header, format=json|xml|atom|rss) – OpenSearch. </li></ul>
  27. 27. <ul>Search Interface </ul>
  28. 28. <ul>Results </ul>
  29. 29. <ul>Faceting </ul>
  30. 30. <ul>Details </ul>
  31. 31. <ul>3. Discover Rest Interface </ul><ul><li>http://coursedata.k-int.com/discover </li></ul><ul><ul><li>&format=[xml|json|rss|atom] </li></ul></ul><ul><li>q parameter – Standard lucene query syntax, boolean operators, any field or free text.
  32. 32. Additional parameters location= gazetteer based searching in r3 (next week) </li></ul>
  33. 33. <ul>discover?q=science&format=rss </ul>
  34. 34. <ul>4. Direct Access ElasticSearch / Triple Store </ul><ul><li>ES search now, ask for port opening
  35. 35. TripleStore – R4 (3 weeks) </li></ul>
  36. 36. <ul>Direct ElasticSearch </ul><ul><li>http://coursedata.k-int.com:9200 </li></ul><ul><ul><li>/courses/course/_search?q=title:science </li></ul></ul><ul><li>SOLR api in release 4 via ES Plugin
  37. 37. Remember no access to gazetteer or controlled term lookup via direct ES search. Facets will be “codes” (Free text atm) and not terms.
  38. 38. Some GUIs / other minted identifiers </li></ul><ul><ul><li>Provider – URI in standards, seldom in practice, go via Co-Reference Service to harmonise </li></ul></ul>
  39. 39. <ul>ElasticSearch on :9200 </ul><ul>http://coursedata.k-int.com:9200/courses/course/_searchq=title:science&pretty=true </ul>
  40. 40. <ul>5. Submission Interface </ul><ul><li>For institutions wanting to directly push XCRI documents into the aggregator
  41. 41. http://coursedata.k-int.com/repository/upload
  42. 42. BASIC Auth protected / https
  43. 43. Content Type Negotiation </li></ul>
  44. 44. <ul>Automated Submission </ul>
  45. 45. <ul>Automated Submission </ul><ul>http://coursedata.k-int.com/repository/upload Recognises upload.json/upload.xml and Accept headers for content type negotiation. Err and warn response messages for validation problems. </ul>
  46. 46. <ul>Custom Handlers </ul><ul><li>Dynamically Discovered
  47. 47. Scriptable (groovy) Handlers:: </li></ul><ul><ul><li>getHandlerName, getRevision, getPreconditions, setup </li></ul></ul><ul><li>Handlers are selected by precondition, with most specific being selected. </li></ul><ul>def getPreconditions() { [ 'p.rootElementNamespace==&quot;http://xcri.org/profiles/catalog&quot;' ] } Add && provider==”MyProviderId” for more specific variants </ul>
  48. 48. <ul>REST API Summary </ul><ul><li>http://coursedata.k-int.com </li></ul><ul><ul><li>/FeedManager
  49. 49. /discover?q=x&format=[atom|rss|json|xml]
  50. 50. /discover/course/<<identifier>>[&format=xml|json] </li></ul></ul>
  51. 51. <ul>Toolkits </ul><ul><li>Release 4 – Code Client Libraries </li></ul><ul><ul><li>Python, Java, Php, .net </li></ul></ul>
  52. 52. <ul>Sourcecode </ul><ul><li>FeedManager, Discover App </li></ul><ul><ul><li>https://github.com/k-int/XCRI-Aggregator </li></ul></ul><ul><li>Core Aggregator Platform </li></ul>
  53. 53. <ul>Sourcecode </ul><ul><li>FeedManager, Discover App </li></ul><ul><ul><li>https://github.com/k-int/XCRI-Aggregator </li></ul></ul><ul><li>Core Aggregator Platform </li><ul><li>git@github.com:k-int/AggregatorCore.git </li></ul></ul>
  54. 54. <ul>Questions </ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×