xcri aggr dev8d

Download Xcri aggr dev8d

If you can't read please download the document

Upload: ianibbo

Post on 13-Jun-2015

370 views

Category:

Education


1 download

DESCRIPTION

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

TRANSCRIPT

  • 1.
    • XCRI-CAP Aggregator What is it?
    • End to end way of collecting course data from any provider into a unified repository
    • Scheduled pull of XCRI-CAP documents
      • Checksums and date stamps
    • Indexing and update of changesin core aggregation database (Mongo, Elasticsearch, triplestore)
  • 2. Optional API's for push submission

3. Api's for third party embedding / usage 4. Integrated with XCRI Validator web service 5.

  • XCRI-CAP Aggregator API & Tooling Overview Ian Ibbotson Knowledge Integration Ltd
  • This work is licensed under a Creative Commons Attribution 3.0 Unported License.

6.

  • Project Status
  • Iteration 2 completed Core development and data ingest

7. Iteration 3 Work on extending APIs and adding access points 8. Iteration 4 Implementing Usability and other Feedback 9.

  • Overall Architecture

10.

  • 1. Feed Manager
  • http://coursedata.k-int.com/FeedManager

11. Simple HTML Client for owners of XCRI-CAP documents who want them published 12. Upload / Schedule Collection (Pull) 13. Force re-harvest 14. View documents 15. Approve / Publish to discover app 16.

  • Feed Status Page

17.

  • Submission Console

18.

  • Search Harvested Feed

19.

  • Dashboard / Approve (wip)
  • Backlog includes... - Analysis of facets (Subjects) - Warnings / Errors - Change Frequency - Interaction with Terminology

20.

  • 2. Discovery Interface
  • http://coursedata.k-int.com/discover

21. Search all published feeds 22. Facet by subject / provider / TBA 23. Simple interface for practitioners 24. Clean URLs 25. http://coursedata.k-int.com/discover/?q=Science 26. Content Type Negotiation (accept header, format=json|xml|atom|rss) OpenSearch. 27.

  • Search Interface

28.

  • Results

29.

  • Faceting

30.

  • Details

31.

  • 3. Discover Rest Interface
  • http://coursedata.k-int.com/discover
    • &format=[xml|json|rss|atom]
  • q parameter Standard lucene query syntax, boolean operators, any field or free text.

32. Additional parameters location= gazetteer based searching in r3 (next week) 33.

  • discover?q=science&format=rss

34.

  • 4. Direct AccessElasticSearch / Triple Store
  • ES search now, ask for port opening

35. TripleStore R4 (3 weeks) 36.

  • Direct ElasticSearch
  • http://coursedata.k-int.com:9200
    • /courses/course/_search?q=title:science
  • SOLR api in release 4 via ES Plugin

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. Some GUIs / other minted identifiers

    • Provider URI in standards, seldom in practice, go via Co-Reference Service to harmonise

39.

  • ElasticSearch on :9200
  • http://coursedata.k-int.com:9200/courses/course/_searchq=title:science&pretty=true

40.

  • 5. Submission Interface
  • For institutions wanting to directly push XCRI documents into the aggregator

41. http://coursedata.k-int.com/repository/upload 42. BASIC Auth protected / https 43. Content Type Negotiation 44.

  • Automated Submission

45.

  • Automated Submission
  • 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.

46.

  • Custom Handlers
  • Dynamically Discovered

47. Scriptable (groovy) Handlers::

    • getHandlerName, getRevision, getPreconditions, setup
  • Handlers are selected by precondition, with most specific being selected.
  • def getPreconditions() { [ 'p.rootElementNamespace=="http://xcri.org/profiles/catalog"' ] } Add && provider==MyProviderId for more specific variants

48.

  • REST API Summary
  • http://coursedata.k-int.com
    • /FeedManager
  • 49. /discover?q=x&format=[atom|rss|json|xml]

50. /discover/course/[&format=xml|json] 51.

  • Toolkits
  • Release 4 Code Client Libraries
    • Python, Java, Php, .net

52.

  • Sourcecode
  • FeedManager, Discover App
    • https://github.com/k-int/XCRI-Aggregator
  • Core Aggregator Platform

53.

  • Sourcecode
  • FeedManager, Discover App
    • https://github.com/k-int/XCRI-Aggregator
  • Core Aggregator Platform

54.

  • Questions