Hi, I had opened an issue on jsonld-java:
https://github.com/jsonld-java/jsonld-java/issues/170 but I closed it, because it turns out that the problem is within jena (see comments about the issue for an explanation), class JsonLDWriter, around line 150: } else if ( o.isLiteral() ) { String literalDatatypeURI = o.getLiteralDatatypeURI() ; if ( literalDatatypeURI != null ) { // add property as a typed attribute (the object is a // typed literal) Map<String, Object> x2 = new LinkedHashMap<>() ; x2.put("@id", p.getURI()) ; // Not setting the @type with literalDatatypeURI solves the problem // At least, don’t do it when it is langString if (!RDF.langString.getURI().equals(literalDatatypeURI)) { x2.put("@type", literalDatatypeURI) ; } ctx.put(x, x2) ; } else { // add property as an untyped attribute (the object is // an untyped literal) ctx.put(x, p.getURI()) ; } Best, fps