title: Modelling best practices with Grakn
body: <p>I've looked at how to do data modelling and have some questions in regards to the use of roles specifically in Grakn. </p>
  
  <p>Let's take a simple case. I have a Company, and that Company can be a Distributor, Supplier, Customer, or any such combination. Company A could be a distributor and a customer at the same time.</p>
  
  <p>If I use a relational database, I would have a table for CompanyS and then tables for SupplierS, CustomerS, etc, which then would reference the Company table. </p>
  
  <p>However, I want to start with a Company and know what roles it is playing without having to create these extra tables. So that in my application I can know that a company is both a distributor and a supplier in a single query. </p>
  
  <p>There's a few ways I can think how to do it, but as I feel this problem domain is so common there must be some best practices for modelling these concepts. </p>
  
  <p>So I am looking for common patterns or strategies to model and name certain entity roles. I am using Grakn. Any help is appreciated.</p>