Composition of XML Dialects A ModelicaXML case study Adrian Pop, - - PowerPoint PPT Presentation

composition of xml dialects
SMART_READER_LITE
LIVE PREVIEW

Composition of XML Dialects A ModelicaXML case study Adrian Pop, - - PowerPoint PPT Presentation

Composition of XML Dialects A ModelicaXML case study Adrian Pop, Ilie S avga, Uwe Amann, Peter Fritzson Programming Environments Laboratory Linkping University Outline Introduction Modelica ModelicaXML Compost


slide-1
SLIDE 1

Composition of XML Dialects

A ModelicaXML case study

Adrian Pop, Ilie S avga, Uwe Aßmann, Peter Fritzson Programming Environments Laboratory Linköping University

slide-2
SLIDE 2

2

April 03, 2004

Outline

Introduction Modelica ModelicaXML Compost ModelicaXML extension of Compost Modelica Component Model Composition programs Conclusions and Future Work

slide-3
SLIDE 3

3

April 03, 2004

Introduction

Why the need for Modelica composition and

transformation?

Interoperability between existing modeling languages

  • r CAD tools and Modelica

Automatic generation of different version of models

from product specifications. Choosing best design based on automatic simulation.

Automatic configuration of models using external

sources (XML, databases, files)

Protection of intellectual property through obfuscation Fine grain support for library developers

slide-4
SLIDE 4

4

April 03, 2004

Modelica

Declarative language

Equations and mathematical functions allow acausal

modeling, high level specification, increased correctness

Multi-domain modeling

Combine electrical, mechanical, thermodynamic,

hydraulic, biological, control, event, real-time, etc...

Everything is a class

S

trongly typed obj ect-oriented language with a general class concept, Java & Matlab like syntax

Visual component programming

Hierarchical system architecture capabilities

Efficient, non-proprietary

Efficiency comparable to C; advanced equation

compilation, e.g. 300 000 equations

slide-5
SLIDE 5

5

April 03, 2004

Modelica Visual Programming

Decomposition and Abstraction of an Automatic Gearbox

planetary1=110/50 C4=0.12 C5=0.12 planetary2=110/50 C 6 = . 1 2 bearing2 C 8 = . 1 2 d e m u l t i p l e x shaftS=2e-3 S planetary3=120/44 C11=0.12 shaftS1=2e-3 S C 1 2 = . 1 2 bearing1 bearing4

slide-6
SLIDE 6

6

April 03, 2004

Modelica code Modelica XML Modelica Parser read

  • utput

class Test "comment" Real x; Real xdot; equation xdot = der(x); end Test; <modelicaxml> <definition ident= "Test" comment="comment"> <component ident="x" type="Real" visibility="public" /> <component ident="xdot" type="Real" visibility="public" /> <equation>...</equation> </definition> </modelicaxml> modelicaxml definition component component equation

ModelicaXML

slide-7
SLIDE 7

7

April 03, 2004

Compost Overview

Java Fragment Box XML Fragment Box Fragment Boxes Run Time Boxes Components (Boxes) (Core) UNICOMP Components .... Transformation Engine Layer Abstract Composition Layer Interface layer Language specific Composition Layer Time specific Composition Layer Lazy Runtime Component UNICOMP Abstract Semantics Time specific rules Java Fragment Values X-HTML Fragment Values Runtime Objects Java Semantics ModelicaXML X-HTML rules Modelica Semantics Runtime rules SVG XMI etc. XML Dialects 5 4 3 2 1

slide-8
SLIDE 8

8

April 03, 2004

ModelicaXML extension of Compost

Modelica Code ModelicaXML Modelica Parser Modelica UnParser Compost + XML Recoder Composition programs

  • n

Modelica Modelica Box Hierarchy Modelica Hook Hierarchy Composition,Transformation, and Refactoring

  • n Modelica Components

Modelica Component Model

slide-9
SLIDE 9

9

April 03, 2004

Modelica Component Model – Box hierarchy

