Comments (15)
Moving forward with this one upon release of datreant.core
.
from mdsynthesis.
Maybe it makes sense for there to be some sort of unsplittable object (ie how do I clearly know which the smallest matryoshka doll is). How is a nested Sim different from a Group of Sims?
from mdsynthesis.
Sorry @richardjgowers, just now plugging back into every loose thread.
I'm not sure I understand your question. Since Treant
s can have as much depth as the filesystem supports, this extends to Sim
s, and I was just noting a usage pattern that could work as an alternative to the "multiple Universes" functionality to be deprecated.
As for Group
s, these are basically Treant
s with a persistent Bundle
attached. They don't require "members" to be within their own tree, though that's allowed (and generally more robust when things move).
Does that help?
from mdsynthesis.
I was just thinking there might be value to creating an object (Sim
) which is unambiguously singular. So when you hit this point, you know you've reached the end of the rabbit hole.
In terms of semantics, if I've run multiple simulations, I expect to have to use a container (Group
?) of Sim
s.. not a Sim
of Sim
s?
So wrt your diagram up top, I'd expect main_Sim
to be a group not a sim.
I'm not sure if this breaks the entire model though, I don't really use MDS in complicated ways!
from mdsynthesis.
@richardjgowers functionally you could do either way. You could use a Group
and just keep the related Sim
s together as members of it, or you could just nest the Sim
s. The point is that whatever you choose there is an alternative given that we are chopping off existing behavior of individual Sim
s.
from mdsynthesis.
something something something preferably one and only one way?
from mdsynthesis.
@richardjgowers fair enough. We considered axing Group
entirely, but the conclusion there was it gives functionality one can't get with an in-memory aggregation (Bundle
) or with nesting Treant
s. That discussion could be revisited, though, because there might be a better way entirely.
from mdsynthesis.
Sorry, I think I'm just playing devils avocado at this point. I just don't get how a Sim is multiple things, but maybe it makes sense with other data.
from mdsynthesis.
I think support for axing multiple universes is universal.
Like @richardjgowers , I also find it conceptually cleaner to use a Group
to perform (close to) the functionality of multiple universes than to nest Sim
s but this is a second-order question. If we're not 100% sure of the Matroshka-Sim
s then it might be sufficient for right now simply not to advertise the functionality, just in case we later introduce something that disallows a Sim
to contain another Sim
.
If this is the last thing between us an a datreant
-compatible release of MDSynthesis then I suggest to agree quickly on the course of action.
from mdsynthesis.
P.S.: I understand where @dotsdl is coming from with the hierarchical ordering in the nested Sim
s but the downside is that users have to think of yet another data structure in addition to Sim
, Treant
, Bundle
, Group
--- which is all well for developers but rather confusing for the casual user.
Or in MDS you shield people completely from the datreant
stuff.... (which is probably more work and less pay-off for the user in the long term)
from mdsynthesis.
@orbeckst yeah, the delay has been mostly in implementation, which involves ripping things out of the Universes
limb and putting them into the top-level namespace. I've started work on this, but haven't finished yet.
The main worry in keeping it is that the json schema is more complicated than it needs to be, so if we're going to break it, it needs to be now.
from mdsynthesis.
Sure, break it now.
And I removed the question mark and the question from the issue ;-)
from mdsynthesis.
@orbeckst the hierarchical ordering is one alternative, but certainly not the only one. Basically, Treants can be nested, and this just works. One could probably use Groups similarly. Depends on individual needs/style; we don't prescribe anything here.
from mdsynthesis.
Aaaaand, they're gone: 7162a99
Need to update docs, then we'll make a release.
from mdsynthesis.
Note: these changes break all Sims you may have been using up until this point. When the dust settles on the release I'll make a conversion script for getting usable Sims back out of existing ones. It should be easier to maintain changes in the future once we have releases to increment them on.
from mdsynthesis.
Related Issues (20)
- Failing in adding a Universe creates bad state HOT 2
- failed to store DataFrame with column multi-index HOT 4
- first release HOT 12
- Setting Sim.universe to universe with chain reader doesn't work HOT 1
- Support auxilliaries in Universe definitions HOT 3
- create sim from existing Treant HOT 4
- handle folders with several simulations HOT 2
- The current release doesn't work with MDAnalysis 0.16.0dev HOT 3
- make a 1.0 release? HOT 11
- Remove Sim treanttype HOT 3
- Move to MDAnalysis org HOT 9
- Removing all tags/categories HOT 2
- python 3 release? HOT 3
- add conversion script from 0.8 to 1.0 HOT 3
- Error when using sim.tags/sim.categories HOT 3
- So much faster! HOT 1
- Is it possible to store in data or somewhere else files or paths to them? HOT 8
- Two different documentations online? HOT 1
- Order of Treants in a Bundle HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mdsynthesis.