This is the first alpha version of the DEMML(tm) schema for content (version 0.1). This schema is far from complete and the structure may need to be modified considerably in order to incorporate all the features of the DEMML(tm). While I plan to make future versions of this schema a semi-open standard in the future, the entire schema is currently copyright (c) 2010 by Grant Sheridan Robertson. It is currently not permitted to use this schema - or any portions thereof - in any manner without written permission. However, if you write, I will probably give permision. I simply want to keep track of what is being done with DEMML(tm) so I can keep a handle on it till it is ready for release.
To learn more about this DEMML(tm) go to www.demml.org. To learn more about the schema itself (past, present, & future) as well as a general description of how the DEMML system is organized see www.demml.org/standard/.
This is the Distributable Educational Material Classification System (DEMCS) classification code. This code includes the full path to the topic within the DEMCS. See http://demml.org/standard/classification/ for more information.
Do not include the demml:// protocol prefix in the value for this attribute.
In DEMML all content is stored within "Items" which contain both the metadata about the content and the content itself. All items about a particular topic are stored in the appropriate language stem folder under the topic folder. However, it is possible for an item to be associated with more than one topic. In that case the item will be stored under the most closely associated topic (or the topic closest to the root of the tree, or just choose one at random). More than one item can be stored in a particular DEMML content file but all items in a file obviously must be associated with the same topic in order to meet the above requirement.
DEMML items can be of various types. Most important are the Fact-Items which state one of the facts that must be learned about the topic. Fact-Items should be concise and to the point. Explanation-Items are items which explain something within the topic. This is where most of the learning takes place. An Explanation-Item can explain a fact or even why a particular answer is right or wrong. There are Question-Items and Answer-Items as well as Problem-Items and Solution-Items. There can be questions about one or more facts or even about one particular explanation. Explanations can be about almost any other kind of item. However, there should never be questions about explanations which are already about some other question or answer. One has to draw the line somewhere.
While most XML developers have become accustomed to mirroring the hierarchical structure of their data within the XML document itself, DEMML takes a different tack for the structure of items within a topic. One of the primary goals of DEMML is to allow easy distribution of the content in the form of relatively small files. This way a student does not need to download (or copy) and store much more than they really need and the transfer will be as efficient as possible. In addition, there is the possibility of there being hundreds - or even thousands - of items within a topic, especially when you consider all the different problems, solutions, and explanations for those solutions for a single mathematical concept. Therefore, it is not reasonable to attempt to store a topic's entire structure of items within one XML document.
All this means the structure of the relationships between DEMML items is a limited sort of directed graph with the references pointing backwards. Rather than have each fact contain a reference to every question about that fact, as many software developers are accustomed to seeing, it is far more efficient to have each question contain references to the few items that question is about. This way the Fact-Items do not need to be updated every time a new Question-Item is published. All a user has to do is copy the file with the Question-Item into the appropriate folder on their computer (which can be done automatically by some software) and the software can read the file and update its internal database.