RealEstateCore / rec

RealEstateCore ontologies.
http://realestatecore.io
BSD 3-Clause "New" or "Revised" License
84 stars 37 forks source link

Question about Document model #240

Closed ogiel closed 1 year ago

ogiel commented 1 year ago

Currently, the document model consists of the following properties:

The document model can have a URL relationship to models like Building or Site, but there is no general way to storing its actual URL. What we are trying to achieve is an app that stores floorplan images in Azure BLOB storage, with the URL stored in the digital twin so we do not have to synchronize these kinds of data with our CosmosDB.

The models Organization and Person do contain URL properties to images representing the building or person. For now I will create a custom model that extends a document and gets a URL property equal to how they are defined on the Organization an Person models, but what would normally be the right way to do this? Personally I think storing the actual URL under custom tags is undesired when the relationship itself is called URL.

ogiel commented 1 year ago
{
  "@id": "dtmi:org:attiq:schema:rec:Image;1",
  "@type": "Interface",
  "contents": [
    {
      "@type": "Property",
      "description": {
        "en": "URL link to an image/logo that can be used to represent the entity."
      },
      "displayName": {
        "en": "image"
      },
      "name": "image",
      "schema": "string",
      "writable": true
    }
  ],
  "description": {
    "en": "Contains the URL to an image for storing data like floorplans in databases like BLOB storage."
  },
  "displayName": {
    "en": "Image"
  },
  "extends": "dtmi:org:w3id:rec:Document;1",
  "@context": ["dtmi:dtdl:context;2"]
}

If anyone wants to do it in the same way this is my model.

hammar commented 1 year ago

Hi,

The intent of the customProperties field is to allow capturing bags of customer-specific semantics that are not general enough to warrant inclusion in the REC models themselves; while the identifiers field is intended to capture identifiers from other systems.

As such, the canonical way of representing IDs (such as URLs) in other systems would be to use the latter. If, however, this is a common enough issue that a generic model needs to be added, I would propose specializing from https://dev.realestatecore.io/ontology/Information/Document/Document and the Architecture.documentation relationship.

Best,

Karl