Hi Antoine,
> Thanks, Pete! I think it is clearer to me, now.
> Though it may look weirder, in a way. The production rules are the same for
> DC-Text, aren't they? I is just the mapping to RDF that changes.
Ah, OK. I guess I misunderstood what you meant by production rules :)
> In that case, I would have rather expected the distinction to be made
> strongly in DCAM (where is matters, if one wants a good alignment with RDF
> there)
I think this was the motivation (or one of them) for introducing the "non-literal value surrogate" and "literal value surrogate" containers.
The previous version of the DCAM
http://dublincore.org/documents/2005/03/07/abstract-model/
omitted them and it wasn't clear whether "value string" was supposed to map to
(a) the simple single triple, literal-as-object case
(b) the two triple, second triple with rdf:value predicate and literal object case
(c) sometimes (a) and sometimes (b) depending on whether other components were present (!)
> and hidden in DC-Text (where it does not really matter, unless DC-
> Text is meant as a complete implementation of DCAM and all the distinctions
> it could make).
DC-Text was intended to be a complete implementation of DCAM.
IIRC, I/we did briefly toy with including constructs like
Statement (
LiteralValueSurrogate (
ValueString( )
)
)
Statement (
NonLiteralValueSurrogate (
ValueString( )
)
)
but it just seemed simpler to "flatten the structure down" to
Statement (
LiteralValueString( )
)
Statement (
ValueString( )
)
It's probably not ideal, or at least it's probably incomplete in a "formal" sense, e.g. I think we left undefined how/whether to interpret "contradictory" cases like
Statement (
LiteralValueString( )
ValueURI( )
)
Pete
|