Am 10.03.2016 um 10:26 schrieb Markus Kroetzsch:
I am surprised by the amount of confusion in this discussion. There is absolutely no relationship between mapping of Wikidata values to URIs and the external id datatype.
You are correct that such a relationship does not necessarily follow from first principles. You are however incorrect in saying that there is no relationship in Wikibase: The way the data model is currently defined and the way mappings are implemented, we made a conscious decision to support such mappings only for ExternalId values.
I think it would help the discussion if we could keep apart: - what follows from formal principles - what you (or I) consider best - what the software currently does
(3) The external id datatype does not provide any mapping and the criteria used for it by the community do not imply that such mappings should exist for these cases, or that they should not exist for other cases.
That is incorrect from the way Wikibase defines and uses the ExternalId datatype: the intent is indeed to say that something is an identifier that can be mapped, and that such a (direct) mapping is not supported for other data types. (That doesn't mean we will not offer different mappings for other data types, perhaps URLs for looking up coordinates, etc).
Modeling this explicitly is indeed the reason to have this datatype.
I am most worried about Daniel's remark. He says that we wants to use external ids to identify properties with "values that identify a resource", but does not mention the existing, community-supported mechanism for doing just that (2), and instead proposes another mechanism (3), which the community is clearly not using for this purpose at all.
That's a misunderstanding. The plan is to support P1921 for URI mappings, and we already do support P1630 for URL mappings. But we intentionally do this only for ExternalId values, not for plain strings or other types.
So, the technical implementation does follow the community convention, with the restriction that properties that should use this kind of mapping need to explicitly be declared to be identifiers. We are also considering implementing validation and normalization for ExternalId values, but it's not clear yet how we can safely apply community supplied validation and normalization patterns.