W3C W3C Member Submission

PRISM Compliance Specification

W3C Member Submission 10 September 2020

This version:
https://www.w3.org/Submission/2020/SUBM-prism-20200910/
Latest version:
https://www.w3.org/Submission/prism/
Authors:
Dianne Kennedy (Idealliance)

Abstract

This PRISM Compliance Specification describes three profiles of PRISM compliance for content and systems; includes normative material.

Status of this document

This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications can be found in the W3C technical reports index at https://www.w3.org/TR/.

By publishing this document, W3C acknowledges that the Submitting Members have made a formal Submission request to W3C for discussion. Publication of this document by W3C indicates no endorsement of its content by W3C, nor that W3C has, is, or will be allocating any resources to the issues addressed by it. This document is not the product of a chartered W3C group, but is published as potential input to the W3C Process. A W3C Team Comment has been published in conjunction with this Member Submission. Publication of acknowledged Member Submissions at the W3C site is one of the benefits of W3C Membership. Please consult the requirements associated with Member Submissions of section 3.3 of the W3C Patent Policy. Please consult the complete list of acknowledged W3C Member Submissions.

1    Status

1.1    Document Status

The status of this document is:

Draft

11/04/2011

Released for Public Comment

12/15/2012

Final Draft Released for Comment

06/12/2012

Final Specification

10/04/2012

1.2    Document Location

The location of this document is:

prism-comp.html

 

1.3    Version History

Version Number

Release Date

Editor

Description

1.2

1/26/05

McConnell

Converted from unmodularized PRISM spec v 1.2

1.3 Final

10/01/05

Kennedy

Resolve open industry comments

2.0 Release

2/19/08

Kennedy

Final for Release

2.1 Final

05/15/09

Kennedy

Final with Comment Resolution

3.0 Public Draft

12/15/2011

Kennedy

Version to support nextPub

3.0 Final

06/12/2012

Kennedy

Comments Resolved, Final Draft

3.0 Specification

10/04/2012

Kennedy

Final 3.0 Specification


2    PRISM Documentation Structure

PRISM is described in a set of formal, modularized documents that, taken together, represent “the PRISM Specification”. Together these documents comprise the PRISM Documentation Package.

2.1    Normative and Non-normative Sections

Documents in the PRISM Documentation Package may contain both normative and non-normative material; normative material describes element names, attributes, formats, and the contents of elements that is required in order for content or systems to comply with the PRISM Specification. Non-normative material explains, expands on, or clarifies the normative material, but it does not represent requirements for compliance. Normative material in the PRISM Documentation Package is explicitly identified as such; any material not identified as normative can be assumed to be non-normative.

2.2    Requirement Wording Note

The key words "MUST," "MUST NOT," "REQUIRED," "SHALL," "SHALL NOT," "SHOULD," "SHOULD NOT," "RECOMMENDED," "MAY," and "OPTIONAL" in this document are to be interpreted as described in [RFC-2119]. The PRISM Specification also uses the normative term, “STRONGLY ENCOURAGES,” which should be understood as a requirement equivalent to “MUST” in all but the most extraordinary circumstances.

Capitalization is significant; lower-case uses of the key words are intended to be interpreted in their normal, informal, English language way.

2.3    The PRISM Documentation Package

The PRISM Documentation Package has been reorganized and some specifications renamed to more accurately reflect the nature of each specification module.  The PRISM documentation package includes the following specifications and documents:

2.4    Compliance Specification

This document provides compliance specification.

Document

Description

PRISM Compliance [PRISMCOMP]

Describes three profiles of PRISM compliance for content and systems; includes normative material.

2.5    PRISM Metadata Specifications

This is the set of documents that outline the prism metadata fields and values by PRISM metadata category.  PRISM has modularized its metadata specification by namepace so users may pick those modules that meet their unique business requirements without having to implement the entire PRISM specification.

Document

Description

PRISM Advertising Metadata Specification [PRISMADMS]

Describes advertising metadata elements including those drawn from AdsML, GWG and Ad-ID; includes normative material.

The PRISM Basic Metadata Specification [PRISMBMS]

Describes the basic metadata elements contained in the PRISM namespace to describe article content; includes normative material.

The PRISM Contract Management Metadata Specification [PRISMCMMS]

Describes metadata elements from the PRISM Contract Management Metadata (pccm:)  namespace that are used to describe contracts and legal documents.

The PRISM Crafts Metadata Specification [PRISMCMS]

Describes the metadata elements contained in the PRISM Crafts Metadata Namespace (pcm:).  Includes normative material.

The PRISM Subset of Dublin Core Metadata Specification [PRISMDCMS]

Describes the metadata elements from the Dublin Core namespace that are included in PRISM; includes normative material.

The PRISM Image Metadata Specification [PRISMIMS]

Describes the metadata elements contained in the PRISM Metadata for Images Namespace and other related image namespaces, includes normative material.

The PRISM Recipe Metadata Specification [PRISMRMS]

Describes the metadata elements contained in the PRISM Recipe Metadata Namespace (prm:).  Includes normative material.

The PRISM Rights Summary Metadata Specification [PRISMRSMS]

Describes the metadata elements contained in the PRISM Rights Summary Metadata Namespace (prsm:).  Includes normative material.

The PRISM Usage Rights Metadata Specification [PRISMURMS]

Describes the metadata elements contained in the PRISM Usage Rights Namespace; includes normative material. This namespace will supersede elements in both the prism: and prl: namespaces in version 3.0 of the specification.

Some elements from PUR are referenced from the newer, more comprehensive PRISM Rights Summary Metadata Specification [PRISMRSMS].

2.6    PRISM Aggregator Message Markup Specifications

This module documents the PRISM Markup Elements and Attributes for use with the PRISM Aggregator Message (PAM) and other aggregator messages.     This set of documents includes:

Document

Description

The PRISM PAM Markup Specification [PRISMPAMMS]

Describes the XML elements and attributes used to encode the PRISM Aggregator Message from both the pam: and pim: namespaces; includes normative material.

The PRISM PAM Markup for Web Content Specification [PRISMPAMWMS]

Describes the XML elements and attributes used to encode the PRISM Aggregator Message for Web Content.  This Specification draws from both the pam: and pim: namespaces and includes normative material. PAMW is used to automate the harvesting of Web Content so that it may be sent to aggregators or stored in a publishers PAM-based content management system.

2.7    PRISM Inline Markup Specification

This module documents the PRISM Inline Markup Elements and Attributes for use with the PRISM Aggregator Message.  This set of documents includes:

Document

Description

The PRISM Inline Markup Specification [PRISMIMS]

Describes the XML elements used to encode the inline markup for the PRISM Aggregator Message. Includes normative material.

2.8    PRISM Controlled Vocabulary Specifications

These modules are new with PRISM 3.0.  All controlled vocabularies and their terms are documented in this publication set. 

Document

Description

The PRISM Controlled Vocabulary Markup Specification [PRISMCVMS]

Describes the metadata fields in the PRISM Controlled Vocabulary Namespace that can be used to describe a controlled vocabulary.   Actual PRISM controlled vocabularies are now placed in the PRISM Controlled Vocabularies Specification [PRISMCVS]

The PRISM Controlled Vocabularies Specification [PRISMCVS]

The PRISM Controlled Vocabularies are now documented in this document.

 

2.9    Additional PRISM Documentation (Non-Normative Guides)

•       The Guide to the PRISM Aggregator Message [PAMGUIDE] documents the PRISM Aggregator Message (PAM), an XML-based application of PRISM.

•       The Guide to the PRISM Aggregator Message for Web Content [PAMWGUIDE] documents the PRISM Aggregator Message (PAM), an XML-based application of PRISM.

