revi s. | 7 Jun 2008 00:56
Picon
Favicon

[foaf-dev] Design of FOAF


Hi:

I was reading through the FOAF (N3 serialization), as a good example to use some of the design decisions there, to help in the design of our own ontology. I had some questions in the process and was hoping folks on this list could throw some light. These are not criticisms, obviously, but genuine queries of someone new to the intricacies of ontology design...

In FOAF:


1. Why are (re)defining terms, e.g. wot:assurance to be an owl:AnnotationProperty. It is already defined as an owl:ObjectProperty in the WOT ontology -- shouldn't we defer to that source ontology instead of defining our own, especially when AnnotationProperty and ObjectProperty are meant to be disjoint. How is th is being used?

2. Why do we have to define here what rdfs:Class, as in rdfs:Class is an owl:Class is? Shouldn't that be available to a reasoner from the RDFS ontology?

3. I see combinations of camel casing and underscore and other schemes  for naming resources, properties with conjuctions of more than one word -- even for the terms FOAF defines itself. e.g. based_near and firstName. Wouldn't consistent naming have been better?

4. What is the way to modify/adapt (subtle or not not subtle) the semantics of a term / property -- example I don't want foaf:interest to be a "document", as in, foaf:Document. I may want it to be just a list of "terms" or concepts, or maybe "interest" in my application domain is not a document, but much broader, say owl:Thing, or whatever...  Do I define my own property, how do I "extend" foaf:interest ? In gen eral what are the semantics of "is-a"; are they as strict as in OO type inheritance, where EVERYTHING TRUE about the super class must also atleast hold true about the subclass? I've seen IS-A used "loosely" in several RDFS/OWL documents. In FOAF for instance, many wide "wordnet concepts" are said to parents of foaf properties, but those wordnet concepts are open to wide interpretation, fuzzy semantics, and I'm not sure how we can definitively say, my class IS-A particular wordnet concept. What's an organizing principle in situations such as these?


Regards,
Revi


_______________________________________________
foaf-dev mailing list
foaf-dev@...
http://lists.foaf-project.org/mailman/listinfo/foaf-dev
Anthony Steele | 7 Jun 2008 15:13

[foaf-dev] Examples of large nets of foaf data

Hi all.

I seem to have a foaf data browsing web page udner development. I am 
using livejournal for test, since it exposes pages of foaf data that 
link to other pages of foaf data.

e.g. http://someuser.livejournal.com/data/foaf

Are there any other examples of similar nets of foaf data that I can 
test against? Who else uses foaf in this way?

thanks
Anthony
Brad Fitzpatrick | 7 Jun 2008 18:46
Picon
Favicon

Re: [foaf-dev] Examples of large nets of foaf data

Off the top of my head:  Vox, Tribe, Mixi.jp, ...

On Sat, Jun 7, 2008 at 6:13 AM, Anthony Steele <Anthony-RJj2txig4L3vqsTCYbD/ldi2O/JbrIOy@public.gmane.org> wrote:
Hi all.

I seem to have a foaf data browsing web page udner development. I am using livejournal for test, since it exposes pages of foaf data that link to other pages of foaf data.

e.g. http://someuser.livejournal.com/data/foaf

Are there any other examples of similar nets of foaf data that I can test against? Who else uses foaf in this way?

thanks
Anthony
_______________________________________________
foaf-dev mailing list
foaf-dev-RyYwo1q5J+qsOXdr9/+iASST3g8Odh+X@public.gmane.org
http://lists.foaf-project.org/mailman/listinfo/foaf-dev

_______________________________________________
foaf-dev mailing list
foaf-dev@...
http://lists.foaf-project.org/mailman/listinfo/foaf-dev
Akbar Hossain | 7 Jun 2008 20:41

[foaf-dev] Re: Examples of large nets of foaf data (Anthony Steele)

Hi,

You might want to look through the following lists.

http://esw.w3.org/topic/FoafSites
http://opensocialdirectory.org/wiki/List_of_FOAF_Containers

Good luck.
Kingsley Idehen | 8 Jun 2008 21:15
Picon

Re: [foaf-dev] Examples of large nets of foaf data

Anthony Steele wrote:
> Hi all.
>
> I seem to have a foaf data browsing web page udner development. I am 
> using livejournal for test, since it exposes pages of foaf data that 
> link to other pages of foaf data.
>
> e.g. http://someuser.livejournal.com/data/foaf
>
> Are there any other examples of similar nets of foaf data that I can 
> test against? Who else uses foaf in this way?
>
> thanks
> Anthony
> _______________________________________________
> foaf-dev mailing list
> foaf-dev@...
> http://lists.foaf-project.org/mailman/listinfo/foaf-dev
>

Also look at:

http://pingthesemanticweb.com (look at the stats pages, but note they 
may be a little dated).

