SlideShare ist ein Scribd-Unternehmen logo
1 von 17
Downloaden Sie, um offline zu lesen
High level presentation of data
modeler’s job & available tools
INTRODUCTION
Objectives of Euclid Datamodel 101

Slidecast dedicated to Euclid data modelers & developers
Help you understand what is expected and how to do it

Released as multiple episodes over time
1st episode: high-level overview of tools and process
2nd episode: the TIPS example
Following episodes: zoom on technical points
INTRODUCTION
Objectives and contents of this presentation

Get an overview of the data modeling process
Understand the data model workflow

Know where to find information
Know what tools are available

No complex details and technical information here…
… but high-level information and pointers to the right direction.
SUMMARY
The data modeling process

1 - Understand Euclid DataModel
Why using a Euclid DataModel? Why choosing XML? What is XML
Schema? What are the Euclid-specific XML rules my schema shall
comply with? How is DataModel SVN repository structured? How are
xml namespaces structured?

2 - Create your own DataModel
What should my DataModel contain? What software can I use to write
xml? How can I check if my datamodel is correct?

3 - Use the DataModel in your own code
How can I use the data model in my code? How can I use XML data
bindings? Can I get pre-configured tools all at once?
Why using a Euclid DataModel?
Euclid mission relies a lot on data transfer and manipulation
Data consistency between OUs, workflows, pipelines, storage
is a key point

use

EAS

Your DataModel will be:
- used to structure EAS db
- manipulated by your pipelines code

Compliant
Data
products
in/out

DataModel
IAL

SDC

use
Pipeline
code

DESIGN TIME

RUN TIME

Your data products will be:
- stored on EAS
- queryable from EAS
- transmitted to/from pipelines by IAL
Why choosing XML?
XML language brings many benefits:
Easy to read and understand by humans and machines
<coord>
<x>12.05</x>
<y>3.1</y>
</coord>

Many tools available to create, control and check xml
Strong type/namespace control and definition
Widely used and supported across the world
Self contained: express data and data structure

XML chosen above many other alternatives
Find information

- W3Schools tutorials:

http://www.w3schools.com/schema/
What is XML Schema?
Two file format you should be familiar with:

XSD (XML schema)

XML

Describes the data structure

Contains the actual data

<coord>
<x>12.05</x>
<y>3.1</y>
</coord>

complies
with

<xs:element name=«coord»>
<xs:complexType>
<xs:sequence>
<xs:element name=«x» type=«xs:float» />
<xs:element name=«y» type=«xs:float» />
</xs:sequence>
</xs:complexType>
</xs:element>

Find information
- W3Schools tutorials: http://www.w3schools.com/schema/
- Highlights on XML/XSD (DM Workshop):

http://euclid.roe.ac.uk/attachments/download/2744/Workshop_Nov2013_XSD_XML%20-%202.02.ppt
What are the Euclid-specific XML rules my
schema shall comply with?
Need for a fully consistent DataModel
everybody should follow the same rules

Among existing rules:
-

XML Schema file name
XML file name
Single root element
Element identifier name
Numeric type restriction

-

Recursive definitions
Target namespaces
Encoding
Unqualified namespaces
…

Rules are still in development, feedback is welcome and changes might be required
Find information
- Official Euclid XML rules: http://euclid.roe.ac.uk/dmsf/eucrma?folder_id=47
- DM Workshop presentation: http://euclid.roe.ac.uk/attachments/download/2762/DM-Rules.pdf
How is DataModel SVN repo structured?
Classic SVN structure
- trunk: latest stable work
- branches: specific feature parallel development
- tags: official releases

Dictionary and Interfaces for your products
- Dictionnary: definition of the complexTypes and
elements of your product entire DataModel
- Interfaces: definition of the data exchanged between
components. One root element only per type, that you can
see as a variable to access a product.

EC/SGS/ST/4-2-05-DM/schema

