Re: What to do given both SYSTEM and PUBLIC?
Michael Sperberg-McQueen <U35395@UICVM.UIC.EDU> wrote:
> >>> (someone asked):
> >>>> * what to do if you are given both and the resulting files are
> >>>> different
> (Joe English)
> >>>This means that somebody somewhere has made a mistake.
> >>>We don't need to specify error recovery in this case.
> (Steven J. DeRose)
> (David Durand)
> (Michael Sperberg-McQueen)
> What on earth are you guys *talking* about??!!
> Why on earth would it be an error? Are you seriously suggesting that if
> Peter Flynn's TEI Lite documents point the user to a copy of the TEI
> Lite DTD on Peter's server in Ireland, but my local catalog file points
> the XML processor to a copy on my hard disk, and the XML system finds it
> there, that Peter and I have together committed an error?
No, precisely the opposite. As long as the XML user agent
gets the same _text_ via the PUBLIC and SYSTEM id's,
all is well and there's no error.
> The URLs
> http://www.ucc.ie/curia/dtds/teilite.dtd and
> file:///sgml/public/tei/derived/teilite.dtd are certainly not the same,
> and don't point to the same file.
but if the resources denoted by both URLs have the same content,
I would say that they denote the same _entity_.
By my interpretation, a PUBLIC identifier in principle specifies
an entity, not a SYSTEM identifier. (In practice this is
usually accomplished by mapping the PUBLIC ID to a SYSTEM ID,
but this doesn't affect the "true meaning" of the PUBLIC ID.)
PUBLIC and SYSTEM identifiers are analogous to URNs and URLs,
respectively; one denotes the name of an entity and the other
denotes (one of) its address(es). If an external identifier
includes both a PUBLIC ID and a SYSTEM ID, the author has in
effect asserted that "the entity I mean has this name, and can be
found at that location". It is the author's responsibility
to make sure that the resource at that location is in fact
the one with this name. Likewise, it is the user's responsibility
to make sure that local catalog entries for a particular name
(PUBLIC ID) resolve to the correct entity (e.g., don't
map TEI Lite's FPI to DocBook's public text).
If these conditions are met, then it doesn't matter if an XML
user agent tries to resolve the PUBLIC ID or the SYSTEM ID first;
the result will be the same in both cases (modulo download time,
and potential network failure, of course).
I don't want to get too deep into the ontological nature of
files and entities and what it means for two of them to be
the same, so I'll leave it at that...
<!ENTITY YoursTruly PUBLIC "-//Unregistered//PERSON Joe English//EN"