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

CTS2 Development Framework In Action

Uploaded on


More in: Technology , Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads


Total Views
On Slideshare
From Embeds
Number of Embeds



Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

    No notes for slide


  • 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