The Interoperable Web System Architecture - Registry Extension (IWSA-Reg) is a an extension of the Interoperable Web System Architecture (IWSA) that addes support for Systems that represent one or more Collections of Items.
The following terms, when italicized in this standard, have the meanings indicated here.
| Term | Definition |
|---|---|
| AdminData | This represents administrative information about an Item. Typically, this might include things like the URI of the person or process that added the item, dateCreated, dateModified, versionID, etc. Note! Some services described below will only work if and only if their requisite elements can be found here. For example, the "history" service requires "versionID" and "currentFlag" elements to appear in the AdminData. The oai service requires a "dateModified" element. This standard doesn't dictate which elements are required, so the XML Schema allows for one or more <description> elements that can contain the specific information needed to perform the supported services. |
| BaseURL |
This URL identifies and locates an IWSA installation on the web. |
| Collection | This represents a set of Items. |
| CollectionLabel | A Label for a Collection (unique within a Registry). Note! The CollectionLabels "Collections" and "WebServices" are reserved for internal purposes. |
| ComponentResourceLabel |
This Label is used to identify component IWSA Resources within a System. Note, however, that query strings could be used instead of, or in conjunction with, ComponentResourceLabels for this purpose. |
| Content | An array of bytes along with a ContentType value. |
| ContentType | IANA | MIME Media Types used to define the meaning of the Content bytes. |
| GlobalSystemLabel |
An optional globally-unique Label for a System that can be used to facilitate interoperability across BaseURLs. If used, this label MUST be registered in the IWSA System Registry. Note! the Labels "webservices" and "localhost" are reserved for the purposes described below. |
| Identifier (ID) | This term is ambiguous, so it is generally avoided in this standard in favor of the terms Label and URI. |
| Item | This represents an abstract amalgam of three components: ItemLabel, Content, and AdminData. |
| ItemLabel | A persistent Label for an Item (unique within the Collection). |
| IWSA Resource |
A Resource is an abstract entity known to, or discoverable by, an IWSA System. Resources can be accessed by performing a Service against it to produce a concrete representation. |
| Label |
Labels are Unicode strings that correspond to selected Identifiable IWSA-Reg Resources. Labels are more convenient than the corresponding URIs when combined together in the patterns described below. One or more Collections can be used to map Labels to the corresponding URIs if necessary. Note! Only ItemLabels are allowed to contain the '/' character. Otherwise applications will have trouble parsing the patterns described below. |
| LocalSystemLabel |
A locally-unique Label for a System. LocalSystemLabels are differentiated from GlobalSystemLabels to give IWSA installations some leeway in the makeup of their URL patterns. Note! the label "webservices" and "localhost" are reserved for the purposes described below. |
| Registry | A Registry is System that represents one or more Collections. |
| Service | A Service is a modular function that can be applied to an abstract IWSA Resource to generate a concrete result. |
| ServiceLabel |
A local Label for a Service. Each Service also has a globally-unique URI representation that can be used to identify Services across Systems. The use of local Labels gives IWSA installations some leeway in the makeup of their URL patterns. |
| System | System is roughly equivalent to a Servlet webapp. Multiple systems can exist on a server in the same sense and for the same reasons that multiple webapps can exist on server. For purposes of this architecture, however, the implementation mechanisms used to differentiate systems are less important than the general concept. |
| URI | Info URIs (viz. info:iwsa/) are used to identify all IWSA Resources. |
The IWSA specification defines ComponentResourceLabels to represent Resources contained within a System. Within IWSA-Reg Systems, this Label is defined as as {CollectionLabel}/{ItemLabel} to represent Items within Collections that are known to the Registry.
info:iwsa/{GlobalSystemLabel}
This pattern can be used to invoke web services against Identifiable IWSA-Reg Resources).
| Resource | URL Pattern | Analysis |
|---|---|---|
| Registry | {BaseURL}/webservices/{LocalSystemLabel}/{ServiceLabel} | Performs a service against the specified Registry. |
| Collection | {BaseURL}/webservices/{LocalSystemLabel}/{ServiceLabel}/{CollectionLabel} | Performs a service against the specified Collection. |
| Item | {BaseURL}/webservices/{LocalSystemLabel}/{ServiceLabel}/{CollectionLabel}/{ItemLabel} | Performs a service against the specified Item. |
This pattern is an alias for the Web Services Pattern that assumes a ServiceLabel of "ui".
| Resource | URL Pattern | Analysis |
|---|---|---|
| Registry | {BaseURL}/registry | Performs a service against the specified Registry. |
| Collection | {BaseURL}/registry/{CollectionLabel} | Performs a service against the specified Collection. |
| Item | {BaseURL}/registry/{CollectionLabel}/{ItemLabel} | Performs a service against the specified Item. |
In general the WebService pattern described above can and should be used for any miscellaneous ServiceLabel and a proliferation of alternative URL patterns is generally discouraged.
The main justification for wanting to create a custom service URL pattern is to provide backward compatibility with legacy URL patterns. Even in this case, though, the registry administrator should consider supporting the pattern listed above for the sake of interoperability with generic clients.
The following Services have been identified as being generally applicable to any conceivable Registry.
Note! If the ServiceLabel is missing from this pattern, the system should perform an HTTP redirect to the ui ServiceLabel by default. This is the only level at which we can recover from a missing ServiceLabel.
{BaseURL}/webservices/{LocalSystemLabel}/{ServiceLabel}
Example: http://worldcat.org/webservices/registry/content
{BaseURL}/webservices/{LocalSystemLabel}/{ServiceLabel}/{CollectionLabel}
Example: http://worldcat.org/webservices/registry/oai/institutions?verb=Identify
{BaseURL}/webservices/{LocalSystemLabel}/{ServiceLabel}/{CollectionLabel}/{ItemLabel}
Example: http://worldcat.org/webservices/registry/edit/institutions/123
A Registry administrator can add custom services as needed at any of the Identifiable IWSA-Reg Resource levels. Custom services can also be created to apply to individual Collections in a Registry. For example, a PURL Collection may want to add a "redirect" service. Also note that applications may want to create custom CQL context sets to support their custom services.
This IWSA-Reg standard does not require the use of SRU, but these implementation details are included for the sake of illustration.
These CQL context sets (SRU) are needed to support the services listed above.
Note that additional CQL context sets can be added to support custom services that require more discrete access to the Content.
| Short Name | URI | Reference | Analysis |
|---|---|---|---|
| cql | info:srw/cql-context-set/1/cql-v1.1 | CQL Context Set | This is a general purpose set and isn't used by any of the services listed above. It is included here because it will be familiar and useful to arbitrary SRU clients. |
| dc | info:srw/cql-context-set/1/dc-v1.1 | Dublin Core Context Set | This set can be used to index certain adminData elements as needed. The only required index is dc.identifier, which is used by the services listed above to identify Identifiable IWSA-Reg Resources. This index should be used in conjunction with the History Context Set to perform version restrictions as needed. |
| hist | info:oclc/cql-context-set/1/hist-v1.0 | History Context Set | This set supports access to historical items in a collection. |
The SRU database needs to deliver these XML Schemas related to Identifiable IWSA-Reg Resources in order to support the services listed above.
| Title | Name | URI | Location |
|---|---|---|---|
| Registry Item Administrative Data | AdminData | info:iwsa/iwsaRegistry/xmlSchemas/AdminData | http://purl.org/iwsaReg/content/xmlSchemas/adminData |
| Registry Item Content | Content | info:iwsa/iwsaRegistry/xmlSchemas/Content | http://purl.org/iwsaReg/content/xmlSchemas/content |