In the JThermodynamics Firestore hierarchy, catalog objects are found at the end nodes of the hierarchy. The nodes leading to the catalog object are string labels. Due to the nature of the Firestore database, these labels represent collection keywords or document keywords.
The FirestoreID JSON object is the 'address' of the catalog object, meaning given the FirestoreID, the object can be directly accessed in the database. In the ontology the FirestoreID is defined in dataset:FirestoreID. The dataset:FirestoreID is defined to be a record in dataset:SimpleDatabaseObjectStructure from which all catalog objects are defined, thus the catalog object contains its own address in the database. The FirestoreID within a catalog object is used, for example, when the catalog object is to be written (or rewritten) to the database. The transaction object, dataset:TransactionEventObject, contains the FirebaseID of all the catalog objects that were created by the transaction.
The FirestoreID has basically the following structure:
An ordered set of collection and document label pairs.
The final collection label to which the document is found
The label to the JSON object catalog object.
This structure reflects the alternating collection and document objects.
The ontology dataset:FirestoreID reflects the structure of the FirestoreID:
dataset:CollectionDocumentIDPairAddress: These represent the ordered set of collection-document label pairs down the hierarchy.
dataset:DataCatalog: The collection in which the catalog object resides.
dataset:SimpleCatalogName: The label ID of the catalog object.
where dataset:CollectionDocumentIDPairAddress: consists of a set of dataset:CollectionDocumentIDPair objects each having the structure:
dataset:DatasetCollectionID: This is the collection label
datasetDatasetDocumentID: This has the document label
dataset:DatasetIDLevel: This orders the pairs (the set itself is not ordered).