# Presentation: 060870

## the cancergrid metadata registry and ecosystem

- semantics for the workgroup
- semantics on the desktop
- Denise Warzel co/Steve Harris
- ICR Presentation Oct. 22, 2008

## Metadata Registries

- Cancergrid
- “within context of MDR Futures”

## Slide 3

## Slide 4

## the metadata registryObjectives

- ISO 11179 Based Registry – Create, Browser, Edit
- “lite”, does not have all the features of caDSR; e.g. 11179 validation, redundancy checking, integrated concept annotation for registry content, etc.
- Metadata Driven Software Development
- Plugins – MS Excel, EA, ....
- Extract, Transform, Load caDSR  “dMDR” (decentralized metadata registry)
- Trial Designer (similar to Form Builder but generates the application)
- XForms Generator (Form as a UML Model, generates XForm application )
- XML Schema Integration (SAWSDL) and RDF

**Notes:**
eXist – written in Java
Runs in Java Virtual Machine
Xist is a native XML database featuring efficient, index-based XPath query processing, Xquery and XSLT languages, extensions for keyword search, XUpdate support 
- automatic indexing features that lets it creates indexes while storing data 
- supports data update 
- supports SOAP and XML-RPC protocols 
Supports: 
create collections – lends itself to storing collections of XML documents of the same type e.g. Value Domains, Data Elements 
store data 
query data 
create backup 
restore files from backup 
manage users 

It doesn't support database transactions at this time, but it supports concurrent access 

BSD Licenses – Berkeley Software Distribution represent a family of permissive free software licences.  The text of the license is considered to be in the open domain and may be modified freely.

## the metadata registrytechnology

- open standards
- ISO11179, XML, XQuery, XSLT, XSD, XForms, SKOS, REST, WSDL, SAWSDL
- open source
- eXist (LGPL)
- Tomcat/Jetty/Chiba/Jena/Saxon B
- all cancergrid code (essentially free BSD)
- free in the context of use: UK NHS/Academia
- plays nicely with .NET

**Notes:**
eXist – written in Java
Runs in Java Virtual Machine
Xist is a native XML database featuring efficient, index-based XPath query processing, Xquery and XSLT languages, extensions for keyword search, XUpdate support 
- automatic indexing features that lets it creates indexes while storing data 
- supports data update 
- supports SOAP and XML-RPC protocols 
Supports: 
create collections – lends itself to storing collections of XML documents of the same type e.g. Value Domains, Data Elements 
store data 
query data 
create backup 
restore files from backup 
manage users 

It doesn't support database transactions at this time, but it supports concurrent access 

BSD Licenses – Berkeley Software Distribution represent a family of permissive free software licences.  The text of the license is considered to be in the open domain and may be modified freely.

- Based on ISO11179 Consolidated Metamodel Figure 11

- data element document

- non-enumerated value domain document

- enumerated value domain document

- non-enumerated conceptual domain document

- enumerated conceptual domain document

- Cancergrid XML Document Collections

**Notes:**
Cancergrid XML document collections are aligned with ISO 11179 domain model

**Notes:**
Example of the folder for Data Elements in the local repository, either created locally, or imported from caDSR or some other repository
Working on a Standard XML Format based on 11179 so items will be easily exchangable with other 11179 based registries

## classifications

- An important factor related to caBIG Model reuse:
- The use of Classification Schemes
- caBIG CDEs derived from UML Models are identified as collections in caDSR using ISO 11179 Classification Scheme
- cgMDR Query Service Manager - Text based or Classification Scheme driven

## EA Plugin Demo

- Overview

## Free Text based queries

-  Query based on Long Name
-  currently caDSR, cgMDR, EVS NCIt, EVS Meta
-  Results (data elements and concepts only)
-  Results are displayed
-  Pagination
-  “Use” selected element
-  Details (of selected result item)
-  Definition
-  Data element’s value domain or Concept’s properties

**Notes:**
Added 2 weeks ago
Take advantage of SKOS classification used in cgMDR
Only applies to cgMDR, thus CDE

## classification based queries

-  Query based on classification (UML Projects in caDSR)
-  Only with cgMDR at the moment
-  Query control
-  Classification schemes selection
-  Classification tree
-   Results (data elements only)
-  Results are data elements classified by selected term
-  Pagination
-  Use selected element
-  Details (of selected result item)
-  Definition
-  Data element’s value domain

**Notes:**
Added 2 weeks ago
Take advantage of SKOS classification used in cgMDR
Only applies to cgMDR, thus CDE

## classification based queries

-  Query based on classification
-  Only with downloaded caDSR / local cgMDR at the moment
-  Query control
-  Classification schemes selection
-  Classification tree
-   Results (data elements only)
-  Results are data elements classified by selected term
-  Pagination
-  Use selected element
-  Details (of selected result item)
-  Definition
-  Data element’s value domain

**Notes:**
Select classification scheme
Classification tree built from SKOS definition in selected classification scheme
Child nodes are “skos:narrower” concepts of the parent node, or put it another way parent node is “skos:broader” concept of the child nodes

## classification based queries

-  Query based on SKOS classification
-  Only with cgMDR at the moment
-  Query control
-  Classification schemes selection
-  Classification tree
-   Results (data elements only)
-  Results are data elements classified by selected term
-  Pagination
-  Use selected element
-  Details (of selected result item)
-  Definition
-  Data element’s value domain

**Notes:**
Functionally the same as in “Free Text” tab

## classification based queries

-  Query based on SKOS classification
-  Only with cgMDR at the moment
-  Query control
-  Classification schemes selection
-  Classification tree
-   Results (data elements only)
-  Results are data elements classified by selected term
-  Pagination
-  Use selected element
-  Details (of selected result item)
-  Definition
-  Data element’s value domain

## EA Addin Query for EVS Concept

**Notes:**
Query Service Manager as single unified interface to query multiple different vocabulary and metadata resources
Handles all the querying, and complex results processing
Caching can be enable for resources with slow connection
EVS NCIt, Meta, caDSR, cgMDR and a local terminology

## EA Addin

- Query Based on name

**Notes:**
Query Service Manager as single unified interface to query multiple different vocabulary and metadata resources
Handles all the querying, and complex results processing
Caching can be enable for resources with slow connection

## EA Addin

- Review results

## EA Addin

- Review Details

## EA Addin

- Click Use

**Notes:**
Query Service Manager as single unified interface to query multiple different vocabulary and metadata resources
Handles all the querying, and complex results processing
Caching can be enable for resources with slow connection

## EA Addin

**Notes:**
Query Service Manager as single unified interface to query multiple different vocabulary and metadata resources
Handles all the querying, and complex results processing
Caching can be enable for resources with slow connection

## EA Addin – Query for CDE

**Notes:**
Query Service Manager as single unified interface to query multiple different vocabulary and metadata resources
Handles all the querying, and complex results processing
Caching can be enable for resources with slow connection

## EA Addin

**Notes:**
Query Service Manager as single unified interface to query multiple different vocabulary and metadata resources
Handles all the querying, and complex results processing
Caching can be enable for resources with slow connection

## EA Addin

**Notes:**
Query Service Manager as single unified interface to query multiple different vocabulary and metadata resources
Handles all the querying, and complex results processing
Caching can be enable for resources with slow connection

## EA Addin

**Notes:**
Query Service Manager as single unified interface to query multiple different vocabulary and metadata resources
Handles all the querying, and complex results processing
Caching can be enable for resources with slow connection

## EA Addin

**Notes:**
Query Service Manager as single unified interface to query multiple different vocabulary and metadata resources
Handles all the querying, and complex results processing
Caching can be enable for resources with slow connection

## behind the scenes

**Query Service Manager**
**(web service)**

- cgMDR

- caDSR

- EVS

- LexBIG

- .....

**Notes:**
Query Service Manager as single unified interface to query multiple different vocabulary and metadata resources
Handles all the querying, and complex results processing
Caching can be enable for resources with slow connection

## query service manager

**XSLT Transform**

**REST/SOAP Call**

**Digest View**

- SOAP query
- (XML)

- Resource specific query
- (XML)

- Query Results
- (XML)

- Filtered Results
- (XML)

- SOAP Response
- (XML)

**Query Service Manager**

- cgMDR

- caDSR

- EVS

- LexBIG

**Notes:**
Generic SOAP query is transform into  resource specific query
QSM use resource specific query to make SOAP/REST call to resource
Query results are then processed to filtered out unnecessary information (XSLT)
Filtered result are then transform into a “Digest View” format which is understood by the Add-Ins
“REST/SOAP Call” block can be extended to support File System (local files) and SQL (relational DB) query

