Commits

Toby Inkster committed 706e55c

more explanation

Comments (0)

Files changed (1)

     
     <section id="intro" class="informative">
       <h2>Introduction</h2>
-      <p class="issue todo">
-        @@TODO - gist is that we want to retain compatibility with Yahoo's DataRSS [[DATARSS]]; also be compatible with Atom 1.0 syntax and semantics.
+      
+      <p>
+        Atom+RDFa 1.1 is a specification for generating and processing RDFa 1.1
+        data in Atom 1.0 documents. It is inspired by Yahoo!'s DataRSS specification
+        [[DATARSS]], and aims to retain compatibility with this where practical.
+        It also aims to preserve the native semantics of Atom 1.0 documents.
       </p>
+      
+      <p>An example Atom+RDFa document is shown below.</p>
+      
       <pre class="example sh_xml">&lt;?xml version="1.0" encoding="utf-8"?>
 &lt;feed xmlns="http://www.w3.org/2005/Atom"
   xmlns:rdfa="http://www.w3.org/ns/rdfa#"
         non-conforming according to <a href="#document-conformance" class="sectionRef"
         ></a>), or refuse to process the document at all (for instance if the XML is
         not well-formed).</p>
-        <p>The <a href="#initial-context" class="sectionRef"></a> is a frequently
-        updated registry of terms. Processors SHOULD stay up to date with newly
-        defined terms, as far as is practical.</p>
       </section>
       <section id="document-conformance">
         <h3>Atom+RDFa 1.1 Document Conformance</h3>
             <code>html</code>.
           </li>
         </ol>
-        <p>
-          The Atom <code>&lt;link></code> element has existing <code>rel</code> and
-          <code>href</code> attributes which can be interpreted as RDFa. Publishers
-          MUST NOT use any RDFa features on <code>&lt;link></code> elements which are
-          incompatible with Atom 1.0's definition of the element &#8212; in particular,
-          <code>rel</code> MUST be a term from the initial context detailed in
-          <a href="#initial-context" class="sectionRef"></a>, or otherwise MUST be a
-          full, absolute URI. CURIEs MUST NOT be used in the <code>rel</code> attribute
-          of <code>&lt;link></code> elements.
-        </p>
+        <section id="atom-link-element">
+          <h4>The <code>&lt;link></code> Element</h4>
+          <p>
+            The Atom <code>&lt;link></code> element has existing <code>rel</code> and
+            <code>href</code> attributes which can be interpreted as RDFa. Publishers
+            MUST NOT use any RDFa features on <code>&lt;link></code> elements which are
+            incompatible with Atom 1.0's definition of the element &#8212; in particular:
+          </p>
+          <ul>
+            <li>
+              <p>
+                If a <code>&lt;link></code> element is not in the scope of any
+                <code>vocab</code> attribute, or is in the scope of a <code>vocab</code>
+                attribute that sets the default vocabulary to 
+                <code>http://www.iana.org/assignments/relation/</code>, then
+                tokens in the <code>rel</code> attribute of the <code>&lt;link></code>
+                element MUST take the form of:
+              </p>
+              <ul>
+                <li>full, absolute URIs; or</li>
+                <li>a term from the default vocabulary.</li>
+              </ul>
+              <p>CURIEs MUST NOT be used.</p>
+            </li>
+            <li>
+              <p>
+                If a <code>&lt;link></code> element is in the scope of a <code>vocab</code>
+                attribute that sets the default vocabulary to something other than
+                <code>http://www.iana.org/assignments/relation/</code>, then
+                tokens in the <code>rel</code> attribute of the <code>&lt;link></code>
+                element MUST take the form of:
+              </p>
+              <ul>
+                <li>full, absolute URIs only</li>
+              </ul>
+              <p>CURIEs and terms from the default vocabulary MUST NOT be used.</p>
+            </li>
+          </ul>
+          <p>
+            Note that the above restrictions on the <code>rel</code> attributes of
+            <code>&lt;link></code> elements affect document conformance only. RDFa processors
+            are still expected to consume tokens in <code>rel</code> regardless of
+            whether these conformance criteria are followed.
+          </p>
+        </section>
         <section id="rdfa-meta-element">
           <h4>The <code>&lt;rdfa:meta></code> Element</h4>
           <p>
         Documents conforming to the rules in this specification are processed
         according to RDFa Core 1.1 [[!RDFA-CORE]] with the following extensions:
       </p>
-      <p class="issue todo">
-        @@TODO - decide on a URI for the initial context. It might be OK
-        to keep it as-is, but probably more acceptable to define a URI for
-        an RDFa representation of the context.
-      </p>
       <ul>
         <li>
