[sc34wg3] Line breaks in CXTM

Steve Pepper sc34wg3@isotopicmaps.org
Fri, 26 Mar 2004 15:43:43 +0100


This is a multi-part message in MIME format.

------=_NextPart_000_008F_01C41349.1E3C86C0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

Kal,

As you know, Ontopia has implemented CXTM in the Omnigator.
I have now tried to use it and encountered what I consider
to be a serious problem:

No allowance is made in the spec for non-significant line
breaks in the CXTM output. This leads to very long lines
indeed. In the extreme case (which is very common) it results
in the whole topic map being on one line. As an example, I am
attaching the CXTM output from the topic map jill.xtm that is
distributed with the Omnigator.

There are two problems:

First of all, this output is extremely difficult for a human to
read (at least in a non-XML aware editor or viewer) -- and
humans *will* have to read these things, e.g. when developing
test suites.

Secondly, the most readily available diff tools (such as Unix
diff) won't work with such documents because they are line or
record oriented. Again this is a great inconvenience which I
think is unnecessary.

I would like therefore to propose that the spec be amended to
include the insertion of suitable line breaks. Essentially
section 5 should specify the insertion of line feeds such
that canonicalization according to XML-C14N would result in a
document with line feeds after every end-tag, and also after
every start-tag for elements that have element content or are
empty.

Can we agree on this quickly so that both of the current
implementations (i.e., yours and ours) can be updated before
the Amsterdam meeting?

Best regards,

Steve

--
Steve Pepper <pepper@ontopia.net>
Chief Strategy Officer, Ontopia
Convenor, ISO/IEC JTC 1/SC 34/WG 3
Editor, XTM (XML Topic Maps 1.0)
 
------=_NextPart_000_008F_01C41349.1E3C86C0
Content-Type: application/octet-stream;
	name="jill.cxtm"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
	filename="jill.cxtm"

