[Data-modeling] CVTs: relations as first-class object
John Giannandrea
jg at metaweb.com
Sun Feb 24 00:39:57 UTC 2008
Jeff Thompson wrote:
> The CVT is a true unappreciated star of Freebase. A CVT is usually
> introduced
> reluctantly to solve a problem, as if it is somehow a failure of the
> original type design that, "Oh, well, I guess we now have to use a
> CVT."
Hi Jeff,
CVTs are like any indirection, they add a lot of power and incur a
significant cost.
> But since "Employment Tenure" is a first-class relation, you can
> center the
> query on the relation:
> {
> "query" : [
> {
> "company" : null,
> "person" : "Robert Cook",
> "title" : null,
> "title~=" : "Director",
> "type" : "/business/employment_tenure"
> }
> ]
> }
This works fine, but when you want to constrain further by education
or birth date, its easier to understand if you start at the person.
> Likewise, for the topic-centered query, if I ask for a property like
> this:
> {
> "query" : [
> {
> "name" : "Robert Cook",
> "type" : "/people/person",
> "weight_kg" : null
> }
> ]
> }
> then MQL should think of the property as a "virtual" relation CVT as
> if I had written:
This is a good idea, and we have been contemplating a feature where
any property could expand to be a subclause. The implementation
details though are quite complex.
Id be happy to talk to you more about these ideas in person.
-jg
More information about the Data-modeling
mailing list