# Joe Presbrey  <presbrey@mit.edu>
# 2007/11/02
diff -urN mod_virgule_base/acct_maint.c mod_virgule/acct_maint.c
--- mod_virgule_base/acct_maint.c	2007-11-02 19:54:40.000000000 -0400
+++ mod_virgule/acct_maint.c	2007-11-02 19:32:02.000000000 -0400
@@ -57,6 +57,7 @@
   { "Surname first?", "snf", 40, PROFILE_PUBLIC | PROFILE_BOOLEAN },
   { "Email", "email", 40, 0 },
   { "Homepage URL", "url", 40, PROFILE_PUBLIC },
+  { "FOAF URI", "foafuri", 40, 0 },
   { "Number of old messages to display", "numold", 4, 0 },
   { "Notes", "notes", 60015, PROFILE_PUBLIC | PROFILE_TEXTAREA },
   { "Syndicate your blog from another site?", "syndicate", 40, PROFILE_PUBLIC | PROFILE_BOOLEAN | PROFILE_SYNDICATE },
diff -urN mod_virgule_base/foaf.c mod_virgule/foaf.c
--- mod_virgule_base/foaf.c	2007-11-02 19:54:40.000000000 -0400
+++ mod_virgule/foaf.c	2007-11-02 19:48:13.000000000 -0400
@@ -56,7 +56,7 @@
   xmlDocPtr foaf, profile, staff;
   xmlNodePtr tree, ptree, tmpnode;
   char *givenname, *surname, *trustref;
-  char *db_key, *name, *url, *label, *email, *emailsha1;
+  char *db_key, *name, *url, *foafuri, *label, *email, *emailsha1;
 
   db_key = virgule_acct_dbkey (vr, u);
   if (db_key == NULL)
@@ -77,6 +77,7 @@
   xmlSetProp (foaf->xmlRootNode, (xmlChar *)"xmlns:rdf", (xmlChar *)"http://www.w3.org/1999/02/22-rdf-syntax-ns#");
   xmlSetProp (foaf->xmlRootNode, (xmlChar *)"xmlns:rdfs", (xmlChar *)"http://www.w3.org/2000/01/rdf-schema#");
   xmlSetProp (foaf->xmlRootNode, (xmlChar *)"xmlns:foaf", (xmlChar *)"http://xmlns.com/foaf/0.1/");
+  xmlSetProp (foaf->xmlRootNode, (xmlChar *)"xmlns:owl", (xmlChar *)"http://www.w3.org/2002/07/owl#");
 
   givenname = virgule_xml_get_prop (p, ptree, (xmlChar *)"givenname");
   surname = virgule_xml_get_prop (p, ptree, (xmlChar *)"surname");
@@ -107,6 +108,15 @@
   tmpnode = xmlNewChild (tree, NULL, (xmlChar *)"foaf:member", NULL);
   xmlSetProp (tmpnode, (xmlChar *)"rdf:resource", (xmlChar *)"#me");
 
+  foafuri = virgule_xml_get_prop (p, ptree, (xmlChar *)"foafuri");
+  if (foafuri != NULL && strlen(foafuri))
+    {
+      tree = xmlNewChild (foaf->xmlRootNode, NULL, (xmlChar *)"rdf:Description", NULL);
+      xmlSetProp (tree, (xmlChar *)"rdf:about", (xmlChar *)foafuri);
+      tmpnode = xmlNewChild (tree, NULL, (xmlChar *)"owl:sameAs", NULL);
+      xmlSetProp (tmpnode, (xmlChar *)"rdf:resource", (xmlChar *)"#me");
+    }
+
   /* Generate the Person section */  
   tree = xmlNewChild (foaf->xmlRootNode, NULL, (xmlChar *)"foaf:Person", NULL);
   xmlSetProp (tree, (xmlChar *)"rdf:about", (xmlChar *)"#me");
