CTS2 OverviewCTS2 IN ACTION
Schedule• Why develop against CTS2?• JSON format• Searching• ChangeSet workflow• Mapping view/create• Bioportal integration
Why develop against CTS2?CTS2 Development Frameworksupports XML, JSON, and JSONP• JSONP is useful in avoiding Cross-Site-S...
What exists right now• The CTS2 Development Frameworkhttps://github.com/cts2/cts2-framework• Bioportal -> CTS2 Wrapperhttp...
REST API SignaturesGeneral Pattern:• Resource by name/[resourceName]/{resourceId}• Resource by uri/[resourceName]byuri?uri...
REST API SignaturesSub-resources follow the same pattern• Resource by name/[resourceName]/{resourceId}/[subresource]/{id}•...
REST API SignaturesOur goal is that by Hypermedia, limitedinitial knowledge of the service URLstructure is needed.In fact,...
JSON Format•   {"codeSystemCatalogEntry": {        • "codeSystemName": "LNC",        • "designedForOntologyTaskList": [ ],...
JSON Format (con‟t.)• Every resource may be returned as  JSON• Adding a „callback‟ parameter  enables JSONP       callback...
Searching• Search widget   • Searching for Entities based on a    search string    http://informatics.mayo.edu/cts2widgets...
Searching• Map Search widget   • Searching ontology mappings based    on queries of either the source or    target    http...
ChangeSet Workflow• What is a ChangeSet?An ordered collection of changes that, whenapplied, will transform a service insta...
ChangeSet Workflow• ChangeSetsChangeSets can be created, committed, and rolled back. Theyare similar to a source control b...
ChangeSet Workflow• Creating a ChangeSet   • Each change set has a unique URI   • ChangeSets start as „OPEN‟
ChangeSet Workflow• Creating a Resource within a given ChangeSet  • Any Resource state change must    be within the contex...
ChangeSet Workflow• Creating two branches of changes for the same resource   • The same resource may exist in     differen...
ChangeSet Workflow• Committing a ChangeSet   • Committing a ChangeSet moves    the content of a ChangeSet into    the main...
ChangeSet Workflow• Rolling back a ChangeSet   • A rollback will remove all of the    content associated with the    chang...
ChangeSet Workflow• Creating a Mapping   • A mapping creates relationships    between CodeSystemVersions or    ValueSets
Bioportal Integration• http://informatics.mayo.edu/cts2widg ets/widgets.html
But WHY?• What is this useful for?There are many well designed REST services out there – do Iuse them all? NO!Our Goal:A R...
What need does CTS2 fill? “Pluto is a Planet”
What need does CTS2 fill?           “Pluto is a Planet”What is Pluto?What is a Planet? Is it the International Astronomica...
What need does CTS2 fill?           “Pluto is a Planet”http://purl.bioontology.org/ontology/MSH/D018542                htt...
Use-case discussionGiven a Use-case:• Does the CTS2 Spec include it?• Do we have tools to do it now?• If not, could they b...
Resourceshttp://informatics.mayo.edu/cts2/framework/          See the „In Action‟ section
Upcoming SlideShare
Loading in …5
×

CTS2 Development Framework In Action

1,019 views

Published on

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

  • Be the first to like this

No Downloads
Views
Total views
1,019
On SlideShare
0
From Embeds
0
Number of Embeds
575
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

CTS2 Development Framework In Action

  1. 1. CTS2 OverviewCTS2 IN ACTION
  2. 2. Schedule• Why develop against CTS2?• JSON format• Searching• ChangeSet workflow• Mapping view/create• Bioportal integration
  3. 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. 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. 5. REST API SignaturesGeneral Pattern:• Resource by name/[resourceName]/{resourceId}• Resource by uri/[resourceName]byuri?uri={uri}• List of Resources/[resourceName]s
  6. 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. 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. 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. 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. 10. Searching• Search widget • Searching for Entities based on a search string http://informatics.mayo.edu/cts2widgets/search.html
  11. 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. 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. 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. 14. ChangeSet Workflow• Creating a ChangeSet • Each change set has a unique URI • ChangeSets start as „OPEN‟
  15. 15. ChangeSet Workflow• Creating a Resource within a given ChangeSet • Any Resource state change must be within the context of a ChangeSet
  16. 16. ChangeSet Workflow• Creating two branches of changes for the same resource • The same resource may exist in different states in different ChangeSets
  17. 17. ChangeSet Workflow• Committing a ChangeSet • Committing a ChangeSet moves the content of a ChangeSet into the main service content
  18. 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. 19. ChangeSet Workflow• Creating a Mapping • A mapping creates relationships between CodeSystemVersions or ValueSets
  20. 20. Bioportal Integration• http://informatics.mayo.edu/cts2widg ets/widgets.html
  21. 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. 22. What need does CTS2 fill? “Pluto is a Planet”
  23. 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. 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. 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. 26. Resourceshttp://informatics.mayo.edu/cts2/framework/ See the „In Action‟ section

×