:- use_module(library(semweb/rdf11)).
[nondet]rdf(?S, 
?P, ?O)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:
- String @ Lang
 - A language-tagged string, where String is a Prolog string and Lang is an atom.
 - Value 
^^Type - 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:float float xsd:double float xsd:decimal float (1) xsd:integer integer XSD integer sub-types integer xsd:boolean trueorfalsexsd:date date(Y,M,D)xsd:dateTime date_time(Y,M,D,HH,MM,SS)(2,3)xsd:gDay integer xsd:gMonth integer xsd:gMonthDay month_day(M,D)xsd:gYear integer xsd:gYearMonth year_month(Y,M)xsd:time time(HH,MM,SS)(2) 
 
Notes:
(1) The current implementation of xsd:decimal values as 
floats is formally incorrect. Future versions of SWI-Prolog may 
introduce decimal as a subtype of rational.
(2) SS fields denote the number of seconds. This can either be an integer or a float.
(3) The date_time structure can have a 7th field that 
denotes the timezone offset in seconds as an integer.
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 true and 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. 
:- use_module(library(semweb/rdf_db)).
[nondet]rdf(?Subject, 
?Predicate, ?Object, ?Source)| Source | is a term Graph:Line. If Source is instatiated, passing an atom is the same as passing Atom:_. |