Mapping Data Models to VOTable

Slides:



Advertisements
Similar presentations
VOTable 2005 Discussion Summary and Roadmap. Agenda Description of some applications dealing.
Advertisements

VOTable 2005 Applications. Agenda Description of some applications Description of some applications Nilesh UrunkarAbout C++ Parser and CONVOT Nilesh UrunkarAbout.
SimDB as a TAP service various TIG members (IVOA.IVOATheorySimDB)IVOA.IVOATheorySimDB.
1 ICS-FORTH EU-NSF Semantic Web Workshop 3-5 Oct Christophides Vassilis Database Technology for the Semantic Web Vassilis Christophides Dimitris Plexousakis.
Chapter 10: Designing Databases
XML: Extensible Markup Language
Shelley Powers, O’Reilly SNU IDB Lab. Hyewon Kim
An Introduction to XML Based on the W3C XML Recommendations.
Chapter 5: Elementary Data Types Properties of types and objects –Data objects, variables and constants –Data types –Declarations –Type checking –Assignment.
SDPL 2003Notes 2: Document Instances and Grammars1 2.5 XML Schemas n A quick introduction to XML Schema –W3C Recommendation, May 2, 2001: »XML Schema Part.
Sunday, June 28, 2015 Abdelali ZAHI : FALL 2003 : XML Schemas XML Schemas Presented By : Abdelali ZAHI Instructor : Dr H.Haddouti.
XP New Perspectives on XML Tutorial 4 1 XML Schema Tutorial – Carey ISBN Working with Namespaces and Schemas.
Avro Apache Course: Distributed class Student ID: AM Name: Azzaya Galbazar
Formalizing and Querying Heterogeneous Documents with Tables Krishnaprasad Thirunarayan and Trivikram Immaneni Department of Computer Science and Engineering.
Mapping Data Models to VOTable The specification Published version dml/doc/MappingDMtoVOTable-v pdf.
SDPL 2002Notes 2: Document Instances and Grammars1 2.5 XML Schemas n A quick introduction to XML Schema –W3C Recommendation, May 2, 2001: »XML Schema Part.
Why XML ? Problems with HTML HTML design - HTML is intended for presentation of information as Web pages. - HTML contains a fixed set of markup tags. This.
1 XML Schemas. 2 Useful Links Schema tutorial links:
Dr. Azeddine Chikh IS446: Internet Software Development.
An Introduction to XML Presented by Scott Nemec at the UniForum Chicago meeting on 7/25/2006.
Using JavaBeans and Custom Tags in JSP Lesson 3B / Slide 1 of 37 J2EE Web Components Pre-assessment Questions 1.The _____________ attribute of a JSP page.
SDPL 2005Notes 2.5: XML Schemas1 2.5 XML Schemas n Short introduction to XML Schema –W3C Recommendation, 1 st Ed. May, 2001; 2 nd Ed. Oct, 2004: »XML Schema.
New Perspectives on XML, 2nd Edition
1 Credits Prepared by: Rajendra P. Srivastava Ernst & Young Professor University of Kansas Sponsored by: Ernst & Young, LLP (August 2005) XBRL Module Part.
Sheet 1XML Technology in E-Commerce 2001Lecture 2 XML Technology in E-Commerce Lecture 2 Logical and Physical Structure, Validity, DTD, XML Schema.
Advanced Accounting Information Systems Day 31 XML Language Foundation November 6, 2009.
XML 2nd EDITION Tutorial 4 Working With Schemas. XP Schemas A schema is an XML document that defines the content and structure of one or more XML documents.
1 Tutorial 14 Validating Documents with Schemas Exploring the XML Schema Vocabulary.
XML Schema. Why Validate XML? XML documents can generally have any structure XML grammars define specific document structures Validation is the act of.
Working with XML Schemas ©NIITeXtensible Markup Language/Lesson 3/Slide 1 of 36 Objectives In this lesson, you will learn to: * Declare attributes in an.
Discussed in Kyoto Schema changes for the next version (Gerard Lemson)  will be included in VOTable1.2 Schema changes for the next version (Gerard Lemson)
VOTable agenda Current VOTable status Current VOTable status News from Applications News from Applications Questions about VOTable schema Questions about.
Experience with XML Schema Ashok Malhotra Schema Usage  Mapping XML Schema and XML documents controlled by the Schema to object classes and instances.
 XML derives its strength from a variety of supporting technologies.  Structure and data types: When using XML to exchange data among clients, partners,
