This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.

Bug 5117 - unresolved references defined inconsistently
Summary: unresolved references defined inconsistently
Status: RESOLVED FIXED
Alias: None
Product: SML
Classification: Unclassified
Component: Core+Interchange Format (show other bugs)
Version: unspecified
Hardware: PC Windows XP
: P2 normal
Target Milestone: LC
Assignee: Valentina Popescu
QA Contact: SML Working Group discussion list
URL:
Whiteboard:
Keywords: editorial, hasProposal
: 4823 (view as bug list)
Depends on:
Blocks:
 
Reported: 2007-10-01 15:30 UTC by John Arwe
Modified: 2007-11-01 02:57 UTC (History)
1 user (show)

See Also:


Attachments

Description John Arwe 2007-10-01 15:30:27 UTC
SML says:
4.1.1.3 Unresolved Reference
An element information item in an SML model instance document is an SML unresolved reference if and only if:
    *      It is a non-null SML reference.
    *      None of the recognized schemes resolves.

SMLIF says: ------
2.2 Inter-document References
If the element in a reference is not equivalent to the URI in any alias, the reference is to some (element of a) document not included in the interchange set. Such references are called unresolved references.

SML-IF specifies how sets of SML documents are interchanged. If and how an SML-IF document's interchange set relates to a complete (i.e., "validatible") model is implementation-defined and is not a part of this specification. One common relationship is that the interchange set constitutes a complete SML model. In such a case, the documents that unresolved references refer to are simply unavailable to the validation process. When SML-IF documents are used in other contexts, such as when they are the content of Web services requests or responses, the set of documents constituting a complete model may include more or fewer documents than those in the interchange set, and the conventions with respect to unresolved references may be different. For example, the convention may specify how to (attempt to) resolve such references.

and later in SMLIF 3.4.6 Resolving Inter-document References
If the URI representing an inter-document reference contains only a fragment, the inter-document reference is to the document in which it occurs. Otherwise, if the URI representing an inter-document reference is equivalent to a URI that is an alias of some document in the interchange set, the inter-document reference is to that document. In either case, such a reference is called "a resolved inter-document reference." If neither of these cases applies, the inter-document reference is to a document not included in the interchange set. Such a reference is called "an unresolved inter-document reference."
---- end SMLIF quotes

It will completely confuse readers to see the same term used with different
definitions in such closely related specs.  Note that when SMLIF says "unresolved reference" it could have 4 different meanings not 2, since "reference" itself is multiply defined (see 5095).  "Model" is also context dependent, since (for example) the SMLIF interchange set is itself trivially a model.  The bit from SMLIF 2.2 makes _my_ head hurt it could be saying so many different things.

I propose we clearly distinguish between "unresolved SML reference" in SML and "unresolved SMLIF inter-document reference" in SMLIF by changing "unresolved" (and "resolved" in SMLIF).
Resolved   -> internal (within interchange set)
Unresolved -> external (outside of interchange set)
I realize even these are imperfect, better suggestions happily accepted including during the editorial process.

SMLIF 2.2 then becomes:
If the element in an inter-document reference is not equivalent to the URI in any alias, the reference is to some (element of a) document not included in the interchange set. Such references are called external references.

SML-IF specifies how sets of SML documents are interchanged. If and how an SML-IF document's interchange set relates to a complete (i.e., "validatible") model is implementation-defined and is not a part of this specification. One common relationship is that the interchange set constitutes a complete SML model. In such a case, the documents that external references refer to are simply unavailable to the validation process [Arwe note: unless I just changed the meaning, this conflicts with how I would read SML 4.1, where it says "An SML reference is a link from one element in an SML model to another element from the same model."]. When SML-IF documents are used in other contexts, such as when they are the content of Web services requests or responses, the set of documents constituting a complete model may include more or fewer documents than those in the interchange set, and the conventions with respect to external references may be different. For example, the convention may specify how to (attempt to) resolve such references.

SMLIF 2.2 fragment after previous section
from "...is not equivalent to the URI in any alias. This means that it is an unresolved reference."
to   "...is not equivalent to the URI in any alias. This means that it is an external reference."

SMLIF 3.4.6 then becomes:
If the URI representing an inter-document reference contains only a fragment, the inter-document reference is to the document in which it occurs. Otherwise, if the URI representing an inter-document reference is equivalent to a URI that is an alias of some document in the interchange set, the inter-document reference is to that document. In either case, such a reference is called "an internal inter-document reference." If neither of these cases applies, the inter-document reference is to a document not included in the interchange set. Such a reference is called "an external inter-document reference."
Comment 1 Sandy Gao 2007-10-15 21:28:23 UTC
Discussed at 2007-10-15 F2F.

WG agreed to adopt the proposal from the bug report. Some WG member expressed concern with potential confusion with the term "external". Some reader may view that as asserting that the target always exists externally.

WG agreed that editors should attempt to remove mention of "unresolved/external" and use "not internal" instead.
Comment 2 Virginia Smith 2007-10-16 23:32:09 UTC
*** Bug 4823 has been marked as a duplicate of this bug. ***
Comment 3 Valentina Popescu 2007-11-01 02:57:49 UTC
Changed:
In such a case, the documents that unresolved references refer to are simply unavailable to the validation process.

To:
In such a case, the documents that are not part of the interchange set, to which some references may refer to, are simply unavailable to the validation process.

Changed :
When SML-IF documents are used in other contexts,
such as when they are the content of Web services requests or
responses, the set of documents constituting a complete model may
include more or fewer documents than those in the interchange set, and
the conventions with respect to unresolved references may be
different.


To: 
When SML-IF documents are used in other contexts,
such as when they are the content of Web services requests or
responses, the set of documents constituting a complete model may
include more or fewer documents than those in the interchange set, and
the conventions with respect to references that refer to documents
which are not part of the interchange set may be different.

Changed:
This means that it is an unresolved reference.
To:
This means that it is a reference to a document not part of the interchange set.

Changed:
5.3.6 Resolving Interdocument References
If the URI representing an interdocument reference contains only a fragment, the interdocument reference is to the document in which it occurs. Otherwise, if the URI representing an interdocument reference is equivalent to a URI that is an alias of some document in the interchange set, the interdocument reference is to that document. In either case, such a reference is called "a resolved interdocument reference." If neither of these cases applies, the interdocument reference is to a document not included in the interchange set. Such a reference is called "an unresolved interdocument reference."
If the URI representing a resolved interdocument reference has no fragment, the reference is to the root element of the referred-to document.
If the URI representing a resolved interdocument reference has a fragment, the reference is to the element obtained by applying the fragment to the referred-to document starting with its root element.

to :
5.3.6 Resolving Interdocument References
If the URI representing an interdocument reference contains only a fragment, the interdocument reference is to the document in which it occurs. Otherwise, if the URI representing an interdocument reference is equivalent to a URI that is an alias of some document in the interchange set, the interdocument reference is to that document. If neither of these cases applies, the interdocument reference is to a document not included in the interchange set. 
If the URI representing an interdocument reference that refers to a document in the interchange set has no fragment, the reference is to the root element of the referred-to document.
If the URI representing an interdocument reference that refers to a document in the interchange set has a fragment, the reference is to the element obtained by applying the fragment to the referred-to document starting with its root element.

Removed all occurrences of resolved/unresolved references from the IF set.