- From: Francesco Cannistrà <fracan@inwind.it>
- Date: Tue, 17 Jun 2003 14:30:48 +0200
- 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 UTC