You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Specifically when using JSON LD, there is a difference between the semantic identity of objects and the available information.
Multiple pieces of information can refer to the same entity, witnessed by equal @id.
Currently, the "smart merge" of partial metadata would not combine two instances partial instances with same @id together when they appear in a list or set, because structurally they are different.
A general solution would be to define __identity_fields__ at MetadataSchema to be a tuple that, if present, defines the "semantic identity". In the case of JSON-LD-based schemas, we would simply set __identity_fields__ = ("id_",)
The smart merge then could be extended so that it would inspect objects in lists or sets, and instead of doing concat/set union as usual, for suitable objects (MetadataSchema with set __identity_fields__) it would instead combine them.
When this new special field is not set, each instance would be treated as a separate identity and never be merged with others.
On the other hand, it is not clear how useful this would be, as this presupposes that usually the @id for some given schema is something consistent either by force or convenion (e.g. ORCID of an author/Person, thus allowing to combine partial author information).
The text was updated successfully, but these errors were encountered:
Specifically when using JSON LD, there is a difference between the semantic identity of objects and the available information.
Multiple pieces of information can refer to the same entity, witnessed by equal
@id
.Currently, the "smart merge" of partial metadata would not combine two instances partial instances with same
@id
together when they appear in a list or set, because structurally they are different.A general solution would be to define
__identity_fields__
atMetadataSchema
to be a tuple that, if present, defines the "semantic identity". In the case of JSON-LD-based schemas, we would simply set__identity_fields__ = ("id_",)
The smart merge then could be extended so that it would inspect objects in lists or sets, and instead of doing concat/set union as usual, for suitable objects (MetadataSchema with set
__identity_fields__
) it would instead combine them.When this new special field is not set, each instance would be treated as a separate identity and never be merged with others.
On the other hand, it is not clear how useful this would be, as this presupposes that usually the
@id
for some given schema is something consistent either by force or convenion (e.g. ORCID of an author/Person
, thus allowing to combine partial author information).The text was updated successfully, but these errors were encountered: