Changeset 6568 for TI01-discovery-Ingest


Ignore:
Timestamp:
12/02/10 16:18:32 (10 years ago)
Author:
sdonegan
Message:

updated with correct xpaths and methods needed to support ingest of medin v2.3 information

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TI01-discovery-Ingest/trunk/v4n_MEDIN/ingestAutomation-upgrade/OAIBatch/medin_2_3_ISO19139.py

    r6545 r6568  
    1313        def __init__(self): 
    1414                 
    15                 logging.info("Initiated ISO data model: GCMD converted to ISO19139 MEDIN v? profile") 
     15                logging.info("Initiated ISO data model: MEDIN_v2.3 profile (accessor class date = 09/02/2010 SJD") 
    1616         
    1717        ''' 
     
    2020        def datasetID(self): 
    2121                 
    22                 datasetID = (self.dataSetName.__name__,{1:{'xpath':'gmd:fileIdentifier/gco:CharacterString'}}) 
     22                datasetID = (self.datasetID.__name__,{1:{'xpath':'gmd:fileIdentifier/gco:CharacterString'}}) 
    2323                 
    2424                return datasetID 
     
    2929                ''' 
    3030                 
    31                 datasetName = (self.dataSetName.__name__,{1:{'xpath':'gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/title/gco:CharacterString'}}) 
     31                datasetName = (self.dataSetName.__name__,{1:{'xpath':'gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:title/gco:CharacterString'}}) 
    3232                 
    3333                return datasetName 
     
    5151                dataCentreName = (self.dataCentreName.__name__,{1:{ 
    5252                                                                                                        'baseXpath':'gmd:contact/gmd:CI_ResponsibleParty', 
    53                                                                                                         'elValXpath':'organisationName/gco:CharacterString', 
    54                                                                                                         'depValXpath':'role/gmd:CI_RoleCode', 
    55                                                                                                         'depVal':'disributor'}}) 
     53                                                                                                        'elValXpath':'gmd:organisationName/gco:CharacterString', 
     54                                                                                                        'depValXpath':'gmd:role/gmd:CI_RoleCode', 
     55                                                                                                        'depVal':'pointOfContact'}}) 
    5656                 
    5757                return dataCentreName 
     
    6464                ''' 
    6565                                 
    66                 date = (self.boundingDates.__name__,{1:{'xpath':'gmd:identificationInfo/gmd:extent/gmd:EX_Extent/gmd:temporalElement/gmd:EX_TemporalExtent/gmd:extent/gml:TimePeriod/gml:beginPosition'}}, 
    67                                                                                         {2:{'xpath':'gmd:identificationInfo/gmd:extent/gmd:EX_Extent/gmd:temporalElement/gmd:EX_TemporalExtent/gmd:extent/gml:TimePeriod/gml:endPosition'}}, 
     66                date = (self.boundingDates.__name__,{1:{'xpath':'gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:temporalElement/gmd:EX_TemporalExtent/gmd:extent/gml:TimePeriod/gml:beginPosition'}}, 
     67                                                                                        {2:{'xpath':'gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:temporalElement/gmd:EX_TemporalExtent/gmd:extent/gml:TimePeriod/gml:endPosition'}}, 
    6868                                                                                        {'order':{'start':1,'end':2}}) 
    6969                                                                 
     
    7878                                 
    7979                #NOTE coords in north,south,east,west sequence 
    80                 coordinates = (self.coordinates.__name__,{1:{'xpath':'gmd:identificationInfo/gmd:extent/gmd:EX_Extent/gmd:geographicElement/gmd:EX_GeographicBoundingBox/gmd:northBoundLongitude/gco:Decimal'}}, 
    81                                                                         {2:{'xpath':'gmd:identificationInfo/gmd:extent/gmd:EX_Extent/gmd:geographicElement/gmd:EX_GeographicBoundingBox/gmd:southBoundLongitude/gco:Decimal'}}, 
    82                                                                         {3:{'xpath':'gmd:identificationInfo/gmd:extent/gmd:EX_Extent/gmd:geographicElement/gmd:EX_GeographicBoundingBox/gmd:eastBoundLongitude/gco:Decimal'}}, 
    83                                                                         {4:{'xpath':'gmd:identificationInfo/gmd:extent/gmd:EX_Extent/gmd:geographicElement/gmd:EX_GeographicBoundingBox/gmd:westBoundLongitude/gco:Decimal'}}, 
     80                coordinates = (self.coordinates.__name__,{1:{'xpath':'gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:geographicElement/gmd:EX_GeographicBoundingBox/gmd:northBoundLatitude/gco:Decimal'}}, 
     81                                                                        {2:{'xpath':'gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:geographicElement/gmd:EX_GeographicBoundingBox/gmd:southBoundLatitude/gco:Decimal'}}, 
     82                                                                        {3:{'xpath':'gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:geographicElement/gmd:EX_GeographicBoundingBox/gmd:eastBoundLongitude/gco:Decimal'}}, 
     83                                                                        {4:{'xpath':'gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:geographicElement/gmd:EX_GeographicBoundingBox/gmd:westBoundLongitude/gco:Decimal'}}, 
    8484                                                                        {'order':{'north':1,'south':2,'east':3,'west':4}}) 
    8585                 
     
    101101                ''' 
    102102                See notes in metadataDates for tuple format 
     103                 
     104                1. According to MEDIN profile (element 22 p37) -for authors I will use "individualName" whatever roleCode is - as currently (11/02/10) understand author in this context 
     105                   to be any identified individual contributing to the dataset.  To restrict to actual roles, use compound xpath type. 
     106                 
    103107                ''' 
    104108                 
    105109                authors = (self.authors.__name__,{1:{'xpath':'gmd:contact/gmd:CI_ResponsibleParty/gmd:individualName/gco:CharacterString'}}) 
    106                  
     110                                         
    107111                return authors 
    108112         
     
    111115                ''' 
    112116                See notes in metadataDates for tuple format 
     117                 
     118                1. For MEDIN use the TopicCategories for parameters (not handled differently than in DIF's 
    113119                ''' 
    114120                #Note that in StubISO same element structure is used for related_urls! 
     121                 
     122                parameters = (self.parameters.__name__, {1:{'xpath':'gmd:identificationInfo/gmd:MD_DataIdentification/gmd:topicCategory/gmd:MD_TopicCategoryCode'}}) 
     123                 
     124                ''' 
    115125                parameters = (self.parameters.__name__,{1:{                                                                      
    116126                'baseXpath':'distributionInfo/gmd:MD_Distribution/transferOptions', 
     
    118128                'depValXpath':'gmd:MD_DigitalTransferOptions/gmd:onLine/gmd:CI_OnlineResource/function/gmd:CI_onLineFunctionCode', 
    119129                'depVal':'DIF:PARAMETERS'}}) 
     130                ''' 
    120131                 
    121132                return parameters 
    122                  
     133         
     134         
     135         
     136        def resourceType(self): 
     137         
     138                ''' 
     139                Method to extract and return resourceType - extra column required for this 'searchTarget' requested by Gaynor. 
     140                 
     141                MEDIN element 4 p12              
     142                 
     143                ''' 
     144                 
     145                resource = (self.resourceType.__name__,{1:{'xpath':'gmd:hierarchyLevel/gmd:MD_ScopeCode'}}) 
     146         
     147                return resource 
     148         
     149         
     150         
     151         
     152        def topicCategory(self): 
     153                ''' 
     154                Method to extract and return topicCategory 
     155                 
     156                MEDIN element 9 p16, 
     157                 
     158                NB - equivalent to standard NDG ingest field  
     159                ''' 
     160                 
     161                topicCategory = (self.resourceType.__name__,{1:{'xpath':'gmd:identificationInfo/gmd:MD_DataIdentification/gmd:topicCategory/gmd:MD_TopicCategoryCode'}}) 
     162         
     163                return topicCategory 
     164                 
     165         
     166         
     167         
     168        def lineage(self): 
     169                ''' 
     170                Method to extract and return lineage values. - extra column required for this 'searchTarget' requested by Gaynor. 
     171                 
     172                MEDIN element 17 p29 
     173                ''' 
     174                 
     175                lineage = (self.lineage.__name__,{1:{'xpath':'gmd:dataQualityInfo/gmd:DQ_DataQuality/gmd:lineage/gmd:LI_Lineage/gmd:statement/gco:CharacterString'}}) 
     176                 
     177                return lineage 
     178         
     179         
     180        def publicAccessLimitations(self): 
     181                ''' 
     182                Method to extract and return info on public access limitations - extra column required for this 'searchTarget' requested by Gaynor. 
     183                 
     184                MEDIN element 20 p33 
     185                ''' 
     186                 
     187                publicAccess = (self.publicAccessLimitations.__name__,{1:{'xpath':'gmd:identificationInfo/gmd:MD_DataIdentification/gmd:resourceContstraints/gmd:MD_Constraints/gmd:useLimitation/gco:CharacterString'}}) 
     188                 
     189                return publicAccess 
     190         
     191         
     192        def dataOriginator(self): 
     193                ''' 
     194                Method to extract and return info on the Data Originator 
     195                 
     196                MEDIN element 22.1 p35.  For this will return a list of organisation names. 
     197                ''' 
     198                 
     199                originator = (self.dataOriginator.__name__,{1:{'xpath':'gmd:identificationInfo/gmd:MD_DataIdentification/gmd:pointOfContact/gmd:CI_ResponsibleParty/gmd:organisationName/gco:CharacterString'}})  
     200                 
     201                return originator 
     202         
     203         
    123204         
    124205        def keywords(self): 
     
    126207                ''' 
    127208                See notes in metadataDates for tuple format 
    128                 ''' 
    129                 keywords = (self.keywords.__name__,{1:{'xpath':'gmd:identificationInfo/gmd:descriptiveKeywords/gmd:MD_Keywords/gmd:keyword/gmx:anchor'}}, 
    130                                                                                 {2:{'xpath':'gmd:identificationInfo/gmd:topicCategory/gmd:MD_TopicCategoryCode'}} 
    131                                                  
     209                 
     210                1. For MEDIN see Element 11 p18 - currently this method LUMPS ALL ISO keywords together!!! 
     211                ''' 
     212                keywords = (self.keywords.__name__,{1:{'xpath':'gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords/gmd:keyword/gco:CharacterString'}}, 
     213                                                                                        {2:{'xpath':'gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords/gmd:keyword/gmx:Anchor'}} 
     214                                                                                 
    132215                                ) 
    133216                 
     
    139222                Method containing standard iso xpath for URL's to be changed for purposes of NDG redirect 
    140223                 
    141                 ''' 
    142                  
    143                 urls = (self.urlsToChange.__name__,{1:{'xpath':'gmd:dataSetURI/gco:CharacterString'}}, 
    144                         {2:{                                                                     
     224                MEDIN - updated to change home pages, resources etc : Element 5.1 (resource locator url), Element 7 (coupled resource) 
     225                 
     226                ''' 
     227                 
     228                urls = (self.urlsToChange.__name__, 
     229                        {1:{'xpath':'distributionInfo/gmd:MD_Distribution/gmd:transferOptions/gmd:MD_DigitalTransferOptions/gmd:onLine/gmd:CI_OnlineResource/gmd:linkage/gmd:URL'}}) 
     230                         
     231                '''                                                              
    145232                'baseXpath':'distributionInfo/gmd:MD_Distribution/transferOptions', 
    146233                'elValXpath':'gmd:MD_DigitalTransferOptions/gmd:onLine/gmd:CI_OnlineResource/gmd:linkage/gmd:URL', 
     
    151238                                                                                                        'depValXpath':'function/gmd:CI_onLineFunctionCode', 
    152239                                                                                                        'depVal':'DIF:DC_URL'}} 
    153                 ) 
     240                ''' 
    154241                 
    155242                return urls 
    156243                 
    157          
    158244         
    159245         
     
    173259                ''' 
    174260                 
    175                 creationDate = (self.metadataCreationDate.__name__,{1:{'baseXpath':'gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/date', 
    176                                                                                                                         'elValXpath':'gmd:CI_Date/date/gco:DateTime', 
    177                                                                                                                         'depValXpath':'gmd:CI_Date/dateType/gmd:CI_DateTypeCode', 
     261                creationDate = (self.metadataCreationDate.__name__,{1:{'baseXpath':'gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:date', 
     262                                                                                                                        'elValXpath':'gmd:CI_Date/gmd:date/gco:Date', 
     263                                                                                                                        'depValXpath':'gmd:CI_Date/gmd:dateType/gmd:CI_DateTypeCode', 
    178264                                                                                                                        'depVal':'creation'}}) 
    179                  
    180                  
     265                                 
    181266                return creationDate 
    182267         
     268         
    183269        ''' 
    184270        Return xpaths to revisionDate 
    185271        ''' 
     272        def metadataPublicationDate(self): 
     273                 
     274                publicationDate = (self.metadataPublicationDate.__name__,{1:{'baseXpath':'gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:date', 
     275                                                                                                                        'elValXpath':'gmd:CI_Date/gmd:date/gco:Date', 
     276                                                                                                                        'depValXpath':'gmd:CI_Date/gmd:dateType/gmd:CI_DateTypeCode', 
     277                                                                                                                        'depVal':'publication'}}) 
     278                 
     279                return publicationDate 
     280         
     281         
     282        ''' 
     283        Return xpaths to revisionDate 
     284        ''' 
    186285        def metadataRevisionDate(self): 
    187286                 
    188                 revisionDate = (self.metadataRevisionDate.__name__,{1:{'baseXpath':'gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/date', 
    189                                                                                                                         'elValXpath':'gmd:CI_Date/date/gco:DateTime', 
    190                                                                                                                         'depValXpath':'gmd:CI_Date/dateType/gmd:CI_DateTypeCode', 
     287                revisionDate = (self.metadataRevisionDate.__name__,{1:{'baseXpath':'gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:date', 
     288                                                                                                                        'elValXpath':'gmd:CI_Date/gmd:date/gco:Date', 
     289                                                                                                                        'depValXpath':'gmd:CI_Date/gmd:dateType/gmd:CI_DateTypeCode', 
    191290                                                                                                                        'depVal':'revision'}}) 
    192291                 
    193292                return revisionDate 
    194                  
     293         
     294         
     295        def metadataUpdateDate(self):            
     296                ''' 
     297                Method to extract and return the timestamp of the metadata 
     298                 
     299                MEDIN element 26 p 43 
     300                ''' 
     301                 
     302                updateDate = (self.metadataUpdateDate.__name__,{1:{'xpath':'gmd:dateStamp/gco:Date'}}) 
     303                 
     304                return updateDate 
     305                 
Note: See TracChangeset for help on using the changeset viewer.