SlideShare uma empresa Scribd logo
1 de 26
CTS2 Overview

CTS2 IN ACTION
Schedule

• Why develop against CTS2?
• JSON format
• Searching
• ChangeSet workflow
• Mapping view/create
• Bioportal integration
Why develop against CTS2?

CTS2 Development Framework
supports XML, JSON, and JSONP
• JSONP is useful in avoiding Cross-Site-Scripting conflicts in
  browsers

Resources are linked via Hypermedia
• Even though a WADL is provided, Resources may be
  dynamically traversed via hrefs. Little prior knowledge of
  the service is needed

Result Sets are page able
• All result sets have „next‟, „previous‟ hrefs
What exists right now

• The CTS2 Development Framework
https://github.com/cts2/cts2-framework

• Bioportal -> CTS2 Wrapper
https://github.com/cts2/bioportal-service

• eXist implementation
https://github.com/cts2/exist-service
REST API Signatures

General Pattern:
• Resource by name
/[resourceName]/{resourceId}
• Resource by uri
/[resourceName]byuri?uri={uri}
• List of Resources
/[resourceName]s
REST API Signatures

Sub-resources follow the same pattern
• Resource by name
/[resourceName]/{resourceId}/[subresource]/{id}
• All subresources are linked via hrefs

WADL specification:
http://informatics.mayo.edu/svn/trunk/cts2/spec/ps
m/rest/cts2.wadl
REST API Signatures

Our goal is that by Hypermedia, limited
initial knowledge of the service URL
structure is needed.


In fact, CTS2 QUERY/READ services
function like many services we use
every day
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"
        • ],
        • …
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 … })
Searching

• Search widget
   • Searching for Entities based on a
    search string
    http://informatics.mayo.edu/cts2widgets/search.html
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
ChangeSet Workflow

• What is a ChangeSet?
An ordered collection of changes that, when
applied, will transform a service instance
from one consistent state to another. A
ChangeSet is viewed as an atomic unit of
change.
ChangeSet Workflow

• ChangeSets
ChangeSets can be created, committed, and rolled back. They
are similar to a source control branch.


Content in ChangeSets does NOT appear in normal lookups
and queries, although they MAY be included if explicitly asked
for.
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 context of a
    ChangeSet
ChangeSet Workflow

• Creating two branches of changes for
 the same resource
   • The same resource may exist in
     different states in different
     ChangeSets
ChangeSet Workflow

• Committing a ChangeSet
   • Committing a ChangeSet moves
    the content of a ChangeSet into
    the main service content
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
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 I
use them all? NO!


Our Goal:
A RESTful, Hypermedia based, self describing service that fills a
community need.


The key is whether the data coming back fills a community
need. Users will still use a poorly designed REST service if it
fills a need. Conversely, a perfectly designed RESTful service
that doesn‟t fill a useful need is still not useful.
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 Astronomical Union
definition? Some people have rejected their definition and
defined their own.


Is “Pluto is a Planet” interoperable?
What need does CTS2 fill?



           “Pluto is a Planet”
http://purl.bioontology.org/ontology/MSH/D018542


                http://purl.bioontology.org/ontology/MSH/D016083
Use-case discussion

Given a Use-case:
• Does the CTS2 Spec include it?
• Do we have tools to do it now?
• If not, could they be created? How?
Resources


http://informatics.mayo.edu/cts2/framework/
          See the „In Action‟ section

Mais conteúdo relacionado

Mais procurados

Drupal 8 as a mobile backend
Drupal 8 as a mobile backendDrupal 8 as a mobile backend
Drupal 8 as a mobile backendAlkuvoima
 
Database Change Management as a Service
Database Change Management as a ServiceDatabase Change Management as a Service
Database Change Management as a ServiceAndrew Solomon
 
Continuous DB Changes Delivery With Liquibase
Continuous DB Changes Delivery With LiquibaseContinuous DB Changes Delivery With Liquibase
Continuous DB Changes Delivery With LiquibaseAidas Dragūnas
 
2012-10-16 Mil-OSS Working Group: Introduction to SCAP Security Guide
2012-10-16 Mil-OSS Working Group: Introduction to SCAP Security Guide2012-10-16 Mil-OSS Working Group: Introduction to SCAP Security Guide
2012-10-16 Mil-OSS Working Group: Introduction to SCAP Security GuideShawn Wells
 
Liquibase – a time machine for your data
Liquibase – a time machine for your dataLiquibase – a time machine for your data
Liquibase – a time machine for your dataNeev Technologies
 
Liquibase få kontroll på dina databasförändringar
Liquibase   få kontroll på dina databasförändringarLiquibase   få kontroll på dina databasförändringar
Liquibase få kontroll på dina databasförändringarSqueed
 
