Skip to content

Commit

Permalink
add eventSet/@lido:sortOrder and classification/@typ=Objekttyp
Browse files Browse the repository at this point in the history
  • Loading branch information
mokko committed Jun 1, 2024
1 parent 33a48ae commit 04a56ba
Show file tree
Hide file tree
Showing 18 changed files with 59 additions and 52 deletions.
67 changes: 36 additions & 31 deletions zml2lido/data/xsl/zml2lido/classificationWrap.xsl
Original file line number Diff line number Diff line change
Expand Up @@ -128,36 +128,41 @@

<xsl:template name="objekttyp3">
<!-- i had trouble extracting objekttyp-->
<xsl:variable name="objekttyp" select="z:vocabularyReference[@name = 'ObjCategoryVoc']/text()"/>
<xsl:variable name="objekttypControl" select="func:vocmap-control('Objekttyp',$objekttyp)"/>
<xsl:variable name="aaturi" select="func:vocmap-replace-laxer('Objekttyp',$objekttyp, 'aaturi')"/>
<xsl:variable name="aatlabel" select="func:vocmap-replace-lax-lang('Objekttyp',$objekttyp, 'aatlabel', 'en')"/>

<xsl:if test="$objekttypControl ne ''">
<xsl:message>
<xsl:text>classification from Objekttyp </xsl:text>
<xsl:value-of select="@id"/>
</xsl:message>
<lido:classification>
<lido:conceptID lido:encodinganalog="RIA:Objekttyp" lido:source="ObjCategoryVoc" lido:type="local"/>
<lido:term xml:lang="de">
<xsl:value-of select="$objekttypControl"/>
</lido:term>
</lido:classification>
</xsl:if>
<xsl:if test="$aaturi ne ''">
<lido:classification>
<lido:conceptID lido:encodinganalog="RIA:Objekttyp"
lido:source="Art &amp; Architecture Thesaurus"
lido:type="uri">
<xsl:value-of select="$aaturi"/>
</lido:conceptID>
<xsl:if test="$aatlabel ne ''">
<lido:term lido:addedSearchTerm="yes" xml:lang="en">
<xsl:value-of select="$aatlabel"/>
<xsl:variable name="objekttyp" select="z:vocabularyReference[@name = 'ObjCategoryVoc']/z:vocabularyReferenceItem/z:formattedValue"/>
<xsl:if test="$objekttyp ne ''">
<xsl:variable name="objekttypControl" select="func:vocmap-control('Objekttyp',$objekttyp)"/>
<xsl:variable name="aaturi" select="func:vocmap-replace-laxer('Objekttyp',$objekttyp, 'aaturi')"/>
<xsl:variable name="aatlabel" select="func:vocmap-replace-lax-lang('Objekttyp',$objekttyp, 'aatlabel', 'en')"/>

<xsl:if test="$objekttypControl ne ''">
<!--xsl:message>
<xsl:text>classification from Objekttyp </xsl:text>
<xsl:value-of select="$objekttyp"/>
<xsl:text> </xsl:text>
<xsl:value-of select="@id"/>
</xsl:message-->
<xsl:comment>Objekttyp für CCC-Portal</xsl:comment>
<lido:classification type="Objekttyp">
<lido:conceptID lido:encodinganalog="RIA:Objekttyp" lido:source="ObjCategoryVoc" lido:type="local"/>
<lido:term xml:lang="de">
<xsl:value-of select="$objekttypControl"/>
</lido:term>
</xsl:if>
</lido:classification>
</lido:classification>
</xsl:if>
<xsl:if test="$aaturi ne ''">
<lido:classification>
<lido:conceptID lido:encodinganalog="RIA:Objekttyp"
lido:source="Art &amp; Architecture Thesaurus"
lido:type="uri">
<xsl:value-of select="$aaturi"/>
</lido:conceptID>
<xsl:if test="$aatlabel ne ''">
<lido:term lido:addedSearchTerm="yes" xml:lang="en">
<xsl:value-of select="$aatlabel"/>
</lido:term>
</xsl:if>
</lido:classification>
</xsl:if>
</xsl:if>
</xsl:template>

Expand Down Expand Up @@ -249,10 +254,10 @@
<xsl:variable name="aaturi" select="func:vocmap-replace-laxer('systematikArt',$sysArt, 'aaturi')"/>
<xsl:variable name="aatlabel" select="func:vocmap-replace-laxer('systematikArt',$sysArt, 'aatlabel')"/>
<xsl:if test="$sysArtControl ne ''">
<xsl:message>
<!--xsl:message>
<xsl:text>classification from systematikArt </xsl:text>
<xsl:value-of select="@id"/>
</xsl:message>
</xsl:message-->
<lido:classification>
<lido:conceptID lido:encodinganalog="RIA:SystematikArt" lido:source="ObjSystematicClb" lido:type="local"/>
<lido:term xml:lang="de">
Expand Down
2 changes: 1 addition & 1 deletion zml2lido/data/xsl/zml2lido/event-Aufführung.xsl
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
and z:vocabularyReference/z:vocabularyReferenceItem/z:formattedValue = $aufführendeRollen]"/>

