GXOS: General Purpose XML Object Specification This is to be designed to support initially a) Education/Training where it will be compatible with IMS/ADL SCORM in sense that IMS/SCORM compatible specifications can be generated from GXOS objects but GXOS will be more powerful than IMS/SCORM b) Computing where we need to be mindful of Grid Forum and Gateway c) General Web sites d) As a hierarchial set of containers it should be compatible with SCORM for large containers (lectures) and W3C DOM for small objects (document fragments) In my terminology one should support resourceML and portalML corresponding to XML at different parts of system (different XML parsers on different servers) Assumptions; 1) ANY Object Model (COM,CORBA,JAVA,NFS,NAPSTER,SOAP) ... 2) Objects will be managed like files in a UNIX/windows system i.e. hierarchial organization symbolic links search either by hierarchy or by "search for file names/file contents" with various criteria on object type etc. 3) Typically one will interact with the XML metadata about object rather than object itself 4) Objects will be labelled liked files with either relative or absolute names with a hierarchial structure. The container (logical arrangement of objects) structure can have a different hierarchial structure from naming 5) We discuss here general object properties. GXOS objects will have other properties such as objectives, prerequisites for SCORM objects and W3C DOM prperties for objects of Web Page or smaller size. A given object can inherit such specialized properties from multiple sources. Tags can use attribute TAGSOURCE = GXOS, W3DOM< SCORM to indicate their source. A MAPPINGOBJECT tag will tell you how to map into a particular TAGSOURCE. You could for example here specify that a particular container was either a BLOCK or AU in SCORM 6) Everything is a GXOS object -- including not only curriculum pages but audio/video archives, background images/buttons/menus for building web-pages etc. Normally you store the different object types in separate container hierarchies crossreferencing through NAME attribute XML Object Specification 1) All Objects are Containers (i.e. in file analogy directories) i.e All Objects can be constructed from any number (including zero) other objects 2) An object can be an ALIAS to another object. ALIAS acts as a "symbolic link" so that when object link points to changes, then ALIAsed object changes 3) An object can be defined by a BUILTUP tag which defines how one constructs this object from other objects either inside or outside this container. 4) All objects have names which are generated automatically in some natural fashion if not explicitly given 5) Objects can be defined in terms of subobjects which have roles such as Documentfragment, backgroundimage etc. One can use an index (any character string) to differentiate more than one object with the same role. These roles are used in te,plates or layout in portalML 6) Objects can have multiple INSTANTIATIONS which can specify how to use your favourite object model to access object. An example is given below. The realizations may not be identical as some object models may implement a given object more or less well You can use a pure Java EJB system to manage your objects as long as it interprets OBJECTREALIZATION to access an object stored in CORBA or some other (than pure Java) model 7) Objects can have one or more OBJECTRENDERINGs defined. These are differentiated by use (thumbnail is different from normalview) or rendering device 8) Objects can have RANKS's assigned. The use is application dependent but in education it is used to identify objects of the same type which should therefore be treated in a given way. RANK = CurriculumPage is typical unit of instruction and all objects of this rank in a given container form a natural linked list. Other values for rank could be RANK= PageFragment, Lecture, Module1, Module2, Course, Program ... 9) CONTAINERRANK specifies the RANK of "important" subobjects stored in this object (container). For example, a container could have RANK=Lecture and CONTAINERRANK = CurriculumPage 10) An object can have tag indicates it specifies abstract of container in which it is placed. For example in my PowerPoint presentations, I typically put abstract as second slide. 11) An object can have a TABLEOFCONTENTS tag specifying how Table of Contents is to be generated. Often this is gotten from accessing TITLE tag of all contained objects with RANK=CONTAINERRANK. One could also specify (in a syntax to be decided) how to generate more complete tables of contents. 12) We will use IMS/IEEE LTSC metadata which has tags to specify Title, Author etc. for GXOS objects. Maybe we could simplify this to Dublin Core or other simpler metadata for non educational objects. This tag set contains keywords etc. 13) METADATAHEURISTICS tag can be used to guide object manager into quick ways of building Metadata inside its container. This could for example specify that Author and Title for subobjects gotten from Powerpoint be generated from Powerpoint properties and slide Title 14) EVENTLIST is the list of events associated with this object desribing its use and changes to it. XML Container Structure 1) Objects inside a given container can be either unordered or ordered. Allowed orderings include ASENTERED (order of appearance in XML file) SORTEDBY_... (sorting in different ways) EXPLICITORDERLIST which specifies ordering by names of objects in a container 2) Ordering defines order of pages in a lecture etc. 3) Objects can be defined either by a list of components with a mapping of subobject names to role[index] where rendering algorithm will use some sort of template to insert each role[index] into a given web page Alternatively, one can specify container as an XML file where this file references role[index] objects in an maps parameter name used in parameter specification in XML to name in object land. NATIVE values would be described in basic XML of object. There is one set of NATIVE characteristics intrinsic to object Each Realization could access with arecane names or not be able to access perhaps map events NA implies this event/parameter not availsble in this realization ... Repeat for all other realizations BUILTUP Structure ---------------------------------------------------------------------- 1) This allows you to define new objects from old ones as a set of actions to be executed in order 2) Allowed actions include COPY name1 -- copies object name1 -- same as symbolic link initially but as can edit object later; the copy and name1 are edited separately LINK name2 -- invokes symbolic link to name2 (so components canNOT be changed) DELETE name3 -- name3 could be name2/subobject. An example is if name2 was a voice over foil We can link in original but delete voice subobject ADD name4 -- adds local component name4 (could be a new voice-over in previous example) CHANGE name5 to name6 -- "roughly" equivalent to DELETE and ADD Object Rendering ------------------------------------------------------------------------ Any number of renderings are allowed They have a USE (default, thumbnail, normalview) and a DISPLAYDEVICE (Palm, PC, Cave) and someway of essentially specifying display template with DISPLAYTYPE = VirtualClassroom, MyProfessor, Plainoldwebpage The rendering can specify the server which is to perform rendering e.g. to convert XML into HTML or WML (Renderer=backend or userportal) The rendering uses portalML Here you can specify displays of different resolution, text only version, and universal access (for example for visually impaired)