Hello data modelers,<div><br></div><div>So in Freebase, rather than a system of type inheritance, we use mixins/included types. We don&#39;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>&nbsp;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&nbsp;<span class="Apple-style-span" style="font-weight: bold;">A</span>&nbsp;and&nbsp;<span class="Apple-style-span" style="font-weight: bold;">B</span>&nbsp;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&#39;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>