Set<Statement> set = r.listProperties(RDF.type).toSet();
if (set.size() > 0) {
Resource type = set.iterator().next().getResource();
if (!type.equals(FOAF.Document)) {
throw new IncompatibleTypeException("Expected resource " + r
+ " to be of type " + FOAF.Document + " but is of type " + type);
}
} else {
Statement s = model.createStatement(r, RDF.type, FOAF.Document);
model.add(s);