Ruleset Modeling Language - Discussions
September 06, 2010, 11:30:59 PM *
Welcome, Guest. Please login or register.

Login with username, password and session length
News: The new website and forum are up.  Beware that they are still teething however.
 
   Home   Help Search Login Register  
Pages: [1]
  Print  
Author Topic: Memotica Docu - Draft IV  (Read 516 times)
Cayle
Not Normal
Administrator
Hero Member
*****
Offline Offline

Posts: 2042



View Profile WWW
« on: January 07, 2009, 02:22:47 AM »

I'd mentioned in the intro thread for draft III that I'd try to get this version out before I left for the desert.  That did not pan out, but I'm back and IV is ready.  It adds extensive documentation on restrictions (p45) and paths (p25).  Version V will include Entities and will likely also start incorporating Action/Stimulus/Agent information.

I'd very much appreciate feedback
« Last Edit: January 07, 2009, 07:50:46 PM by Cayle » Logged

The Ruleset Modeling Language - A project for making it easier to design virtual worlds.
D_Order
Dead Flashlight Holder
Administrator
Hero Member
*****
Offline Offline

Posts: 1191


Mini Mes


View Profile
« Reply #1 on: January 10, 2009, 07:45:17 PM »

I have to finish reading it, but your explainations are getting better and better.
Logged

Large things might come in small packages, but mine are all filled with poop!
Cayle
Not Normal
Administrator
Hero Member
*****
Offline Offline

Posts: 2042



View Profile WWW
« Reply #2 on: January 11, 2009, 04:30:41 AM »

Y'know, there is the old adage about catching more flies than with honey right?  But are you aware that fruit flies dig vinegar?  A bowl of vinegar and a dash of detergent (to break the surface tension) can clear a kitchen of fruit flies in no time (any leave a mass of dead flies at the bottom of the bowl).

In other words, pour the critism on.   Tongue
Logged

The Ruleset Modeling Language - A project for making it easier to design virtual worlds.
Edward
Project Angela Team
Sr. Member
***
Offline Offline

Posts: 443


View Profile
« Reply #3 on: January 16, 2009, 10:42:41 PM »

I finally read through the PDF carefully.  It looks good; some sections are clearer than in the last version, in addition to the new material.  A few minor points:

One page 5, you state, "Memotica encourages you to work from first principles to build your vision up from rather than taking the carpentry approach."  It looks like you left out a word after "build your vision up from".

Under Template Paths (page 26), you state that a period is used as a separator.  To give this greater emphasis, it might be useful to say something like, "A period, rather than a slash, is used as a separator."  Otherwise some people may miss this point and write the file path the way they normally would (with slashes), even though you have examples.

You might want to move the "Why would you use enhancements?" explanation to the beginning of the section instead of having it at the end.

