Good suggestion, thanks. That should go on the list for the next version. On Feb 13, 2006, at 10:59 AM, Zhiwu Xie wrote: > Thanks a lot for the answer. I can see the problem now. Actually > you may > want to consider an alternative in the official PREMIS schema that > requires less maintainence: > > 1. Define an abstract objectType, with neither type attribute nor > objectCategory element defined at this level > > 2. Define a global objectCategorySimpleType which is basically the > xs:string type, like the following: > > <xs:simpleType name="objectCategorySimpleType"> > <xs:restriction base="xs:string"></xs:restriction> > </xs:simpleType> > > 3. Define three or even more concrete objectType that extend the > abstract objectType, in which they all have objectCategory elements > which are defined respectively, although of the above defined > objectCategorySimpleType, which is basically the xs:string type, > but fix > the value to the controlled vocabulary. The following give the > definition of the fileObjectComplexType as an example: > > <xs:complexType name="fileObjectComplexType"> > <xs:complexContent> > <xs:extension base="objectComplexType"> > <xs:sequence> > ... > <xs:element minOccurs="1" maxOccurs="1" > name="objectCategory" type="objectCategorySimpleType" > fixed="file"> > </xs:element> > ... > </xs:sequence> > </xs:extension> > </xs:complexContent> > </xs:complexType> > > I think this kind of schema structure has a handful of benefits to > offer > to the PREMIS community: > > First, it eliminates possible confusions introduced in the > following two > ways: > > 1. An object with a "file" type attribute value, but a different > objectCategory value > 2. An object with the same type attribute and the objectCategory > values, > e.g., "representation", but includes an element that is not allowed in > that type of object, e.g., objectCharacteristics > > Although common sense should not allow the above happen, in > practice you > never know. Errors like this happen, either from human or from the > machines. If the schema does not capture them and allow them > validated, > chances are the errors will be introduced into the system. > > Second, not only this schema follows the objectCategory definition > as an > xs:string, but it strictly limits its value when comes to the already > defined three types of object, file, bitstream, and representation. On > other hand, if any implementation needs more flexibility, the > structure > of the extension is already provided. People only need to extend their > own concrete objectType, mostly by making use of the many globally > defined types to construct the extension. For any extensions following > this example, the extended objectCategory should have the "fixed" > attribute that limit the value to a controlled vocabulary. > > Hope this helps, > > Zhiwu Xie > > Graduate Research Assistant > Research Library > Los Alamos National Lab > > > On Thu, 2006-02-09 at 10:38, Jerome McDonough wrote: >>> On Mon, 6 Feb 2006, Zhiwu Xie wrote: >>> >>>> This is an implementation question. >>>> >>>> In schema v1.1 there's an attribute "type" for the "object" >>>> element. >>>> Although optional, it's set to enumerate either "file", >>>> "representation", or "bitstream". I think this attribute is >>>> redundant >>>> because the objectCatgory contains the same information. >>>> >> >> Well, yes and no. Yes, in that they're intended to convey the same >> *type* >> of information, but no, in that objectCategory doesn't insist on the >> controlled >> vocabulary established in the PREMIS model, so in practice, someone >> could put any type of information they wanted in there. My memory of >> the discussions was that the flexibility in objectCategory was >> intentional, as >> people were a bit reluctant to state that everyone in the world >> had to >> conform to the PREMIS' group's notion of object categories. So, >> objectCategory >> was left as an open string, in case someone decided they needed >> flexibilty >> in local practice. The type attribute is obviously more constrained, >> and was >> included so that there could be a dependable, controlled >> vocabulary for >> use between institutions for identifying the category of object. >> >>>> Also it hinders further extension, because in case of more object >>>> categories are needed, this attribute needs to be modified each >>>> time an >>>> extension is proposed. >>>> >> >> That is true, and that is the downside of controlled vocabularies. >> They do >> require maintenance. The upside is having a reliable shared >> vocabulary >> between institutions/applications. So, there's a cost/benefit >> calculation in >> deciding whether to adopt them. Part of the calculation is the >> likelihood >> of rapid change. To date, I don't think I've heard anyone say >> that they >> need the set of object categories altered or extended, so I don't >> think it's >> imposing a particularly great burden to date, particularly given that >> the >> type attribute's use is optional. >> >>>> Even no extension is expected, it still adds unwanted complexity >>>> to a >>>> hierarchical schema. >>>> I'm working on a schema that first defines an >>>> abstract objectType, then extend it to three or even more different >>>> types, e.g., fileObjectType, bitstreamObjectType, >>>> representationObjectType. If we must have this attribute, I'll >>>> have to >>>> further restrict the extended types to accommodate this redundant >>>> attribute. >>>> >> >> I'm afraid I'm not sure I see your problem. If you're developing >> your own local application profile schema to support PREMIS, >> your only real concern is to support the *mandatory* aspects >> of the PREMIS schema, and the type attribute isn't mandatory. >> So, what exactly is preventing you from creating an abstract >> objectType schema which omits the "type" attribute and extends >> it from there? >> >> >> Jerome McDonough, Asst. Professor >> Graduate School of Library & Information Science >> University of Illinois, Urbana-Champaign >> 501 E. Daniel Street, Room 202 >> Champaign, IL 61820 >> (217) 244-5916 >> [log in to unmask] Asst. Prof. Jerome McDonough Graduate School of Library & Information Science University of Illinois at Urbana-Champaign 501 E. Daniel Street, MC-493 Champaign, IL 61820-6211 (217) 244-5916 [log in to unmask]