]> Lady’s Gitweb - Vocab/commitdiff
Add .rsync-filter live
authorLady <redacted>
Mon, 24 Feb 2025 03:09:28 +0000 (22:09 -0500)
committerLady <redacted>
Mon, 24 Feb 2025 03:09:28 +0000 (22:09 -0500)
70 files changed:
.rsync-filter [new file with mode: 0644]
DTD
data/annotation_properties/ore¦similarTo [new file with mode: 0644]
data/classes/olo¦OrderedList [new file with mode: 0644]
data/classes/olo¦Slot [new file with mode: 0644]
data/classes/ore¦AggregatedResource [new file with mode: 0644]
data/classes/ore¦Aggregation [new file with mode: 0644]
data/classes/ore¦Proxy [new file with mode: 0644]
data/classes/pcdmuse¦ExtractedText [new file with mode: 0644]
data/classes/pcdmuse¦IntermediateFile [new file with mode: 0644]
data/classes/pcdmuse¦OriginalFile [new file with mode: 0644]
data/classes/pcdmuse¦PreservationFile [new file with mode: 0644]
data/classes/pcdmuse¦ServiceFile [new file with mode: 0644]
data/classes/pcdmuse¦ThumbnailImage [new file with mode: 0644]
data/classes/pcdmuse¦Transcript [new file with mode: 0644]
data/classes/pcdmworks¦FileSet [new file with mode: 0644]
data/classes/pcdmworks¦Work [new file with mode: 0644]
data/classes/pcdm¦Collection [new file with mode: 0644]
data/classes/pcdm¦File [new file with mode: 0644]
data/classes/pcdm¦Object [new file with mode: 0644]
data/classes/¦Proxy [new file with mode: 0644]
data/classes/¦UnicodeScalarValue [new file with mode: 0644]
data/classes/¦UnicodeString [new file with mode: 0644]
data/datatype_properties/olo¦index [new file with mode: 0644]
data/datatype_properties/olo¦length [new file with mode: 0644]
data/named_individuals/_FOAF_
data/named_individuals/_IIIF_ [new file with mode: 0644]
data/named_individuals/_OAI-ORE_ [new file with mode: 0644]
data/named_individuals/_OLO_ [new file with mode: 0644]
data/named_individuals/_PCDM_ [new file with mode: 0644]
data/named_individuals/_RFC5005_ [new file with mode: 0644]
data/named_individuals/rel¦current [new file with mode: 0644]
data/named_individuals/rel¦first [new file with mode: 0644]
data/named_individuals/rel¦last [new file with mode: 0644]
data/named_individuals/rel¦next [new file with mode: 0644]
data/named_individuals/rel¦next-archive [new file with mode: 0644]
data/named_individuals/rel¦prev-archive [new file with mode: 0644]
data/named_individuals/rel¦previous [new file with mode: 0644]
data/named_individuals/¦AnyWhichWay [new file with mode: 0644]
data/named_individuals/¦Everything [new file with mode: 0644]
data/object_properties/awol¦email
data/object_properties/olo¦item [new file with mode: 0644]
data/object_properties/olo¦next [new file with mode: 0644]
data/object_properties/olo¦ordered_list [new file with mode: 0644]
data/object_properties/olo¦previous [new file with mode: 0644]
data/object_properties/olo¦slot [new file with mode: 0644]
data/object_properties/ore¦aggregates [new file with mode: 0644]
data/object_properties/ore¦isAggregatedBy [new file with mode: 0644]
data/object_properties/ore¦lineage [new file with mode: 0644]
data/object_properties/ore¦proxyFor [new file with mode: 0644]
data/object_properties/ore¦proxyIn [new file with mode: 0644]
data/object_properties/pcdm¦hasFile [new file with mode: 0644]
data/object_properties/pcdm¦hasMember [new file with mode: 0644]
data/object_properties/pcdm¦hasRelatedObject [new file with mode: 0644]
data/object_properties/pcdm¦isFileOf [new file with mode: 0644]
data/object_properties/pcdm¦isMemberOf [new file with mode: 0644]
data/object_properties/pcdm¦isRelatedObjectOf [new file with mode: 0644]
data/object_properties/rel¦current [new file with mode: 0644]
data/object_properties/rel¦first [new file with mode: 0644]
data/object_properties/rel¦last [new file with mode: 0644]
data/object_properties/rel¦next [new file with mode: 0644]
data/object_properties/rel¦next-archive [new file with mode: 0644]
data/object_properties/rel¦prev-archive [new file with mode: 0644]
data/object_properties/rel¦previous [new file with mode: 0644]
data/object_properties/sioc¦email
data/ontologies/¦
parsers/ontology.xslt
transforms/infer.xslt
transforms/render.xslt
transforms/terms.xslt

diff --git a/.rsync-filter b/.rsync-filter
new file mode 100644 (file)
index 0000000..1e1c191
--- /dev/null
@@ -0,0 +1,6 @@
+# SPDX-FileCopyrightText: 2024 Lady <https://www.ladys.computer/about/#lady>
+# SPDX-License-Identifier: CC0-1.0
+
+-s .DS_Store
+-s #*
+-s %*
diff --git a/DTD b/DTD
index 5e9b6fd43d9229d345129f27e0b58b512440eb6f..203e6b3bb05b6cc8bf103df2f332bfa71ce5043c 100644 (file)
--- a/DTD
+++ b/DTD
@@ -56,7 +56,9 @@ SPDX-License-Identifier: CC0-1.0
 >
 
 <!-- Skos -->
 >
 
 <!-- Skos -->
+<!ELEMENT broader (resource)>
 <!ELEMENT inScheme (resource)>
 <!ELEMENT inScheme (resource)>
+<!ELEMENT narrower (resource)>
 
 <!-- Shacl -->
 <!ELEMENT declare (prefix,namespace)>
 
 <!-- Shacl -->
 <!ELEMENT declare (prefix,namespace)>
@@ -194,7 +196,7 @@ SPDX-License-Identifier: CC0-1.0
        name CDATA #IMPLIED
        status (plumbing|unstable|testing|stable|archaic) #IMPLIED
 >
        name CDATA #IMPLIED
        status (plumbing|unstable|testing|stable|archaic) #IMPLIED
 >
-<!ELEMENT NamedIndividual (%annotations;,type*,sameAs*,differentFrom*,inScheme*)>
+<!ELEMENT NamedIndividual (%annotations;,type*,sameAs*,differentFrom*,inScheme*,broader*,narrower*)>
 <!ATTLIST NamedIndividual
        name CDATA #IMPLIED
        status (plumbing|unstable|testing|stable|archaic) #IMPLIED
 <!ATTLIST NamedIndividual
        name CDATA #IMPLIED
        status (plumbing|unstable|testing|stable|archaic) #IMPLIED
diff --git a/data/annotation_properties/ore¦similarTo b/data/annotation_properties/ore¦similarTo
new file mode 100644 (file)
index 0000000..428364e
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE AnnotationProperty SYSTEM "../../DTD">
+<AnnotationProperty>
+       <label xml:lang="en">similar to</label>
+       <comment xml:lang="en">
+               <p>
+                       Some·thing which this <ref target="ore:Aggregation">Aggregation</ref> is an expression of or “broadly equivalent” to.
+               </p>
+               <p>
+                       The intended usage of this property is to point from Aggregations, which are specifically sets of <ref target="ore:AggregatedResource">Aggregated Resources</ref>, to other things which might be interchangeable in some contexts, but which are modelled differently.
+                       For example, a book might be modelled as an Aggregation of chapters, as an Aggregation of pages, or as an atomic unit; this property could be used to link between these different representations.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(OAI-ORE)" fragment="ore-similarTo"/>
+       </isDefinedBy>
+       <subPropertyOf>
+               <resource name="rdfs:seeAlso"/>
+       </subPropertyOf>
+       <domain>
+               <resource name="ore:Aggregation"/>
+       </domain>
+</AnnotationProperty>
diff --git a/data/classes/olo¦OrderedList b/data/classes/olo¦OrderedList
new file mode 100644 (file)
index 0000000..95bd3e6
--- /dev/null
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE Class SYSTEM "../../DTD">
+<Class>
+       <label xml:lang="en">Ordered List</label>
+       <comment xml:lang="en">
+               <p>
+                       An <ref target="ore:Aggregation">Aggregation</ref> which provides an ordered listing of <ref target="olo:Slot">Slots</ref>.
+               </p>
+               <p>
+                       Ordered Lists are required to have a <ref target="olo:length">length</ref>.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(OLO)" fragment="OrderedList"/>
+       </isDefinedBy>
+       <subClassOf>
+               <resource name="ore:Aggregation"/>
+       </subClassOf>
+       <subClassOf>
+               <Restriction>
+                       <onProperty>
+                               <resource name="olo:length"/>
+                       </onProperty>
+                       <cardinality>1</cardinality>
+               </Restriction>
+       </subClassOf>
+</Class>
diff --git a/data/classes/olo¦Slot b/data/classes/olo¦Slot
new file mode 100644 (file)
index 0000000..6d0b2ba
--- /dev/null
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE Class SYSTEM "../../DTD">
+<Class>
+       <label xml:lang="en">Slot</label>
+       <comment xml:lang="en">
+               <p>
+                       A <ref target="ore:Proxy">Proxy</ref> representing a single item in an <ptr target="olo:OrderedList">Ordered List</ptr>.
+               </p>
+               <p>
+                       Slots are required to have an <ref target="olo:index">index</ref>, which should be less than or equal to its <ref target="olo:ordered_list">ordered list</ref>¦s <ref target="olo:length">length</ref>, and an <ref target="olo:item">item</ref>, providing the thing being proxied by the slot.
+               </p>
+               <p>
+                       A Slot is not actually required to have an ordered list by <ptr target="(OLO)"/>, and this caveat may prove useful for ordered slots in <ref target="ore:Aggregation">Aggregations</ref> of indeterminate length, or Aggregations which allow multiple slots with identical indices.
+                       In these cases, Slots will still never·the·less <ref target="ore:proxyIn">be a proxy in</ref> some Aggregation, which provides the context for interpreting their index.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(OLO)" fragment="Slot"/>
+       </isDefinedBy>
+       <subClassOf>
+               <resource name="ore:Proxy"/>
+       </subClassOf>
+       <subClassOf>
+               <Restriction>
+                       <onProperty>
+                               <resource name="olo:index"/>
+                       </onProperty>
+                       <cardinality>1</cardinality>
+               </Restriction>
+       </subClassOf>
+       <subClassOf>
+               <Restriction>
+                       <onProperty>
+                               <resource name="olo:item"/>
+                       </onProperty>
+                       <cardinality>1</cardinality>
+               </Restriction>
+       </subClassOf>
+       <subClassOf>
+               <Restriction>
+                       <onProperty>
+                               <resource name="olo:ordered_list"/>
+                       </onProperty>
+                       <maxCardinality>1</maxCardinality>
+               </Restriction>
+       </subClassOf>
+       <hasKey>
+               <resource name="olo:ordered_list"/>
+               <resource name="olo:index"/>
+       </hasKey>
+</Class>
diff --git a/data/classes/ore¦AggregatedResource b/data/classes/ore¦AggregatedResource
new file mode 100644 (file)
index 0000000..6a40735
--- /dev/null
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE Class SYSTEM "../../DTD">
+<Class>
+       <label xml:lang="en">Aggregated Resource</label>
+       <comment xml:lang="en">
+               <p>
+                       Some·thing which is <ref target="ore:isAggregatedBy">aggregated by</ref> some <ref target="ore:Aggregation">Aggregation</ref>.
+               </p>
+               <p>
+                       This class, on its own, does not imply much of anything, and there isn¦t much need to use it directly.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(OAI-ORE)" fragment="aggr_res"/>
+       </isDefinedBy>
+       <subClassOf>
+               <Restriction>
+                       <onProperty>
+                               <resource name="ore:isAggregatedBy"/>
+                       </onProperty>
+                       <minCardinality>1</minCardinality>
+               </Restriction>
+       </subClassOf>
+</Class>
diff --git a/data/classes/ore¦Aggregation b/data/classes/ore¦Aggregation
new file mode 100644 (file)
index 0000000..7ecefc4
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE Class SYSTEM "../../DTD">
+<Class>
+       <label xml:lang="en">Aggregation</label>
+       <comment xml:lang="en">
+               <p>
+                       A <ref target="dcmitype:Collection">Collection</ref> of (presumably related) <ref target="ore:AggregatedResource">Aggregated Resources</ref>, grouped together such that the set can be treated as a single thing.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(OAI-ORE)" fragment="aggr"/>
+       </isDefinedBy>
+       <subClassOf>
+               <resource name="dcmitype:Collection"/>
+       </subClassOf>
+</Class>
diff --git a/data/classes/ore¦Proxy b/data/classes/ore¦Proxy
new file mode 100644 (file)
index 0000000..78b8341
--- /dev/null
@@ -0,0 +1,87 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE Class SYSTEM "../../DTD">
+<Class>
+       <label xml:lang="en">Proxy</label>
+       <comment xml:lang="en">
+               <p>
+                       A <ref target="Proxy">Proxy</ref> of some <ref target="ore:AggregatedResource">Aggregated Resource</ref> as it exists within a specific <ref target="ore:Aggregation">Aggregation</ref>.
+               </p>
+               <p>
+                       State·ments about Aggregated Resources which are specific to a particular Aggregation need to be made on a Proxy, as such state·ments are not “generally true”.
+                       It is recommended that Proxies not be Aggregated Resources themselves, but this isn¦t formally required.
+               </p>
+               <p>
+                       There is no restriction that an Aggregated Resource only have one Proxy for a given Aggregation.
+                       The restrictions on <ptr target="ore:proxyFor"/> and <ptr target="ore:proxyIn"/> are not formally expressed in <ptr target="(OAI-ORE)"/>, but are in <ptr target="(PCDM)"/>.
+               </p>
+               <p>
+                       Horizontal (previous~next) linking for Proxies is described by <ptr target="(PCDM)"/>, with the quirk of using the spelling <resource name="rel:prev"/> for <ptr target="rel:previous" type="property"/>.
+                       This ontology only recognizes the spelling <resource name="rel:previous"/>, which is formally defined by <ptr target="(RFC5005)"/>.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(OAI-ORE)" fragment="proxy"/>
+       </isDefinedBy>
+       <isDefinedBy>
+               <SpecificResource source="(PCDM)" fragment="oreproxy"/>
+       </isDefinedBy>
+       <subClassOf>
+               <resource name="Proxy"/>
+       </subClassOf>
+       <subClassOf>
+               <Restriction>
+                       <onProperty>
+                               <resource name="ore:proxyFor"/>
+                       </onProperty>
+                       <cardinality>1</cardinality>
+               </Restriction>
+       </subClassOf>
+       <subClassOf>
+               <Restriction>
+                       <onProperty>
+                               <resource name="ore:proxyIn"/>
+                       </onProperty>
+                       <cardinality>1</cardinality>
+               </Restriction>
+       </subClassOf>
+       <subClassOf>
+               <Restriction>
+                       <onProperty>
+                               <resource name="rel:previous"/>
+                       </onProperty>
+                       <maxCardinality>1</maxCardinality>
+               </Restriction>
+       </subClassOf>
+       <subClassOf>
+               <Restriction>
+                       <onProperty>
+                               <resource name="rel:previous"/>
+                       </onProperty>
+                       <allValuesFrom>
+                               <resource name="ore:Proxy"/>
+                       </allValuesFrom>
+               </Restriction>
+       </subClassOf>
+       <subClassOf>
+               <Restriction>
+                       <onProperty>
+                               <resource name="rel:next"/>
+                       </onProperty>
+                       <maxCardinality>1</maxCardinality>
+               </Restriction>
+       </subClassOf>
+       <subClassOf>
+               <Restriction>
+                       <onProperty>
+                               <resource name="rel:next"/>
+                       </onProperty>
+                       <allValuesFrom>
+                               <resource name="ore:Proxy"/>
+                       </allValuesFrom>
+               </Restriction>
+       </subClassOf>
+</Class>
diff --git a/data/classes/pcdmuse¦ExtractedText b/data/classes/pcdmuse¦ExtractedText
new file mode 100644 (file)
index 0000000..2e174ff
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE Class SYSTEM "../../DTD">
+<Class>
+       <label xml:lang="en">Extracted Text</label>
+       <comment xml:lang="en">
+               <p>
+                       A <ref target="pcdm:File">File</ref> which is a textual representation appropriate for fulltext indexing.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(PCDM)"/>
+       </isDefinedBy>
+       <subClassOf>
+               <resource name="pcdm:File"/>
+       </subClassOf>
+</Class>
diff --git a/data/classes/pcdmuse¦IntermediateFile b/data/classes/pcdmuse¦IntermediateFile
new file mode 100644 (file)
index 0000000..e999864
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE Class SYSTEM "../../DTD">
+<Class>
+       <label xml:lang="en">Intermediate File</label>
+       <comment xml:lang="en">
+               <p>
+                       A <ref target="pcdm:File">File</ref> which is high‐quality and suitable for use in creating derivatives or for other additional processing.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(PCDM)"/>
+       </isDefinedBy>
+       <subClassOf>
+               <resource name="pcdm:File"/>
+       </subClassOf>
+</Class>
diff --git a/data/classes/pcdmuse¦OriginalFile b/data/classes/pcdmuse¦OriginalFile
new file mode 100644 (file)
index 0000000..d0dca83
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE Class SYSTEM "../../DTD">
+<Class>
+       <label xml:lang="en">Original File</label>
+       <comment xml:lang="en">
+               <p>
+                       A <ref target="pcdm:File">File</ref> which is in its original creation format.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(PCDM)"/>
+       </isDefinedBy>
+       <subClassOf>
+               <resource name="pcdm:File"/>
+       </subClassOf>
+</Class>
diff --git a/data/classes/pcdmuse¦PreservationFile b/data/classes/pcdmuse¦PreservationFile
new file mode 100644 (file)
index 0000000..1380e66
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE Class SYSTEM "../../DTD">
+<Class>
+       <label xml:lang="en">Preservation File</label>
+       <comment xml:lang="en">
+               <p>
+                       A <ref target="pcdm:File">File</ref> which is appropriate for long‐term preservation.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(PCDM)"/>
+       </isDefinedBy>
+       <subClassOf>
+               <resource name="pcdm:File"/>
+       </subClassOf>
+</Class>
diff --git a/data/classes/pcdmuse¦ServiceFile b/data/classes/pcdmuse¦ServiceFile
new file mode 100644 (file)
index 0000000..c924d80
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE Class SYSTEM "../../DTD">
+<Class>
+       <label xml:lang="en">Service File</label>
+       <comment xml:lang="en">
+               <p>
+                       A <ref target="pcdm:File">File</ref> which is of reasonable quality for end‐users.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(PCDM)"/>
+       </isDefinedBy>
+       <subClassOf>
+               <resource name="pcdm:File"/>
+       </subClassOf>
+</Class>
diff --git a/data/classes/pcdmuse¦ThumbnailImage b/data/classes/pcdmuse¦ThumbnailImage
new file mode 100644 (file)
index 0000000..17d4b5b
--- /dev/null
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE Class SYSTEM "../../DTD">
+<Class>
+       <label xml:lang="en">Thumbnail Image</label>
+       <comment xml:lang="en">
+               <p>
+                       A <ref target="pcdm:File">File</ref> which is a low‐quality, thumbnail representation of some thing, appropriate for use as an icon.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(PCDM)"/>
+       </isDefinedBy>
+       <subClassOf>
+               <resource name="pcdm:File"/>
+       </subClassOf>
+       <subClassOf>
+               <resource name="foaf:Image"/>
+       </subClassOf>
+</Class>
diff --git a/data/classes/pcdmuse¦Transcript b/data/classes/pcdmuse¦Transcript
new file mode 100644 (file)
index 0000000..47455c3
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE Class SYSTEM "../../DTD">
+<Class>
+       <label xml:lang="en">Transcript</label>
+       <comment xml:lang="en">
+               <p>
+                       A <ref target="pcdm:File">File</ref> which is a textual representation appropriate for presentation to users.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(PCDM)"/>
+       </isDefinedBy>
+       <subClassOf>
+               <resource name="pcdm:File"/>
+       </subClassOf>
+</Class>
diff --git a/data/classes/pcdmworks¦FileSet b/data/classes/pcdmworks¦FileSet
new file mode 100644 (file)
index 0000000..ac53776
--- /dev/null
@@ -0,0 +1,41 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE Class SYSTEM "../../DTD">
+<Class>
+       <label xml:lang="en">File Set</label>
+       <comment xml:lang="en">
+               <p>
+                       An <ref target="pcdm:Object">Object</ref> representing a single conceptual entity which might have multiple <ref target="pcdm:File">File</ref> representations.
+               </p>
+               <p>
+                       File Sets describe the conceptual entity that Files are concrete manifestations of.
+                       When that entity has multiple manifestations, it may <ref target="pcdm:hasFile">have</ref> multiple Files.
+                       For example, a page in a book may exist in both Tiff and P·N·G format.
+                       These are separate files, but they represent the same conceptual entity, the page.
+               </p>
+               <p>
+                       File Sets do not <ref target="pcdm:hasMember">have members</ref>.
+                       Typically, they are <ref target="pcdm:isMemberOf">members of</ref> <ref target="pcdm:Work">Works</ref>.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(PCDM)"/>
+       </isDefinedBy>
+       <subClassOf>
+               <resource name="pcdm:Object"/>
+       </subClassOf>
+       <subClassOf>
+               <Restriction>
+                       <onProperty>
+                               <resource name="pcdm:hasMember"/>
+                       </onProperty>
+                       <maxCardinality>0</maxCardinality>
+               </Restriction>
+       </subClassOf>
+       <disjointWith>
+               <resource name="pcdmworks:Work"/>
+       </disjointWith>
+</Class>
diff --git a/data/classes/pcdmworks¦Work b/data/classes/pcdmworks¦Work
new file mode 100644 (file)
index 0000000..08af3d5
--- /dev/null
@@ -0,0 +1,32 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE Class SYSTEM "../../DTD">
+<Class>
+       <label xml:lang="en">Work</label>
+       <comment xml:lang="en">
+               <p>
+                       An <ref target="pcdm:Object">Object</ref> representing an abstract intellectual entity.
+               </p>
+               <p>
+                       Works differ from Objects more generally in that they do not themselves <ref target="pcdm:hasFile">have files</ref>.
+                       Instead, they <ref target="pcdm:hasMember">have member</ref> <ref target="pcdmworks:FileSet">File Sets</ref> which contain their files.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(PCDM)"/>
+       </isDefinedBy>
+       <subClassOf>
+               <resource name="pcdm:Object"/>
+       </subClassOf>
+       <subClassOf>
+               <Restriction>
+                       <onProperty>
+                               <resource name="pcdm:hasFile"/>
+                       </onProperty>
+                       <maxCardinality>0</maxCardinality>
+               </Restriction>
+       </subClassOf>
+</Class>
diff --git a/data/classes/pcdm¦Collection b/data/classes/pcdm¦Collection
new file mode 100644 (file)
index 0000000..6b45c28
--- /dev/null
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE Class SYSTEM "../../DTD">
+<Class>
+       <label xml:lang="en">Collection</label>
+       <comment xml:lang="en">
+               <p>
+                       An <ref target="ore:Aggregation">Aggregation</ref> which can <ref target="pcdm:hasMember">have member</ref> <ref target="pcdm:Object">Objects</ref> or other Collections.
+               </p>
+               <p>
+                       <ptr target="(PCDM)"/> defines semantics for <ptr target="rel:first" type="property"/> and <ptr target="rel:last" type="property"/> (to point to a <ref target="ore:Proxy">Proxy</ref> of the first member), but this is confused:
+                       These terms are meant to be used for horizontal linking between aggregation members, not vertical linking between aggregations and the things they aggregate.
+                       Consequently, the usage of these properties with Collections is not recommended by this ontology.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(PCDM)" fragment="pcdmcollection"/>
+       </isDefinedBy>
+</Class>
diff --git a/data/classes/pcdm¦File b/data/classes/pcdm¦File
new file mode 100644 (file)
index 0000000..c917e35
--- /dev/null
@@ -0,0 +1,77 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE Class SYSTEM "../../DTD">
+<Class>
+       <label xml:lang="en">File</label>
+       <comment xml:lang="en">
+               <p>
+                       A sequence of binary data, as contained within a specific <ref target="pcdm:Object">Object</ref>.
+               </p>
+               <p>
+                       The <ref target="dcterms:extent">extent</ref> is meant to be interpreted as a file size in bytes (but the exact representation is left fuzzy), and the <ref target="dc11:format">format</ref> is meant to be interpreted as an internet media type.
+                       For the latter, the more specific property <ptr target="awol:type"/> may be used.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(PCDM)" fragment="pcdmfile"/>
+       </isDefinedBy>
+       <subClassOf>
+               <Restriction>
+                       <onProperty>
+                               <resource name="pcdm:isFileOf"/>
+                       </onProperty>
+                       <cardinality>1</cardinality>
+               </Restriction>
+       </subClassOf>
+       <subClassOf>
+               <Restriction>
+                       <onProperty>
+                               <resource name="dc11:format"/>
+                       </onProperty>
+                       <maxCardinality>1</maxCardinality>
+               </Restriction>
+       </subClassOf>
+       <subClassOf>
+               <Restriction>
+                       <onProperty>
+                               <resource name="dc11:format"/>
+                       </onProperty>
+                       <allValuesFrom>
+                               <resource name="xsd:string"/>
+                       </allValuesFrom>
+               </Restriction>
+       </subClassOf>
+       <subClassOf>
+               <Restriction>
+                       <onProperty>
+                               <resource name="dcterms:extent"/>
+                       </onProperty>
+                       <maxCardinality>1</maxCardinality>
+               </Restriction>
+       </subClassOf>
+       <subClassOf>
+               <Restriction>
+                       <onProperty>
+                               <resource name="dcterms:created"/>
+                       </onProperty>
+                       <maxCardinality>1</maxCardinality>
+               </Restriction>
+       </subClassOf>
+       <subClassOf>
+               <Restriction>
+                       <onProperty>
+                               <resource name="dcterms:modified"/>
+                       </onProperty>
+                       <maxCardinality>1</maxCardinality>
+               </Restriction>
+       </subClassOf>
+       <disjointWith>
+               <resource name="pcdm:Collection"/>
+       </disjointWith>
+       <disjointWith>
+               <resource name="pcdm:Object"/>
+       </disjointWith>
+</Class>
diff --git a/data/classes/pcdm¦Object b/data/classes/pcdm¦Object
new file mode 100644 (file)
index 0000000..2d23008
--- /dev/null
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE Class SYSTEM "../../DTD">
+<Class>
+       <label xml:lang="en">Object</label>
+       <comment xml:lang="en">
+               <p>
+                       An <ref target="ore:Aggregation">Aggregation</ref> representing an intellectual entity of some kind.
+               </p>
+               <p>
+                       Objects may <ref target="pcdm:hasMember">have member</ref> Objects (but not Collections) and may also <ref target="pcdm:hasFile">have</ref> <ref target="pcdm:File">Files</ref>.
+                       The <ptr target="pcdmworks:Work"/> and <ptr target="pcdmworks:FileSet"/> subclasses provide a more sophisticated modelling.
+               </p>
+               <p>
+                       <ptr target="(PCDM)"/> defines semantics for <ptr target="rel:first" type="property"/> and <ptr target="rel:last" type="property"/> (to point to a <ref target="ore:Proxy">Proxy</ref> of the first member), but this is confused:
+                       These terms are meant to be used for horizontal linking between aggregation members, not vertical linking between aggregations and the things they aggregate.
+                       Consequently, the usage of these properties with Objects is not recommended by this ontology.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(PCDM)" fragment="pcdmobject"/>
+       </isDefinedBy>
+       <subClassOf>
+               <Restriction>
+                       <onProperty>
+                               <resource name="pcdm:hasMember"/>
+                       </onProperty>
+                       <allValuesFrom>
+                               <resource name="pcdm:Object"/>
+                       </allValuesFrom>
+               </Restriction>
+       </subClassOf>
+       <disjointWith>
+               <resource name="pcdm:Collection"/>
+       </disjointWith>
+</Class>
diff --git a/data/classes/¦Proxy b/data/classes/¦Proxy
new file mode 100644 (file)
index 0000000..0341609
--- /dev/null
@@ -0,0 +1,41 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE Class SYSTEM "../../DTD">
+<Class>
+       <label xml:lang="en">Proxy</label>
+       <comment xml:lang="en">
+               <p>
+                       A <ref target="anno:ResourceSelection">Resource Selection</ref> which selects its <ref target="anno:hasSource">source</ref> in its entirety.
+               </p>
+               <p>
+                       Proxies may be used to make state·ments which are only contextually true; the Proxy provides the appropriate context for interpreting the statement.
+                       For example, in <ptr target="(OAI-ORE)"/>, <ref target="ore:Proxy">Proxies</ref> are used to make state·ments which are only true in the context of a particular <ref target="ore:Aggregation">Aggregation</ref>.
+               </p>
+       </comment>
+       <subClassOf>
+               <resource name="anno:ResourceSelection"/>
+       </subClassOf>
+       <subClassOf>
+               <Restriction>
+                       <onProperty>
+                               <resource name="anno:hasSelector"/>
+                       </onProperty>
+                       <hasValue>
+                               <resource name="Everything"/>
+                       </hasValue>
+               </Restriction>
+       </subClassOf>
+       <subClassOf>
+               <Restriction>
+                       <onProperty>
+                               <resource name="anno:hasState"/>
+                       </onProperty>
+                       <hasValue>
+                               <resource name="AnyWhichWay"/>
+                       </hasValue>
+               </Restriction>
+       </subClassOf>
+</Class>
diff --git a/data/classes/¦UnicodeScalarValue b/data/classes/¦UnicodeScalarValue
new file mode 100644 (file)
index 0000000..9042c9b
--- /dev/null
@@ -0,0 +1,60 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE Class SYSTEM "../../DTD">
+<Class>
+       <label xml:lang="en">Unicode Scalar Value</label>
+       <comment xml:lang="en">
+               <p>
+                       A thing with a <ref target="rdf:value">value</ref> between 0 and 10FFFF₁₆ but not between D800₁₆ and DFFF₁₆, representing a valid Unicode scalar value.
+               </p>
+               <p>
+                       Not all Unicode scalar values can be represented in a <resource name="xsd:string"/>, so representing them as integers is required.
+                       Unicode Scalar Values are uniquely identified by their value.
+               </p>
+       </comment>
+       <subClassOf>
+               <Restriction>
+                       <onProperty>
+                               <resource name="rdf:value"/>
+                       </onProperty>
+                       <cardinality>1</cardinality>
+               </Restriction>
+       </subClassOf>
+       <subClassOf>
+               <Restriction>
+                       <onProperty>
+                               <resource name="rdf:value"/>
+                       </onProperty>
+                       <allValuesFrom>
+                               <Datatype>
+                                       <unionOf>
+                                               <Datatype>
+                                                       <onDatatype>
+                                                               <resource name="xsd:integer"/>
+                                                       </onDatatype>
+                                                       <withRestrictions>
+                                                               <minInclusive datatype="xsd:integer">0</minInclusive>
+                                                               <maxInclusive datatype="xsd:integer">55295</maxInclusive>
+                                                       </withRestrictions>
+                                               </Datatype>
+                                               <Datatype>
+                                                       <onDatatype>
+                                                               <resource name="xsd:integer"/>
+                                                       </onDatatype>
+                                                       <withRestrictions>
+                                                               <minInclusive datatype="xsd:integer">57344</minInclusive>
+                                                               <maxInclusive datatype="xsd:integer">1114111</maxInclusive>
+                                                       </withRestrictions>
+                                               </Datatype>
+                                       </unionOf>
+                               </Datatype>
+                       </allValuesFrom>
+               </Restriction>
+       </subClassOf>
+       <hasKey>
+               <resource name="rdf:value"/>
+       </hasKey>
+</Class>
diff --git a/data/classes/¦UnicodeString b/data/classes/¦UnicodeString
new file mode 100644 (file)
index 0000000..fcfaad7
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE Class SYSTEM "../../DTD">
+<Class>
+       <label xml:lang="en">Unicode String</label>
+       <comment xml:lang="en">
+               <p>
+                       A <ref target="olo:OrderedList">Ordered List</ref> of <ref target="UnicodeScalarValue">Unicode Scalar Values</ref>.
+               </p>
+               <p>
+                       Unicode Strings essentially provide an alternative encoding of <resource name="xsd:string"/> in a way which can be reasoned about in R·D·F.
+                       Some Unicode scalar values cannot be represented in a <resource name="xsd:string"/>, so strings containing them can only be represented in this manner.
+               </p>
+       </comment>
+       <subClassOf>
+               <resource name="olo:OrderedList"/>
+       </subClassOf>
+       <subClassOf>
+               <Restriction>
+                       <onProperty>
+                               <resource name="olo:slot"/>
+                       </onProperty>
+                       <allValuesFrom>
+                               <Restriction>
+                                       <onProperty>
+                                               <resource name="olo:item"/>
+                                       </onProperty>
+                                       <allValuesFrom>
+                                               <resource name="UnicodeScalarValue"/>
+                                       </allValuesFrom>
+                               </Restriction>
+                       </allValuesFrom>
+               </Restriction>
+       </subClassOf>
+</Class>
diff --git a/data/datatype_properties/olo¦index b/data/datatype_properties/olo¦index
new file mode 100644 (file)
index 0000000..0930507
--- /dev/null
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE DatatypeProperty SYSTEM "../../DTD">
+<DatatypeProperty functional="yes">
+       <label xml:lang="en">index</label>
+       <comment xml:lang="en">
+               <p>
+                       The index of this <ref target="olo:Slot">Slot</ref>.
+               </p>
+               <p>
+                       Indices start from 1.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(OLO)" fragment="index"/>
+       </isDefinedBy>
+       <domain>
+               <resource name="olo:Slot"/>
+       </domain>
+       <range>
+               <resource name="xsd:positiveInteger"/>
+       </range>
+</DatatypeProperty>
diff --git a/data/datatype_properties/olo¦length b/data/datatype_properties/olo¦length
new file mode 100644 (file)
index 0000000..468e4fc
--- /dev/null
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE DatatypeProperty SYSTEM "../../DTD">
+<DatatypeProperty functional="yes">
+       <label xml:lang="en">length</label>
+       <comment xml:lang="en">
+               <p>
+                       The length of this <ref target="olo:OrderedList">Ordered List</ref>.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(OLO)" fragment="length"/>
+       </isDefinedBy>
+       <domain>
+               <resource name="olo:OrderedList"/>
+       </domain>
+       <range>
+               <resource name="xsd:nonNegativeInteger"/>
+       </range>
+</DatatypeProperty>
index fd977d2817b23cd1d208a9cb1d8fa8582bf2f2ae..32910a178eed0569125a08e8893e92f5911aa598 100644 (file)
@@ -36,7 +36,7 @@ SPDX-License-Identifier: CC0-1.0
                        <item>
                                <p>
                                        <resource name="foaf:mbox"/> and <resource name="foaf:mbox_sha1sum"/> are properties for identifying the original, not current, owner of an internet mailbox, and thus not useful for the actual sending of messages.
                        <item>
                                <p>
                                        <resource name="foaf:mbox"/> and <resource name="foaf:mbox_sha1sum"/> are properties for identifying the original, not current, owner of an internet mailbox, and thus not useful for the actual sending of messages.
