@Override
	public void considerTriple(Resource s, Property p, RDFNode o) {
		assert s != null;
		assert p != null;
		assert o != null;

		String type = Namespace.RDF.getFullTerm("type");
		if ((p.getURI().equals(type) || p.getURI().equals("a"))) {
			logger.trace("using triple (" + s + " " + p + " " + o + ")");

			// add typed subject (not type rdfs:Resource)
			if (!o.isURIResource() || !((Resource) o).getURI().equals(Namespace.RDFS.getFullTerm("Resource")))
				typedResources.add(s.toString());

			if (o.isURIResource()) {
				Resource oRes = (Resource) o;

				// handle def classes
				if (oRes.getURI().equals(Namespace.RDFS.getFullTerm("Class"))
						|| oRes.getURI().equals(Namespace.OWL.getFullTerm("Class")))
					defClasses.add(s.toString());
				
				// handle def concepts
				if (oRes.getURI().equals(Namespace.SKOS.getFullTerm("Concept")))
					defConcepts.add(s.toString());

				// handle def properties
				if (oRes.getURI().equals(Namespace.RDF.getFullTerm("Property")))
					defProperties.add(s.toString());
			}
			
			// update counters
			numDefClasses = defClasses.size();
			numDefConcepts = defConcepts.size();
			numDefProperties = defProperties.size();
			numTypedResources = typedResources.size();
		}

	}