Liquibase for java developers
Liquibase for java developersLiquibase for java developers
Liquibase for java developersIllia Seleznov
 
Java DataBase Connectivity -JDBC Part-1
Java DataBase Connectivity -JDBC Part-1Java DataBase Connectivity -JDBC Part-1
Java DataBase Connectivity -JDBC Part-1Pranil Dukare
 
Liquibase migration for data bases
Liquibase migration for data basesLiquibase migration for data bases
Liquibase migration for data basesRoman Uholnikov
 
Efficient HTTP applications on the JVM with Ratpack - Voxxed Days Berlin 2016
Efficient HTTP applications on the JVM with Ratpack - Voxxed Days Berlin 2016Efficient HTTP applications on the JVM with Ratpack - Voxxed Days Berlin 2016
Efficient HTTP applications on the JVM with Ratpack - Voxxed Days Berlin 2016Alvaro Sanchez-Mariscal
 
Agile Database Development with Liquibase
Agile Database Development with LiquibaseAgile Database Development with Liquibase
Agile Database Development with LiquibaseTim Berglund
 
Hedis - GET HBase via Redis
Hedis - GET HBase via RedisHedis - GET HBase via Redis
Hedis - GET HBase via RedisMu Chun Wang
 
Dropwizard Internals
Dropwizard InternalsDropwizard Internals
Dropwizard Internalscarlo-rtr
 
Git.From thorns to the stars
Git.From thorns to the starsGit.From thorns to the stars
Git.From thorns to the starsStrannik_2013
 

Mais procurados (19)

Drupal 8 as a mobile backend
Drupal 8 as a mobile backendDrupal 8 as a mobile backend
Drupal 8 as a mobile backend
 
Database Change Management as a Service
Database Change Management as a ServiceDatabase Change Management as a Service
Database Change Management as a Service
 
Database change management with Liquibase
Database change management with LiquibaseDatabase change management with Liquibase
Database change management with Liquibase
 
Continuous DB Changes Delivery With Liquibase
Continuous DB Changes Delivery With LiquibaseContinuous DB Changes Delivery With Liquibase
Continuous DB Changes Delivery With Liquibase
 
Liquibase
LiquibaseLiquibase
Liquibase
 
2012-10-16 Mil-OSS Working Group: Introduction to SCAP Security Guide
2012-10-16 Mil-OSS Working Group: Introduction to SCAP Security Guide2012-10-16 Mil-OSS Working Group: Introduction to SCAP Security Guide
2012-10-16 Mil-OSS Working Group: Introduction to SCAP Security Guide
 
Liquibase – a time machine for your data
Liquibase – a time machine for your dataLiquibase – a time machine for your data
Liquibase – a time machine for your data
 
Liquibase få kontroll på dina databasförändringar
Liquibase   få kontroll på dina databasförändringarLiquibase   få kontroll på dina databasförändringar
Liquibase få kontroll på dina databasförändringar
 
LiquiBase
LiquiBaseLiquiBase
LiquiBase
 
Liquibase for java developers
Liquibase for java developersLiquibase for java developers
Liquibase for java developers
 
Java DataBase Connectivity -JDBC Part-1
Java DataBase Connectivity -JDBC Part-1Java DataBase Connectivity -JDBC Part-1
Java DataBase Connectivity -JDBC Part-1
 
Liquibase migration for data bases
Liquibase migration for data basesLiquibase migration for data bases
Liquibase migration for data bases
 
Efficient HTTP applications on the JVM with Ratpack - Voxxed Days Berlin 2016
Efficient HTTP applications on the JVM with Ratpack - Voxxed Days Berlin 2016Efficient HTTP applications on the JVM with Ratpack - Voxxed Days Berlin 2016
Efficient HTTP applications on the JVM with Ratpack - Voxxed Days Berlin 2016
 
Agile Database Development with Liquibase
Agile Database Development with LiquibaseAgile Database Development with Liquibase
Agile Database Development with Liquibase
 
Liquibase case study
Liquibase case studyLiquibase case study
Liquibase case study
 
Gradle - Build System
Gradle - Build SystemGradle - Build System
Gradle - Build System
 
Hedis - GET HBase via Redis
Hedis - GET HBase via RedisHedis - GET HBase via Redis
Hedis - GET HBase via Redis
 
Dropwizard Internals
Dropwizard InternalsDropwizard Internals
Dropwizard Internals
 
Git.From thorns to the stars
Git.From thorns to the starsGit.From thorns to the stars
Git.From thorns to the stars
 

Semelhante a CTS2 Development Framework In Action

