This page explains the relationships between Entity types > Bundles > Fields > Entities and how Tripal v3 utilizes them to expose biological content through your Drupal site.
Entity Types (Tripal Entity Type)
An entity type is simply a group of fields with examples in Drupal Core including nodes (content), comments, files, taxonomy terms, taxonomy vocabularies, and users. This provides more support for non-traditional content in Drupal, which is where Tripal v3 comes in. Tripal v3 provides a Tripal Entity Type which is uniquely tailored to exposing biological data through your Drupal site. Not only is this a more light-weight solution then the Node Types used in Tripal v2, it is also more powerful and more flexible.
Bundles (Tripal Content Type)
Bundles are an implementation of an entity type to which fields can be attached. You can consider bundles as subtypes of an entity type. With content nodes (an entity type), for example, you can generate bundles (subtypes) like articles, blog posts, or products. Each Tripal Content Type (e.g. gene, research project, organism, cultivated variety) is a bundle of the Tripal Entity Type. In addition to being a collection of fields, each Tripal Content Type maps to a controlled vocabulary term (cvterm) describing it. For example, a "Gene" Tripal Content Type might map to the Gene cvterm in the Sequence Ontology. This mapping allows us to compare content across Tripal sites while also allowing the ultimate flexibility in Types of Tripal Content that can be supported. You can create as many Tripal Content Types as you would like through Administration > Structure > Tripal Content Types. The Tripal Chado module allows you to map a Tripal Content Type to a Chado table (or subset of records in a Chado table) and it will automatically add the appropriate fields mapping to the columns in the specified Chado table and even related tables. Then using the Drupal Field System you can add additional Drupal Fields and/or custom Tripal Fields to expand the data available to the user through that type of Tripal Content.
Fields (Tripal/Chado Fields)
A field is a reusable piece of content. In technical terms, each field is a primitive data type, with custom validators and widgets for editing and formatters for display. Tripal Fields are class-based implementations of Drupal Fields designed to make development of fields easier. Chado Fields extend the base Tripal Field classes and provide support for the Chado data storage backend. Thus by extending the Chado Field classes you can create custom fields which store their data in Chado without having to implement your own query interface to Chado.
What's important to know as it relates to Entities is that fields can be reused for multiple bundles (Tripal Content Types). For example, gene, mRNA, genetic markers and variants may all be mapped to specific record types in the Chado feature table and, if so, all four Tripal Content Types could have an instance of the sequence Chado field (data__sequence). Some Chado fields support multiple Chado tables and as such can be attached to Tripal Content Types mapped to different Chado tables. For example, the organism Chado field (obi__organism) can be used on Tripal Content Type mapping to a Chado table with an organism_id to display a human-readable representation of that organism to the user. Furthermore, Drupal Fields (e.g. Image Field) can be attached to any Tripal Content Type providing even more functionality to your users!
An entity (Tripal Content) is simply a particular instance of an Entity Type (Tripal Content Type). For example, the Organism Tripalus databasica is an entity and is shown as a single page in your site. All your Tripal Content is listed under Administration > Content > Tripal Content.