xcri aggr dev8d
DESCRIPTION
Brief overview of the API components of the JISC XCRI-CAP aggregatorTRANSCRIPT
- 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
- [email protected]:k-int/AggregatorCore.git
54.
- Questions