CHAPTER 9 File Storage Shared Preferences SQLite.
SDPL : XML Schemas1 2.5 XML Schemas n Short introduction to XML Schema –W3C Recommendation, 1 st Ed. May, 2001; 2 nd Ed. Oct, 2004: »XML Schema.
1 Introduction to XML Babak Esfandiari. 2 What is XML? introduced by W3C in 98 Stands for eXtensible Markup Language it is more general than HTML, but.
1 XML and XML in DLESE Katy Ginger November 2003.
COP Introduction to Database Structures
Product Training Program
Databases and DBMSs Todd S. Bacastow January 2005.
Logical Database Design and the Rational Model
XML: Extensible Markup Language
Advanced Programing practices
Names and Attributes Names are a key programming language feature
Type Checking Generalizes the concept of operands and operators to include subprograms and assignments Type checking is the activity of ensuring that the.
XML Schema for WIRED XML Detector Description Workshop
XML in CCSDS CCSDS Spring Meeting - Montreal
SysML v2 Formalism: Requirements & Benefits
XML QUESTIONS AND ANSWERS
Business Process Measures
Chapter 4 Relational Databases
Week 4 Object-Oriented Programming (1): Inheritance
Data Modeling II XML Schema & JAXB Marc Dumontier May 4, 2004
Discussion on XSD open issues
CS 174: Server-Side Web Programming February 12 Class Meeting
Akoma Ntoso and functionally equivalent naming conventions (FENC)
The Re3gistry software and the INSPIRE Registry
Chapter 2 Database Environment.
Data, Databases, and DBMSs
Chapter 11 Introduction to Programming in C
PREMIS Tools and Services
Detailed Release Note Change Re-baseline UMIG XSDs
Advanced Programing practices
Detailed Release Note Change Re-baseline UMIG XSDs
Utypes for Model Referencing
UTYPES Jonathan McDowell.
VOTable Meetings: Conclusions
RegTAP 1.1 Implementation IVOA Interop, Paris, May 2019 Registry Working Group Theresa Dower MAST / STScI / NAVO.
New Perspectives on XML
Presentation transcript:

Mapping Data Models to VOTable The specification Published version https://volute.googlecode.com/svn/trunk/projects/dm/vo-dml/doc/MappingDMtoVOTable-v1.0-20150427.pdf Last working version at: https://volute.googlecode.com/svn/trunk/projects/dm/vo-dml/doc/MappingDMtoVOTable-v1.0-201506xx.docx

Current Document Outline Introduction Use Cases The need for a mapping language Mapping with the <VODML> element General information about this spec Examples: Mapping VO-DML  VOTable Patterns for annotating VOTable [Normative] Notable absences Serializing to other file formats References Appendix A: The VODML annotation element Appendix B: Growing complexity: naïve, advanced and guru clients Appendix C: Regular expressions for mapping Appendix D: Frequently Asked Questions Please read it!

Discussion items Mapping = identifying instances in (ad hoc) serializations Using VO-DML Use of VOTable meta-data elements No change apart from <VODML> Use of GROUPs Structure VODML element Mapping expression syntax Use of ivoa:quantity types Use of vo-dml: vodmlrefs vodml-ref prefix, explicitly declared or name ? Use of identifiers Mapping references vo-dml:GROUPref, vo-dml:ORMReference, vo-dml:RemoteReference Mapping to TAP_SCHEMA, FITS

1. Mapping = identifying instances in (ad hoc) serializations The doc discusses a formalize way to map VO-DML models to tables. It defines this as: Identifying instances of model types inside tabular data structures Using VO-DML means: We have formal expressions for the data model elements and can use these in the mapping description.

Reminder Data Models, when properly reflecting the real world, are not lists They are graphs.

Especially For information integration the best modelling approach is to try to represent the world as it is.  Domain Model For we have no idea how someone else has represented the world for their application But if we assume they have based it on a conceptual model of the world (at least implicitly) there is a chance to map between them.

Pragmatism We live in the same world, even though we want to do different things with(in) it. Let’s model that world as directly as possible. Main issue then is level of detail.

The world is complex, whether you like it or not

2. Using VO-DML Standard, formal modelling language (aka meta-model) Explicit modelling concepts promote understanding E.g. object types vs value types Restrictions facilitate making modelling choices Standardization supports reuse of models by models Machine readability supports validation, implementation E.g. XSLT scripts Allows standard (faithful) serialization E.g. XML schema, HTML documentation, Java classes, TAP_SCHEMAs See VO-URP

Standardizing mapping Standardization by using meta-model mapping VO-DML modelling concepts represented by VOTable metadata elements! Mapping document at volute (for now) Last announced version: https://volute.googlecode.com/svn/trunk/projects/dm/vo-dml/doc/MappingDMtoVOTable-v1.0-20150427.docx Working copy: https://volute.googlecode.com/svn/trunk/projects/dm/vo-dml/doc/MappingDMtoVOTable-v1.0-201506xx.docx

Use of VOTable meta-data elements No change required to VOTable schema apart from <VODML> discussion on Banff replace use of @utype by a new element only on : GROUP, PARAM(ref), FIELDref Use of GROUPs data models group (more) primitive elements into (structured) types That’s what GROUPs are for Often elements themselves are structured: GROUP hierarchies

