diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/bulktag/community/QueryInformationSystem.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/bulktag/community/QueryInformationSystem.java index 678b270a0..5fe3cf81f 100644 --- a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/bulktag/community/QueryInformationSystem.java +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/bulktag/community/QueryInformationSystem.java @@ -1,8 +1,10 @@ package eu.dnetlib.dhp.bulktag.community; +import java.io.IOException; import java.util.List; +import org.apache.commons.io.IOUtils; import org.dom4j.DocumentException; import org.xml.sax.SAXException; @@ -13,74 +15,17 @@ import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpException; import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpService; public class QueryInformationSystem { - private static final String XQUERY = "for $x in collection('/db/DRIVER/ContextDSResources/ContextDSResourceType') " - + " let $subj := $x//CONFIGURATION/context/param[./@name='subject']/text() " - + " let $datasources := $x//CONFIGURATION/context/category[./@id=concat($x//CONFIGURATION/context/@id,'::contentproviders')]/concept " - + " let $organizations := $x//CONFIGURATION/context/category[./@id=concat($x//CONFIGURATION/context/@id,'::resultorganizations')]/concept " - + " let $communities := $x//CONFIGURATION/context/category[./@id=concat($x//CONFIGURATION/context/@id,'::zenodocommunities')]/concept " - + " let $fos := $x//CONFIGURATION/context/param[./@name='fos']/text() " - + " let $sdg := $x//CONFIGURATION/context/param[./@name='sdg']/text() " - + - "let $zenodo := $x//param[./@name='zenodoCommunity']/text() " - + " where $x//CONFIGURATION/context[./@type='community' or ./@type='ri'] and $x//context/param[./@name = 'status']/text() != 'hidden' " - + " return " - + " " - + " { $x//CONFIGURATION/context/@id} " - + " " + - "{$x//CONFIGURATION/context/param[./@name='advancedConstraints']/text() }" + - "" - + " " - + " {for $y in tokenize($subj,',') " - + " return " - + " {$y}} " - + " {for $y in tokenize($fos,',') " - + " return " - + " {$y}} " - + " {for $y in tokenize($sdg,',') " - + " return " - + " {$y}} " - + " " - + " " - + " {for $d in $datasources " - + " where $d/param[./@name='enabled']/text()='true' " - + " return " - + " " - + " " - + " {$d//param[./@name='openaireId']/text()} " - + " " - + " " - + " {$d/param[./@name='selcriteria']/text()} " - + " " - + " } " - + " " + - " " + - "{for $zc in $zenodo " + - "return " + - " " + - " " + - "{$zc} " + - " " + - "}" - + " {for $zc in $communities " - + " return " - + " " - + " " - + " {$zc/param[./@name='zenodoid']/text()} " - + " " - + " " - + " {$zc/param[./@name='selcriteria']/text()} " - + " " - + " } " - + " " - + "" - + "{$x//CONFIGURATION/context/param[./@name='advancedConstraint']/text()} " - + "" - + " "; public static CommunityConfiguration getCommunityConfiguration(final String isLookupUrl) - throws ISLookUpException, DocumentException, SAXException { + throws ISLookUpException, DocumentException, SAXException, IOException { ISLookUpService isLookUp = ISLookupClientFactory.getLookUpService(isLookupUrl); - final List res = isLookUp.quickSearchProfile(XQUERY); + final List res = isLookUp + .quickSearchProfile( + IOUtils + .toString( + QueryInformationSystem.class + .getResourceAsStream( + "/eu/dnetlib/dhp/bulktag/query.xq"))); final String xmlConf = "" + Joiner.on(" ").join(res) + ""; diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/bulktag/query.xq b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/bulktag/query.xq index e69de29bb..6fbd74c8f 100644 --- a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/bulktag/query.xq +++ b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/bulktag/query.xq @@ -0,0 +1,58 @@ +for $x in collection('/db/DRIVER/ContextDSResources/ContextDSResourceType') +let $subj := $x//CONFIGURATION/context/param[./@name='subject']/text() +let $datasources := $x//CONFIGURATION/context/category[./@id=concat($x//CONFIGURATION/context/@id,'::contentproviders')]/concept +let $organizations := $x//CONFIGURATION/context/category[./@id=concat($x//CONFIGURATION/context/@id,'::resultorganizations')]/concept +let $communities := $x//CONFIGURATION/context/category[./@id=concat($x//CONFIGURATION/context/@id,'::zenodocommunities')]/concept +let $fos := $x//CONFIGURATION/context/param[./@name='fos']/text() +let $sdg := $x//CONFIGURATION/context/param[./@name='sdg']/text() +let $zenodo := $x//param[./@name='zenodoCommunity']/text() +where $x//CONFIGURATION/context[./@type='community' or ./@type='ri'] and $x//context/param[./@name = 'status']/text() != 'hidden' +return + +{ $x//CONFIGURATION/context/@id} + +{$x//CONFIGURATION/context/param[./@name='advancedConstraints']/text() } + + + {for $y in tokenize($subj,',') + return + {$y}} + {for $y in tokenize($fos,',') + return + {$y}} + {for $y in tokenize($sdg,',') + return + {$y}} + + + {for $d in $datasources + where $d/param[./@name='enabled']/text()='true' + return + + + {$d//param[./@name='openaireId']/text()} + + + {$d/param[./@name='selcriteria']/text()} + + } + + +{for $zc in $zenodo +return + + +{$zc} + +} +{for $zc in $communities +return + + +{$zc/param[./@name='zenodoid']/text()} + + +{$zc/param[./@name='selcriteria']/text()} + +} + \ No newline at end of file