XMLBox ModelicaXMLBox ModelicaContainer ModelicaElement ModelicaClass ModelicaModel ModelicaConnector ModelicaBlock ModelicaRecord ModelicaType ModelicaPackage ModelicaFunction ModelicaComponent ModelicaEquationSection ModelicaAlgorithmSection 0..*

slide-10
SLIDE 10

10

April 03, 2004

Example Box Hierarchy

<definition ident="Engine" restriction="class"> <component visibility="public” variability="parameter" type="Integer" ident="cylinders"> <modification_equals> <integer_literal value="4"/> </modification_equals> </component> <component visibility="public" type="Cylinder" ident="c"> <array_subscripts> <component_reference ident="cylinders"/> </array_subscripts> </component> </definition>

class Engine parameter Integer cylinders = 4; Cylinder c[cylinders]; end Engine;

ModelicaClass ModelicaComponent ModelicaComponent

slide-11
SLIDE 11

11

April 03, 2004

Modelica Component Model – Hook hierarchy

Hook DeclaredHook ImplicitHook XMLDeclaredHook ModelicaModifierHook XMLImplicitHook ModelicaParameterHook ModelicaRealHook ModelicaIntegerHook ModelicaStringHook Other Modelica Hooks

slide-12
SLIDE 12

12

April 03, 2004

<component visibility="public” variability="parameter" type="Integer" ident="cylinders"> <modification_equals> <integer_literal value="4"/> </modification_equals> </component>

parameter Integer cylinders = 4;

ModelicaParameterHook name value

<definition ident=”NewEngine" restriction="class"> <extends type=”Engine”> .... </definition>

class NewEngine extends Engine; .... end NewEngine;

Example: Hooks

<definition ident=”Engine” restriction="class"> <extract> <component>..</component> ... </extract> </definition>

slide-13
SLIDE 13

13

April 03, 2004

Composition Programs: Mixin

ModelicaCompositionSystem cs = new ModelicaCompositionSystem(); ModelicaClass resultBox = cs.createModelicaClass(”Class1.mo.xml”); ModelicaClass firstMixin = cs.createModelicaClass(”Class2.mo.xml”); ModelicaClass secondBox = cs.createModelicaClass(”Result.mo.xml”); resultBox.mixin(firstMixin); resultBox.mixin(secondMixin); resultBox.print();

slide-14
SLIDE 14

14

April 03, 2004

Composition Program: Input

class CelestialBody ``Celestial Body'' Real mass; String name; constant Real g = 6.672e-11; parameter Real radius; end CelestialBody;

slide-15
SLIDE 15

15

April 03, 2004

Composition Program

ModelicaCompositionSystem cs = new ModelicaCompositionSystem(); ModelicaClass bodyBox = cs.createModelicaClass(``Body.mo.xml''); ModelicaClass celestialBodyBox = cs.createModelicaClass(``Celestial.mo.xml''); ModelicaElement extractedPart = celestialBody.findHook(``extract'').getValue(); celestialBody.findHook(``extract'').bind(null); bodyBox.append(extractedPart); bodyBox.print(); celestialBody.findHook(``superclass'').bind(``Body''); celestialBody.print();

slide-16
SLIDE 16

16

April 03, 2004

Composition Programs: Result

class Body ``Generic Body'' Real mass; String name; end Body; class CelestialBody ``Celestial Body'' extends Body; constant Real g = 6.672e-11; parameter Real radius; end CelestialBody;

slide-17
SLIDE 17

17

April 03, 2004

Conclusions and Future Work

ModelicaXML+Compost

a start in providing better tools for Modelica

language

Future Work

refine the Modelica+Compost extension more composition operators validation of composition using OpenModelica

compiler

automatic generation of Modelica component

model from the Modelica ontology

slide-18
SLIDE 18

18

April 03, 2004

End

Thank you! Questions?

slide-19
SLIDE 19

19

April 03, 2004

ModelicaXML and Compost

ModelicaXML

http:/ / www.ida.liu.se/ ~adrpo/ modelica/ xml

Compost

http:/ / www.the-compost-system.org/

slide-20
SLIDE 20

20

April 03, 2004

S

  • ftware Composition Workshop 2004, Barcelona

Components Transformation and Composition Sagrada Familia