--

-- 

Regards,

Kingsley Idehen	      Weblog: http://www.openlinksw.com/blog/~kidehen
President & CEO 
OpenLink Software     Web: http://www.openlinksw.com
Michael Wechner | 9 Jun 2008 22:10
Favicon

Re: [foaf-dev] Examples of large nets of foaf data

Anthony Steele wrote:

> Hi all.
>
> I seem to have a foaf data browsing web page udner development. I am 
> using livejournal for test, since it exposes pages of foaf data that 
> link to other pages of foaf data.
>
> e.g. http://someuser.livejournal.com/data/foaf
>
> Are there any other examples of similar nets of foaf data that I can 
> test against? Who else uses foaf in this way?

http://foaf.wyona.org/?q=Michael&submit=Search

Cheers

Michael

>
> thanks
> Anthony
> _______________________________________________
> foaf-dev mailing list
> foaf-dev@...
> http://lists.foaf-project.org/mailman/listinfo/foaf-dev

--

-- 
Michael Wechner
Wyona      -   Open Source Content Management   -    Apache Lenya
http://www.wyona.com                      http://lenya.apache.org
michael.wechner@...                        michi@...
+41 44 272 91 61
gabriele renzi | 12 Jun 2008 14:25
Picon
Gravatar

[foaf-dev] foaf & vcard

Hi everyone,

by looking at the RDF Vcard especification[1], I found links to the
discussion that had place on #swig about it a couple of years ago.
It seems that there was a bit of agreement about how to integrate the
vcard and foaf ontologies, basically along the ideas:

* I am not my business card
* but I do have one, or more

So vcard:VCard was not made a subclass of foaf:Person... but nothing
happened related to the second part.
Yet, it would be nice to harmonize the two ontologies just a little,
by providing a simple additional property that relates a Agent (vcards
can be related to organizations instead of Person's), something on the
lines of:

 foaf:businessCard a rdf:Property,
         owl:InverseFunctionalProperty,
         owl:ObjectProperty;
     rdfs:label "business card";
     rdfs:comment "A personal business card, it is associated with
exactly one person and at most one organization, but every person or
organization can have multiple business cards depending on different
roles or positions in different contexts and times.";
     rdfs:domain foaf:Agent;
     rdfs:isDefinedBy <http://xmlns.com/foaf/0.1/>;
     rdfs:range vcard:VCard.

Why I'm asking this: if i find a vCard embedded in html (as the hCard
microformat) I can assume that there is a foaf:Person associated with
it, but I can't relate that with the additional informations found in
the vcard, thus a sparql query like  "find researchers"[2]

     SELECT  ?name
        WHERE {
            ?a foaf:name ?name .
            ?a foaf:businessCard ?card .
            ?card vcard:title ?title.
            FILTER(?title, regex("research"))
       }

is impossible because even if I know that a person exists with that
title, and another exists with that name, I can't relate them.
The awkward solution, and slightly wrong solution is to compare
properties such as vcard:givenName and foaf:givenname, but the general
problem remains.

Am I being completely dumb? Was this already discussed and refused in the past?
Any pointer will be appreciated, thanks in advance.

[1] http://www.w3.org/2006/vcard/ns
[2] dummy example, I know, I hope you get the general point
notwithstanding the fact that there are obvious workarounds for this
specific query
Benjamin Nowack | 12 Jun 2008 15:19
Favicon

Re: [foaf-dev] foaf & vcard


Hi Gabriele,

I've seen docs that used foaf:topic|primaryTopic to relate vCards 
to foaf:Agents, which sounds reasonable to me.

(The 2006 vCard effort was unfortunately discontinued back then
due to lack of agreement within the SWIG; I think the GRDDL XSLT 
is still based on it, though.)

HTH,
Benji

--
Benjamin Nowack
http://bnode.org/

