[rdfweb-dev] Describing FOAF using OWL: enumerating allowed
Dan Brickley
danbri at w3.org
Sun Jun 22 17:25:35 UTC 2003
* Morten Frederiksen <mof-rdf at mfd-consult.dk> [2003-06-22 18:04+0200]
> Hi there,
>
> Dan Brickley <danbri at w3.org> wrote:
> >My preference is for literal values because I want to minimise the
> >verbosity, and only use URIs where there's a clear gain, eg. from data
> >merging.
> Agreed, there's no reason to make it more complicated than absolute
> necessary, from a usage point of view.
>
> One good reason for using URIs to define types is to be able to make
> general statements about the types, such as textual descriptions of
> what it means to be an person with a myersBriggs of ENTP.
>
> However, OWL steps in the for rescue here, making it possible to make
> these statements even when using literals (I think this should be
> the correct syntax, please correct me if not):
>
> <owl:Class>
> <rdfs:label>ENTP-person</rdfs:label>
> <rdfs:comment>...</rdfs:comment>
> <rdfs:subClassOf rdf:resource="&foaf;Person"/>
> <rdfs:subClassOf>
> <owl:Restriction>
> <owl:onProperty rdf:resource="&foaf;myersBriggs"/>
> <owl:hasValue rdf:datatype="&xsd;string">ENTP</owl:hasValue>
> </owl:Restriction>
> </rdfs:subClassOf>
> </owl:Class>
>
> This (hopefully) states, that a foaf:Person that has a foaf:myersBriggs
> of "ENTP" is a member of the class labeled "ENTP-person", which could be
> given an ID/URI and/or have more statements made about it, statements
> that would then apply to the foaf:Person in question.
Nice example :)
I didn't check the markup, but the intent is clear: make use of OWL's
ability to represent the conditions for class membership. We could
(left as exercise to reader, ahem) for eg. represent Introvert or
whatever through set-oriented operations around Person and their mb properties.
I suspect there are richer areas to explore than MyersBriggs though, so don't
want to obsess on that. We could say (not quite truthfully) that someone
is a Bristolian if their nearestAirport is 'BRS'. I was heading in this
direction with the discussion of groups, too. See
http://rdfweb.org/issues/show_bug.cgi?id=8 and some (not linked) threads
previously on rdfweb-dev.
We could say:
GoogleEmployee
subClassOf
Person
mumble restriction mumble where:
foaf:workplaceHomepage="http://www.google.com/"
Or
LinuxKernelHacker
subClassOf
Person
....
x:memberOfMailingList="mailto:linux-kernel-hackers-etc etc"
and so forth.
The facilities offered by OWL are hard to say no to, although it does
provide a slightly different slant on modelling groups from some people's
expectations.
So not sure where next to go with that. Last I left it, it seemed as if
one _could_ hack a way to do social group membership in OWL by having
foaf:member be an inverse of rdf:type, but that is pretty gross.
>
> >Hmm side-thought: for properties like 'schoolHomepage', we could have a
> >Javascript bookmarklet in toolbar which could take you off to a
> >'describe your relationship to the organisation whose homepage this is'
> >form in the foaf-a-matic vein. Or for that matter, into FOAF aggregators,
> >so you could, for a given page, search FOAF data for people who work there,
> >study there, etc.
> Yeah, I've thought of some other bookmarklets that could be invoked on
> a page with a reference to a FOAF file, such as "add this person as
> someone I know to my FOAF file" or "find me people I know that know
> this person".
Yup. Hosting / access control continues to be a headache there...
>
> Also, would it be possible to make a (portable!, it seems not all
> bookmarklets are portable?) context sensitive menu bookmarklet, that
> would let you select between other bookmarklets that were relevant to
> the pointers in the current page? Jim?
I'd just have a simple generic bookmarklet point off to a switch-box CGI, a
and do the rest from a webserver. But then I'm javascript averse.
cheers,
Dan
More information about the foaf-dev
mailing list