An example of an ITS would be a software program that can assemble learning objects to present a simulated medical patient case. A student is presented with a scenario representing a real-life patient with, oh, let's say diabetes. The simulated patient case includes a video of the diabetic patient talking about his/her illness, background reading about the subject, various clinical investigations being undertaken along with a presentation of their result, you get the idea. The student uses this simulated patient case to learn about real-life patients with diabetes, or just about any other medical condition you could think of. Now imagine a situation where for whatever reason, say, cultural convention, we can't show a simulated patient case of a woman, so we must present a case with a male patient. We could manually rebuild the case using data from a male patient, or we could use an ITS that knows how to swap in and out the components of individual cases. This ITS could automatically select replacement data for our student and reassemble a new case to meet the cultural requirements. The use of different languages would be another example where alternate content would be required.
In order for an ITS to perform its data swapping exercise in anything like an automated way, it'd need to know how to find, select, and incorporate new learning objects into the patient case. It would use metadata to perform this magic. These metadata would describe objects in a repository that have the required 'fit' and can act as alternative information blocks in our hypothetical simulated patient case. The metadata required to describe a component such as I have described are very different from the metadata that I as a human would find useful when searching for information about diabetes in our example. It may be stretching the computer program analogy too far but I'd say that the metadata used to define the hot-swappable learning object components would be more like the sub-routines in a program's source code listing. Each sub-routine has its input and output parameters, and when plugged into a larger program in the correct way performs an essential function. Well-written sub-routines from other people could just as easily substitute from my sub-routines, such that with an appropriately diverse bank of sub-routines I wouldn't need to write very much of my own code at all, I could just assemble code provided by others, topped off with a bit of linking code to make it work the way I liked.
There's only one problem with this metadata scenario, the kinds of metadata present in the LOM are not the kinds of metadata we'd need to make this ITS work, and this simple ITS described here is only one of thousands of potential ITS', each fulfilling specific high-level learning needs. So what we really need are working groups within subject domains scoping out how they want their intelligent tutoring systems to function, and to start agreeing on ways of describing learning objects to allow them to fit together in meaningful ways. Metadata can mean different things to man and machine, and one size will not fit all. We have lots of metadata we could be using, let's try to agree on the metadata we should be using and start using e-learning in interesting ways.