I’ve just released the first pre-alpha (if there is such a thing) version of the semantictweet service.
Basically, it generates a FOAF RDF document for you from your list of Twitter friends and followers. It does this using the Twitter REST API. This service uses public Twitter data only, and so doesn’t need your Twitter username or password.
One of the benefits of this approach is that it ensures that you don’t have to build and maintain your FOAF file by hand, which is a real pain - this service will dynamically generate it each time its queried.
There’s plenty more to do, and plenty of ways in which Twitter data can be presented in a semantic web way, to allow more and interesting documents to be produced, so watch this space.
June 25th, 2009 at 10:10 pm
“I express my network in a FOAF file and that is the start of a Revolution” said TBL here http://dig.csail.mit.edu/breadcrumbs/node/215 - which I want to happen.
So in an effort to make myself machine accessible I expressed my profile here http://www.realtea.net/Xpose_Me_Lightly - in an experiment to publish better data about myself in the hope that I can help marketers tune their messages to me - part of my projectVRM activity.
So when I create a FOAF file for myself, I want to be able to distinguish between my business contacts, personal friends, and online acquaintances. I consider the followers on Twitter online acquaintances - many of whom I have never met in person or even interacted with.
So reviewing the FOAF file generated by SemanticTweet, I felt I needed to better qualify the class.
Maybe it needs a subclass of that expresses what type of relationship I have - the comment from the FOAF site says:
“To provide additional levels of representation beyond mere ‘knows’, FOAF applications can do several things.
They can use more precise relationships than foaf:knows to relate people to people. The original FOAF design included two of these (‘knowsWell’,'friend’) which we removed because they were somewhat awkward to actually use, bringing an inappopriate air of precision to an intrinsically vague concept. Other extensions have been proposed, including Eric Vitiello’s Relationship module for FOAF.
In addition to using more specialised inter-personal relationship types (eg rel:acquaintanceOf etc) it is often just as good to use RDF descriptions of the states of affairs which imply particular kinds of relationship. So for example, two people who have the same value for their foaf:workplaceHomepage property are typically colleagues. We don’t (currently) clutter FOAF up with these extra relationships, but the facts can be written in FOAF nevertheless. Similarly, if there exists a foaf:Document that has two people listed as its foaf:makers, then they are probably collaborators of some kind. Or if two people appear in 100s of digital photos together, there’s a good chance they’re friends and/or colleagues.
So FOAF is quite pluralistic in its approach to representing relationships between people. FOAF is built on top of a general purpose machine language for representing relationships (ie. RDF), so is quite capable of representing any kinds of relationship we care to add. The problems are generally social rather than technical; deciding on appropriate ways of describing these interconnections is a subtle art.”
(http://xmlns.com/foaf/spec/#term_knows)
I followed the Eric Vitiello link - that provided this:
Abstract
relationship is a module for extending the usefullness of the foaf:knows element. This is accomplished by aliasing the foaf:knows element into elements that describe the relationship between people in more detail.
The RDF Schema properties
* rel:friendOf
* rel:acquaintanceOf
* rel:parentOf
* rel:siblingOf
* rel:childOf
* rel:grandchildOf
* rel:spouseOf
* rel:enemyOf
* rel:antagonistOf
* rel:ambivalentOf
(http://www.perceive.net/schemas/20021119/relationship/)
So the Twitter friends may be acquaintanceOf. What do you think?
July 1st, 2009 at 2:45 pm
I’m pretty judicious about who I follow, but still among those I follow are some organisations - they aren’t people.
Just because I follow someone doesn’t mean I know them or am even acquainted with them.
If I have DM ‘ed them then its more likely I know them.
If we have send @messages to each other then, maybe its more likely I know them too.
If they follow me back then it more likely I could claim they know me.
How could the control be more granular?
I am sure you have grappled with all of these, but still I think its a great FOAF generator, at the end of the day I can elect to edit it myself (as in remove some rather than add).
So how could you help me to do that?
If I elect to move the FOAF file to my own website, can you remind me each month to go and update it from my current follow-list?
(perhaps a 1st of the month reminder I can “follow” e.g. @semantic_tweet_monthly )
Neat trick, I like it.
July 6th, 2009 at 11:50 pm
Paul,
thanks for the feedback and suggestions.
To be honest, I don’t expect to be doing reminders of the kind that you propose. I’m afraid that this looks like too much work for what is simply a small project that I run on my own time for the benefit of anybody who might get use from it.
From my point of view, the real benefit of a service like this is that it can be linked to directly, and doesn’t have to be cut and pasted into some larger document.
Of course, this raises the issue that you have correctly identified - namely that simply because you follow somebody on Twitter doesn’t mean that you ‘know’ them.
One could imagine how control could be made more granular. One suggestion that I received was to make a method that showed the intersection of your followers and followees (if that’s a word), which might be a greater indication that you ‘know’ them. Or you could go deeper again, as you have suggested, and looks for signs of interaction through DMs, @messages, and the like.
Ultimately, these are all likely to be unsuccessful, my idea of a friend, as codified in SemanticTweet, or any FOAF generating web service, is likely to be different to yours or anybody elses. The FOAF spec itself is deliberatly vague on the use of the
foaf:knowspredicate. To quote:Anyway, hopefully you find that SemanticTweet to be a somewhat useful and interesting tool, and can exploit and extend it in interesting ways.