Design representation and transformation with hypergraphs

The following patterns contain design transformations and represented in the hypergraph model

All the transformations are taken from MongoDB Blog

  1. $${E}^{Doc}_{Top\_movie}.nest(A_{C\_releaseId},\{E_R^{releaseId,releaseDate}\},\{A_{A\_releaseDate}\},\varnothing,\varnothing)$$
  2. $${E}^{Doc}_{Top\_movie}.group(E_R^{movieid,releaseId},{E}^{Doc}_{Doc\_release})$$

  1. $${E}^{Doc}_{Top\_measurement}.split(A_{C\_sensorId},\{E_R^{sensorId,measurementId},E_R^{measurementId,timestamp}\},\{A_{C\_measurementId},A_{A\_timestamp}\}$$$$,\varnothing,\varnothing,\{A_{C\_sensorId},A_{A\_timestamp}\})$$
  2. $${E}^{Doc}_{Top\_sensor}.embed({E}^{Doc}_{Top\_measurement})$$
  3. $${E}^{Doc}_{Doc\_measurement}.flatten()$$
  4. $${E}^{Doc}_{Top\_sensor}.nest(A_{C\_measurementId},\{E_R^{measurementId,timestamp}\},\{A_{A\_timestamp}\},\varnothing,\varnothing)$$
  5. $${E}^{Doc}_{Top\_sensor}.group(E_R^{sensorId,measurementId},{E}^{Doc}_{Doc\_measurement})$$

  1. $${E}^{Doc}_{Top\_customer}.split(A_{C\_customerId},\{E_R^{customerId,address}\},\{A_{A\_address}\},\varnothing,\varnothing,\varnothing)$$
  2. $${E}^{Doc}_{Col\_customer}.segregate({E}^{Doc}_{Top\_customer2})$$
  3. $${E}^{Doc}_{Col\_order}.union({E}^{Doc}_{Col\_customer2})$$
  4. $${E}^{Doc}_{Top\_order}.embed({E}^{Doc}_{Top\_customer2})$$
  5. $${E}^{Doc}_{Doc\_customer2}.flatten()$$
  6. $${E}^{Doc}_{Top\_order}.nest(A_{C\_address},\{E_R^{customerId,address}\},\varnothing,\varnothing,\varnothing)$$

  1. $${E}^{Doc}_{Col\_bAthlete}.union(A_{Col\_tAthlete})$$
  2. $${E}^{Doc}_{Top\_bAthlete}.embed({E}^{Doc}_{Top\_tAthlete})$$
  3. $${E}^{Doc}_{Doc\_tAthlete}.flatten()$$

  1. $${E}^{Doc}_{LisTop\_reviews}.flatten()$$
  2. $${E}^{Doc}_{Doc\_reviews}.flatten()$$
  3. $${E}^{Doc}_{Top\_product}.split(A_{C\_reviewId},\{E_R^{reviewId,productId},E_R^{reviewId,author}\},\{,A_{C\_productId},A_{A\_author}\},\varnothing,\varnothing,\varnothing))$$
  4. $${E}^{Doc}_{Col\_product}.segregate({E}^{Doc}_{Top\_review}))$$
  5. $${E}^{Doc}_{Top\_product}.nest(A_{C\_reviewId},\{E_R^{reviewId,author}\},\{A_{A\_author}\},\varnothing,\varnothing)$$
  6. $${E}^{Doc}_{Top\_product}.group(E_R^{productId,reviewId},{E}^{Doc}_{Doc\_review})$$