Closed godnat closed 3 years ago
Toto má přímý dopad na to jak bude vypadat agregovaná sekce ARCLib:eventAgents v ARCLib XML, linkingAgentIdentifierValue (mapován do linkingDeviceID) totiž společně s premis:eventType a premis:eventDateTime tvoří klíč dle kterého se vytváří skupiny elementů ARCLib:eventAgents. Očekáváme diskuzi / nasměrování, obdobná problematika z obecného pohledu je otevřena v #97 .
Jak by v tomto konkrétním případě měla vypadat agregovaná sekce? Na první pohled, nehledě na realizovatelnost a pracnost, mne napadají následující možnosti (v příkladu vypouštím některé elementy jako např. scannerModelSerialNo):
1) Výběr jednoho reprezentanta (vzhledem k tomu že v ARCLibu je cílový element do kterého se kopíruje hodnota linkingAgentIdentifierValue nazván linkingDeviceID bych očekával že by se přebíral agent typu machine). (agent je stále klíčovým atributem seskupení)
<ARCLib:eventAgent>
<ARCLib:eventType>edit</ARCLib:eventType>
<ARCLib:agentName>machineAgentName</ARCLib:agentName>
<ARCLib:linkingDeviceID>ndk_1234</ARCLib:linkingDeviceID>
<ARCLib:eventDate>2017-09-21</ARCLib:eventDate>
<ARCLib:eventCount>1</ARCLib:eventCount>
</ARCLib:eventAgent>
2) Duplikace celého záznamu dle linkingAgentIdentifierValue (agent je stále klíčovým atributem seskupení)
<ARCLib:eventAgent>
<ARCLib:eventType>edit</ARCLib:eventType>
<ARCLib:agentName>personAgentName</ARCLib:agentName>
<ARCLib:linkingDeviceID>23</ARCLib:linkingDeviceID>
<ARCLib:eventDate>2017-09-21</ARCLib:eventDate>
<ARCLib:eventCount>1</ARCLib:eventCount>
</ARCLib:eventAgent>
<ARCLib:eventAgent>
<ARCLib:eventType>edit</ARCLib:eventType>
<ARCLib:agentName>softwareAgentName</ARCLib:agentName>
<ARCLib:linkingDeviceID>ndk_123</ARCLib:linkingDeviceID>
<ARCLib:eventDate>2017-09-21</ARCLib:eventDate>
<ARCLib:eventCount>1</ARCLib:eventCount>
</ARCLib:eventAgent>
<ARCLib:eventAgent>
<ARCLib:eventType>edit</ARCLib:eventType>
<ARCLib:agentName>machineAgentName</ARCLib:agentName>
<ARCLib:linkingDeviceID>ndk_1234</ARCLib:linkingDeviceID>
<ARCLib:eventDate>2017-09-21</ARCLib:eventDate>
<ARCLib:eventCount>1</ARCLib:eventCount>
</ARCLib:eventAgent>
3) Seskupení v seskupení (agent je klíčem nadřazeného seskupení)
<ARCLib:eventAgent>
<ARCLib:agentName>personAgentName</ARCLib:agentName>
<ARCLib:linkingDeviceID>23</ARCLib:linkingDeviceID>
<ARCLib:events>
<ARCLib:event>
<ARCLib:eventType>edit</ARCLib:eventType>
<ARCLib:eventDate>2017-09-21</ARCLib:eventDate>
<ARCLib:eventCount>1</ARCLib:eventCount>
</ARCLib:event>
<ARCLib:event>
...other event...
</ARCLib:event>
</ARCLib:events>
</ARCLib:eventAgent>
<ARCLib:eventAgent>
<ARCLib:agentName>personAgentName</ARCLib:agentName>
<ARCLib:linkingDeviceID>23</ARCLib:linkingDeviceID>
<ARCLib:events>
<ARCLib:event>
<ARCLib:eventType>edit</ARCLib:eventType>
<ARCLib:eventDate>2017-09-21</ARCLib:eventDate>
<ARCLib:eventCount>1</ARCLib:eventCount>
</ARCLib:event>
<ARCLib:event>
...other event...
</ARCLib:event>
</ARCLib:events>
</ARCLib:eventAgent>
<ARCLib:eventAgent>
<ARCLib:agentName>personAgentName</ARCLib:agentName>
<ARCLib:linkingDeviceID>23</ARCLib:linkingDeviceID>
<ARCLib:events>
<ARCLib:event>
<ARCLib:eventType>edit</ARCLib:eventType>
<ARCLib:eventDate>2017-09-21</ARCLib:eventDate>
<ARCLib:eventCount>1</ARCLib:eventCount>
</ARCLib:event>
<ARCLib:event>
...other event...
</ARCLib:event>
</ARCLib:events>
</ARCLib:eventAgent>
4) Zanoření a opakování elementu agenta (agent již není klíčovým atributem seskupení, vlastně obdoba předchozího z druhé strany, tedy event -> agents)
<ARCLib:eventAgent>
<ARCLib:eventType>edit</ARCLib:eventType>
<ARCLib:eventDate>2017-09-21</ARCLib:eventDate>
<ARCLib:eventCount>1</ARCLib:eventCount>
<ARCLib:agents>
<ARCLib:agent>
<ARCLib:agentName>personAgentName</ARCLib:agentName>
<ARCLib:linkingDeviceID>23</ARCLib:linkingDeviceID>
</ARCLib:agent>
<ARCLib:agent>
<ARCLib:agentName>softwareAgentName</ARCLib:agentName>
<ARCLib:linkingDeviceID>ndk_123</ARCLib:linkingDeviceID>
</ARCLib:agent>
<ARCLib:agent>
<ARCLib:agentName>machineAgentName</ARCLib:agentName>
<ARCLib:linkingDeviceID>ndk_1234</ARCLib:linkingDeviceID>
</ARCLib:agent>
<ARCLib:agent>
...other agent...
</ARCLib:agent>
</ARCLib:agents>
</ARCLib:eventAgent>
Vyřešilo by se něco, kdyby se jak je v https://github.com/LIBCAS/ARCLib/issues/97 uvedeno, oddělili do vlastních sekcí agenti a události? Tj. pak by se brali všichni agenti v SIP balíčku (deduplikovaní) nezávisle na událostech.
Považuji za vyřešené v #97
Taky považuji za vyřešené, může se zavřít. Děkuji.
Některé balíčky používají zápis, kdy se v události (premis:event) odkazují na dva agenty (premis:linkingAgentIdentifier). Tento zápis je validní, ale méně běžný. Je možné to přidat do SIP profilu?
Výše uvedený zápis podle mě způsobuje tuto chybu:
_couldn't execute activity <serviceTask id="ServiceTask0fxsc9x" ...>: A sequence of more than one item is not allowed as the second argument of fn:concat() (, , )
Problém podle mě nastává při tvorbě části ARCLIB_003, když jsme jí zakomentovali, balíček prošel. Tak, jak je to ted v SIP profilu zapsáno, je to dobře pro většinu balíčků, tj. neměnit, jen někam asi přidat i mapování pro tento zápis(?).
V datech to vypadá takto:
Možná ta chyba výše ale znamená ještě něco jiného.