Availability:

`:- use_module(library(semweb/rdf_db)).`

**rdf_predicate_property**(

`?Predicate, ?Property`)

**symmetric**(`Bool`)- True if the predicate is defined to be symetric. I.e., {A} P
{B} implies {B} P {A}. Setting symmetric is equivalent to
`inverse_of(Self)`

. **inverse_of**(`Inverse`)- True if this predicate is the inverse of
`Inverse`. This property is used by rdf_has/3, rdf_has/4, rdf_reachable/3 and rdf_reachable/5. **transitive**(`Bool`)- True if this predicate is transitive. This predicate is currently not used. It might be used to make rdf_has/3 imply rdf_reachable/3 for transitive predicates.
**triples**(`Triples`)- Unify
`Triples`with the number of existing triples using this predicate as second argument. Reporting the number of triples is intended to support query optimization. **rdf_subject_branch_factor**(`-Float`)- Unify
`Float`with the average number of triples associated with each unique value for the subject-side of this relation. If there are no triples the value 0.0 is returned. This value is cached with the predicate and recomputed only after substantial changes to the triple set associated to this relation. This property is intended for path optimalisation when solving conjunctions of rdf/3 goals. **rdf_object_branch_factor**(`-Float`)- Unify
`Float`with the average number of triples associated with each unique value for the object-side of this relation. In addition to the comments with the subject_branch_factor property, uniqueness of the object value is computed from the hash key rather than the actual values. **rdfs_subject_branch_factor**(`-Float`)- Same as
`rdf_subject_branch_factor`

, but also considering triples of `subPropertyOf' this relation. See also rdf_has/3. **rdfs_object_branch_factor**(`-Float`)- Same as
`rdf_object_branch_factor`

, but also considering triples of `subPropertyOf' this relation. See also rdf_has/3.

- See also
- rdf_set_predicate/2.