OWL DatatypeRestriction instead of CWM builtins?

CWM gets math through builtins like math:cos which require extending RDF 
to allow subject literals and using ad-hoc hooks for "intercepting" the 
use of builtins as predicates:
@forSome :_g0 .
0.0 math:cos :_g0 .
:myDoor :hasHeight :_g0 .

(Thus, the reasoner can conclude :myDoor :hasHeight 1.0 .)

But can't the same thing be achieved through the OWL DatatypeRestriction?
:myDoor a [owl:onProperty :hasHeight; owl:someValuesFrom [owl:onDatatype 
xsd:double; withRestrictions (mathx:cos 0.0)]]

Datatype restrictions are where OWL allows "hooks" where the reasoner 
must have builtins to know about datatypes. The reasoner can conclude that
[owl:onDatatype xsd:double; withRestrictions (math2:cos 0.0)]]
is a singleton class which is equivalent to [owl:oneOf (1.0)]
and so
myDoor a [owl:onProperty :hasHeight; owl:someValuesFrom [owl:oneOf (1.0)]]
is equivalent to
myDoor a [owl:onProperty :hasHeight; owl:hasValue 1.0]
which is finally
:myDoor :hasHeight 1.0

This is all pretty convoluted, but it stays within the semantics of OWL 
and relies in its given hooks for builtins (and could really use some 
syntactic sugar to help out).
Has anyone looked at using DatatypeRestriction to get functions like 
math:cos into OWL reasoners?

Thanks for any help,
- Jeff

Received on Thursday, 28 May 2009 17:35:05 UTC