<?xml version="1.0"?> <!-- SPDX-FileCopyrightText: 2024 Lady <https://www.ladys.computer/about/#lady> SPDX-License-Identifier: CC0-1.0 --> <!DOCTYPE Class SYSTEM "../../DTD"> <Class> <label xml:lang="en">Container</label> <comment xml:lang="en"> <p> A collection of zero or more things. </p> <p> Membership within Containers is indicated through the use of <code>rdf:_$</code> properties, where <code>$</code> is a <em>positive</em> (i·e nonzero) integer with no leading zeroes. These properties are all considered subproperties of <resource name="rdfs:member"/>, although there are no normative requirements on processors recognizing this fact. There is no requirement that membership properties be dense; i·e just because a Collection has values for <resource name="rdf:_1"/> and <resource name="rdf:_3"/> does not imply it has a value for <resource name="rdf:_2"/>. </p> <p> Containers are allowed to contain themselves as members. The subclasses <ptr target="rdf:Bag"/>, <ptr target="rdf:Seq"/>, and <ptr target="rdf:Alt"/> convey different intentions about the relationship between the items in containers. </p> <p> Because the relationship between <resource name="rdf:_1"/>, <resource name="rdf:_2"/>, ⁊·c and <resource name="rdfs:member"/> is often implicit, and because there is no upper limit to membership properties or restrictions on their length, Containers can be difficult to reason about. <ref target="rdf:List">Lists</ref> are a better solution in most cases. </p> </comment> <isDefinedBy> <SpecificResource source="(RDF11-SCHEMA)" fragment="ch_container"/> </isDefinedBy> </Class>