ZedAI Roles Iteration1

From zedwiki

Jump to: navigation, search

Contents

Iteration 1

The goal of the work on roles during this iteration is to create a DAISY equivalent of the taxonomy example in appendix c of the XHTML Role Attribute Module spec. The objects being defined will come from the Simple/Leisure and Periodicals DAISY profiles. This taxonomy will be the basis for further evaluation of our application of the role framework.

The Taxonomy

In this iteration, the focus is on defining roles. Relationships between elements and roles will be explored after the roles themselves are clearly defined.

What should it include

Part of identifying the items that will be represented includes reviewing this list of parts of a published work, compiled from the Chigago Manual of Style.

Note the following items do not have a direct CMOS equivalent:

  • pagenum
  • section
  • bridgehead
  • sidebar


How should it be written

The two examples here are different approaches of how to write it. Both examples show only snippets of our actual taxonomy.

Written as OWL/RDF XML

<?xml version="1.0"?>
<!DOCTYPE rdf:RDF [
<!ENTITY xsd "http://www.w3.org/2001/XMLSchema#">
<!ENTITY dc "http://dublincore.org/2003/03/24/dces#">
<!ENTITY owl "http://www.w3.org/2002/07/owl#">
<!ENTITY waiaria "http://www.w3.org/WAI/PF/aria/#">
<!ENTITY xhtml2 "http://www.w3.org/TR/xhtml2/xhtml20_schema.html#">
<!ENTITY docbook5 "http://docbook.org/ns/docbook#">
<!ENTITY xhtmlvocab "http://www.w3.org/1999/xhtml/vocab/#">
<!ENTITY book "http://www.chicagomanualofstyle.org/ch01/">
]>
<rdf:RDF 
	xmlns:dc="http://purl.org/dc/elements/1.1/#" 
	xmlns:owl="http://www.w3.org/2002/07/owl#" 
	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
	xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" 
	xml:base="http://www.w3.org/1999/xhtml">
	
	<owl:Class rdf:ID="pagenum">
		<rdfs:seeAlso rdf:resource="&xhtml2;separator"/>
		<dc:description xml:lang="en">
    A separator denoting the break between two contiguous pages.
    </dc:description>
	</owl:Class>
	
	<owl:Class rdf:ID="section">
		<rdfs:seeAlso rdf:resource="&book;ch01_sec076.html"/>
		<rdfs:seeAlso rdf:resource="&docbook5;section"/>
		<rdfs:subClassOf rdf:resource="&waiaria;section"/>
		<dc:description xml:lang="en">
			A generic division of content
	  </dc:description>
	</owl:Class>
	
	<owl:Class rdf:ID="bridgehead">
		<rdfs:seeAlso rdf:resource="&xhtml2;h"/>
		<rdfs:seeAlso rdf:resource="&book;ch01_sec071.html"/>
		<rdfs:subClassOf rdf:resource="&waiaria;heading"/>
		<dc:description xml:lang="en">
    A free-floating heading that is not associated with the hierarchical structure of a document.
    </dc:description>
	</owl:Class>
	
	<owl:Class rdf:ID="sidebar">
		<rdfs:seeAlso rdf:resource="&docbook5;sidebar"/>
		<rdfs:subClassOf rdf:resource="&waiaria;complementary"/>
		<dc:description xml:lang="en">
    A sidebar contains supplemental information, often formatted as an inset.
    </dc:description>
	</owl:Class>
	
</rdf:RDF>

Written as RDFa


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN"
      "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
<head>
  <title>Zedbook Vocabulary</title>
</head>

