SUO: Re: Enhancing Data Interoperability with Ontologies...
Thanks for bringing that article to our attention:
> The members of this list may find this article of interest.
But the author takes too narrow a view of ontologies.
The following statement is false in general. It is only
true of very limited, clumsy notations, such as OWL:
Ontologies are not able to state relationships between
entities that are related via a transformation.
As I have said many times before, logic can express such
transformations very simply, and OWL is merely an inadequate
version of logic. At the end of this note is an excerpt
from that article, which shows the author's suggestion
for using XSLT to define a transformation from polar
coordinates to Cartesian coordinates. To see how
ridiculous the XSLT notation is, compare it to the
two formulas expressed in Fortran:
x = r * cos(theta)
y = r * sin(theta)
In predicate calculus, KIF, or CGs, you could use a function
called times that takes two inputs and generates one output:
times(r, cos(theta), x)
times(r, sin(theta), y)
Any of those notations let you define a function that
takes a pair of inputs (r,theta) and generates a pair
of outputs (x,y).
If you prefer to use controlled English, you could write
x is r times the cosine of theta.
y is r times the sine of theta.
Tools such as Mathematica let you perform far more complex
feats of mathematical wizardry to solve all kinds of
problems and translate the answers to an executable form
in Fortran or other programming languages.
In the following example, please note the two comments,
enclosed in <!-- ... -->. I suggest that you adopt
a notation that processes only the comments and throws
away the rest of the garbage.
Below is an XSLT 2.0 function that converts a Polar Coordinate
to the canonical Cartesian Coordinate form:
<xsl:function name="cs:CoordinateSystem" as="element()">
<xsl:param name="coordinateSystem" as="item()"/>
<!-- x = r cos theta -->
<!-- y = r sin theta -->