docs: public static String getJsonDatatypeFromDatatypeIri(String datatypeIri) {
  		switch (datatypeIri) {
  			case DatatypeIdValue.DT_ITEM:
  				return DatatypeIdImpl.JSON_DT_ITEM;
  			case DatatypeIdValue.DT_GLOBE_COORDINATES:
  				return DatatypeIdImpl.JSON_DT_GLOBE_COORDINATES;
  			case DatatypeIdValue.DT_URL:
  				return DatatypeIdImpl.JSON_DT_URL;
  			case DatatypeIdValue.DT_COMMONS_MEDIA:
  				return DatatypeIdImpl.JSON_DT_COMMONS_MEDIA;
  			case DatatypeIdValue.DT_TIME:
  				return DatatypeIdImpl.JSON_DT_TIME;
  			case DatatypeIdValue.DT_QUANTITY:
  				return DatatypeIdImpl.JSON_DT_QUANTITY;
  			case DatatypeIdValue.DT_STRING:
  				return DatatypeIdImpl.JSON_DT_STRING;
  			case DatatypeIdValue.DT_MONOLINGUAL_TEXT:
  				return DatatypeIdImpl.JSON_DT_MONOLINGUAL_TEXT;
  			case DatatypeIdValue.DT_PROPERTY:
  				return DatatypeIdImpl.JSON_DT_PROPERTY;
  			default:
  				//We apply the reverse algorithm of JacksonDatatypeId::getDatatypeIriFromJsonDatatype
  				Matcher matcher = DATATYPE_ID_PATTERN.matcher(datatypeIri);
  				if(!matcher.matches()) {
  					throw new IllegalArgumentException("Unknown datatype: " + datatypeIri);
  				}
  		
  				StringBuilder jsonDatatypeBuilder = new StringBuilder();
  				for(char ch : StringUtils.uncapitalize(matcher.group(1)).toCharArray()) {
  					if(Character.isUpperCase(ch)) {
  						jsonDatatypeBuilder
  								.append('-')
  								.append(Character.toLowerCase(ch));
  					} else {
  						jsonDatatypeBuilder.append(ch);
  					}
  				}
  				return jsonDatatypeBuilder.toString();
  		}
  	}