What's the difference between /people/person/place_of_birth and /people/person/places_lived

  1.  
    1. I don't mean semantically of course, I mean why can't I use the same MQL to get them both. For example:

      {
        "name" : "Kurt Cobain",
        "place_of_birth" : [],
        "places_lived" : [],
        "type" : "/people/person"
      }

       Gives me:

      {
        "name" : "Kurt Cobain",
        "place_of_birth" : [
          "Aberdeen"
        ],
        "places_lived" : [
          null
        ],
        "type" : "/people/person"
      }

      Even though http://www.freebase.com/view/en/kurt_cobain clearly lists Aberdeen for both values. Why can't I query them the same way?

      1. The Explore view is invaluable for this kind of question. If you don’t see a blue tool bar at the bottom of your screen, hit F8; I’ll wait.

        OK, now check out the Explore link from Kurt Cobain. It should take you here. You can also just change view to tools/explore in just about any Freebase URL.

        In that Explore view, you should see that the outbound /people/person/place_of_birth connects Kurt directly with Aberdeen. However, the inbound /people/place_lived/person link connects Kurt with some weird GUID-named thing. If you click on it, you will see that it is an instance of Place lived, connecting Kurt with Aberdeen. Why is that? Because we also might want to associate start and end dates with his residence there, which we can’t do on a simple, direct link.

        This design pattern is called a Compound Value Type, or CVT, and there is more information about them here.


    Discussion is posted in:

    Think this discussion also relates to something else? Cross-post it by adding a new discussion area:

Search Discussions

Related Discussions