On 12.06.2008 13:25:07, gabriele renzi wrote:
>Hi everyone,
>
>
>by looking at the RDF Vcard especification[1], I found links to the
>discussion that had place on #swig about it a couple of years ago.
>It seems that there was a bit of agreement about how to integrate the
>vcard and foaf ontologies, basically along the ideas:
>
>* I am not my business card
>* but I do have one, or more
>
>So vcard:VCard was not made a subclass of foaf:Person... but nothing
>happened related to the second part.
>Yet, it would be nice to harmonize the two ontologies just a little,
>by providing a simple additional property that relates a Agent (vcards
>can be related to organizations instead of Person's), something on the
>lines of:
>
>
>
> foaf:businessCard a rdf:Property,
>         owl:InverseFunctionalProperty,
>         owl:ObjectProperty;
>     rdfs:label "business card";
>     rdfs:comment "A personal business card, it is associated with
>exactly one person and at most one organization, but every person or
>organization can have multiple business cards depending on different
>roles or positions in different contexts and times.";
>     rdfs:domain foaf:Agent;
>     rdfs:isDefinedBy <http://xmlns.com/foaf/0.1/>;
>     rdfs:range vcard:VCard.
>
>
>Why I'm asking this: if i find a vCard embedded in html (as the hCard
>microformat) I can assume that there is a foaf:Person associated with
>it, but I can't relate that with the additional informations found in
>the vcard, thus a sparql query like  "find researchers"[2]
>
>     SELECT  ?name
>        WHERE {
>            ?a foaf:name ?name .
>            ?a foaf:businessCard ?card .
>            ?card vcard:title ?title.
>            FILTER(?title, regex("research"))
>       }
>
>is impossible because even if I know that a person exists with that
>title, and another exists with that name, I can't relate them.
>The awkward solution, and slightly wrong solution is to compare
>properties such as vcard:givenName and foaf:givenname, but the general
>problem remains.
>
>Am I being completely dumb? Was this already discussed and refused in the past?
>Any pointer will be appreciated, thanks in advance.
>
>
>[1] http://www.w3.org/2006/vcard/ns
>[2] dummy example, I know, I hope you get the general point
>notwithstanding the fact that there are obvious workarounds for this
>specific query
>_______________________________________________
>foaf-dev mailing list
>foaf-dev@...
>http://lists.foaf-project.org/mailman/listinfo/foaf-dev
>
Story Henry | 12 Jun 2008 15:28

[foaf-dev] location display. V1: current location

Where I look at the simplest behavior of the map component with the  
foaf Address Book, and consider one of the problems with this, namely  
that there is little information of this kind in the current foaf  
files, and how to solve this.

1. Description of the behavior
------------------------------

The simplest thing to display in the NASA World Wind component would  
be the position of the person selected in the people finder panel to  
the left. So this would display my current position, in Fontainebleau  
close to Paris.


larger pictures here:
http://www.flickr.com/photos/bblfish/2572903492/

As one zooms in the size of the red dot would remain a constant size.  
Here we are zooming over Fontainebleau:


larger pictures here:
http://www.flickr.com/photos/bblfish/2572903544/

This is easy to do in World Wind, and easy to understand. Since we  
only have one thing on the map, one could even have a popup such as  
the one displayed by BlueMarine in one of the pictures on this page


see the photos off the page:
http://bluemarine.tidalwave.it/

Blue Marine is an application that can take over the whole screen,  
whereas I think the Address Book should be somewhat smaller. So one  
should only have space for one of those popups. As long as there is  
only one popup, displaying the picture of the person one is looking  
at, a name and some other info perhaps, one could have the popup  
appear at all levels of resolution. This would allow people to have  
some information about the person they are looking at when the map  
view is pressed.

2. The Problem
--------------

The problem is that currently nobody publishes information about their  
current location. They publish information about their office  
location, their home, .... but not as far as I can see (but I have not  
looked deeply) about where their current location is. At present  
Beatnik just zooms to one of the location position.

But this is not going to be a problem for long, and perhaps should not  
be a problem at all.
Services such as http://fireeagle.yahoo.net/ (thanks Damian Steer for  
the pointer) and the next iPhone which will contain a GPS device, will  
make developing such services really easy.
So why not start doing this then?

2.1 describing this in rdf
--------------------------

2.1.1 using foaf:based_near
---------------------------

So first off we need an ontology to describe the current location of a  
person. At first I thought that the foaf:

:me foaf:based_near [ geo:lat 48.402495; geo:long 2.692646 ].

Or perhaps even

:me foaf:based_near <http://geohash.org/u09gm72szpn3> .

where the location information is somewhere else would be good.
But of course that would not quite work. Because a foaf:Person has  
properties such as foaf:mbox, foaf:homePage, which are meant to be  
relatively stable. The location one has at a time will be changing at  
a much greater rate. In logical terms a foaf:Person is a 4 dimensional  
space time sausage which is much longer than the 4 dimensional slice  
that we wish to describe with our current location. Not to make this  
distinction is going to create cashing as well as merging issues.

2.1.2 using the menow ontology
------------------------------

Talking on #swig Benjamin Nowack pointed me to Christopher Schmidt's  
menow ontology at

http://crschmidt.net/foaf/menow/

This ontology gives one the right tools to express what I am looking  
for:

something like this for example:

:me menow:hasstatus [ menow:located [ geo:lat 48.402495; geo:long  
2.692646 ]
                       menow:reading [ dc:title "A Hitchhiker's Guide  
to the Galaxy"]
                      ] .

Now I would not call a time slice of a person, a status. That is the  
wrong english word.
I think it should be something like

:me menow:timeslice [ foaf:based_near [ geo:lat 48.402495; geo:long  
2.692646 ];
                       dc:date "2008-06-12"^^xsd:date;
                     ] .

And perhaps there should be a begin and end time for the slice.

Other problems with menow, is that the namespace is pointing to a non  
existent domain. But this is what I would be looking for.

2.2 interacting with non-rdf stores
-----------------------------------

Well with menow it should be easy to write a foaf file that works well  
with other services that track one's location. One could just write

:me menow:hasstatus <http://fireeagle.yahoo.net/bblfish/loc> .

and GRDDL the returned XML into menow.

In fact it would clearly be a good idea to have menow information in a  
separate file, that would have much shorter HTTP Expires header. Every  
request to a menow:NowDocument could redirect to the permalink to that  
document, and that would aggreage a history of a person's likes and  
dislikes available via an atom feed perhaps, amongst other things...

Ok. So any chance of some more work on menow? Just a xmlns.com/menow/  
domain perhaps?

Henry

Home page: http://bblfish.net/

Attachment (smime.p7s): application/pkcs7-signature, 2429 bytes
_______________________________________________
foaf-dev mailing list
foaf-dev@...
http://lists.foaf-project.org/mailman/listinfo/foaf-dev
Simon Reinhardt | 12 Jun 2008 17:11
Picon

Re: [foaf-dev] location display. V1: current location

Story Henry wrote:
> The problem is that currently nobody publishes information about their 
> current location. They publish information about their office location, 
> their home, .... but not as far as I can see (but I have not looked 
> deeply) about where their current location is.

This is pretty much a privacy problem to me. Won't be one anymore with "RDFAuth" [1]. ;-)

> But this is not going to be a problem for long, and perhaps should not 
> be a problem at all.
> Services such as http://fireeagle.yahoo.net/ (thanks Damian Steer for 
> the pointer) and the next iPhone which will contain a GPS device, will 
> make developing such services really easy.
> So why not start doing this then?

Yep, with FireEagle, an RDF wrapper around it and support for OAuth this would work. Didn't know about
iPhone GPS yet, sounds cool.

> 2.1.1 using foaf:based_near
> ---------------------------
> 
> So first off we need an ontology to describe the current location of a 
> person. At first I thought that the foaf:
> 
> :me foaf:based_near [ geo:lat 48.402495; geo:long 2.692646 ].
> 
> Or perhaps even
> 
> :me foaf:based_near <http://geohash.org/u09gm72szpn3> .
> 
> where the location information is somewhere else would be good.
> But of course that would not quite work. Because a foaf:Person has 
> properties such as foaf:mbox, foaf:homePage, which are meant to be 
> relatively stable. The location one has at a time will be changing at a 
> much greater rate. In logical terms a foaf:Person is a 4 dimensional 
> space time sausage which is much longer than the 4 dimensional slice 
> that we wish to describe with our current location. Not to make this 
> distinction is going to create cashing as well as merging issues.

It works fine if you put the information into a separate file.

foaf.n3:

<> a foaf:PersonalProfileDocument ;
	rdfs:seeAlso <.../status.n3> ;
	foaf:primaryTopic :me .
:me a foaf:Person ;
	foaf:mbox <...> .

status.n3:

<> a foaf:StatusDocument ;
	dct:date "2008-06-12T12:00:00"^^xsd:dateTime .
<...#me> foaf:based_near [ geo:lat 48.402495 ; geo:long 2.692646 ] .

Although I understand based_near more like a stable position, where you live. But you native speakers tell
me. :-)
dct:date in status.n3 is not even needed, HTTP does it all for you. If you wanted to not just describe your
current status but also past ones like in MeNow, you could do that with graphs:

{ :me foaf:based_near [ geo:lat 48.402495 ; geo:long 2.692646 ] } dct:date
"2008-06-12T12:00:00"^^xsd:dateTime .
{ ...

Or have each event in separate file linked to from status.n3.
Talking of events, this seems like the perfect case for the Event ontology [2]. An example:

:me event:isAgentIn [ # Note that this inverse property is deprecated but it makes it easier to write this in RDF/XML.
	a event:Event ;
	event:time [
		a tl:Interval ;
		tl:at "2008-06-12T12:00:00"^^xsd:dateTime ;
		tl:duration "PT1H"^^xsd:duration
	] ;
	event:place [
		geo:lat 48.402495 ;
		geo:long 2.692646
	] ;
	event:factor :mytv , :mybeer ;
	dct:description "Havin' a Bud, watchin' a game"^^xsd:string
] .

I really like this ontology and think it should deserve way more attention. :-)

Regards,
  Simon

[1] http://blogs.sun.com/bblfish/entry/rdfauth_sketch_of_a_buzzword
    rdfs:seeAlso <http://blogs.sun.com/bblfish/entry/foaf_ssl_creating_a_global> . 
[2] http://motools.sourceforge.net/event/event.html

Gmane