- From: Stefan Ram <ram@ZEDAT.FU-Berlin.DE>
- Date: Mon, 11 Aug 2003 00:25:13 +0200
- To: www-html@w3.org
Mikko Rantalainen <mira@st.jyu.fi> writes:
>How about something like this:
><section>
>Blah blah blah
><section title="Example">blah blah</section>
>"blah blah
><section title="Figure"><object>...</object></section>
>blah blaa.
></section>
The attribute name "title" might be misleading, because
the contents of this attribute is the /kind/ of the
block, not the title. It might have an independent title
(element of type "h"):
<section kind="exercise">
<h>Sum of two numbers</h>
<p>Find the sum of the numbers 7 and 14 and write it down.</p>
</section>
This might be rendered as
EXERCISE Sum of two numbers
Find the sum of the numbers 7 and 14 and write it down.
I am using the element type names "block" and "caption"
from now on, as suggested by Daniel Brockman. Instead
of "role", the atribute name "rel" might be reused. The
type of block is specified by a "kind" attribute now.
(The attribute name "type" might be misleading,
because in XML the type of an elements is given by the
identifier at the start of the start tag.) The attribute
"class" should be left for the user, e.g., to "subclass"
several different classes of "exercises" by a class-value.
Blocks might be nested. An example:
<block kind="exercise">
<caption>Sum of two numbers</caption>
<p>Find the sum of the numbers 7 and 14 and write it down.</p>
<block kind="hint">
<p>Try to add 10 to 7 first, and then add 4 to the result
or use the following program.</p>
<block kind="listing">
<caption>sum2.bas</caption>
<pre>10 PRINT 7 + 14</pre>
</block>
</block>
</block>
EXERCISE Sum of two numbers
Find the sum of the numbers 7 and 14 and write it down.
HINT
Try to add 10 to 7 first and then add 4 to the result
or use the following program.
LISTING sum2.bas
10 PRINT 7 + 14
>[1] Obviously, taking the value of title and adding 's' doesn't create
>correct plurar form for that many languages. Is this something that
>needs to be solved on markup level or can it be solved with CSS?
For the attribute names, it might be most foolproof to always use
the singular, i.e., "exercise" as value of "containsonly", when
blocks are used as list items and the author wants to express that
the list may only contain blocks of a certain kind.
<ol containsonly="exercise">
<block type="exercise">
<caption>Sum of two numbers</caption>
<p>Find the sum of the numbers 7 and 14 and write it down.</p>
</block>
<block type="exercise>
<caption>Sum of three numbers</caption>
<p>Find the sum of the numbers 7, 14, and 12. Write the sum
on a piece of paper.</p>
<block class="hint">
<p>Solve the preceding exercise first. You then know
the sum of 7 and 14. Use this result to find the sum of
7, 14, and 12.</p>
</block>
</block>
</ol>
Which might be rendered - assuming it appears in chapter 17 -
as follows:
EXERCISES
---------
EXERCISE 17.1 Sum of two numbers
Find the sum of the numbers 7 and 14 and write it down.
EXERCISE 17.2 Sum of three numbers
Find the sum of the numbers 7, 14, and 12. Write the sum
on a piece of paper.
HINT
Solve the preceding exercise first. You then know
the sum of 7 and 14. Use this result to find the sum
of 7, 14, and 12.
There also should be a list of kinds recommended and
possible roles of captions or paragraph sub-elements.
Possibly the list might come from another party (like
the Dublic Core names), but it would be helpful to
have such a list, to avoid inventing different names for
the same or similar meanings.
For example, once the block kind "listing" with "name" and
"source" is standardized, user-agents might offer to safe
such a block to a file, suggesting the block-name as file
name. The block kind "description" might inspire to build
some tools to convert description lists to/from an RSS- or
other RDF-file.
definition <!-- a block kind -->
term <!-- caption rel-attribute -->
description <!-- rel-attribute for other contents -->
listing
name
source
description <!-- of a resource or a thing or a person -->
name
address <!-- e.g., a URI or ISBN -->
description
kind <!-- e.g., "link-list" -->
utterance <!-- as in a drama or an interview -->
speaker
words
questionandanswer <!-- as in an FAQ -->
question
answer
translation
term
translation
production <!-- a production like in EBNF [1] -->
symbol
construction
proof
theorem
remark
example
rule
warning
hint
quote
exercise
question <!-- as an exercise to the reader -->
solution <!-- to an exercise -->
abstract
The current XHTML 2 draft allows the caption-Element as a sub-element
of a table or object. So an additional wrapper-block around this is
not neccessary. Possibly, one also might have captions for lists?
In which case a block-kind "list" might be used as a wrapper or the
caption sub-element might be allowed within an ol/ul-element.
[1] An EBNF production is not a definition, because IIRC there might
be multiple possible productions with the same left side and
different right sides.
If a document is written in another language than English,
e.g. German, the English names should still be
used as values of the attributes "kind" and "rel", while the
user-agent (possibly supported by CSS) renders the block observing
an enclosing xml:lang-attribute. So:
<block kind="exercise" xml:lang="de">
<caption>Summe zweier Zahlen</caption>
<p>Ermitteln Sie die Summe von 12 und 5.</p>
</block>
might be rendered as:
AUFGABE Summe zweier Zahlen
Ermitteln Sie die Summe von 12 und 5.
Or - as a variant using another CSS -
@ Summe zweier Zahlen
Ermitteln Sie die Summe von 12 und 5.
A user-agent should not be required to know the translation
of "Exercise" into all possible languages, an alternative
is not to render the kind at all, as in:
Sum of two numbers
Find the sum of the numbers 7 and 14 and write it down.
For each block type, there might be default roles of captions and
other elements, so that in the following block the rel-attributes
might be omitted because they have the default values. (For a
block of type "listing" the default role of the caption is the
name of the listing and the default role of any other content is
the source code itself).
<block kind="listing">
<caption rel="name">sum2.bas</caption>
<pre rel="source">10 PRINT 7 + 14</pre>
</block>
Using the default roles, this can be written shorter as:
<block kind="listing">
<caption>sum2.bas</caption>
<pre>10 PRINT 7 + 14</pre>
</block>
--
http://purl.net/stefan_ram/
Received on Sunday, 10 August 2003 18:25:14 UTC