Re: [xml-dev] RE: Abstraction in Science, Mathematics, Software, and Markup

From
Frank Manola <>
To
"Costello, Roger L." <>
Date
2011-03-11T21:25:39Z
ID
<>
Thread
Re: [xml-dev] RE: Abstraction in Science, Mathematics, Software, and Markup
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
>