NCBO Technology Overview
NCBO Technology OverviewNCBO Technology Overview
NCBO Technology OverviewTrish Whetzel
 
A microservices journey - Round 2
A microservices journey - Round 2A microservices journey - Round 2
A microservices journey - Round 2Christian Posta
 
REST APIs for the Internet of Things
REST APIs for the Internet of ThingsREST APIs for the Internet of Things
REST APIs for the Internet of ThingsMichael Koster
 
REST APIs for an Internet of Things
REST APIs for an Internet of ThingsREST APIs for an Internet of Things
REST APIs for an Internet of ThingsMichael Koster
 
The Meteor Framework
The Meteor FrameworkThe Meteor Framework
The Meteor FrameworkDamien Magoni
 
(Live) Annotopia Overview by Paolo Ciccarese (Architect and principal developer)
(Live) Annotopia Overview by Paolo Ciccarese (Architect and principal developer)(Live) Annotopia Overview by Paolo Ciccarese (Architect and principal developer)
(Live) Annotopia Overview by Paolo Ciccarese (Architect and principal developer)Paolo Ciccarese
 
Microservices for Systematic Profiling and Monitoring of the Refactoring
Microservices for Systematic Profiling and Monitoring of the RefactoringMicroservices for Systematic Profiling and Monitoring of the Refactoring
Microservices for Systematic Profiling and Monitoring of the RefactoringAlexander Mazurov
 
Web services and the Development of Semantic Applications
Web services and the Development of Semantic ApplicationsWeb services and the Development of Semantic Applications
Web services and the Development of Semantic ApplicationsTrish Whetzel
 
WOTS2E: A Search Engine for a Semantic Web of Things
WOTS2E: A Search Engine for a Semantic Web of ThingsWOTS2E: A Search Engine for a Semantic Web of Things
WOTS2E: A Search Engine for a Semantic Web of ThingsAndreas Kamilaris
 
Differential Sync and JSON Patch @ SpringOne2GX 2014
Differential Sync and JSON Patch @ SpringOne2GX 2014Differential Sync and JSON Patch @ SpringOne2GX 2014
Differential Sync and JSON Patch @ SpringOne2GX 2014Brian Cavalier
 
Reactive Streams: Handling Data-Flow the Reactive Way
Reactive Streams: Handling Data-Flow the Reactive WayReactive Streams: Handling Data-Flow the Reactive Way
Reactive Streams: Handling Data-Flow the Reactive WayRoland Kuhn
 
API Testing. Streamline your testing process.
API Testing. Streamline your testing process.API Testing. Streamline your testing process.
API Testing. Streamline your testing process.Andrey Oleynik
 
Ancient To Modern: Upgrading nearly a decade of Plone in public radio
Ancient To Modern: Upgrading nearly a decade of Plone in public radioAncient To Modern: Upgrading nearly a decade of Plone in public radio
Ancient To Modern: Upgrading nearly a decade of Plone in public radioCristopher Ewing
 
Microservices and Integration: what's next with Istio service mesh
Microservices and Integration: what's next with Istio service meshMicroservices and Integration: what's next with Istio service mesh
Microservices and Integration: what's next with Istio service meshChristian Posta
 
06 integrate elasticsearch
06 integrate elasticsearch06 integrate elasticsearch
06 integrate elasticsearchErhwen Kuo
 
ASP.NET Mvc 4 web api
ASP.NET Mvc 4 web apiASP.NET Mvc 4 web api
ASP.NET Mvc 4 web apiTiago Knoch
 

Semelhante a CTS2 Development Framework In Action (20)

NCBO Technology Overview
NCBO Technology OverviewNCBO Technology Overview
NCBO Technology Overview
 
A microservices journey - Round 2
A microservices journey - Round 2A microservices journey - Round 2
A microservices journey - Round 2
 
REST APIs for the Internet of Things
REST APIs for the Internet of ThingsREST APIs for the Internet of Things
REST APIs for the Internet of Things
 
REST APIs for an Internet of Things
REST APIs for an Internet of ThingsREST APIs for an Internet of Things
REST APIs for an Internet of Things
 
NCBO Technology
NCBO TechnologyNCBO Technology
NCBO Technology
 
The Meteor Framework
The Meteor FrameworkThe Meteor Framework
The Meteor Framework
 
(Live) Annotopia Overview by Paolo Ciccarese (Architect and principal developer)
(Live) Annotopia Overview by Paolo Ciccarese (Architect and principal developer)(Live) Annotopia Overview by Paolo Ciccarese (Architect and principal developer)
(Live) Annotopia Overview by Paolo Ciccarese (Architect and principal developer)
 