<xsl:if test="$perInRole">
<lido:eventSet>
<lido:eventSet lido:sortorder="5">
<lido:displayEvent xml:lang="de">Aufführung</lido:displayEvent>
<lido:event>
<lido:eventType>
Expand Down
2 changes: 1 addition & 1 deletion zml2lido/data/xsl/zml2lido/event-Auftrag.xsl
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
and z:vocabularyReference/z:vocabularyReferenceItem/z:formattedValue = $beauftragendeRollen]"/>

<xsl:if test="personenKörperschaften[@funktion = $beauftragendeRollen]">
<lido:eventSet>
<lido:eventSet lido:sortorder="5">
<lido:displayEvent xml:lang="de">Auftrag</lido:displayEvent>
<lido:event>
<lido:eventType>
Expand Down
2 changes: 1 addition & 1 deletion zml2lido/data/xsl/zml2lido/event-Ausgrabung.xsl
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
and z:vocabularyReference/z:vocabularyReferenceItem/z:formattedValue = $grabendeRollen]"/>

<xsl:if test="$perInRole">
<lido:eventSet>
<lido:eventSet lido:sortorder="10">
<lido:displayEvent xml:lang="de">Ausgrabung</lido:displayEvent>
<lido:event>
<lido:eventType>
Expand Down
2 changes: 1 addition & 1 deletion zml2lido/data/xsl/zml2lido/event-Ausstellung.xsl
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
<xsl:variable name="registrarV" select="z:formattedValue"/>
<xsl:choose>
<xsl:when test="substring-after($registrarV, 'Positiv, ')">
<lido:eventSet>
<lido:eventSet lido:sortorder="35">
<lido:displayEvent xml:lang="de">
<xsl:text>Ausstellung</xsl:text>
</lido:displayEvent>
Expand Down
2 changes: 1 addition & 1 deletion zml2lido/data/xsl/zml2lido/event-Benin.xsl
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
z:vocabularyReference[@name = 'PublicationVoc' and z:vocabularyReferenceItem/@id = '1810139']
]">
<!--xsl:message>BENIN OBJECT</xsl:message-->
<lido:eventSet>
<lido:eventSet lido:sortorder="5">
<xsl:comment>This is an "artificial" event to identify all Benin objects for 3 Wege Projekt</xsl:comment>
<lido:displayEvent xml:lang="de">Herstellung</lido:displayEvent>
<lido:event>
Expand Down
2 changes: 1 addition & 1 deletion zml2lido/data/xsl/zml2lido/event-Entwurf.xsl
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
and z:vocabularyReference/z:vocabularyReferenceItem/z:formattedValue = $entwerfendeRollen]"/>

<xsl:if test="$perInRole">
<lido:eventSet>
<lido:eventSet lido:sortorder="1">
<lido:displayEvent xml:lang="de">Entwerfen</lido:displayEvent>
<lido:event>
<lido:eventType>
Expand Down
2 changes: 1 addition & 1 deletion zml2lido/data/xsl/zml2lido/event-Erwerb.xsl
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
<xsl:if test="z:repeatableGroup[
@name = 'ObjAcquisitionNotesGrp']/z:repeatableGroupItem[
z:vocabularyReference/z:vocabularyReferenceItem/@name='Ausgabe']">
<lido:eventSet>
<lido:eventSet lido:sortorder="25">
<lido:displayEvent xml:lang="de">Erwerb</lido:displayEvent>
<lido:event>
<lido:eventType>
Expand Down
2 changes: 1 addition & 1 deletion zml2lido/data/xsl/zml2lido/event-Fund.xsl
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@
]"/>

<xsl:if test="$findendeRollenN or $fundorteN">
<lido:eventSet>
<lido:eventSet lido:sortorder="20">
<lido:displayEvent xml:lang="de">Fund (Aktivität)</lido:displayEvent>
<lido:event>
<lido:eventType>
Expand Down
2 changes: 1 addition & 1 deletion zml2lido/data/xsl/zml2lido/event-Herstellung.xsl
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@
or z:repeatableGroup[@name = 'ObjMaterialTechniqueGrp']
or z:repeatableGroup[@name = 'ObjCulturalContextGrp']
">
<lido:eventSet>
<lido:eventSet lido:sortorder="5">
<lido:displayEvent xml:lang="de">Herstellung</lido:displayEvent>
<lido:event>
<lido:eventType>
Expand Down
2 changes: 1 addition & 1 deletion zml2lido/data/xsl/zml2lido/event-Sammeln.xsl
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
and z:vocabularyReference/z:vocabularyReferenceItem/z:formattedValue = $sammelndeRollen]"/>

<xsl:if test="$perInRole">
<lido:eventSet>
<lido:eventSet lido:sortorder="15">
<lido:displayEvent xml:lang="de">Sammeln</lido:displayEvent>
<lido:event>
<lido:eventType>
Expand Down
2 changes: 1 addition & 1 deletion zml2lido/data/xsl/zml2lido/event-Veröffentlichung.xsl
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
and z:vocabularyReference/z:vocabularyReferenceItem/z:formattedValue = $veröffentlichendeRollen]"/>

<xsl:if test="$perInRole">
<lido:eventSet>
<lido:eventSet lido:sortorder="10">
<lido:displayEvent xml:lang="de">Veröffentlichung</lido:displayEvent>
<lido:event>
<lido:eventType>
Expand Down
2 changes: 1 addition & 1 deletion zml2lido/data/xsl/zml2lido/event-Zuordnung.xsl
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<xsl:variable name="bereich" select="z:vocabularyReference[@name = 'ObjOrgGroupVoc']/z:vocabularyReferenceItem/z:formattedValue"/>
<xsl:variable name="sammlung" select="func:vocmap-control('Bereich',$bereich)"/>

<lido:eventSet>
<lido:eventSet lido:sortOrder="30">
<lido:event>
<lido:eventType>
<lido:conceptID lido:source="LIDO-Terminologie"
Expand Down
2 changes: 1 addition & 1 deletion zml2lido/data/xsl/zml2lido/event-geistigeSchöpfung.xsl
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
and z:vocabularyReference/z:vocabularyReferenceItem/z:formattedValue = $schöpfendeRollen]"/>

<xsl:if test="$perInRole">
<lido:eventSet>
<lido:eventSet sortorder="3">
<lido:displayEvent xml:lang="de">geistige Schöpfung</lido:displayEvent>
<lido:event>
<lido:eventType>
Expand Down
2 changes: 1 addition & 1 deletion zml2lido/data/xsl/zml2lido/event-unknown.xsl
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
z:vocabularyReference/@name = 'RoleVoc'
and z:vocabularyReference/z:vocabularyReferenceItem/z:formattedValue = $zugeordnet]"/>
<xsl:if test="$nichtZugeordnet">
<lido:eventSet>
<lido:eventSet lidosort="100">
<lido:displayEvent xml:lang="de">Unbekanntes Ereignis</lido:displayEvent>
<lido:event>
<lido:eventType>
Expand Down
2 changes: 1 addition & 1 deletion zml2lido/data/xsl/zml2lido/func.xsl
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,7 @@
@name eq normalize-space($target) and
@lang eq normalize-space($lang)
]/text()"/>
<xsl:if test="normalize-space($src-term) ne ''">
<xsl:if test="normalize-space($src-term) eq ''">
<xsl:message terminate="yes">
<xsl:text>ERROR: src-term empty! </xsl:text>
<xsl:value-of select="$src-voc"/>
Expand Down
3 changes: 2 additions & 1 deletion zml2lido/linkChecker.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,8 @@ def __init__(self, *, src: str | Path, chunks: bool = False) -> None:
self.data = etree.parse(str(src))
user, pw, baseURL = get_credentials()
self.client = MpApi(baseURL=baseURL, user=user, pw=pw)
self.rwc = RelWorksCache(maxSize=20_000)
cache_dir = Path(src).parent
self.rwc = RelWorksCache(maxSize=20_000, cache_dir=cache_dir)
self.rwc.load_cache_file() # load file if it exists

if chunks:
Expand Down
11 changes: 6 additions & 5 deletions zml2lido/relWorksCache.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,13 +35,12 @@
# from zml2lido import NSMAP
NSMAP = {"l": "http://www.lido-schema.org"}

cache_path = Path("relWorks_cache.xml")


class RelWorksCache:
def __init__(self, *, maxSize: int = 20_000) -> None:
def __init__(self, *, maxSize: int = 20_000, cache_dir: Path) -> None:
self.cache = Module()
self.maxSize = maxSize
self.cache_path = cache_dir / "relWorks_cache.xml"

user, pw, baseURL = get_credentials()
self.client = MpApi(baseURL=baseURL, user=user, pw=pw)
Expand Down Expand Up @@ -116,25 +115,27 @@ def length(self) -> int:
"""
return len(self.cache)

def load_cache_file(self, *, path: Path = cache_path) -> Path:
def load_cache_file(self) -> Path:
"""
Load a cache file. If it doesn't exist, do nothing.
The content of file is added to the existing in-memory cache.
Returns the path used for the cache file.
"""
path: Path = self.cache_path
if path.exists():
newM = Module(file=path)
self.cache += newM
return path

def save(self, *, path: Path = cache_path) -> Path:
def save(self) -> Path:
"""
Save current in-memory cache with relWork information to disk. Supply a path
if you want a non-default file path.
Returns the path used for the cache file.
"""
path: Path = self.cache_path
self.cache.toFile(path=path)
return path

Expand Down

0 comments on commit 04a56ba

Please sign in to comment.