W3C home > Mailing lists > Public > www-rdf-rules@w3.org > November 2004

Re: function symbols in SWRL FOL

From: Ian Horrocks <horrocks@cs.man.ac.uk>
Date: Wed, 24 Nov 2004 22:01:49 +0000
Message-ID: <41A504CD.7010702@cs.man.ac.uk>
To: Jos de Bruijn <jos.debruijn@deri.org>
CC: www-rdf-rules@w3.org

Jos de Bruijn wrote:
> Hi all,
> I have a question regarding SWRL FOL [1] to which someone here might 
> know the answer:
> SWRL FOL is an extension of SWRL to first-order logic. However, there do 
> not appear to be any function symbols in the language. Did I overlook 
> something in the document?
> Could someone tell me why we would want to restrict the expressiveness 
> of the language? Why not define a full first-order logic and define 
> subsets with some specific desirable properties?


Hopefully I can clear things up:

Firstly, SWRL FOL is not an extension of SWRL *to* first-order logic, it 
is an extension of SWRL *towards* FOL (e.g., SWRL FOL doesn't have 
relations of arbitrary arity).

Secondly, when we have equality (as we do in SWRL FOL), function symbols 
do not add to the expressive power of the language as we can easily 
substitute "functional" predicates. I was hoping to refer you to a 
suitable logic text book at this point, but one didn't immediately come 
to hand so I will attempt to DIY it. To make a predicate f "functional", 
we simply add:

\forall x,y,z f(x,y) ^ f(x,z) -> y=z

We can of course make it a total function with:

\forall x \exists y f(x,y)

We can then eliminate a function term from an atom by replacing it with 
an existentially quantified variable and adding the corresponding 
functional predicate atom. E.g., if f(t) occurs in an atom A, then we 
can rewrite A as

\exists x (A[f(t)/x] ^ f(t,x))

where A[f(t)/x] is A with f(t) replaced by x, and f is a "functional" 
predicate. Or something like that :-)

(Of course this wouldn't work in SWRL if there were function symbols 
with arity greater than 1.)

Even given that function symbols don't add expressive power, there is an 
argument that they should be added as a convenience. How much syntactic 
sugar should be added to languages such as OWL, SWRL, and SWRL FOL has 
been a long running debate. My view, which is shared by at least some 
other members of the Joint Committee, is that no sane person would write 
directly in OWL/SWRL/SWRL FOL syntax, and that we can therefore safely 
leave it to tool builders to add convenience features as they see fit.



> Thanks for the clarification!
> Best, Jos
> [1] http://www.daml.org/2004/11/fol/proposal
Received on Wednesday, 24 November 2004 22:01:43 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 22:46:18 UTC