This is a placeholder for a Type Registry.
Types are used in several areas of the OSIDs. They serve to extend the OSIDs in various ways.
- OsidPrimitive Types: Several OsidPrimitives use Types to define their domain or system. It is essential for OSID Providers and OSID Consumers to get agreement on OsidPrimitive Types where they come into play.
- Record Types: An OsidRecord Type identifies the OsidRecord interface. Agreement is essential for create operations where OSID Providers require specific OsidRecord interfaces and for OSID Consumers that require information only available through an OsidRecord interface.
- Genus Types: Genus Types serve to classify OsidObjects. While an OSID Provider may interpret or restrict genus Types, agreements are only necessary if an OSID Consumer depends on their existence for lookups.
Agreement may be achieved directly or through OSID Adapters.
Types should be assigned with global uniqueness in mind. If there's a risk that two Ids may collide, an OSID Adapter can change the Id on the way out and undo the change on the way back in. Types, on the other hand, identify an agreement. Ideally they should be documented and in the case of OsidRecords, be accompanied by its interface specification.
It's useful to have some kind of convention to manage Type assignments.