source: TI07-MOLES/trunk/DIF/XQuery/DIF2MOLES.xquery @ 1795

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/TI07-MOLES/trunk/DIF/XQuery/DIF2MOLES.xquery@1795
Revision 1795, 5.5 KB checked in by ko23, 13 years ago (diff)

MDIP interim

Line 
1(: Note algoritm for creating non-pre-existing organisations :)
2 (: dgPersons are not created as one can't tell automatically which are people and which are orgs, and orgs are simpler :) 
3
4declare default element namespace 'http://ndg.nerc.ac.uk/moles';
5declare namespace dif='http://gcmd.gsfc.nasa.gov/Aboutus/xml/dif/';
6declare namespace xsi='http://www.w3.org/2001/XMLSchema-instance';
7declare namespace f='http://ndg.nerc.ac.uk/moles/localfunctions';
8declare variable $gcmd_science_valids as xs:string {'http://gcmd.gsfc.nasa.gov/Resources/valids/gcmd_parameters.html'};
9declare variable $gcmd_project_valids as xs:string {'http://gcmd.gsfc.nasa.gov/Resources/valids/projects.html'};
10declare variable $cf_standard_names as xs:string {'http://www.cgd.ucar.edu/cms/eaton/cf-metadata/standard_name.html'};
11declare variable $iso_topic_list as xs:string {'http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#MD_TopicCategoryCode'};
12declare variable $input_repository as xs:string {'Input_Repository_Code'};
13declare variable $input_repository_local as xs:string {'Input_Repository_Code_LocalID'};
14
15element dgMetadata {
16for $DIF in collection('/db/discovery')/dif:DIF
17return
18        element dgMetadataRecord {
19                element dgMetadataID {
20                        element schemeIdentifier {'NDG-B0'},
21                        element repositoryIdentifier {$input_repository},
22                        element localIdentifier {string($DIF/dif:Entry_ID)}
23                },
24                element dgMetadataDescription {
25                        element metadataDescriptionID {
26                                element schemeIdentifier {'NDG-B0'},
27                                element repositoryIdentifier {$input_repository},
28                                element localIdentifier {concat('generated_desc-', string($DIF/dif:Entry_ID))}
29                        },
30                        element metadataDescriptionLastUpdated {current-dateTime()}                     ,
31                        element abstract {
32                                element abstractText {string($DIF/dif:Summary)}
33                        }
34                },
35                element name {string($DIF/dif:Entry_Title)},
36                element abbreviation {string($DIF/dif:Entry_Title)},
37                element dgDataEntity {
38                        element dgDataSetType {''},
39                        element dgDataSummary {
40                                element dgParameterSummary {
41                                        element dgStandardParameterMeasured {
42                                                element dgValidTerm {'dummy'},
43                                                element dgValidTermID {
44                                                        element parentListID {'http://vocabs.ndg.nerc.ac.uk/null.'},
45                                                        element termID {escape-uri('dummy term', true())}
46                                                },
47                                        element ParameterName {'dummy term'},
48                                        element ParameterAbbreviation {'dummy term'}
49                                        }
50                                }
51                        },
52                        element dgDataRoles {
53                                if (exists($DIF/(dif:Data_Set_Citation/dif:Dataset_Creator | dif:Originating_Center))) then
54                                        element dgDataCreator {
55                                                element dgMetadataID {
56                                                        element schemeIdentifier {'NDG-B0'},
57                                                        element repositoryIdentifier {$input_repository},
58                                                        element localIdentifier {concat('generated_creator-', string($DIF/dif:Entry_ID))}
59                                                },
60                                                element roleName {'Data Creator'},
61                                                element abbreviation {'Creator'},
62                                                for $creatorID in $DIF/(dif:Data_Set_Citation/dif:Dataset_Creator | dif:Originating_Center)
63                                                return
64                                                element dgRoleHolder {
65                                                        element dgOrganisationID {
66                                                                element schemeIdentifier {'NDG-B0'},
67                                                                element repositoryIdentifier {$input_repository},
68                                                                element localIdentifier  {escape-uri(concat('generated_orgcit-', string($creatorID)), true())}
69                                                        },
70                                                element startDate {current-dateTime()}
71                                                }
72                                        }
73                                else (),
74                                element dgDataCurator {
75                                        element dgMetadataID {
76                                                element schemeIdentifier {'NDG-B0'},
77                                                element repositoryIdentifier {$input_repository},
78                                                element localIdentifier {concat('generated_curator-', string($DIF/dif:Entry_ID))}
79                                        },
80                                        element roleName {'Data Curator'},
81                                        element abbreviation {'Curator'},
82                                        element dgRoleHolder {
83                                                element dgOrganisationID {
84                                                        element schemeIdentifier {'NDG-B0'},
85                                                        element repositoryIdentifier {$input_repository},
86                                                        element localIdentifier {$input_repository_local}
87                                                },
88                                        element startDate {current-dateTime()}
89                                        }
90                                }
91                        }
92                },
93                for $structuredKeywords in $DIF/Keywords
94                return
95                        element dgStructuredKeywords {
96                                element dgValidTerm {$structuredKeywords},
97                                element dgValidTermID {
98                                        element parentListID {'http://vocab.ndg.nerc.ac.uk/null.'},
99                                        element termID {escape-uri($structuredKeywords, true())}
100                                }
101                        },
102                if (exists($DIF/dif:DIF_Creation_Date) or exists($DIF/dif:Last_DIF_Revision_Date)) then
103                        element dgMetadataProvenance {
104                                if (exists($DIF/dif:DIF_Creation_Date)) then
105                                        element RecordCreation {
106                                                element CreatedDate {string($DIF/dif:DIF_Creation_Date)},
107                                                element CreatedBy {$input_repository}
108                                        }
109                                else
110                                        element RecordCreation {
111                                                element CreatedDate {current-dateTime()},
112                                                element CreatedBy {'MOLES Import'}
113                                        },
114                                if (exists($DIF/dif:Last_DIF_Revision_Date)) then
115                                        element RecordUpdate {
116                                                element UpdateDate {$DIF/dif:Last_DIF_Revision_Date},
117                                                element UpdateBy {$input_repository}
118                                        }
119                                else ()
120                        }
121                else ()
122        } (: </dgMetadataRecord>:),
123        for $creator in distinct-values(collection('/db/discovery')/dif:DIF/dif:Data_Set_Citation/dif:Dataset_Creator | dif:Originating_Center)
124        return
125                element dgOrganisation {
126                        element dgMetadataID {
127                                element schemeIdentifier {'NDG-B0'},
128                                element repositoryIdentifier {$input_repository},
129                                element localIdentifier {escape-uri(concat('generated_orgcit-', string($creator)), true())}
130                        },
131                        element name {string($creator)},
132                        element abbreviation {string($creator)},
133                        element contactDetails {''}
134                }
135} (:    </dgMetadata> :)
Note: See TracBrowser for help on using the repository browser.