]> Lady’s Gitweb - Vocab/commitdiff
Improvements to P·C·D·M and Ore modelling
authorLady <redacted>
Sun, 23 Feb 2025 23:28:05 +0000 (18:28 -0500)
committerLady <redacted>
Sun, 23 Feb 2025 23:28:05 +0000 (18:28 -0500)
- `ore:Proxy` is now a subclass of `anno:ResourceSelection`, via the
  new `ladys:Proxy` class (a Resource Selection which explicitly
  selects everything).

- P·C·D·M object property domains and ranges have been expanded to just
  `ore:Aggregation` where appropriate, enabling their use with other
  kinds of Aggregations.

- Ore Proxy properties now imply membership in the Aggregation that the
  Proxy is in.

- The use of `rel:previous` and `rel:next` for Proxies as specified by
  P·C·D·M has been documented and appropriate restrictions applied.

13 files changed:
data/classes/ore¦Proxy
data/classes/pcdm¦Collection
data/classes/pcdm¦Object
data/classes/¦Proxy [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/ore¦aggregates
data/object_properties/ore¦isAggregatedBy
data/object_properties/ore¦proxyFor
data/object_properties/pcdm¦hasMember
data/object_properties/pcdm¦hasRelatedObject
data/object_properties/pcdm¦isMemberOf
data/object_properties/pcdm¦isRelatedObjectOf

index acebdbfadcacafa693a737602dc2cb7578c188af..78b8341927c01f4e9b4117df7612bb6a1049c713 100644 (file)
@@ -8,7 +8,7 @@ SPDX-License-Identifier: CC0-1.0
        <label xml:lang="en">Proxy</label>
        <comment xml:lang="en">
                <p>
-                       An abstract representation of some <ref target="ore:AggregatedResource">Aggregated Resource</ref> as it exists within a specific <ref target="ore:Aggregation">Aggregation</ref>.
+                       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”.
@@ -16,12 +16,22 @@ SPDX-License-Identifier: CC0-1.0
                </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 made explicit here to preserve the use·fulness of this class.
+                       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>
@@ -38,4 +48,40 @@ SPDX-License-Identifier: CC0-1.0
                        <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>
index acc1b719347f1784fe400697fecd56622b98b199..6b45c28ef83e78d62a0c368f003ef8401b24cbf7 100644 (file)
@@ -8,7 +8,12 @@ SPDX-License-Identifier: CC0-1.0
        <label xml:lang="en">Collection</label>
        <comment xml:lang="en">
                <p>
-                       A kind of <ref target="ore:Aggregation">Aggregation</ref> which can <ref target="pcdm:hasMember">have member</ref> <ref target="pcdm:Object">Objects</ref> or other Collections.
+                       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>
index 884dcd042feae643dc2c9f5ff42f68c6128d107f..2d23008f51aaf052ec9ac53a55774fc317971e3e 100644 (file)
@@ -8,13 +8,16 @@ SPDX-License-Identifier: CC0-1.0
        <label xml:lang="en">Object</label>
        <comment xml:lang="en">
                <p>
-                       A kind of <ref target="ore:Aggregation">Aggregation</ref> representing an intellectual entity of some kind.
+                       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>
-                       The <ptr target="pcdmworks:Work"/> and <ptr target="pcdmworks:FileSet"/> subclasses provide a more sophisticated modelling.
+                       <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>
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/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 17c4c497b10f5c4f3e07c0c3f66e0df7a6cad802..4fb4e599558380cb5483acfe2213ce0b40c72f20 100644 (file)
@@ -17,6 +17,14 @@ SPDX-License-Identifier: CC0-1.0
        <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>
index e6be35a57394b7c207bc2eeb1e3388b77a1104dc..9d2ca326ce88056cc59b69a81855d65861f85c95 100644 (file)
@@ -20,6 +20,14 @@ SPDX-License-Identifier: CC0-1.0
        <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>
index 7cd75f03b1f73d8894433083ef52899de392fc3a..c2bd8ed76e49da226ad1c894347963053268ba04 100644 (file)
@@ -14,6 +14,9 @@ SPDX-License-Identifier: CC0-1.0
        <isDefinedBy>
                <SpecificResource source="(OAI-ORE)" fragment="ore-proxyFor"/>
        </isDefinedBy>
+       <subPropertyOf>
+               <resource name="anno:hasSource"/>
+       </subPropertyOf>
        <domain>
                <resource name="ore:Proxy"/>
        </domain>
index e0a98c756ad98e24b47ab166881abd1393ef74e9..0f3b7d3ba86bee3041fa48c30ec9cf75d0eb5df2 100644 (file)
@@ -8,7 +8,11 @@ SPDX-License-Identifier: CC0-1.0
        <label xml:lang="en">has member</label>
        <comment xml:lang="en">
                <p>
-                       A <ref target="pcdm:Collection">Collection</ref> or <ref target="pcdm:Object">Object</ref> which forms a component part of this Collection or Object.
+                       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>
@@ -17,20 +21,7 @@ SPDX-License-Identifier: CC0-1.0
        <subPropertyOf>
                <resource name="ore:aggregates"/>
        </subPropertyOf>
-       <domain>
-               <Class>
-                       <unionOf>
-                               <resource name="pcdm:Collection"/>
-                               <resource name="pcdm:Object"/>
-                       </unionOf>
-               </Class>
-       </domain>
        <range>
-               <Class>
-                       <unionOf>
-                               <resource name="pcdm:Collection"/>
-                               <resource name="pcdm:Object"/>
-                       </unionOf>
-               </Class>
+               <resource name="ore:Aggregation"/>
        </range>
 </ObjectProperty>
index 509fcb4279aaa110c9e00c15c7e853e16de452c0..c522bb79ffea8f79179d0116fe305f5bba16d138 100644 (file)
@@ -8,10 +8,10 @@ SPDX-License-Identifier: CC0-1.0
        <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="pcdm:Collection">Collection</ref> or <ref target="pcdm:Object">Object</ref>, but which is not considered a component part.
+                       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 a Collection or Object from the perspective of resource aggregation, but not from the perspective of conceptual composition.
+                       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>
@@ -25,14 +25,6 @@ SPDX-License-Identifier: CC0-1.0
        <propertyDisjointWith>
                <resource name="pcdm:hasMember"/>
        </propertyDisjointWith>
-       <domain>
-               <Class>
-                       <unionOf>
-                               <resource name="pcdm:Collection"/>
-                               <resource name="pcdm:Object"/>
-                       </unionOf>
-               </Class>
-       </domain>
        <range>
                <resource name="pcdm:Object"/>
        </range>
index 54cbf7b8da18913c9165cb77c36e372fa050ec45..dc1514ba7b82a3c9bf0aebdefc91ba1456ae587d 100644 (file)
@@ -8,7 +8,11 @@ SPDX-License-Identifier: CC0-1.0
        <label xml:lang="en">member of</label>
        <comment xml:lang="en">
                <p>
-                       A <ref target="pcdm:Collection">Collection</ref> or <ref target="pcdm:Object">Object</ref> which this Collection or Object is a component part of.
+                       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>
@@ -21,19 +25,6 @@ SPDX-License-Identifier: CC0-1.0
                <resource name="pcdm:hasMember"/>
        </inverseOf>
        <domain>
-               <Class>
-                       <unionOf>
-                               <resource name="pcdm:Collection"/>
-                               <resource name="pcdm:Object"/>
-                       </unionOf>
-               </Class>
+               <resource name="ore:Aggregation"/>
        </domain>
-       <range>
-               <Class>
-                       <unionOf>
-                               <resource name="pcdm:Collection"/>
-                               <resource name="pcdm:Object"/>
-                       </unionOf>
-               </Class>
-       </range>
 </ObjectProperty>
index 51f5b90a49b7dd39f8788644a151034bdba3cf69..c6f80b29c77094ebb148c3f0f54b420673fc2c53 100644 (file)
@@ -8,7 +8,7 @@ SPDX-License-Identifier: CC0-1.0
        <label xml:lang="en">related object of</label>
        <comment xml:lang="en">
                <p>
-                       A <ref target="pcdm:Collection">Collection</ref> or <ref target="pcdm:Object">Object</ref> which this Object is aggregated as part of, but in a way which does not imply being a component part.
+                       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.
@@ -29,12 +29,4 @@ SPDX-License-Identifier: CC0-1.0
        <domain>
                <resource name="pcdm:Object"/>
        </domain>
-       <range>
-               <Class>
-                       <unionOf>
-                               <resource name="pcdm:Collection"/>
-                               <resource name="pcdm:Object"/>
-                       </unionOf>
-               </Class>
-       </range>
 </ObjectProperty>
This page took 0.045969 seconds and 4 git commands to generate.