[Data-modeling] Inheritance, subsumption and co-typing

John Giannandrea jg at metaweb.com
Mon Jun 9 19:26:17 UTC 2008


John Bäckstrand wrote:
> I see references to "co-typing" from time to time, I assume this  
> means the "include type" functionality. What I can see, this is a  
> "hint" and we are free to remove any types from the "parent", but  
> the link is still there in the form of /freebase/type_hints/ 
> included_types.

These is no automatic inference of types, all the data has to be  
asserted.
Any Topic can have more than one explicit type.  So, for example
	http://www.freebase.com/view/en/garry_kasparov

Is a /people/person, an /award/award_winner and a /chess/chess_player
All of these are explicit assertions, of /type/object/type

The 'included type' functionality is a hint to the freebase UI that if  
you are entering a new chess player it should be cotyped as a person.
This inclusion is what we call a UI hint, it makes data entry faster  
and easier.

So why dont we support strict type inheritance?  Well because real  
world data is messy.
For example not every chess player is a person:	http://www.freebase.com/view/en/deep_blue

> On the other hand I also see properties with the name  
> "Specialization of", see /people/profession for an example.

This is what we call a phylogeny pattern.  We want arbitrary linkage  
of 'more specific' and 'less specific'.

For example:  http://www.freebase.com/view/en/tenor  is a  
specialization of http://www.freebase.com/view/en/singer
These are professions, not types.   At some point the http://www.freebase.com/view/opera 
  domain might be more
useful in explicitly modeling Tenors, but the general pattern for all  
professions still holds.

-jg



More information about the Data-modeling mailing list