-                                       Originally, these properties were conceived as a means of determining <ref target="foaf:Agent">Agent</ref> identity; in the case of <resource name="foaf:mbox"/>, this intent is much better served by just using a <code>tag:</code> U·R·I, which can be email‐derived.
+                                       Originally, these properties were conceived as a means of determining <ref target="foaf:Agent">Agent</ref> identity; in the case of <resource name="foaf:mbox"/>, this intent is much better served by just using a <code>tag:</code> U·R·I, which can be e·mail‐derived.
                                        <resource name="foaf:mbox_sha1sum"/> is of questionable utility in practice.
                                </p>
                        </item>
                                        <resource name="foaf:mbox_sha1sum"/> is of questionable utility in practice.
                                </p>
                        </item>
diff --git a/data/named_individuals/_IIIF_ b/data/named_individuals/_IIIF_
new file mode 100644 (file)
index 0000000..26d0553
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2024, 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE NamedIndividual SYSTEM "../../DTD">
+<NamedIndividual name="https://iiif.io/api/">
+       <label xml:lang="en">I·I·I·F</label>
+       <type>
+               <resource name="dcterms:BibliographicResource"/>
+       </type>
+       <type>
+               <resource name="doap:Specification"/>
+       </type>
+</NamedIndividual>
diff --git a/data/named_individuals/_OAI-ORE_ b/data/named_individuals/_OAI-ORE_
new file mode 100644 (file)
index 0000000..f1785fe
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE NamedIndividual SYSTEM "../../DTD">
+<NamedIndividual name="https://www.openarchives.org/ore/1.0/vocabulary">
+       <label xml:lang="en">O·A·I Ore</label>
+       <comment xml:lang="en">
+               <p>
+                       The Open Archives Intiative (O·A·I) vocabulary for Object Re·use and Exchange (Ore) provides a set of basic terms for defining aggregations of resources and the relationships between them.
+                       It also introduces the concept of a “Resource Map”, which is an R·D·F graph containing a description of an aggregation conforming to its vocabulary and data model.
+               </p>
+               <p>
+                       The terms for describing aggregations are generally use·ful, and have been extended by models like <ptr target="(PCDM)"/>; they are included in this ontology.
+                       The Resource Map concept and its related terms (<resource name="ore:ResourceMap"/>, <resource name="ore:describes"/>, <resource name="ore:isDescribedBy"/>) is less obviously use·ful, and has been excluded for now.
+               </p>
+       </comment>
+       <type>
+               <resource name="dcterms:BibliographicResource"/>
+       </type>
+       <type>
+               <resource name="doap:Specification"/>
+       </type>
+</NamedIndividual>
diff --git a/data/named_individuals/_OLO_ b/data/named_individuals/_OLO_
new file mode 100644 (file)
index 0000000..9dde828
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE NamedIndividual SYSTEM "../../DTD">
+<NamedIndividual name="http://purl.org/ontology/olo/core">
+       <label xml:lang="en">Olo</label>
+       <comment xml:lang="en">
+               <p>
+                       The Ordered List Ontology (Olo) provides, as its name implies, a small number of terms for use describing ordered lists.
+                       This help to rectify the faults of other list‐specification mechanisms in consort with Owl; <ref target="rdf:List">Lists</ref> are hard to reason about and <ref target="rdfs:Container">Containers</ref> require an implicit understanding of <resource name="rdfs:ContainerMembershipProperty"/> which Owl does not provide.
+               </p>
+               <p>
+                       This ontology interprets <ref target="olo:OrderedList">Ordered Lists</ref> as <ref target="ore:Aggregation">Aggregations</ref>, and their <ref target="olo:Slot">Slots</ref> as a kind of <ref target="ore:Proxy">Proxy</ref>.
+                       This makes them an ergonomic extension to the mechanisms specified in <ptr target="(OAI-ORE)"/>.
+               </p>
+       </comment>
+       <type>
+               <resource name="dcterms:BibliographicResource"/>
+       </type>
+       <type>
+               <resource name="doap:Specification"/>
+       </type>
+</NamedIndividual>
diff --git a/data/named_individuals/_PCDM_ b/data/named_individuals/_PCDM_
new file mode 100644 (file)
index 0000000..a685b44
--- /dev/null
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE NamedIndividual SYSTEM "../../DTD">
+<NamedIndividual name="https://github.com/duraspace/pcdm/wiki">
+       <label xml:lang="en">P·C·D·M</label>
+       <comment xml:lang="en">
+               <p>
+                       The Portland Common Data Model (P·C·D·M) is a set of vocabularies published by Duraspace and used by certain institutions and communities in the library and cultural heritage sphere for modelling their collections.
+                       It comprises five parts :⁠—
+               </p>
+               <list>
+                       <item>
+                               <p>
+                                       <strong>P·C·D·M Models</strong> builds on top of <ptr target="(OAI-ORE)"/> to provide basic structural modelling for <ref target="pcdm:Collection">Collections</ref>, their <ref target="pcdm:Object">Objects</ref>, and the <ref target="pcdm:File">Files</ref> associated with them.
+                                       This ontology only omits the term <resource name="pcdm:AlternateOrder"/>, whose meaning and utility is unclear.
+                               </p>
+                       </item>
+                       <item>
+                               <p>
+                                       <strong>P·C·D·M Use</strong> provides subclasses for <ptr target="pcdm:File"/> which identify its intended <em>use</em>.
+                                       The choice of modelling this using classes, rather than a relationship like <ptr target="anno:hasPurpose"/>, is a bit suspect, but a conversion from one to the other is not especially difficult.
+                               </p>
+                       </item>
+                       <item>
+                               <p>
+                                       <strong>P·C·D·M Rights</strong> provides a few terms for specifying temporary, time‐limited overrides to rights statements.
+                                       As this is use·case is fairly domain‐specific and niche, this ontology does not bother defining its terms.
+                               </p>
+                       </item>
+                       <item>
+                               <p>
+                                       <strong>P·C·D·M Works</strong> expands P·C·D·M Models to add the concepts of <ref target="pcdmworks:Work">Work</ref> and <ref target="pcdmworks:FileSet">File Set</ref>.
+                                       It also defines two classes for use with <ptr target="(IIIF)"/>, <resource name="pcdmworks:Range"/> and <resource name="pcdmworks:TopRange"/>, which are more suspect in utility and not included in this ontology.
+                               </p>
+                       </item>
+                       <item>
+                               <p>
+                                       <strong>P·C·D·M File Formats</strong> provides a set of <ref target="skos:Concept">Concepts</ref> for denoting specific file format genres.
+                                       These are a bit undocumented, and don¦t have a clear use·case, so they not been encoded into this ontology.
+                               </p>
+                       </item>
+               </list>
+       </comment>
+       <type>
+               <resource name="dcterms:BibliographicResource"/>
+       </type>
+</NamedIndividual>
diff --git a/data/named_individuals/_RFC5005_ b/data/named_individuals/_RFC5005_
new file mode 100644 (file)
index 0000000..072ee8e
--- /dev/null
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE NamedIndividual SYSTEM "../../DTD">
+<NamedIndividual name="http://www.rfc-editor.org/info/rfc5005">
+       <label xml:lang="en">Feed Paging and Archiving</label>
+       <comment xml:lang="en">
+               <p>
+                       This specification describes the pagination and archiving of Atom feeds, and consequently is a kind of extension to <ptr target="(RFC4287)"/>.
+                       As with that specification, it provides the normative definition for a few <ref target="awol:RelationType">Relation Types</ref>.
+                       Note that <resource name="rel:previous"/> and <resource name="rel:next"/> were previously defined in <ptr target="(HTML)"/>, but H·T·M·L¦s approach to linking is generally unsuitable for use with R·D·F and not considered normative by this ontology.
+               </p>
+       </comment>
+       <type>
+               <resource name="dcterms:BibliographicResource"/>
+       </type>
+       <type>
+               <resource name="doap:Specification"/>
+       </type>
+</NamedIndividual>
diff --git a/data/named_individuals/rel¦current b/data/named_individuals/rel¦current
new file mode 100644 (file)
index 0000000..a1f15b3
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE NamedIndividual SYSTEM "../../DTD">
+<NamedIndividual>
+       <label xml:lang="en">Current</label>
+       <comment xml:lang="en">
+               <p>
+                       A <ref target="awol:RelationType">Relation Type</ref> indicating a thing which contains the most recent entries in a feed.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(RFC5005)"/>
+       </isDefinedBy>
+       <type>
+               <resource name="awol:RelationType"/>
+       </type>
+</NamedIndividual>
diff --git a/data/named_individuals/rel¦first b/data/named_individuals/rel¦first
new file mode 100644 (file)
index 0000000..4c0aafc
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE NamedIndividual SYSTEM "../../DTD">
+<NamedIndividual>
+       <label xml:lang="en">First</label>
+       <comment xml:lang="en">
+               <p>
+                       A <ref target="awol:RelationType">Relation Type</ref> indicating a thing which is first in the current series.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(RFC5005)"/>
+       </isDefinedBy>
+       <type>
+               <resource name="awol:RelationType"/>
+       </type>
+</NamedIndividual>
diff --git a/data/named_individuals/rel¦last b/data/named_individuals/rel¦last
new file mode 100644 (file)
index 0000000..c9049a3
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE NamedIndividual SYSTEM "../../DTD">
+<NamedIndividual>
+       <label xml:lang="en">Last</label>
+       <comment xml:lang="en">
+               <p>
+                       A <ref target="awol:RelationType">Relation Type</ref> indicating a thing which is last in the current series.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(RFC5005)"/>
+       </isDefinedBy>
+       <type>
+               <resource name="awol:RelationType"/>
+       </type>
+</NamedIndividual>
diff --git a/data/named_individuals/rel¦next b/data/named_individuals/rel¦next
new file mode 100644 (file)
index 0000000..7b28e0f
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE NamedIndividual SYSTEM "../../DTD">
+<NamedIndividual>
+       <label xml:lang="en">Next</label>
+       <comment xml:lang="en">
+               <p>
+                       A <ref target="awol:RelationType">Relation Type</ref> indicating a following thing.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(RFC5005)"/>
+       </isDefinedBy>
+       <type>
+               <resource name="awol:RelationType"/>
+       </type>
+</NamedIndividual>
diff --git a/data/named_individuals/rel¦next-archive b/data/named_individuals/rel¦next-archive
new file mode 100644 (file)
index 0000000..ce8092e
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE NamedIndividual SYSTEM "../../DTD">
+<NamedIndividual>
+       <label xml:lang="en">Next Archive</label>
+       <comment xml:lang="en">
+               <p>
+                       A <ref target="awol:RelationType">Relation Type</ref> indicating a following archival thing.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(RFC5005)"/>
+       </isDefinedBy>
+       <type>
+               <resource name="awol:RelationType"/>
+       </type>
+</NamedIndividual>
diff --git a/data/named_individuals/rel¦prev-archive b/data/named_individuals/rel¦prev-archive
new file mode 100644 (file)
index 0000000..739cb6d
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE NamedIndividual SYSTEM "../../DTD">
+<NamedIndividual>
+       <label xml:lang="en">Previous Archive</label>
+       <comment xml:lang="en">
+               <p>
+                       A <ref target="awol:RelationType">Relation Type</ref> indicating a preceding archival thing.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(RFC5005)"/>
+       </isDefinedBy>
+       <type>
+               <resource name="awol:RelationType"/>
+       </type>
+</NamedIndividual>
diff --git a/data/named_individuals/rel¦previous b/data/named_individuals/rel¦previous
new file mode 100644 (file)
index 0000000..1c904cf
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE NamedIndividual SYSTEM "../../DTD">
+<NamedIndividual>
+       <label xml:lang="en">Previous</label>
+       <comment xml:lang="en">
+               <p>
+                       A <ref target="awol:RelationType">Relation Type</ref> indicating a preceding thing.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(RFC5005)"/>
+       </isDefinedBy>
+       <type>
+               <resource name="awol:RelationType"/>
+       </type>
+</NamedIndividual>
diff --git a/data/named_individuals/¦AnyWhichWay b/data/named_individuals/¦AnyWhichWay
new file mode 100644 (file)
index 0000000..500b60f
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE NamedIndividual SYSTEM "../../DTD">
+<NamedIndividual>
+       <label xml:lang="en">Any Which Way</label>
+       <comment xml:lang="en">
+               <p>
+                       A <ref target="anno:State">State</ref> which reflects a thing regardless of, or in any, state, time, or condition.
+               </p>
+       </comment>
+       <type>
+               <resource name="anno:State"/>
+       </type>
+       <type>
+               <Restriction>
+                       <onProperty>
+                               <resource name="anno:refinedBy"/>
+                       </onProperty>
+                       <maxCardinality>0</maxCardinality>
+               </Restriction>
+       </type>
+</NamedIndividual>
diff --git a/data/named_individuals/¦Everything b/data/named_individuals/¦Everything
new file mode 100644 (file)
index 0000000..e0bb7d1
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE NamedIndividual SYSTEM "../../DTD">
+<NamedIndividual>
+       <label xml:lang="en">Everything</label>
+       <comment xml:lang="en">
+               <p>
+                       A <ref target="anno:Selector">Selector</ref> which selects the entirety of a thing.
+               </p>
+       </comment>
+       <type>
+               <resource name="anno:Selector"/>
+       </type>
+       <type>
+               <Restriction>
+                       <onProperty>
+                               <resource name="anno:refinedBy"/>
+                       </onProperty>
+                       <maxCardinality>0</maxCardinality>
+               </Restriction>
+       </type>
+</NamedIndividual>
index 80dcac69e486632c46bef25affd9bf49089f45f7..04225f602bde309c692791117ede155fbb79202c 100644 (file)
@@ -1,11 +1,11 @@
 <?xml version="1.0"?>
 <!--
 <?xml version="1.0"?>
 <!--
