Archive for November, 2004

#rdfig is now #swig

Tuesday, November 30th, 2004

Semantic Web Interest Group IRC Scratchpad

eg. I’ve just (after logging in with “/msg nickserv identify …”) done “/msg nickserv set url http://danbri.org/”. It’s easy. And fun. And educational. Msg nickserv today!

I’ve just registered my nick "sethl" to the url http://www.picklematrix.net/.

So go on with your bad self, DanBri, start scuttering!

Also, might as well create HTML links from nicks in the Semantic Web Interest Group Scratchpad logs using this new URL info. Or, first get my FOAF, and use that link.

Began Foafverse

Sunday, November 28th, 2004

Tonight I began work on Foafverse. Foafverse is my answer to FOAF Explorer. FOAF Explorer is nice, but works via XSLT. RDF’s serialization into XML is messy at best, and never consistent. The XSLT sheets from Explorer seem to work OK if all FOAF is formatted the same in XML. RDF in XML, as we all know, can’t be predicted. This serialization shortcoming is a minus (minus in that RDF as XML can’t play well the the zillions of XML tools and pipelines out there).

Anyhoot, to properly do a RDF powered site, we have to work at the Graph level. So Foafverse uses Jena so that all work is done with graphs and triples. As long as the FOAF can be parsed as RDF/XML, then we’re cookin’ with statements.

For extra buzzworthy-ness, Foafverse uses Spring Framework to wire everything together. It also is helping as I create nice Bean utility classes for working with Jena.

What will Foafverse do? Merely load in FOAF, save it, periodically refetch it, and query it. But working at the graph level is very liberating.

Done: Loading of FOAF into Jena and its persistent (into MySQL) Models. Querying the FOAF for persons. Webapp framework built, ant scripts, Spring application context, deployments, etc. JSPs, controllers, facade layers, etc all exist now.

TODO: shucks, tons. First up: smushing based on RDFS for FOAF plus extra OWL goodness. We have all this FOAF now, let’s place on RDFS and OWL to connect the dots. Stress test Jena’s support for inferencing.

My First MovableType Plugin

Saturday, November 27th, 2004

I wrote my first MovableType plugin tonight. It’s the MTSha1 Plugin. It allows you to generate a SHA1 sum of the body of the <MTSha1></MTSha1> tags. I created this to generate foaf:mbox_sha1sum properties for comment authors. And the best part is, I’m pretty sure it’s working correctly. :)

Better Comments RDF for MT Blogs

Saturday, November 27th, 2004

In the never-ending effort to get more triples into the world, I’ve cleaned up the comments RDF that can be found in my RSS 1.0 Feed.

Now, the authors of the blog comments are foaf:Person. For extra smushing pleasure, we also have a foaf:mbox_sha1sum of the author. So we should now be able to tell, through an InverseFunctionalProperty, who exactly wrote the comment.

I had to add a new property, blogcomments:hasComment, to link an entry to a comment.

Comments? Thoughts?

Use Case: “Allow people to comment on my blog who have successfully commented on blogs found in PlanetRDF.org”

Upgraded to MovableType 3.121 and TypeKey

Saturday, November 27th, 2004

Spent tonight upgrading to MovableType and TypeKey.

I finally got fed up with deleting spam comments, even with MT-Blacklist on. In one day I had over 100 comment spams.

So, with TypeKey, that should all stop. I feel bad for those that want to leave comments, but don’t have a TypeKey account, though. Comments are what make blogs interesting (otherwise it’s just Soapboxlog). So hopefully TypeKey has critical mass to use.

I’ve thought about How FOAF and SemWeb can help the blog comment problem before. Not sure if that’s relevant anymore. I would hope that all this FOAF and semweb technologies could help to solve this problem.

Anyhoot, looks like we’re back in business. I still have FOAF linked to every page. And my RSS 1.0 Feed still has RDF triples describing the comments. I think I need to update it now to include FOAF.

If other blogs included RDF about comments, and their authors, we could get a real trust network going with a context of “allowed to post in blogs”.

New FOAF Property : foaf:hasPersonalProfileDocument

Wednesday, November 24th, 2004

While there exists a way, in FOAF, to say “There is a Personal Profile Document that has a primary topic of XXXX Person”, there doesn’t seem to be a way to say an inverse.

I wanted to say “Person XXXX has a Personal Profile Document at http://www.example.org/foaf/392j92j3″.

There is a foaf:primaryTopic property, but there isn’t an inverse. Also, it’s domain is foaf:Document, which is too broad. I really want to link a foaf:Person to a foaf:PersonalProfileDocument.

So I’ve embedded the following RDF into all the Flickr FOAF:


<rdf:Property rdf:about="http://xmlns.com/foaf/0.1/hasPersonalProfileDocument">
<rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person" />
<rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/PersonalProfileDocument" />
</rdf:Property>

Thoughts?

Better FOAF For Flickr

Wednesday, November 24th, 2004

After some advise from Danny and Phil, I’ve reworked the Flickr FOAF a bit. I’ve had to pull info from three different URIs (including their Flickr Services) to assemble this FOAF.

FOAF for Flickr User Seth Ladd

The major new differences:

  • nick
  • name
  • complicated, but accurate, link to user’s Flickr homepage. This is now a IFP
  • more links to Flickr and its homepages
  • no rdf:about for the actual foaf:Person Resource. Is this correct?
  • foaf:PersonalProfileDocument elements to link to other FOAF

Wish I had access to the emails, or at least the mbox_sha1sums, to add yet another IFP. So far we have just Flickr’s Profile page, but foaf:nick isn’t too bad.

Adobe XMP Specification

Wednesday, November 24th, 2004

Just a note for me to remember, but whatever RDF/XML Flickr might choose to export about its photos, they should use the Adobe XMP Specification.

Looking for a New Blog System

Wednesday, November 24th, 2004

I received word that my current blog setup can’t take comments (of any type) or apparently TrackBacks. sigh. In my quest to rid spam in my blog comments, I managed to kill discourse. Hope that’s not an omen!

I think it’s time to upgrade this blog system. Any suggestions? Not that my comments system will allow feedback. :(
My requirements:

  • A wiki-esque input system, to rid myself of typing tags.
  • Good SemWeb Support: FOAF and RDF of everything.
  • Good Spam Filtering
  • The usual: comments, trackback, categories, etc
  • Simple Setup
  • Import of all my current MovableType posts

In the meantime, off to fix comments for the non-spammy.

UPDATE: I removed the uber-greedy spam filter regex that was causing the problems. Because emails are required, they were setting off the alaram. Good thing I’m in Hawaii, where we love Spam.

Danny Read My Mind

Wednesday, November 24th, 2004

Danny Responds to Flickr FOAF

Danny read my mind. I was wondering how best to say, in FOAF, "This is a person, who has a homepage at Flickr". I didn’t want the object of the <foaf:Person> statement to be the URI to the Flickr User’s homepage. Then it makes it sound like the homepage is a Person.

Danny thought outloud:

Person serviceID _:x
_: service http://flickr.org
_: serviceName "flickr"
_: identifier uri

So, the question is… what is the object in the statement for <foaf:Person>? A URI to a person? Do people have URIs? Or just to a resource that represents the person? In which case, the Flickr profile page would be good enough. And, luckily, through some OWL and mbox_sha1sum, we can uniquely identify the person regardless of their URIs.