These notions are explained and defined in detail in the RDF Semantics, specifically in the appendix about entailment rules.
Completeness, in this context, refers to completeness of doing entailment checking by computation of the deductive closure via entailment rules.
Suppose we have two RDF graphs (S and E), and S logically entails E, then the closure is complete if it can always derive E from S. In the appendix I mentioned above, it is shown that this is not always the case for RDF-entailment and RDFS-entailment: some triples are logically entailed which can not actually be derived by the entailment-checking strategy. It is also shown that if the notion of "generalized RDF" is added to the mix, the strategy is complete.
In other words, the reason the process is not complete is simply that some things which are true can not be derived, due to the syntactical restrictions on triples (literals can't be subjects, and blank nodes can't be predicates), which cause some of the entailment patterns to not apply, even though logically they should apply.
An example. Suppose we have this graph:
:p rdfs:subPropertyOf _:b .
_:b rdfs:domain :C .
:a :p :x .
Due to the semantics of rdfs:subPropertyOf
and rdfs:domain
, this graph logically entails (under RDFS semantics):
:a rdf:type :C .
However, this triple will not be entailed by applying the entailment rules as defined in section 9.2.1 - the reason being that it requires derivation (via rule rdfs7) of the intermediate result :a _:b :x
, but the blank node _:b
is not allowed in this position in 'normal' RDF.
Coming back to your original question, I find the phrasing "the completeness [...] is easier to show with a generalization" somewhat odd as arguably the entailment rules aren't complete, unless you allow for generalization.