Showing posts with label foaf. Show all posts
Showing posts with label foaf. Show all posts

Monday, November 08, 2010

Rapportive

Rapportive is a plugin for gmail, which trawls the social graph.

I would class it as one of the few applications which makes use of foaf (perhaps more the ideals than the direct execution); but it lets you view someone's connectivity to you on the social web.

Sunday, April 05, 2009

FOAF from Freebase

I made a quick FOAF from Freebase application.

Here's mine.

You just pass in an ID and out comes RDF/XML. It's limited to things typed as people.

This will help mend the gap between freebase RDF and common vocabularies, and was pretty easy to do - what other RDF vocabularies exist out there which would be nice to map onto freebase?

Thursday, March 13, 2008

Fire eagle

Andrew points to Fireeagle.

It's a geotwitter, basically - applications can read and write information for "where is user X now".

This is the web 2.0 version of menow.

Neat.

Monday, March 10, 2008

A stupid OpenID question

I am only dimly aware of what openid is/how it works.

All of a sudden I've got a livejournal, blogger, and flickr openid. So how would I merge them?

For instance, I log into a foo.com via the livejournal openid to leave a comment. The next time I log in, about 3 months later, its via my blogger openid.

I'm the same person, but how do I tell foo.com that?

The only answer I really have is "OpenID + FOAF", but only livejournal and one or two others bother outputting this.

Monday, October 23, 2006

Drupal 4.7 and the foaf.module

I wanted the foaf module for drupal on 4.7; so instead of being a whinger; I just went out and did it.

Here's the patch:

Index: modules/foaf/foaf.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/foaf/foaf.module,v
retrieving revision 1.13
diff -u -r1.13 foaf.module
--- modules/foaf/foaf.module 12 Jul 2006 17:13:51 -0000 1.13
+++ modules/foaf/foaf.module 23 Oct 2006 13:21:35 -0000
@@ -1,5 +1,5 @@
<?php
-// $Id: foaf.module,v 1.13 2006/07/12 17:13:51 walkah Exp $
+// $Id: foaf.module,v 1.6.2.4 2005/11/29 18:22:34 walkah Exp $

