The So(m)mer Address Book
The hyperdata Address Book project being developed here is meant to be the equivalent for foaf that BlogReaders are for RSS. It is a specialised Semantic Web browser that follows foaf documents around the web, building a distributed open social network. It is also a foaf editor, which you can use to publish your foaf files to an ftp/scp server.
With foaf you no longer need to worry about being kicked off your Social Network. You can own your web server/domain name or rent it from some trustworthy provider that allows you to publish anything you want. You could even put it on your home server linked to the internet. You can link to anyone wherever their server is and anyone can link to you. You can even publish any information you want. RDF is very flexible.
For a full explanation and demo of the Address Book see the full audio enhanced JavaOne 2008 presentation. For a list of blog posts on the subject see the addressbook tagged feed. And finally if you are new to the Semantic Web see this list of getting started with rdf resources.
Download the latest version (26 August 2008). Clicking that link should start Java Web Start. ( You need Java 6 for this to work ) If not please let me know what browser/os/java combination you were using.
Download, build and run the Address Book by typing the following commands (leave the password to the svn checkout blank). This currently requires Java 5 and 6.
> svn checkout https://svn.java.net/svn/sommer~svn/trunk sommer --username guest
> cd sommer/misc/AddressBook/
> ant run
ant run no longer works from the command line since adding Nasa World Wind. You will need to build using Netbeans 6.1 until I find out how to fix this JavaWebStart build problem... (I am investigating)
If you want to try the code out on different virtual machines then instead of
ant run execute
(note: no longer works for same reason as previous note above)
> ant jar
> java -jar dist/AddressBook.jar
Then you can just drag and drop the foaf file icon into the first column of the address book, and follow the distributed social network by pressing the space bar to get foaf files.
There are still a lot of missing features in this software. But you are welcome to help out in any way you can. This includes documentation, using it, feedback, blogging about it, helping out on the web site, code, etc. etc. I am very generous at giving people access to the repository, so just ask. Then add yourself to the list of participants:
There is a lot todo. Here are some ideas for the software side.
- Add a publish button (in the works)
- Add privacy protection for information. See Foaf&SSL: creating a global decentralised authentication system
- User Interface issues on howto deal with incompatible and false information. See "Beatnik: change your mind". That is a hard problem, so one needs to find simple solutions that work.
- Add detailed HTTP information using the Tabulator ontology, as described in a november post to the users mailing list.
- Build a cache browser so one can see where info came from. Would be really useful for debugging
- Add a Google Maps viewer so one can see where one's friends are using geo location information
- Add a setup wizard to help people put their own info online and specify their ftp/scp server.
- Make the data persistent by using the Sesame Native Database.
- Add more and better rules to help merge data better. Reasoning is currently done using Simon Schenk's Networked Graphs.
- Write/find specialised transforms to help read closed social networks such as LinkedIn.
- Add support for other document formats and ontologies such as vcard.
- Integrate with legacy calendaring tools from the operating system, such as Apple's Address Book. This will help make the data more useful as it will become accessible to other tools relying on those databases. Of course long term we really want a Semantic Desktop
- A little help documentation would be good
The web site could do with a lot of improoving. Some ideas on this level.
- We need a name and a logo. I think Beatnik is already trademarked. Other ideas?
- A good section explaining perhaps in more detail how it works from a users perspective. (Not too complex because that is going to evolve)
- Software documentation: If you start looking at the code, write down everything you found difficult to understand that you worked out, and try to explain it to yourself. Don't be worried of looking like a novice, you will only be a novice once :-) By writing it down you will make the life of those following you easier, and help the whole project move along. We need a little space somewhere here where we explain every piece of how the software works.
Here are just some projects working in the same space
- Knowee is a foaf server and aggregator. It should be able to work well with this project. The AddressBook could publish to knowee, and people could also edit their relations via its web interface. Knowee's list of market neighbors is a list of neighbors of this project too.
- The Semantic Desktop project can be thought of as generalising from the AddressBook. It is extracting the named graph store and making it available to every application.