-          The default vocabulary URI is initially undefined.
-        </li>
-        <li>
-          Atom+RDFa 1.1 uses an additional initial context by default,
-          <code>http://www.iana.org/assignments/link-relations/link-relations.xml#link-relations-1</code>, which must be
-          applied after the initial context for [[!RDFA-CORE]]
-          (<code>http://www.w3.org/2011/rdfa-context/rdfa-1.1</code>).
-          See <a href="#initial-context" class="sectionRef"></a> for further information.
+          The default vocabulary URI is initially <code>http://www.iana.org/assignments/relation/</code>.
         </li>
         <li>
           The base is set using the xml:base attribute as defined in XML Base [[!XMLBASE]].
           value, and process it according to the rule for <code>typeof</code>.
         </li>
       </ul>
-    </section>
-    
-    <section id="initial-context">
-      <h2>Initial Context</h2>
-      <p>
-        The initial context <code>http://www.iana.org/assignments/link-relations/link-relations.xml#link-relations-1</code>
-        cannot be directly resolved to RDFa. Instead an XML+RDFa 1.1 representation
-        of it can be obtained by processing the XML version [[!REL-REG]]
-        of the IETF Link Registry [[RFC5988]] with the following XSL Transformation:
-      </p>
-      <pre class="sh_xml">&lt;?xml version="1.0" encoding="UTF-8"?>
-&lt;xsl:stylesheet version="1.0"
-  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-  xmlns:reg="http://www.iana.org/assignments"
-  xmlns:dc="http://purl.org/dc/terms/"
-  xmlns:rel="http://www.iana.org/assignments/relation/"
-  xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
-  xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
-  xmlns:rdfa="http://www.w3.org/ns/rdfa#">
-  
-  &lt;xsl:output method="xml" indent="yes"/> 
- 
-  &lt;xsl:template match="//reg:registry[@id]">
-    &lt;reg:registry id="{@id}" about="#{@id}">
-      &lt;xsl:apply-templates select="reg:title"/>
-      &lt;xsl:apply-templates select="reg:updated"/>
-      &lt;xsl:apply-templates select="reg:registry"/>
-      &lt;xsl:apply-templates select="reg:record"/>
-    &lt;/reg:registry>
-  &lt;/xsl:template> 
-
-  &lt;xsl:template match="reg:title">
-    &lt;reg:title property="dc:title" xml:lang="en">
-      &lt;xsl:value-of select="."/>
-    &lt;/reg:title>
-  &lt;/xsl:template>
-
-  &lt;xsl:template match="reg:updated">
-    &lt;reg:updated property="dc:modified" datatype="xsd:date">
-      &lt;xsl:value-of select="."/>
-    &lt;/reg:updated>
-  &lt;/xsl:template>
-  
-  &lt;xsl:template match="reg:record">
-    &lt;reg:record typeof="rdfa:TermMapping"
-      property="rdfa:uri"
-      content="http://www.iana.org/assignments/relation/{reg:value}">
-      &lt;xsl:apply-templates select="reg:value"/>
-      &lt;xsl:apply-templates select="reg:description"/>
-      &lt;xsl:apply-templates select="reg:xref[@type='uri']"/>
-    &lt;/reg:record>
-  &lt;/xsl:template>
-
-  &lt;xsl:template match="reg:value">
-    &lt;reg:value property="rdfa:term">
-      &lt;xsl:value-of select="."/>
-    &lt;/reg:value>
-  &lt;/xsl:template>
-
-  &lt;xsl:template match="reg:description">
-    &lt;reg:description
-      about="[rel:{ancestor::reg:record/reg:value}]"
-      property="rdfs:comment"
-      xml:lang="en">
-      &lt;xsl:value-of select="."/>
-    &lt;/reg:description>
-  &lt;/xsl:template>
-
-  &lt;xsl:template match="reg:xref[@type='uri']">
-    &lt;reg:xref
-      about="[rel:{ancestor::reg:record/reg:value}]"
-      rel="rdfs:seeAlso"
-      resource="{./@data}">
-      &lt;xsl:value-of select="."/>
-    &lt;/reg:xref>
-  &lt;/xsl:template>
-
-&lt;/xsl:stylesheet></pre>
-      <section id="initial-context-implementation" class="informative">
-        <h3>Implementation Details</h3>
+      <p class="issue todo">In Atom 1.0, <code>rel</code> defaults to "alternate".</p>
+      <section id="processing-reasoning">
+        <h2>Reasoning</h2>
         <ul>
           <li>
-            Implementations are not required to implement XSLT. Other techniques
-            that result in an equivalent list of term mappings are allowed.
+            The default vocabulary URI is taken from section 4.2.7.2. of
+            [[!RFC4287]], in order to correctly handle the meanings of
+            tokens in <code>rel</code> attributes of existing Atom documents.
+            An alternative would be to use the registry of link relations
+            [[REL-REG]] but this is updated too frequently to be practical.
           </li>
           <li>
-            Unlike other RDFa host languages, this initial context has a
-            frequently updated registry of terms.
+            The xml:base attribute is already used by Atom 1.0 to set the base URI.
+            (Section 2 of [[!RFC4287]].)
           </li>
           <li>
-            Many of the terms in the Atom+RDFa 1.1 initial context override
-            those in the RDFa 1.1 Core initial context, and map to different URIs.
+            The xml:lang attribute is already used by Atom 1.0 to set the language.
+            (Section 2 of [[!RFC4287]].)
+          </li>
+          <li>
+            Setting a default subject for <code>&lt;entry></code> elements is
+            necessary to correctly interpret Atom's native <code>&lt;link></code>
+            elements, and also appears to be assumed by [[DATARSS]].
           </li>
         </ul>
       </section>
       <p>
         An Atom+RDFa 1.1 processor may be used to process DataRSS by adding
         the DataRSS Context [[DATACONTEXT]] to its initial context.
+      </p>
     </section>
     
     <section class='schema'>