Ken Webb 2011-11-19T14:59:08Z
This page is part of a series that explores the many ways in which Xholon and Wikipedia can interact with each other. The tutorial develops a simple model of the Solar System, that can be reused in other Xholon applications, such as models of climate change on the Earth. The Earth is one of the objects in the Solar System, and is critically dependent on energy from the Sun which is at the center of the Solar System.
The previous step derived a set of object classes, and arranged them into an inheritance hierarchy. A typical next step in developing a Xholon application, is to specify a containment or composite structure hierarchy for instances of those classes. A careful reading of the community consensus represented by the Wikipedia article on the Solar System, suggests the following XML as a reasonable arrangement.
<SolarSystem> <Stars> <Star roleName="Sun"/> </Stars> <PlanetarySystem> <Planets> <Planet roleName="Earth"/> </Planets> </PlanetarySystem> <InterplanetaryMedium/> </SolarSystem>
This states that our Solar System contains stars, a planetary system, and an interplanetary medium. There is only one star, which we call the Sun. The planets are one possible component of the planetary system, which might also include things like dwarf planets, asteroids, and comets. For now, there is only one planet, the Earth.
An alternative arrangement would be to place all instances of Planet, DwarfPlanet, Asteroid, Comet, etc. as direct children of PlanetarySystem, perhaps ordered by their mean distance from the Sun.
<SolarSystem> <Star roleName="Sun"/> <PlanetarySystem> <Planet roleName="Mercury"/> <Planet roleName="Venus"/> <Planet roleName="Earth"/> <Planet roleName="Mars"/> <Asteroid roleName="Vesta"/> <DwarfPlanet roleName="Ceres"/> <Planet roleName="Jupiter"/> <Planet roleName="Saturn"/> <Planet roleName="Uranus"/> <Planet roleName="Neptune"/> <DwarfPlanet roleName="Pluto"/> <DwarfPlanet roleName="Haumea"/> <DwarfPlanet roleName="Makemake"/> <DwarfPlanet roleName="Eris"/> <Comet roleName="Hale-Bopp"/> </PlanetarySystem> <InterplanetaryMedium/> </SolarSystem>
Either of these arrangements agrees well with the Wikipedia description: "A planetary system consists of the various non-stellar objects orbiting a star such as planets, dwarf planets (and their moons), asteroids, meteoroids, comets, and cosmic dust. The Sun together with its planetary system, which includes Earth, is known as the Solar System." The phrase consists of justifies placing Mercury and the other non-stellar objects inside of PlanetarySystem. And together with suggests that Sun and PlanetarySystem are siblings within SolarSystem.
Mercury, Venus, Earth, etc. could each be a separate subclass of Planet in the inheritance hierarchy. This would allow a cleaner looking composite structure hierarchy.
<SolarSystem> <Sun/> <PlanetarySystem> <Mercury/> <Venus/> <Earth/> <Mars/> <Vesta/> <Ceres/> <Jupiter/> <Saturn/> <Uranus/> <Neptune/> <Pluto/> <Haumea/> <Makemake/> <Eris/> <Hale-Bopp/> </PlanetarySystem> <InterplanetaryMedium/> </SolarSystem>
All of these are valid Xholon arrangements. There are good reasons for selecting each of these approaches (more on this later?). The Xholon framework tries to be as non-commital as possible.