Changeset 2258 for TI07-MOLES/trunk


Ignore:
Timestamp:
12/03/07 16:24:49 (13 years ago)
Author:
ko23
Message:

Restoring the MDIP and DC queries

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TI07-MOLES/trunk/PythonCode/wsgi/ndg_xqueries.py

    r2236 r2258  
    13251325                   and moles:dgMetadataID/moles:localIdentifier=$DataCreatorRole/*/moles:localIdentifier)] 
    13261326            return  
    1327                     element Data_Creator { 
     1327                    element Dataset_Creator { 
    13281328                if (exists($DataCreatorRoleHolder/moles:name/moles:initials)) then  
    13291329                    string(concat(string($DataCreatorRoleHolder/moles:name/moles:initials), ' ', string($DataCreatorRoleHolder/moles:name/moles:familyName))) 
     
    16051605    else () 
    16061606        }''' 
     1607         
     1608DublinCoreDEQuery='''import module namespace voclib='http://ndg.nerc.ac.uk/xquery/lib/vocab' at 'xmldb:exist:///db/xqueryLib/Vocabs/vocab_xquery_lib.xquery'; 
     1609import module namespace utillib='http://ndg.nerc.ac.uk/xquery/lib/utilities' at 'xmldb:exist:///db/xqueryLib/Utilities/utility_xquery_lib.xquery'; 
     1610declare default element namespace 'http://ndg.nerc.ac.uk/moles'; 
     1611declare namespace xsi='http://www.w3.org/2001/XMLSchema-instance';  
     1612declare namespace dc='http://purl.org/dc/elements/1.1/'; 
     1613declare namespace oai_dc='http://www.openarchives.org/OAI/2.0/oai_dc'; 
     1614declare variable $targetCollection as xs:string {'TargetCollection'}; 
     1615declare variable $repositoryIdentifier as xs:string {'RepositoryID'}; 
     1616declare variable $localIdentifier as xs:string {'LocalID'}; 
     1617 
     1618for $DE in collection($targetCollection)/dgMetadata/dgMetadataRecord[ 
     1619exists('dgDataEntity')  
     1620and dgMetadataID/schemeIdentifier='NDG-B0'  
     1621and dgMetadataID/repositoryIdentifier=$repositoryIdentifier 
     1622and dgMetadataID/localIdentifier=$localIdentifier] 
     1623return  
     1624element oai_dc:dc { 
     1625    attribute xsi:schemaLocation {'http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd'}, 
     1626    element dc:title {string($DE/name)}, 
     1627    element dc:type {'Dataset'}, 
     1628    element dc:identifier {concat($DE/dgMetadataID/repositoryIdentifier, $utillib:moles_id_separator, 'DC', $utillib:moles_id_separator, $DE/dgMetadataID/localIdentifier)}, 
     1629    element dc:description {string($DE/dgMetadataDescription/abstract/abstractText)}, 
     1630    element dc:date 
     1631        { 
     1632        if (exists($DE/(dgMetadataProvenance | DataProvenance)/RecordUpdate/UpdateDate)) then 
     1633            for $updatedate in ($DE/(dgMetadataProvenance | DataProvenance)/RecordUpdate/UpdateDate) 
     1634                order by xs:dateTime($updatedate) 
     1635            return data($updatedate[1]) 
     1636        else 
     1637            string($DE/(dgMetadataProvenance | DataProvenance)/RecordCreation/CreatedDate)  
     1638        }, 
     1639    for $StructuredKeyword in distinct-values($DE/dgStructuredKeyword[ 
     1640    voclib:spot-vocab($voclib:cf_standard_names, dgValidTermID/ParentListID)  
     1641    or voclib:spot-vocab($voclib:gcmd_science_valids, dgValidTermID/ParentListID)  
     1642    or voclib:spot-vocab($voclib:gcmd_project_valids, dgValidTermID/ParentListID)  
     1643    or voclib:spot-vocab($voclib:iso_topic_list, dgValidTermID/ParentListID) 
     1644    or voclib:spot-vocab($voclib:bodc_parameter_usage_vocab, dgValidTermID/ParentListID) 
     1645    or voclib:spot-vocab($voclib:bodc_parameter_discovery_vocab, dgValidTermID/ParentListID) 
     1646    ]/dgValidTerm)  
     1647    order by $StructuredKeyword 
     1648    return  
     1649        element dc:subject {string($StructuredKeyword)}, 
     1650     
     1651    for $StructuredKeyword1 in distinct-values($DE/dgDataEntity/dgDataSummary/dgParameterSummary/dgStdParameterMeasured[ 
     1652    voclib:spot-vocab($voclib:gcmd_science_valids, dgValidTermID/ParentListID)  
     1653    or voclib:spot-vocab($voclib:gcmd_project_valids, dgValidTermID/ParentListID) 
     1654    or voclib:spot-vocab($voclib:bodc_parameter_usage_vocab, dgValidTermID/ParentListID) 
     1655    or voclib:spot-vocab($voclib:bodc_parameter_discovery_vocab, dgValidTermID/ParentListID) 
     1656    ]/dgValidTerm)  
     1657        order by $StructuredKeyword1 
     1658    return  
     1659        element dc:subject  {string($StructuredKeyword1)}, 
     1660    for $DataCreatorRole in $DE/dgDataEntity/dgDataRoles/dgDataCreator/dgRoleHolder  
     1661        order by $DataCreatorRole/startDate empty least 
     1662    return  
     1663        for $DataCreatorRoleHolder in collection($targetCollection)/dgMetadata/(dgOrganisation | dgPerson) 
     1664            [(dgMetadataID/schemeIdentifier='NDG-B0' 
     1665            and dgMetadataID/repositoryIdentifier=$DataCreatorRole/(dgOrganisationID | dgPersonID)/repositoryIdentifier 
     1666            and dgMetadataID/localIdentifier=$DataCreatorRole/(dgOrganisationID | dgPersonID)/localIdentifier)] 
     1667        return  
     1668            element dc:creator { 
     1669                if (string(local-name($DataCreatorRoleHolder))='dgOrganisation') then 
     1670                    (string($DataCreatorRoleHolder/name)) 
     1671                else if (string(local-name($DataCreatorRoleHolder))='dgPerson') then 
     1672                    (string(concat(string($DataCreatorRoleHolder/name/initials), ' ', string($DataCreatorRoleHolder/name/familyName)))) 
     1673                else ('empty content') 
     1674            }, 
     1675    for $DataCuratorRole in $DE/dgDataEntity/dgDataRoles/dgDataCurator/dgRoleHolder[not(exists(endDate)) or endDate=''] 
     1676        order by $DataCuratorRole/startDate empty least 
     1677    return  
     1678        for $DataCuratorRoleHolder in collection($targetCollection)/dgMetadata/(dgOrganisation | dgPerson) 
     1679            [(dgMetadataID/schemeIdentifier='NDG-B0' 
     1680            and dgMetadataID/repositoryIdentifier=$DataCuratorRole/(dgOrganisationID | dgPersonID)/repositoryIdentifier 
     1681            and dgMetadataID/localIdentifier=$DataCuratorRole/(dgOrganisationID | dgPersonID)/localIdentifier)] 
     1682        return  
     1683            element dc:publisher { 
     1684                if (string(local-name($DataCuratorRoleHolder))='dgOrganisation') then 
     1685                    (string($DataCuratorRoleHolder/name)) 
     1686                else if (string(local-name($DataCuratorRoleHolder))='dgPerson') then 
     1687                    (string(concat(string($DataCuratorRoleHolder/name/initials), ' ', string($DataCuratorRoleHolder/name/familyName)))) 
     1688                else ('empty content') 
     1689            } 
     1690}  (: </oai_dc:dc> :)''' 
     1691 
     1692MDIPQuery='''import module namespace voclib='http://ndg.nerc.ac.uk/xquery/lib/vocab' at 'xmldb:exist:///db/xqueryLib/Vocabs/vocab_xquery_lib.xquery'; 
     1693import module namespace utillib='http://ndg.nerc.ac.uk/xquery/lib/utilities' at 'xmldb:exist:///db/xqueryLib/Utilities/utility_xquery_lib.xquery'; 
     1694declare default element namespace 'http://www.oceannet.org/mdip/xml'; 
     1695declare namespace moles='http://ndg.nerc.ac.uk/moles'; 
     1696declare namespace gco='http://www.isotc211.org/2005/gco'; 
     1697declare namespace xsi='http://www.w3.org/2001/XMLSchema-instance';  
     1698declare variable $targetCollection as xs:string {'TargetCollection'}; 
     1699declare variable $repositoryIdentifier as xs:string {'RepositoryID'}; 
     1700declare variable $localIdentifier as xs:string {'LocalID'}; 
     1701 
     1702declare variable $ISO_639-2_ns as xs:string{$voclib:ISO_639-2_ns}; 
     1703declare variable $ISO_3166_ns as xs:string{$voclib:ISO_3166_ns}; 
     1704 
     1705for $DE in collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord[ 
     1706    exists('moles:dgDataEntity')  
     1707    and moles:dgMetadataID/moles:schemeIdentifier='NDG-B0'  
     1708    and moles:dgMetadataID/moles:repositoryIdentifier=$repositoryIdentifier 
     1709    and moles:dgMetadataID/moles:localIdentifier=$localIdentifier] 
     1710return 
     1711element Metadata { 
     1712    element Title {data($DE/moles:name)}, 
     1713    if (exists($DE/moles:dgDataEntity/moles:dgDataSummary/moles:dgDatasetLanguage)) then 
     1714        for $lang in $DE/moles:dgDataEntity/moles:dgDataSummary/moles:dgDatasetLanguage 
     1715        return 
     1716            element Language{ 
     1717                element LanguageName {data($lang/dgValidTerm)}, 
     1718                element LanguageVocab {data($lang/dgValidTermID/ParentListID)}, 
     1719                element LanguageCode {data($lang/dgValidTermID/TermID)} 
     1720            } 
     1721                 
     1722    else (), 
     1723 
     1724    element Abstract {}, 
     1725    for $isoTopic in $DE/moles:dgStructuredKeyword[moles:dgValidTermID/moles:ParentListID='']  
     1726    return element TopicCategory {}, 
     1727    for $subject in distinct-values($DE/dgDataEntity/dgDataSummary/dgParameterSummary/dgStdParameterMeasured[ 
     1728    voclib:spot-vocab($voclib:gcmd_science_valids, dgValidTermID/ParentListID)  
     1729    or voclib:spot-vocab($voclib:gcmd_project_valids, dgValidTermID/ParentListID) 
     1730    or voclib:spot-vocab($voclib:bodc_parameter_usage_vocab, dgValidTermID/ParentListID) 
     1731    or voclib:spot-vocab($voclib:bodc_parameter_discovery_vocab, dgValidTermID/ParentListID) 
     1732    ]/dgValidTerm)  
     1733    return element Subject {$subject}, 
     1734    element Date { 
     1735        element DatasetStartDate {}, 
     1736        element DatasetEndDate {} 
     1737    } 
     1738}''' 
Note: See TracChangeset for help on using the changeset viewer.