•       Guide to the PSV Aggregator/Distributor Message Package [PAMPGUIDE] documents how to use the PRISM metadata fields and pamP XML messaging tags to deliver content to content aggregators/distributors.  The Guide documents the pamP XML message structure and provides the pamP XSD and document samples.

•       The Guide to PRISM Contract Management [CONTRACTSGUIDE] documents an XML-based PRISM contract management model.  The Guide is accompanied by an XSD that can be used as the basis for developing a contract management system that interfaces with the PRISM Rights Summary to populate ODRL policy statements. Reference [ODRLRSGUIDE]

•       The Guide to PRISM Metadata for Images [IMAGEGUIDE] documents an XML-based PRISM Profile 1 application for the expression of the structure and use of PRISM Metadata for Images and can be used as the basis for developing an image management system based on PRISM Metadata for Images and for implementing PMI in XML.

•       The Guide to PRISM Recipe Metadata and XML Encoding [RECIPEGUIDE] documents the XML-based recipe model for developing a recipe database, for tagging a wide variety of recipes in XML and for tagging recipes within a PAM Message.

•       The Guide to PRISM Usage Rights [RIGHTSGUIDE] documents an XML-based PRISM application for the expression of PRISM Usage Rights.  The Guide is accompanied by an XSD that can be used as the basis for developing a digital rights management system based on PRISM Usage Rights.

•       PAM to PSV_Guide [PAMTOPSVGUIDE] documents mappings from PAM XML to PSV XML.

2.10 PRISM Source Vocabulary Specifications

In 2010, Idealliance developed a series of specifications collectively known as the PRISM Source Vocabulary.  The use case for PSV is to encode semantically rich content for transformation and delivery to any platform. This Specification is made up of a modular documentation package that builds on PRISM 3.0 and HTML5.  Over time new modules may be added to the documentation package.  The documentation package for PSV, PRISM Source Vocabulary Specification Version 1.0 consists of:

Document

Description

PRISM Source Vocabulary Specification Overview [PSVSO]

The Introduction to the PRISM Source Vocabulary provides an introduction and a non-technical overview of the PRISM Source Vocabulary.

PRISM Source Vocabulary Specification [PSVS]

The PRISM Source Vocabulary Specification defines semantically rich for source metadata and content markup that can be transformed and served to a wide variety of output devices including eReaders, mobile tablet devices, smart phones and print.

PRISM Source Vocabulary Markup Specification [PSVMS]

The PSV Markup Specification documents the XML tags in the PSV namespace that are used to encode XML Source Content.

2.11 PRISM Schemas

While PRISM is primarily a metadata specification, it also includes some XML schemas that define encoding of specific kinds of content for publication and interchange.  The PRISM schemas include:

•       Contracts_xsd.zip contains a schema that can be used to encode publication contracts.

•       Crafts_xsd.zip contains a schema that can be used to encode crafts.

•       Image_xsd.zip contains a schema that can be used to encode images.

•       PAM_xsd.zip contains a schema that can be used to encode a PRISM aggregator message.

•       pamW_xsd.zip contains a schema that can be used to encode a PRISM aggregator message for Web content.

•       pamP_xsd.zip contains a schema that can be used to encode a PRISM aggregator/distributor message package.

•       PSV_xsd.zip contains a schema that can be used to encode content in PRISM Source Vocabulary.

•       Recipe_xsd.zip contains a schema that can be used to encode recipes.

•       Rights_xsd.zip contains a schema that can be used to encode usage rights.

2.12 PRISM Controlled Vocabularies

PRISM has defined 38 controlled vocabularies using PRISM controlled vocabulary markup.  See The PRISM Controlled Vocabulary Specification [PRISMCVS].  All CVs are available in CVs.zip.

2.13 PRISM Namespaces

PRISM namespace declarations can be found in Namespaces.zip.  The following are the recommended Namespaces for PRISM metadata:

Usage Vocabulary

Namespace

PRISM Basic Metadata

basic:

PRISM Aggregator Message (PAM) Markup

