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

Re: SUO: Re: Enhancing Data Interoperability with Ontologies...




John F. Sowa wrote:

>
> But the author takes too narrow a view of ontologies.

The piece should perhaps include "OWL" in the title.

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

It's adequacy depends on the purposes to which it's applied - so far it 
looks adequate for Semantic Web purposes.

[snip]

The article points out many drawbacks of OWL, but shows that it is 
actually possible to do the calculations using OWL and XSLT, albeit in a 
seriously clunky fashion. I think it likely that the author is aware 
that the calculation could be done much more easily using other 
technologies (virtually any programming language). For a certain set of 
tasks (a limited range of ontological modelling) OWL is good, for a 
certain set of tasks XSLT is good (translating between XML formats). 
What's described in the article is an edge case. I await your examples 
which show how CGs can be used to carry out syntactic translations on 
XML formats better than XSLT. I can't talk about the merits of 
Mathematica because I can't use it for anything at all because of the 
price tag.

btw, I've seen plenty of argument from the other end of scale, web 
developers and XML people saying that the RDF model is far too complex, 
and ontologies absolutely unnecessary. The conclusion there is also "OWL 
sucks". That may or may not be true, but generally the arguments are 
constructed from the conclusion rather than vice versa.

Cheers,
Danny.


 

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


-- 
----
Raw
http://dannyayers.com