Thread Links Date Links
Thread Prev Thread Next Thread Index Date Prev Date Next Date Index

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>
>