pam:

PRISM Controlled Vocabulary Markup

pcv:

PRISM Source Vocabulary

psv”

PRISM Inline Markup

psm

Dublin Core metadatap

dc:

RDF

rdf:

PAM aggregator/distributor package

pamp:

PRISM Crafts metadata

pcm:

PRISM Contract Management metadata

pccm:

PRISM advertising metadata

prism-ad:

PRISM rights language metadata

prl:

PRISM recipe metadata

prm:

PRISM usage rights metadata

pur:

2.14 PSV Content Management Schema

In order to assist implementers develop a PSV-based federated content management solution, the nextPub Working Group is providing an XML Schema (XSD) that can serve as the basis for the design of a PSV content repository. 

Note: The PSV CM schema is not designed for tagging content.  It is provided simply to serve as a basis for the design of a content repository.  Metadata building blocks from this schema can be combined with HTML5 by publishers who wish to develop a hybrid PSV metadata and content tagging schema.

2.15 Other PSV Schemas

Because PSV is a flexible framework, it supports many different use case scenarios.  A different schema, using the PSV metadata fields and content encoding can be developed for each different use case.

3    Introduction

3.1    Purpose and Scope

The purpose of this document is to describe the required or normative aspects of the PRISM Specification, with reference to content and systems that wish to assert that they are "PRISM compliant."

Since the PRISM Specification, per se, does not require a specific machine-verifiable format -- there is no PRISM DTD or schema -- it is possible to make use of PRISM elements in a wide range of ways, not all of which will provide the benefit of standardized content that PRISM was designed to realize. Consequently, the PRISM Working Group has identified two general profiles of compliance, described in this document. Adherence to either one will provide a reliable framework for metadata within PRISM's area of applicability.

3.2    New in this Version

4    PRISM Compliance

Since PRISM is designed to specify the form of content maintained in and exchanged between systems, it does not set out to constrain the behavior of systems to any greater extent than necessary. It also recognizes a different set of constraints upon systems when they are producing PRISM-compliant content and when they are consuming it. And, as described below, it provides for two different forms of PRISM compliance in the content itself.

In an effort to provide the maximum utility to those who adopt PRISM, the PRISM Working Group has defined three different forms of PRISM compliance: PRISM Profile #3, PRISM Profile #2 and PRISM Profile #1. The intent of these forms is to ensure that a system receiving PRISM compliant content can rely on the meaning of metadata as specified in this document, and, if the content is asserted to be profile two compliant, that it will also be structured as specified here. The PRISM Working Group recommends selecting a compliance profile based on individual business requirements for PRISM.

Finally, a system that claims either profile of PRISM compliance is only constrained in a very minimal way with regard to the specific PRISM namespaces and elements it supports. Consequently, the developers of such systems MUST publish and maintain an accurate description of the PRISM namespaces and elements they support, in order to claim either form of "PRISM compliance" under the terms of this specification.

4.1    Constraints on Systems Producing PRISM Compliant Content

Systems MUST assert that they are capable of producing PRISM Profile #3, PRISM Profile #2 and PRISM Profile #1 compliant content. At this point, the assertion is assumed to be contractual, not machine readable. Content of any supported PRISM elements MUST be as described in this specification. Specifically, systems MUST NOT add elements or attributes to PRISM namespaces and vocabularies or to the Dublin Core namespace; systems MUST NOT define optional elements as mandatory.

4.1.1  Producing Profile #1 Compliant PRISM Content

A profile one compliant system MUST produce content structured in well-formed XML. It MUST support the Dublin Core namespace and the dc:identifier element. It MUST support one or more PRISM namespaces and one or more elements from each supported namespace.

4.1.2  Producing Profile #2 Compliant PRISM Content

A profile two compliant system MUST produce content structured as specified in Section 5: PRISM Profile of the Resource Description Framework. It MUST support the Dublin Core namespace, the RDF namespace, rdf:ID,  and the rdf:about element, but their use is not required. It MUST support one or more PRISM namespaces and one or more elements from each supported namespace.

