FOAF is a rich internet application that makes it easier to share and use information about people and their activities, to transfer information between Web sites, and to automatically extend, merge and re-use it online. FOAF-O-Matic is an interface for creating and updating FOAF profiles, extended by the OKKAM infrastructure, for issuing "friends" with globally unique identifiers. All these actions are performed just with a few mouse clicks.

Features
- graphic interface to ease the creation of FOAF RDF files
- easily adding friends to your profile with OKKAM and Sindice
- creating your own OKKAM ID on the fly!
- uploading and updating already defined FOAF profiles
- personalizing a user’s description
- visualization of RDF FOAF Profile code
- importing of vCard(s)
- importing of friend's FOAF profile
Technology
This Rich Internet Application is created using:
- IceSoft IceFaces 1.8.2
- Sun JSF RI
- Facelet
- RDF handling is supported by Jena
- JCraft JSch (Java Secure Channel) for remote profile upload
- ENS Public Client library
Idea: Paolo Bouquet
Developer: Stefano Bortoli
Try it or learn more about it reading the detailed description below.
Detailed Description
Foaf-O-matic is a Rich Internet Application based on Icesoft Icefaces 1.8.2 J2EE AJAX framework, that enables users to manage their social network profiles. A user can create, load and edit the personal social network profile, and integrate OkkamId retrieved through guided interaction with an Entity Name System.
![]() |
| Fig 1 A View of Foaf-O-Matic |
As it is possible to see in Figure1, the application allows to describe the profile of the primary person in the left part ("me"), and describe and edit a list of friends in the right one ("my friends").
Each friend, as the primary person, can be described with an arbitrary number of FOAF attributes (point 3 in Figure 1). The FOAF ontology is constantly under evolution and in the FOAFcommunity every day there is a new discussion about the introduction of new attributes and properties or modification of existing one. For this reason we decided to make available for description only the attributes considered stable. This is done with the aim of generating RDF FOAF profiles that keep their compliance with the FOAF ontology as much as possible in time. The menu placed in the header of the application offers access to several functionalities. For example, it is possible to load a FOAF profile from local machine and remote location through the load FOAF profile panel (see Figure 2). If the loaded file contains a valid FOAF profile, all the information contained in it are loaded in the description forms as shown in Figure 1 and are ready for editing. The user can assign globally unique identifiers to the people described in the profile, add edit and remove friends' description.
The menu placed in the header of the application offers access to several options. For example, it is possible to load a FOAF profile from local machine and remote location through the load FOAF profile panel (see Figure 2). If the loaded file contains a valid FOAF profile, all the information contained in it are loaded in the description forms as shown in Figure 1 and are ready for editing.
![]() |
| Fig. 2 Import FOAF Profile |
If you don't have already a FOAF profile, you can simply start creating one from scratch. First of all you have to describe yourself (in the 'Me' input form) by editing all the input fields you would like to include in your FOAF profile that, remember, will be publicly available.
![]() |
| Fig 3 Primary person description form |
After you edited yourself, you should perform the fundamental step of OKKAMIZING YOURSELF by finding the Okkam Id for you. For this aim, you can load the Okkam Search form and inquire the ENS to find your Okkam Id. If you don't have one, you can create one with the EnsWebToolkit. At the end of the process you should have an Okkam Id integrated in the form describing yourself.
![]() |
| Fig. 4 Search in the ENS |
After you described yourself, you should add, editing and Okkamize also all the friends you want to include in your FOAF profile. Remember: FOAF is about friends, FOAF is about social network.
![]() |
| Fig 5 Manage friend description |
It is very important that you OKKAMIZE also all your friend. This process will guarantee a smooth, frictionless integration of all the FOAF profiles in a pure Semantic Web/Linked Data spirit. The process of okkamization of your friends is the same as the one you did for yourself. You have to search in the ENS for the identifier for your friend, if you can recognize the entity profile for the friend you are okkamizing, you can simply select it and use it in your FOAF profile. Otherwise, you can proceed in creating an Entity Profile for your friend using the EnsWebToolkit as described above.
In order to speed up the social network definition process, it is possible to add description of friends by loading their vCard (or list of vCards), or their FOAF profile. Importing person description from vCards required a mapping between the vCard schema (http://www.w3.org/TR/vcard-rdf) and the FOAF ontology (http://xmlns.com/foaf/spec/). When user imports the FOAF profile of a friend, it is possible to import also of 'friends of a friend' descriptions. Namely, a user can load the FOAF profile of a friend (if publicly available) and add the description of the common friends to his/her own profile (see Figure 10).
![]() |
| Fig 6. Import Friends Of A Friend |
The last version of the application supports also the option of sending via email a FOAF profile. In order to guarantee transparency, it is possible to visualize at any moment the RDF FOAF code corresponding to the current state of the social network profile (see Figure 7).
![]() |
| Fig 7. Visualize FOAF RDF code |
Once the editing operations are complete, it is possible to save the FOAF profile on local machine ( see Figure 8)
![]() |
| Fig 8 Save on local machine |
or post it on a remote location via SFTP connection (see Figure 9).
![]() |
| Fig 9 Save on remote machine |