-SPDX-FileCopyrightText: 2024 Lady <https://www.ladys.computer/about/#lady>
+SPDX-FileCopyrightText: 2024, 2025 Lady <https://www.ladys.computer/about/#lady>
 SPDX-License-Identifier: CC0-1.0
 -->
 <!DOCTYPE ObjectProperty SYSTEM "../../DTD">
 <ObjectProperty>
 SPDX-License-Identifier: CC0-1.0
 -->
 <!DOCTYPE ObjectProperty SYSTEM "../../DTD">
 <ObjectProperty>
-       <label xml:lang="en">has email</label>
+       <label xml:lang="en">has e·mail</label>
        <comment xml:lang="en">
                <p>
                        An electronic mailbox for this <ref target="contact:SocialEntity">Social Entity</ref>.
        <comment xml:lang="en">
                <p>
                        An electronic mailbox for this <ref target="contact:SocialEntity">Social Entity</ref>.
diff --git a/data/object_properties/olo¦item b/data/object_properties/olo¦item
new file mode 100644 (file)
index 0000000..ab3c4d7
--- /dev/null
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE ObjectProperty SYSTEM "../../DTD">
+<ObjectProperty functional="yes" irreflexive="yes">
+       <label xml:lang="en">has item</label>
+       <comment xml:lang="en">
+               <p>
+                       The thing being proxied by this <ref target="olo:Slot">Slot</ref>.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(OLO)" fragment="item"/>
+       </isDefinedBy>
+       <subPropertyOf>
+               <resource name="ore:proxyFor"/>
+       </subPropertyOf>
+       <domain>
+               <resource name="olo:Slot"/>
+       </domain>
+</ObjectProperty>
diff --git a/data/object_properties/olo¦next b/data/object_properties/olo¦next
new file mode 100644 (file)
index 0000000..56a08b1
--- /dev/null
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE ObjectProperty SYSTEM "../../DTD">
+<ObjectProperty functional="yes" inverseFunctional="yes">
+       <label xml:lang="en">has next</label>
+       <comment xml:lang="en">
+               <p>
+                       The <ref target="olo:Slot">Slot</ref> which immediately follows this Slot (by index) in its <ref target="olo:OrderedList">Ordered List</ref>.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(OLO)" fragment="next"/>
+       </isDefinedBy>
+       <subPropertyOf>
+               <resource name="rel:next"/>
+       </subPropertyOf>
+       <domain>
+               <resource name="olo:Slot"/>
+       </domain>
+       <range>
+               <resource name="olo:Slot"/>
+       </range>
+</ObjectProperty>
diff --git a/data/object_properties/olo¦ordered_list b/data/object_properties/olo¦ordered_list
new file mode 100644 (file)
index 0000000..ad0cad5
--- /dev/null
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE ObjectProperty SYSTEM "../../DTD">
+<ObjectProperty functional="yes">
+       <label xml:lang="en">has ordered list</label>
+       <comment xml:lang="en">
+               <p>
+                       The <ref target="olo:OrderedList">Ordered List</ref> of this <ref target="olo:Slot">Slot</ref>.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(OLO)" fragment="ordered_list"/>
+       </isDefinedBy>
+       <subPropertyOf>
+               <resource name="ore:proxyIn"/>
+       </subPropertyOf>
+       <inverseOf>
+               <resource name="olo:slot"/>
+       </inverseOf>
+       <domain>
+               <resource name="olo:Slot"/>
+       </domain>
+</ObjectProperty>
diff --git a/data/object_properties/olo¦previous b/data/object_properties/olo¦previous
new file mode 100644 (file)
index 0000000..4d9b389
--- /dev/null
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE ObjectProperty SYSTEM "../../DTD">
+<ObjectProperty functional="yes" inverseFunctional="yes">
+       <label xml:lang="en">has previous</label>
+       <comment xml:lang="en">
+               <p>
+                       The <ref target="olo:Slot">Slot</ref> which immediately precedes this Slot (by index) in its <ref target="olo:OrderedList">Ordered List</ref>.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(OLO)" fragment="previous"/>
+       </isDefinedBy>
+       <subPropertyOf>
+               <resource name="rel:previous"/>
+       </subPropertyOf>
+       <inverseOf>
+               <resource name="olo:next"/>
+       </inverseOf>
+       <domain>
+               <resource name="olo:Slot"/>
+       </domain>
+       <range>
+               <resource name="olo:Slot"/>
+       </range>
+</ObjectProperty>
diff --git a/data/object_properties/olo¦slot b/data/object_properties/olo¦slot
new file mode 100644 (file)
index 0000000..6beb79b
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE ObjectProperty SYSTEM "../../DTD">
+<ObjectProperty inverseFunctional="yes">
+       <label xml:lang="en">has slot</label>
+       <comment xml:lang="en">
+               <p>
+                       A <ref target="olo:Slot">Slot</ref> in this <ref target="olo:OrderedList">Ordered List</ref>.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(OLO)" fragment="slot"/>
+       </isDefinedBy>
+       <subPropertyOf>
+               <ObjectProperty>
+                       <inverseOf>
+                               <resource name="ore:proxyIn"/>
+                       </inverseOf>
+               </ObjectProperty>
+       </subPropertyOf>
+       <domain>
+               <resource name="olo:Slot"/>
+       </domain>
+</ObjectProperty>
diff --git a/data/object_properties/ore¦aggregates b/data/object_properties/ore¦aggregates
new file mode 100644 (file)
index 0000000..4fb4e59
--- /dev/null
@@ -0,0 +1,34 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE ObjectProperty SYSTEM "../../DTD">
+<ObjectProperty>
+       <label xml:lang="en">aggregates</label>
+       <comment xml:lang="en">
+               <p>
+                       An <ref target="ore:AggregatedResource">Aggregated Resource</ref> which is a member of this <ref target="ore:Aggregation">Aggregation</ref>.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(OAI-ORE)" fragment="ore-aggregates"/>
+       </isDefinedBy>
+       <subPropertyOf>
+               <resource name="dcterms:hasPart"/>
+       </subPropertyOf>
+       <propertyChainAxiom>
+               <ObjectProperty>
+                       <inverseOf>
+                               <resource name="ore:proxyIn"/>
+                       </inverseOf>
+               </ObjectProperty>
+               <resource name="ore:proxyFor"/>
+       </propertyChainAxiom>
+       <domain>
+               <resource name="ore:Aggregation"/>
+       </domain>
+       <range>
+               <resource name="ore:AggregatedResource"/>
+       </range>
+</ObjectProperty>
diff --git a/data/object_properties/ore¦isAggregatedBy b/data/object_properties/ore¦isAggregatedBy
new file mode 100644 (file)
index 0000000..9d2ca32
--- /dev/null
@@ -0,0 +1,37 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE ObjectProperty SYSTEM "../../DTD">
+<ObjectProperty>
+       <label xml:lang="en">aggregated by</label>
+       <comment xml:lang="en">
+               <p>
+                       An <ref target="ore:Aggregation">Aggregation</ref> which includes this <ref target="ore:AggregatedResource">Aggregated Resource</ref> as a member.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(OAI-ORE)" fragment="ore-is-aggregated-by"/>
+       </isDefinedBy>
+       <subPropertyOf>
+               <resource name="dcterms:isPartOf"/>
+       </subPropertyOf>
+       <inverseOf>
+               <resource name="ore:aggregates"/>
+       </inverseOf>
+       <propertyChainAxiom>
+               <ObjectProperty>
+                       <inverseOf>
+                               <resource name="ore:proxyFor"/>
+                       </inverseOf>
+               </ObjectProperty>
+               <resource name="ore:proxyIn"/>
+       </propertyChainAxiom>
+       <domain>
+               <resource name="ore:AggregatedResource"/>
+       </domain>
+       <range>
+               <resource name="ore:Aggregation"/>
+       </range>
+</ObjectProperty>
diff --git a/data/object_properties/ore¦lineage b/data/object_properties/ore¦lineage
new file mode 100644 (file)
index 0000000..8d12cc3
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE ObjectProperty SYSTEM "../../DTD">
+<ObjectProperty>
+       <label xml:lang="en">lineage</label>
+       <comment xml:lang="en">
+               <p>
+                       A <ref target="ore:Proxy">Proxy</ref> representing an <ref target="ore:aggregates">aggregation</ref> of an <ref target="ore:AggregatedResource">Aggregated Resource</ref> in an <ref target="ore:Aggregation">Aggregation</ref> which served as a source for the aggregation that this Proxy represents.
+               </p>
+               <p>
+                       When an Aggregated Resource in one Aggregation is due to its inclusion as an Aggregated Resource in a different Aggregation, this property, alongside Proxies which represent the Aggregated Resource in each case, can be used to demonstrate the relationship.
+                       The modelling for this is probably a bit soft and needlessly confusing; a relationship between the Aggregation itself and the Proxies that it was derived from might be clearer.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(OAI-ORE)" fragment="ore-lineage"/>
+       </isDefinedBy>
+       <domain>
+               <resource name="ore:Proxy"/>
+       </domain>
+       <range>
+               <resource name="ore:Proxy"/>
+       </range>
+</ObjectProperty>
diff --git a/data/object_properties/ore¦proxyFor b/data/object_properties/ore¦proxyFor
new file mode 100644 (file)
index 0000000..2ed3a4d
--- /dev/null
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE ObjectProperty SYSTEM "../../DTD">
+<ObjectProperty functional="yes" irreflexive="yes">
+       <label xml:lang="en">proxy for</label>
+       <comment xml:lang="en">
+               <p>
+                       The <ref target="ore:AggregatedResource">Aggregated Resource</ref> which this <ref target="ore:Proxy">Proxy</ref> is proxying.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(OAI-ORE)" fragment="ore-proxyFor"/>
+       </isDefinedBy>
+       <subPropertyOf>
+               <resource name="anno:hasSource"/>
+       </subPropertyOf>
+       <domain>
+               <resource name="ore:Proxy"/>
+       </domain>
+       <range>
+               <resource name="ore:AggregatedResource"/>
+       </range>
+</ObjectProperty>
diff --git a/data/object_properties/ore¦proxyIn b/data/object_properties/ore¦proxyIn
new file mode 100644 (file)
index 0000000..29023d2
--- /dev/null
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE ObjectProperty SYSTEM "../../DTD">
+<ObjectProperty functional="yes">
+       <label xml:lang="en">proxy in</label>
+       <comment xml:lang="en">
+               <p>
+                       The <ref target="ore:Aggregation">Aggregation</ref> which provides the context for this <ref target="ore:Proxy">Proxy</ref>.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(OAI-ORE)" fragment="ore-proxyIn"/>
+       </isDefinedBy>
+       <domain>
+               <resource name="ore:Proxy"/>
+       </domain>
+       <range>
+               <resource name="ore:Aggregation"/>
+       </range>
+</ObjectProperty>
diff --git a/data/object_properties/pcdm¦hasFile b/data/object_properties/pcdm¦hasFile
new file mode 100644 (file)
index 0000000..6e9ae35
--- /dev/null
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE ObjectProperty SYSTEM "../../DTD">
+<ObjectProperty inverseFunctional="yes">
+       <label xml:lang="en">has file</label>
+       <comment xml:lang="en">
+               <p>
+                       A <ref target="pcdm:File">File</ref> which comprises part of this <ref target="pcdm:Object">Object</ref>.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(PCDM)"/>
+       </isDefinedBy>
+       <subPropertyOf>
+               <resource name="ore:aggregates"/>
+       </subPropertyOf>
+       <domain>
+               <resource name="pcdm:Object"/>
+       </domain>
+       <range>
+               <resource name="pcdm:File"/>
+       </range>
+</ObjectProperty>
diff --git a/data/object_properties/pcdm¦hasMember b/data/object_properties/pcdm¦hasMember
new file mode 100644 (file)
index 0000000..0f3b7d3
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE ObjectProperty SYSTEM "../../DTD">
+<ObjectProperty>
+       <label xml:lang="en">has member</label>
+       <comment xml:lang="en">
+               <p>
+                       An <ref target="ore:Aggregation">Aggregation</ref> which forms a component part of this Aggregation.
+               </p>
+               <p>
+                       <ptr target="(PCDM)"/> describes this property only in terms of <ref target="pcdm:Object">Objects</ref> and <ref target="pcdm:Collection">Collections</ref>, but formally defines its domain and range as Aggregations.
+                       While this might have only been a modelling convenience, this ontology preserves the broader definition, to allow the use of this term without needing a firm stance on whether something is (or isn¦t) an Object or Collection as <ptr target="(PCDM)"/> would have it.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(PCDM)"/>
+       </isDefinedBy>
+       <subPropertyOf>
+               <resource name="ore:aggregates"/>
+       </subPropertyOf>
+       <range>
+               <resource name="ore:Aggregation"/>
+       </range>
+</ObjectProperty>
diff --git a/data/object_properties/pcdm¦hasRelatedObject b/data/object_properties/pcdm¦hasRelatedObject
new file mode 100644 (file)
index 0000000..c522bb7
--- /dev/null
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE ObjectProperty SYSTEM "../../DTD">
+<ObjectProperty asymmetric="yes" irreflexive="yes">
+       <label xml:lang="en">has related object</label>
+       <comment xml:lang="en">
+               <p>
+                       An <ref target="pcdm:Object">Object</ref> which is aggregated as part of this <ref target="ore:Aggregation">Aggregation</ref>, but which is not considered a component part.
+               </p>
+               <p>
+                       This property is intended for things like licensing agreements or cover art which are considered part of an Aggregation from the perspective of resource aggregation, but not from the perspective of conceptual composition.
+                       Related objects are <ref target="ore:aggregates">aggregated in</ref> and consequently <ref target="dcterms:isPartOf">part of</ref> the things they are related to, but as something other than a compositional component.
+                       For more general kinds of relation, use <ptr target="sioc:related_to"/>.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(PCDM)"/>
+       </isDefinedBy>
+       <subPropertyOf>
+               <resource name="ore:aggregates"/>
+       </subPropertyOf>
+       <propertyDisjointWith>
+               <resource name="pcdm:hasMember"/>
+       </propertyDisjointWith>
+       <range>
+               <resource name="pcdm:Object"/>
+       </range>
+</ObjectProperty>
diff --git a/data/object_properties/pcdm¦isFileOf b/data/object_properties/pcdm¦isFileOf
new file mode 100644 (file)
index 0000000..f5b4eaa
--- /dev/null
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE ObjectProperty SYSTEM "../../DTD">
+<ObjectProperty functional="yes">
+       <label xml:lang="en">file of</label>
+       <comment xml:lang="en">
+               <p>
+                       An <ref target="pcdm:Object">Object</ref> which this <ref target="pcdm:File">File</ref> comprises part of.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(PCDM)"/>
+       </isDefinedBy>
+       <subPropertyOf>
+               <resource name="ore:isAggregatedBy"/>
+       </subPropertyOf>
+       <inverseOf>
+               <resource name="pcdm:hasFile"/>
+       </inverseOf>
+       <domain>
+               <resource name="pcdm:File"/>
+       </domain>
+       <range>
+               <resource name="pcdm:Object"/>
+       </range>
+</ObjectProperty>
diff --git a/data/object_properties/pcdm¦isMemberOf b/data/object_properties/pcdm¦isMemberOf
new file mode 100644 (file)
index 0000000..dc1514b
--- /dev/null
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE ObjectProperty SYSTEM "../../DTD">
+<ObjectProperty>
+       <label xml:lang="en">member of</label>
+       <comment xml:lang="en">
+               <p>
+                       An <ref target="ore:Aggregation">Aggregation</ref> which this Aggregation is a component part of.
+               </p>
+               <p>
+                       <ptr target="(PCDM)"/> describes this property only in terms of <ref target="pcdm:Object">Objects</ref> and <ref target="pcdm:Collection">Collections</ref>, but formally defines its domain and range as Aggregations.
+                       While this might have only been a modelling convenience, this ontology preserves the broader definition, to allow the use of this term without needing a firm stance on whether something is (or isn¦t) an Object or Collection as <ptr target="(PCDM)"/> would have it.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(PCDM)"/>
+       </isDefinedBy>
+       <subPropertyOf>
+               <resource name="ore:isAggregatedBy"/>
+       </subPropertyOf>
+       <inverseOf>
+               <resource name="pcdm:hasMember"/>
+       </inverseOf>
+       <domain>
+               <resource name="ore:Aggregation"/>
+       </domain>
+</ObjectProperty>
diff --git a/data/object_properties/pcdm¦isRelatedObjectOf b/data/object_properties/pcdm¦isRelatedObjectOf
new file mode 100644 (file)
index 0000000..c6f80b2
--- /dev/null
@@ -0,0 +1,32 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE ObjectProperty SYSTEM "../../DTD">
+<ObjectProperty asymmetric="yes" irreflexive="yes">
+       <label xml:lang="en">related object of</label>
+       <comment xml:lang="en">
+               <p>
+                       An <ref target="ore:Aggregation">Aggregation</ref> which this <ref target="pcdm:Object">Object</ref> is aggregated as part of, but in a way which does not imply being a component part.
+               </p>
+               <p>
+                       See <ptr target="pcdm:hasRelatedObject"/> for further discussion on the correct usage of this property.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(PCDM)"/>
+       </isDefinedBy>
+       <subPropertyOf>
+               <resource name="ore:isAggregatedBy"/>
+       </subPropertyOf>
+       <inverseOf>
+               <resource name="pcdm:hasRelatedObject"/>
+       </inverseOf>
+       <propertyDisjointWith>
+               <resource name="pcdm:isMemberOf"/>
+       </propertyDisjointWith>
+       <domain>
+               <resource name="pcdm:Object"/>
+       </domain>
+</ObjectProperty>
diff --git a/data/object_properties/rel¦current b/data/object_properties/rel¦current
new file mode 100644 (file)
index 0000000..bf2bde0
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE ObjectProperty SYSTEM "../../DTD">
+<ObjectProperty>
+       <label xml:lang="en">has current</label>
+       <comment xml:lang="en">
+               <p>
+                       A thing containing the most recent entries in the feed to which this thing also belongs.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(RFC5005)"/>
+       </isDefinedBy>
+</ObjectProperty>
diff --git a/data/object_properties/rel¦first b/data/object_properties/rel¦first
new file mode 100644 (file)
index 0000000..e807d75
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE ObjectProperty SYSTEM "../../DTD">
+<ObjectProperty>
+       <label xml:lang="en">has first</label>
+       <comment xml:lang="en">
+               <p>
+                       A first thing in a series of things to which this thing belongs.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(RFC5005)"/>
+       </isDefinedBy>
+</ObjectProperty>
diff --git a/data/object_properties/rel¦last b/data/object_properties/rel¦last
new file mode 100644 (file)
index 0000000..ad8588c
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE ObjectProperty SYSTEM "../../DTD">
+<ObjectProperty>
+       <label xml:lang="en">has last</label>
+       <comment xml:lang="en">
+               <p>
+                       A last thing in a series of things to which this thing belongs.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(RFC5005)"/>
+       </isDefinedBy>
+</ObjectProperty>
diff --git a/data/object_properties/rel¦next b/data/object_properties/rel¦next
new file mode 100644 (file)
index 0000000..ab98d31
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE ObjectProperty SYSTEM "../../DTD">
+<ObjectProperty>
+       <label xml:lang="en">has next</label>
+       <comment xml:lang="en">
+               <p>
+                       A next thing in a series of things to which this thing belongs.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(RFC5005)"/>
+       </isDefinedBy>
+</ObjectProperty>
diff --git a/data/object_properties/rel¦next-archive b/data/object_properties/rel¦next-archive
new file mode 100644 (file)
index 0000000..37d8cd3
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE ObjectProperty SYSTEM "../../DTD">
+<ObjectProperty>
+       <label xml:lang="en">has next archive</label>
+       <comment xml:lang="en">
+               <p>
+                       An immediately following archive document to this thing.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(RFC5005)"/>
+       </isDefinedBy>
+</ObjectProperty>
diff --git a/data/object_properties/rel¦prev-archive b/data/object_properties/rel¦prev-archive
new file mode 100644 (file)
index 0000000..9a37501
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE ObjectProperty SYSTEM "../../DTD">
+<ObjectProperty>
+       <label xml:lang="en">has previous archive</label>
+       <comment xml:lang="en">
+               <p>
+                       An immediately preceding archive document to this thing.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(RFC5005)"/>
+       </isDefinedBy>
+</ObjectProperty>
diff --git a/data/object_properties/rel¦previous b/data/object_properties/rel¦previous
new file mode 100644 (file)
index 0000000..2d0c094
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: CC0-1.0
+-->
+<!DOCTYPE ObjectProperty SYSTEM "../../DTD">
+<ObjectProperty>
+       <label xml:lang="en">has previous</label>
+       <comment xml:lang="en">
+               <p>
+                       A previous thing in a series of things to which this thing belongs.
+               </p>
+       </comment>
+       <isDefinedBy>
+               <SpecificResource source="(RFC5005)"/>
+       </isDefinedBy>
+</ObjectProperty>
index ad67eac612b1be1ebbee84524e83fb53f50e37a9..ea3d6a14e2992defb7791a022ec020565a55351a 100644 (file)
@@ -5,7 +5,7 @@ SPDX-License-Identifier: CC0-1.0
 -->
 <!DOCTYPE ObjectProperty SYSTEM "../../DTD">
 <ObjectProperty>
 -->
 <!DOCTYPE ObjectProperty SYSTEM "../../DTD">
 <ObjectProperty>
