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:07:35 +0200
Message-ID: <013201c334c9$0a8b2d70$38971d97@Matrix>
To: <www-rdf-interest@w3.org>

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:08:00 GMT

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