Tagging demo with Freebase Suggest

I whipped up a quick example of tagging with Freebase Suggest.

This is just the client-side user interface. Integration with an existing tagging system is left as an exercise for the reader 😉

Screenshot of Tagging demo


12 Responses to Tagging demo with Freebase Suggest

  1. Will Moffat says:

    Skurt’s suggestion prompted me to make this demo.

  2. Skurt says:

    Freebase Suggested Metatagging

    As I am writing and coding on my thesis (vIdentity.de) I was looking for some help in IRC #freebase. Aomarks gave me the tip to try freebase-suggest. I did as told and suddenly there was a little flash.
    What about using this suggestions to provide tags…

  3. Ben Good says:

    Hi Will,

    We went ahead and conducted your exercise for the Connotea social bookmarking service. Let us know what you think!

  4. Jason Douglas says:

    Nice! Now we (Freebase, that is) just need to make it easier to add unreconciled tags to Freebase so the hitrate continually gets better.

    Are you still storing the tags as freetext or are you associating them with a Freebase id?

  5. Ben Good says:

    Yep.. I’d love to, for example, add a little widget to the bookmarklet that helped people build the tags they need into freebase right on the spot. If you make it we’ll stick it in 🙂

    The tags are stored in Connotea as normal strings, but they are also stored in our own RDF database (soon to be publicly reachable as a SPARQL endpoint – maybe today). ( We aren’t Connotea by the way, we are a grad student and a programmer at the university of british columbia). In the RDF database we store the links between the URIs for the tags in Connotea, the Freebase URIs and the Freebase Types. Hopefully we’ll be using this data to produce a more semantic experience when browsing tagged collections.

    I’d also like to use freebase (or some version thereof) as the tagging database… how about it? Want to compete with ZigTag?

  6. Will Moffat says:

    Hi Ben, I just got back from vacation and had a quick look at Entity Describer. Great work, that’s exactly what I was thinking about (although it’s a pity that Connotea doesn’t let you store the tag urls directly).

    Small problem: the bookmarklets on this page are broken.

    The widget idea for adding new tags is a good idea but would require careful implementation to avoid flooding Freebase with topics which are too lightweight.

    It would be really interesting to get a feed of commonly used tags which aren’t in Freebase.

  7. Ben Good says:

    Hi Will, Darn.. hadn’t noticed your response till just now. The bookmarklet on the front page is alive and we’ll have the others you found fixed by tomorrow. I guess I should do a general update on the doc there..

    How would you like the commonly used non-freebase topic tag stream represented? It would be pretty easy to pull them out. In fact, this could be done using the SPARQL endpoint with very little work (feel free to play). I’ll give you a start, I use “ontology evaluation” quite a bit, but haven’t bothered to create the topic yet. We’re going to be moving the endpoint to a different server this week so it should get much faster.

  8. Will Moffat says:

    Hi Ben, I think it would be interesting to see the non-freebase tags sorted by usage. If your tool gains traction then this would be a good indication of missing topics in Freebase.

    I’m no SPARQL expert but I tried playing around with this query

    prefix tag: <http://bioinfo.icapture.ubc.ca/Resources/SemanticTagging/&gt;
    prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#&gt;
    select ?tagging ?tag ?topic ?user
    where {
    ?tagging tag:associatedTag ?tag .
    optional { ?tag rdfs:isDefinedBy ?topic } .
    ?tagging tag:taggedBy ?user .
    filter (isBlank(?topic))

    I hit two problems: isBlank() doesn’t work as I expected and ?tag is in the form username_tag so I can’t sort and then count tags from different users.

  9. Ben Good says:

    Hi Will,

    Currently the (non-standard) aggregate operations, like count, that are theoretically supported by our RDF server aren’t working, but the following will get all the data needed to count them up in a client. We create a distinct URI for each user/tag combination and then associate that with a label. This is done to account for different users using the same string in different ways (one of the reasons we are interested in freebase!)

    prefix tag:
    prefix rdfs:
    select ?label ?topic
    where {
    ?tagging tag:associatedTag ?tag .
    optional { ?tag rdfs:isDefinedBy ?topic } .
    ?tag rdfs:label ?label

    Its quite slow today, but by the end of the week will be several orders of magnitude faster thanks to a new server and a new RDF repository (Virtuoso).

  10. Ben Good says:

    Looks like the namespace prefixes are getting stripped from my posts – perhaps I should be escaping the angle brackets?

    Here is a query for just those tags that aren’t currently associated with topics.

    prefix tag: \
    prefix rdfs: \
    select ?label
    where {
    ?tagging tag:associatedTag ?tag .
    ?tag rdfs:label ?label .
    optional { ?tag rdfs:isDefinedBy ?topic } .
    filter (!bound(?topic))

    each tag appears as many times as its been used so far. Like I said, aggregate functions are on the way. (This takes several minutes to run on the Joseki server, but is quite snappy on our current toy Virtuoso setup) with a bit less data (use ‘sandbox’ for Default Graph URI ). Notice that you can get json objects out if you ask for them.

  11. […] November 2007, vor 1,5 Jahren(!), tüftelte ich mit Will Moffat auf der Freebase Mailingliste und in seinem Blog an der Idee die klassischen Tags zu erweitern. Heute lese ich das Announcment von Freebase, […]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: