 [nondet]rdf_has(?S, 
+P, ?O)
[nondet]rdf_has(?S, 
+P, ?O, -RealP)Similar to rdf/3 and rdf/4, 
but P matches all predicates that are defined as an 
rdfs:subPropertyOf of P. This predicate also recognises the 
predicate properties
[nondet]rdf_has(?S, 
+P, ?O)
[nondet]rdf_has(?S, 
+P, ?O, -RealP)Similar to rdf/3 and rdf/4, 
but P matches all predicates that are defined as an 
rdfs:subPropertyOf of P. This predicate also recognises the 
predicate properties inverse_of and
symmetric. See rdf_set_predicate/2.
 [nondet]rdf_has(?Subject, 
+Predicate, ?Object, -RealPredicate)Same as rdf_has/3, but RealPredicate 
is unified to the actual predicate that makes this relation true. RealPredicate 
must be
Predicate or an rdfs:subPropertyOf Predicate. If 
an inverse match is found, RealPredicate is the term
[nondet]rdf_has(?Subject, 
+Predicate, ?Object, -RealPredicate)Same as rdf_has/3, but RealPredicate 
is unified to the actual predicate that makes this relation true. RealPredicate 
must be
Predicate or an rdfs:subPropertyOf Predicate. If 
an inverse match is found, RealPredicate is the term inverse_of(Pred).