That's about it; I don't see any need for major changes, except of course for posting it in the wiki (once it's up) and adding the additional material you mentioned (especially agents, actions, and stimuli).
Logged
technikhil
Have Posted
*
Offline Offline

Posts: 5


View Profile WWW
« Reply #4 on: January 27, 2009, 03:31:19 AM »

Hi David,
    I was going through the document in order to get a better handle on the project. I have only reached page 16 so far and I thought I'd put in a few comments on what I have read so far before I forget it.
    The heading "The World Trinity"  seems to be empty except for the quote (nice touch btw - I like the one by Nehru Smiley)  - is this to be filled in the next draft?
    The next section "The DNA Trinity" has one empty page before the MetaMemes sub-heading... Does this mean that Meta-Memes is part of the "The DNA trinity" or is it a separate topic needing its own heading and quote?
     I struggled for awhile with the explanation on metameme recursion. I got hung up on the explanation around the use of cardinality to allow metamemes to have references to other metamemes of the same type. I am still a bit confused as to how exactly you prevent circular references. Can a metememe A have a member metameme B that in turn has metameme A as a member ?


   
Logged
Cayle
Not Normal
Administrator
Hero Member
*****
Offline Offline

Posts: 2042



View Profile WWW
« Reply #5 on: January 27, 2009, 09:33:39 PM »

The heading "The World Trinity"  seems to be empty except for the quote (nice touch btw - I like the one by Nehru Smiley)  - is this to be filled in the next draft?
Glad you like the quote  Smiley

That section was something that I was waiting to fill in until later.  Firstly, I'd like the get the action and stimulus handling coded and tested.  It is usually good to write this kind of documentation when the processing is freshly coded.  I find that writing it beforehand is like writing a spec; it is very theoretical, pitfalls, roadbloacks and "oh %&$?, I did not think of that before.  How do we handle it?" moments inevitably come up.  Writing right after the testcases have all passed green means that everything - including the corner cases (which is what many test cases cover) - is fresh in the mind.

Also, we are toying with special diagramming pallets for designing actions and stimuli graphically, they will aslo have to be fleshed out.  The idea is that if you just want to create an action or a stimulus and the required metamemes all exist, you can just bang it out.  If you need to peer deeper and design or modify a metameme, then you'll have to understand how the DNA trinity works.

The next section "The DNA Trinity" has one empty page before the MetaMemes sub-heading... Does this mean that Meta-Memes is part of the "The DNA trinity" or is it a separate topic needing its own heading and quote?
That is a typo.  The DNA Trinity is meme, meta-meme and entity.

I struggled for awhile with the explanation on metameme recursion. I got hung up on the explanation around the use of cardinality to allow metamemes to have references to other metamemes of the same type. I am still a bit confused as to how exactly you prevent circular references. Can a metememe A have a member metameme B that in turn has metameme A as a member ?
That needs a cleaner explanation.  The crux is this.  A plastic bag can in principle contain another plastic bag; or many.  However, you are not required to have plastic bags within your plastic bags.  So we can say the membership cardinality is 0..n.  If the cardinality was 1..n or n..n, we would have a problem.  That would mean that a shopping bag must also have another shopping bag inside.  Since the inside shopping bag must also contain a shopping bag, we'd get an endless loop just creating the shopping bag.  The shoppingbag would be a meme.  It might be created from a "portable container" metameme.

I hope this helps.
Logged

The Ruleset Modeling Language - A project for making it easier to design virtual worlds.
technikhil
Have Posted
*
Offline Offline

Posts: 5


View Profile WWW
« Reply #6 on: January 28, 2009, 09:04:27 AM »

Hi David (or should I call you Cayle ?),
Quote
That needs a cleaner explanation.  The crux is this.  A plastic bag can in principle contain another plastic bag; or many.  However, you are not required to have plastic bags within your plastic bags.  So we can say the membership cardinality is 0..n.  If the cardinality was 1..n or n..n, we would have a problem.  That would mean that a shopping bag must also have another shopping bag inside.  Since the inside shopping bag must also contain a shopping bag, we'd get an endless loop just creating the shopping bag.  The shoppingbag would be a meme.  It might be created from a "portable container" metameme. I hope this helps.
Ok - thats much clearer - I think a good metaphor in the document would go a long way Grin. So by specifying that the minimum cardinality in these cases (where a metameme has a child of it's own type) should be 0 we are providing a way to stop.
Another metaphor occurred to me - the metameme spec implementation is like a tree structure - you start from the trunk (base metameme) and recursively go down the branches (child metameme) till you reach a point where no more branching happens at which point you are at the leaf Smiley

In the discussion of the memes - I have a couple of questions
  • You mention that "metameme B is enhanced by D and that C extends B" (page 20 - last paragraph) - whats the difference between "enhance" and "extend" ?
  • In page 23 the first paragraph the distinction between a discrete member and a stacked member is not clear to me - both seem to have the same definition.

Thats it for now - I am at Templates right now so stay tuned for more dumb questions  Cheesy
« Last Edit: January 28, 2009, 09:08:02 AM by technikhil » Logged
Cayle
Not Normal
Administrator
Hero Member
*****
Offline Offline

Posts: 2042



View Profile WWW
« Reply #7 on: January 28, 2009, 11:22:31 AM »

Hi David (or should I call you Cayle ?),

Either works.  Cayle is just my habitual online nic.

Ok - thats much clearer - I think a good metaphor in the document would go a long way Grin. So by specifying that the minimum cardinality in these cases (where a metameme has a child of it's own type) should be 0 we are providing a way to stop.

exactly

Another metaphor occurred to me - the metameme spec implementation is like a tree structure - you start from the trunk (base metameme) and recursively go down the branches (child metameme) till you reach a point where no more branching happens at which point you are at the leaf Smiley

True.  That might also be a workable mataphor; except when we have circular membership; unless you start using Banyan trees as your metaphor.   Grin

In the discussion of the memes - I have a couple of questions
  • You mention that "metameme B is enhanced by D and that C extends B" (page 20 - last paragraph) - whats the difference between "enhance" and "extend" ?
  • In page 23 the first paragraph the distinction between a discrete member and a stacked member is not clear to me - both seem to have the same definition.

Extension works like OOP.  If MyFancyClass extends Object (Java and Python have a class called Object that pretty much everything extends, either directly or indirectly), then it inherits everything in Object and adds its own goodies. 

Enhancement is described starting on Pg 30.  It works as sort of a runtime injection of properties and members to entities being created from the enhanced memes.  The best metaphor I can come up with is a plasmid from molecular biology; but that is an obscure analogy.  Explaining enhancement still needs work I think.

Thats it for now - I am at Templates right now so stay tuned for more dumb questions  Cheesy

There are no dumb questions; only answers that have not been refined well enough for a new audience and ideas that might be weak.  When I was in graduate school, my PhD advisor could take something incredibly complicated and difficult to understand and make it sound simple.  That was because he really knew his stuff and knew how to explain it.  Ever since then, I have used the ability to explain clearly and simply as a measure of understanding.  If a concept is difficult to explain succinctly, then either I've not thought enough about explaining it, or there is a bug in the idea itself.
« Last Edit: January 28, 2009, 10:48:37 PM by Cayle » Logged

The Ruleset Modeling Language - A project for making it easier to design virtual worlds.
D_Order
Dead Flashlight Holder
Administrator
Hero Member
*****
Offline Offline

Posts: 1191


Mini Mes


View Profile
« Reply #8 on: January 29, 2009, 12:19:23 PM »

I view enhancements as working up the chain.  If an orc is a humanoid I can enhance orc and humanoid gets it by default.  Or am I thinking wrong Cayle?  So many things to remember.  Ah, that's better.  Give me another shock please.
Logged

Large things might come in small packages, but mine are all filled with poop!
Cayle
Not Normal
Administrator
Hero Member
*****
Offline Offline

Posts: 2042



View Profile WWW
« Reply #9 on: January 29, 2009, 05:48:25 PM »

Not quite...

Humanoid would be a metameme.  When you design your orc, you are designing a specific type of meme from that metameme.   

But Also Kind of...

Suppose you have this really cool/awful idea of making all humanoids have rocket packs in their feet so that you can do Tribes style play.  If you get your humanoids from a package and don't want to edit humanoid (i.e. don't want it breaking the next time humanoid gets patched by the maker) or can't (the maker of humanoid has a license restriction against changes), then you want to add a "rocket feet" metameme that enhances humanoid.  You'll then need to add a "rocket feet" meme and make it enhance all of the specific types of humanoids you want to have rocket feet.  Then your orcs get their rocket feet at runtime and the original humanoid metameme is unmolested.

But extension is easier...

...after all, you could just skip this whole enhancement dance, EXTEND the humanoid metameme and give it rocket feet and use that as the metameme for your various humanoid memes.

Or not...

...if your license prohibits it, or if you are very far into development when you get your rocket feet idea, it may not be possible or practical to switch your orcs to a different metameme basis.  Suppose you want to experiment with rocket feet orcs, but want to be able to pull the plug if something goes horribly wrong.  Enhancement is good for experimenting because it is easy to yank an enhancement out if you don't like the results. 
« Last Edit: January 29, 2009, 05:51:14 PM by Cayle » Logged

The Ruleset Modeling Language - A project for making it easier to design virtual worlds.
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006-2009, Simple Machines LLC Valid XHTML 1.0! Valid CSS!