- From: Yuzhong Qu <yzqu@seu.edu.cn>
- Date: Wed, 16 Feb 2005 11:22:57 +0800
- To: "Henry Story" <henry.story@bblfish.net>
- Cc: "SWIG" <semantic-web@w3.org>, <jos.deroo@agfa.com>, "Dan Brickley" <danbri@w3.org>
It seems to me that:
what CIFP means is very close to that intersectionOf(r1, r2, ..., rn) is a reverse functional property.
And some DLs do support the role constructor "intersectionOf".
I'm just curious to the CIFP issue.
Yuzhong Qu
> Thanks. That's perfect. That has helped me both learn N3 and is a nice
> solution.
> All we need is to generalize this to CIFPs of any size and we have a
> really useful concept, ready to go up on the wiki :-)
>
> Henry Story
>
> On 15 Feb 2005, at 14:35, jos.deroo@agfa.com wrote:
> > 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.
> >
>
>
>
>
Received on Wednesday, 16 February 2005 03:22:42 UTC