<topicMap reifier=3D"43"><topic><subjectIdentifiers><locator =
address=3D"http://psi.topicmaps.org/sam/1.0/#instance" =
notation=3D"URI"></locator></subjectIdentifiers></topic><topic><subjectId=
entifiers><locator address=3D"http://psi.topicmaps.org/sam/1.0/#type" =
notation=3D"URI"></locator></subjectIdentifiers></topic><topic><subjectId=
entifiers><locator =
address=3D"http://psi.topicmaps.org/sam/1.0/#type-instance" =
notation=3D"URI"></locator></subjectIdentifiers></topic><topic><topicName=
><value>AsTMa</value></topicName><subjectIdentifiers><locator =
address=3D"http://psi.ontopia.net/metadata/#AsTMa" =
notation=3D"URI"></locator></subjectIdentifiers></topic><topic><topicName=
><value>Contributor</value></topicName><subjectIdentifiers><locator =
address=3D"http://purl.org/dc/elements/1.1/contributor" =
notation=3D"URI"></locator></subjectIdentifiers></topic><topic><topicName=
><value>Coverage</value></topicName><subjectIdentifiers><locator =
address=3D"http://purl.org/dc/elements/1.1/coverage" =
notation=3D"URI"></locator></subjectIdentifiers></topic><topic><topicName=
><value>Creator</value></topicName><subjectIdentifiers><locator =
address=3D"http://purl.org/dc/elements/1.1/creator" =
notation=3D"URI"></locator></subjectIdentifiers></topic><topic><topicName=
><value>Date</value></topicName><subjectIdentifiers><locator =
address=3D"http://purl.org/dc/elements/1.1/date" =
notation=3D"URI"></locator></subjectIdentifiers></topic><topic><topicName=
><value>Description</value></topicName><subjectIdentifiers><locator =
address=3D"http://purl.org/dc/elements/1.1/description" =
notation=3D"URI"></locator></subjectIdentifiers></topic><topic><topicName=
><value>Format</value></topicName><subjectIdentifiers><locator =
address=3D"http://purl.org/dc/elements/1.1/format" =
notation=3D"URI"></locator></subjectIdentifiers></topic><topic><topicName=
><value>HyTM</value></topicName><subjectIdentifiers><locator =
address=3D"http://psi.ontopia.net/metadata/#HyTM" =
notation=3D"URI"></locator></subjectIdentifiers></topic><topic><topicName=
><value>Identifier</value></topicName><subjectIdentifiers><locator =
address=3D"http://purl.org/dc/elements/1.1/identifier" =
notation=3D"URI"></locator></subjectIdentifiers></topic><topic><topicName=
><value>LTM</value></topicName><subjectIdentifiers><locator =
address=3D"http://psi.ontopia.net/metadata/#LTM" =
notation=3D"URI"></locator></subjectIdentifiers></topic><topic><topicName=
><value>Language</value></topicName><subjectIdentifiers><locator =
address=3D"http://purl.org/dc/elements/1.1/language" =
notation=3D"URI"></locator></subjectIdentifiers></topic><topic><topicName=
><value>Publisher</value></topicName><subjectIdentifiers><locator =
address=3D"http://purl.org/dc/elements/1.1/publisher" =
notation=3D"URI"></locator></subjectIdentifiers></topic><topic><topicName=
><value>Relation</value></topicName><subjectIdentifiers><locator =
address=3D"http://purl.org/dc/elements/1.1/relation" =
notation=3D"URI"></locator></subjectIdentifiers></topic><topic><topicName=
><value>Rights</value></topicName><subjectIdentifiers><locator =
address=3D"http://purl.org/dc/elements/1.1/rights" =
notation=3D"URI"></locator></subjectIdentifiers></topic><topic><topicName=
><value>Source</value></topicName><subjectIdentifiers><locator =
address=3D"http://purl.org/dc/elements/1.1/source" =
notation=3D"URI"></locator></subjectIdentifiers></topic><topic><topicName=
><value>Subject</value></topicName><subjectIdentifiers><locator =
address=3D"http://purl.org/dc/elements/1.1/subject" =
notation=3D"URI"></locator></subjectIdentifiers></topic><topic><topicName=
><value>Title</value></topicName><subjectIdentifiers><locator =
address=3D"http://purl.org/dc/elements/1.1/title" =
notation=3D"URI"></locator></subjectIdentifiers></topic><topic><topicName=
><value>Type</value></topicName><subjectIdentifiers><locator =
address=3D"http://purl.org/dc/elements/1.1/type" =
notation=3D"URI"></locator></subjectIdentifiers></topic><topic><topicName=
><value>XTM</value></topicName><subjectIdentifiers><locator =
address=3D"http://psi.ontopia.net/metadata/#XTM" =
notation=3D"URI"></locator></subjectIdentifiers></topic><topic><topicName=
><value>Resource</value></topicName><subjectIdentifiers><locator =
address=3D"http://psi.ontopia.net/metadata/#resource" =
notation=3D"URI"></locator></subjectIdentifiers></topic><topic><topicName=
><value>Topic Map</value></topicName><subjectIdentifiers><locator =
address=3D"http://psi.ontopia.net/metadata/#topicmap" =
notation=3D"URI"></locator></subjectIdentifiers></topic><topic><topicName=
><value>Value</value></topicName><subjectIdentifiers><locator =
address=3D"http://psi.ontopia.net/metadata/#value" =
notation=3D"URI"></locator></subjectIdentifiers></topic><topic><topicName=
><value>Company</value></topicName></topic><topic><topicName><value>Contr=
act</value></topicName></topic><topic><topicName><value>Description</valu=
e></topicName><subjectIdentifiers><locator =
address=3D"http://psi.ontopia.net/xtm/occurrence-type/description" =
notation=3D"URI"></locator></subjectIdentifiers></topic><topic><topicName=
><value>Developer</value></topicName></topic><topic><topicName><value>Emp=
loyee</value></topicName></topic><topic><topicName><value>Employer</value=
></topicName></topic><topic><topicName><value>Employed =
by</value><scope><scopingTopic =
topicref=3D"30"></scopingTopic></scope></topicName><topicName><value>Empl=
oyment</value></topicName><topicName><value>Employs</value><scope><scopin=
gTopic =
topicref=3D"31"></scopingTopic></scope></topicName></topic><topic><topicN=
ame><value>English</value></topicName><subjectIdentifiers><locator =
address=3D"http://www.topicmaps.org/xtm/1.0/language.xtm#en" =
notation=3D"URI"></locator></subjectIdentifiers></topic><topic><topicName=
><value>Jill Hacker</value></topicName><occurrence><value>Jill's a cool =
girl and a great hacker</value><type =
topicref=3D"37"></type></occurrence></topic><topic><topicName><value>Jill=
's position with Ontopia</value></topicName><occurrence =
reifier=3D"36"><resource =
address=3D"http://www.ontopia.net/internal/employees/contracts/jill.htm" =
notation=3D"URI"></resource><type =
topicref=3D"27"></type></occurrence><subjectIdentifiers><locator =
address=3D"file:/C:/oks-demo/jakarta-tomcat/webapps/omnigator/WEB-INF/top=
icmaps/jill.xtm#jill-ontopia-association" =
notation=3D"URI"></locator></subjectIdentifiers></topic><topic><topicName=
><value>Jill's contract with =
Ontopia</value></topicName><occurrence><resource =
address=3D"http://www.ontopia.net/internal/employees/contracts/jill.htm" =
notation=3D"URI"></resource><type =
topicref=3D"27"></type></occurrence><subjectIdentifiers><locator =
address=3D"file:/C:/oks-demo/jakarta-tomcat/webapps/omnigator/WEB-INF/top=
icmaps/jill.xtm#jills-contract-occurrence" =
notation=3D"URI"></locator></subjectIdentifiers></topic><topic><topicName=
><value>Kudo</value></topicName></topic><topic><topicName><value>Ontopia<=
/value></topicName><occurrence><resource =
address=3D"http://www.ontopia.net" notation=3D"URI"></resource><type =
topicref=3D"42"></type></occurrence><subjectIdentifiers><locator =
address=3D"http://psi.ontopia.net/ontopia/#ontopia" =
notation=3D"URI"></locator></subjectIdentifiers></topic><topic><topicName=
><value>Ontopia's Web Site</value></topicName><subjectAddress><locator =
address=3D"http://www.ontopia.net" =
notation=3D"URI"></locator></subjectAddress></topic><topic><topicName><va=
lue>Steve Pepper</value></topicName><subjectIdentifiers><locator =
address=3D"http://psi.ontopia.net/ontopia/#pepper" =
notation=3D"URI"></locator></subjectIdentifiers></topic><topic><topicName=
><value>Short name</value></topicName><subjectIdentifiers><locator =
address=3D"http://psi.ontopia.net/basename/#short-name" =
notation=3D"URI"></locator></subjectIdentifiers></topic><topic><topicName=
><value>Web =
site</value></topicName></topic><topic><topicName><value>Jill's 1st =
TM</value><scope><scopingTopic =
topicref=3D"41"></scopingTopic></scope></topicName><topicName><value>Jill=
's First Topic Map</value></topicName><occurrence><value>Example topic =
map from Omnigator User Guide.</value><type =
topicref=3D"9"></type></occurrence><occurrence><value>$Date: 2004/02/28 =
16:34:01 $</value><type =
topicref=3D"8"></type></occurrence><occurrence><value>(C) Copyright 2003 =
Ontopia</value><type =
topicref=3D"17"></type></occurrence><subjectIdentifiers><locator =
address=3D"file:/C:/oks-demo/jakarta-tomcat/webapps/omnigator/WEB-INF/top=
icmaps/jill.xtm#jillstm" =
notation=3D"URI"></locator></subjectIdentifiers></topic><association><typ=
e topicref=3D"14"></type><role><rolePlayer =
topicref=3D"33"></rolePlayer><type =
topicref=3D"25"></type></role><role><rolePlayer =
topicref=3D"43"></rolePlayer><type =
topicref=3D"23"></type></role></association><association><type =
topicref=3D"15"></type><role><rolePlayer =
topicref=3D"43"></rolePlayer><type =
topicref=3D"23"></type></role><role><rolePlayer =
topicref=3D"38"></rolePlayer><type =
topicref=3D"25"></type></role></association><association><type =
topicref=3D"21"></type><role><rolePlayer =
topicref=3D"24"></rolePlayer><type =
topicref=3D"25"></type></role><role><rolePlayer =
topicref=3D"43"></rolePlayer><type =
topicref=3D"23"></type></role></association><association><type =
topicref=3D"7"></type><role><rolePlayer =
topicref=3D"40"></rolePlayer><type =
topicref=3D"25"></type></role><role><rolePlayer =
topicref=3D"43"></rolePlayer><type =
topicref=3D"23"></type></role></association><association><type =
topicref=3D"10"></type><role><rolePlayer =
topicref=3D"43"></rolePlayer><type =
topicref=3D"23"></type></role><role><rolePlayer =
topicref=3D"22"></rolePlayer><type =
topicref=3D"25"></type></role></association><association><type =
topicref=3D"19"></type><role><rolePlayer =
topicref=3D"43"></rolePlayer><type =
topicref=3D"23"></type></role><role><rolePlayer =
topicref=3D"38"></rolePlayer><type =
topicref=3D"25"></type></role></association><association =
reifier=3D"35"><type topicref=3D"32"></type><role><rolePlayer =
topicref=3D"34"></rolePlayer><type =
topicref=3D"30"></type></role><role><rolePlayer =
topicref=3D"38"></rolePlayer><type =
topicref=3D"31"></type></role></association><association><type =
topicref=3D"3"></type><role><rolePlayer =
topicref=3D"26"></rolePlayer><type =
topicref=3D"2"></type></role><role><rolePlayer =
topicref=3D"38"></rolePlayer><type =
topicref=3D"1"></type></role></association><association><type =
topicref=3D"3"></type><role><rolePlayer =
topicref=3D"42"></rolePlayer><type =
topicref=3D"2"></type></role><role><rolePlayer =
topicref=3D"39"></rolePlayer><type =
topicref=3D"1"></type></role></association><association><type =
topicref=3D"3"></type><role><rolePlayer =
topicref=3D"32"></rolePlayer><type =
topicref=3D"2"></type></role><role><rolePlayer =
topicref=3D"35"></rolePlayer><type =
topicref=3D"1"></type></role></association><association><type =
topicref=3D"3"></type><role><rolePlayer =
topicref=3D"27"></rolePlayer><type =
topicref=3D"2"></type></role><role><rolePlayer =
topicref=3D"36"></rolePlayer><type =
topicref=3D"1"></type></role></association><association><type =
topicref=3D"3"></type><role><rolePlayer =
topicref=3D"29"></rolePlayer><type =
topicref=3D"2"></type></role><role><rolePlayer =
topicref=3D"34"></rolePlayer><type =
topicref=3D"1"></type></role></association><association><type =
topicref=3D"3"></type><role><rolePlayer =
topicref=3D"10"></rolePlayer><type =
topicref=3D"2"></type></role><role><rolePlayer =
topicref=3D"4"></rolePlayer><type =
topicref=3D"1"></type></role></association><association><type =
topicref=3D"3"></type><role><rolePlayer =
topicref=3D"10"></rolePlayer><type =
topicref=3D"2"></type></role><role><rolePlayer =
topicref=3D"11"></rolePlayer><type =
topicref=3D"1"></type></role></association><association><type =
topicref=3D"3"></type><role><rolePlayer =
topicref=3D"10"></rolePlayer><type =
topicref=3D"2"></type></role><role><rolePlayer =
topicref=3D"22"></rolePlayer><type =
topicref=3D"1"></type></role></association><association><type =
topicref=3D"3"></type><role><rolePlayer =
topicref=3D"10"></rolePlayer><type =
topicref=3D"2"></type></role><role><rolePlayer =
topicref=3D"13"></rolePlayer><type =
topicref=3D"1"></type></role></association><association><type =
topicref=3D"3"></type><role><rolePlayer =
topicref=3D"21"></rolePlayer><type =
topicref=3D"2"></type></role><role><rolePlayer =
topicref=3D"24"></rolePlayer><type =
topicref=3D"1"></type></role></association><association><type =
topicref=3D"3"></type><role><rolePlayer =
topicref=3D"28"></rolePlayer><type =
topicref=3D"2"></type></role><role><rolePlayer =
topicref=3D"37"></rolePlayer><type =
topicref=3D"1"></type></role></association></topicMap>
------=_NextPart_000_008F_01C41349.1E3C86C0--