-       <label xml:lang="en">has email</label>
+       <label xml:lang="en">has e·mail</label>
        <comment xml:lang="en">
                <p>
                        An electronic mail address for this <ref target="contact:SocialEntity">Social Entity</ref>.
        <comment xml:lang="en">
                <p>
                        An electronic mail address for this <ref target="contact:SocialEntity">Social Entity</ref>.
index 034b83b5e17e0893c69b1a01fa55e92e2f74de98..680b0e9deaf293da51fb8a6b8de340f4599cb2f5 100644 (file)
@@ -77,10 +77,30 @@ SPDX-License-Identifier: CC0-1.0
                <prefix>ladys</prefix>
                <namespace>https://vocab.ladys.computer/terms/</namespace>
        </declare>
                <prefix>ladys</prefix>
                <namespace>https://vocab.ladys.computer/terms/</namespace>
        </declare>
+       <declare>
+               <prefix>olo</prefix>
+               <namespace>http://purl.org/ontology/olo/core#</namespace>
+       </declare>
+       <declare>
+               <prefix>ore</prefix>
+               <namespace>http://www.openarchives.org/ore/terms/</namespace>
+       </declare>
        <declare>
                <prefix>owl</prefix>
                <namespace>http://www.w3.org/2002/07/owl#</namespace>
        </declare>
        <declare>
                <prefix>owl</prefix>
                <namespace>http://www.w3.org/2002/07/owl#</namespace>
        </declare>
