summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
inline | side by side (from parent 1:
3dd3754)
- `anno:Selector` can no longer be refined by `anno:State` (in cases
where an object is both).
- `awol:FeedOrEntry` is now formalized as a disjoint union of
`awol:Feed` and `awol:Entry`. This was already true, as Feeds and
Entries were disjoint and Feed Or Entry was equivalent to their
union, but this states it explicitly.
- `dcterms:LicenseDocument` is now a subclass of `foaf:Document`.
- Plumbing `dcterms:` classes which simply indicated one of a variety
of classes are now equivalent to their union, not simply superclasses
of them. This simplifies the ranges of properties which previously
indicated the union and aligns with how these classes were probably
intended. This union is _not_ defined as disjoint.
- Superfluous disjoint rules were removed from `foaf:Agent` and
`foaf:Document`; these can be inferred.
13 files changed:
<!ELEMENT Restriction (onProperty,(((minQualifiedCardinality|maxQualifiedCardinality|qualifiedCardinality),(onClass|onDataRange))|allValuesFrom|cardinality|hasValue|hasSelf|minCardinality|maxCardinality|someValuesFrom))>
<!-- Declarations -->
<!ELEMENT Restriction (onProperty,(((minQualifiedCardinality|maxQualifiedCardinality|qualifiedCardinality),(onClass|onDataRange))|allValuesFrom|cardinality|hasValue|hasSelf|minCardinality|maxCardinality|someValuesFrom))>
<!-- Declarations -->
-<!ELEMENT Class (%annotations;,((equivalentClass*,subClassOf*,superClassOf*,disjointWith*,hasKey*)|complementOf|disjointUnionOf|intersectionOf|oneOf|unionOf))>
+<!ELEMENT Class (%annotations;,((equivalentClass*,disjointUnionOf*,subClassOf*,superClassOf*,disjointWith*,hasKey*)|complementOf|intersectionOf|oneOf|unionOf))>
<!ATTLIST Class
name CDATA #IMPLIED
status (plumbing|unstable|testing|stable|archaic) #IMPLIED
<!ATTLIST Class
name CDATA #IMPLIED
status (plumbing|unstable|testing|stable|archaic) #IMPLIED
<?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 Class SYSTEM "../../DTD">
SPDX-License-Identifier: CC0-1.0
-->
<!DOCTYPE Class SYSTEM "../../DTD">
</allValuesFrom>
</Restriction>
</subClassOf>
</allValuesFrom>
</Restriction>
</subClassOf>
+ <subClassOf>
+ <Restriction>
+ <onProperty>
+ <resource name="anno:refinedBy"/>
+ </onProperty>
+ <allValuesFrom>
+ <Class>
+ <complementOf>
+ <resource name="anno:State"/>
+ </complementOf>
+ </Class>
+ </allValuesFrom>
+ </Restriction>
+ </subClassOf>
<?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 Class SYSTEM "../../DTD">
SPDX-License-Identifier: CC0-1.0
-->
<!DOCTYPE Class SYSTEM "../../DTD">
<isDefinedBy>
<SpecificResource source="(AWOL)" fragment="FeedOrEntry"/>
</isDefinedBy>
<isDefinedBy>
<SpecificResource source="(AWOL)" fragment="FeedOrEntry"/>
</isDefinedBy>
- <equivalentClass>
- <Class>
- <unionOf>
- <resource name="awol:Feed"/>
- <resource name="awol:Entry"/>
- </unionOf>
- </Class>
- </equivalentClass>
+ <disjointUnionOf>
+ <resource name="awol:Feed"/>
+ <resource name="awol:Entry"/>
+ </disjointUnionOf>
<subClassOf>
<resource name="awol:Version"/>
</subClassOf>
<subClassOf>
<resource name="awol:Version"/>
</subClassOf>
<?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 Class SYSTEM "../../DTD">
SPDX-License-Identifier: CC0-1.0
-->
<!DOCTYPE Class SYSTEM "../../DTD">
<label xml:lang="en">License Document</label>
<comment xml:lang="en">
<p>
<label xml:lang="en">License Document</label>
<comment xml:lang="en">
<p>
- A legal document giving official permission to do something with a resource.
+ A legal <ref target="foaf:Document">Document</ref> giving official permission to do something with a resource.
</p>
</comment>
<isDefinedBy>
</p>
</comment>
<isDefinedBy>
<subClassOf>
<resource name="dcterms:RightsStatement"/>
</subClassOf>
<subClassOf>
<resource name="dcterms:RightsStatement"/>
</subClassOf>
+ <subClassOf>
+ <resource name="foaf:Document"/>
+ </subClassOf>
<?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 Class SYSTEM "../../DTD">
SPDX-License-Identifier: CC0-1.0
-->
<!DOCTYPE Class SYSTEM "../../DTD">
<isDefinedBy>
<SpecificResource source="(DCMI)" fragment="http://purl.org/dc/terms/LocationPeriodOrJurisdiction"/>
</isDefinedBy>
<isDefinedBy>
<SpecificResource source="(DCMI)" fragment="http://purl.org/dc/terms/LocationPeriodOrJurisdiction"/>
</isDefinedBy>
+ <equivalentClass>
+ <Class>
+ <unionOf>
+ <resource name="dcterms:Jurisdiction"/>
+ <resource name="dcterms:Location"/>
+ <resource name="dcterms:PeriodOfTime"/>
+ </unionOf>
+ </Class>
+ </equivalentClass>
<?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 Class SYSTEM "../../DTD">
SPDX-License-Identifier: CC0-1.0
-->
<!DOCTYPE Class SYSTEM "../../DTD">
<isDefinedBy>
<SpecificResource source="(DCMI)" fragment="http://purl.org/dc/terms/MediaType"/>
</isDefinedBy>
<isDefinedBy>
<SpecificResource source="(DCMI)" fragment="http://purl.org/dc/terms/MediaType"/>
</isDefinedBy>
+ <equivalentClass>
+ <Class>
+ <unionOf>
+ <resource name="dcterms:FileFormat"/>
+ <resource name="dcterms:PhysicalMedium"/>
+ </unionOf>
+ </Class>
+ </equivalentClass>
<subClassOf>
<resource name="dcterms:MediaTypeOrExtent"/>
</subClassOf>
<subClassOf>
<resource name="dcterms:MediaTypeOrExtent"/>
</subClassOf>
<?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 Class SYSTEM "../../DTD">
SPDX-License-Identifier: CC0-1.0
-->
<!DOCTYPE Class SYSTEM "../../DTD">
<isDefinedBy>
<SpecificResource source="(DCMI)" fragment="http://purl.org/dc/terms/MediaTypeOrExtent"/>
</isDefinedBy>
<isDefinedBy>
<SpecificResource source="(DCMI)" fragment="http://purl.org/dc/terms/MediaTypeOrExtent"/>
</isDefinedBy>
+ <equivalentClass>
+ <Class>
+ <unionOf>
+ <resource name="dcterms:MediaType"/>
+ <resource name="dcterms:SizeOrDuration"/>
+ </unionOf>
+ </Class>
+ </equivalentClass>
<equivalentClass>
<resource name="dcterms:Agent"/>
</equivalentClass>
<equivalentClass>
<resource name="dcterms:Agent"/>
</equivalentClass>
- <disjointWith>
- <resource name="foaf:Document"/>
- </disjointWith>
- <disjointWith>
- <resource name="foaf:Project"/>
- </disjointWith>
<disjointWith>
<resource name="foaf:Agent"/>
</disjointWith>
<disjointWith>
<resource name="foaf:Agent"/>
</disjointWith>
- <disjointWith>
- <resource name="foaf:Project"/>
- </disjointWith>
<?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">
SPDX-License-Identifier: CC0-1.0
-->
<!DOCTYPE ObjectProperty SYSTEM "../../DTD">
<label xml:lang="en">has coverage</label>
<comment xml:lang="en">
<p>
<label xml:lang="en">has coverage</label>
<comment xml:lang="en">
<p>
- A <ref target="dcterms:Location">Location</ref>, <ref target="dcterms:PeriodOfTime">PeriodOfTime</ref>, or <ref target="dcterms:Jurisdiction">Jurisdiction</ref> of this thing, which this thing is applicable to, or under which this thing is relevant.
+ A <ref target="dcterms:LocationPeriodOrJurisdiction">Location, Period, Or Jurisdiction</ref> of this thing, which this thing is applicable to, or under which this thing is relevant.
</p>
<p>
<ptr target="(DCMI)"/> states that because coverage is so broadly defined, it is preferable to use the more specific subproperties <ptr target="dcterms:temporal"/> and <ptr target="dcterms:spatial"/>.
</p>
<p>
<ptr target="(DCMI)"/> states that because coverage is so broadly defined, it is preferable to use the more specific subproperties <ptr target="dcterms:temporal"/> and <ptr target="dcterms:spatial"/>.
<SpecificResource source="(DCMI)" fragment="http://purl.org/dc/terms/coverage"/>
</isDefinedBy>
<range>
<SpecificResource source="(DCMI)" fragment="http://purl.org/dc/terms/coverage"/>
</isDefinedBy>
<range>
- <Class>
- <unionOf>
- <resource name="dcterms:Location"/>
- <resource name="dcterms:PeriodOfTime"/>
- <resource name="dcterms:Jurisdiction"/>
- </unionOf>
- </Class>
+ <resource name="dcterms:LocationPeriodOrJurisdiction"/>
</range>
</ObjectProperty>
</range>
</ObjectProperty>
<?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">
SPDX-License-Identifier: CC0-1.0
-->
<!DOCTYPE ObjectProperty SYSTEM "../../DTD">
<label xml:lang="en">in format</label>
<comment xml:lang="en">
<p>
<label xml:lang="en">in format</label>
<comment xml:lang="en">
<p>
- A <ref target="dcterms:FileFormat">File Format</ref>, <ref target="dcterms:PhysicalMedioum">Physical Medium</ref>, or <ref target="dcterms:SizeOrDuration">Size Or Duration</ref> of this thing.
+ A <ref target="dcterms:MediaTypeOrExtent">Media Type Or Extent</ref> of this thing.
</p>
</comment>
<isDefinedBy>
<SpecificResource source="(DCMI)" fragment="http://purl.org/dc/terms/format"/>
</isDefinedBy>
<range>
</p>
</comment>
<isDefinedBy>
<SpecificResource source="(DCMI)" fragment="http://purl.org/dc/terms/format"/>
</isDefinedBy>
<range>
- <Class>
- <unionOf>
- <resource name="dcterms:MediaType"/>
- <resource name="dcterms:SizeOrDuration"/>
- </unionOf>
- </Class>
+ <resource name="dcterms:MediaTypeOrExtent"/>
</range>
</ObjectProperty>
</range>
</ObjectProperty>
<key name="Vocab:inverse-class" match="owl:Class|rdfs:Datatype" use="owl:complementOf/@rdf:resource"/>
<key name="Vocab:inverse-property" match="owl:DatatypeProperty|owl:ObjectProperty" use="owl:inverseOf/@rdf:resource"/>
<key name="Vocab:disjoint-class" match="owl:Class|rdfs:Datatype" use="owl:disjointWith/@rdf:resource"/>
<key name="Vocab:inverse-class" match="owl:Class|rdfs:Datatype" use="owl:complementOf/@rdf:resource"/>
<key name="Vocab:inverse-property" match="owl:DatatypeProperty|owl:ObjectProperty" use="owl:inverseOf/@rdf:resource"/>
<key name="Vocab:disjoint-class" match="owl:Class|rdfs:Datatype" use="owl:disjointWith/@rdf:resource"/>
+ <key name="Vocab:disjoint-class-union" match="owl:Class" use="owl:disjointUnionOf/rdf:Description/@rdf:about"/>
<key name="Vocab:disjoint-property" match="owl:DatatypeProperty|owl:ObjectProperty" use="owl:propertyDisjointWith/@rdf:resource"/>
<exslfunc:function name="Vocab:get-equivalents">
<param name="resource-nodes"/>
<key name="Vocab:disjoint-property" match="owl:DatatypeProperty|owl:ObjectProperty" use="owl:propertyDisjointWith/@rdf:resource"/>
<exslfunc:function name="Vocab:get-equivalents">
<param name="resource-nodes"/>
<with-param name="source" select="string(@rdf:about)"/>
</apply-templates>
</for-each>
<with-param name="source" select="string(@rdf:about)"/>
</apply-templates>
</for-each>
+ <if test="$relationship-names/Vocab:in-union">
+ <for-each select="key(concat($relationship-key, '-union'), $source)">
+ <apply-templates select="*[local-name()=$relationship-names/Vocab:in-union/Vocab:local-name and namespace-uri()=$relationship-names/Vocab:in-union/Vocab:namespace]/*" mode="Vocab:format-get">
+ <with-param name="source" select="string(@rdf:about)"/>
+ </apply-templates>
+ </for-each>
+ </if>
</for-each>
</for-each>
</variable>
</for-each>
</for-each>
</variable>
+ <variable name="filter-fragment">
+ <copy-of select="$exclude"/>
+ <if test="not($include-self)">
+ <copy-of select="$equivalents"/>
+ </if>
+ </variable>
<for-each select="exsl:node-set($unfiltered-result-fragment)/*">
<for-each select="exsl:node-set($unfiltered-result-fragment)/*">
- <copy-of select="self::*[not(@rdf:about and ($exclude|preceding-sibling::*)/@rdf:about[string()=string(current()/@rdf:about)])]"/>
+ <copy-of select="self::*[not(@rdf:about and (exsl:node-set($filter-fragment)/*|preceding-sibling::*)/@rdf:about[string()=string(current()/@rdf:about)])]"/>
</for-each>
</if>
</variable>
</for-each>
</if>
</variable>
</otherwise>
</choose>
</element>
</otherwise>
</choose>
</element>
+ <if test="$relationship='disjoint' and $kind='class'">
+ <element name="Vocab:in-union">
+ <element name="Vocab:local-name">
+ <text>disjointUnionOf</text>
+ </element>
+ <element name="Vocab:namespace">
+ <text>http://www.w3.org/2002/07/owl#</text>
+ </element>
+ </element>
+ </if>
</variable>
<exslfunc:result select="exsl:node-set($result-fragment)"/>
</exslfunc:function>
</variable>
<exslfunc:result select="exsl:node-set($result-fragment)"/>
</exslfunc:function>
</choose>
</element>
</if>
</choose>
</element>
</if>
+ <if test="owl:disjointUnionOf">
+ <element name="div" namespace="&xhtml;">
+ <element name="dt" namespace="&xhtml;">
+ &en;
+ <text>Disjoint Union Of</text>
+ </element>
+ <for-each select="owl:disjointUnionOf">
+ <element name="dd" namespace="&xhtml;">
+ <for-each select="*">
+ <apply-templates select="." mode="Vocab:render-class"/>
+ <if test="position()<last()">
+ <text>, </text>
+ </if>
+ </for-each>
+ </element>
+ </for-each>
+ </element>
+ </if>
<if test="$inverses">
<choose>
<when test="$kind='class'">
<if test="$inverses">
<choose>
<when test="$kind='class'">
</for-each>
</element>
</if>
</for-each>
</element>
</if>
- <if test="rdfs:domain">
- <element name="div" namespace="&xhtml;">
- <element name="dt" namespace="&xhtml;">
- &en;
- <text>Domain</text>
- </element>
- <for-each select="rdfs:domain">
- <element name="dd" namespace="&xhtml;">
- <apply-templates select="(@rdf:resource|*)[1]" mode="Vocab:render-class"/>
- </element>
- </for-each>
- </element>
- </if>
- <if test="rdfs:range">
- <element name="div" namespace="&xhtml;">
- <element name="dt" namespace="&xhtml;">
- &en;
- <text>Range</text>
- </element>
- <for-each select="rdfs:range">
- <element name="dd" namespace="&xhtml;">
- <apply-templates select="(@rdf:resource|*)[1]" mode="Vocab:render-class"/>
- </element>
- </for-each>
- </element>
- </if>
<if test="$disjoints">
<choose>
<when test="$kind='class'">
<if test="$disjoints">
<choose>
<when test="$kind='class'">
+ <if test="rdfs:domain">
+ <element name="div" namespace="&xhtml;">
+ <element name="dt" namespace="&xhtml;">
+ &en;
+ <text>Domain</text>
+ </element>
+ <for-each select="rdfs:domain">
+ <element name="dd" namespace="&xhtml;">
+ <apply-templates select="(@rdf:resource|*)[1]" mode="Vocab:render-class"/>
+ </element>
+ </for-each>
+ </element>
+ </if>
+ <if test="rdfs:range">
+ <element name="div" namespace="&xhtml;">
+ <element name="dt" namespace="&xhtml;">
+ &en;
+ <text>Range</text>
+ </element>
+ <for-each select="rdfs:range">
+ <element name="dd" namespace="&xhtml;">
+ <apply-templates select="(@rdf:resource|*)[1]" mode="Vocab:render-class"/>
+ </element>
+ </for-each>
+ </element>
+ </if>
<if test="skos:inScheme">
<element name="div" namespace="&xhtml;">
<element name="dt" namespace="&xhtml;">
<if test="skos:inScheme">
<element name="div" namespace="&xhtml;">
<element name="dt" namespace="&xhtml;">