User Tools

Site Tools


playground:mavis-samma_integration

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
playground:mavis-samma_integration [2012/07/31 14:05]
jros
playground:mavis-samma_integration [2019/06/28 16:42] (current)
Line 2: Line 2:
 **by ʻUluʻulu : The Henry Kuʻualoha Giugni Moving Image Archive of Hawaiʻi** **by ʻUluʻulu : The Henry Kuʻualoha Giugni Moving Image Archive of Hawaiʻi**
  
-ʻUluʻulu uses SAMMA machinery and software for physical inspection of video tapes, and the cleaning and migration of 3/4" U-matic video tapes. ​ We use xml files and csv files for integrating metadata created by SAMMA processes into MAVIS. ​ What follows is a summary of our workflow as it pertains to MAVIS-SAMMA integration.+ʻUluʻulu uses SAMMA machinery and software for physical inspection of video tapes, and the cleaning and migration of 3/4" U-matic video tapes. ​ We use xml files and csv files for integrating metadata created by SAMMA processes into MAVIS. ​ What follows is a summary of our workflow as it pertains to MAVIS-SAMMA integration. ​ [see [[#​overall_workflow|appendix]] for workflow diagram]
  
 ===== Accessioning ===== ===== Accessioning =====
  
-The first thing we do is accession our video tapes, and add basic metadata for each tape.  This is done on a MAVIS Workstation,​ with metadata entered manually through MAVIS Client. ​ As each carrier is created, we paste the carrier item id number into our label printing software, print out an item id label, and put this on the video tape container. ​ When all of the tapes have been accessioned,​ we export the item list out of MAVIS Client. [see [[#export_for_samma_prep_stylesheet|appendix]] for stylesheet]+The first thing we do is accession our video tapes, and add basic metadata for each tape.  This is done on a MAVIS Workstation,​ with metadata entered manually through MAVIS Client. ​ As each carrier is created, we paste the carrier item id number into our label printing software, print out an item id label, and put this on the video tape container. ​ When all of the tapes have been accessioned,​ we export the item list out of MAVIS Client. [see appendix for [[#accessioning1|flowchart]], [[#​export_for_samma_prep_stylesheet|export ​stylesheet]]]
  
 ===== Importing .csv file into SAMMA Prep ===== ===== Importing .csv file into SAMMA Prep =====
Line 60: Line 60:
 ===== Importing Clean XML into MAVIS ===== ===== Importing Clean XML into MAVIS =====
  
-This process is similar to the Prep process, however, it is slightly different because the Clean process also creates a clean.pdf file for each tape.  So first, we copy the clean XML files onto the MAVIS Workstation computer. ​ Next, we back up the clean.pdf files on our servers. ​ After that, we import the XML file, using MAVIS Client. ​ This creates a clean treatment record and a reference material (pointing to the location of the clean pdf) for each video tape carrier.+This process is similar to the Prep process, however, it is slightly different because the Clean process also creates a clean.pdf file for each tape.  So first, we copy the clean XML files onto the MAVIS Workstation computer. ​ Next, we back up the clean.pdf files on our servers. ​ After that, we import the XML file, using MAVIS Client. ​ This creates a clean treatment record and a reference material (pointing to the location of the clean pdf) for each video tape carrier. ​ [see [[#​import_from_samma_clean_stylesheet|appendix]] for stylesheet]
  
 ===== SAMMA Migration ===== ===== SAMMA Migration =====
Line 86: Line 86:
 === Import files === === Import files ===
  
-This is done on the MAVIS Workstation,​ using MAVIS Client. ​ This import creates Digital Components for each file created with the SAMMA Solo.+This is done on the MAVIS Workstation,​ using MAVIS Client. ​ This import creates Digital Components ​and copied from info for each file created with the SAMMA Solo.  [see [[#​import_from_samma_solo_stylesheet|appendix]] for stylesheet]
  
 ==== Importing post-Migration Metadata into MAVIS ==== ==== Importing post-Migration Metadata into MAVIS ====
Line 92: Line 92:
 === Add MAVIS item numbers to the online Spreadsheet === === Add MAVIS item numbers to the online Spreadsheet ===
  
-Before importing the metadata that was added to the sammaPostMigrationMetadata spreadsheet,​ we need to add MAVIS item numbers, so that the data gets attached to the correct records. ​ We need to retrieve the component and carrier item ids for the items that were just created during the Solo XML import. ​ We get these numbers through a MAVIS Client export from an items list window. ​ We then open up the exported file and copy and paste numbers into their proper locations in the online spreadsheet.+Before importing the metadata that was added to the sammaPostMigrationMetadata spreadsheet,​ we need to add MAVIS item numbers, so that the data gets attached to the correct records. ​ We need to retrieve the component and carrier item ids for the items that were just created during the Solo XML import. ​ We get these numbers through a MAVIS Client export from an items list window.  ​[see [[#​export_for_online_spreadsheet_stylesheet|appendix]] for stylesheet] ​We then open up the exported file and copy and paste numbers into their proper locations in the online spreadsheet. ​ 
  
 === Proofread Data === === Proofread Data ===
Line 106: Line 106:
 == Import into MAVIS == == Import into MAVIS ==
  
-This is done on the MAVIS Workstation,​ using MAVIS Client. ​ We choose the .csv file and use the convert delimited file option. ​ This import adds copied from info, checksum infoand the examiner notes to the recently created items.+This is done on the MAVIS Workstation,​ using MAVIS Client. ​ We choose the .csv file and use the convert delimited file option. ​ This import adds checksum info and the examiner notes to the recently created items. ​ [see [[#​import_from_online_spreadsheet_stylesheet|appendix]] for stylesheet]
  
 ===== Other Things ===== ===== Other Things =====
Line 114: Line 114:
 ===== Conclusion ===== ===== Conclusion =====
  
-Anyway, that is the end of our MAVIS-SAMMA integration procedures. ​ We start in MAVIS, export data to be imported into SAMMA Prep.  In MAVIS, we import XML files from SAMMA Prep, Clean, and Solo.  We export data from MAVIS to be input into an online spreadsheet. ​ We then import this spreadsheet as a CSV file back into MAVIS. ​ And that is that.  ​Stylesheets or more detailed workflows can be provided upon request.+Anyway, that is the end of our MAVIS-SAMMA integration procedures. ​ We start in MAVIS, export data to be imported into SAMMA Prep.  In MAVIS, we import XML files from SAMMA Prep, Clean, and Solo.  We export data from MAVIS to be input into an online spreadsheet. ​ We then import this spreadsheet as a CSV file back into MAVIS. ​ And that is that.  ​More detailed workflows can be provided upon request.
  
-===== Appendix =====+===== Appendix ​A: Diagrams ===== 
 + 
 +==== Overall Workflow ==== 
 + 
 +{{:​playground:​samma_mavis_workflow.png?​direct&​|}} 
 + 
 +==== Accessioning ==== 
 + 
 +{{:​uluulu:​accessioningvideotapesworkflow.png?​direct&​|}} 
 + 
 +===== Appendix B: Stylesheets ​=====
  
 ==== Export for SAMMA Prep Stylesheet ==== ==== Export for SAMMA Prep Stylesheet ====
Line 230: Line 240:
 </​code>​ </​code>​
  
-==== Import ​From SAMMA Prep Stylesheet ====+==== Import ​from SAMMA Prep Stylesheet ====
  
 <​code>​ <​code>​
Line 762: Line 772:
 </​code>​ </​code>​
  
 +==== Import from SAMMA Clean Stylesheet ====
 +
 +<​code>​
 +
 +<?xml version="​1.0"​ encoding="​ISO-8859-13"?>​
 +
 +<​xsl:​stylesheet
 +
 + version="​1.0"​
 +
 + xmlns:​xsl="​http://​www.w3.org/​1999/​XSL/​Transform"​
 +
 + xmlns:​xl="​http://​www.w3.org/​TR/​xlink"​
 +
 + xmlns="​http://​www.wizardis.com.au/​2005/​12/​MAVIS">​
 +
 +<​!-- ​
 +
 +   Add treatment to video carrier, using SammaClean xml
 +
 +   ​Modification History
 +
 +   ​********************
 +
 +   ​24/​02/​11 ​ JRR ???????? ​  ​Created
 +
 +   ​10/​03/​11 ​ JRR ???????? ​  ​Modified:​ added reference material template
 +
 +   ​17/​03/​11 ​ JRR ???????? ​  ​Modified:​ made enteredDate format conversion
 +
 +   ​24/​05/​11 ​ JRR ???????? ​  ​Modified:​ changed ref material to url, added url variable
 +
 +   ​31/​10/​11 ​ JRR ???????? ​  ​Modified:​ added <​isOlcDisplay>​Y</​isOlcDisplay>​ to reference material
 +
 +
 +
 +To do: Maybe want to add url prefix to ini file so that if it changes, each resource id does not have to be redone (this might mean the resource id type would be path/​filename) ​
 +
 +-->
 +
 +
 +
 +<​xsl:​output encoding="​ISO-8859-13"​ indent="​yes"/>​
 +
 +
 +
 +<​xsl:​variable name="​cleaner"​ select="'​CLEAN'"/>​
 +
 +<​xsl:​variable name="​qf"​ select="'​ Quality Factor: '"/>​
 +
 +<​xsl:​variable name="​url"​ select="'​http://​serverurl/​metadata/'"/>​
 +
 +<​xsl:​variable name="​cleanPDF"​ select="'​_clean.pdf'"/>​
 +
 +
 +
 +<​xsl:​template match="​SammaCleaner">​
 +
 + <​mavis>​
 +
 +
 +
 + <​xsl:​for-each select="//​Tape">​
 +
 + <​xsl:​if test="​Results/​TapeId">​
 +
 + <​VideoTapeCarrier><​xsl:​attribute name="​xl:​href">/​VideoTapeCarrier/​key/<​xsl:​value-of select="​Results/​TapeId"/></​xsl:​attribute>​
 +
 + <​treatments>​
 +
 + <​xsl:​call-template name="​addTreatment">​
 +
 + <​xsl:​with-param name="​treatmentCode">​CR</​xsl:​with-param>​
 +
 + <​xsl:​with-param name="​treatmentLocation">​I</​xsl:​with-param>​
 +
 + <​xsl:​with-param name="​summary">​
 +
 + <​xsl:​value-of select="​Results/​CleanedResult"/>​
 +
 + <​xsl:​value-of select="​$qf"/><​xsl:​value-of select="​Results/​QualityFactor"/>​
 +
 + </​xsl:​with-param>​
 +
 + <​xsl:​with-param name="​performedBy">​
 +
 + <​xsl:​value-of select="​$cleaner"/>​
 +
 + </​xsl:​with-param>​
 +
 + <​xsl:​with-param name="​enteredDate">​
 +
 + <​xsl:​value-of select="//​Results/​CleanedDateTime"/>​
 +
 + </​xsl:​with-param>​
 +
 + </​xsl:​call-template>​
 +
 + </​treatments>​
 +
 + <​xsl:​call-template name="​referenceMaterial"/>​
 +
 + </​VideoTapeCarrier>​
 +
 + </​xsl:​if>​
 +
 + </​xsl:​for-each>​
 +
 +
 +
 + </​mavis>​
 +
 +</​xsl:​template>​
 +
 +
 +
 +<​xsl:​template match="​*">​
 +
 + <!-- Do not output anything except what's in the "​SammaCleaner"​ template -->
 +
 +</​xsl:​template>​
 +
 +
 +
 +<​xsl:​template name="​addTreatment">​
 +
 + <​xsl:​param name="​treatmentCode"/>​
 +
 + <​xsl:​param name="​treatmentLocation"/>​
 +
 + <​xsl:​param name="​summary"/>​
 +
 + <​xsl:​param name="​performedBy"/>​
 +
 + <​xsl:​param name="​enteredDate"/>​
 +
 + <​CarrierTreatment>​
 +
 + <​treatmentCode><​xsl:​value-of select="​$treatmentCode"/></​treatmentCode>​
 +
 + <​treatmentLocation><​xsl:​value-of select="​$treatmentLocation"/></​treatmentLocation>​
 +
 + <​summary><​xsl:​value-of select="​$summary"/></​summary>​
 +
 + <​performedBy><​xsl:​value-of select="​$performedBy"/></​performedBy>​
 +
 + <​enteredDate><​xsl:​value-of select="​substring($enteredDate,​ 6, 2)"/>/<​xsl:​value-of select="​substring($enteredDate,​ 9, 2)"/>/<​xsl:​value-of select="​substring($enteredDate,​ 1, 4)"/>​ - <​xsl:​choose><​xsl:​when test="​substring($enteredDate,​ 12, 2) &gt; 12"><​xsl:​value-of select="​substring($enteredDate,​ 12, 2) - 12"/>:<​xsl:​value-of select="​substring($enteredDate,​ 15, 2)"/>:<​xsl:​value-of select="​substring($enteredDate,​ 18, 2)"/>​ PM</​xsl:​when><​xsl:​when test="​substring($enteredDate,​ 12, 2) = '​12'">​12:<​xsl:​value-of select="​substring($enteredDate,​ 15, 2)"/>:<​xsl:​value-of select="​substring($enteredDate,​ 18, 2)"/>​ PM</​xsl:​when><​xsl:​when test="​substring($enteredDate,​ 12, 2) = '​00'">​12:<​xsl:​value-of select="​substring($enteredDate,​ 15, 2)"/>:<​xsl:​value-of select="​substring($enteredDate,​ 18, 2)"/>​ AM</​xsl:​when><​xsl:​otherwise><​xsl:​value-of select="​substring($enteredDate,​ 12, 2)"/>:<​xsl:​value-of select="​substring($enteredDate,​ 15, 2)"/>:<​xsl:​value-of select="​substring($enteredDate,​ 18, 2)"/>​ AM</​xsl:​otherwise></​xsl:​choose></​enteredDate>​
 +
 + </​CarrierTreatment>​
 +
 +
 +
 +</​xsl:​template>​
 +
 +
 +
 +<​xsl:​template name="​referenceMaterial">​
 +
 + <​objectReferenceMaterials>​
 +
 + <​ObjectReferenceMaterial>​
 +
 + <​referenceMaterialType>​SC</​referenceMaterialType>​
 +
 + <​isOlcDisplay>​Y</​isOlcDisplay>​
 +
 + <​objectResourceIdentifiers>​
 +
 + <​ResourceIdentifier>​
 +
 + <​resourceIdentifier>​
 +
 + <​xsl:​value-of select="​$url"/>​
 +
 + <​xsl:​value-of select="​Results/​Filename"/>​
 +
 + <​xsl:​value-of select="​$cleanPDF"/>​
 +
 + </​resourceIdentifier>​
 +
 + <​resourceIdentifierType>​URL</​resourceIdentifierType>​
 +
 + </​ResourceIdentifier>​
 +
 + </​objectResourceIdentifiers>​
 +
 + </​ObjectReferenceMaterial>​
 +
 + </​objectReferenceMaterials>​
 +
 +</​xsl:​template>​
 +
 +
 +
 +</​xsl:​stylesheet>​
 +
 +</​code>​
 +
 +==== Import from SAMMA Solo Stylesheet ====
 +
 +<​code>​
 +
 +<?xml version="​1.0"​ encoding="​ISO-8859-13"?>​
 +
 +<​xsl:​stylesheet
 +
 + version="​1.0"​
 +
 + xmlns:​xsl="​http://​www.w3.org/​1999/​XSL/​Transform"​
 +
 + xmlns:​xl="​http://​www.w3.org/​TR/​xlink"​
 +
 + xmlns="​http://​www.wizardis.com.au/​2005/​12/​MAVIS">​
 +
 +<​!-- ​
 +
 +   Add digital files to a video, using SammaSolo xml
 +
 +   ​Modification History
 +
 +   ​********************
 +
 +   ​17/​07/​11 ​ JRR ???????? ​  ​Copied from sammaSolo_8bitMOV_DV_wmv_mov_flv.xsl
 +
 +   ​21/​07/​11 ​ JRR ???????? ​  ​Modified:​ got rid of extra tabs in reference material
 +
 +   ​14/​10/​11 ​ JRR ???????? ​  ​Modified:​ added Duration entry into seconds field
 +
 +   ​27/​10/​11 ​ JRR ???????? ​  ​Modified:​ added Duration for videoTapeCarrier
 +
 +   ​31/​10/​11 ​ JRR ???????? ​  ​Modified:​ added <​isOlcDisplay>​Y</​isOlcDisplay>​ to reference material
 +
 +   ​10/​07/​12 ​ JRR ???????? ​  ​Modified:​ changed INT file Sound Field from Mono to Stereo; changed software used to current Samma Solo version SS431
 +
 +   ​18/​07/​12 ​ JRR ???????? ​  ​Modified:​ added imported from field, value SAMMA
 +
 +
 +
 +
 +
 +NOTE: must update preservation folder number as it changes - current is preservation03
 +
 +This style sheet is CURRENT
 +
 +Use this stylesheet for the following prj files:
 +
 +HKG Umatic Uncompressed_dv_wmv_h.264_mxf_12_01_2011.prj
 +
 +   
 +
 +to do: TEST DURATION IMPORT! TEST IMPORTED FROM IMPORT!
 +
 +To do: Maybe want to add url prefix to ini file so that if it changes, each resource id does not have to be redone (this might mean the resource id type would be path/​filename) ​
 +
 +
 +
 +-->
 +
 + <​xsl:​output encoding="​ISO-8859-13"​ indent="​yes"/>​
 +
 + <​xsl:​variable name="​ofComponent"​ select="'​ of component '"/>​
 +
 + <​!--<​xsl:​variable name="​motionJPEG"​ select="'​_pres_2.mxf'"/> ​ -->
 +
 + <​xsl:​variable name="​url"​ select="'​http://​serverurl/'"/>​
 +
 + <​xsl:​variable name="​pdf"​ select="'​_solo.pdf'"/>​
 +
 + <​xsl:​variable name="​sammaSolo"​ select="'​Samma Solo'"/>​
 +
 + <​xsl:​variable name="​capSet"​ select="';​ '"/>​
 +
 +
 +
 +<​xsl:​template match="​SammaSolo">​
 +
 + <​mavis>​
 +
 + <​xsl:​for-each select="//​Settings">​
 +
 + <​xsl:​if test="​Details/​TapeId">​
 +
 + <​VideoTapeCarrier>​
 +
 + <​xsl:​attribute name="​xl:​href">​
 +
 + /​VideoTapeCarrier/​key/<​xsl:​value-of select="​Details/​TapeId"/>​
 +
 + </​xsl:​attribute>​
 +
 + <​xsl:​call-template name="​referenceMaterial"/>​
 +
 + <​durationSec><​xsl:​value-of select="​Duration"/></​durationSec>​
 +
 + </​VideoTapeCarrier>​
 +
 + </​xsl:​if>​
 +
 + </​xsl:​for-each>​
 +
 + <​xsl:​for-each select="​EncodedFiles/​*">​
 +
 + <​xsl:​if test="​Type!='​MOTION_JPEG2000'​ and Type!='​_acc_2.wmv'">​
 +
 + <​DigitalComponent>​
 +
 + <​xsl:​call-template name="​workOrUnattached"/>​
 +
 + <​typeMaterial>​V</​typeMaterial>​
 +
 + <​categoryMaterial>​
 +
 + <​xsl:​choose>​
 +
 + <​xsl:​when test="​Type='​_pres_1.mov'">​PC</​xsl:​when>​
 +
 + <​xsl:​when test="​Type='​_acc_1.mov'">​AC</​xsl:​when>​
 +
 + <​xsl:​when test="​Type='​_int_1.mov'">​IC</​xsl:​when>​
 +
 + </​xsl:​choose>​
 +
 + </​categoryMaterial>​
 +
 + <​collection><​xsl:​value-of select="​substring-after(substring-before(../​../​Settings/​Details/​Filename,'​_'​),'​c'​)"/></​collection>​
 +
 + <​itemDescr><​xsl:​value-of select="​../​../​Settings/​Details/​Description"/></​itemDescr>​
 +
 + <​importedFrom>​SAMMA</​importedFrom>​
 +
 + <​whoCaptured><​xsl:​value-of select="​../​../​Settings/​Details/​MigratedBy"/></​whoCaptured>​
 +
 + <​dateTimeCaptured><​xsl:​value-of select="​substring(../​../​Settings/​Details/​MigrationDateTime,​ 6, 2)"/>/<​xsl:​value-of select="​substring(../​../​Settings/​Details/​MigrationDateTime,​ 9, 2)"/>/<​xsl:​value-of select="​substring(../​../​Settings/​Details/​MigrationDateTime,​ 1, 4)"/>​ - <​xsl:​choose><​xsl:​when test="​substring(../​../​Settings/​Details/​MigrationDateTime,​ 12, 2) &gt; 12"><​xsl:​value-of select="​substring(../​../​Settings/​Details/​MigrationDateTime,​ 12, 2) - 12"/>:<​xsl:​value-of select="​substring(../​../​Settings/​Details/​MigrationDateTime,​ 15, 2)"/>:<​xsl:​value-of select="​substring(../​../​Settings/​Details/​MigrationDateTime,​ 18, 2)"/>​ PM</​xsl:​when><​xsl:​when test="​substring(../​../​Settings/​Details/​MigrationDateTime,​ 12, 2) = '​12'">​12:<​xsl:​value-of select="​substring(../​../​Settings/​Details/​MigrationDateTime,​ 15, 2)"/>:<​xsl:​value-of select="​substring(../​../​Settings/​Details/​MigrationDateTime,​ 18, 2)"/>​ PM</​xsl:​when><​xsl:​when test="​substring(../​../​Settings/​Details/​MigrationDateTime,​ 12, 2) = '​00'">​12:<​xsl:​value-of select="​substring(../​../​Settings/​Details/​MigrationDateTime,​ 15, 2)"/>:<​xsl:​value-of select="​substring(../​../​Settings/​Details/​MigrationDateTime,​ 18, 2)"/>​ AM</​xsl:​when><​xsl:​otherwise><​xsl:​value-of select="​substring(../​../​Settings/​Details/​MigrationDateTime,​ 12, 2)"/>:<​xsl:​value-of select="​substring(../​../​Settings/​Details/​MigrationDateTime,​ 15, 2)"/>:<​xsl:​value-of select="​substring(../​../​Settings/​Details/​MigrationDateTime,​ 18, 2)"/>​ AM</​xsl:​otherwise></​xsl:​choose></​dateTimeCaptured>​
 +
 + <​xsl:​call-template name="​componentCopyHistory"/>​
 +
 + <​xsl:​call-template name="​workOrUnattached"/>​
 +
 + <​carriers>​
 +
 + <​DigitalCarrier>​
 +
 + <​fileFormat>​
 +
 + <​xsl:​choose>​
 +
 + <​xsl:​when test="​Type='​_pres_1.mov'">​VQ</​xsl:​when>​
 +
 + <​xsl:​when test="​Type='​_acc_1.mov'">​VM4</​xsl:​when>​
 +
 + <​xsl:​when test="​Type='​_int_1.mov'">​VQ</​xsl:​when>​
 +
 + </​xsl:​choose>​
 +
 + </​fileFormat>​
 +
 + <​fileSize><​xsl:​value-of select="​FileSize"/></​fileSize>​
 +
 + <​xsl:​call-template name="​carrierCopyHistory"/>​
 +
 + <​!--<​xsl:​call-template name="​shaIdentifier"/>​-->​
 +
 + <​xsl:​call-template name="​resourceIdentifier"/>​
 +
 + <​captureDeviceType>​PCI</​captureDeviceType>​
 +
 + <​captureDeviceMake>​FPD</​captureDeviceMake>​
 +
 + <​captureDeviceModel><​xsl:​value-of select="​$sammaSolo"/></​captureDeviceModel>​
 +
 + <​captureDeviceSettings><​xsl:​value-of select="​../​../​Settings/​General/​Template"/><​xsl:​value-of select="​$capSet"/><​xsl:​value-of select="​../​../​Settings/​Encoder2/​ProjectFile"/></​captureDeviceSettings>​
 +
 + <​!--
 +
 + <​videoDurationHr></​videoDurationHr>​
 +
 + <​videoDurationMin></​videoDurationMin>​-->​
 +
 + <​videoDurationSec><​xsl:​value-of select="​Duration"/></​videoDurationSec>​
 +
 + <​dateTimeCaptured><​xsl:​value-of select="​substring(../​../​Settings/​Details/​MigrationDateTime,​ 6, 2)"/>/<​xsl:​value-of select="​substring(../​../​Settings/​Details/​MigrationDateTime,​ 9, 2)"/>/<​xsl:​value-of select="​substring(../​../​Settings/​Details/​MigrationDateTime,​ 1, 4)"/>​ - <​xsl:​choose><​xsl:​when test="​substring(../​../​Settings/​Details/​MigrationDateTime,​ 12, 2) &gt; 12"><​xsl:​value-of select="​substring(../​../​Settings/​Details/​MigrationDateTime,​ 12, 2) - 12"/>:<​xsl:​value-of select="​substring(../​../​Settings/​Details/​MigrationDateTime,​ 15, 2)"/>:<​xsl:​value-of select="​substring(../​../​Settings/​Details/​MigrationDateTime,​ 18, 2)"/>​ PM</​xsl:​when><​xsl:​when test="​substring(../​../​Settings/​Details/​MigrationDateTime,​ 12, 2) = '​12'">​12:<​xsl:​value-of select="​substring(../​../​Settings/​Details/​MigrationDateTime,​ 15, 2)"/>:<​xsl:​value-of select="​substring(../​../​Settings/​Details/​MigrationDateTime,​ 18, 2)"/>​ PM</​xsl:​when><​xsl:​when test="​substring(../​../​Settings/​Details/​MigrationDateTime,​ 12, 2) = '​00'">​12:<​xsl:​value-of select="​substring(../​../​Settings/​Details/​MigrationDateTime,​ 15, 2)"/>:<​xsl:​value-of select="​substring(../​../​Settings/​Details/​MigrationDateTime,​ 18, 2)"/>​ AM</​xsl:​when><​xsl:​otherwise><​xsl:​value-of select="​substring(../​../​Settings/​Details/​MigrationDateTime,​ 12, 2)"/>:<​xsl:​value-of select="​substring(../​../​Settings/​Details/​MigrationDateTime,​ 15, 2)"/>:<​xsl:​value-of select="​substring(../​../​Settings/​Details/​MigrationDateTime,​ 18, 2)"/>​ AM</​xsl:​otherwise></​xsl:​choose></​dateTimeCaptured>​
 +
 + <​operatingSystem>​WXP</​operatingSystem>​
 +
 + <​softwareUsed>​SS431</​softwareUsed>​
 +
 + <​xsl:​choose>​
 +
 + <​xsl:​when test="​Type='​_pres_1.mov'">​
 +
 + <​videoCompression>​UN8</​videoCompression>​
 +
 + <​videoSamplingHierarchy>​422</​videoSamplingHierarchy>​
 +
 + <​videoAspectRatio>​TV</​videoAspectRatio>​
 +
 + <​videoFrameLayout>​I</​videoFrameLayout>​
 +
 + <​videoColourSpace>​YCbCr</​videoColourSpace>​
 +
 + <​videoHeight>​480</​videoHeight>​
 +
 + <​videoWidth>​720</​videoWidth>​
 +
 + <​videoAudioCompression>​LP</​videoAudioCompression>​
 +
 + <​videoSoundField>​ST</​videoSoundField>​
 +
 + <​videoAudioSampleRate>​48</​videoAudioSampleRate>​
 +
 + <​videoAudioNoChannels>​2</​videoAudioNoChannels>​
 +
 + <​videoFrameRate>​29.97</​videoFrameRate>​
 +
 + </​xsl:​when>​
 +
 + <​xsl:​when test="​Type='​_acc_1.mov'">​
 +
 + <​videoCompression>​H264</​videoCompression>​
 +
 + <​!--<​videoSamplingHierarchy>​422</​videoSamplingHierarchy>​-->​
 +
 + <​videoAspectRatio>​TV</​videoAspectRatio>​
 +
 + <​videoFrameLayout>​D</​videoFrameLayout>​
 +
 + <​videoColourSpace>​YCbCr</​videoColourSpace>​
 +
 + <​videoHeight>​480</​videoHeight>​
 +
 + <​videoWidth>​640</​videoWidth>​
 +
 + <​videoAudioCompression>​AAC</​videoAudioCompression>​
 +
 + <​videoSoundField>​ST</​videoSoundField>​
 +
 + <​videoAudioSampleRate>​48</​videoAudioSampleRate>​
 +
 + <​videoAudioNoChannels>​2</​videoAudioNoChannels>​
 +
 + <​videoFrameRate>​29.97</​videoFrameRate>​
 +
 + </​xsl:​when>​
 +
 + <​xsl:​when test="​Type='​_int_1.mov'">​
 +
 + <​videoCompression>​DVCP25</​videoCompression>​
 +
 + <​videoSamplingHierarchy>​411</​videoSamplingHierarchy>​
 +
 + <​videoAspectRatio>​TV</​videoAspectRatio>​
 +
 + <​videoFrameLayout>​I</​videoFrameLayout>​
 +
 + <​videoColourSpace>​YCbCr</​videoColourSpace>​
 +
 + <​videoHeight>​480</​videoHeight>​
 +
 + <​videoWidth>​720</​videoWidth>​
 +
 + <​videoAudioCompression>​LP</​videoAudioCompression>​
 +
 + <​videoSoundField>​ST</​videoSoundField>​
 +
 + <​videoAudioSampleRate>​48</​videoAudioSampleRate>​
 +
 + <​videoAudioNoChannels>​2</​videoAudioNoChannels>​
 +
 + <​videoFrameRate>​29.97</​videoFrameRate>​
 +
 + </​xsl:​when>​
 +
 + </​xsl:​choose>​
 +
 + </​DigitalCarrier>​
 +
 + </​carriers>​
 +
 + </​DigitalComponent>​
 +
 + </​xsl:​if>​
 +
 + </​xsl:​for-each>​
 +
 +
 +
 + </​mavis>​
 +
 +</​xsl:​template>​
 +
 +
 +
 +<​xsl:​template match="​*">​
 +
 + <!-- Do not output anything except what's in the "​SAMMAPrep"​ template -->
 +
 +</​xsl:​template>​
 +
 +
 +
 +<​xsl:​template name="​carrierCopyHistory">​
 +
 + <xsl:if test="​../​../​Settings/​Details/​TapeId">​
 +
 + <​copiedFromItems>​
 +
 + <​ItemCopy>​
 +
 + <​item><​xsl:​attribute name="​xl:​href">/​VideoTapeCarrier/​key/<​xsl:​value-of select="​../​../​Settings/​Details/​TapeId"/></​xsl:​attribute></​item>​
 +
 + <​copiedDate><​xsl:​value-of select="​substring(../​../​Settings/​Details/​MigrationDateTime,​ 1, 10)"/></​copiedDate>​
 +
 + </​ItemCopy>​
 +
 + </​copiedFromItems>​
 +
 + </​xsl:​if>​
 +
 +</​xsl:​template>​
 +
 +
 +
 +
 +
 +<​xsl:​template name="​componentCopyHistory">​
 +
 + <xsl:if test="​contains(../​../​Settings/​Details/​TapeIdSequence,'​of component'​)">​
 +
 + <​copiedFromItems>​
 +
 + <​ItemCopy>​
 +
 + <​item><​xsl:​attribute name="​xl:​href">/​VideoTapeComponent/​key/<​xsl:​value-of select="​substring-after(../​../​Settings/​Details/​TapeIdSequence,​$ofComponent)"/></​xsl:​attribute></​item>​
 +
 + <​copiedDate><​xsl:​value-of select="​substring(../​../​Settings/​Details/​MigrationDateTime,​ 1, 10)"/></​copiedDate>​
 +
 + </​ItemCopy>​
 +
 + </​copiedFromItems>​
 +
 + </​xsl:​if>​
 +
 +</​xsl:​template>​
 +
 +
 +
 +<​xsl:​template name="​shaIdentifier">​
 +
 + <xsl:if test="​ShaDigest">​
 +
 + <​objectIdentifiers>​
 +
 + <​ObjectIdentifier>​
 +
 + <​identifier><​xsl:​value-of select="​ShaDigest"/></​identifier>​
 +
 + <​identifierType>​SHA-DIGEST</​identifierType>​
 +
 + </​ObjectIdentifier>​
 +
 + </​objectIdentifiers>​
 +
 + </​xsl:​if>​
 +
 +</​xsl:​template>​
 +
 +
 +
 +<​xsl:​template name="​resourceIdentifier">​
 +
 + <xsl:if test="​Filename">​
 +
 + <​objectResourceIdentifiers>​
 +
 + <​ResourceIdentifier>​
 +
 + <​resourceIdentifier>​
 +
 + <​xsl:​value-of select="​$url"/>​
 +
 + <​xsl:​choose>​
 +
 + <​xsl:​when test="​Type='​_pres_1.mov'">​preservation03/<​xsl:​value-of select="​../​../​Settings/​Details/​Filename"/><​xsl:​value-of select="​Type"/></​xsl:​when>​
 +
 + <​xsl:​when test="​Type='​_acc_1.mov'">​access/<​xsl:​value-of select="​../​../​Settings/​Details/​Filename"/>​_acc_1.mp4</​xsl:​when>​
 +
 + <​xsl:​when test="​Type='​_int_1.mov'">​intermediate/<​xsl:​value-of select="​../​../​Settings/​Details/​Filename"/><​xsl:​value-of select="​Type"/></​xsl:​when>​
 +
 + </​xsl:​choose>​
 +
 + </​resourceIdentifier>​
 +
 + <​resourceIdentifierType>​URL</​resourceIdentifierType>​
 +
 + </​ResourceIdentifier>​
 +
 + </​objectResourceIdentifiers>​
 +
 + </​xsl:​if>​
 +
 +</​xsl:​template>​
 +
 +
 +
 +<​xsl:​template name="​referenceMaterial">​
 +
 + <​objectReferenceMaterials>​
 +
 + <​ObjectReferenceMaterial>​
 +
 + <​referenceMaterialType>​SS</​referenceMaterialType>​
 +
 + <​isOlcDisplay>​Y</​isOlcDisplay>​
 +
 + <​objectResourceIdentifiers>​
 +
 + <​ResourceIdentifier>​
 +
 + <​resourceIdentifier>​
 +
 + <​xsl:​value-of select="​$url"/>​metadata/<​xsl:​value-of select="​Details/​Filename"/><​xsl:​value-of select="​$pdf"/>​
 +
 + </​resourceIdentifier>​
 +
 + <​resourceIdentifierType>​URL</​resourceIdentifierType>​
 +
 + </​ResourceIdentifier>​
 +
 + </​objectResourceIdentifiers>​
 +
 + </​ObjectReferenceMaterial>​
 +
 + </​objectReferenceMaterials>​
 +
 +</​xsl:​template>​
 +
 +
 +
 +<​xsl:​template name="​workOrUnattached">​
 +
 + <​xsl:​variable name="​tapeId"><​xsl:​value-of select="​../​../​Settings/​Details/​TapeIdSequence"/></​xsl:​variable>​
 +
 + <​xsl:​variable name="​workId"><​xsl:​value-of select="​substring-before(substring-after($tapeId,​$ofComponent),'​-'​)"/></​xsl:​variable>​
 +
 +
 +
 + <​xsl:​choose>​
 +
 + <​xsl:​when test="​contains($tapeId,​$ofComponent)">​
 +
 + <​xsl:​choose>​
 +
 + <​xsl:​when test="​$workId != ''">​
 +
 + <​work><​xsl:​attribute name="​xl:​href">/​Work/​key/<​xsl:​value-of select="​$workId"/></​xsl:​attribute></​work>​
 +
 + </​xsl:​when>​
 +
 + <​xsl:​otherwise><​isUnattached>​Y</​isUnattached></​xsl:​otherwise>​
 +
 + </​xsl:​choose>​
 +
 + </​xsl:​when>​
 +
 + <​xsl:​otherwise><​isUnattached>​Y</​isUnattached></​xsl:​otherwise>​
 +
 + </​xsl:​choose>​
 +
 +</​xsl:​template>​
 +
 +
 +
 +
 +
 +</​xsl:​stylesheet>​
 +
 +
 +
 +</​code>​
 +
 +==== Export for Online Spreadsheet Stylesheet ====
 +
 +<​code>​
 +
 +<?xml version="​1.0"​ encoding="​UTF-8"?>​
 +
 +<​xsl:​stylesheet
 +
 + version="​1.0"​
 +
 + xmlns:​xsl="​http://​www.w3.org/​1999/​XSL/​Transform"​
 +
 + xmlns:​fo="​http://​www.w3.org/​1999/​XSL/​Format"​
 +
 + xmlns:​xl="​http://​www.w3.org/​TR/​xlink"​
 +
 + xmlns:​mv="​http://​www.wizardis.com.au/​2005/​12/​MAVIS">​
 +
 +
 +
 +<​!-- ​
 +
 +   ​Create export for Access File Creation Spreadsheet
 +
 +
 +
 +   ​Modification History
 +
 +   ​********************
 +
 +   ​18/​04/​11 ​ JRR ???????? ​  ​Created
 +
 +   ​20/​12/​11 ​ JRR ???????? ​  Added file names for special case copied from (this can be commented out), added title numbers
 +
 +
 +
 +Media specialist searches for digital acquisition with category IC; selects all; exports using this stylesheet
 +
 +This stylesheet is also used for sammaPostMigrationMetadata procedures.
 +
 +
 +
 +-->
 +
 +
 +
 + <​xsl:​output method="​text"/>​
 +
 + <​xsl:​variable name="​cr"​ select="'&#​xA;'"/>​
 +
 + <​xsl:​variable name="​delim"​ select="'​^'"/>​
 +
 +
 +
 +<​xsl:​template match="​mv:​mavis">​Item Description^Component Item Number^Carrier Item Number^Copied From^File Name Int^File Name Acc^Title Number
 +
 +<​xsl:​for-each select="//​mv:​DigitalCarrier">​
 +
 + <​xsl:​value-of select="​../​../​mv:​itemDescr"/><​xsl:​value-of select="​$delim"/>​
 +
 + <​!--<​xsl:​value-of select="​substring-after(../​../​mv:​collection/​@xl:​href,'/​Collection/​key/'​)"/><​xsl:​value-of select="​$delim"/>​-->​
 +
 + <​xsl:​value-of select="​../​../​mv:​itemId"/><​xsl:​value-of select="​$delim"/>​
 +
 + <​xsl:​value-of select="​mv:​itemId"/><​xsl:​value-of select="​$delim"/>​
 +
 + <​xsl:​for-each select="​.//​mv:​ResourceIdentifier">​
 +
 + <​xsl:​value-of select="​mv:​resourceIdentifier"/><​xsl:​value-of select="​$delim"/>​
 +
 + </​xsl:​for-each>​c<​xsl:​value-of select="​substring-after(../​../​mv:​collection/​@xl:​href,'/​Collection/​key/'​)"/>​_<​xsl:​value-of select="​mv:​itemId"/>​_int_1.mov<​xsl:​value-of select="​$delim"/>​c<​xsl:​value-of select="​substring-after(../​../​mv:​collection/​@xl:​href,'/​Collection/​key/'​)"/>​_<​xsl:​value-of select="​mv:​itemId"/>​_acc_1.mp4<​xsl:​value-of select="​$delim"/>​
 +
 + <​xsl:​value-of select="​substring-after(mv:​work/​@xl:​href,'/​TitleWork/​key/'​)"/>​
 +
 + <​xsl:​value-of select="​$cr"/>​
 +
 + </​xsl:​for-each>​
 +
 +</​xsl:​template>​
 +
 +
 +
 +</​xsl:​stylesheet>​
 +
 +</​code>​
 +
 +==== Import from Online Spreadsheet Stylesheet ====
 +
 +<​code>​
 +
 +<?xml version="​1.0"​ encoding="​ISO-8859-13"?>​
 +
 +<​xsl:​stylesheet
 +
 + version="​1.0"​
 +
 + xmlns:​xsl="​http://​www.w3.org/​1999/​XSL/​Transform"​
 +
 + xmlns:​xl="​http://​www.w3.org/​TR/​xlink"​
 +
 + xmlns="​http://​www.wizardis.com.au/​2005/​12/​MAVIS">​
 +
 +<​!-- ​
 +
 +   Add digital components and migration data to a video or film, using vendor xml
 +
 +   ​Modification History
 +
 +   ​********************
 +
 +   ​11/​08/​11 ​ JRR ???????? ​  ​Copied from vendor import access Stylesheet
 +
 +   ​18/​07/​12 ​ JRR ???????? ​  ​Modified:​ Added check to only import migrated records; Added href attribute to identify correct files; eliminated fields that are extraneous; eliminated obsolete templates; added templates for other file checksums; added for int and acc; 
 +
 +   ​19/​07/​12 ​ JRR ???????? ​  ​Modified:​ changed encompassing if statement to check the dataEntryComplete field instead of migrated field
 +
 +
 +
 +NEED TO TEST!!!! ​
 +
 +
 +
 +to do: add bit rate stuff?
 +
 +TO DO: do we want to make if statements so that xml conversion failure warnings about empty tags being ignored do not appear?
 +
 +TO DO: WILL Carrier Notes FIELD BE OVERWRITTEN? ​ IS THERE A WAY TO APPEND INFO???
 +
 +
 +
 +-->
 +
 + <​xsl:​output encoding="​ISO-8859-13"​ indent="​yes"/>​
 +
 + <​xsl:​variable name="​cr"​ select="'&#​xA;'"/>​
 +
 + <​xsl:​variable name="​macPro"​ select="'​Mac Pro'"/>​
 +
 +
 +
 +<​xsl:​template match="​document">​
 +
 + <​mavis>​
 +
 + <​xsl:​for-each select="//​record">​
 +
 + <​xsl:​if test="​string(dataEntryComplete)">​
 +
 +
 +
 + <​xsl:​if test="​string(presChecksum)">​
 +
 + <​DigitalComponent>​
 +
 + <​xsl:​attribute name="​xl:​href">​
 +
 + /​DigitalComponent/​key/<​xsl:​value-of select"​presComponentNumber"/>​
 +
 + </​xsl:​attribute>​
 +
 + <​xsl:​choose>​
 +
 + <​xsl:​when test="​string(titleNo)">​
 +
 + <​work><​xsl:​attribute name="​xl:​href">/​Work/​key/<​xsl:​value-of select="​titleNo"/></​xsl:​attribute></​work>​
 +
 + </​xsl:​when>​
 +
 + <​xsl:​otherwise><​isUnattached>​Y</​isUnattached></​xsl:​otherwise>​
 +
 + </​xsl:​choose>​
 +
 + <​carriers>​
 +
 + <​DigitalCarrier>​
 +
 + <​xsl:​attribute name="​xl:​href">​
 +
 + /​DigitalCarrier/​key/<​xsl:​value-of select"​presCarrierNumber"/>​
 +
 + </​xsl:​attribute>​
 +
 + <​whoExamined><​xsl:​value-of select="​presExaminedBy"/></​whoExamined>​
 +
 + <​xsl:​call-template name="​presChecksum"/>​
 +
 +
 +
 + <​videoColourType><​xsl:​value-of select="​colorType"/></​videoColourType>​
 +
 + <​notes>​HKG Examiner Notes: <​xsl:​value-of select="​examinerNotes"/><​xsl:​value-of select="​$cr"/><​xsl:​value-of select="​$cr"/>​Audio:​ <​xsl:​value-of select="​audio"/></​notes>​
 +
 + </​DigitalCarrier>​
 +
 + </​carriers>​
 +
 + </​DigitalComponent>​
 +
 + </​xsl:​if>​
 +
 +
 +
 + <​xsl:​if test="​string(intChecksum)">​
 +
 + <​DigitalComponent>​
 +
 + <​xsl:​attribute name="​xl:​href">​
 +
 + /​DigitalComponent/​key/<​xsl:​value-of select"​intComponentNumber"/>​
 +
 + </​xsl:​attribute>​
 +
 + <​xsl:​choose>​
 +
 + <​xsl:​when test="​string(titleNo)">​
 +
 + <​work><​xsl:​attribute name="​xl:​href">/​Work/​key/<​xsl:​value-of select="​titleNo"/></​xsl:​attribute></​work>​
 +
 + </​xsl:​when>​
 +
 + <​xsl:​otherwise><​isUnattached>​Y</​isUnattached></​xsl:​otherwise>​
 +
 + </​xsl:​choose>​
 +
 + <​carriers>​
 +
 + <​DigitalCarrier>​
 +
 + <​xsl:​attribute name="​xl:​href">​
 +
 + /​DigitalCarrier/​key/<​xsl:​value-of select"​intCarrierNumber"/>​
 +
 + </​xsl:​attribute>​
 +
 + <​whoExamined><​xsl:​value-of select="​intExaminedBy"/></​whoExamined>​
 +
 + <​xsl:​call-template name="​intChecksum"/>​
 +
 +
 +
 + <​videoColourType><​xsl:​value-of select="​colorType"/></​videoColourType>​
 +
 + <​notes>​HKG Examiner Notes: <​xsl:​value-of select="​examinerNotes"/><​xsl:​value-of select="​$cr"/><​xsl:​value-of select="​$cr"/>​Audio:​ <​xsl:​value-of select="​audio"/></​notes>​
 +
 + </​DigitalCarrier>​
 +
 + </​carriers>​
 +
 + </​DigitalComponent>​
 +
 + </​xsl:​if>​
 +
 +
 +
 + <​xsl:​if test="​string(accChecksum)">​
 +
 + <​DigitalComponent>​
 +
 + <​xsl:​attribute name="​xl:​href">​
 +
 + /​DigitalComponent/​key/<​xsl:​value-of select"​accComponentNumber"/>​
 +
 + </​xsl:​attribute>​
 +
 + <​xsl:​choose>​
 +
 + <​xsl:​when test="​string(titleNo)">​
 +
 + <​work><​xsl:​attribute name="​xl:​href">/​Work/​key/<​xsl:​value-of select="​titleNo"/></​xsl:​attribute></​work>​
 +
 + </​xsl:​when>​
 +
 + <​xsl:​otherwise><​isUnattached>​Y</​isUnattached></​xsl:​otherwise>​
 +
 + </​xsl:​choose>​
 +
 + <​carriers>​
 +
 + <​DigitalCarrier>​
 +
 + <​xsl:​attribute name="​xl:​href">​
 +
 + /​DigitalCarrier/​key/<​xsl:​value-of select"​accCarrierNumber"/>​
 +
 + </​xsl:​attribute>​
 +
 + <​whoExamined><​xsl:​value-of select="​accExaminedBy"/></​whoExamined>​
 +
 + <​xsl:​call-template name="​accChecksum"/>​
 +
 +
 +
 + <​videoColourType><​xsl:​value-of select="​colorType"/></​videoColourType>​
 +
 + <​notes>​HKG Examiner Notes: <​xsl:​value-of select="​examinerNotes"/><​xsl:​value-of select="​$cr"/><​xsl:​value-of select="​$cr"/>​Audio:​ <​xsl:​value-of select="​audio"/></​notes>​
 +
 + </​DigitalCarrier>​
 +
 + </​carriers>​
 +
 + </​DigitalComponent>​
 +
 + </​xsl:​if>​
 +
 +
 +
 + </​xsl:​if>​
 +
 + </​xsl:​for-each>​
 +
 +
 +
 + </​mavis>​
 +
 +</​xsl:​template>​
 +
 +
 +
 +
 +
 +<​xsl:​template match="​*">​
 +
 + <!-- Do not output anything except what's in the "​shipment"​ template -->
 +
 +</​xsl:​template>​
 +
 +
 +
 +<​xsl:​template name="​presChecksum">​
 +
 + <xsl:if test="​string(presChecksum)">​
 +
 + <​objectIdentifiers>​
 +
 + <​ObjectIdentifier>​
 +
 + <​identifier><​xsl:​value-of select="​presChecksum"/></​identifier>​
 +
 + <​identifierType>​HKGCS</​identifierType>​
 +
 + </​ObjectIdentifier>​
 +
 + </​objectIdentifiers>​
 +
 + </​xsl:​if>​
 +
 +</​xsl:​template>​
 +
 +
 +
 +<​xsl:​template name="​intChecksum">​
 +
 + <xsl:if test="​string(intChecksum)">​
 +
 + <​objectIdentifiers>​
 +
 + <​ObjectIdentifier>​
 +
 + <​identifier><​xsl:​value-of select="​intChecksum"/></​identifier>​
 +
 + <​identifierType>​HKGCS</​identifierType>​
 +
 + </​ObjectIdentifier>​
 +
 + </​objectIdentifiers>​
 +
 + </​xsl:​if>​
 +
 +</​xsl:​template>​
 +
 +
 +
 +<​xsl:​template name="​accChecksum">​
 +
 + <xsl:if test="​string(accChecksum)">​
 +
 + <​objectIdentifiers>​
 +
 + <​ObjectIdentifier>​
 +
 + <​identifier><​xsl:​value-of select="​accChecksum"/></​identifier>​
 +
 + <​identifierType>​HKGCS</​identifierType>​
 +
 + </​ObjectIdentifier>​
 +
 + </​objectIdentifiers>​
 +
 + </​xsl:​if>​
 +
 +</​xsl:​template>​
 +
 +
 +
 +
 +
 +</​xsl:​stylesheet>​
 +
 +
 +
 +</​code>​
playground/mavis-samma_integration.1343779545.txt.gz · Last modified: 2019/06/28 16:42 (external edit)