RE: Contradictions regarding transitivity of wsdl:import

Hi Glen,

I think the source of the transitivity discussion is rooted in the fact that
inheritance is transitive and that the spec allows interfaces to be
extended.  Intuitively, one may think that section 4.2 use of 'not
transitive' is in error at first glance, because of this fact.

The example that A extends B and imports B's namespace, and B extends C and
import's C's namespace does not imply transitivity, i.e., A has no knowledge
of C which is not transitive.  A fully extends B without knowledge of C, as
Gudge says, "This is encapsulation."   If you wanted the example to 'mimic'
transitivity then (and only then) A would have to import C's namespace,
which I do not intuitively see any purpose.

Point being, I do not think Section 2.1.3 or 4.2 is in error.


--
Matt Long
MV Squared Technologies
mlong@mvsquared.net
901-848-2640


--------- Original Message --------
From: Glen Daniels <gdaniels@sonicsoftware.com>
To: Martin Gudgin <mgudgin@microsoft.com>, Matt Long <mlong@mvsquared.net>,
David Booth <dbooth@w3.org>
Cc: www-ws-desc@w3.org
Subject: RE: Contradictions regarding transitivity of wsdl:import
Date: 14/04/05 12:36

>
>
>
> +1, then - perhaps I misunderstood what Matt was saying in his example
> that you +1'ed before. :)
>
> Thanks,
> --G
>
> &gt; -----Original Message-----
> &gt; From: Martin Gudgin [mailto:mgudgin@microsoft.com]
> &gt; Sent: Thursday, April 14, 2005 1:59 PM
> &gt; To: Glen Daniels; Matt Long; David Booth
> &gt; Cc: www-ws-desc@w3.org
> &gt; Subject: RE: Contradictions regarding transitivity of wsdl:import
> &gt;
> &gt; No, I'm saying the exact opposite. This is encapsulation. A imports
B.
> &gt; That's all A needs to do in order to use the stuff in B. A
> &gt; doesn't need
> &gt; to know that B imports C.
> &gt;
> &gt; Gudge
> &gt;
> &gt;
> &gt; -----Original Message-----
> &gt; From: Glen Daniels [mailto:gdaniels@sonicsoftware.com]
> &gt; Sent: Thursday, April 14, 2005 10:33 AM
> &gt; To: Martin Gudgin; Matt Long; David Booth
> &gt; Cc: www-ws-desc@w3.org
> &gt; Subject: RE: Contradictions regarding transitivity of wsdl:import
> &gt;
> &gt;
> &gt; Hi Gudge, all:
> &gt;
> &gt; Are you saying that if I extend an interface &quot;I&quot; in
namespace &quot;foo&quot; it
> &gt; isn't good enough to import &quot;foo&quot;, but I also MUST import
any
> &gt; namespaces
> &gt; used by components inside &quot;I&quot;?  In other words, the child
WSDL below
> &gt; would NOT be legal without &lt;import
namespace=&quot;http://NSGrandparent&quot;/&gt;?
> &gt;
> &gt; WSDL for &quot;http://NSChild&quot;:
> &gt; ---------
> &gt; &lt;import namespace=&quot;http://NSParent&quot;/&gt;
> &gt; &lt;interface name=&quot;child&quot; extends=&quot;p:parent&quot;
> &gt;      xmlns:p=&quot;http://NSParent&quot;&gt;
> &gt;  ...
> &gt; &lt;/interface&gt;
> &gt; ---------
> &gt;
> &gt;
> &gt; WSDL for &quot;http://NSParent&quot;:
> &gt; ---------
> &gt; &lt;import namespace=&quot;http://NSGrandparent&quot;/&gt;
> &gt; &lt;interface name=&quot;parent&quot;
extends=&quot;g:grandparent&quot;
> &gt;       xmlns:g=&quot;http://NSGrandparent&quot;&gt;
> &gt;  ...
> &gt; &lt;/interface&gt;
> &gt; ---------
> &gt;
> &gt; If so this seems a bit annoying.  Does schema work this way?
> &gt;
> &gt; --Glen
> &gt;
> &gt; &gt; -----Original Message-----
> &gt; &gt; From: www-ws-desc-request@w3.org
> &gt; &gt; [mailto:www-ws-desc-request@w3.org] On Behalf Of Martin Gudgin
> &gt; &gt; Sent: Thursday, April 14, 2005 1:15 PM
> &gt; &gt; To: Matt Long; David Booth
> &gt; &gt; Cc: www-ws-desc@w3.org
> &gt; &gt; Subject: RE: Contradictions regarding transitivity of
wsdl:import
> &gt; &gt;
> &gt; &gt;
> &gt; &gt; +1
> &gt; &gt;
> &gt; &gt; Gudge
> &gt; &gt;
> &gt; &gt; -----Original Message-----
> &gt; &gt; From: Matt Long [mailto:mlong@mvsquared.net]
> &gt; &gt; Sent: Thursday, April 14, 2005 3:58 AM
> &gt; &gt; To: David Booth; Martin Gudgin
> &gt; &gt; Cc: www-ws-desc@w3.org
> &gt; &gt; Subject: RE: Contradictions regarding transitivity of
wsdl:import
> &gt; &gt;
> &gt; &gt; Correct me if I am wrong, but the value of wsdl:import is
> &gt; that you can
> &gt; &gt; utilize a reference to a different target namespace than
> &gt; the importing
> &gt; &gt; document.  Therefore, in the list of QName encoded with
> &gt; &gt; 'extends' may be
> &gt; &gt; contain a QName that references a different target
> &gt; namespace than the
> &gt; &gt; importing document such that wsdl:import is required.
> &gt; &gt;
> &gt; &gt; If A inherits B inherits C, where A imports B imports C, it
seems
> &gt; &gt; imperative
> &gt; &gt; to understand which target namespaces A, B, C belong, and which
> &gt; &gt; documents
> &gt; &gt; wsdl:import which namespaces.
> &gt; &gt;
> &gt; &gt; Example 1:
> &gt; &gt; If 'A' imports 'B' imports 'C': then for 'A' inherits 'B'
> &gt; inherits 'C'
> &gt; &gt; to
> &gt; &gt; exist:
> &gt; &gt;
> &gt; &gt; 'A' must wsdl:import *both* 'B' and 'C' namespaces.
> &gt; &gt;
> &gt; &gt;
> &gt; &gt; Example 1 is actually non-transitive (even if it does look that
way)
> &gt; &gt; because
> &gt; &gt; *if* 'A' does not wsdl:import 'C' namespace, then only 'A'
> &gt; &gt; inherits 'B'
> &gt; &gt; (B
> &gt; &gt; does not inherit C with respect to 'A', which is what makes in
> &gt; &gt; non-transitive)
> &gt; &gt;
> &gt; &gt; &gt;From [1]
> &gt; &gt;
> &gt; &gt; &quot;...Specifically, it can be used to import components from
WSDL
> &gt; &gt; descriptions
> &gt; &gt; that do not share a target namespace with the importing
document.
> &gt; &gt; Components
> &gt; &gt; in directly imported descriptions are part of the component
> &gt; &gt; model of the
> &gt; &gt; importing description. Directly imported means that component
> &gt; &gt; importation is
> &gt; &gt; not transitive; components imported by one of the imported
> &gt; &gt; documents are
> &gt; &gt; not
> &gt; &gt; available to the original importing document unless the are
imported
> &gt; &gt; directly by that document. ...&quot;
> &gt; &gt;
> &gt; &gt; [1] http://www.w3.org/TR/wsdl20/#imports
> &gt; &gt;
> &gt; &gt;
> &gt; &gt; --
> &gt; &gt; Matt Long
> &gt; &gt; MV Squared Technologies
> &gt; &gt; mlong@mvsquared.net
> &gt; &gt; 901-848-2640
> &gt; &gt;
> &gt; &gt;
> &gt; &gt; --------- Original Message --------
> &gt; &gt; From: David Booth &lt;dbooth@w3.org&gt;
> &gt; &gt; To: Martin Gudgin &lt;mgudgin@microsoft.com&gt;
> &gt; &gt; Cc: www-ws-desc@w3.org
> &gt; &gt; Subject: RE: Contradictions regarding transitivity of
wsdl:import
> &gt; &gt; Date: 13/04/05 22:15
> &gt; &gt;
> &gt; &gt; &gt;
> &gt; &gt; &gt;
> &gt; &gt; &gt; Hi Gudge,
> &gt; &gt; &gt;
> &gt; &gt; &gt; I understand that the spec was intended to make wsdl:import
be
> &gt; &gt; &gt; non-transitive, but I'm not getting that when I try to
follow the
> &gt; &gt; rules
> &gt; &gt; &gt; that are stated for the component model.   Can you point
> &gt; me to where
> &gt; &gt; I'm
> &gt; &gt; &gt; going wrong?
> &gt; &gt; &gt;
> &gt; &gt; &gt; Section 2.1.3, in the row for the {interfaces} property
> &gt; &gt; (for example)
> &gt; &gt; &gt; says that its value is:
> &gt; &gt; &gt; [[
> &gt; &gt; &gt; The set of Interface components corresponding to all the
interface
> &gt; &gt; &gt; element information items in the [children] of the
> &gt; &gt; description element
> &gt; &gt; &gt; information item, if any, plus any included or imported
Interface
> &gt; &gt; &gt; components (see 4. Modularizing WSDL descriptions)
> &gt; &gt; &gt; ]]
> &gt; &gt; &gt; So in the &amp;quot;A imports B imports C&amp;quot;
example, let's
> &gt; &gt; assume that
> &gt; &gt; the
> &gt; &gt; &gt; {interfaces} property for A, B and C are the sets Ai, Bi
and Ci,
> &gt; &gt; &gt; respectively.  Further assume that I already know the set
> &gt; Ci, and I
> &gt; &gt; now
> &gt; &gt; &gt; want to determine Bi (i.e., the {interfaces} property for
B).
> &gt; &gt; &gt;
> &gt; &gt; &gt; According to the section 2.1.3 rule excerpted above, I
> &gt; &gt; would conclude
> &gt; &gt; &gt; that the set Bi consists of the union of {&amp;quot;The set
> &gt; of Interface
> &gt; &gt; &gt; components corresponding to all the interface element
information
> &gt; &gt; items
> &gt; &gt; &gt; in the [children] of the description element information
> &gt; &gt; item&amp;quot; of
> &gt; &gt; B}
> &gt; &gt; and
> &gt; &gt; &gt; Ci.  (I.e., Ci is a subset of Bi.)  Correct?  Is Ci a
> &gt; subset of Bi?
> &gt; &gt; If
> &gt; &gt; &gt; not, please explain why not.  If Ci *is* a subset of Bi,
> &gt; then when A
> &gt; &gt; &gt; imports B, by the same rule Bi would be a subset of Ai,
> &gt; &gt; which implies
> &gt; &gt; &gt; that Ci would also be a subset of Ai.
> &gt; &gt; &gt;
> &gt; &gt; &gt; In other words, I don't see how this rule is
> &gt; differentiating between
> &gt; &gt; the
> &gt; &gt; &gt; Ci subset of Bi, and the rest of the Bi set.  You're saying
that
> &gt; &gt; &amp;quot;the
> &gt; &gt; &gt; components defined in B are in one namespace whereas the
> &gt; &gt; components B
> &gt; &gt; &gt; imports from C are in another namespace&amp;quot;, but I
> &gt; don't see where
> &gt; &gt; this
> &gt; &gt; &gt; namespace differentiation is reflected in the component
model.
> &gt; &gt; AFAICT,
> &gt; &gt; &gt; the {interfaces} property for B is simply a set that
> &gt; &gt; includes Ci as a
> &gt; &gt; &gt; subset, per the section 2.1.3 rule excerpted above.
> &gt; &gt; &gt;
> &gt; &gt; &gt; Can you explain further, what you think the rule should be
> &gt; &gt; (or how you
> &gt; &gt; &gt; think I should interpret it differently) for computing
> &gt; the value of
> &gt; &gt; the
> &gt; &gt; &gt; {interfaces} property?
> &gt; &gt; &gt;
> &gt; &gt; &gt;
> &gt; &gt; &gt; On Wed, 2005-04-13 at 14:30, Martin Gudgin wrote:
> &gt; &gt; &gt; &amp;gt;
> &gt; &gt; &gt; &amp;gt; &amp;gt; -----Original Message-----
> &gt; &gt; &gt; &amp;gt; &amp;gt; From: www-ws-desc-request@w3.org
> &gt; &gt; &gt; &amp;gt; &amp;gt; [mailto:www-ws-desc-request@w3.org] On
Behalf Of
> &gt; &gt; David Booth
> &gt; &gt; &gt; &amp;gt; &amp;gt; Sent: 13 April 2005 10:38
> &gt; &gt; &gt; &amp;gt; &amp;gt; To: www-ws-desc@w3.org
> &gt; &gt; &gt; &amp;gt; &amp;gt; Subject: Contradictions regarding
transitivity of
> &gt; &gt; wsdl:import
> &gt; &gt; &gt; &amp;gt; &amp;gt;
> &gt; &gt; &gt; &amp;gt; &amp;gt;
> &gt; &gt; &gt; &amp;gt; &amp;gt; Statements in Part 1 about the meaning of
> &gt; &gt; wsdl:import appear
> &gt; &gt; to
> &gt; &gt; be
> &gt; &gt; &gt; &amp;gt; &amp;gt; contradictory.  On one hand, sec 4.2 says
that
> &gt; wsdl:import
> &gt; &gt; is
> &gt; &gt; not
> &gt; &gt; &gt; &amp;gt; &amp;gt; transitive.  On the other hand, sec 2.1.1
says
> &gt; there is no
> &gt; &gt; difference
> &gt; &gt; &gt; &amp;gt; &amp;gt; between included/imported components and
> &gt; &gt; components derived
> &gt; &gt; &gt; &amp;gt; &amp;gt; directly from a
> &gt; &gt; &gt; &amp;gt; &amp;gt; WSDL 2.0 document, and this logically
leads to
> &gt; &gt; import being
> &gt; &gt; &gt; &amp;gt; &amp;gt; transitive.
> &gt; &gt; &gt; &amp;gt;
> &gt; &gt; &gt; &amp;gt; I don't understand why you would draw this
> &gt; conclusion. The only
> &gt; &gt; &gt; &amp;gt; difference between imported and included
conmponents is that
> &gt; &gt; included
> &gt; &gt; &gt; &amp;gt; components are in one namespace and imported
> &gt; components are in
> &gt; &gt; another.
> &gt; &gt; &gt; &amp;gt;
> &gt; &gt; &gt; &amp;gt; &amp;gt;
> &gt; &gt; &gt; &amp;gt; &amp;gt; Suppose WSDL document A imports WSDL
document B, which
> &gt; &gt; imports
> &gt; &gt; WSDL
> &gt; &gt; &gt; &amp;gt; &amp;gt; document C, which neither includes nor
imports anything.
> &gt; &gt; The
> &gt; &gt; &gt; &amp;gt; &amp;gt; components of
> &gt; &gt; &gt; &amp;gt; &amp;gt; C will be only the components derived
directly
> &gt; &gt; from the XML
> &gt; &gt; &gt; &amp;gt; &amp;gt; Infoset of
> &gt; &gt; &gt; &amp;gt; &amp;gt; C.  Since B imports C, clearly the set of
> &gt; components for B
> &gt; &gt; &gt; &amp;gt; &amp;gt; will include the
> &gt; &gt; &gt; &amp;gt; &amp;gt; set of components for C.
> &gt; &gt; &gt; &amp;gt;
> &gt; &gt; &gt; &amp;gt; &amp;gt; So far so good.  But A now imports
> &gt; &gt; &gt; &amp;gt; &amp;gt; B, so what
> &gt; &gt; &gt; &amp;gt; &amp;gt; components will A have?  We have already
> &gt; established that
> &gt; &gt; the
> &gt; &gt; set of
> &gt; &gt; &gt; &amp;gt; &amp;gt; components of B includes the set of
components
> &gt; from C as a
> &gt; &gt; &gt; &amp;gt; &amp;gt; subset.
> &gt; &gt; &gt; &amp;gt;
> &gt; &gt; &gt; &amp;gt; wsdl:import like xs:import is namespace based. The
components
> &gt; &gt; defined
> &gt; &gt; in
> &gt; &gt; &gt; &amp;gt; C and not in the same namespace as the compontents
> &gt; defined in B
> &gt; &gt; and
> &gt; &gt; so
> &gt; &gt; &gt; &amp;gt; only the components from B are imported into A.
> &gt; &gt; &gt; &amp;gt;
> &gt; &gt; &gt; &amp;gt; &amp;gt; Since
> &gt; &gt; &gt; &amp;gt; &amp;gt; there is no distinction made between the
subset of
> &gt; &gt; components
> &gt; &gt; that
> &gt; &gt; &gt; &amp;gt; &amp;gt; originated in C and the other components,
the
> &gt; &gt; components of
> &gt; &gt; A
> &gt; &gt; must
> &gt; &gt; &gt; &amp;gt; &amp;gt; therefore also include the components of
C as a subset.
> &gt; &gt; This
> &gt; &gt; &gt; &amp;gt; &amp;gt; contradicts
> &gt; &gt; &gt; &amp;gt; &amp;gt; the statement that &amp;quot;wsdl:import
is not
> &gt; &gt; transitive&amp;quot;.
> &gt; &gt; &gt; &amp;gt; &amp;gt;
> &gt; &gt; &gt; &amp;gt; &amp;gt; The basic problem here is that the spec
is
> &gt; &gt; referring to the
> &gt; &gt; &gt; &amp;gt; &amp;gt; *components* of
> &gt; &gt; &gt; &amp;gt; &amp;gt; the imported document.  Those components
only
> &gt; exist if we
> &gt; &gt; &gt; &amp;gt; &amp;gt; interpret the
> &gt; &gt; &gt; &amp;gt; &amp;gt; meaning of the imported document
according to
> &gt; the WSDL 2.0
> &gt; &gt; &gt; &amp;gt; &amp;gt; specification,
> &gt; &gt; &gt; &amp;gt; &amp;gt; at which point there is no way to know
whether those
> &gt; &gt; imported
> &gt; &gt; &gt; &amp;gt; &amp;gt; components
> &gt; &gt; &gt; &amp;gt; &amp;gt; originated in the imported document or
another document
> &gt; &gt; &gt; &amp;gt; &amp;gt; (transitively).
> &gt; &gt; &gt; &amp;gt;
> &gt; &gt; &gt; &amp;gt; Yes there is. As noted above the components
defined
> &gt; in B are in
> &gt; &gt; one
> &gt; &gt; &gt; &amp;gt; namespace whereas the components B imports from C
are
> &gt; &gt; in another
> &gt; &gt; &gt; &amp;gt; namespace. The wsdl:import in A specifies that it
is
> &gt; importing
> &gt; &gt; &gt; &amp;gt; components in the namespace of B.
> &gt; &gt; &gt; &amp;gt;
> &gt; &gt; &gt; &amp;gt; &amp;gt;
> &gt; &gt; &gt; &amp;gt; &amp;gt; Here are the relevant excerpts from the
spec:
> &gt; &gt; &gt; &amp;gt; &amp;gt;
> &gt; &gt; &gt; &amp;gt; &amp;gt; Part 1 sec 4.2 Importing Descriptions
> &gt; &gt; &gt; &amp;gt; &amp;gt;
> &gt; &gt; http://dev.w3.org/cvsweb/~checkout~/2002/ws/desc/wsdl20/wsdl20
> &gt; &gt; &gt; &amp;gt; &amp;gt;
..html?content-type=text/html;%20charset=utf-8#imports
> &gt; &gt; &gt; &amp;gt; &amp;gt; second paragraph says:
> &gt; &gt; &gt; &amp;gt; &amp;gt; [[
> &gt; &gt; &gt; &amp;gt; &amp;gt; Components in directly imported
descriptions are
> &gt; &gt; part of the
> &gt; &gt; &gt; &amp;gt; &amp;gt; component
> &gt; &gt; &gt; &amp;gt; &amp;gt; model of the importing description.
Directly
> &gt; &gt; imported means
> &gt; &gt; &gt; &amp;gt; &amp;gt; that component
> &gt; &gt; &gt; &amp;gt; &amp;gt; importation is not transitive; components
> &gt; &gt; imported by one of
> &gt; &gt; &gt; &amp;gt; &amp;gt; the imported
> &gt; &gt; &gt; &amp;gt; &amp;gt; documents are NOT available to the
original importing
> &gt; &gt; &gt; &amp;gt; &amp;gt; document unless the
> &gt; &gt; &gt; &amp;gt; &amp;gt; are imported directly by that document.
> &gt; &gt; &gt; &amp;gt; &amp;gt; ]]
> &gt; &gt; &gt; &amp;gt; &amp;gt;
> &gt; &gt; &gt; &amp;gt; &amp;gt; But section 2.1.1 The Description
Component
> &gt; &gt; &gt; &amp;gt; &amp;gt;
> &gt; &gt; http://dev.w3.org/cvsweb/~checkout~/2002/ws/desc/wsdl20/wsdl20
> &gt; &gt; &gt; &amp;gt; &amp;gt;
> &gt; &gt;
..html?content-type=text/html;%20charset=utf-8#Description_details
> &gt; &gt; &gt; &amp;gt; &amp;gt; sixth paragraph says:
> &gt; &gt; &gt; &amp;gt; &amp;gt; [[
> &gt; &gt; &gt; &amp;gt; &amp;gt; The set of
interfaces/binding/services/etc.
> &gt; &gt; available in the
> &gt; &gt; &gt; &amp;gt; &amp;gt; Description
> &gt; &gt; &gt; &amp;gt; &amp;gt; component include those that are defined
within the
> &gt; &gt; component
> &gt; &gt; &gt; &amp;gt; &amp;gt; itself and
> &gt; &gt; &gt; &amp;gt; &amp;gt; those that are imported and/or included.
Note
> &gt; that at the
> &gt; &gt; &gt; &amp;gt; &amp;gt; component model
> &gt; &gt; &gt; &amp;gt; &amp;gt; level, there is no distinction between
directly defined
> &gt; &gt; &gt; &amp;gt; &amp;gt; components vs.
> &gt; &gt; &gt; &amp;gt; &amp;gt; imported/included components.
> &gt; &gt; &gt; &amp;gt; &amp;gt; ]]
> &gt; &gt; &gt; &amp;gt; &amp;gt; Furthermore, sec 2.1.3 Mapping
Description's XML
> &gt; &gt; Representation
> &gt; &gt; to
> &gt; &gt; &gt; &amp;gt; &amp;gt; Component Properties
> &gt; &gt; &gt; &amp;gt; &amp;gt;
> &gt; &gt; http://dev.w3.org/cvsweb/~checkout~/2002/ws/desc/wsdl20/wsdl20
> &gt; &gt; &gt; &amp;gt; &amp;gt;
> &gt; &gt;
..html?content-type=text/html;%20charset=utf-8#Description_Mapping
> &gt; &gt; &gt; &amp;gt; &amp;gt; also shows no distinction between
components that
> &gt; &gt; originated
> &gt; &gt; &gt; &amp;gt; &amp;gt; in the WSDL
> &gt; &gt; &gt; &amp;gt; &amp;gt; 2.0 document and components that
originated in an
> &gt; &gt; &gt; &amp;gt; &amp;gt; included/imported document.
> &gt; &gt; &gt; &amp;gt; &amp;gt;
> &gt; &gt; &gt; &amp;gt; &amp;gt;
> &gt; &gt; &gt; &amp;gt; &amp;gt;
> &gt; &gt; &gt; &amp;gt; &amp;gt;
> &gt; &gt; &gt; &amp;gt; &amp;gt; --
> &gt; &gt; &gt; &amp;gt; &amp;gt; David Booth
> &gt; &gt; &gt; &amp;gt; &amp;gt; W3C Fellow / Hewlett-Packard
> &gt; &gt; &gt; &amp;gt; &amp;gt; Telephone: +1.617.253.1273
> &gt; &gt; &gt; &amp;gt; &amp;gt;
> &gt; &gt; &gt; &amp;gt; &amp;gt;
> &gt; &gt; &gt; &amp;gt; &amp;gt;
> &gt; &gt; &gt; &amp;gt; &amp;gt;
> &gt; &gt; &gt; --
> &gt; &gt; &gt;
> &gt; &gt; &gt; David Booth
> &gt; &gt; &gt; W3C Fellow / Hewlett-Packard
> &gt; &gt; &gt;
> &gt; &gt; &gt;
> &gt; &gt; &gt;
> &gt; &gt; &gt;
> &gt; &gt; &gt;
> &gt; &gt; &gt;
> &gt; &gt; &gt;
> &gt; &gt; &gt;
> &gt; &gt; &gt;
> &gt; &gt; &gt;
> &gt; &gt; &gt;
> &gt; &gt; &gt;
> &gt; &gt;
> &gt; &gt; ________________________________________________
> &gt; &gt; This message has been sent via webmail.
> &gt; &gt; Please forward unsolicited email (spam) to...
> &gt; &gt; abuse@hostonce.com
> &gt; &gt;
> &gt; &gt;
> &gt; &gt;
> &gt; &gt;
> &gt;
> &gt;
>
>
>
>
>
>
>

________________________________________________
This message has been sent via webmail.
Please forward unsolicited email (spam) to...
abuse@hostonce.com

Received on Thursday, 14 April 2005 19:57:54 UTC