Re: Combined Inverse Functional Properties

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