Components.js
Components.js copied to clipboard
Link multiple identifiers to same object (owl:sameAs?)
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.jsonwhere 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.
Thanks for the suggestion!
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.