<?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">Content</label>
	<comment xml:lang="en">
		<p>
			A thing which represents a specific representation of an information resource: that conveyed by its <ref target="awol:body">body</ref> or by its <ref target="awol:src">source</ref>.
		</p>
		<p>
			<ptr target="(AWOL)"/> remarks that this class encompasses things similar to “what one can get from a H·T·T·P connection”, in that it has a body as well as other associated metadata (provided by its other properties).
			Providing a literal body, rather than a source, is strongly preferred.
		</p>
		<p>
			The <ref target="awol:type">media type</ref> of the body may be provided, regardless of whether the body is provided literally or via a source.
			However, there are restrictions on literal bodies :⁠—
		</p>
		<list>
			<item>
				<p>
					If the media type ends in <code>/xml</code> or <code>+xml</code> (case‐insensitively), then the literal body must not be a <resource name="rdf:PlainLiteral"/>.
				</p>
			</item>
			<item>
				<p>
					If the media type is present, but does not end in <code>/xml</code> or <code>+xml</code> (case‐insensitively), then the literal body must not be a <resource name="rdf:XMLLiteral"/>.
				</p>
			</item>
			<item>
				<p>
					If the body is a language‐tagged string, then there must not be a media type.
				</p>
			</item>
		</list>
	</comment>
	<isDefinedBy>
		<SpecificResource source="(AWOL)" fragment="Content"/>
	</isDefinedBy>
	<equivalentClass>
		<Class>
			<unionOf>
				<Class>
					<intersectionOf>
						<Restriction>
							<onProperty>
								<resource name="awol:body"/>
							</onProperty>
							<cardinality>1</cardinality>
						</Restriction>
						<Restriction>
							<onProperty>
								<resource name="awol:src"/>
							</onProperty>
							<cardinality>0</cardinality>
						</Restriction>
					</intersectionOf>
				</Class>
				<Class>
					<intersectionOf>
						<Restriction>
							<onProperty>
								<resource name="awol:body"/>
							</onProperty>
							<cardinality>0</cardinality>
						</Restriction>
						<Restriction>
							<onProperty>
								<resource name="awol:src"/>
							</onProperty>
							<cardinality>1</cardinality>
						</Restriction>
					</intersectionOf>
				</Class>
			</unionOf>
		</Class>
	</equivalentClass>
	<subClassOf>
		<Class>
			<unionOf>
				<Class>
					<intersectionOf>
						<Restriction>
							<onProperty>
								<resource name="awol:type"/>
							</onProperty>
							<allValuesFrom>
								<Datatype>
									<onDatatype>
										<resource name="xsd:string"/>
									</onDatatype>
									<withRestrictions>
										<pattern>.*[+/][Xx][Mm][Ll]</pattern>
									</withRestrictions>
								</Datatype>
							</allValuesFrom>
						</Restriction>
						<Restriction>
							<onProperty>
								<resource name="awol:body"/>
							</onProperty>
							<qualifiedCardinality>0</qualifiedCardinality>
							<onDataRange>
								<resource name="rdf:PlainLiteral"/>
							</onDataRange>
						</Restriction>
					</intersectionOf>
				</Class>
				<Class>
					<intersectionOf>
						<Restriction>
							<onProperty>
								<resource name="awol:type"/>
							</onProperty>
							<qualifiedCardinality>0</qualifiedCardinality>
							<onDataRange>
								<Datatype>
									<onDatatype>
										<resource name="xsd:string"/>
									</onDatatype>
									<withRestrictions>
										<pattern>.*[+/][Xx][Mm][Ll]</pattern>
									</withRestrictions>
								</Datatype>
							</onDataRange>
						</Restriction>
						<Restriction>
							<onProperty>
								<resource name="awol:body"/>
							</onProperty>
							<allValuesFrom>
								<Datatype>
									<unionOf>
										<resource name="xsd:string"/>
										<resource name="xsd:base64Binary"/>
									</unionOf>
								</Datatype>
							</allValuesFrom>
						</Restriction>
					</intersectionOf>
				</Class>
				<Restriction>
					<onProperty>
						<resource name="awol:type"/>
					</onProperty>
					<cardinality>0</cardinality>
				</Restriction>
			</unionOf>
		</Class>
	</subClassOf>
</Class>