Hi Roger--
On Mar 11, 2011, at 3:55 PM, Costello, Roger L. wrote:
> Hi Folks,
>
> Is there a difference between abstraction and reuse?
>
> Suppose I observe that all appliances have a model number, a description, and a warranty.
You've just created an abstraction of appliances, since real appliances are obviously much more complex than just a triple of properties (even if you restrict yourself to properties, appliances could be characterized by a much richer collection than this).
> Subsequently I create this complexType:
>
> <xsd:complexType name="appliance">
> <xsd:sequence>
> <xsd:element name="model-number" type="xsd:ID"/>
> <xsd:element name="description" type="xsd:string"/>
> <xsd:element name="warranty" type="xsd:string"/>
> </xsd:sequence>
> </xsd:complexType>
>
> Is that complexType an abstraction?
>
> It is clearly a reusable thing. But I am not convinced that it is an abstraction because it is hardcoded to specific element names. What do you think?
Of course it's an abstraction. Almost by definition, any *type* is an abstraction, if only of its instances. It may not be as abstract as some other descriptions you could think of, but it's still an abstraction. Being an abstraction isn't necessarily a binary characteristic, i.e. something is or isn't one. Things can be more or less abstract, but still abstractions.
>
> Do you think that we (the XML community) have powerful mechanisms for creating abstractions? If not, what is missing? If yes, please provide an example of a powerful abstraction that you have created or you have seen created. What makes it powerful?
>
> /Roger
>