4. <VODML> element structure <xs:complexType name="VODMLAnnotation"> <xs:sequence> <xs:element name="TYPE" type="VODMLReference“ minOccurs="0" maxOccurs="unbounded“/> <xs:element name="ROLE" type="VODMLReference“ minOccurs="0“/> <xs:element name="OPTIONMAPPING" type="VODMLOptionMapping" minOccurs="0" maxOccurs="unbounded“/> </xs:sequence> </xs:complexType>

VODML contents Order: TYPE-ROLE or ROLE-TYPE? TYPE multiplicity 0..1 : “casting” of ROLE to actual type 0..* : list ALL¹ types compatible with the ROLE, i.e. actual type and all super types. (for "naïve clients") ¹ Maybe only “first” super type in separate models.

OPTIONMAPPING Enumeration or SKOSConcept define valid values for attribute map to VOTabe’s VALUES/OPTION pattern (Legacy) serialization may have chosen own values Do we need to allow translation? How if no OPTION defined on FIELD or PARAM? Is OPTIONMAPPING on VODML best way to model? disadvantage: repeat of OPTION values required advantage: multiple annotation possible alt: add VODML to OPTION itself, with only the vodml-ref to the literal

E.g. value  enum literal (from skyserver.sdss.org/PhotoObjAll.type) <VODML> <ROLE>src:Source.classification</ROLE> <OPTIONMAPPING> <VALUE>6</VALUE> <LITERAL>src:source.SourceClassification.star</LITERAL> </OPTIONMAPPING> <VALUE>3</VALUE> <LITERAL>src:source.SourceClassification.galaxy</LITERAL> </OPTIONMAPPING> <VALUE>0</VALUE> <LITERAL>src:source.SourceClassification.unknown</LITERAL> </OPTIONMAPPING> </VODML>

5: Mapping expression syntax Chapter 7 uses somewhat abstract, but formal syntax to define mapping pattern {GROUP G | G ⊂ RESOURCE & G ⊄ TABLE & G ⊄ GROUP[VODML] & G/VODML/TYPE ⇒ ObjectType & G/VODML/ROLE = NULL} == a GROUP (G) with a VODML/TYPE identifying an ObjectType and no VODML/ROLE, contained in a RESOURCE, not contained in a TABLE, not contained in a GROUP with a VODML element. Formally define all patterns that a client should understand, that a provider should use to express meaning. Aims to be comprehensive and rigorous, scope open for discussion

6. Use of ivoa: model https://volute. googlecode Defines reusable primitive types conceptual: ivoa:string, ivoa:integer, ivoa:real not: float vs double, int vs long vs short Defines reusable quantity types ivoa:quantity.RealQuantity with ucd, unit etc can be mapped directly to FIELDref ucd/unit implicitly mapped to FIELD’s attributes

Issues sufficient number of predefined types? too many? do we need 'ucd' attribute in quantity types? can we support other (SKOS) vocabularies

7: Use of vo-dml: serialization model https://volute. googlecode Some serialization concepts must be available for annotations concepts not required in model definition <objectType>vo-dm:Model : defines how/which models are used in serialization <dataType>vo-dml:Identifier : how to define explicit identifiers <objectType>vo:dml:Reference: how to serialize references <objectType>vo-dml:ObjectTypeInstance implicit super type of all serialized ObjectType instances defines roles useful for serializations <attribute>vo-dml:ObjectTypeInstance.ID [vo-dml:Identifier] <reference>vo-dml:ObjectTypeInstance.container [vo-dml:ObjectTypeInstance]

Issues Do we want this model? Change name? how formal do we want to be model introduced to preserve invariant that each vodml-ref points to a concept in a model Change name? vo-dml-s (for serialization) ???

8: vodml-ref prefix, explicitly declared or Model.name ? Long discussion came to conclusion not to allow flexible prefixes use fixed name of Model Advantage: simpler for clients, can always look for same prefix Disadvantage need fixed list of names independently created custom models may clash

9. Use of identifiers VO-DML does not define explicit identifier role Each objectType instance is implicitly assume to have an ID No statement on structure Objects can be identified in many different ways. Primary key column(s) in table xsd:ID or xsd:key in XML serialization GROUP/@ID element in VOTable ivo/identifier URI ... vo-dml:Identifier DataType vo-dml:Identifier.field [0..*] May be mapped to single column

10. Mapping Reference-s Different types: vo-dml:GROUPref : refer to singleton-GROUP vo-dml:ORMReference : Object-relational mapping pattern vo-dml:RemoteReference : reference to object in remote document E.g. standard coordinate frames of photometry filters stored in some registry(?) Acceptable remote serializations?

11. Mapping to TAP_SCHEMA, FITS Wrap with VOTable Need standardize way of expressing wrapped data structures E.g. (from “VO-DML Mapper”) TBD

Implementations, code, tools

Guru clients VOTable validator VOTable loader VOTable interpreter Check VOTable loader generate in-memory instances of Java classes generated from VO-DML using XSLT VOTable interpreter Writes instances to XML document following VO-DML-I schema Using Java classes generated from VO-DML, not necessary All load VO-DML docs dynamically Algorithms will be written up

that’s it