Should I store 1-5012345678 or 5012345678 in my DB for the PermID? Is there meaning for the "1-" part?
Should I store 1-5012345678 or 5012345678 in my DB for the PermID? Is there meaning for the "1-" part?
The short, simple answer is 'not really'... All PermIDs are in the ' 1-' namespace, and all UUIDs in that namespace are PermIDs.
However, you may come across something with a '2-' or other namespace, so I will explain in a bit more detail.
All of the content on Permid.Org comes out of our core information model that we use to organize the breadth and depth of our information, so there are some artifacts that probably seem strange from the user perspective, but are critical for internal use.
'1-' is an artifact of how we utilize linked data to model our knowledge graph. All PermIDs fall into the '1-' namespace, but sometimes we need to add objects to our graph that shouldn't have PermIDs.
For example, consider the HQ address for an organization. We denormalize this information somewhat for consumers of permid.Org and our commercial graph products to make it a lot easier to consume. Internally, our primary concern is the integrity and precision of our data over time and across domains, rather than ease of use. Therefore, an address would be modeled as a rigorously specified object in its own right, with properties like 'country', 'street' etc. Since things like 'country' and 'street' are also unique objects with their own properties and relationships, answering a simple question like 'what's the HQ address of this company?' can get complicated quite quickly against the raw, fully normalized data.
The type definition of an address has a PermID, but instances of the type don't because they are an abstraction that is only meaningful in the context of a specific organization.
Regardless, an address object still needs a UUID so it can be referred to in a triple as the object of a 'hasHQaddress' relationship from an org. Since it doesn't have a permid, we might use something like '2-(long hash)'.
There are other circumstances that would necessitate the use of something other than the '1-' namespace, but I will leave that for a blog post, possibly by our Information Architects who are the real experts.