framework/application/api/src/main/java/org/ldp4j/application/vocabulary/AbstractImmutableVocabulary.java
protected final int reserveTermName(String name) {
		checkStatus(Status.INITIALIZING);
		checkInitializationPrecondition(TermUtils.isValidTermName(name), "Object '%s' is not a valid term name",name);
		checkInitializationPrecondition(!this.nameOrdinal.containsKey(name),"Term '%s' has been already reserved",name);
		this.nameOrdinal.put(name, ++this.ordinal);
		return this.ordinal;
	}
protected final int reserveTermName(String name) {
		checkStatus(Status.INITIALIZING);
		checkInitializationPrecondition(TermUtils.isValidTermName(name), "Object '%s' is not a valid term name",name);
		checkInitializationPrecondition(!this.nameOrdinal.containsKey(name),"Term '%s' has been already reserved",name);
		this.nameOrdinal.put(name, ++this.ordinal);
		return this.ordinal;
	}
Allow the reservation of term names during the initialization of the
vocabulary.

@param name
then name of the term
@return a number that represents the position in which the term was
reserved
@throws IllegalArgumentException
if the specified name is not valid or it has been already
reserved.
@throws IllegalStateException
if the vocabulary has been already initialized.