Coder Social home page Coder Social logo

org.geppetto.core's Introduction

Build Status

Geppetto logo

Geppetto Core Bundle

This project contains the Geppetto core bundle. Inside this module Geppetto keeps all the common interfaces, models, and utilities shared across every other bundle.

For information about how this fits into Geppetto refer to the umbrella project org.geppetto on GitHub.

org.geppetto.core's People

Contributors

adrianq avatar borismarin avatar ddanny avatar ddelpiano avatar domenic avatar gidili avatar jhurliman avatar jrmartin avatar mattearnshaw avatar mlolson avatar msasinski avatar niteshthali08 avatar pgleeson avatar robbie1977 avatar skhayrulin avatar slarson avatar tarelli avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

org.geppetto.core's Issues

Change importValue interface in model interpreter

The actual interface is:
Value importValue(ImportValue importValue) throws ModelInterpreterException;

With this interface we are not able to handle multiple runtime projects simultaneously: we are able to find the path from the ImportValue (String path = ((Variable)importValue.eContainer().eContainer()).getPath();) but that path must refer to a model we have not access to, unless we have a reference to the model in the ModelInterpreter.

Proposal new interface:
The importType method has a reference to the geppetto model through a , GeppettoModelAccess parameter. We can add this parameter also to importValue:

Value importValue(ImportValue importValue, , GeppettoModelAccess modelAccess) throws ModelInterpreterException;

Improve GeppettoRecordingCreator

The quality of code in the GeppettoRecordingCreator can be improved. Also the interactions with the DAT to HDF5 conversion class. Also time is created for each simulationtree while it should only be added for the simulationtree that are part of an aspect for which there is a simulatorconfiguration defined since those are the only aspects that will be creating time.

Tests broken: cannot find HDF5 FileFormat on Windows

Building on windows the following error occurs:

Tests in error:
  HDF5ReaderTest.testExample1:38 » GeppettoExecution java.lang.NullPointerExcept...
  HDF5ReaderTest.testExample2:46 » GeppettoExecution java.lang.NullPointerExcept...
  HDF5ReaderTest.testExample3:54 » GeppettoExecution java.lang.NullPointerExcept...
  HDF5ReaderTest.test:30 » GeppettoExecution java.lang.NullPointerException
  TestConvertACNet2DATToRecordingClass.datToHDF5:136 » GeppettoExecution Cannot ...
  TestConvertBigDATToRecordingClass.datToHDF5:143 » GeppettoExecution Cannot fin...
  TestConvertDATToRecordingClass.datToHDF5:64 » GeppettoExecution Cannot find HD...
  TestConvertMuscleDATToRecordingClass.datToHDF5:136 » GeppettoExecution Cannot ...
  TestGeppettoRecordingsCreator.addSibling:68 » GeppettoExecution Cannot find HD...
  TestGeppettoRecordingsCreator.addSingleInteger:160 » GeppettoExecution Cannot ...
  TestGeppettoRecordingsCreator.addSetInteger:188 » GeppettoExecution Cannot fin...
  TestGeppettoRecordingsCreator.addGrandChildren:130 » GeppettoExecution Cannot ...
  TestGeppettoRecordingsCreator.addInitialVariable:39 » GeppettoExecution Cannot...

Tested on Windows 10, org.geppetto.core v1.0.0

Most likely the Java class unpacking the HDF5 is out of date and doesn't detect newer Windows systems

IWatchableVariableListFeature may need access to experiment results

It used to be that recordings (results) where inside aspects, now they are at the experiment level but in case of this implementation of the interface recordings are needed (as there is no other way to interrogate watchable variables if there's no simulator, we just have a recording). Since they are not at that level anymore, they are not found and it's not populating the simulation tree.

I think we should pass results down to the IWatchableVariableListFeature interface. It is not unreasonable that we may want to get the list of watchable variables from whatever is in the recording (which is what I need and what was happening in the development branch) in other cases too.

For example, take a NeuroML recording with no simulator defined in the experiment, where would we get the watchable variables if not from the recording? And so on for SPH etc.

Add HTMLMetaDataNote

  • Add class server side
  • Add class client side
  • Add serialisation with escape for HTML characters

Update backend to use conversion service

  • Create ServiceRegistry to manage what input/output format is connected to the different Services
  • Enable backend code to use the conversion simulator if specified by the user (see schema extension) or if needed (the format returned by the ModelInterpreter doesn't match with the format accepted by the specified simulator, look for registered conversion service that can take care of this conversion or return an error if none are present)
  • Add API method to the backend to getSupportedOutputs
  • Add API mothed to the backend for writeModel

Extend schema to allow for a conversion service to be specified

  • Extend geppetto simulation schema to allow for specifying a conversion service in the simulator block.
  • Update geppetto simulation file documentation

See below for an example:

<tns:entity>
     <tns:id>hhcell</tns:id>
     <tns:aspect>
        <tns:id>electrical</tns:id>
        <tns:simulator>
            <tns:simulatorId>jLemsSimulator</tns:simulatorId>
    <tns:conversionServiceId>NeuroMLConversionService</tns:conversionServiceId>
         </tns:simulator>
         <tns:model>
            <tns:modelInterpreterId>lemsModelInterpreter</tns:modelInterpreterId>
            <tns:modelURL>https://raw.github.com/openworm/org.geppetto.samples/master/LEMS/SingleComponentHH/LEMS_NML2_Ex5_DetCell.xml</tns:modelURL>
         </tns:model>
     </tns:aspect> 
</tns:entity>

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.