+       <declare>
+               <prefix>pcdm</prefix>
+               <namespace>http://pcdm.org/models#</namespace>
+       </declare>
+       <declare>
+               <prefix>pcdmuse</prefix>
+               <namespace>http://pcdm.org/use#</namespace>
+       </declare>
+       <declare>
+               <prefix>pcdmworks</prefix>
+               <namespace>http://pcdm.org/works#</namespace>
+       </declare>
        <declare>
                <prefix>rdf</prefix>
                <namespace>http://www.w3.org/1999/02/22-rdf-syntax-ns#</namespace>
        <declare>
                <prefix>rdf</prefix>
                <namespace>http://www.w3.org/1999/02/22-rdf-syntax-ns#</namespace>
index bd5d7b729566a9af581ba2c6a62ea22cc7e0bda5..2dfdfcf5e8b320d64b20cbd301510d65298f2b43 100644 (file)
@@ -386,7 +386,7 @@ If a copy of the M·P·L was not distributed with this file, You can obtain one
                                <when test="contains(' declare namespace prefix ', $spaced)">
                                        <text>shacl:</text>
                                </when>
                                <when test="contains(' declare namespace prefix ', $spaced)">
                                        <text>shacl:</text>
                                </when>
-                               <when test="contains(' inScheme ', $spaced)">
+                               <when test="contains(' broader inScheme narrower ', $spaced)">
                                        <text>skos:</text>
                                </when>
                                <otherwise>
                                        <text>skos:</text>
                                </when>
                                <otherwise>