Find information
- DMWorkshop svn presentation: http://euclid.roe.ac.uk/projects/eucrma/wiki/20131411DMWSconf
- Dictionary of types:
https://apceucliddev.in2p3.fr/jenkins/job/Dictionary/ws/eXist/dictionary.html
- Configuration management & best practices: http://euclid.roe.ac.uk/projects/eucrma/wiki#Configuration-management
How are xml namespaces structured?
Under Dictionary and Interfaces, 4 top-level namespaces
- bas: common definitions shared by everyone
- ins: instrument specific definitions
- pro: OU-specific definitions
- sys: system specific definitions (storage, processing…)

/pro sub-levels
- one directory per OU
- one responsible custodian per directory

EC/SGS/ST/4-2-05-DM/schema

Find information
- DMWorkshop svn presentation: http://euclid.roe.ac.uk/projects/eucrma/wiki/20131411DMWSconf
- Dictionary of types:
https://apceucliddev.in2p3.fr/jenkins/job/Dictionary/ws/eXist/dictionary.html
- Configuration management & best practices: http://euclid.roe.ac.uk/projects/eucrma/wiki#Configuration-management
What should my DataModel contain?
Your DataModel should contain:
Must have

- definitions of pipeline inputs
- definitions of output products
- definitions of intermediate elements
used in your code

<sgs:dataContainer>

• ID
• Filename
• StorageNode
• Path

Your DataModel can use:
- new elements you define
- already existing elements
- dataContainers for files with no specific definition

Find information
- Fits DataModel (see dictionary and interfaces): schema/trunk/Dictionary/pro/sim/euc-test-ousim-tips.xsd
- DM Workshop DataContainer presentation: http://euclid.roe.ac.uk/attachments/download/2765
- DM wiki homepage: http://euclid.roe.ac.uk/projects/eucrma/wiki
What software can I use to write XML?
Of course, any text editor allows you to simply read and write XML
One of these two powerful XML development environment software is recommended
- Altova XMLSpy (license from 400€)
- Oxygen XML Editor (license from 99$ - 30 days free trial)

Project oriented browsing, handles dependencies
between files
Content completion for elements, attributes & values
XML validation and detection of errors

Schema modeling with graph representation

Find information
- Altova XMLSpy: http://www.altova.com/xmlspy.html
- Oxygen XML Editor: http://www.oxygenxml.com/
How can I check if my DataModel is correct?
Use Oxygen or XMLSpy to validate your XML and XML Schema files
Well formed XML: correct language syntax
Document validation: xml conforms to xml schema definition

Use Euclid Data Model Checker tools
Check compliance with Euclid DataModel rules
Python module & scripts available in Euclid SVN
(ECSGSST4-2-05-DMtoolstrunkDataModelChecker)

Find information
-

Altova XMLSpy:
http://www.altova.com/xmlspy.html
Oxygen XML Editor: http://www.oxygenxml.com/
Official Euclid XML rules: http://euclid.roe.ac.uk/dmsf/eucrma?folder_id=47
DM Workshop presentation: http://euclid.roe.ac.uk/attachments/download/2762/DM-Rules.pdf
- DataModelChecker readme (SVN):
ECSGSST4-2-05-DMtoolstrunkDataModelCheckerdoc
How can I use the DataModel in my code?
In your pipelines code, you might want to
in

Read and modify existing XML files
Produce new XML files
Manipulate data as specified in the DataModel (no XML file)

Multiple ways to do that
Must be
avoided

Use bindings generation

Bindings:

Pipeline
code

Data Model

Manually parse XML files

Prefered way

use

Use XPATH and xml libraries (Python lxml)

XML Schema elements become class definitions
XML product becomes an object instance

Find information
- XML data bindings resources: http://www.rpbourret.com/xml/XMLDataBinding.htm

out
How do I use XML data bindings?
Two XML binding libraries available for Euclid
For Python, based on PyXB
For C++, based on CodeSynthesis XSD