<div id="zedbook-roles" about="#zedbook-roles" typeof="rdfs:Container">
  <div about="#role" rev="rdfs:member">
  <dl>
    <dt id="pagenum" about="#pagenum" typeof="rdf:Property">pagenum</dt>
    <dd about="#pagenum" property="rdfs:comment" datatype="xsd:string"><span>pagenum</span> is a separator denoting the break between two contiguous pages.</dd>
    <dd about="#pagenum" property="rdfs:seeAlso">http://www.w3.org/TR/xhtml2/xhtml20_schema.html#separator</dd>
  
    <dt id="section" about="#section" typeof="rdf:Property">section</dt>
    <dd about="#section" property="rdfs:comment" datatype="xsd:string"><span>section</span> is a generic division of content.</dd>
    <dd about="#section" property="rdfs:subClassOf">http://www.w3.org/WAI/PF/aria/#section</dd>
    <dd about="#section" property="rdfs:seeAlso">http://docbook.org/ns/docbook#section</dd>
    <dd about="#section" property="rdfs:seeAlso">http://www.chicagomanualofstyle.org/ch01/ch01_sec076.html</dd>
    

    <dt id="bridgehead" about="#bridgehead" typeof="rdf:Property">bridgehead</dt>
    <dd about="#bridgehead" property="rdfs:comment" datatype="xsd:string"><span>bridgehead</span> is a free-floating heading that is not associated with the hierarchical structure of a document.</dd>
    <dd about="#bridgehead" property="rdfs:subClassOf">http://www.w3.org/WAI/PF/aria/#heading</dd>
    <dd about="#bridgehead" property="rdfs:seeAlso">http://www.w3.org/TR/xhtml2/xhtml20_schema.html#h</dd>
    <dd about="#bridgehead" property="rdfs:seeAlso">http://docbook.org/ns/docbook#ch01_sec071.html</dd>
  
    <dt id="sidebar" about="#sidebar" typeof="rdf:Property">sidebar</dt>
    <dd about="#sidebar" property="rdfs:comment" datatype="xsd:string"><span>sidebar</span> contains supplemental information, often formatted as an inset.</dd>
    <dd about="#sidebar" property="rdfs:subClassOf">http://www.w3.org/WAI/PF/aria/#complementary</dd>
    <dd about="#sidebar" property="rdfs:seeAlso">http://docbook.org/ns/docbook#sidebar</dd>
	
</dl>
</div>
</div>

Questions and notes

Arranged with the most recent first.

RDFa

Q1: Which is preferable?

  
  a) (current) 
     <dd about="#section" property="rdfs:subClassOf">http://www.w3.org/WAI/PF/aria/#section</dd>

  b) (with href) 
     <dd about="#section" property="rdfs:subClassOf" href="http://www.w3.org/WAI/PF/aria/#section"/>

  c) (with href and human-readable portion)
     <dd about="#section" property="rdfs:subClassOf" href="http://www.w3.org/WAI/PF/aria/#section"/>
         zed:section is a subclass of WAI ARIA section
     </dd>

Option "c" seems the best because both machines and users will understand it; unless the machines don't know whether the href or inner element text is the property value. The general recommendation is to use href, but does that mean the last option would produce the desired behavior or not?

A1: According to this intro to RDFa, an RDFa processor will consider @property before the element's PCDATA; I think we can assume the same for @href.

Second draft (10 December 2008)

Q1: How to refer to the Chicago Manual of Style? It doesn't have a namespace or schema or anything -- just an online version which requires a login. Right now, we are referencing it as an entity called "book" that points to the URL http://www.chicagomanualofstyle.org/ch01/. The references in the taxonomy are to the manual page for the given publication component. Is this correct/agreeable?

A1: This question has been posted to the ZedAI mailing list.

Q2: TODO: link to QName from role, implying that all elements with that QName have that role. We can loosely associate the two, but it probably won't be machine-readable. A better solution will be investigated.

Q3: Comment: In the first taxonomy draft, our owl:Class elements were often roles that subclassed elements from other namespaces. I don't think making roles out of elements is legal. I made roles that reference elements use seeAlso, and roles that reference roles use subClassOf (where applicable).

A3: James, Markus, Boris, Marisa all agreed that this seems like the right approach for a role taxonomy.

Q4: How are we dealing with titles? I see the xhtml title element in the samples. We could theoretically use dc:title, our own title element with rules for child elements, or the Chicago Manual of Style's title + half-title + series-title.

A4: The latter roles will be added to our taxonomy. Any further issues up for discussion do not have to be in scope for the taxonomy work right now.

Q5: Can our bridgehead role be a subclass of waiaria:heading, which is defined as "a heading for a section of the page"? It is unclear if they are using "section" casually or as a reference to their own ontology.

A5: This question has been posted to the ZedAI mailing list.

Q6: The xhtml2:separator element is just a structural break, whereas the waiaria:separator role is a visual separator (a line or bar). Are they going to become aligned?

A6: This question has been posted to the ZedAI mailing list.