@@ -499,8 +499,8 @@ If a copy of the M·P·L was not distributed with this file, You can obtain one
                                                                                                        <text>http://www.w3.org/2001/XMLSchema#string</text>
                                                                                                </when>
                                                                                                <otherwise>
                                                                                                        <text>http://www.w3.org/2001/XMLSchema#string</text>
                                                                                                </when>
                                                                                                <otherwise>
-                                                                                                       <call-template name="unprefix">
-                                                                                                               <with-param name="prefixed" select="@datatype"/>
+                                                                                                       <call-template name="Vocab:unprefix">
+                                                                                                               <with-param name="prefixed" select="string(@datatype)"/>
                                                                                                        </call-template>
                                                                                                </otherwise>
                                                                                        </choose>
                                                                                                        </call-template>
                                                                                                </otherwise>
                                                                                        </choose>
index 056e57a7d8b0b4d8ec52dfc1da5c5f0787f1bcb7..c37f339ab80520dfedea887ed26a8d03954a90f2 100644 (file)
@@ -92,7 +92,7 @@ If a copy of the M·P·L was not distributed with this file, You can obtain one
                                                                        <with-param name="source" select="$source"/>
                                                                </apply-templates>
                                                        </for-each>
                                                                        <with-param name="source" select="$source"/>
                                                                </apply-templates>
                                                        </for-each>
