Changeset 1800 for TI07-MOLES


Ignore:
Timestamp:
04/12/06 13:48:19 (12 years ago)
Author:
ko23
Message:

Change d2b to operate "per discovery record"

Location:
TI07-MOLES/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • TI07-MOLES/trunk/DIF/XQuery/DIF2MOLES.xquery

    r1799 r1800  
     1(: Version for one DIF per dgMetadata instance :) 
    12(: Note algoritm for creating non-pre-existing organisations :) 
    23 (: dgPersons are not created as one can't tell automatically which are people and which are orgs, and orgs are simpler :)   
     
    1718declare variable $input_repository_local as xs:string {'Input_Repository_Code_LocalID'}; 
    1819 
    19 element dgMetadata { 
    2020for $DIF in collection($input_collection)/dif:DIF[dif:Entry_ID='NOCSDAT100'] 
    2121return 
     22element dgMetadata { 
    2223        element dgMetadataRecord { 
    2324                element dgMetadataID { 
     
    187188                else () 
    188189        } (: </dgMetadataRecord>:), 
    189         for $creator in distinct-values(collection($input_collection)/dif:DIF/dif:Data_Set_Citation/dif:Dataset_Creator | dif:Originating_Center) 
     190        for $creator in distinct-values($DIF/(dif:Data_Set_Citation/dif:Dataset_Creator | dif:Originating_Center)) 
    190191        return 
    191192                element dgOrganisation { 
  • TI07-MOLES/trunk/JavaCode/BuildMOLES/ndg/services/buildmoles/Main.java

    r1798 r1800  
    325325                                                repositoryID = DEListInstanceXML.getDocumentElement().getElementsByTagName("repositoryID").item(0).getFirstChild().getNodeValue(); 
    326326 
    327                                                 xquery = "declare default element namespace 'http://ndg.nerc.ac.uk/moles';declare namespace dif='http://gcmd.gsfc.nasa.gov/Aboutus/xml/dif/';declare namespace xsi='http://www.w3.org/2001/XMLSchema-instance'; declare namespace f='http://ndg.nerc.ac.uk/moles/localfunctions';declare variable $input_collection as xs:string {'/db/discovery'};declare variable $ndg_data_provider_vocab as xs:string {'http://vocab.ndg.nerc.ac.uk/N010'};declare variable $iso_topic_list as xs:string {'http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#MD_TopicCategoryCode'};declare variable $input_repository as xs:string {'Input_Repository_Code'};declare variable $input_repository_local as xs:string {'Input_Repository_Code_LocalID'};element dgMetadata {for $DIF in collection($input_collection)/dif:DIF[dif:Entry_ID='Input_Entry_ID'] return element dgMetadataRecord {element dgMetadataID {element schemeIdentifier {'NDG-B0'},element repositoryIdentifier {$input_repository},element localIdentifier {string($DIF/dif:Entry_ID)}},element dgMetadataDescription {element metadataDescriptionID {element schemeIdentifier {'NDG-B0'},element repositoryIdentifier {$input_repository},element localIdentifier {concat('generated_desc-', string($DIF/dif:Entry_ID))}},element metadataDescriptionLastUpdated {current-date()},element abstract {element abstractText {string($DIF/dif:Summary)}}},element name {string($DIF/dif:Entry_Title)},element abbreviation {string($DIF/dif:Entry_Title)},element dgDataEntity {element dgDataSetType {''},element dgDataSummary {element dgParameterSummary {element dgParameterValue {element dgValueDataParameter {element Value {''},element dgStandardUnit {element dgValidTerm {'dummy'},element dgValidTermID {element ParentListID {'http://vocabs.ndg.nerc.ac.uk/null.'},element TermID {escape-uri('dummy unit', true())}}}}},element dgStdParameterMeasured {element dgValidTerm {'dummy'},element dgValidTermID {element ParentListID {'http://vocabs.ndg.nerc.ac.uk/null.'},element TermID {escape-uri('dummy term', true())}}},element ParameterName {'dummy term'},element ParameterAbbreviation {'dummy term'}},if (exists($DIF/(dif:Spatial_Coverage)) or exists($DIF/dif:Temporal_Coverage)) then element dgDataCoverage {if (exists($DIF/dif:Spatial_Coverage/dif:Northernmost_Latitude)) then element dgSpatialCoverage {for $boundingbox in $DIF/dif:Spatial_Coverage[exists(dif:Northernmost_Latitude)] return element BoundingBox {element Limit_North {string($boundingbox/dif:Northernmost_Latitude)},element Limit_South {string($boundingbox/dif:Southernmost_Latitude)},element Limit_West {string($boundingbox/dif:Westernmost_Longitude)},element Limit_East {string($boundingbox/dif:Easternmost_Longitude)}}} else (),if (exists($DIF/dif:Temporal_Coverage/dif:Start_Date)) then element dgTemporalCoverage {for $temporalcoverage in $DIF/dif:Temporal_Coverage[exists(dif:Start_Date) and exists(dif:Stop_Date)] return element DateRange {element DateRangeStart {string($temporalcoverage/dif:Start_Date)},element DateRangeEnd {string($temporalcoverage/dif:Stop_Date)}}} else ()} else ()},element dgDataRoles {if (exists($DIF/(dif:Data_Set_Citation/dif:Dataset_Creator | dif:Originating_Center))) then element dgDataCreator {element dgMetadataID {element schemeIdentifier {'NDG-B0'},element repositoryIdentifier {$input_repository},element localIdentifier {concat('generated_creator-', string($DIF/dif:Entry_ID))}},element roleName {'Data Creator'},element abbreviation {'Creator'},for $creatorID in $DIF/(dif:Data_Set_Citation/dif:Dataset_Creator | dif:Originating_Center) return element dgRoleHolder {element dgOrganisationID {element schemeIdentifier {'NDG-B0'},element repositoryIdentifier {$input_repository},element localIdentifier  {escape-uri(concat('generated_orgcit-', string($creatorID)), true())}},element startDate {current-date()}}} else (),element dgDataCurator {element dgMetadataID {element schemeIdentifier {'NDG-B0'},element repositoryIdentifier {$input_repository},element localIdentifier {concat('generated_curator-', string($DIF/dif:Entry_ID))}},element roleName {'Data Curator'},element abbreviation {'Curator'},element dgRoleHolder {element dgOrganisationID {element schemeIdentifier {'NDG-B0'},element repositoryIdentifier {$input_repository},element localIdentifier {$input_repository_local}},element startDate {current-date()}}}}},element dgStructuredKeyword {element dgValidTerm {'MDIP'},element dgValidTermID {element ParentListID {$ndg_data_provider_vocab},element TermID {'NDGO0001'}}},for $structuredKeywords in $DIF/dif:Keywords return  element dgStructuredKeyword {element dgValidTerm {$structuredKeywords},element dgValidTermID {element ParentListID {'http://vocab.ndg.nerc.ac.uk/null.'},element TermID {escape-uri($structuredKeywords, true())}}},for $structuredKeywords in $DIF/dif:ISO_Topic_Category return  element dgStructuredKeyword {element dgValidTerm {string($structuredKeywords)},element dgValidTermID {element ParentListID {'http://vocab.ndg.nerc.ac.uk/null.'},element TermID {escape-uri(string($structuredKeywords), true())}}},if (exists($DIF/dif:DIF_Creation_Date) or exists($DIF/dif:Last_DIF_Revision_Date)) then  element dgMetadataProvenance {if (exists($DIF/dif:DIF_Creation_Date)) then element RecordCreation {element CreatedDate {if (string($DIF/dif:DIF_Creation_Date) castable as xs:date) then  string($DIF/dif:DIF_Creation_Date) cast as xs:date else current-date()},element CreatedBy {$input_repository}} else  element RecordCreation {element CreatedDate {current-date()},element CreatedBy {'MOLES Import'}},if (exists($DIF/dif:Last_DIF_Revision_Date)) then element RecordUpdate {element UpdateDate {if (string($DIF/dif:Last_DIF_Revision_Date) castable as xs:date) then  string($DIF/dif:Last_DIF_Revision_Date) cast as xs:date else (current-date())},element UpdatedBy {$input_repository}} else ()} else ()},for $creator in distinct-values(collection($input_collection)/dif:DIF/dif:Data_Set_Citation/dif:Dataset_Creator | dif:Originating_Center) return element dgOrganisation {element dgMetadataID {element schemeIdentifier {'NDG-B0'},element repositoryIdentifier {$input_repository},element localIdentifier {escape-uri(concat('generated_orgcit-', string($creator)), true())}},element name {string($creator)},element abbreviation {string($creator)},element contactDetails {''}}}"; 
     327                                                xquery = "declare default element namespace 'http://ndg.nerc.ac.uk/moles';declare namespace dif='http://gcmd.gsfc.nasa.gov/Aboutus/xml/dif/';declare namespace xsi='http://www.w3.org/2001/XMLSchema-instance'; declare namespace f='http://ndg.nerc.ac.uk/moles/localfunctions';declare variable $input_collection as xs:string {'/db/discovery'};declare variable $unknown_vocab_id as xs:string {'http://vocab.ndg.nerc.ac.uk/null'};declare variable $ndg_data_provider_vocab as xs:string {'http://vocab.ndg.nerc.ac.uk/N010'};declare variable $gcmd_science_valids as xs:string {'http://gcmd.gsfc.nasa.gov/Resources/valids/gcmd_parameters.html'};declare variable $gcmd_project_valids as xs:string {'http://gcmd.gsfc.nasa.gov/Resources/valids/projects.html'};declare variable $gcmd_iso_topic_list as xs:string {'http://gcmd.gsfc.nasa.gov/Resources/valids/iso_topic_list.html'};declare variable $cf_standard_names as xs:string {'http://www.cgd.ucar.edu/cms/eaton/cf-metadata/standard_name.html'};declare variable $iso_topic_list as xs:string {'http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#MD_TopicCategoryCode'};declare variable $input_repository as xs:string {'Input_Repository_Code'};declare variable $input_repository_local as xs:string {'Input_Repository_Code_LocalID'};for $DIF in collection($input_collection)/dif:DIF[dif:Entry_ID='Input_Entry_ID'] return element dgMetadata {element dgMetadataRecord {element dgMetadataID {element schemeIdentifier {'NDG-B0'},element repositoryIdentifier {$input_repository},element localIdentifier {string($DIF/dif:Entry_ID)}},element dgMetadataDescription {element metadataDescriptionID {element schemeIdentifier {'NDG-B0'},element repositoryIdentifier {$input_repository},element localIdentifier {concat('generated_desc-', string($DIF/dif:Entry_ID))}},element metadataDescriptionLastUpdated {current-date()},element abstract {element abstractText {string($DIF/dif:Summary)}}},element name {string($DIF/dif:Entry_Title)},element abbreviation {string($DIF/dif:Entry_Title)},element dgDataEntity {element dgDataSetType {''},element dgDataSummary {element dgParameterSummary {element dgParameterValue {element dgValueDataParameter {element Value {''},element dgStandardUnit {element dgValidTerm {'dummy'},element dgValidTermID {element ParentListID {'http://vocabs.ndg.nerc.ac.uk/null.'},element TermID {escape-uri('dummy unit', true())}}}}},element dgStdParameterMeasured {element dgValidTerm {'dummy'},element dgValidTermID {element ParentListID {'http://vocabs.ndg.nerc.ac.uk/null.'},element TermID {escape-uri('dummy term', true())}}},element ParameterName {'dummy term'},element ParameterAbbreviation {'dummy term'}},if (exists($DIF/(dif:Spatial_Coverage)) or exists($DIF/dif:Temporal_Coverage)) then element dgDataCoverage {if (exists($DIF/dif:Spatial_Coverage/dif:Northernmost_Latitude)) then element dgSpatialCoverage {for $boundingbox in $DIF/dif:Spatial_Coverage[exists(dif:Northernmost_Latitude)] return element BoundingBox {element Limit_North {string($boundingbox/dif:Northernmost_Latitude)},element Limit_South {string($boundingbox/dif:Southernmost_Latitude)},element Limit_West {string($boundingbox/dif:Westernmost_Longitude)},element Limit_East {string($boundingbox/dif:Easternmost_Longitude)}}} else (),if (exists($DIF/dif:Temporal_Coverage/dif:Start_Date)) then element dgTemporalCoverage {for $temporalcoverage in $DIF/dif:Temporal_Coverage[exists(dif:Start_Date) and exists(dif:Stop_Date)] return element DateRange {element DateRangeStart {string($temporalcoverage/dif:Start_Date)},element DateRangeEnd {string($temporalcoverage/dif:Stop_Date)}}} else ()} else ()},element dgDataRoles {if (exists($DIF/(dif:Data_Set_Citation/dif:Dataset_Creator | dif:Originating_Center))) then element dgDataCreator {element dgMetadataID {element schemeIdentifier {'NDG-B0'},element repositoryIdentifier {$input_repository},element localIdentifier {concat('generated_creator-', string($DIF/dif:Entry_ID))}},element roleName {'Data Creator'},element abbreviation {'Creator'},for $creatorID in $DIF/(dif:Data_Set_Citation/dif:Dataset_Creator | dif:Originating_Center) return element dgRoleHolder {element dgOrganisationID {element schemeIdentifier {'NDG-B0'},element repositoryIdentifier {$input_repository},element localIdentifier  {escape-uri(concat('generated_orgcit-', string($creatorID)), true())}},element startDate {current-date()}}} else (),element dgDataCurator {element dgMetadataID {element schemeIdentifier {'NDG-B0'},element repositoryIdentifier {$input_repository},element localIdentifier {concat('generated_curator-', string($DIF/dif:Entry_ID))}},element roleName {'Data Curator'},element abbreviation {'Curator'},element dgRoleHolder {element dgOrganisationID {element schemeIdentifier {'NDG-B0'},element repositoryIdentifier {$input_repository},element localIdentifier {$input_repository_local}},element startDate {current-date()}}}}},element dgStructuredKeyword {element dgValidTerm {'MDIP'},element dgValidTermID {element ParentListID {$ndg_data_provider_vocab},element TermID {'NDGO0001'}}},for $structuredKeywords in $DIF/dif:Keywords return  element dgStructuredKeyword {element dgValidTerm {$structuredKeywords},element dgValidTermID {element ParentListID {$unknown_vocab_id},element TermID {escape-uri($structuredKeywords, true())}}},for $structuredKeywords in $DIF/dif:ISO_Topic_Category return  element dgStructuredKeyword {element dgValidTerm {string($structuredKeywords)},element dgValidTermID {element ParentListID {$gcmd_iso_topic_list},element TermID {escape-uri($structuredKeywords, true())}}},if (exists($DIF/dif:DIF_Creation_Date) or exists($DIF/dif:Last_DIF_Revision_Date)) then  element dgMetadataProvenance {if (exists($DIF/dif:DIF_Creation_Date)) then element RecordCreation {element CreatedDate {if (string($DIF/dif:DIF_Creation_Date) castable as xs:date) then  string($DIF/dif:DIF_Creation_Date) cast as xs:date else (current-date())},element CreatedBy {$input_repository}} else  element RecordCreation {element CreatedDate {current-date()},element CreatedBy {'MOLES Import'}},if (exists($DIF/dif:Last_DIF_Revision_Date)) then element RecordUpdate {element UpdateDate {if (string($DIF/dif:Last_DIF_Revision_Date) castable as xs:date) then  string($DIF/dif:Last_DIF_Revision_Date) cast as xs:date else (current-date())},element UpdatedBy {$input_repository}} else ()} else ()},for $creator in distinct-values($DIF/(dif:Data_Set_Citation/dif:Dataset_Creator | dif:Originating_Center)) return element dgOrganisation {element dgMetadataID {element schemeIdentifier {'NDG-B0'},element repositoryIdentifier {$input_repository},element localIdentifier {escape-uri(concat('generated_orgcit-', string($creator)), true())}},element name {string($creator)},element abbreviation {string($creator)},element contactDetails {''}}}"; 
    328328                                                xquery = xquery.replaceFirst("Input_Repository_Code", repositoryID); 
    329329                                                xquery = xquery.replaceFirst("Input_Repository_Code_Local", repositoryLocalID); 
Note: See TracChangeset for help on using the changeset viewer.