[rdfweb-dev] Time's running out?

Jim Ley jim at jibbering.com
Sun Aug 10 00:27:55 UTC 2003

"Julian Bond" <julian_bond at voidstar.com>
> There is also $model->findRegex which works on the subject, predicate
> and object labels. But it's easy with this to ignore the namespace names
> and lose the benefit of them stopping tangling. I guess I could search
> for %.*foaf/0.1/Person%

I think one thing your doing that others aren't is caring that the
foaf:Person is specifically defined in the file, this isn't necessary, and
in many cases will specifically not be done - consider one of the way of
modelling gender with a foaf:MalePerson and foaf:FemalePerson, and there's
lots of other cases where other types might be used, if you just look for
the foaf:Person element, then you'll need to also load up all the models
which define subClasses, to see if the wibble:FOO class is actually a
subClass of foaf:Person, so everything is the same.

Since we know foaf:mbox applies to foaf:Persons, we can do all that stuff,
without caring what the class in the doc is - we only need to know about the
foaf namespace.

So for example if I want to find Libby's name from her email address, I
don't look for all the FOAF:Person's, then look for the email address, I
simply look at all the foaf:mbox's, since that's a property of People I'm
interested in.  You could do all the model work to see if the class used in
the doc is a subClass of FOAF:Person, but that would be a lot of work, and
would still not completely solve the problem, as the non-closed world
assumption means that missing information doesn't mean it doesn't exist.

> I'm beginning to think that I'm confusing myself here by trying to work
> with an experimental file that doesn't even validate and everyone else
> has forgotten about.

It's a completely valid, and useful RDF document, the fact it doesn't
explicitly state it's a foaf:Person whilst not useful in there, is a useful
technique, so you should try and deal with it (it's useful as omitting it
can make our RDF simpler.)

> >If there are two or more versions of a persons FOAF file are out there
> >can either choose to ignore the older one,
> No. Two or more versions of a namespace not of a persons FOAF file. eg
> if there existed 2002/02/02/rdfs and 2003/03/03/rdfs where the second
> was a superset of the first.

You can't really ignore either, they're both completely valid, your app
though might choose which is best to use, based on modified date, or signed
data etc. but remember that no person has "A FOAF file" unless they choose
to define such a beast, there's nothing wrong, and very much right in having
lots of documents which provide RDF information about yourself.

> Further imagine that some people reference
> the first in their files and some people use the second. I as a
> developer need to search my datastore for both 2002/02/02/rdfs#seeAlso
> and 2003/03/03/rdfs#seeAlso

RDF apps with owl etc. should be capable enough to deal with this, at the
moment the owl tools are not likely available in the wild, but then as you
say, the problem doesn't yet really exist in the wild, the methods to deal
with it are being developed though.  Your RDF toolkit should be able to deal
with it.


More information about the foaf-dev mailing list