private URI getImpliedType (Object subject) {
        SingleDescriptionTriples subjectBuffer = _buffered.get (subject);
        Term type;

        if (subjectBuffer != null) {
            for (URI predicate : subjectBuffer.getPredicates ()) {
                if (Term.isProvTerm (predicate)) {
                    type = ProvConstructer.getDomain (Term.toTerm (predicate));
                    if (type != null) {
                        return type.uri ();
                    }
                }
            }
        }
        for (SingleDescriptionTriples buffer : _buffered.values ()) {
            for (URI predicate : buffer.getPredicatesWithObject (subject)) {
                if (Term.isProvTerm (predicate)) {
                    type = ProvConstructer.getRange (Term.toTerm (predicate));
                    if (type != null) {
                        return type.uri ();
                    }
                }
            }
        }
        return null;
    }