First step: generate classes from the DataModel
C++ classes:
.hxx & .cxx

generateStubs.py

DataModel
XML Schema
(.xsd files)

C++
Python
generate_allbindings.sh

Python
classes: .py

Second step: use generated classes in your own code
Create and access elements as you would do with usual classes/objects

Find information
- Python Bindings library: (SVN)/EC/SGS/ST/4-2-05-DM/tools/trunk/PythonBinding
- C++ Bindings library:
(SVN)/EC/SGS/ST/4-2-05-DM/tools/trunk/CppBinding
- DMWorkshop Python bindings presentation: http://euclid.roe.ac.uk/attachments/download/2734
- DMWorkshop C++ bindings presentation:
http://euclid.roe.ac.uk/attachments/download/2745

& http://euclid.roe.ac.uk/attachments/download/2773
Can I get pre-configured tools at once?
We are building a virtual machine you can use on your own computer
Based on Scientific Linux 6 (OS supported for Euclid)
Linked to Euclid CODEEN yum repository for package installation
Linked to Euclid SVN for source code checkin/checkout
Containing

-

Required software libraries
Pre-configured development environment
C++ & Python bindings generation libraries
Data Model Checker tools
… and more

Still in development, hopefully available soon

Find information
- CODEEN yum packages list: https://apceuclidrepo.in2p3.fr/nexus/content/groups/el6.euclid/
- Virtualbox virtualization tool: https://www.virtualbox.org/
- VMWare virtualization tool: http://www.vmware.com/fr/products/player/
In the next episode…

Tips DataModel from its creation
to the pipeline code

Stay tuned !

Weitere ähnliche Inhalte

Was ist angesagt?

ADO.NET difference faqs compiled- 1
ADO.NET difference  faqs compiled- 1ADO.NET difference  faqs compiled- 1
ADO.NET difference faqs compiled- 1Umar Ali
 
Ado.net session14
Ado.net session14Ado.net session14
Ado.net session14Niit Care
 
Sql interview questions and answers
Sql interview questions and  answersSql interview questions and  answers
Sql interview questions and answerssheibansari
 
576 oracle-dba-interview-questions
576 oracle-dba-interview-questions576 oracle-dba-interview-questions
576 oracle-dba-interview-questionsNaveen P
 
Oracle Database Introduction
Oracle Database IntroductionOracle Database Introduction
Oracle Database IntroductionChhom Karath
 
Oracle dba interview
Oracle dba interviewOracle dba interview
Oracle dba interviewNaveen P
 
php databse handling
php databse handlingphp databse handling
php databse handlingkunj desai
 
All Oracle-dba-interview-questions
All Oracle-dba-interview-questionsAll Oracle-dba-interview-questions
All Oracle-dba-interview-questionsNaveen P
 
An Introduction To Oracle Database
An Introduction To Oracle DatabaseAn Introduction To Oracle Database
An Introduction To Oracle DatabaseMeysam Javadi
 
Ado.Net Architecture
Ado.Net ArchitectureAdo.Net Architecture
Ado.Net ArchitectureUmar Farooq
 
Introduction to Oracle Database
Introduction to Oracle DatabaseIntroduction to Oracle Database
Introduction to Oracle Databasepuja_dhar
 
Sqlite
SqliteSqlite
SqliteKumar
 
Object relational and extended relational databases
Object relational and extended relational databasesObject relational and extended relational databases
Object relational and extended relational databasesSuhad Jihad
 
Jdbc 4.0 New Features And Enhancements
Jdbc 4.0 New Features And EnhancementsJdbc 4.0 New Features And Enhancements
Jdbc 4.0 New Features And Enhancementsscacharya
 
The oracle database architecture
The oracle database architectureThe oracle database architecture
The oracle database architectureAkash Pramanik
 

Was ist angesagt? (20)

