UML/MediaWiki
MediaWiki as an application can be mapped into a metamodel using two – no, three metaclasses:
- Actors USER, GROUP
- Objects TOPIC, CONTENT, PAGE, RESOURCE
- Containers DOMAIN, NAMESPACE, SECTION, SCREEN
Depending on what we want to map and how it will be presented and used, we can build our metmodel according to one of the nine to thirteen diagram types (depending on how much resolution we need). It is nearly always best to build from the top down or from the general to the specific, as it were. You actually can't do this unless you are also involved in a build that is concurrently happening somewhere else, whether you are acutly aware of it or not.
In the MediaWiki use case this build happens first on a server down in Florida or someplace as the application is installed. "We", up here in the application and presentation world don't pay much attention to it, except for times like now, just to get it out of our stream of conciousness so we can move on to bigger and more urgent things. We want to join and continue the design process "upward and inward" thus getting over our feeling of being "down and out". Yes, I also study w:community psychology if that's a surprise
The OSI model is a good place to start visualizing our model. It lends itself well to the MediaWiki Engine and Wikimedia use case and because MediaWiki is an Internet application, we are pulled into the master CONTEXT of Internet protocols and standards inherent in an industry-standard basic reference model which we can use as a prototype. This is, of course subjective based on my viewpoint (all diagrams need a perspective), but watch what it can do if you flip it over. (You always have to be prepared to perform "mental gymnastics" when dealing with complex systems much in the same way that aviators must learn about inverted flight.)
See Internet for some local coverage of the OSI model
Physical layer
editI type this stuff into this page using a keyboard – a physical object. It is my first interface to this PAGE which exists in the next layer up – the Data Link Layer. From my own personal Terminal object facility, the interface is an Editor that automagically appears when I click on a red link object, usually on another PAGE. The primary actor is me at least from my viewpoint, my SCREEN as I see it through my monitor – another physical object.
Data-link layer
editThe basic unit (unified model) that I work on is the PAGE object to which I have an interface aggregation I call a terminal down there in the physical layer. Up here in the Data Link Layer, I'm not so much worried about keystrokes and screen feedback as I am about spelling, grammer, syntax, semantics and other data streams that I'm building. My hope is to enter something that is mutually meaningful to other USER and GROUP entities like you and your pals whom I am connected to through the Network Layer
Network Layer
edit...variable length data sequences from a source to a destination... Please put on your hard hat