• Save
CTS2 Development Framework In Action
Upcoming SlideShare
Loading in...5

Like this? Share it with your network


CTS2 Development Framework In Action






Total Views
Views on SlideShare
Embed Views



1 Embed 413

http://informatics.mayo.edu 413



Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

CTS2 Development Framework In Action Presentation Transcript

  • 1. CTS2 OverviewCTS2 IN ACTION
  • 2. Schedule• Why develop against CTS2?• JSON format• Searching• ChangeSet workflow• Mapping view/create• Bioportal integration
  • 3. Why develop against CTS2?CTS2 Development Frameworksupports XML, JSON, and JSONP• JSONP is useful in avoiding Cross-Site-Scripting conflicts in browsersResources are linked via Hypermedia• Even though a WADL is provided, Resources may be dynamically traversed via hrefs. Little prior knowledge of the service is neededResult Sets are page able• All result sets have „next‟, „previous‟ hrefs
  • 4. What exists right now• The CTS2 Development Frameworkhttps://github.com/cts2/cts2-framework• Bioportal -> CTS2 Wrapperhttps://github.com/cts2/bioportal-service• eXist implementationhttps://github.com/cts2/exist-service
  • 5. REST API SignaturesGeneral Pattern:• Resource by name/[resourceName]/{resourceId}• Resource by uri/[resourceName]byuri?uri={uri}• List of Resources/[resourceName]s
  • 6. REST API SignaturesSub-resources follow the same pattern• Resource by name/[resourceName]/{resourceId}/[subresource]/{id}• All subresources are linked via hrefsWADL specification:http://informatics.mayo.edu/svn/trunk/cts2/spec/psm/rest/cts2.wadl
  • 7. REST API SignaturesOur goal is that by Hypermedia, limitedinitial knowledge of the service URLstructure is needed.In fact, CTS2 QUERY/READ servicesfunction like many services we useevery day
  • 8. JSON Format• {"codeSystemCatalogEntry": { • "codeSystemName": "LNC", • "designedForOntologyTaskList": [ ], • "versions": "http://informatics.mayo.edu/cts2/rest/codesystem/LNC/versions", • "currentVersion": { • "version": { • "content": "LNC_232_RRF", • "href": "http://informatics.mayo.edu/cts2/rest/codesystem/LNC/version/232" • }, • "codeSystem": { • "content": "LNC", • "uri": "http://purl.bioontology.org/ontology/LNC", • "href": "http://informatics.mayo.edu/cts2/rest/codesystem/LNC" • } • }, • "releaseFormatList": [ ], • "about": "http://purl.bioontology.org/ontology/LNC", • "formalName": "Logical Observation Identifier Names and Codes", • "keywordList": [ • "LNC", • "1350" • ], • …
  • 9. JSON Format (con‟t.)• Every resource may be returned as JSON• Adding a „callback‟ parameter enables JSONP callback({"codeSystemVersionCatalogEntry”{"codeSystemVersionName":"GO_2-0_OBO","versionOf … })
  • 10. Searching• Search widget • Searching for Entities based on a search string http://informatics.mayo.edu/cts2widgets/search.html
  • 11. Searching• Map Search widget • Searching ontology mappings based on queries of either the source or target http://informatics.mayo.edu/cts2/rest/widgets/viewmap.html
  • 12. ChangeSet Workflow• What is a ChangeSet?An ordered collection of changes that, whenapplied, will transform a service instancefrom one consistent state to another. AChangeSet is viewed as an atomic unit ofchange.
  • 13. ChangeSet Workflow• ChangeSetsChangeSets can be created, committed, and rolled back. Theyare similar to a source control branch.Content in ChangeSets does NOT appear in normal lookupsand queries, although they MAY be included if explicitly askedfor.
  • 14. ChangeSet Workflow• Creating a ChangeSet • Each change set has a unique URI • ChangeSets start as „OPEN‟
  • 15. ChangeSet Workflow• Creating a Resource within a given ChangeSet • Any Resource state change must be within the context of a ChangeSet
  • 16. ChangeSet Workflow• Creating two branches of changes for the same resource • The same resource may exist in different states in different ChangeSets
  • 17. ChangeSet Workflow• Committing a ChangeSet • Committing a ChangeSet moves the content of a ChangeSet into the main service content
  • 18. ChangeSet Workflow• Rolling back a ChangeSet • A rollback will remove all of the content associated with the change set, as well as the change set itself
  • 19. ChangeSet Workflow• Creating a Mapping • A mapping creates relationships between CodeSystemVersions or ValueSets
  • 20. Bioportal Integration• http://informatics.mayo.edu/cts2widg ets/widgets.html
  • 21. But WHY?• What is this useful for?There are many well designed REST services out there – do Iuse them all? NO!Our Goal:A RESTful, Hypermedia based, self describing service that fills acommunity need.The key is whether the data coming back fills a communityneed. Users will still use a poorly designed REST service if itfills a need. Conversely, a perfectly designed RESTful servicethat doesn‟t fill a useful need is still not useful.
  • 22. What need does CTS2 fill? “Pluto is a Planet”
  • 23. What need does CTS2 fill? “Pluto is a Planet”What is Pluto?What is a Planet? Is it the International Astronomical Uniondefinition? Some people have rejected their definition anddefined their own.Is “Pluto is a Planet” interoperable?
  • 24. What need does CTS2 fill? “Pluto is a Planet”http://purl.bioontology.org/ontology/MSH/D018542 http://purl.bioontology.org/ontology/MSH/D016083
  • 25. Use-case discussionGiven a Use-case:• Does the CTS2 Spec include it?• Do we have tools to do it now?• If not, could they be created? How?
  • 26. Resourceshttp://informatics.mayo.edu/cts2/framework/ See the „In Action‟ section