Hello data modelers,<div><br></div><div>So in Freebase, rather than a system of type inheritance, we use mixins/included types. We don't really create subtypes, we really create overlay types, which include the parent type and any extra properties or types. The issue I am running into is how to make this interacts favorably with delegated properties. If I understand them correctly (this is pretty questionable), delegated properties are a way of reusing properties so that data is added to old types/properties under the guise of new ones. The situation is as follows:</div>
<div><br></div><div>Types <span class="Apple-style-span" style="font-weight: bold;">A</span> and <span class="Apple-style-span" style="font-weight: bold;">B</span> are in some base<br></div><div>Type<span class="Apple-style-span" style="font-weight: bold;"> A </span>includes <span class="Apple-style-span" style="font-weight: bold;">Fictional Setting</span><br>
</div><div>Type<span class="Apple-style-span" style="font-weight: bold;"> B</span> includes <span class="Apple-style-span" style="font-weight: bold;">Fictional Work</span></div><div><span class="Apple-style-span" style="font-weight: bold;"><br>
</span></div><div><span class="Apple-style-span" style="font-weight: bold;">Fictional Setting</span> links to <span class="Apple-style-span" style="font-weight: bold;">Fictional Work</span> via the <span class="Apple-style-span" style="font-style: italic;">Fictional Works Set Here</span> property</div>
<div><span class="Apple-style-span" style="font-weight: bold;">Fictional Work</span> reciprocates this link via the <span class="Apple-style-span" style="font-style: italic;">Setting</span> property</div><div><br></div><div>
I want this connection to hold (and display) for my types as well, so the obvious thing is to connect <span class="Apple-style-span" style="font-weight: bold;">A</span> and <span class="Apple-style-span" style="font-weight: bold;">B</span> by delegating to those properties. The problem is that you also inherit the expected type, which would be <span class="Apple-style-span" style="font-weight: bold;">Fictional Setting </span>or <span class="Apple-style-span" style="font-weight: bold;">Fictional Work</span>, but not <span class="Apple-style-span" style="font-weight: bold;">A</span> or <span class="Apple-style-span" style="font-weight: bold;">B</span>, despite the fact that they include the former. I could instead go and create a new property specific to <span class="Apple-style-span" style="font-weight: bold;">A</span> and <span class="Apple-style-span" style="font-weight: bold;">B </span>(i.e. with them as the expected types), but it would be redundant and I'd be including the commons types but not adding any useful information to them. Does anyone have any advice? Am I missing something really obvious?</div>
<div><br></div><div>Thanks,<br clear="all">Vishal
</div>