| <!DOCTYPE HTML> | |
| <html> | |
| <head> | |
| <meta charset="utf-8"> | |
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> | |
| <title>Eclipse Free BIRD Tools</title> | |
| <meta name="viewport" content="width=device-width, initial-scale=1"> | |
| <meta name="description" content="Eclipse Free BIRD Tools" /> | |
| <meta name="keywords" content="Eclipse Free BIRD Tools" /> | |
| <meta name="author" content="Neil Mackenzie" /> | |
| <!-- Facebook and Twitter integration --> | |
| <meta property="og:title" content=""/> | |
| <meta property="og:image" content=""/> | |
| <meta property="og:url" content=""/> | |
| <meta property="og:site_name" content=""/> | |
| <meta property="og:description" content=""/> | |
| <meta name="twitter:title" content="" /> | |
| <meta name="twitter:image" content="" /> | |
| <meta name="twitter:url" content="" /> | |
| <meta name="twitter:card" content="" /> | |
| <link href="https://fonts.googleapis.com/css?family=Raleway:100,300,400,700" rel="stylesheet"> | |
| <!-- Animate.css --> | |
| <link rel="stylesheet" href="css/animate.css"> | |
| <!-- Icomoon Icon Fonts--> | |
| <link rel="stylesheet" href="css/icomoon.css"> | |
| <!-- Themify Icons--> | |
| <link rel="stylesheet" href="css/themify-icons.css"> | |
| <!-- Bootstrap --> | |
| <link rel="stylesheet" href="css/bootstrap.css"> | |
| <!-- Magnific Popup --> | |
| <link rel="stylesheet" href="css/magnific-popup.css"> | |
| <!-- Owl Carousel --> | |
| <link rel="stylesheet" href="css/owl.carousel.min.css"> | |
| <link rel="stylesheet" href="css/owl.theme.default.min.css"> | |
| <!-- Theme style --> | |
| <link rel="stylesheet" href="css/style.css"> | |
| <!-- Modernizr JS --> | |
| <script src="js/modernizr-2.6.2.min.js"></script> | |
| <!-- FOR IE9 below --> | |
| <!--[if lt IE 9]> | |
| <script src="js/respond.min.js"></script> | |
| <![endif]--> | |
| </head> | |
| <body> | |
| <div class="gtco-loader"></div> | |
| <div id="page"> | |
| <nav class="gtco-nav" role="navigation"> | |
| <div class="gtco-container"> | |
| <div class="row"> | |
| <div class="col-sm-2 col-xs-12"> | |
| <div id="gtco-logo"><a href="index.html">Eclipse Free BIRD Tools</a></div> | |
| </div> | |
| <div class="col-xs-10 text-right menu-1"> | |
| <ul> | |
| <li><a href="opensource.html">Open Source</a></li> | |
| <li><a href="collaboration.html">Collaborative</a></li> | |
| <li><a href="calculation.html">Calculation</a></li> | |
| <li><a href="model_driven.html">Model</a></li> | |
| <li><a href="ldm.html">LDM Tools</a></li> | |
| </ul> | |
| </div> | |
| </div> | |
| </div> | |
| </nav> | |
| <header id="gtco-header" class="gtco-cover gtco-cover-xs gtco-inner" role="banner"> | |
| <div class="gtco-container"> | |
| <div class="row"> | |
| <div class="col-md-12 col-md-offset-0 text-left"> | |
| <div class="display-t"> | |
| <div class="display-tc"> | |
| <div class="row"> | |
| <div class="col-md-8 animate-box"> | |
| <h1 class="no-margin">LDM Tools</h1> | |
| <p>LDM Tools</p> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </header> | |
| <!-- END #gtco-header --> | |
| <div class="gtco-section"> | |
| <div class="gtco-container"> | |
| <div class="row"> | |
| <div class="col-md-8 col-md-offset-2 gtco-heading text-left"> | |
| <h2>LDM Tools</h2> | |
| <h3>Logical Data Model Tools</h3> | |
| <h4>SQLDeveloper to Ecore Translator</h4> | |
| The SQLDeveloper to Ecore Translator allows us to translate a Logical Data Model written in SQLDeveloper, into a model defined in the open-source Ecore standard. <br><br> | |
| There are multiple open source libraries based around the Ecore standard for visualization, text representation, model comparison, model management , model transformation (e.g. to another standard like SDD\SMCubes )<br><br> | |
| <h4>Forward Engineering with VTL Migration</h4> | |
| Using the Eclipse Edapt open source library for forward engineering models, and migrating model data, we look to provide a solution whereby we can easily define forward engineering of the BIRD Logical Data Model, while at the same time generating equivalent transformations to translate data from the forward engineered model into the Logical Data Model (and vice versa). <br><br> | |
| <h4>Logical Data Model Text Navigator</h4> | |
| An important advantage of using a text based version of the model is that we can have very detailed version control, using standard tools such as git which have great tools support in code editors. <br><br> | |
| We use Eclipse Xcore as a means of describing and navigating models in a means that is easier than navigating the current very large diagram. As Eclipse XCore uses Eclipse Xtext , and Eclipse XText supports the language server protocol, the we can integrate this with any code editor that works with the language server protocol, such as Microsoft VSCode and Eclipse Theia or Eclipse IDE.<br><br> | |
| The XCore text representing an Ecore model is generated at the click of a button.<br><br> | |
| <h4>SparkSQL for LDM</h4> | |
| SparkSQL is a language based on SQL 199 standard which included ways of dealing with more structured data (particularly structs and arrays).<br><br> | |
| SparkSQL can run on the popular Apache Spark analytics engine.<br><br> | |
| Like VTL, SparkSQL focusses on chaining together dataset transformations which are immutable and side effect free, | |
| this makes transformations easier to test and easier to run in a fast and parallel fashion.<br><br> | |
| The goal of SparkSQL for LDM is to allow more concise transformations, by allowing a component (column) of an intermediate dataset to | |
| be a full entity (like an instrument) instead of only primitve types (numbers, strings and enumrations), and also to allow for | |
| differentiating behaviour based on subtypes, but done in a way that is intuitive to users of SQL (hence allowing for some useful levels of abstraction).<br><br> | |
| We show here a visualization of the kind of lineage model that we wish to derive from a SparkSQL program: <br><br> | |
| <img src="fullPicWithTracability.PNG" alt="" height="600" width="800"> <br> | |
| <br> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- END .gtco-services --> | |
| <footer id="gtco-footer" class="gtco-section" role="contentinfo"> | |
| <div class="gtco-copyright"> | |
| <div class="gtco-container"> | |
| <div class="row"> | |
| <div class="col-md-6 text-left"> | |
| </div> | |
| <div class="col-md-6 text-right"> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </footer> | |
| </div> | |
| <div class="gototop js-top"> | |
| <a href="#" class="js-gotop"><i class="icon-arrow-up"></i></a> | |
| </div> | |
| <!-- jQuery --> | |
| <script src="js/jquery.min.js"></script> | |
| <!-- jQuery Easing --> | |
| <script src="js/jquery.easing.1.3.js"></script> | |
| <!-- Bootstrap --> | |
| <script src="js/bootstrap.min.js"></script> | |
| <!-- Waypoints --> | |
| <script src="js/jquery.waypoints.min.js"></script> | |
| <!-- Carousel --> | |
| <script src="js/owl.carousel.min.js"></script> | |
| <!-- Magnific Popup --> | |
| <script src="js/jquery.magnific-popup.min.js"></script> | |
| <script src="js/magnific-popup-options.js"></script> | |
| <!-- Main --> | |
| <script src="js/main.js"></script> | |
| </body> | |
| </html> | |