W3C home > Mailing lists > Public > www-rdf-interest@w3.org > June 2003

Re: Expressing mathematical relationships in an ontology?

From: Francesco CannistrÓ <fracan@inwind.it>
Date: Tue, 17 Jun 2003 14:30:48 +0200
Message-ID: <015c01c334cc$48f515a0$38971d97@Matrix>
To: <www-rdf-interest@w3.org>

I note that in my previous message I forgot to close some tag (see
FunctionData  tag for example): please be patient and do not consider
"editorial" errors :-)

----- Original Message -----
From: "Francesco CannistrÓ" <fracan@inwind.it>
To: <www-rdf-interest@w3.org>
Sent: Tuesday, June 17, 2003 2:07 PM
Subject: Re: Expressing mathematical relationships in an ontology?


>
> I think that OWL can be leveraged to express mathematical functions as
well.
> Consider the folowing example [that tries to assert: Y=MyFunction(X1,X2)]
>
> <FunctionData rdf:about="#Y">
>     <isFunctionValueOf>
>           <Function rdf:about="MyFunction">
>                 <argument>
>                      <FunctionData  rdf:about="#X1">
>                          <value>x1</value>
>                 </argument>
>                 <argument>
>                      <FunctionData  rdf:about="#X2">
>                          <value>x2</value>
>                 </argument>
>           </Function>
>     </isFunctionValueOf>
> </FunctionData>
>
> The ontology is the following:
>
> <owl:Class rdf:ID="FunctionData " />
>
> <owl:DatatypeProperty rdf:ID="value">
>    <rdfs:domain rdf:resource="#FunctionData "/>
> </owl:DatatypeProperty>
>
> <owl:Class rdf:ID="Function"/>
>
> <owl:ObjectProperty rdf:ID="isFunctionValueOf">
>    <rdfs:domain rdf:resource="#FunctionData" />
>    <rdfs:range rdf:resource="#Function" />
> </owl:ObjectProperty>
>
> <owl:ObjectProperty rdf:ID="argument">
>    <rdfs:domain rdf:resource="#Function" />
>    <rdfs:range rdf:resource="#FunctionData " />
> </owl:ObjectProperty>
>
> <owl:Class rdf:ID="MyFunctionClass">
>     <owl:IntersectionOf rdf:parseType="Collection">
>           <owl:Class rdf:about="#Function"/>
>             <owl:Restriction>
>                   <owl:onProperty rdf:resource="#argument"/>
>                   <owl:allValuesFrom rdf:resource="#X-Domain"/>
>                   <owl:cardinality
> rdf:datatype="&xsd;nonNegativeInteger">2</owl:cardinality>
>             </owl:Restriction>
>     </owl:IntersectionOf >
> </owl:Class>
>
> <MyFunctionClass rdf:ID="MyFunction"/>
>
> <owl:Class rdf:ID="X-Domain">
>     <owl:IntersectionOf rdf:parseType="Collection">
>             <owl:Class rdf:about="#FunctionData "/>
>             <owl:Restriction>
>                   <owl:onProperty rdf:resource="#value"/>
>                   <owl:allValuesFrom rdf:resource="#X-Datatype"/>
>             </owl:Restriction>
>     </owl:IntersectionOf >
> </owl:Class>
>
> <owl:Class rdf:ID="Y-Domain">
>     <owl:IntersectionOf rdf:parseType="Collection">
>             <owl:Class rdf:about="#FunctionData "/>
>             <owl:Restriction>
>                   <owl:onProperty rdf:resource="#value"/>
>                   <owl:allValuesFrom rdf:resource="#Y-Datatype"/>
>             </owl:Restriction>
>     </owl:IntersectionOf >
> </owl:Class>
>
> Note that you can also specialize the argument property so that no any
> confusion can arise with the order of arguments when these are of the same
> type.
>
> Francesco
>
Received on Tuesday, 17 June 2003 08:31:11 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:51:59 GMT