ADO.NET difference faqs compiled- 1
ADO.NET difference  faqs compiled- 1ADO.NET difference  faqs compiled- 1
ADO.NET difference faqs compiled- 1
 
Ado.net session14
Ado.net session14Ado.net session14
Ado.net session14
 
Oracle
OracleOracle
Oracle
 
Sql interview questions and answers
Sql interview questions and  answersSql interview questions and  answers
Sql interview questions and answers
 
MySQL and its basic commands
MySQL and its basic commandsMySQL and its basic commands
MySQL and its basic commands
 
7 data management design
7 data management design7 data management design
7 data management design
 
ado.net
ado.netado.net
ado.net
 
576 oracle-dba-interview-questions
576 oracle-dba-interview-questions576 oracle-dba-interview-questions
576 oracle-dba-interview-questions
 
Oracle Database Introduction
Oracle Database IntroductionOracle Database Introduction
Oracle Database Introduction
 
Oracle dba interview
Oracle dba interviewOracle dba interview
Oracle dba interview
 
php databse handling
php databse handlingphp databse handling
php databse handling
 
All Oracle-dba-interview-questions
All Oracle-dba-interview-questionsAll Oracle-dba-interview-questions
All Oracle-dba-interview-questions
 
An Introduction To Oracle Database
An Introduction To Oracle DatabaseAn Introduction To Oracle Database
An Introduction To Oracle Database
 
Ado.net
Ado.netAdo.net
Ado.net
 
Ado.Net Architecture
Ado.Net ArchitectureAdo.Net Architecture
Ado.Net Architecture
 
Introduction to Oracle Database
Introduction to Oracle DatabaseIntroduction to Oracle Database
Introduction to Oracle Database
 
Sqlite
SqliteSqlite
Sqlite
 
Object relational and extended relational databases
Object relational and extended relational databasesObject relational and extended relational databases
Object relational and extended relational databases
 
Jdbc 4.0 New Features And Enhancements
Jdbc 4.0 New Features And EnhancementsJdbc 4.0 New Features And Enhancements
Jdbc 4.0 New Features And Enhancements
 
The oracle database architecture
The oracle database architectureThe oracle database architecture
The oracle database architecture
 

Ähnlich wie Euclid Data Model 101 - Episode 01: Overview

Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...
Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...
Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...Jerry SILVER
 
How to use source control with apex?
How to use source control with apex?How to use source control with apex?
How to use source control with apex?Oliver Lemm
 
EclipseCon Eu 2012 - Build your own System Engineering workbench
EclipseCon Eu 2012 - Build your own System Engineering workbenchEclipseCon Eu 2012 - Build your own System Engineering workbench
EclipseCon Eu 2012 - Build your own System Engineering workbenchmelbats
 
Environment Canada's Data Management Service
Environment Canada's Data Management ServiceEnvironment Canada's Data Management Service
Environment Canada's Data Management ServiceSafe Software
 
DDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin MeetingDDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin MeetingJaime Martin Losa
 
Develop an App with the Odoo Framework
Develop an App with the Odoo FrameworkDevelop an App with the Odoo Framework
Develop an App with the Odoo FrameworkOdoo
 
Terraform modules restructured
Terraform modules restructuredTerraform modules restructured
Terraform modules restructuredAmi Mahloof
 
Terraform Modules Restructured
Terraform Modules RestructuredTerraform Modules Restructured
Terraform Modules RestructuredDoiT International
 
Silverlight Development & The Model-View-ViewModel Pattern
Silverlight Development & The Model-View-ViewModel PatternSilverlight Development & The Model-View-ViewModel Pattern
Silverlight Development & The Model-View-ViewModel PatternDerek Novavi
 
PowerPoint
PowerPointPowerPoint
PowerPointVideoguy
 
Adv DB - Full Handout.pdf
Adv DB - Full Handout.pdfAdv DB - Full Handout.pdf
Adv DB - Full Handout.pdf3BRBoruMedia
 

