% This LaTeX document was generated using the LaTeX backend of PlDoc, % The SWI-Prolog documentation system \subsection{library(semweb/rdf11_containers): RDF 1.1 Containers} \label{sec:rdf11containers} \begin{tags} \mtag{author}- Wouter Beek \\- Jan Wielemaker \tag{version} 2016/01 \tag{See also} \url{http://www.w3.org/TR/2014/REC-rdf-schema-20140225/\#ch_containervocab} \tag{Compatibility} RDF 1.1 \end{tags} Implementation of the conventional human interpretation of RDF 1.1 containers. RDF containers are open enumeration structures as opposed to RDF collections or RDF lists which are closed enumeration structures. The same resource may appear in a container more than once. A container may be contained in itself.\hrule\vspace{0.7cm} \begin{description} \predicate[nondet]{rdf_alt}{3}{+Alt, ?Default, ?Others} True when \arg{Alt} is an instance of \verb$rdf:Alt$ with first member \arg{Default} and remaining members \arg{Others}. Notice that this construct adds no machine-processable semantics but is conventionally used to indicate to a human reader that the numerical ordering of the container membership properties of Container is intended to only be relevant in distinguishing between the first and all non-first members. \arg{Default} denotes the default option to take when choosing one of the alternatives container in Container. \arg{Others} denotes the non-default options that can be chosen from. \predicate[det]{rdf_assert_alt}{3}{?Alt, +Default, +Others:list} \nodescription \predicate[det]{rdf_assert_alt}{4}{?Alt, +Default, +Others:list, +Graph} Create an rdf:\arg{Alt} with the given \arg{Default} and \arg{Others}. \arg{Default} and the members of \arg{Others} must be valid object terms for \predref{rdf_assert}{3}. \predicate[nondet]{rdf_bag}{2}{+Bag, -List:list} True when \arg{Bag} is an rdf:\arg{Bag} and set is the set values related through container membership properties to \arg{Bag}. Notice that this construct adds no machine-processable semantics but is conventionally used to indicate to a human reader that the numerical ordering of the container membership properties of Container is intended to not be significant. \predicate[det]{rdf_assert_bag}{2}{?Bag, +Set:list} \nodescription \predicate[det]{rdf_assert_bag}{3}{?Bag, +Set:list, +Graph} Create an rdf:\arg{Bag} from the given set of values. The members of \arg{Set} must be valid object terms for \predref{rdf_assert}{3}. \predicate[nondet]{rdf_seq}{2}{+Seq, -List:list} True when \arg{Seq} is an instance of rdf:\arg{Seq} and \arg{List} is a list of associated values, ordered according to the container membership property used. Notice that this construct adds no machine-processable semantics but is conventionally used to indicate to a human reader that the numerical ordering of the container membership properties of Container is intended to be significant. \predicate[det]{rdf_assert_seq}{2}{?Seq, +List} \nodescription \predicate[det]{rdf_assert_seq}{3}{?Seq, +List, +Graph} \predicate[nondet]{rdfs_container}{2}{+Container, -List} True when \arg{List} is the list of objects attached to \arg{Container} using a container membership property (rdf:_0, rdf:_1, ...). If multiple objects are connected to the \arg{Container} using the same membership property, this predicate selects one value non-deterministically. \predicate[nondet]{rdfs_container_membership_property}{1}{?Property} True when \arg{Property} is a container membership property (rdf:_1, rdf:_2, ...). \predicate[nondet]{rdfs_container_membership_property}{2}{?Property, ?Number:nonneg} True when \arg{Property} is the Nth container membership property. Success of this goal does not imply that \arg{Property} is present in the database. \predicate[nondet]{rdfs_member}{2}{?Elem, ?Container} True if \verb$rdf(Container, P, Elem)$ is true and P is a container membership property. \predicate[nondet]{rdfs_nth0}{3}{?N, ?Container, ?Elem} True if \verb$rdf(Container, P, Elem)$ is true and P is the \arg{N}-th (0-based) container membership property. \end{description}