Give yourself a URI
Do you have a URI for yourself? If you are reading this blog and you have the ability to publish stuff on the web, then you can make a FOAF page, and you can give yourself a URI.
A lot of people have published data about themselves without using a URI for themselves. This means I can't refer to them in other data. So please take a minute to give yourself a URI. If you have a FOAF page, you may just have to add rdf:about="" and voila you have a URI http://example.com/Alan/foaf.rdf#ABC. (I suggest you use your initials for the last bit). Check it works in the Tabulator.
The URI will start with "http" (so I can look it up using HTTP) and it will have # in it, so the URI of your foaf file is different from the URI for you.
Me, I make my foaf file in N3 and convert it to the foaf file in RDF. that's my choice.
The AWWW says that everything of importance deserves a URI. Go ahead and give yourself a URI. You deserve it!
Absoluetely not -- your URI is http://example.org/Allan/foaf.rdf#ABC. It is only known as within that file. When I refer to it I declare a namespace prefix (say alan:) to be the namespace "http://example.org/Allan/foaf.rdf#" and then in your URI can be written alan:ABC.
There are a number of ways to make a foaf file. The foaf-a-matic scripts are amongst the most widely used, see http://www.ldodds.com/foaf/foaf-a-matic.html
I think http://example.com/Alan/foaf.rdf#ABC isn't a good example of "Cool URI". What the URI should have only implied is that the resource is Alan's profile, possibly with relationships with some of his friends. Both 'foaf' and 'rdf' are just one of the possible formats of a profile, not the content or entity of the resource. How about changing the URI to something like: http://example.com/Alan/#ABC
Giving oneself a URI is one thing: I can use tag:trashpunkkidz.iq,2001-06-05:Reto to refer to myself, tag URIs are guaranteed to be permanent, as opposed to http://trashpunkkidz.iq/kidz#reto which may point to a completely different page when the iq top level domain will finally be operational again (please don't blame me, I did try hard keeping the URL cool and unchanging)- the tag-uri however doesn't help tabulator getting more triples about me.
I may prefer to refer to myself with urn:urn-5:-URS6S2A3+chjjHVlTkQ9KT5nu2 at a later point in my live (to reflect my more serious attitude) which is not a fundamental problem as different URIs can refer to the same resource and OWL provides means to deal with this. However, if multiple parties who store information about me start assigning me different URIs, I may get named by quite a lot of them. Aggregators should keep track of all of them, as they otherwise may be unable to match new triples with me. The call-center agent's question "Could I have your URI please?" could quickly become a nightmare.
Most persons I've been describing in RDF using the FOAF vocabulary did not have a PersonalProfileDocument (in my knowledge), most of them have a personal email address which can be used to unambiguously identify them by means of the foaf:mbox property, for each of them I created a web-page of which they are the foaf:primaryTopicOf, I need such pages as location for accessing and editing the information I have about them. By being an IFP foaf:primaryTopicOf does the job of unambiguously identifying the person, however the semantics of the property may give an aggregator hints to decide whether that property needs to be stored and transmitted as a way of identification or not. It may be reasonable to drop an IFP pointing to a page which could not be resolved for years of a person identifiable by other IFPs (or at least try others first, when the call-center agent want to look me up). Not so with multiple URIs naming the person, there's no way to decide if http://my.opera.com/kjetilk/xml/foaf/#kjhkjh or http://trashpunkkidz.iq/kidz#jklkj is the address that is more likely to be understood.
I use another sollution. I created a PURL (purl.org) pointing to my FOAF profile (http://purl.org/jspetrak/profile-foaf) and in that a resource with ID #dj. Then my URI is http://purl.org/jspetrak/profile-foaf#dj. Is it good or bad sollution. IMHO it keeps the URI really persistent.
I just tried it in the tabulator and it looks fine. I was a little worried about interactions between redirections and fragments, but the tabulator seems to get it right.
Purls are great for persistence, indeed.
I find it useful to do processing on my foaf file(s) even without format conversion.
- My foaf data is actually split in two: one bit of information which I include into other semweb documents, which contains my
nameandmbox_sha1sumproperties, and another bit which describes my relationships to other people. The foaf file I publish consists of the union of these two files. - More importantly, my foaf documents include a great deal of private information (mostly in the form of comments showing the email addresses I have published the hashes of). I use XSLT to delete the not-for-publication bits before signing and publishing my official self-description.
I could do this with cwm but haven't yet figured out how to make it do exactly what I need. I hope to do so soon, because of the limitations of what I can do easily in the XSLT.
I'd like to point out that the Opera Community gives all users a URI. All the users needs to do is to register. The URI is not particularly good, due to design constraints that predate me, but it is a URI that can be used in many different contexts as users see fit.
Yes, http://my.opera.com/kjetilk/xml/foaf/#kjetilk works quite nicely in the tabulator.
Hmm... the links to other people don't seem to expand, even when I load the seeAlso link. I wonder if smushing isn't working quite right or something. Ruth? Any ideas?
My.Opera uses some slightly unusual (but I believe correct) RDF structures inside the FOAF file to point to your friends. Maybe the JS parser doesn't get this...
Here is another FOAF Tutorial
http://bulat.name/tutorials/FOAFtut/eng/
Putting personal information such as your email address and/or your home address on a potential hostile enviroment like internet, doens't seem like a very smart thing to do.
Not necessarly the email address - you could as well use an SHA-1 crypto-key of it and have URI like:
urn:foaf:3b0c3795b1496c64d621e5c5094adc74528b7dcd
The principle would work anyway. But having a human understandable version of it would help.
The URI will start with "http" (so I can look it up using HTTP) ...
Inside my FOAF PPD the foaf:Person pointing to me has been using a URI (technically a URN) for quite a while now.
The URI is like
urn:foaf:areggiori@webweaving.org
inside an rdf:about attribute (FOAF spec does not force foaf:Person to be a bNode though). It is easy to write and just prefix the user preferred email-address.
For some explaination why is so and see what we have been doing at Asemantics with URI/URN resolution in relation to FOAF and RDF see:
http://foaf-demo.asemantics.com/
Basically having a URN is easy to attach for example a DNS based DDDS service to it. For an example resoltion see:
http://demo2.asemantics.com/biz/rdfa/walker.pl?urn:foaf:areggiori@webweaving.org
I don't see it in the URN namespace registry run by IANA.
I think you're squatting in URI space.
Isn't there a good tutorial for dummies anywhere?
There are a number of ways to make a foaf file. The foaf-a-matic scripts are amongst the most widely used, see http://www.ldodds.com/foaf/foaf-a-matic.html
It doesn't (per tim's post) give you a way to make a URI for yourself.
One way is to take the line:
foaf:maker rdf:nodeID="me"
and write rdf:resource="#me" instead, and the line:
foaf:primaryTopic rdf:nodeID="me"
...becomes foaf:primaryTopic rdf:resource="#me"
Finally the line:
foaf:Person rdf:nodeID="me"
...becomes
foaf:Person rdf:ID="me"
(I've omitted the angle-brackets in the tags here as I don't know how this blogging tool will handle them).
We could ask Leigh to integrate this sort of thing into foaf-a-matic directly, ... users shouldn't have to worry about such detail...
As suggested by Dan Brickley, I've updated the FOAF-a-Matic to automatically assign URIs for the people it describes.
At least, it does for the "primary person". For now you still need to include an email and seeAlso link to refer to friends.
http://www.w3.org/People/Berners-Lee/card.rdf#i comes from the .rdf version, but I see @prefix card: <#> in the .n3 version, so http://www.w3.org/People/Berners-Lee/card.n3#i is another URI you've given yourself. And due to the w3.org server set-up,
http://www.w3.org/People/Berners-Lee/card#i
is another.
Perhaps the "generate RDF from N3" wrinkle belongs in a separate item, where you explain how to use @prefix : <card#> and maybe xml:base to be format-agnostic and consistently use
http://www.w3.org/People/Berners-Lee/card#i?
Good catch. I've fixed the file now so that whatever URI you use, the URI the file talks about is always http://www.w3.org/People/Berners-Lee/card#i .
This is the one which should always be used. The URIs with ".rdf" or ".n3" in should only be used in the rare case that you want to refer actually to a particular representation of the data. They are exactly equivalent logically.
The FOAF site is actually www.foaf-project.org if you want to find how to make your own homepage on the semantic web.
1. The foaf.org web site is dead.
2. Your initials? First 17,576 people are the winners then.
3. your e-mail address block is too small. My address is 46 characters long.
1. Good catch. Fixed link to foaf-project.org. Thanks.
2. Absoluetely not -- your URI is http://example.org/Allan/foaf.rdf#ABC. It is only known as <#ABC> within that file. When I refer to it I declare a namespace prefix (say alan:) to be the namespace "http://example.org/Allan/foaf.rdf#" and then in your URI can be written alan:ABC.
3. In the tabulator? The tabulator just uses HTML tables. It shouldn't be truncated. It it wraps because screen space is tight, it should still cut and paste OK. And you can stretch the tabulator window to give everything more space.
I think he means in your comment form. The maxlength of the email field is 40 characters.


Tim -
First of all, wow, thanks for everything you have done. You have given the world so much. Which, makes what I am about to ask you insanely rude, but you are such a role model, I must give it a try.
Please consider removing the commercial clause from your already very generous creative commons license and replacing it with the attribution requirement, only http://creativecommons.org/licenses/by/2.5/.
If Tim Berners-Lee liberates his work in that manner, many others will boldly follow your lead. Having that type of freedom to use the expressions and ideas of others will only serve to further accelerate the already rapid development of knowledge kicked off by your innovation, the WWW.
Kind regards,
Amy