Open l00mi opened 4 years ago
So first the question, how does termCode differ from identifier on a DefinedTerm?
By very little. - The introduction of DefinedTerm
and identifier
took place separately but at a similar time without taking account of each other..
Making termCode
, and possibly codeValue
sub-properties of identifier
makes sense to me.
Without details on how DefinedTerm
, CategoryCode
, termCode
, and codeValue
have been used in the wild, I am not so sure on rationalising termCode
and codeValue
into one property.
Be rereading once more the two descriptions I came up with this statement:
The property termCode
is used over identifier
in the case that the identifying string is defined inside the context of the DefinedTermSet
. (In contrast to identifier
where the context is defined by an external authority like ISBN, GTIN ..)
Would you say this is correct?
I guess the codeValue
as sub-property of termCode
is also purely historical? Or is there a defining difference between the two?
Hi @l00mi, that sounds about right, at least in terms of scope: identifier can be used on anything; termCode
is only relevant to things in defined term sets (e.g. controlled vocabularies). However, termCode
s and DefinedTermSet
s (and by extension classification codes) can be defined by external authorities (LoC, IETF, ISO).
As @RichardWallis says, there is overlap because they arose at similar times in response to what seemed to be independent use cases. One difference between termCode
and identifier
is the range. I would not like to see PropertyValue
used for termCode
. There may be cases where it is useful to use the identifier
property for a DefinedTerm
in order to provide the URI (though I would normally prefer @id
, or its RDFa equivalent, for this).
See issue #7 for the context of the move from the main Schema.org issue tracker to this repository.
Some time back I asked in https://github.com/schemaorg/schemaorg/issues/1711 for something which became a DefinedTerm in a Project. (Thanks @RichardWallis and @philbarker for helping me with this.)
A colleague of mine now implemented a first datasets using
DefinedTermSet
and a set ofDefinedTerm
s. Now he went ahead and used the propertyidentifier
for the codes theseDefinedTerm
s provide. And I quickly argued we havetermCode
for this. But after reading the descriptions further I have problems to justify myself.So first the question, how does
termCode
differ fromidentifier
on a DefinedTerm?Second would it make sense to move
codeValue
to become sub-property ofidentifier
and removetermCode
?