= Content Model discussion from 31/8-06 = We envision a hierarchy of content models - on top we define the SB content model, that defines datastreams, relations and disseminators we might expect on any object. Subtypes include a FILE content model, that defines further things we might The definition work seems to suggest we have some further internal content models: RIGHTS, ADMINISTRATIVE, FILETYPEDEFINITION, OBJECTTYPEDEFINITION - also subtypes of SB Apart from that, each inidividual project defines it's own SUBTYPES. == CMODEL - SB == '''Dublin Core''' * contains "trivial" text '''Datastreams''' * Administrative * audit trail (who changed what when?) '''Relations''' * hasRights - relates to a rights object. This might contain everything from simple access rights to the contract that is the source of these rights. To be enforced client-side. * isObjectType - a relation to the specific type of this object, including schema and non-formal description. * ?hasInstance - a relation to a file object closely related to this - ''rejected'' '''Disseminators''' * ?VIDEO_PRESENTATION(start, maxMilliSecs) -> MPEG2 - If present, gives a video clip for this object * ?SOUND_PRESENTATION(start, maxMilliSecs) -> MP3 - If present, gives an MP3 audio clip for this object * ?IMAGE_PRESENTATION(maxWidth, maxHeight) -> PNG - If present, gives image for this object * ?TEXT_PRESENTATION(start, maxChars) -> UTF-8 TXT - If present, gives text for this object Note the above are to be defined by the individual objects - so for instance an image file object would give the actual image (possibly scaled) in IMAGE_PRESENTATION, while an object representing a CD album might have a cover it can give as representation. We expect to cache the result of calls to these disseminators. Note that VIDEO/SOUND/TEXT_PRESENTATION(0, MaxInt) will give the entire stream, while IMAGE_PRESENTATION(maxInt,maxInt) will give the entire image. IMAGE_PRESENTATION(64,64) might be used for thumbnails. * INDEX_REPRESENTATION -> XML This gives a unified representation of this object for indexing purposes. It's supposed to return only something on indexable objects, but in those cases it will return information that might be extracted from an entire graph of objects. For instance a CD might collect information about all tracks from sub-objects. == CMODEL - FILE == '''Dublin Core''' * What is dublin core in these instances? Just the file name? The DC information from the corrosponding logical object? '''Datastreams''' * Content - The actual content of this file, by URL reference * Technical - Both of production method and this actual file '''Relations''' * isFileType - A pointer to the definition of this file format * ?hasOriginal - A pointer to another FILE object which was used as the source for this FILE Note there is not a relation to the logical object - any logical object is expected to point to this. == CMODEL - IMAGE == '''Relations''' * hasTIFFFile == CMODEL - AUDIO == '''Relations''' * ?hasWAVFile * ?hasBWFFile == CMODEL - VIDEO == '''Relations''' * ?hasMPEG1File * ?hasMPEG2File == CMODEL - TEXT == '''Relations''' * hasWordXMLFile * hasPDFFile * hasUTF8File