/**
* Implements hook_help
@@ -11,8 +11,8 @@
$output .= '<p>'. t('The FOAF module allows users to export FOAF documents based on their profile information. It also allows users to import profile information from external FOAF files, and even includes an option to let profiles auto sync when using distributed authentication. The FOAF module can export your buddy list if the buddy list module is enabled. You can download FOAF files in the view tab of a user profile if FOAF is enabled.') .'</p>';
$output .= t('<p>You can</p>
<ul>
-<li>read the <a href="%external-http-en-wikipedia-org-wiki-FOAF" title = "explanation of FOAF from wikipedia the free encyclopedia">FOAF wikipedia explanation</a>.</li>
-<li>read the <a href="http://www.socialtext.net/foafnet/index.cgi?basic_specs" title = "a programmers level description of this social networking standard">FOAFNet specificiation</a>.</li>
+<li>read the <a href="%external-http-en-wikipedia-org-wiki-FOAF" title="explanation of FOAF from wikipedia the free encyclopedia">FOAF wikipedia explanation</a>.</li>
+<li>read the <a href="http://www.socialtext.net/foafnet/index.cgi?basic_specs" title="a programmers level description of this social networking standard">FOAFNet specificiation</a>.</li>
<li>view <a href="%profile"> user profiles</a> and select a user to see their FOAF file.</li>
<li>enable the buddy list module at <a href="%admin-modules" > administrator >> modules</a>.</li>
', array('%external-http-en-wikipedia-org-wiki-FOAF' => 'http://en.wikipedia.org/wiki/FOAF', '%external-http-www-socialtext-net-foafnet-index-cgi' => 'http://www.socialtext.net/foafnet/index.cgi?basic_specs', '%profile' => url('profile'), '%admin-modules' => url('admin/modules'))) .'</ul>';
@@ -55,9 +55,15 @@
break;
case 'view':
drupal_set_html_head("\n".'<link rel="meta" type="application/rdf+xml" title="FOAF" href="'.url('foaf/'.$user->uid, NULL, NULL, TRUE).'" />');
- $output = '';
if (_foaf_allow_export($user)) {
- return array(t('Personal Information') => l(t('Download <acronym title="Friend of a Friend">FOAF</acronym>'), 'foaf/'.$user->uid, NULL, NULL, NULL, FALSE, TRUE));
+
+ $title = t('Personal Information');
+
+ $link = l('Download FOAF', 'foaf/'.$user->uid, NULL, NULL, NULL, FALSE, TRUE);
+ $output = array();
+ $output[$title][] = array('value' => $link);
+
+ return $output;
}
break;
case 'form':
@@ -69,31 +75,41 @@
}

function foaf_settings() {
- $output = '';
-
- $output.= form_radios(t('Export <acronym title="Friend of a Friend">FOAF</acronym> for users by default'), 'foaf_export_default', variable_get('foaf_export_default', 0), array(0 => t('no'), 1=> t('yes')), t('This can be overridden by individual users'));
+ $form = array();
+ $form["foaf_export_default"] = array();
+ $form["foaf_export_default"]["#title"] = t('Export <acronym title="Friend of a Friend">FOAF</acronym> for users by default');
+ $form["foaf_export_default"]["#type"] = 'radios';
+ $form["foaf_export_default"]["#default_value"] = variable_get('foaf_export_default', 0);
+ $form["foaf_export_default"]["#options"] = array(0 => t('no'), 1=> t('yes'));
+ $form["foaf_export_default"]["#suffix"] = t('This can be overridden by individual users');
+
+ $formItemTemplate = array('#type' => 'select');
+
+ $fields = array('foaf_name', 'foaf_title','foaf_firstName',
+ 'foaf_surname', 'foaf_Organization',
+ 'foaf_phone', 'foaf_aimChatID', 'foaf_icqChatID',
+ 'foaf_msnChatID', 'foaf_yahooChatID', 'foaf_jabberChatID',
+ 'foaf_workplaceHomepage');
+ $fields["vCard:Street"] = 'foaf_street';
+ $fields["vCard:Locality"] = 'foaf_locality';
+ $fields["vCard:Region"] = 'foaf_region';
+ $fields["vCard:PCode"] = 'foaf_pcode';
+ $fields["vCard:Country"] = 'foaf_country';
+ $fields["bio:keywords"] = 'foaf_keywords';
+
+ $form["settings"] = array("#title" => t('Field Mappings'), "#type" => "fieldset");
+ foreach ($fields as $name => $field) {
+ if (!is_string($name)) {
+ $name = str_replace('_', ':', $field);
+ }
+ $form["settings"][$field] = array_merge($formItemTemplate,
+ array('#title' => t('Field for ' . $name),
+ '#default_value' => variable_get($field, false),
+ '#options' => _foaf_profile_fields()
+ ));
+ }

- $mapping.= form_select(t('Field for foaf:name'), 'foaf_name', variable_get('foaf_name', ''), _foaf_profile_fields());
- $mapping.= form_select(t('Field for foaf:title'), 'foaf_title', variable_get('foaf_title', ''), _foaf_profile_fields());
- $mapping.= form_select(t('Field for foaf:firstName'), 'foaf_firstName', variable_get('foaf_firstName', ''), _foaf_profile_fields());
- $mapping.= form_select(t('Field for foaf:surname'), 'foaf_surname', variable_get('foaf_surname', ''), _foaf_profile_fields());
- $mapping.= form_select(t('Field for foaf:Organization'), 'foaf_Organization', variable_get('foaf_Organization', ''), _foaf_profile_fields());
- $mapping.= form_select(t('Field for foaf:phone'), 'foaf_phone', variable_get('foaf_phone', ''), _foaf_profile_fields());
- $mapping.= form_select(t('Field for foaf:aimChatID'), 'foaf_aimChatID', variable_get('foaf_aimChatID', ''), _foaf_profile_fields());
- $mapping.= form_select(t('Field for foaf:icqChatID'), 'foaf_icqChatID', variable_get('foaf_icqChatID', ''), _foaf_profile_fields());
- $mapping.= form_select(t('Field for foaf:msnChatID'), 'foaf_msnChatID', variable_get('foaf_msnChatID', ''), _foaf_profile_fields());
- $mapping.= form_select(t('Field for foaf:yahooChatID'), 'foaf_yahooChatID', variable_get('foaf_yahooChatID', ''), _foaf_profile_fields());
- $mapping.= form_select(t('Field for foaf:jabberID'), 'foaf_jabberID', variable_get('foaf_jabberID', ''), _foaf_profile_fields());
- $mapping.= form_select(t('Field for foaf:workplaceHomepage'), 'foaf_workplaceHomepage', variable_get('foaf_workplaceHomepage', ''), _foaf_profile_fields());
- $mapping.= form_select(t('Field for vCard:Street'), 'foaf_street', variable_get('foaf_street', ''), _foaf_profile_fields());
- $mapping.= form_select(t('Field for vCard:Locality'), 'foaf_locality', variable_get('foaf_locality', ''), _foaf_profile_fields());
- $mapping.= form_select(t('Field for vCard:Region'), 'foaf_region', variable_get('foaf_region', ''), _foaf_profile_fields());
- $mapping.= form_select(t('Field for vCard:Pcode'), 'foaf_pcode', variable_get('foaf_pcode', ''), _foaf_profile_fields());
- $mapping.= form_select(t('Field for vCard:Country'), 'foaf_country', variable_get('foaf_country', ''), _foaf_profile_fields());
- $mapping.= form_select(t('Field for bio:keywords'), 'foaf_keywords', variable_get('foaf_keywords', ''), _foaf_profile_fields());
-
- $output.= form_group(t('Field Mappings'), $mapping);
- return $output;
+ return $form;
}

function foaf_xmlrpc() {
@@ -349,6 +365,7 @@
while ($row = db_fetch_object($result)) {
$output[$row->fid] = $row->title;
}
+
return $output;
}

Sunday, January 16, 2005

Automatic Movie Ratings web service!

FilmTrust is a semantic web research project by Jen Golbeck. It's nifty and finally fills that void in my life where I want to share it all with the blogosphere.

To that end, I've written some very simple and poorly implemented base classes for PHP blogs. All you need is to install PEAR::XML_Serializer and extract some files, then you are off on the road to developing.

For a live demo, see my movies.

Download FilmTrust Webservices Kit.

As ever, the code is under the GPL.

For Non Geek Blogger


Do you want to get movie ratings and reviews on your site or blog? It's really simple!

  1. Sign up to FilmTrust and rate some movies.

  2. Add some code to your website or blog template.


    <script
    src="http://www.ahsonline.com.au/dod/filmtrust/example.php?
    user=[YourUsernameHere]
    &javascript=true">
    </script>





Note: The above Javascript will insert your movies as well as a small Google Adsense advertisement. Ensure that your blog host allows advertising (ie, livejournal does not). I request that you keep the advertising present. You don't have to if you don't want to. But while the code is free providing bandwidth and eating isn't.


Technorati Tags

PHP, Movies, Semantic Web, FOAF, FilmTrust, Blogging, Social Networks, Web Services.