# Re: Combined Inverse Functional Properties

From: <jos.deroo@agfa.com>
Date: Tue, 15 Feb 2005 14:35:10 +0100

Cc: Henry Story <henry.story@bblfish.net>, semantic-web@w3.org, semantic-web-request@w3.org
Message-ID: <OFD251C9DC.12AE264C-ONC1256FA9.004A2D8D-C1256FA9.004AA15C@agfa.com>

Hi, Dan

I did just a 5 min test with Cwm and Euler :)

given data

:a :r1 :b.
:a :r2 :c.
:g :r1 :b.
:g :r2 :c.
:p :cifp (:r1 :r2).

and some rules capturing only cases for 1, 2 and 3 cifp properties

{?C :cifp ?L.
?L rdf:first ?P;
rdf:rest rdf:nil.
?A ?P ?X.
?B ?P ?X}
=>
{?A owl:sameAs ?B}.

{?C :cifp ?L.
?L rdf:first ?P;
rdf:rest ?M.
?M rdf:first ?Q;
rdf:rest rdf:nil.
?A ?P ?X;
?Q ?Y.
?B ?P ?X;
?Q ?Y}
=>
{?A owl:sameAs ?B}.

{?C :cifp ?L.
?L rdf:first ?P;
rdf:rest ?M.
?M rdf:first ?Q;
rdf:rest ?N.
?N rdf:first ?R;
rdf:rest rdf:nil.
?A ?P ?X;
?Q ?Y;
?R ?Z.
?B ?P ?X;
?Q ?Y;
?R ?Z}
=>
{?A owl:sameAs ?B}.

the N3QL query

[] q:select {?X owl:sameAs ?Y}; q:where {?X owl:sameAs ?Y}.

gave us

:a owl:sameAs :a.
:a owl:sameAs :g.
:g owl:sameAs :a.
:g owl:sameAs :g.

--
Jos De Roo, AGFA http://www.agfa.com/w3c/jdroo/

Dan Brickley <danbri@w3.org>
Sent by: semantic-web-request@w3.org
15/02/2005 13:09

To:     Henry Story <henry.story@bblfish.net>
cc:     semantic-web@w3.org, (bcc: Jos De_Roo/AMDUS/MOR/Agfa-NV/BE/BAYER)
Subject:        Re: Combined Inverse Functional Properties

* Dan Brickley <danbri@w3.org> [2005-02-15 06:58-0500]
>
> * Henry Story <henry.story@bblfish.net> [2005-02-15 12:29+0100]
> >
> > Here is the same idea, but put in terms of deductions.
> >
> > Assuming that R1 and R2 are CIFP relations on Class C1, the following
> > would be the type of deduction I would be looking for.
>
> Migrating an IRC discussion back into email from #foaf just now...:
>  http://www.ilrt.bris.ac.uk/discovery/chatlogs/foaf/2005-02-15#T11-57-23
>
> <bblfish> sh1mmer: I have been thinking about CIFP's recently. You may
> have seen my post on SemWeb.
> * danbri suggests trying to write some N3 rules, see if Cwm or others
> * tools can handle it...
> <danbri> oh, re
> <danbri> a ----R1----> b
> <danbri> a ----R2----> c
> <danbri> g ----R1----> b
> <danbri> g ----R2----> c
> <danbri> a -rdf:type-> C1
> <danbri> g -rdf:type-> C1
> <danbri> -------------------
> <danbri> a--owl:sameAs--> g
> <danbri> are the rdf:type arcs necessary?
> <danbri> things have lots of types, and their descriptions don't always
> mention then, so requiring a match on  rdf:type lowers the chance of the
> rule firing
> <bblfish> I am not sure if the rdf types are necessary, but I was
> thinking of CIFP's as somewhat related to Class restrictions
> <bblfish> but you are right, I could write that out as N3 rules.
> <danbri> I don't think it works quite the same
> <danbri> N3 plus a bunch of test cases is nearly all you need for a
> decent definition of CIFP
> <bblfish> yes. Perhaps that is all that sh1mmer needs too.
> <danbri> I'd drop the rdf:type constraint, and add in, 'R1 rdf:type
> util:CIFP','R2 rdf:type util:CIFP'
>
> Anyone tried such things in Cwm, or other reasoners?

Oh, to save anyone else the trouble of correcting me...

<bblfish> mind you I think the R1 rdf:type util:CIFP won't work. It is
too general. One needs a way of grouping CIFPs somehow (C stands for
combined), or else all there will only
<bblfish> be CIFPs one large CIFP group. I think that is why I was
thinking of them as a little like restrictions.
<danbri> yeah fair point, sorry, typed before thinking
<danbri> all i meant really was, put all the assumptions explicitly into
the ruleset
<bblfish> yes, quite right.

cheers,

Dan
Received on Tuesday, 15 February 2005 13:35:48 UTC

This archive was generated by hypermail 2.4.0 : Thursday, 24 March 2022 20:40:54 UTC