commons/http/src/main/java/org/ldp4j/http/ContentNegotiator.java
public NegotiationResult negotiate() {
		return
			new ContentNegotiationAlgorithm(
				this.mediaTypes.build(),
				this.characterEncodings.build(),
				this.languages.build(),
				this.supported.build(),
				this.accepts.build(),
				this.acceptCharsets.build(),
				this.acceptLanguages.build(),
				this.errorVariant).
				execute();
	}
public NegotiationResult negotiate() {
		return
			new ContentNegotiationAlgorithm(
				this.mediaTypes.build(),
				this.characterEncodings.build(),
				this.languages.build(),
				this.supported.build(),
				this.accepts.build(),
				this.acceptCharsets.build(),
				this.acceptLanguages.build(),
				this.errorVariant).
				execute();
	}
Carry out the content negotiation taking into account both the supported
and the acceptable media types, character encodings, and languages.
<p>
The method implements a simplified version of the <b>Remote Variant
Selection Algorithm</b> defined in <a
href="https://tools.ietf.org/html/rfc2296">RFC 2296</a>.
<p>
The differences between the implemented algorithm and the original one
are the following:
<ol>
<li>There is no support for <i>features</i>,
<li>Variant <i>source-quality</i> is assigned linearly (with ratio
-0.125) of the values suggested in Section 5.3 of RFC 2296;
<li>The <i>round5</i> function is not applied during the computation of
overall quality values.
</ol>
The reason for this latter difference is that in the presence of
fine-grained qualities (<i>i.e.</i>, 0.001) computed quality values
converge to 10<sup>-12</sup>, and can make variants with non-zero
computed qualities appear like they are not amenable to selection.

@return the result of the content negotiation
@see <a href="https://tools.ietf.org/html/rfc2296">RFC 2296: HTTP Remote
Variant Selection Algorithm -- RVSA/1.0</a>