diff --git a/loterre-resolvers/v1/2XK/identify.ini b/loterre-resolvers/v1/2XK/identify.ini index a1acb9d..63b28e4 100644 --- a/loterre-resolvers/v1/2XK/identify.ini +++ b/loterre-resolvers/v1/2XK/identify.ini @@ -35,15 +35,6 @@ [swing] test = get('value').isObject() -# Astuce : pour simplifier les clés sur tout l'objet -[swing/map] -path = value -[swing/map/exchange] -value = self().mapKeys((value, key) => key.replace(/\/\$t/g, '')) -[swing/assign] -path = value -value = get('value').pop() - # Sélection de champs [swing/replace] @@ -57,13 +48,13 @@ value = get('value.rdf$about') path = value.prefLabel@fr -value = get('value.skos$prefLabel').castArray().concat({$t:_.get(self, 'value.skos$prefLabel', 'n/a'), xml$lang:_.get(self, 'value.skos$prefLabel/xml$lang', 'n/a')}).filter(Boolean).filter(y => (y.xml$lang === 'fr')).map(x => x.$t).shift() +value = get('value.skos$prefLabel').castArray().concat({xml$t:_.get(self, 'value.skos$prefLabel', 'n/a'), xml$lang:_.get(self, 'value.skos$prefLabel.xml$lang', 'n/a')}).filter(Boolean).filter(y => (y.xml$lang === 'fr')).map(x => x.xml$t).shift() path = value.prefLabel@en -value = get('value.skos$prefLabel').filter(y => (y.xml$lang === 'en')).map(x => x.$t).shift() +value = get('value.skos$prefLabel').filter(y => (y.xml$lang === 'en')).map(x => x.xml$t).shift() path = value.codeRNSR -value = get('value.wdt$P3016', []).castArray().map(item => (item.$t ? item.$t : item)) +value = get('value.wdt$P3016', []).castArray().map(item => (item.xml$t ? item.xml$t : item)) path = value.latitude value = get('value.geo$lat') @@ -72,7 +63,7 @@ value = get('value.geo$long') path = value.codeUniteCNRS -value = get('value.wdt$P4550', []).castArray().map(item => (item.$t ? item.$t : item)) +value = get('value.wdt$P4550', []).castArray().map(item => (item.xml$t ? item.xml$t : item)) path = value.libelleOrigine value = get('value.wdt$P1705') @@ -114,46 +105,46 @@ value = get('value.wdt$P1705') path = value.tutellePrincipale -value = get('value.inist$tutellePrincipale', []).castArray().map(item => (item.$t ? item.$t : item)) +value = get('value.inist$tutellePrincipale', []).castArray().map(item => (item.xml$t ? item.xml$t : item)) path = value.tutelleSecondaire -value = get('value.inist$tutelleSecondaire', []).castArray().map(item => (item.$t ? item.$t : item)) +value = get('value.inist$tutelleSecondaire', []).castArray().map(item => (item.xml$t ? item.xml$t : item)) path = value.institutPrincipal -value = get('value.inist$institutPrincipal', []).castArray().map(item => (item.$t ? item.$t : item)) +value = get('value.inist$institutPrincipal', []).castArray().map(item => (item.xml$t ? item.xml$t : item)) path = value.institutSecondaire -value = get('value.inist$institutSecondaire', []).castArray().map(item => (item.$t ? item.$t : item)) +value = get('value.inist$institutSecondaire', []).castArray().map(item => (item.xml$t ? item.xml$t : item)) path = value.delegationRegionale_dep -value = get('value.inist$dr_cnrs_dep', []).castArray().map(item => (item.$t ? item.$t : item)) +value = get('value.inist$dr_cnrs_dep', []).castArray().map(item => (item.xml$t ? item.xml$t : item)) path = value.delegationRegionale_impl value = get('value.inist$dr_cnrs_impl') path = value.sectionComiteNational -value = get('value.inist$sectionCN', []).castArray().map(item => (item.$t ? item.$t : item)) +value = get('value.inist$sectionCN', []).castArray().map(item => (item.xml$t ? item.xml$t : item)) path = value.portefeuilleDAS -value = get('value.inist$portefeuilleDAS', []).castArray().map(item => (item.$t ? item.$t : item)) +value = get('value.inist$portefeuilleDAS', []).castArray().map(item => (item.xml$t ? item.xml$t : item)) path = value.site -value = get('value.inist$site', []).castArray().map(item => (item.$t ? item.$t : item)) +value = get('value.inist$site', []).castArray().map(item => (item.xml$t ? item.xml$t : item)) path = value.childStructure -value = get('value.inist$structureComposite', []).castArray().map(item => (item.$t ? item.$t : item)) +value = get('value.inist$structureComposite', []).castArray().map(item => (item.xml$t ? item.xml$t : item)) path = value.replacedBy -value = get('value.cdt$isReplacedBy', []).castArray().map(item => (item.$t ? item.$t : item)) +value = get('value.cdt$isReplacedBy', []).castArray().map(item => (item.xml$t ? item.xml$t : item)) path = value.replaces -value = get('value.cdt$replaces', []).castArray().map(item => (item.$t ? item.$t : item)) +value = get('value.cdt$replaces', []).castArray().map(item => (item.xml$t ? item.xml$t : item)) path = value.address -value = get('value.org$siteAddress', []).castArray().map(item => (item.$t ? item.$t : item)) +value = get('value.org$siteAddress', []).castArray().map(item => (item.xml$t ? item.xml$t : item)) path = value.homepage -value = get('value.foaf$homepage', []).castArray().map(item => (item.$t ? item.$t : item)) +value = get('value.foaf$homepage', []).castArray().map(item => (item.xml$t ? item.xml$t : item)) [delegate] file = ./v1/send.cfg diff --git a/loterre-resolvers/v1/9SD/identify.ini b/loterre-resolvers/v1/9SD/identify.ini index fd14bdb..8c69c04 100644 --- a/loterre-resolvers/v1/9SD/identify.ini +++ b/loterre-resolvers/v1/9SD/identify.ini @@ -43,37 +43,37 @@ value = get('value.id') path = value.cartographyCode -value = get('value.inist$lodexPlacenameCode/$t') +value = get('value.inist$lodexPlacenameCode.xml$t') path = value.about value = get('value.rdf$about') path = value.prefLabel@fr -value = get('value.skos$prefLabel').filter(y => (y.xml$lang === 'fr')).map(x => x.$t).shift() +value = get('value.skos$prefLabel').filter(y => (y.xml$lang === 'fr')).map(x => x.xml$t).shift() path = value.prefLabel@en -value = get('value.skos$prefLabel').filter(y => (y.xml$lang === 'en')).map(x => x.$t).shift() +value = get('value.skos$prefLabel').filter(y => (y.xml$lang === 'en')).map(x => x.xml$t).shift() path = value.wikidataURI -value = get("value.wdt$P36/rdf$resource") +value = get("value.wdt$P36.rdf$resource") path = value.geonameURI -value = get('value.gn$geonamesID/$t').prepend('https://www.geonames.org/') +value = get('value.gn$geonamesID.xml$t').prepend('https://www.geonames.org/') path = value.countryCode -value = get('value.gn$countryCode/$t') +value = get('value.gn$countryCode.xml$t') path = value.latitude -value = get('value.geo$lat/$t') +value = get('value.geo$lat.xml$t') path = value.longitude -value = get('value.geo$long/$t') +value = get('value.geo$long.xml$t') path = value.localization@en -value = get('value.localization').map((x) => x.skos$prefLabel.filter(y => (y.xml$lang === 'en')).map(x => x.$t).shift()) +value = get('value.localization').map((x) => x.skos$prefLabel.filter(y => (y.xml$lang === 'en')).map(x => x.xml$t).shift()) path = value.localization@fr -value = get('value.localization').map((x) => x.skos$prefLabel.filter(y => (y.xml$lang === 'fr')).map(x => x.$t).shift()) +value = get('value.localization').map((x) => x.skos$prefLabel.filter(y => (y.xml$lang === 'fr')).map(x => x.xml$t).shift()) [delegate] file = ./v1/send.cfg diff --git a/loterre-resolvers/v1/BVM/identify.ini b/loterre-resolvers/v1/BVM/identify.ini index c1b50b8..cde601b 100644 --- a/loterre-resolvers/v1/BVM/identify.ini +++ b/loterre-resolvers/v1/BVM/identify.ini @@ -38,27 +38,27 @@ path = value.about value = get('value.rdf$about') path = value.prefLabel@fr -value = get('value.skos$prefLabel').filter(y => (y.xml$lang === 'fr')).map(x => x.$t).shift() +value = get('value.skos$prefLabel').filter(y => (y.xml$lang === 'fr')).map(x => x.xml$t).shift() path = value.prefLabel@en -value = get('value.skos$prefLabel').filter(y => (y.xml$lang === 'en')).map(x => x.$t).shift() +value = get('value.skos$prefLabel').filter(y => (y.xml$lang === 'en')).map(x => x.xml$t).shift() path = value.wikidataURI -value = get("value.wdt$P36/rdf$resource") +value = get("value.wdt$P36.rdf$resource") path = value.geonameURI -value = get('value.gn$geonamesID/$t', []).castArray().map(item => (item.$t ? item.$t : item)).prepend('https://www.geonames.org/') -#value = get('value.gn$geonamesID/$t').prepend('https://www.geonames.org/') +value = get('value.gn$geonamesID.xml$t', []).castArray().map(item => (item.xml$t ? item.xml$t : item)).prepend('https://www.geonames.org/') +#value = get('value.gn$geonamesID.xml$t').prepend('https://www.geonames.org/') path = value.countryCode -value = get('value.gn$countryCode/$t') +value = get('value.gn$countryCode.xml$t') path = value.latitude -value = get('value.geo$lat/$t') +value = get('value.geo$lat.xml$t') path = value.longitude -value = get('value.geo$long/$t') +value = get('value.geo$long.xml$t') path = value.localization@en -value = get('value.localization').map((x) => x.skos$prefLabel.filter(y => (y.xml$lang === 'en')).map(x => x.$t).shift()) +value = get('value.localization').map((x) => x.skos$prefLabel.filter(y => (y.xml$lang === 'en')).map(x => x.xml$t).shift()) path = value.localization@fr -value = get('value.localization').map((x) => x.skos$prefLabel.filter(y => (y.xml$lang === 'fr')).map(x => x.$t).shift()) +value = get('value.localization').map((x) => x.skos$prefLabel.filter(y => (y.xml$lang === 'fr')).map(x => x.xml$t).shift()) path = value.postalCode -value = get('value.vcard$postal-code', []).castArray().map(item => (item.$t ? item.$t : item)) +value = get('value.vcard$postal-code', []).castArray().map(item => (item.xml$t ? item.xml$t : item)) path = value.cedexPostalCode -value = get('value.inist$cedex-postal-code', []).castArray().map(item => (item.$t ? item.$t : item)) +value = get('value.inist$cedex-postal-code', []).castArray().map(item => (item.xml$t ? item.xml$t : item)) [delegate] file = ./v1/send.cfg diff --git a/loterre-resolvers/v1/D63/identify.ini b/loterre-resolvers/v1/D63/identify.ini index 0d2c200..a2741a8 100644 --- a/loterre-resolvers/v1/D63/identify.ini +++ b/loterre-resolvers/v1/D63/identify.ini @@ -42,51 +42,47 @@ value = get('value.id') path = value.cartographyCode -value = get('value.inist$lodexPlacenameCode/$t') +value = get('value.inist$lodexPlacenameCode.xml$t') path = value.about value = get('value.rdf$about') path = value.prefLabel@fr -value = get('value.skos$prefLabel').filter(y => (y.xml$lang === 'fr')).map(x => x.$t).shift() +value = get('value.skos$prefLabel').filter(y => (y.xml$lang === 'fr')).map(x => x.xml$t).shift() path = value.prefLabel@en -value = get('value.skos$prefLabel').filter(y => (y.xml$lang === 'en')).map(x => x.$t).shift() +value = get('value.skos$prefLabel').filter(y => (y.xml$lang === 'en')).map(x => x.xml$t).shift() path = value.wikidataURI -value = get("value.wdt$P36/rdf$resource") +value = get("value.wdt$P36.rdf$resource") path = value.geonameURI -value = get('value.gn$geonamesID/$t', []).castArray().map(item => (item.$t ? item.$t : item)).prepend('https://www.geonames.org/') -#value = get('value.gn$geonamesID/$t').prepend('https://www.geonames.org/') +value = get('value.gn$geonamesID.xml$t', []).castArray().map(item => (item.xml$t ? item.xml$t : item)).prepend('https://www.geonames.org/') +#value = get('value.gn$geonamesID.xml$t').prepend('https://www.geonames.org/') path = value.geonamesID -value = get('value.gn$geonamesID', []).castArray().map(item => (item.$t ? item.$t : item)) +value = get('value.gn$geonamesID', []).castArray().map(item => (item.xml$t ? item.xml$t : item)) path = value.countryCode -value = get('value.gn$countryCode/$t') +value = get('value.gn$countryCode.xml$t') path = value.latitude -value = get('value.geo$lat/$t') +value = get('value.geo$lat.xml$t') path = value.longitude -value = get('value.geo$long/$t') +value = get('value.geo$long.xml$t') path = value.localization@en -value = get('value.localization').map((x) => x.skos$prefLabel.filter(y => (y.xml$lang === 'en')).map(x => x.$t).shift()) +value = get('value.localization').map((x) => x.skos$prefLabel.filter(y => (y.xml$lang === 'en')).map(x => x.xml$t).shift()) path = value.localization@fr -value = get('value.localization').map((x) => x.skos$prefLabel.filter(y => (y.xml$lang === 'fr')).map(x => x.$t).shift()) +value = get('value.localization').map((x) => x.skos$prefLabel.filter(y => (y.xml$lang === 'fr')).map(x => x.xml$t).shift()) path = value.postalCode -value = get('value.vcard$postal-code', []).castArray().map(item => (item.$t ? item.$t : item)) +value = get('value.vcard$postal-code', []).castArray().map(item => (item.xml$t ? item.xml$t : item)) path = value.cedexPostalCode -value = get('value.inist$cedex-postal-code', []).castArray().map(item => (item.$t ? item.$t : item)) +value = get('value.inist$cedex-postal-code', []).castArray().map(item => (item.xml$t ? item.xml$t : item)) [delegate] file = ./v1/send.cfg - -[OBJFlatten] -reverse = true -safe = true diff --git a/loterre-resolvers/v1/P66/identify.ini b/loterre-resolvers/v1/P66/identify.ini index edf4eb4..d2037fd 100644 --- a/loterre-resolvers/v1/P66/identify.ini +++ b/loterre-resolvers/v1/P66/identify.ini @@ -42,26 +42,14 @@ [swing] test = get('value').isObject() [swing/replace] -path = id -value = get('id') - -path = value.id -value = get('value.id') - path = value.about value = get('value.rdf$about') path = value.prefLabel@fr -value = get('value.skos$prefLabel').filter(y => (y.xml$lang === 'fr')).map(x => x.$t).shift() +value = get('value.skos$prefLabel').filter(y => (y.xml$lang === 'fr')).map(x => x.xml$t).shift() path = value.prefLabel@en -value = get('value.skos$prefLabel').filter(y => (y.xml$lang === 'en')).map(x => x.$t).shift() - -path = value.localization@en -value = get('value.localization').map((x) => x.skos$prefLabel.filter(y => (y.xml$lang === 'en')).map(x => x.$t).shift()) - -path = value.localization@fr -value = get('value.localization').map((x) => x.skos$prefLabel.filter(y => (y.xml$lang === 'fr')).map(x => x.$t).shift()) +value = get('value.skos$prefLabel').filter(y => (y.xml$lang === 'en')).map(x => x.xml$t).shift() [delegate] file = ./v1/send.cfg diff --git a/loterre-resolvers/v1/send.cfg b/loterre-resolvers/v1/send.cfg index 5116b62..7314fe3 100644 --- a/loterre-resolvers/v1/send.cfg +++ b/loterre-resolvers/v1/send.cfg @@ -1,16 +1,2 @@ -[use] -plugin = basics - -# Prevent keys from containing dot path notation or start with a dollar character (which is forbidden by nodeJS mongoDB driver) -[OBJFlatten] -separator = fix('.') -safe = false -[exchange] -value = self().mapKeys((value, key) => key.replace(/\.\$/g, '.xml$').replace(/\/\$/g, '/xml$')) -[OBJFlatten] -separator = fix('.') -reverse = true -safe = false - [dump] indent = env('indent', false) diff --git a/loterre-resolvers/v1/transcribe.cfg b/loterre-resolvers/v1/transcribe.cfg index 9f88693..5c4a57e 100644 --- a/loterre-resolvers/v1/transcribe.cfg +++ b/loterre-resolvers/v1/transcribe.cfg @@ -44,11 +44,20 @@ value = self().pick(['skos$prefLabel', 'rdf$about']) -# trick to apply OBJFlatten only on the value field +# Prevent keys from containing dot path notation or start with a dollar character (which is forbidden by nodeJS mongoDB driver) +# use map is trick to apply stamtement only on the value field [map] path = value + [map/OBJFlatten] -safe = true +separator = fix('.') +safe = false +[map/exchange] +value = self().mapKeys((value, key) => key.replace(/\.\$/g, '.xml$').replace(/\/\$/g, '/xml$')) +[map/OBJFlatten] +separator = fix('.') +reverse = true +safe = false [assign] path = value