True if an RDF triple <S,P,O> exists, optionally in the graph G.
The object O is either a resource (atom) or one of the terms
listed below. The described types apply for the case where O is
unbound. If O is instantiated it is converted according to the
rules described with rdf_assert/3.
Triples consist of the following three terms:
- Blank nodes are encoded by atoms that start with `_:`.
- IRIs appear in two notations:
- Full IRIs are encoded by atoms that do not start with
`_:`. Specifically, an IRI term is not required to follow
the IRI standard grammar.
- Abbreviated IRI notation that allows IRI prefix aliases
that are registered by rdf_register_prefix/[2,3] to be
used. Their notation is
Alias:Local, where Alias and
Local are atoms. Each abbreviated IRI is expanded by the
system to a full IRI.
- Literals appear in two notations:
A language-tagged string, where String is a Prolog string
and Lang is an atom.
A type qualified literal. For unknown types, Value is a
Prolog string. If type is known, the Prolog representations
from the table below are used.
|Datatype IRI||Prolog term|
|XSD integer sub-types||integer|
(1) The current implementation of
as floats is formally incorrect. Future versions
of SWI-Prolog may introduce decimal as a subtype
(2) SS fields denote the number of seconds. This can
either be an integer or a float.
date_time structure can have a 7th field that
denotes the timezone offset in seconds as an
In addition, a ground object value is translated into a
properly typed RDF literal using rdf_canonical_literal/2.
There is a fine distinction in how duplicate statements are
handled in rdf/[3,4]: backtracking over rdf/3 will never return
duplicate triples that appear in multiple graphs. rdf/4 will
return such duplicate triples, because their graph term differs.
|S||- is the subject term. It is either a blank node or IRI.|
|P||- is the predicate term. It is always an IRI.|
|O||- is the object term. It is either a literal, a blank
node or IRI (except for |
false that denote the
values of datatype XSD boolean).
|G||- is the graph term. It is always an IRI.|
- See also
- - Triple pattern querying
- - xsd_number_string/2 and xsd_time_string/3 are used to
convert between lexical representations and Prolog terms.