4.1.3  Producing Profile #3 Compliant PRISM Content

A profile three compliant system MUST produce XMP metadata according to the “XMP Storage Model” as specified in the Adobe Extensible Metadata Platform (XMP) Specification [XMP]. This includes the serialization of the metadata as a stream of XML and XMP Packets, a means of packaging the data in files. It MUST support the Dublin Core namespace and the dc:identifier element. It MUST support one or more PRISM namespaces.

4.2    Constraints on Systems Consuming PRISM Compliant Content

Systems MUST assert that they are capable of consuming PRISM Profile #3, PRISM Profile #2 or PRISM Profile #1 compliant content. At this point, the assertion is assumed to be contractual, not machine readable. Systems MUST treat content of any supported PRISM elements as described in this specification. Specifically, systems MUST NOT add elements or attributes to PRISM namespaces and vocabularies or to the Dublin Core namespace; systems MUST NOT define optional elements as mandatory.

Systems are not required to discard well-formed metadata that is unknown or not interpretable within their scope. Systems SHOULD retain and retransmit any information that is not malformed or otherwise non-compliant, regardless of its utility or value within their scope.

Systems MUST be capable of handling elements and attributes that are not part of the PRISM Specification without generating an error. A well-formed element or attribute, otherwise unknown, MUST NOT be considered an error in PRISM-compliant content. 

4.2.1  Consuming Profile #3 Compliant PRISM Content

A profile three compliant system MUST consume ("read," "accept as input") content structured as XMP. It MUST expect the Dublin Core namespace and one or more PRISM namespaces and one or more XMP metadata fields/elements from each supported namespace.

4.2.2  Consuming Profile #2 Compliant PRISM Content

A profile two compliant system MUST consume ("read," "accept as input") content structured as specified in Section 5: PRISM Profile of the Resource Description Framework. It MUST expect the Dublin Core namespace, rdf:ID, and the rdf:about element; It MUST support one or more PRISM namespaces and one or more elements from each supported namespace.

4.2.3  Consuming Profile #1 Compliant PRISM Content

A profile one compliant system MUST consume ("read," "accept as input") content structured in well-formed XML. It MUST expect the Dublin Core namespace and the dc:identifier element. It MUST support one or more PRISM namespaces and one or more elements from each supported namespace.

4.3    Constraints on PRISM-compliant Content Models

Where an organization is developing a content model using PRISM namespaces and elements, whether or not the resulting abstraction of content (a set of database tables, a specification, a DTD, a schema, etc.) is realized as part of a software system, if PRISM compliance is to be claimed, then the same constraints apply to the content models as apply to PRISM content producers.

4.4    Identifying PRISM Content

The Internet Media Type (aka MIME type)[IETF-MIMETYPES] for PRISM Profile #2 compliant PRISM descriptions is “text/prism+rdf+xml”. The Internet Media Type for profile one compliant PRISM descriptions is “text/prism+xml”. Because PRISM/XMP may be embedded in a wide variety of media types, this profile will assume the media type of the resource. PRISM Best Practice is to specify an added “prism+xmp”. So, for example, if the resource is a PDF, the mime type would be “application/pdf+prism+xmp”.

When PRISM descriptions are stored as PRISM Profile #2 or PRISM Profile #1 XML files, the preferred filename extension is “.prism”. When neither of those two identification methods are appropriate, the content can be scanned for occurrences of the URI ”http://www.prismstandard.org/namespaces/basic/3.0/” used as a namespace URI in an XML documents. Such documents are considered to be PRISM content.

When PRISM descriptions are stored as PRISM Profile #3, the metadata will be stored inside each media object within the XMP Packet. If exported, the PRISM XMP fields are stored within the exported *.xmp files. PRISM metadata within an .xmp file can be identified by the dc: or prism: namespaces attached to the field.


4.5    Namespace and Vocabulary Identifiers

