Components.js icon indicating copy to clipboard operation
Components.js copied to clipboard

Link multiple identifiers to same object (owl:sameAs?)

Open joachimvh opened this issue 4 years ago • 2 comments

Issue type:

  • :heavy_plus_sign: Feature request

Description:

It could be useful to have a way to link to the same object with multiple identifiers. Example below from the community solid server:

For the CSS config I was thinking of having separate config files for every class that would be instantiated. This way you could have intermediate configs that only import the classes that are needed for a config, which would make it easy to create new combinations of classes without having to copy/paste potentially large blocks. E.g., monitoring-store.json would just contain

    {
      "@id": "urn:solid-server:default:MonitoringStore",
      "@type": "MonitoringStore",
      ...
    },

The one issue with this that some components are referenced by several other classes. One of these is the urn:solid-server:default:ResourceStore. In practice this is a MonitoringStore, so two options I see are:

  • Create a new config file monitoring-store-default.json where the identifier is set to that one instead. This would place more work on people who want to make new combinations of the configs though.
  • Change all config files that reference urn:solid-server:default:ResourceStore. Definitely would not do this since this would require a lot of changes every time.

It would be nice if I could just write urn:solid-server:default:ResourceStore owl:sameAs urn:solid-server:default:MonitoringStore since that only requires a single change there for new configs.

Note that in practice the first option would not be that horrible right now as the changes are still not that drastic, but I do think the sameAs solution might also be helpful in several other situation to streamline configurations.

joachimvh avatar May 05 '21 08:05 joachimvh

Thanks for the suggestion!

github-actions[bot] avatar May 05 '21 08:05 github-actions[bot]

Easiest place to add this would be in https://github.com/rubensworks/rdf-object.js So some node squashing mechanism would be needed there.

We do have to think about how we want to handle multiple sameAs usages, and how to report errors/warnings on resources with multiple id's.

rubensworks avatar May 05 '21 08:05 rubensworks