Separate a module into smaller parts
I don't see the advantage of adding Seed and Knowledge into the prototype of World (unless you've got more code to tell me otherwise). If you don't need anything from the instance at all, then you don't need them in the instance. You can put them like static members instead.

With that, you can do what jQuery did. jQuery's jQuery and $ point to a constructor function that builds jQuery objects. That's why you can do jQuery() and $(). 

But in JS, functions are objects and like any other object, you can add properties. It's the same reason why you can also do jQuery.each or $.each. Basically they made their constructor their namespace as well.

So you can do the following to World:

(function(window){

  var World = window.World = function(){/*World constructor code*/};

  World.prototype.someFn = function(){/*...*/};

}(window));


And like how non-instance jQuery plugins extend (and yes, you can place this in another file. Just make sure the World library is loaded first):

(function(World){

  //This part would be synonymous to $.somePlugin = function(){...}
  var Seed = World.Seed = function(){/*Seed constructor code*/};

  Seed.prototype.someFn = function(){/*...*/};

}(World));


To use them:

var myWorld = new World();        //Using World as a constructor
var mangoSeed = new World.Seed(); //Using World to access the Seed constructor