Systems that claim PRISM Profile #2 or PRISM Profile #3 compliance MUST recognize and support namespaces as defined in this section. Systems MAY use the namespace declarations below in order to use familiar prefixes.

4.6    Recommended PRISM Namespaces

4.7    Recommended PRISM Controlled Vocabulary URIs

The PRISM Specification also defines a number of domain-specific controlled vocabularies. Those vocabularies can be found in CVs.zip. Vocabularies include:

4.7.1  PRISM, PAM and PSV Controlled Vocabularies

4.7.2  PRISM Recipe Controlled Vocabularies

4.7.3  PRISM Image Controlled Vocabularies

4.7.4  PRISM Usage Rights Controlled Vocabularies

4.7.5  PRISM Advertising Controlled Vocabularies

4.8    Additional Controlled Vocabularies

In addition to the PRISM-defined vocabularies, a number of other vocabularies and data formats are recommended by PRISM as current best practice. Those are:

4.8.1  Date-time

PRISM-compliant applications sending metadata to other systems are STRONGLY ENCOURAGED to use the W3C profile of ISO 8601 [W3C-DateTime] as the format of their date and time values, including time zone data (tz). Implementers are advised, however, that this specification may be supplanted in the future by one which allows features such as ranges of times, or the use of the tz library’s method of specifying time zone offsets as strings composed of Continent/City. So, implementations SHOULD be able to deal with other forms.

4.8.2  Locations

PRISM-compliant applications sending metadata to other systems are STRONGLY ENCOURAGED to use the codes from [ISO-3166] as the values for the prism:location element.

The ISO 3166 codes do not cover cities, counties, or historical locations. In situations where finer coverage is needed, implementers MAY wish to use codes from the Thesaurus of Geographic Names [TGN].

4.8.3  Industrial Sector

PRISM-compliant applications sending metadata to other systems MAY wish to use the industry sector codes from [NAICS] as the values for the prism:industry element and pim:industry’s href attribute.

4.9    Identifiers

PRISM Profile #2 compliant files MUST use the rdf:about attribute on rdf:Descriptor elements to specify the resource being described. The value of the rdf:about attribute is STRONGLY ENCOURAGED to be a URI reference [RFC-2396]. The dc:identifier element MUST be used to contain any additional identifiers to be sent, or any identifiers that cannot be represented as a URI reference. For example, a resource can be identified by a URI and by an internal asset ID that an organization would use to access it in their database. PRISM-compliant applications are STRONGLY ENCOURAGED to maintain the unique identifier(s) provided for a resource.

PRISM Profile #1 compliant files MUST use the dc:identifier element to specify the resource being described. This value is STRONGLY ENCOURAGED to be a unique identifier.

PRISM’s only policy on the assignment of identifiers is that the party assigning an identifier MUST NOT assign the same identifier to a different resource, using whatever definition of “different” the assigning party deems appropriate.

PRISM compliant systems MUST regard two resources as being ‘the same’ if they have the same unique identifier. The party assigning the identifier is the sole arbiter of what they mean by ‘the same’. Note that this definition does not imply that two resources are different if their identifiers are different. Different identifiers MAY (and frequently will) be assigned to the same resource.

PRISM does not require that all resources carry the same identifier through their entire lifecycle. However, if the publisher assigns a new identifier to non-reusable content obtained from an external party, the publisher SHOULD retain information on the origin and licensing of the resource so that someone later in its lifecycle can determine how to obtain the rights to reuse it.

4.10 Cardinality and Optionality

