[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