[Note: this HTML document is an approximation of the Word (.DOC) version posted to the mailing list. It is unofficial. See the posting with the URL for the official Word document.]
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-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 that cannot, for one reason or another, make use of an existing RDF parsing frontend.
Applications conforming to the PRISM specification MUST produce correct RDF documents that can be read by any RDF-compliant software. PRISM-compliant software does not have to be capable of processing any arbitrary RDF documents.
There are three general classes of simplification this document makes in its profile of RDF. First, there are certain capabilities of RDF that are excluded. Second, there are some syntactic abbreviations allowed in RDF that are excluded from PRISM documents. Third, there are conventions adopted for the syntax used to express information where RDF allows multiple ways of saying the same thing.
The working group explicitly requests feedback on the PRISM’s use of RDF as a metadata framework, and on the restrictions placed on its use in this application.
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>'
PRISM descriptions MUST NOT use the rdf:aboutEachPrefix attribute. Production [6.8] of the RDF M&S specification thus becomes:
AboutEachAttr ::= ' aboutEach="' URI-reference
'"'
This is a new suggestion, feedback is particularly requested.
The RDF specification defines three forms of abbreviation. Two of those assume that XML elements and XML attributes produce equivalent information in the RDF model being constructed. Those two abbreviations are disallowed in PRISM specifications. PRISM-compliant descriptions MUST NOT create descriptions that use PRISM-defined elements as attributes.
This is a new suggestion, feedback is particularly requested.
The RDF specification allows what is, in effect, another form of abbreviation when the rdf:parseType attribute is given a value of "Resource". PRISM documents MUST NOT provide "Resource" as a value of the rdf:parseType attribute. They MUST only use the rdf:parseType attribute with a value of "Literal".
No other overall restrictions in the allowed RDF syntax are specified in this section. However, implementers are advised to pay particular attention to two points:
1) The sections defining various PRISM elements will typically restrict the data types of values for elements, so general-purpose RDF processing is unlikely to be needed.
2) If general RDF handling is NOT provided in an implementation, the implementation must decide how it will deal with unsupported descriptive elements. The PRISM specification does not preclude other descriptive elements, although their interoperation cannot be guaranteed. PRISM implementations MAY retain unknown descriptive elements.
3) To aid automated processing of PRISM metadata, this specification defines a separate namespace for PRISM elements suitable for in-line markup. Thus, prism:org is an RDF statement and pim:org is an organization as in-line markup.
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 is represented as element content:
<dc:title>Juggling
for the Complete Klutz</dc:title>
That element content may contain XML markup, in which case the RDF parseType attribute MUST be given and MUST have a value of 'Literal'. In other cases, the value of that attribute is assumed to be 'resource' and the attribute need not be specified.
Third, controlled vocabulary entries may be specified in-line. For example::
<dc:subject>
<prism:Descriptor rdf:about=http://www.lc.gov/LCC/QA76>
<prism:vocabulary>Library of
Congress Classification</prism:vocabualry>
<prism:code>QA-76</prism:code>
<prism:label>Mathematical
software</prism:label>
</prism:Descriptor>
</dc:subject>
XML DTDs cannot describe such a flexible content model, so no DTD is provided.
This is a new suggestion, feedback is particularly requested.
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, etc., it is useful to be able to provide information about the controlled vocabulary entry, such as its human-readable label.
The PRISM specification recommends that when this additional information is provided, that it be provided in-line, instead of as an additional rdf:Description element. For example, 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/1.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>
<psv:Descriptor rdf:about="NAICS:21">
<psv:vocab>North American Industrial Classification System</psv:vocab>
<psv:code>21</psv:code>
<psv:label>Mining</psv:label>
</psv:Descriptor>
</dc:subject>
</rdf:Description>
</rdf:RDF>
as opposed to the form of the description below, where the source 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/1.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="NAICS:21"/>
</rdf:Description>
<rdf:Description rdf:about="NAICS:21">
<psv:vocab>North American Industrial Classification System</psv:vocab>
<psv:code>21</psv:code>
<psv:label>Mining</psv:label>
</rdf:Description>
</rdf:RDF>