Just after my post Freebase as productive playground, I recieved an invite (thanks a lot, Ken!) and I have played around a little…
Now, a lot of relevant things have been said around the ‘net (see my prevous post). And, there have been some in-depth reviews of the model of Freebase, related to the Semantic Web: Denny Vrandecic, Danny Ayers.
I will not repeat these comments here, rathter give my first impressions as a curious explorer.
First of all, the Freebase website is very heavy on Ajax, which seems to be almost essential for the functionality provided.
As a novice user, you are launched at the “User Profile” page. While starting to fill out some profile fields, you are immediately confronted with the Metaweb Object Model (login needed).
The Freebase Object Model
The model roughly consists of:
- Domain (the top level ontology, e.g. ‘
music‘ or ‘
- Type (a class within a domain, e.g.
- Topic (an individual object, let’s say Frank Zappa as musical artist)
- Property (attributes, e.g. ‘name’ or ‘date of birth’, or a relation with another Topic)
So when you start editing your User Profile, you are actually filling out a template of a User Type. Within this type, the attribute “Me as a Freebase Topic” links to an object of class (Type) ‘
people/person‘. The distinction is somewhat like the difference between a real world (verifyable) person, and personas this person might use. From the Freebase documentation:
A person topic is distinct from a user in Metaweb. Users have profiles that can only be edited by the users themselves. A person topic can be edited by anyone and is intended as a factual representation of details about a person.
A couple of primitive Types exist (e.g.
type/text), but in most cases more complex types are used for attributes. So Place of Birth is not just a text sctring, but an object of type ‘
location/location‘. This ensures that all occurrences of ‘Baltimore, Maryland‘ refer to the same object.
Following the link to this location, you can zoom in further and find that the object is not only of type ‘
location/location‘, but also ‘
location/citytown‘ and ‘
Queries and results
Freebase is called a database for a reason: you can run queries against it and get results back. Now being heavily rooted in the semantic web terminology, you might expect to use SPARQL as a query language, and results back in some RDF representation. But this is not the case.
Both queries and results are expressed in plain JSON, which is becoming the data transport protocol of choice for most Ajax projects and frameworks.