When there are multiple values/objects for a single key/predicate in the metadata graph that all share the same xml:lang attribute, there is no way to differentiate them. This could be important for the language, where there might be a primary and secondary (etc.) languages, or with authors or editors, etc. One possible way to handle this would be to have the metadata graph ingest other attributes from the structured-metadata elements than just the language. That would allow the user to decide what attribute they want to use to differentiate the different triples from each other (e.g., @n or @type or @xml:id) and then to query for them when they want to return them from the graph, e.g., "get me language[@n='primary']". I am not sure whether the elements in, e.g., Dublin Core, can take attributes but, if so, this would, I think, be the best and the most generalizable way to deal with this.
When there are multiple values/objects for a single key/predicate in the metadata graph that all share the same
xml:langattribute, there is no way to differentiate them. This could be important for the language, where there might be a primary and secondary (etc.) languages, or with authors or editors, etc. One possible way to handle this would be to have the metadata graph ingest other attributes from the structured-metadata elements than just the language. That would allow the user to decide what attribute they want to use to differentiate the different triples from each other (e.g.,@nor@typeor@xml:id) and then to query for them when they want to return them from the graph, e.g., "get melanguage[@n='primary']". I am not sure whether the elements in, e.g., Dublin Core, can take attributes but, if so, this would, I think, be the best and the most generalizable way to deal with this.