Changeset 2363 for TI07-MOLES/trunk/MDIP


Ignore:
Timestamp:
02/04/07 16:15:07 (13 years ago)
Author:
ko23
Message:

Extended MDIP output from MOLES

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TI07-MOLES/trunk/MDIP/XQueries/NDG-MDIP.xquery

    r2236 r2363  
    55declare namespace gco='http://www.isotc211.org/2005/gco'; 
    66declare namespace xsi='http://www.w3.org/2001/XMLSchema-instance';  
     7(: Keep 
    78declare variable $targetCollection as xs:string {'TargetCollection'}; 
    89declare variable $repositoryIdentifier as xs:string {'RepositoryID'}; 
    910declare variable $localIdentifier as xs:string {'LocalID'}; 
     11:) 
     12declare variable $targetCollection as xs:string {'/db/discovery'}; 
     13declare variable $repositoryIdentifier as xs:string {'grid.bodc.nerc.ac.uk'}; 
     14declare variable $localIdentifier as xs:string {'grid.bodc.nerc.ac.uk:DIF:EDMED1048001'}; 
    1015 
    1116declare variable $ISO_639-2_ns as xs:string{$voclib:ISO_639-2_ns}; 
     
    2429                return 
    2530                        element Language{ 
    26                                 element LanguageName {data($lang/dgValidTerm)}, 
    27                                 element LanguageVocab {data($lang/dgValidTermID/ParentListID)}, 
    28                                 element LanguageCode {data($lang/dgValidTermID/TermID)} 
     31                                element LanguageName {data($lang/moles:dgValidTerm)}, 
     32                                element LanguageVocab {data($lang/moles:dgValidTermID/moles:ParentListID)}, 
     33                                element LanguageCode {data($lang/moles:dgValidTermID/moles:TermID)} 
    2934                        } 
    3035                                 
    3136        else (), 
    3237 
    33         element Abstract {}, 
    34         for $isoTopic in $DE/moles:dgStructuredKeyword[moles:dgValidTermID/moles:ParentListID='']  
    35         return element TopicCategory {}, 
    36         for $subject in distinct-values($DE/dgDataEntity/dgDataSummary/dgParameterSummary/dgStdParameterMeasured[ 
    37         voclib:spot-vocab($voclib:gcmd_science_valids, dgValidTermID/ParentListID)  
    38         or voclib:spot-vocab($voclib:gcmd_project_valids, dgValidTermID/ParentListID) 
    39         or voclib:spot-vocab($voclib:bodc_parameter_usage_vocab, dgValidTermID/ParentListID) 
    40         or voclib:spot-vocab($voclib:bodc_parameter_discovery_vocab, dgValidTermID/ParentListID) 
    41         ]/dgValidTerm)  
    42         return element Subject {$subject}, 
     38        element Abstract {string($DE/moles:dgMetadataDescription/moles:abstract/moles:abstractText)}, 
     39        for $isoTopic in $DE/moles:dgStructuredKeyword[voclib:spot-vocab($voclib:iso_topic_list, moles:dgValidTermID/moles:ParentListID)]  
     40        return element TopicCategory { 
     41        element TopicCategoryName {data($isoTopic/moles:dgValidTerm)}, 
     42        element TopicCategoryVocab {data($isoTopic/moles:dgValidTermID/moles:ParentListID)}, 
     43        element TopicCategoryCode {data($isoTopic/moles:dgValidTermID/moles:TermID)} 
     44        }, 
     45        for $subject in ($DE/moles:dgDataEntity/moles:dgDataSummary/moles:dgParameterSummary/moles:dgStdParameterMeasured[ 
     46        voclib:spot-vocab($voclib:gcmd_science_valids, moles:dgValidTermID/moles:ParentListID)  
     47        or voclib:spot-vocab($voclib:gcmd_project_valids, moles:dgValidTermID/moles:ParentListID) 
     48        or voclib:spot-vocab($voclib:gcmd_science_valids_categories, moles:dgValidTermID/moles:ParentListID) 
     49        or voclib:spot-vocab($voclib:bodc_parameter_usage_vocab, moles:dgValidTermID/moles:ParentListID) 
     50        or voclib:spot-vocab($voclib:bodc_parameter_discovery_vocab, moles:dgValidTermID/moles:ParentListID) 
     51        ])  
     52        return (element Subject { 
     53        element SubjectName {data($subject/moles:dgValidTerm)}, 
     54        element SubjectVocab {data($subject/moles:dgValidTermID/moles:ParentListID)}, 
     55        element SubjectCode {data($subject/moles:dgValidTermID/moles:TermID)} 
     56        }, 
     57        for $subterm in $subject//moles:dgValidSubterm 
     58        return (element Subject { 
     59        element SubjectName {data($subterm/moles:dgValidTerm)}, 
     60        element SubjectVocab {data($subterm/moles:dgValidTermID/moles:ParentListID)}, 
     61        element SubjectCode {data($subterm/moles:dgValidTermID/moles:TermID)} 
     62        } 
     63        ) 
     64        ), 
     65        if (exists($DE//moles:dgTemporalCoverage/(moles:DateSingle | moles:DateRange))) then  
    4366        element Date { 
    44                 element DatasetStartDate {}, 
    45                 element DatasetEndDate {} 
     67                element DatasetStartDate { 
     68                let $dateStart:=min($DE//moles:dgTemporalCoverage/(moles:DateSingle | moles:DateRange/moles:DateRangeStart) cast as xs:date) 
     69                return  
     70                if (empty($dateStart)) then ()  
     71                else data($dateStart) 
     72                }, 
     73                element DatasetEndDate { 
     74                let $dateEnd:=max($DE//moles:dgTemporalCoverage/(moles:DateSingle | moles:DateRange/moles:DateRangeEnd) cast as xs:date) 
     75                return 
     76                if (empty($dateEnd)) then ()  
     77                else data($dateEnd) 
     78                } 
    4679        } 
    47 } 
     80        else (), 
     81        let $west := min($DE/moles:dgDataEntity/moles:dgDataSummary//moles:BoundingBox/moles:LimitWest cast as xs:integer) 
     82        return element WestCoOrdinate {data($west)}, 
     83        let $east := max($DE/moles:dgDataEntity/moles:dgDataSummary//moles:BoundingBox/moles:LimitEast cast as xs:integer) 
     84        return element EastCoOrdinate {data($east)}, 
     85        let $north := max($DE/moles:dgDataEntity/moles:dgDataSummary//moles:BoundingBox/moles:LimitNorth cast as xs:integer) 
     86        return element NorthCoOrdinate {data($north)}, 
     87        let $south := min($DE/moles:dgDataEntity/moles:dgDataSummary//moles:BoundingBox/moles:LimitSouth cast as xs:integer) 
     88        return element SouthCoOrdinate {data($south)}, 
     89        element DatasetIdentifier {concat($DE/moles:dgMetadataID/moles:repositoryIdentifier, $utillib:moles_id_separator, 'MDIP', $utillib:moles_id_separator, $DE/moles:dgMetadataID/moles:localIdentifier)}, 
     90        for $target in $DE/moles:dgStructuredKeyword[voclib:spot-vocab($voclib:ndg_data_provider_vocab, moles:dgValidTermID/moles:ParentListID) ] 
     91        return element Target { 
     92        element TargetName {data($target/moles:dgValidTerm)}, 
     93        element TargetVocab {data($target/moles:dgValidTermID/moles:ParentListID)}, 
     94        element TargetCode {data($target/moles:dgValidTermID/moles:TermID)} 
     95        } 
     96        } 
Note: See TracChangeset for help on using the changeset viewer.