[sc34wg3] CTM - topic blocks / statement delimiter

Steve Pepper pepper.steve at gmail.com
Sun Jan 27 14:35:59 EST 2008


* Lars Heuer
|
| Comments against 0975
| <http://www.itscj.ipsj.or.jp/sc34/open/0975.htm>

I can try to respond to this comment on behalf of those who
attended the working group meeting in Kyoto. I don't have the
exact attendee list to hand, but there were 10-12 people
present. Almost two days were spent discussing CTM, based on
National Body comments on the CD ballot (N945) and the issues
raised by the editors in N934. Two drafts were considered: N905
(the CD ballot draft) and N935.

All the proposals in N975 were unanimous and N975 itself was
intended to give guidelines to the editors for the next draft.

| The Kyoto meeting proposes to introduce a new topic "block"
| notation where the identities of the topic go into the header
| and statements like names and occurrences go into the
| statement body:
| 
| Example:
|         http://psi.example.org/Lennon {
|            - "John Lennon";
|            homepage <http://www.....>;
|         }

This is correct. It was based on consideration of the following
National Body comments:


Comment 1: "Topics" (i.e. blocks of assertions about a single
topic) can now be terminated using two different syntaxes. This
should be reduced to just one. One of the syntaxes (two line
breaks) also causes difficulties for parsing, since two line
breaks also matches the whitespace production.

Proposed change: The period (.) should be the only way to
terminate a topic block. Alternatively, a syntax that is likely
to be familiar to the reader, such as { ... } (as used in CSS,
Java, etc.) could be used.

==> The WG accepted the comment and chose to go with curly
braces rather than periods, for the following reasons: (1) they
are more visible than periods; (2) they are well-established as
block delimiters; (3) they are more convenient with editors that
support syntax coloring.


Comment 2: Assertions about a single topic are not delimited as
clearly as they could be. Since assertions are a major
structural subcomponent of "topics", they should not depend only
on white space, otherwise readability may be impaired.

Proposed change: Assertions should be separated from one another
by a delimiter that is not used for any other purpose, such as
the semi-colon. This is consistent with usage in both CSS and
Java.

==> The WG accepted the comment on the grounds that separating
statements by semi-colons increased readability.


| In the current CTM draft, the topic block would look like:
| 
|        http://psi.example.org/Lennon
|           - "John Lennon"
|           homepage: <http://www.....>
| 
| which is more compact (no statement delimiter needed, only a
| "." to indicate the end of a topic declaration).

The WG was aware of this, but felt that the gain in readability
was more important than the (slight) loss of compactness.


| From my POV the removal of the colon after the statement's
| type (see "homepage" in the example) reduces the readability,
| especially when it comes to templates and variables.

The WG did not share this opinion. On the contrary, it felt that
the enhanced readability offered by the introduction of the
semi-colon rendered the colon unnecessary. Not using it after
the statement's type also solved the problem of overloading of
colons. In other words:

	- ex:fullname "John Lennon";
	ex:homepage <http://www......>;
	...

was felt to be more readable than

	- ex:fullname: "John Lennon"
	ex:homepage: <http://www......>
	...

This is even more true when there is a need to conserve vertical
space by putting multiple statements on one line.


| Further, the current draft allows a very compact notation for
| topics without any statements:
| 
|         john . paul . ringo . george .
| 
| This results in 4 topics.

This particular use case was not discussed in Kyoto. My personal
comment is that this is an atypical, even contrived, edge case.

In all the topic maps I have created, I have never needed to
create ANY topics with just a single identifier and no
characteristics, let alone create four of them on a single line.
If such a need should ever arise (which I doubt), the Kyoto
notation (shown below) will be just fine.

| The Kyoto notation requires "{}" even if the user does not
| want to declare any statement:
| 
|         john {} paul {} ringo {} george {}

If someone can give me a convincing use case for wanting to do
something like this on a regular basis, I am willing to
reconsider. Otherwise I contend that this argument fails not
only the 80/20 test, but also the 99.80/0.20 test.

Steve
 
--
Conference Chair, Topic Maps 2008
Oslo, April 2-4 2008
www.topicmaps.com



More information about the sc34wg3 mailing list