SUO: Re: Enhancing Data Interoperability with Ontologies...
Do you mean that we may introduce some kind of logic to perform data interoperability as a middle-data?
For example:
DATA TYPE1 <----> LOGIC <----> DATA TYPE2
|___________|
|
Interoperability
If so, I think it is just like a middle-ware model and everything is expression just as Stephen Wolfram has preferred and practiced in his software "Mathematica" which I'm fond of!
> -----Original Message-----
> From: owner-standard-upper-ontology@majordomo.ieee.org
> [mailto:owner-standard-upper-ontology@majordomo.ieee.org] On Behalf Of John
> F. Sowa
> Sent: Saturday, March 27, 2004 1:15 AM
> To: clbullar@ingr.com
> Cc: cg@cs.uah.edu; standard-upper-ontology@ieee.org
> Subject: SUO: Re: Enhancing Data Interoperability with Ontologies...
>
>
> Len,
>
> Thanks for bringing that article to our attention:
>
> > The members of this list may find this article of interest.
> >
> > http://www.xfront.com/interoperability/CanonicalForms.html
>
> 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.
>
> John Sowa
>
> _______________________________________________________________
>
> Below is an XSLT 2.0 function that converts a Polar Coordinate
> to the canonical Cartesian Coordinate form:
>
> <xsl:include href="Length-Include-File.xsl"/>
>
> <xsl:function name="cs:CoordinateSystem" as="element()">
> <xsl:param name="coordinateSystem" as="item()"/>
>
> <xsl:choose>
> <xsl:when
> test="local-name($coordinateSystem)='Polar-Coordinate-System'">
> <Cartesian-Coordinate-System
> xmlns="http://www.xfront.com/owl/ontologies/CoordinateSystem/#">
> <xsl:variable name="canonical-r-length"
> select="len:Length($coordinateSystem/cs:r/len:Length)"/>
> <xsl:variable name="canonical-theta-angle"
> select="cs:Angle($coordinateSystem/cs:theta/cs:Angle)"/>
> <x>
> <Length
> xmlns="http://www.xfront.com/owl/ontologies/Length/#">
> <value>
> <!-- x = r cos theta -->
> <xsl:value-of
> select="$canonical-r-length/len:value *
> exslt:cos($canonical-theta-angle/cs:value)"/>
> </value>
> <units
> rdf:resource="http://www.xfront.com/owl/ontologies/Length/#Meter"/>
> </Length>
> </x>
> <y>
> <Length
> xmlns="http://www.xfront.com/owl/ontologies/Length/#">
> <value>
> <!-- y = r sin theta -->
> <xsl:value-of
> select="$canonical-r-length/len:value *
> exslt:sin($canonical-theta-angle/cs:value)"/>
> </value>
> <units
> rdf:resource="http://www.xfront.com/owl/ontologies/Length/#Meter"/>
> </Length>
> </y>
> </Cartesian-Coordinate-System>
> </xsl:when>
> ...
> </xsl:choose>
> </xsl:function>
>