All PRISM descriptions MUST contain at least one identifier for the resource being described, expressed in the rdf:about attribute (profile two) or the dc:identifier element (PRISM Profile #1). Any number of additional identifiers MAY be expressed in dc:identifier elements. However, at least one other field MUST be specified in a description in order to have a meaningful model.

All other Dublin Core elements are optional, and any of them MAY be repeated any number of times. Unless specifically noted otherwise, PRISM elements are also optional and MAY occur any number of times in a description.

4.11 Automatic Creation of Inverse Relations

PRISM includes elements for specifying relations between resources (e.g. Resource1 isVersionOf Resource2). Those relations have inverse relations that are also in the PRISM Specification (e.g., Resource2 hasVersion Resource1).

PRISM-compliant systems which receive one side of such a relation MAY infer the presence of the additional inverse relation. To be more specific, if the implementation tracks the origin of individual RDF statements and can segregate its database in order to undo the addition of such inferred inverses, it SHOULD infer the inverse and keep it segregated from the original input. If an implementation does not track individual statements and sources, it MAY infer the inverse relations but is cautioned about the possibility of data corruption.


4.11.1            PRISM Profile of the Resource Description Framework

The Resource Description Framework (RDF) has been standardized by the W3C to provide a general framework for metadata. As such, its capabilities exceed those required by PRISM. Therefore, this document specifies a “profile” – a restricted subset – of RDF that all PRISM Profile #2 compliant software MUST support. This profile excludes certain capabilities of RDF that are not needed in PRISM applications, thus simplifying the development of PRISM applications.

Applications conforming to the PRISM Specification and claiming PRISM Profile #2 compliance MUST produce correct RDF documents that can be read by any RDF-compliant software. They MUST also produce documents that conform to the PRISM profile of RDF. PRISM-compliant software does not have to be capable of processing arbitrary RDF documents.

4.12 Constraint 1: Top-level Structure of Descriptions

The formal grammar for RDF [W3C-RDF] specifies:

[6.1] RDF ::= ['<rdf:RDF>'] obj* ['</rdf:RDF>']

[6.2] obj ::= description | container

For PRISM descriptions, the rdf:RDF wrapper element is required, and its child elements are restricted to being rdf:Description elements. The production that replaces productions 6.1 and 6.2 for PRISM systems is:

RDF ::= '<rdf:RDF' namespace_decls '>' description+ '</rdf:RDF>'

4.13 Constraint 2: rdf:aboutEachPrefix Disallowed

PRISM descriptions MUST NOT use the rdf:aboutEachPrefix attribute. Production [6.8] of the RDF M&S specification thus becomes:

AboutEachAttr ::= ' aboutEach="' URI-reference '"'

4.14 Further Qualifications

No other overall restrictions in the allowed RDF syntax are specified in this section. However, implementers are advised to pay particular attention to the following points:

To aid automated processing of PRISM metadata, this specification defines a separate namespace for PRISM elements suitable for in-line markup. Thus, prism:organization is an RDF statement and pim:organization is used as in-line markup.

The PRISM Working Group encourages implementers to keep the generated markup as simple as possible. As an example, if a work has multiple authors, RDF allows that situation to be encoded in two ways, which have slightly different meanings. The first way uses multiple dc:creator elements, each listing a separate author. The second way is to have a single dc:creator element, which then contains one of RDF’s collection constructs, such as rdf:Bag. That, in turn, would list the different authors. According to the RDF specification, the first is to be used when the authors acted as a collection of individuals in the creation of a work. The second is to be used when the authors acted as a committee. Experience has shown, however, that this distinction is too subtle for human catalogers to make reliably. The PRISM Working Group recommends using the first approach in most cases.

Note that although a sequence of dc:creator elements in an RDF/XML file implicitly defines a sequence (in the XML world), RDF parsers have no obligation to preserve that ordering, unlike if an explicit rdf:Seq were given. PRISM implementers are advised that there are quality of implementation issues between different RDF processors. In general, implementers MAY prefer to build on top of an RDF parser that allows the original order of the statements to be reconstructed. That would allow the original order of the authors on a piece to be reconstructed, which might or might not convey additional meaning to the viewer of a styled version of the record. Similarly, XML software that can handle the recently-standardized xml:base attribute MAY be preferred.

4.15 Conventions for Property Values

To aid in the automatic processing of PRISM documents, PRISM utilizes some conventions in expressing values of RDF properties. The values are expressed in three ways. First, a resource or an entry in a controlled vocabulary MAY be referenced with the rdf:resource attribute. For example, a book can be identified by its ISBN number as follows:

<dc:identifier rdf:resource=”urn:isbn:0-932592-00-7”/>

Second, human readable text MUST be represented as element content:

<dc:title>Juggling for the Complete Klutz</dc:title>

Garring any circumstances where representing the text in element content would change the RDF as compared to representing it as an attribute value. That element content may contain XML markup, in which case the rdf:parseType attribute MUST be given and MUST have a value of “Literal.”

Third, controlled vocabulary entries may be specified in-line. See Example 5.1:

<dc:subject>

  <pcv:Descriptor rdf:about=”http://loc.gov/LC/QA-76”>

    <pcv:vocabulary>Library of Congress Classification</pcv:vocabulary>

    <pcv:code>QA-76</pcv:code>

    <pcv:label>Mathematical software</pcv:label>

  </pcv:Descriptor>

</dc:subject>

Example 5.1 In-Line Controlled Vocabulary Entries

XML DTDs cannot describe such a flexible content model, but more recent schema languages such as XML Schema and RELAX can, with varying degrees of difficulty. 

4.16 Convention for In-line Controlled Vocabulary Term Definitions Preferred

PRISM descriptions make extensive use of values selected from controlled vocabularies. Conceptually, all that is needed is a reference to the vocabulary entry. But for practical considerations such as human readability, ease of use of full-text search tools, and performance, it is useful to be able to provide information about the controlled vocabulary entry, such as its human-readable label, directly in the description.

The PRISM Specification recommends that when this additional information is provided, it be provided in-line, instead of as an additional rdf:Description element. In Example 5.2, a story whose subject is "Mining" as defined in the North American Industrial Classification System (NAICS), would have the following description:

<?xml version="1.0" encoding="UTF-8"?>

<rdf:RDF xmlns:prism="http://prismstandard.org/namespaces/basic/2.0/"

         xmlns:pcv="http://prismstandard.org/namespaces/pcv/2.0/"

         xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

         xmlns:dc="http://purl.org/dc/elements/1.1/">

 <rdf:Description rdf:about="story.xml">

  <dc:subject>

   <pcv:Descriptor rdf:about="http://prismstandard.org/vocabs/NAICS/21">

    <pcv:vocab>North American Industrial Classification System</pcv:vocab>

    <pcv:code>21</pcv:code>

    <pcv:label>Mining</pcv:label>

   </pcv:Descriptor>

  </dc:subject>

 </rdf:Description>

</rdf:RDF>

Example 5.2 In-Line Description

as opposed to the form of the description in Example 5.3, where the controlled vocabulary term is described out-of-line instead of in-line.

<?xml version="1.0" encoding="UTF-8"?>

<rdf:RDF xmlns:prism="http://prismstandard.org/namespaces/basic/2.0/"

         xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

         xmlns:dc="http://purl.org/dc/elements/1.1/">

 

 <rdf:Description rdf:about="story.xml">

  <dc:subject rdf:resource="http://prismstandard.org/vocabs/NAICS/21"/>

 </rdf:Description>

 

 <pcv:Descriptor rdf:about="http://prismstandard.org/vocabs/NAICS/21">

  <pcv:vocab>North American Industrial Classification System</pcv:vocab>

  <pcv:code>21</pcv:code>

  <pcv:label>Mining</pcv:label>

 </pcv:Descriptor>

</rdf:RDF>

Example 3: Out-of-line Description

The two approaches are identical in terms of the RDF graph that is generated, but the former is believed easier to deal with using standard tools such as full-text indexing software or simple editing scripts.

Note that we use the rdf:about attribute when providing the information on the controlled vocabulary term. This indicates that the real definition of the term is elsewhere, and we are merely providing some local descriptions of that term