Freebase, a quick reality check

With Freebase you can do amazing queries that would be impossible with Google or the Wikipedia. As Jan commented on my BrusselsBarcamp talk, you could “Look for actors from Ghent who were born between 1970 and 1999“.

Well let’s give it a shot. Here’s the Javascript query to do just that:

{
"query":[{
"a:type":"/tv/tv_actor",
"date_of_birth":null,
"date_of_birth=":"1970",
"name":null,
"place_of_birth":"Ghent",
"type":"/people/person"
}]
}

(Drum roll please …) and here are the results:

{
"result":[],
"status":"/mql/status/ok"
}

Nada. There ain’t no data in Freebase on Belgian actors from Ghent in their twenties 😦

And that’s the frustrating thing about Freebase. The data just isn’t there yet and it’s going to take a massive amount of data-entry to fulfill it’s promise. On the positive side, their API allows write access and there are a lot of open data sources out there so at least it doesn’t all have to be entered manually.

( … a few minutes pass while Will does some manual data-entry … )

Let’s re-run that same query:

{
"result":[{
"a:type":"/tv/tv_actor",
"date_of_birth":"1970-06-19",
"name":"Franky Lanckacker",
"place_of_birth":"Ghent",
"type":"/people/person"
},{
"a:type":"/tv/tv_actor",
"date_of_birth":"1972",
"name":"Miguel Wiels",
"place_of_birth":"Ghent",
"type":"/people/person"
}],
"status":"/mql/status/ok"
}

Now the world knows about Franky Lanckacker and Miguel Wiels 🙂

Freebase is an exciting idea and it may well be the next big thing, but it’s got to reach critical mass in terms of data and users to become really useful.


  • PS I cheated a little, Jan originally said 1980 (rather than 1970) but I just couldn’t find Ghent actors under 27 on the internet.
  • PPS Updated: Improved query as per Daniel’s suggestion below. (I couldn’t figure out how to constrain to type person AND type tv_actor)
Advertisements

3 Responses to Freebase, a quick reality check

  1. Jan says:

    😀

    I didn’t really know if we had (movie)actors from Ghent. I learned something new today! 🙂 I’ve received my invitation this night and I’m playing with it and organizing some data and doing some queries. I already found some inconsistencies which I’m addressing (A series has episodes instead of episode, and such)

    You are indeed correct, the data isn’t there yet, but then again there are only 2,180 users at the moment. Once freebase launches / takes in more users, the data will be ordered a lot faster. I have big hopes for Freebase, and thanks to you I’m now an ‘early adopter’ 😉

  2. daepark says:

    Since the properties you’re constraining on are on type /people/person, you could save some bytes by doing this:

    {
    "query":[{
    "date_of_birth":null,
    "date_of_birth<":"1974",
    "date_of_birth>=":"1970",
    "name":null,
    "place_of_birth":"Ghent",
    "type":"/people/person",
    "a:type":"/tv/tv_actor",
    }]
    }

  3. Will Moffat says:

    Hi Daniel, great tip. I didn’t think of using prefixes for matching multiple types. Thanks!

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 )

Twitter picture

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

Facebook photo

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

Google+ photo

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

Connecting to %s

%d bloggers like this: