# Necessary plugins [use] plugin = basics plugin = analytics plugin = storage # Load concept form URI [load] location = env('location') domain = env('loterreID').prepend('loterre-').append('concepts') path = value target = value # transcribe broaderConcept [assign] path = value.skos$broader value = get('value.skos$broader').castArray().filter(Boolean) [map] path = value.skos$broader [map/load] location = env('location') domain = env('loterreID').prepend('loterre-').append('concepts') path = rdf$resource [map/exchange] value = self().pick(['skos$prefLabel', 'rdf$about']) # transcribe narrowerConcept [assign] path = value.skos$narrower value = get('value.skos$narrower').castArray().filter(Boolean) [map] path = value.skos$narrower [map/load] location = env('location') domain = env('loterreID').prepend('loterre-').append('concepts') path = rdf$resource [map/exchange] value = self().pick(['skos$prefLabel', 'rdf$about']) # 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] 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 value = get('value').pop()