Note to self: Maybe can write an article/paper on this?

## Project Update

- GForge Project: _[https://gforge.nci.nih.gov/projects/cgmdr/](https://gforge.nci.nih.gov/projects/cgmdr/)_
- cgMDR
- Capturing bugs and enhancement requests
- Establishing more formal release process
- First Use Cases:
- Annotating and Loading NMDP Forms
- Batch Load Value Domains (COPPA)
- Simplify Extracting caDSR Content associated with a Classification Scheme, transform and display in QSM
- Add QSM support for VD, DEC, OC
- Enhance  XSLT to include more fields for end user “Results”
- Custom tags for caDSR Loading, SDK, caAdpater, etc.

## XForms

## XForms

- W3C standard
- declarative form language
- replace HTML forms
*cf *Adobe Flex, MS Silverlight, Mozilla XUL

## generation

- Installed XForm

- Viewed XForm

- uml profile
- eap ->xmi -> xml config

- registered view transformations

##  <xsl:template match=

- "xforms:input[ends-with(./@ref,'cgMDR:change_description')]">
-       <xforms:textarea
-          ref="//cgMDR:change_description">
-          <xforms:label>Change Description </xforms:label>
-       </xforms:textarea>
- </xsl:template>

- <xforms:input
- 	ref="//cgMDR:change_description">
-        <xforms:label>Change Description</xforms:label>
- </xforms:input>

- <xforms:textarea
- 	ref="//cgMDR:change_description">
-        <xforms:label>Change Description</xforms:label>
- </xforms:textarea>

## XML Schema Integration, RDF

## sawsdl + cgMDR

**Notes:**
Page 3:[Simple type of XML - annotated with the meta-data identifier in BOLD]* The translation from the native format used by the Meta-data repository into the equivalent XML Schema simple types is done at this point.* This is where the real value is added to the process, we can now track the meta-data identifier corresponding to any data filled into this field.
SAWSDL is a standard way of referencing models using XML Schema and WSDL 2.0 onwards. 

Zubrod: 2.16.840.1.113883.3.26.2:2003315:42 -    ECOG:   2.16.840.1.113883.3.26.2:2003315:4288:51
                </cg:criterion>

## SQIV: meta-inference pipeline

**Notes:**
[Diagram showing Meta-inference pipeline]* This is still active research, based upon matching up tissue array data with the form data. Only the Standardization and Inference parts have been packaged into a release so far, we have done the other parts by hand to make sure we can do them.* The meta-inference pipeline allows us to standardize the informationinto RDF. + Explain how the InfoPath form contains the XML Schema which we  annotated when the form was created with the meta-data identifier. + Explain that the XML Namespace in each XML document tells us that we  are talking about the XML Schema embedded in the InfoPath form. + Explain that what the SQIV tool lets us do is marry the meta-data  from the Schema back with the XML to create RDF which can go on to  be processed. That this is an automatic process, unlike the SAW  (proper ref) which requires special XSLTs to be written for each  transformation.* We can check that the data that we have collected matches the definition in the meta-data repository. (Yet to be packaged into SQIV)* We can do limited, but useful, inference using meta-inference rules from a meta-inference database. This is based on the Jena inference engine.* We can query the results of inference to produce output to external applications for further analysis. We use SPARQL to do this. (Yet to be packaged into SQIV)* Of course form data is not the only sort of data in modern clinical trials. Much of the data is from various machines, such as Tissue Micro Array machines. We want to be able to integrate this data with the form data. Providing we can convert this data into some XML format - not a large problem - we can standardize it.* As I mentioned earlier, trials evolve, and as they evolve the structure and content of the forms changes. Luckily we have marked it all up with meta-data which allows us to do inference.

## model referencing within XSDs

**Notes:**
Meta-inference database-----------------------[Diagram focusing in on meta-inference database with Jena script for F to C]* We can write inference rules describing how instances of meta-data are related. This allows us for example to transform data from a deprecated form into a more modern form.* The meta-inference database stores Jena scripts linking meta-data identifiers.

## equivalent in XPath 

## registry schema demo

- http://localhost:8080/exist/rest/db/mdr/schemas/schema.xquery