In my opinion,
if we refer to interfaces (or languages/syntaxes) rather than, generically, to
"information systems", the distinction between evolution and extension becomes
clearer and more useful.
My
concept of "extensible" interface is that the interface supports certain
rigorously-defined extensions to it with the following
property:
------------------
Given:
- an implementation that exposes the base
(non-extended) interface B;
- an implementation that exposes an extended
interface E1;
- an implementation that exposes another
extended interface E2,
a
program written to use interface B is guaranteed to work (as expected) when
using any of these three implementations, "thinking" that it is using an
implementation of interface B.
------------------
The
same concept of extensibility would also apply to
languages/syntaxes.
On
the other hand, if an interface or a language "evolves", one cannot expect
that the condition above is satisfied (although it could
be).
In
other words, while I expect to be able to use an extended interface as if it
were the corresponding base interface, I don't expect to be able to use
an evolved interface as if it were the corresponding unevolved
interface. Same thing for a language/syntax.
I
think "evolvability" in this context means simply that an interface or a
language can be modified easily, inexpensively, and nicely, in order to
meet new requirements - without implying that a user can ignore that there has
been a modification.
If
we refer to a system, I would say that it is possible for a system to
*evolve* while some of its interfaces are simply *extended* (while others
evolve).
Alessandro Triglia
If
you define evolution as the accretion of new features, sure. If you
mean adding new
instances of those features, no. In any layered system, one
must be careful to specify
which layer is evolving vs one that is merely
accreting.
If
you define evolution as 'change' one *might* say this is evolution.
Amazon added categories
so
the addition of the categorical function is evolution (a new feature) but
adding categories
is
extensibility.
In
a biological system, evolution is a feature that is inheritable.
Comparing that to Amazon,
those are not evolution unless adding categories or search to Amazon
adds it to any
descendant of Amazon or any system derived from Amazon.
If Amazon cannot have
decendants, it cannot evolve. In this sense, evolution is
an observable process of
populations as they adapt to their environment, shape their
environment, and then
adapt to those changes (mediated feedback). So my
question to you is, what
is
the equivalent of Amazon.com genes? Adding categories could mean the
information is evolving, but Amazon evolved only when the categorical
function
was added, and then it accretes categories.
My position would be that XML evolution is in the addition or
deletion of features
of
a schema (at any metalevel one cares to work) because it defines the system.
So
one might look at how instances acquire new elements and attributes that are
then added to their schemas as definitions. For example,
aggregation: why would
one relax constraints such that composite documents
become homogenous?
One might do that if working on one product in isolation and fits
HTML elements into
say SVG applications.
Is
XML an evolution of SGML or simply an adaptation (it lost features, so
maybe it is devolution)?
len
Hi
Folks,
I am
interested in hearing your thoughts on the differences between an
information system that is extensible versus an information system that is
evolvable.
For example,
suppose that Amazon.com gives users the ability to do a keyword
search. Further, suppose that Amazon empowers its users to create
new keywords (and map the new keywords to information at the Web
site). Is this support for new keywords an example of extensibility
or evolution? By adding new keywords has Amazon merely been extended, or has it
evolved?
Let's take another example.
Suppose that Amazon gives users the ability to search by book category
(e.g., Fiction, Non-Fiction, etc.) Further, suppose that Amazon
empowers its users to create new categories (and map the categories to
information at the Web site). Is this support for new categories an
example of extensibility or evolution? By adding new categories has
Amazon merely been extended, or has it
evolved?
If adding new keywords and adding new
categories are merely examples of extension, then can you give an
example of evolution?
/Roger