-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add @source to correspDesc and use @sameAs in sourceDesc/bibl #9
Comments
@rettinghaus I've checked the CMIF files gathered by correspSearch and it seems that you have the most diverse and "difficult" use cases for this feature. What do you mean? |
Makes sense. But why not turn this around, as |
After discussing this topic with a colleague, the suggestion arose to simply use a UUID in |
This has the advantage that we can separate the "linking" between bibl and correspDesc from the presence of an ISBN, GND-URI or similar. |
While this seems to be working for many cases (I had a look at CMIF data linked at https://correspsearch.net/data.xql?id=cmiFiles), there is a problem with the recommendation/requirement "to simply use a UUID in According to the spec 1,
with Perhaps this should be considered for CMIF v2. A possible way out could be to say that |
Yeah, the fact that an |
From my point of view, name-space name based UUIDs (Versions 3/5) are best aligned with the recommendation "to use a 'static' UUID, i.e. which is not re-generated every time the CMIF data is updated". This would allow to deterministically generate a UUID on the basis of a meaningful string. For now I'll recursively generate a name-based UUID until I get a suitable one. For instance like this.<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:foo="foo"
exclude-result-prefixes="xs" expand-text="true" version="3.0">
<xsl:template match="/">{foo:generateUUID('https://example.org/my-meaningful-string')}</xsl:template>
<xsl:function name="foo:generateUUID">
<xsl:param name="input" as="xs:string"/>
<xsl:variable name="currentUUID" select="unparsed-text('https://www.uuidtools.com/api/generate/v5/namespace/ns:url/name/' ||
$input => encode-for-uri()) => parse-json()" as="xs:string"/>
<xsl:choose>
<xsl:when test="$currentUUID castable as xs:ID">{$currentUUID}</xsl:when>
<xsl:otherwise>{foo:generateUUID($currentUUID)}</xsl:otherwise>
</xsl:choose>
</xsl:function>
</xsl:transform> |
Since the version 3.1.0 of the TEI P5 guidelines the attribute
@source
is global and therefore also available incorrespDesc
. We should use it incorrespDesc
to specifiy the source of the correspondence description, i.e. the scholarly edition. This information is already encoded in theteiHeader//sourceDesc/bibl
of a CMIF file. But in cases where letters from multiple publications are gathered in a CMIF file, we're already using@source
to specify to which publication (i.e.bibl
) acorrespDesc
element belongs to. At the latest if we want to aggregate multiple CMIF files from different sources , it's very useful to have the source publication noted in thecorrespDesc
element itself. correspSearch for example marks everycorrespDesc
element in the moment of the import with an attribute@cs:source
, which points toteiHeader//sourceDesc/bibl/@xml:id
(for an example, see "The Letters of Otto Nicolai").Thats why I would like to propose:
correspDesc/@source
mandatorycorrespDesc/@source
should beurn:isbn:0824060970
(see section 12.4 of the ISBN User's Manual)urn:nbn:de:kobv:83-opus4-57390
@xml:id
it must have an attribute@sameAs
, which have the same value as proposed above (the specification of@xml:id
doesn't allow URIs as values). This has also the advantage, that the publications are noted also by standard identifier.For publications, which don't have an URI we should consider using some other IDs. For example the accession number of the State Library Berlin for books published between 1871 and 1912, because the State Library has an official collection focus for this time period (be careful: catalogue numbers (in contrast to accession numbers) are often not permanent).
The text was updated successfully, but these errors were encountered: