@Post("json")
    public Representation _post1(Representation body) {
        if (body == null) {
            setStatus(Status.CLIENT_ERROR_BAD_REQUEST);
            return null;
        }

        Map<String, Object> map = mapify(body);
        Object stmt_obj = map.get("statement");
        if (stmt_obj == null) {
            setStatus(Status.CLIENT_ERROR_BAD_REQUEST);
            return null;
        }

        String stmt_str = cast(stmt_obj, String.class);
        if (stmt_str == null) {
            setStatus(Status.CLIENT_ERROR_BAD_REQUEST);
            return null;
        }
        Statement stmt;
        try {
            stmt = parseStatement(stmt_str);
        } catch (Exception e) {
            stmt = null;
        }

        Objects.Validation objv;
        if (stmt == null) {
            objv = new Objects.Validation(false);
            return objv.json();
        }
        else objv = new Objects.Validation(true);

        Document document = DOCUMENT.clone();

        // Fix all parameter namespaces
        Map<String, Namespace> nsmap = document.getNamespaceMap();
        for (final Term term : stmt) {
            for (final Parameter param : term) {
                Namespace ns = param.getNamespace();
                if (ns == null) continue;
                Namespace known = nsmap.get(ns.getPrefix());
                if (known == null) continue;
                param.setNamespace(known);
            }
        }

        StatementGroup sg = document.getStatementGroups().get(0);
        List<Statement> stmts = new ArrayList<>();
        stmts.add(stmt);
        sg.setStatements(stmts);

        sem.acquireUninterruptibly();
        try {
            //compile(objv, new String());
        } finally {
            sem.release();
        }
        return objv.json();
    }