Customize your FOAFMap account
If you’re using FOAFMap, you may be not satisfied with the current design, especially if you link the map from your website.
Now, you can add your own header, and also use your own CSS ! You just need to add some parameters at the end of your account url:
- http://foafmap.net/user/x/&css= will use the provided CSS instead of the current one;
- http://foafmap.net/user/x/&header= will display the given image instead of FOAFMap title;
- of course, you can mix both.
Tom - SemWeb Technologies Co-ordinator @ ESWC06 - is now using it for ESWC Organising Commitee and Delegates list. He has also setup really cool things for the conference: a Semantic wiki (using Semantic Mediawiki), a Semantic search engine … and a complete RDF description of the conference (schedules, people …). BTW, is there a SPARQL endpoint available ?
I won’t be there, unfortunately, but FOAFMap will be presented tomorrow morning during the Scripting Challenge session of SFSW06.
European streets on Google Maps
I’ve just discovered - via dowhatimean.net - that Google Maps now displays European street names!
The API has also be updated (you have to make the changes by yourself if you use it), and also offers nice features as tabbed infos windows or control maps.
I think this integration of European streets is really great, especially for services that allow to get location from maps, which couldn’t be done easilly before for European stuff. Actually, I was waiting for it for a service I’m currently rewriting from ning.com to Ruby on Rails: recordShops. I hope I can write about it (and release) soon.
Finally, I’ve upgraded FOAFMap and already existing maps to handle this new API. Here’s a list of changes you’ll certainly need to make to update your app:
gPoint(long, lat)=>gLatLng(lat, long)to create a point (be careful with the new args order which is really annoying when upgrading static data);map.getZoomLevel()=>map.getZoom()to retrieve current zoom level of the map;map.centerAndZoom(GPoint, ZoomLevel)=>setCenter(GLatLng, ZoomLevel)to center/zoom to the map
Tags: foafmap, geolocation, googlemaps
FOAFMap: RSS feed and about page
FOAFMap now gots an RSS feed of last created / updated profiles and a more complety about page.
I realised by looking at the feed that there can be multiple updates when people click a few times (I thinkà on map creation. I’ll add some test to avoid saving when nothing has changed.
Easy creation of FOAF groups
Largely inspired by Leigh Dodds‘ foaf-a-matic, here’s foaf:group-a-matic, a simple form-based tool to create a FOAF file for any group of people.
You can then use these group files in FOAFMap, instead of creating Frappr groups to geolocate some interests groups.
FOAFMap button
I’ve created a FOAFMap button using FOAF buttons and Adam Kalsey’s button maker, so that you can link your FOAFMap profile from your homepage, blog, or anything else:

Adding geolocation in FOAF files
If you plan to use FOAFMap, you certainly would like to add your coordinates to your FOAF file.
Richard Cyganiak created a nice script that gives you the code to add on your profile with a single-click on a Google Map. Well done !
You can also use this other FOAF geolocation tool, in which you type your address to get the required piece of code.
FOAFMap.net is online !
As I’m finally satisfied with the code I wrote, here’s a first public version of FOAFMap.net, a “not-beta Semantic Web2.0 geolocation mashup” (nice, isn’t it ?!).
Regarding the previous version of the tool, here are the main improvements:
- Support for Relationship vocabulary (that I introduced in PHOAF recently). So if you use
rel:xxxinstead offoaf:knowsto manage your friends, the tool will find them anyway; - Group management. As I explained here, PHOAF can handle
foaf:group, and this feature have been integrated into FOAFMap, so that you can use it to display communities. Thanx Tom for suggesting it; - Cache. As you may see, it can be really long to parse a file, especially when there are a lot of
foaf:knowsrelations. A cache system is now available, so that you can save the created map to display it more quickly later. Just check the appropriate checkbox when submitting your profile to enable. You’ll also be listed in users directory when using cache system. - Tags. FOAFMap.net automagically gets “Tags” from your FOAF profile. Actually, these tags are your
foaf:interest. Tags are identified and mapped thanks to their URI, as people can use different labels (withdc:title) for the same one; eg: FOAF, ”Friend of a Friend’ forhttp://foaf-project.org. And, indeed, you can see which profiles are related to a specific tag.
Well, as you can see, what was at the begining just a small script to render FOAF files on a GoogleMap is now an more complex (and friendly, I hope) tool that takes ideas from both Semantic Web and Web2.0.
I think this could be a Semantic Web answer to geolocation tools such as frappr.com. The main advantage is that you own the data, and the tool just display it. If your blogging software, or wiki, creates a personnal/group FOAF file, you can use the tool to locate people, but data is still yours.
Some may insist on the privacy point, as there’s no logging system. Yet, as all data displayed on the tool is publicly available on the web, I don’t think that’s an issue. Anyway, you can drop me a mail if someone else has listed your profile and you want to remove it.
Finally, I’ll submit FOAFMap.net to SFSW06 scripting challenge, and will certainly release code (GPL-ed), so that you can use for Intranet or private working groups.
Have fun !
Tags: foaf, foafmap, geolocalisation, phoaf, rdf, socialsoftware
PHOAF v0.3 and foafMap future
I’ve updated PHOAF in CVS last week-end, and also as a v0.3 release.
Here’s the changelog:
- First, a bugfix about PHP5 warnings in RAP, as it uses reference when calling some methods. I fixed it in v0.1 but forgot to do it when upgrading RAP to 0.9.3[1]. Thanx to Jean-Jacques for reporting it
- Removing all useless code from RAP, so that the API will be lighter to embed in other apps. By useless, I mean that PHOAF doesn’t need all the features that RAP offers, as infModel, resModel … I also removed the SPARQL + RDQL functions. Indeed, the aim of PHOAF is to provide an easy way to parse FOAF files, using only PHP objects and appropriate methods. IMHO, if a user want to use SPARQL on FOAF files, it means that he knows RDF and SPARQL, so he’ll have better to use RAP directly instead of PHOAF. The archive is now only 91K, while it used to be 544k for v0.2 !
- the methode FoafModel->root(), which is used when you want to get the primary topic of the file can now retrieve not only people, but also groups[2]
- As a consequence of the previous point, I added a
getResourceType()method forFoafResource, so that you can check if your PPD is aPerson, aGroup, or anything else actually.
So, indeed, I’ll move it into foafmap soon.
The main interest is that it will be able to manage group files, as Tom suggested me. Then, I’ll put an optional cache system (as retrieving informations from distributed FOAF files over the network is a bit long). I’ll also add a user account system, so that users will be available to update their cached result, maybe tag their profile (with tag detection from foaf:interests), etc …
I think it could lead to a SemWeb equivalent to Frappr!, where the main advantage is that you own your datas, and the app is just here to display it on a map. I think that’s really better, for privacy and for decentralized knowledge management. If you or one of your friend change location, you won’t have to modify anything, just update your FOAF profile, reload your foafmap page, and that’s ok !
Notes
[1] RAP v1.0 might be rewritten in PHP5
[2] BTW, please use personalProfileDocument and primaryTopic when you create a FOAF file. That’s the better machine-readable way to tell who is your FOAF file about
Tags: foaf, foafmap, geolocalisation, phoaf, rdf, socialsoftware
Foaf and Google Maps with foafMap
I mentionned about one month ago I wrote a frontend to RAP, called PHOAF, to easilly query FOAF files in PHP5.
Here’s the app I wanted to hack while starting the lib: foafMap, which displays users found in a FOAF profile on a Google Map.
This first version is really basic, but I plan to improve it in the future[1] (avatars, auto-zoom on main foaf user, expanding network …). And, also that’s a bit slow if you know a lot of people, as it fetch and parse each profile.
Yet, I think that’s another fun way to see how Semantic Web can help to share and re-use data among the Web.
Enjoy !
