Hello Ernie, I have added UML models of each of the JSON models to the Apache Atlas Wiki. They are child pages of this one
https://cwiki.apache.org/confluence/display/ATLAS/Atlas+Model >From this you can see that Base Model is the core. Each of the other models is dependent on Base Model. However, there are no other dependencies between models for different technologies. There are differences in naming conventions (eg use of captials and underscores) in the labels used in the models so they look like each model is developed independently. All the best Mandy ___________________________________________ Mandy Chessell CBE FREng CEng FBCS IBM Distinguished Engineer Master Inventor Member of the IBM Academy of Technology Visiting Professor, Department of Computer Science, University of Sheffield Email: mandy_chess...@uk.ibm.com LinkedIn: http://www.linkedin.com/pub/mandy-chessell/22/897/a49 Assistant: Janet Brooks - jsbrook...@uk.ibm.com From: "Ernie Ostic" <eos...@us.ibm.com> To: dev@atlas.incubator.apache.org Cc: David Radley/UK/IBM@IBMGB, "Madhan Neethiraj" <mad...@apache.org> Date: 18/05/2017 11:04 Subject: Re: Composition relationships Hi Madhan... ...a follow-up to Mandy's question, which may be more historical in nature (just to provide some additional insight as we all think about "common" models)........for each of the types that exist today, is there any particular pattern that they followed, or was it mostly that each mini-model evolved on its own, based on the original "author" of a particular "hook" and the needs of that selected hook and its base technology? Thank you. Ernie Ernie Ostic Worldwide Technical Sales InfoSphere Information Server IBM Analytics Cell: (617) 331 8238 --------------------------------------------------------------- Open IGC is here! Extend the Catalog with custom objects and lineage definitions! https://dsrealtime.wordpress.com/2015/07/29/open-igc-is-here/ Mandy Chessell ---05/18/2017 04:57:17 AM---Hello Madhan, I am working my way through the open metadata model and working out how to From: Mandy Chessell <mandy_chess...@uk.ibm.com> To: "Madhan Neethiraj" <mad...@apache.org> Cc: David Radley <david_rad...@uk.ibm.com>, dev@atlas.incubator.apache.org Date: 05/18/2017 04:57 AM Subject: Composition relationships Hello Madhan, I am working my way through the open metadata model and working out how to stitch it to the existing structures. I wanted to be sure I am understanding the JSON properly I am looking in addons/models/0030-hive_model.json at the relationships between hive_table and hive_column, hive_db. All of these are entities. Firstly, hive_table declares an attribute called db of type hive_db: There is no ownedRef entry nor a matching entry in the hive_db definition so I am assuming that db is just a complex atribute and there is no navigation from hive_db to hive_table? What is the difference between defining hive_db as an entity rather than a struct? { "name": "hive_table", "superTypes": [ "DataSet" ], "typeVersion": "1.0", "attributeDefs": [ { "name": "db", "typeName": "hive_db", "cardinality": "SINGLE", "isIndexable": false, "isOptional": false, "isUnique": false }, : } Next, hive_table seems to have a 2 way composition relationships between itself and hive_column called columns<->table. These are definitions for the relationship in these entities: { "name": "hive_table", "superTypes": [ "DataSet" ], "typeVersion": "1.0", "attributeDefs": [ : { "name": "columns", "typeName": "array<hive_column>", "cardinality": "SINGLE", "constraints": [ { "type": "ownedRef" } ], "isIndexable": false, "isOptional": true, "isUnique": false }, : : ] }, { "name": "hive_column", "superTypes": [ "DataSet" ], "typeVersion": "1.0", "attributeDefs": [ : { "name": "table", "typeName": "hive_table", "cardinality": "SINGLE", "constraints": [ { "type": "inverseRef", "params": { "attribute": "columns" } } ], "isIndexable": false, "isOptional": true, "isUnique": false } ] }, However, a similar definition in hive_table for partitionKeys does not have an inverseRef entry in hive_column - does that make it one way? What does the "OwnedRef" declaration do in this case? { "name": "hive_table", "superTypes": [ "DataSet" ], "typeVersion": "1.0", "attributeDefs": [ : : { "name": "partitionKeys", "typeName": "array<hive_column>", "cardinality": "SINGLE", "constraints": [ { "type": "ownedRef" } ], "isIndexable": false, "isOptional": true, "isUnique": false }, : : ] }, Is there any difference in the behaviour of the relationship called db (to hive_db) and the one called partitionKeys? This is the UML I have derived Also, do you have example JSON structures for classifications? Many thanks for your help All the best Mandy ___________________________________________ Mandy Chessell CBE FREng CEng FBCS IBM Distinguished Engineer Master Inventor Member of the IBM Academy of Technology Visiting Professor, Department of Computer Science, University of Sheffield Email: mandy_chess...@uk.ibm.com LinkedIn: http://www.linkedin.com/pub/mandy-chessell/22/897/a49 Assistant: Janet Brooks - jsbrook...@uk.ibm.com