Ähnlich wie Euclid Data Model 101 - Episode 01: Overview (20)

Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...
Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...
Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...
 
CTDA MODS and Islandora XML Forms
CTDA MODS and Islandora XML FormsCTDA MODS and Islandora XML Forms
CTDA MODS and Islandora XML Forms
 
How to use source control with apex?
How to use source control with apex?How to use source control with apex?
How to use source control with apex?
 
EclipseCon Eu 2012 - Build your own System Engineering workbench
EclipseCon Eu 2012 - Build your own System Engineering workbenchEclipseCon Eu 2012 - Build your own System Engineering workbench
EclipseCon Eu 2012 - Build your own System Engineering workbench
 
treeview
treeviewtreeview
treeview
 
treeview
treeviewtreeview
treeview
 
Environment Canada's Data Management Service
Environment Canada's Data Management ServiceEnvironment Canada's Data Management Service
Environment Canada's Data Management Service
 
DDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin MeetingDDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin Meeting
 
Develop an App with the Odoo Framework
Develop an App with the Odoo FrameworkDevelop an App with the Odoo Framework
Develop an App with the Odoo Framework
 
Terraform modules restructured
Terraform modules restructuredTerraform modules restructured
Terraform modules restructured
 
Terraform Modules Restructured
Terraform Modules RestructuredTerraform Modules Restructured
Terraform Modules Restructured
 
Silverlight Development & The Model-View-ViewModel Pattern
Silverlight Development & The Model-View-ViewModel PatternSilverlight Development & The Model-View-ViewModel Pattern
Silverlight Development & The Model-View-ViewModel Pattern
 
Schema webinar
Schema webinarSchema webinar
Schema webinar
 
Linq To XML Overview
Linq To XML OverviewLinq To XML Overview
Linq To XML Overview
 
Earth Science Markup Language (ESML) - A Tutorial
Earth Science Markup Language (ESML) - A TutorialEarth Science Markup Language (ESML) - A Tutorial
Earth Science Markup Language (ESML) - A Tutorial
 
PowerPoint
PowerPointPowerPoint
PowerPoint
 
Jacob Keecheril
Jacob KeecherilJacob Keecheril
Jacob Keecheril
 
Adv DB - Full Handout.pdf
Adv DB - Full Handout.pdfAdv DB - Full Handout.pdf
Adv DB - Full Handout.pdf
 
ALA Interoperability
ALA InteroperabilityALA Interoperability
ALA Interoperability
 
IT6701-Information management question bank
IT6701-Information management question bankIT6701-Information management question bank
IT6701-Information management question bank
 

Kürzlich hochgeladen

TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 

Kürzlich hochgeladen (20)

TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 