Microservices for Systematic Profiling and Monitoring of the Refactoring
Microservices for Systematic Profiling and Monitoring of the RefactoringMicroservices for Systematic Profiling and Monitoring of the Refactoring
Microservices for Systematic Profiling and Monitoring of the Refactoring
 
Biothings presentation
Biothings presentationBiothings presentation
Biothings presentation
 
Web services and the Development of Semantic Applications
Web services and the Development of Semantic ApplicationsWeb services and the Development of Semantic Applications
Web services and the Development of Semantic Applications
 
WOTS2E: A Search Engine for a Semantic Web of Things
WOTS2E: A Search Engine for a Semantic Web of ThingsWOTS2E: A Search Engine for a Semantic Web of Things
WOTS2E: A Search Engine for a Semantic Web of Things
 
Differential Sync and JSON Patch @ SpringOne2GX 2014
Differential Sync and JSON Patch @ SpringOne2GX 2014Differential Sync and JSON Patch @ SpringOne2GX 2014
Differential Sync and JSON Patch @ SpringOne2GX 2014
 
Reactive Streams: Handling Data-Flow the Reactive Way
Reactive Streams: Handling Data-Flow the Reactive WayReactive Streams: Handling Data-Flow the Reactive Way
Reactive Streams: Handling Data-Flow the Reactive Way
 
API Testing. Streamline your testing process.
API Testing. Streamline your testing process.API Testing. Streamline your testing process.
API Testing. Streamline your testing process.
 
Ancient To Modern: Upgrading nearly a decade of Plone in public radio
Ancient To Modern: Upgrading nearly a decade of Plone in public radioAncient To Modern: Upgrading nearly a decade of Plone in public radio
Ancient To Modern: Upgrading nearly a decade of Plone in public radio
 
WebDev Crash Course
WebDev Crash CourseWebDev Crash Course
WebDev Crash Course
 
Vayacondios: Divine into Complex Systems
Vayacondios: Divine into Complex SystemsVayacondios: Divine into Complex Systems
Vayacondios: Divine into Complex Systems
 
Microservices and Integration: what's next with Istio service mesh
Microservices and Integration: what's next with Istio service meshMicroservices and Integration: what's next with Istio service mesh
Microservices and Integration: what's next with Istio service mesh
 
06 integrate elasticsearch
06 integrate elasticsearch06 integrate elasticsearch
06 integrate elasticsearch
 
ASP.NET Mvc 4 web api
ASP.NET Mvc 4 web apiASP.NET Mvc 4 web api
ASP.NET Mvc 4 web api
 

Último

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 

Último (20)

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 

CTS2 Development Framework 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 Framework supports XML, JSON, and JSONP • JSONP is useful in avoiding Cross-Site-Scripting conflicts in browsers Resources are linked via Hypermedia • Even though a WADL is provided, Resources may be dynamically traversed via hrefs. Little prior knowledge of the service is needed Result Sets are page able • All result sets have „next‟, „previous‟ hrefs
  • 4. What exists right now • The CTS2 Development Framework https://github.com/cts2/cts2-framework • Bioportal -> CTS2 Wrapper https://github.com/cts2/bioportal-service • eXist implementation https://github.com/cts2/exist-service
  • 5. REST API Signatures General Pattern: • Resource by name /[resourceName]/{resourceId} • Resource by uri /[resourceName]byuri?uri={uri} • List of Resources /[resourceName]s
  • 6. REST API Signatures Sub-resources follow the same pattern • Resource by name /[resourceName]/{resourceId}/[subresource]/{id} • All subresources are linked via hrefs WADL specification: http://informatics.mayo.edu/svn/trunk/cts2/spec/ps m/rest/cts2.wadl
  • 7. REST API Signatures Our goal is that by Hypermedia, limited initial knowledge of the service URL structure is needed. In fact, CTS2 QUERY/READ services function like many services we use every 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, when applied, will transform a service instance from one consistent state to another. A ChangeSet is viewed as an atomic unit of change.
  • 13. ChangeSet Workflow • ChangeSets ChangeSets can be created, committed, and rolled back. They are similar to a source control branch. Content in ChangeSets does NOT appear in normal lookups and queries, although they MAY be included if explicitly asked for.
  • 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
  • 21. But WHY? • What is this useful for? There are many well designed REST services out there – do I use them all? NO! Our Goal: A RESTful, Hypermedia based, self describing service that fills a community need. The key is whether the data coming back fills a community need. Users will still use a poorly designed REST service if it fills a need. Conversely, a perfectly designed RESTful service that 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 Union definition? Some people have rejected their definition and defined 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 discussion Given 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. Resources http://informatics.mayo.edu/cts2/framework/ See the „In Action‟ section