-                                                       <for-each select="key($relationship-key, $source)">
+                                                       <for-each select="key($relationship-key, $source)[@rdf:about]">
                                                                <apply-templates select="." mode="Vocab:format-get">
                                                                        <with-param name="source" select="string(@rdf:about)"/>
                                                                </apply-templates>
                                                                <apply-templates select="." mode="Vocab:format-get">
                                                                        <with-param name="source" select="string(@rdf:about)"/>
                                                                </apply-templates>
@@ -175,7 +175,7 @@ If a copy of the M·P·L was not distributed with this file, You can obtain one
                                                                <with-param name="source" select="$source"/>
                                                        </apply-templates>
                                                </for-each>
                                                                <with-param name="source" select="$source"/>
                                                        </apply-templates>
                                                </for-each>
-                                               <for-each select="key(concat('Vocab:equivalent-', $kind), $source)">
+                                               <for-each select="key(concat('Vocab:equivalent-', $kind), $source)[@rdf:about]">
                                                        <apply-templates select="." mode="Vocab:format-get">
                                                                <with-param name="source" select="string(@rdf:about)"/>
                                                        </apply-templates>
                                                        <apply-templates select="." mode="Vocab:format-get">
                                                                <with-param name="source" select="string(@rdf:about)"/>
                                                        </apply-templates>
@@ -276,6 +276,7 @@ If a copy of the M·P·L was not distributed with this file, You can obtain one
                                </element>
                        </when>
                        <otherwise>
                                </element>
                        </when>
                        <otherwise>
+                               <!-- assume this is a property (like `owl:inverseOf´), not an instance (like `owl:ObjectProperty´); in this case, the members are what is desired -->
                                <for-each select="*">
                                        <copy>
                                                <copy-of select="@*|node()"/>
                                <for-each select="*">
                                        <copy>
                                                <copy-of select="@*|node()"/>
index bace54455e84535b60466e4212d0988fdb1c410c..cdde418d377e9c447e50ac35d595e31ed67ba8a9 100644 (file)
@@ -65,12 +65,12 @@ If a copy of the M·P·L was not distributed with this file, You can obtain one
                                </apply-templates>
                                <text>}</text>
                        </when>
                                </apply-templates>
                                <text>}</text>
                        </when>
-                       <when test="owl:complementOf">
+                       <when test="owl:datatypeComplementOf">
                                <if test="$use-parens">
                                        <text>(</text>
                                </if>
                                <text>not </text>
                                <if test="$use-parens">
                                        <text>(</text>
                                </if>
                                <text>not </text>
-                               <apply-templates select="(owl:complimentOf/@rdf:resource|owl:complimentOf/*)[1]" mode="Vocab:render-class">
+                               <apply-templates select="(owl:datatypeComplementOf/@rdf:resource|owl:datatypeComplementOf/*)[1]" mode="Vocab:render-class">
                                        <with-param name="root" select="$root"/>
                                        <with-param name="use-parens" select="true()"/>
                                </apply-templates>
                                        <with-param name="root" select="$root"/>
                                        <with-param name="use-parens" select="true()"/>
                                </apply-templates>
@@ -520,6 +520,7 @@ If a copy of the M·P·L was not distributed with this file, You can obtain one
        </template>
        <template match="*" mode="Vocab:render-value">
                <param name="root" select="/"/>
        </template>
        <template match="*" mode="Vocab:render-value">
                <param name="root" select="/"/>
+               <variable name="datatype" select="@rdf:datatype"/>
                <element name="code" namespace="&xhtml;">
                        <text>&quot;</text>
                        <element name="span" namespace="&xhtml;">
                <element name="code" namespace="&xhtml;">
                        <text>&quot;</text>
                        <element name="span" namespace="&xhtml;">
@@ -539,11 +540,11 @@ If a copy of the M·P·L was not distributed with this file, You can obtain one
                                        <text>@</text>
                                        <value-of select="@xml:lang"/>
                                </when>
                                        <text>@</text>
                                        <value-of select="@xml:lang"/>
                                </when>
-                               <when test="@rdf:datatype and string(@rdf:datatype)!='http://www.w3.org/2001/XMLSchema#string'">
+                               <when test="$datatype and string($datatype)!='http://www.w3.org/2001/XMLSchema#string'">
                                        <text>^^</text>
                                        <text>^^</text>
-                                       <for-each select="/">
+                                       <for-each select="$root">
                                                <call-template name="Vocab:link-to">
                                                <call-template name="Vocab:link-to">
-                                                       <with-param name="resource" select="@rdf:datatype"/>
+                                                       <with-param name="resource" select="string($datatype)"/>
                                                        <with-param name="kind" select="'class'"/>
                                                </call-template>
                                        </for-each>
                                                        <with-param name="kind" select="'class'"/>
                                                </call-template>
                                        </for-each>
index 43def78cd5e0a2a98f6bd427462ce6a2bf259a9e..381c556777e3e635b72d9d8239d469e26bbeda88 100644 (file)
@@ -962,6 +962,38 @@ If a copy of the M·P·L was not distributed with this file, You can obtain one
                                                </for-each>
                                        </element>
                                </if>
                                                </for-each>
                                        </element>
                                </if>
+                               <if test="skos:broader">
+                                       <element name="div" namespace="&xhtml;">
+                                               <element name="dt" namespace="&xhtml;">
+                                                       &en;
+                                                       <text>Has Broader</text>
+                                               </element>
+                                               <for-each select="skos:broader">
+                                                       <element name="dd" namespace="&xhtml;">
+                                                               <call-template name="Vocab:link-to">
+                                                                       <with-param name="resource" select="string(@rdf:resource)"/>
+                                                                       <with-param name="kind" select="'individual'"/>
+                                                               </call-template>
+                                                       </element>
+                                               </for-each>
+                                       </element>
+                               </if>
+                               <if test="skos:narrower">
+                                       <element name="div" namespace="&xhtml;">
+                                               <element name="dt" namespace="&xhtml;">
+                                                       &en;
+                                                       <text>Has Narrower</text>
+                                               </element>
+                                               <for-each select="skos:narrower">
+                                                       <element name="dd" namespace="&xhtml;">
+                                                               <call-template name="Vocab:link-to">
+                                                                       <with-param name="resource" select="string(@rdf:resource)"/>
+                                                                       <with-param name="kind" select="'individual'"/>
+                                                               </call-template>
+                                                       </element>
+                                               </for-each>
+                                       </element>
+                               </if>
                                <if test="rdfs:isDefinedBy[not(starts-with(@rdf:resource, $base-iri))]">
                                        <element name="div" namespace="&xhtml;">
                                                <element name="dt" namespace="&xhtml;">
                                <if test="rdfs:isDefinedBy[not(starts-with(@rdf:resource, $base-iri))]">
                                        <element name="div" namespace="&xhtml;">
                                                <element name="dt" namespace="&xhtml;">
This page took 0.224361 seconds and 4 git commands to generate.