Euclid Data Model 101 - Episode 01: Overview

  • 1. High level presentation of data modeler’s job & available tools
  • 2. INTRODUCTION Objectives of Euclid Datamodel 101 Slidecast dedicated to Euclid data modelers & developers Help you understand what is expected and how to do it Released as multiple episodes over time 1st episode: high-level overview of tools and process 2nd episode: the TIPS example Following episodes: zoom on technical points
  • 3. INTRODUCTION Objectives and contents of this presentation Get an overview of the data modeling process Understand the data model workflow Know where to find information Know what tools are available No complex details and technical information here… … but high-level information and pointers to the right direction.
  • 4. SUMMARY The data modeling process 1 - Understand Euclid DataModel Why using a Euclid DataModel? Why choosing XML? What is XML Schema? What are the Euclid-specific XML rules my schema shall comply with? How is DataModel SVN repository structured? How are xml namespaces structured? 2 - Create your own DataModel What should my DataModel contain? What software can I use to write xml? How can I check if my datamodel is correct? 3 - Use the DataModel in your own code How can I use the data model in my code? How can I use XML data bindings? Can I get pre-configured tools all at once?
  • 5. Why using a Euclid DataModel? Euclid mission relies a lot on data transfer and manipulation Data consistency between OUs, workflows, pipelines, storage is a key point use EAS Your DataModel will be: - used to structure EAS db - manipulated by your pipelines code Compliant Data products in/out DataModel IAL SDC use Pipeline code DESIGN TIME RUN TIME Your data products will be: - stored on EAS - queryable from EAS - transmitted to/from pipelines by IAL
  • 6. Why choosing XML? XML language brings many benefits: Easy to read and understand by humans and machines <coord> <x>12.05</x> <y>3.1</y> </coord> Many tools available to create, control and check xml Strong type/namespace control and definition Widely used and supported across the world Self contained: express data and data structure XML chosen above many other alternatives Find information - W3Schools tutorials: http://www.w3schools.com/schema/
  • 7. What is XML Schema? Two file format you should be familiar with: XSD (XML schema) XML Describes the data structure Contains the actual data <coord> <x>12.05</x> <y>3.1</y> </coord> complies with <xs:element name=«coord»> <xs:complexType> <xs:sequence> <xs:element name=«x» type=«xs:float» /> <xs:element name=«y» type=«xs:float» /> </xs:sequence> </xs:complexType> </xs:element> Find information - W3Schools tutorials: http://www.w3schools.com/schema/ - Highlights on XML/XSD (DM Workshop): http://euclid.roe.ac.uk/attachments/download/2744/Workshop_Nov2013_XSD_XML%20-%202.02.ppt
  • 8. What are the Euclid-specific XML rules my schema shall comply with? Need for a fully consistent DataModel everybody should follow the same rules Among existing rules: - XML Schema file name XML file name Single root element Element identifier name Numeric type restriction - Recursive definitions Target namespaces Encoding Unqualified namespaces … Rules are still in development, feedback is welcome and changes might be required Find information - Official Euclid XML rules: http://euclid.roe.ac.uk/dmsf/eucrma?folder_id=47 - DM Workshop presentation: http://euclid.roe.ac.uk/attachments/download/2762/DM-Rules.pdf
  • 9. How is DataModel SVN repo structured? Classic SVN structure - trunk: latest stable work - branches: specific feature parallel development - tags: official releases Dictionary and Interfaces for your products - Dictionnary: definition of the complexTypes and elements of your product entire DataModel - Interfaces: definition of the data exchanged between components. One root element only per type, that you can see as a variable to access a product. EC/SGS/ST/4-2-05-DM/schema Find information - DMWorkshop svn presentation: http://euclid.roe.ac.uk/projects/eucrma/wiki/20131411DMWSconf - Dictionary of types: https://apceucliddev.in2p3.fr/jenkins/job/Dictionary/ws/eXist/dictionary.html - Configuration management & best practices: http://euclid.roe.ac.uk/projects/eucrma/wiki#Configuration-management
  • 10. How are xml namespaces structured? Under Dictionary and Interfaces, 4 top-level namespaces - bas: common definitions shared by everyone - ins: instrument specific definitions - pro: OU-specific definitions - sys: system specific definitions (storage, processing…) /pro sub-levels - one directory per OU - one responsible custodian per directory EC/SGS/ST/4-2-05-DM/schema Find information - DMWorkshop svn presentation: http://euclid.roe.ac.uk/projects/eucrma/wiki/20131411DMWSconf - Dictionary of types: https://apceucliddev.in2p3.fr/jenkins/job/Dictionary/ws/eXist/dictionary.html - Configuration management & best practices: http://euclid.roe.ac.uk/projects/eucrma/wiki#Configuration-management
  • 11. What should my DataModel contain? Your DataModel should contain: Must have - definitions of pipeline inputs - definitions of output products - definitions of intermediate elements used in your code <sgs:dataContainer> • ID • Filename • StorageNode • Path Your DataModel can use: - new elements you define - already existing elements - dataContainers for files with no specific definition Find information - Fits DataModel (see dictionary and interfaces): schema/trunk/Dictionary/pro/sim/euc-test-ousim-tips.xsd - DM Workshop DataContainer presentation: http://euclid.roe.ac.uk/attachments/download/2765 - DM wiki homepage: http://euclid.roe.ac.uk/projects/eucrma/wiki
  • 12. What software can I use to write XML? Of course, any text editor allows you to simply read and write XML One of these two powerful XML development environment software is recommended - Altova XMLSpy (license from 400€) - Oxygen XML Editor (license from 99$ - 30 days free trial) Project oriented browsing, handles dependencies between files Content completion for elements, attributes & values XML validation and detection of errors Schema modeling with graph representation Find information - Altova XMLSpy: http://www.altova.com/xmlspy.html - Oxygen XML Editor: http://www.oxygenxml.com/
  • 13. How can I check if my DataModel is correct? Use Oxygen or XMLSpy to validate your XML and XML Schema files Well formed XML: correct language syntax Document validation: xml conforms to xml schema definition Use Euclid Data Model Checker tools Check compliance with Euclid DataModel rules Python module & scripts available in Euclid SVN (ECSGSST4-2-05-DMtoolstrunkDataModelChecker) Find information - Altova XMLSpy: http://www.altova.com/xmlspy.html Oxygen XML Editor: http://www.oxygenxml.com/ Official Euclid XML rules: http://euclid.roe.ac.uk/dmsf/eucrma?folder_id=47 DM Workshop presentation: http://euclid.roe.ac.uk/attachments/download/2762/DM-Rules.pdf - DataModelChecker readme (SVN): ECSGSST4-2-05-DMtoolstrunkDataModelCheckerdoc
  • 14. How can I use the DataModel in my code? In your pipelines code, you might want to in Read and modify existing XML files Produce new XML files Manipulate data as specified in the DataModel (no XML file) Multiple ways to do that Must be avoided Use bindings generation Bindings: Pipeline code Data Model Manually parse XML files Prefered way use Use XPATH and xml libraries (Python lxml) XML Schema elements become class definitions XML product becomes an object instance Find information - XML data bindings resources: http://www.rpbourret.com/xml/XMLDataBinding.htm out
  • 15. How do I use XML data bindings? Two XML binding libraries available for Euclid For Python, based on PyXB For C++, based on CodeSynthesis XSD First step: generate classes from the DataModel C++ classes: .hxx & .cxx generateStubs.py DataModel XML Schema (.xsd files) C++ Python generate_allbindings.sh Python classes: .py Second step: use generated classes in your own code Create and access elements as you would do with usual classes/objects Find information - Python Bindings library: (SVN)/EC/SGS/ST/4-2-05-DM/tools/trunk/PythonBinding - C++ Bindings library: (SVN)/EC/SGS/ST/4-2-05-DM/tools/trunk/CppBinding - DMWorkshop Python bindings presentation: http://euclid.roe.ac.uk/attachments/download/2734 - DMWorkshop C++ bindings presentation: http://euclid.roe.ac.uk/attachments/download/2745 & http://euclid.roe.ac.uk/attachments/download/2773
  • 16. Can I get pre-configured tools at once? We are building a virtual machine you can use on your own computer Based on Scientific Linux 6 (OS supported for Euclid) Linked to Euclid CODEEN yum repository for package installation Linked to Euclid SVN for source code checkin/checkout Containing - Required software libraries Pre-configured development environment C++ & Python bindings generation libraries Data Model Checker tools … and more Still in development, hopefully available soon Find information - CODEEN yum packages list: https://apceuclidrepo.in2p3.fr/nexus/content/groups/el6.euclid/ - Virtualbox virtualization tool: https://www.virtualbox.org/ - VMWare virtualization tool: http://www.vmware.com/fr/products/player/
  • 17. In the next episode… Tips DataModel from its creation to the pipeline code Stay tuned !