 [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)Succeeds if the triple
[nondet]rdf_has(?Subject, 
+Predicate, ?Object)Succeeds if the triple rdf(Subject, Predicate, Object) is 
true exploiting the rdfs:subPropertyOf predicate as well as inverse 
predicates declared using rdf_set_predicate/2 
with the
inverse_of property.