Q7: Do we need to cite the Chicago Manual of Style for the descriptions of epigraph and forward? They were taken from their site.

Q8: Expand upon, or remove entirely, one-word descriptions.

Q9: Make sure the docbook5 schema reference is accurate. They have XSD, RNG, and other documentation formats available.

A9: It has been corrected.

Q10: Do we want to refer to the Chicago Manual of Style section page in our taxonomy entry for the role "section"? It talks about section numbering more than sections themselves. Section is not a term they use in Chicago Manual of Style, but it is implied that they are taking about anything under a subhead (which is a heading that can have a level but doesn't have to).

A10: This question has been posted to the ZedAI mailing list.

After the first draft (1 December 2008)

Q:What is the datatype restriction on page number? Did we decide that page breaks have an associated page number value?

A: Datatype restriction was removed; it will be handled by non-RDF spec schema.

Q:Would some sidebars be elegible for waiaria:complementary? It means that its content supports the main content but can stand on its own, too.

A: Check the latest WAI ARIA roles. They've changed a bit.

Q: Do (foot)noterefs require a numeric value?

A: The numeric restriction was removed (same reason as above)

Q: Is my understanding of bridgehead correct? It precedes sections, but doesn't require that they have any nested significance. in this case, I don't see why they aren't the same as xhtml2:h. E.g.:

<section>
	<h>Section one</h>
	<p>Introductory paragraph</p>
	
	<h>I am really a bridgehead</h>
	<p>And you can tell, because I am not the first child of a section element.</p>
	...
</section>

This type of behavior seems implied by the definition of the xhtml2 h element.

A: See mailing list discussion on bridgehead; incorporate conclusion into taxonomy

Initial questions

1. What are the other members of the (assumed) enumeration that rdfs:subClassOf stems from?

In other words, what other relationships are predefined (rdfs:subClassOf, ?rdfs:superClassOf?, ?rdfs:equivalent?, ?rdfs:sibling?, etc).

Answer: rdfs:subClassOf is defined by the RDF Schema spec. The properties defined here are:

  • rdfs:subClassOf
  • rdfs:range
  • rdfs:domain
  • rdf:type
  • rdfs:subPropertyOf
  • rdfs:label
  • rdfs:comment

Among the other properties defined by the RDF schema spec, the utility properties may be of interest for expressing relationships. They are:

  • rdfs:seeAlso
  • rdfs:isDefinedBy
  • rdf:value


2. Is it possible to express a relation to a QName?

Lets assume we create an owl:Class for the DAISY sidebar. We want to express a relationship to docbook5:sidebar. Let's assume docbook5 does not have a taxonomy, and therefore no roles to refer to. Could our taxonomy then refer directly to a QName in the DocBook grammar instead? (Another example of the same problem is the DAISY pagenumber - assume the XHTML vocabulary does not contain an entry for separator.)

(Reading the RDF/OWL taxonomy, the particular value I am referring to is owl:Class/rdfs:subClassOf/@rdf:resource)

Answer: Yes. This is the syntax in use:

<rdf:Resource>http://example.org/namespace#tagname</rdf:Resource>

Something to watch out for is how the QName is resolved. See Things that make me scream and The QName to URI Quagmire for more details.


3. What extensions would we want to suggest to the XHTML Vocab document?

In order for a DAISY taxonomy to be able to provide reductionist mappings back to XHTML, what are the extensions we would want to see in the XHTML vocabulary?

In the book republishing context (eg Simple and Advanced Book Profiles), I am guessing we will could start with a list using the bookStruct enumeration of Z2005 (separator (maps to pagenum), note, note reference, sidebar, annotation, etc).

Answer: Waiting to see all the elements that emerge from the new profiles.


4. Out-of-line static role associations

We want to avoid inlining and repeating the role attribute in document instances when the role is static. For example, assume that d:pagebreak is associated with "separator" in the XHTML vocabulary. We don't want to print that in every occurence of a daisy page (<d:pagebreak @role="xhtmlvocab:separator"/>).

The question becomes: what is the syntax (within a taxonomy) to establish a static relationship between a QName (in the example: d:pagebreak) and a role (in the example: xhtmlvocab:separator )?

Answer: Still looking for an official solution.

One answer could lie in GRDDL, which can transform plain XML into its RDF-ized equivalent. This can keep the source XML clean-looking while preserving the default relationships.

Personal tools