]> Lady’s Gitweb - Vocab/commitdiff
Refine Awol model
authorLady <redacted>
Fri, 13 Sep 2024 03:21:12 +0000 (23:21 -0400)
committerLady <redacted>
Sat, 4 Jan 2025 20:24:27 +0000 (15:24 -0500)
- awol:Content can simply be equivalent to “anything with an awol:body
  or an awol:src”, and its restrictions are consequently inherited by
  any object which uses those properties. This simplifies the model,
  and makes it better match intended usage. awol:Content and awol:Link
  are made disjoint to prevent confusion with awol:lang and awol:type,
  which can (now) apply to either.

- awol:lang in particular is refined to not just provide the language
  of awol:Link¦s, but potentially any resource (as is true of
  awol:type). However, a domain restriction is made: If awol:Content
  has an awol:body which is a language‐tagged string, it must not also
  have an awol:lang. This continues to offer two possible encodings for
  plaintext content, one as an xsd:string with an awol:type of
  `text/plain` and an awol:lang, and another as a language‐tagged
  string with no awol:type or awol:lang. The latter is preferred.

- Many things are now classified as foaf:Document¦s which previously
  weren¦t, but reasonably should have been.

data/classes/awol¦Content
data/classes/awol¦HTML
data/classes/awol¦PlainText
data/classes/awol¦Version
data/classes/awol¦XHTML
data/datatype_properties/awol¦body
data/datatype_properties/awol¦lang
data/datatype_properties/awol¦type
data/object_properties/awol¦src

index 3728772279da600396330e1dc00c600c7e3f24fe..5ff1bf0e4da6c10cb489bde4be7adac15e336fa1 100644 (file)
@@ -42,38 +42,18 @@ SPDX-License-Identifier: CC0-1.0
        <equivalentClass>
                <Class>
                        <unionOf>
        <equivalentClass>
                <Class>
                        <unionOf>
-                               <Class>
-                                       <intersectionOf>
-                                               <Restriction>
-                                                       <onProperty>
-                                                               <resource name="awol:body"/>
-                                                       </onProperty>
-                                                       <cardinality>1</cardinality>
-                                               </Restriction>
-                                               <Restriction>
-                                                       <onProperty>
-                                                               <resource name="awol:src"/>
-                                                       </onProperty>
-                                                       <cardinality>0</cardinality>
-                                               </Restriction>
-                                       </intersectionOf>
-                               </Class>
-                               <Class>
-                                       <intersectionOf>
-                                               <Restriction>
-                                                       <onProperty>
-                                                               <resource name="awol:body"/>
-                                                       </onProperty>
-                                                       <cardinality>0</cardinality>
-                                               </Restriction>
-                                               <Restriction>
-                                                       <onProperty>
-                                                               <resource name="awol:src"/>
-                                                       </onProperty>
-                                                       <cardinality>1</cardinality>
-                                               </Restriction>
-                                       </intersectionOf>
-                               </Class>
+                               <Restriction>
+                                       <onProperty>
+                                               <resource name="awol:body"/>
+                                       </onProperty>
+                                       <cardinality>1</cardinality>
+                               </Restriction>
+                               <Restriction>
+                                       <onProperty>
+                                               <resource name="awol:src"/>
+                                       </onProperty>
+                                       <cardinality>1</cardinality>
+                               </Restriction>
                        </unionOf>
                </Class>
        </equivalentClass>
                        </unionOf>
                </Class>
        </equivalentClass>
@@ -150,4 +130,7 @@ SPDX-License-Identifier: CC0-1.0
                        </unionOf>
                </Class>
        </subClassOf>
                        </unionOf>
                </Class>
        </subClassOf>
+       <disjointWith>
+               <resource name="awol:Link"/>
+       </disjointWith>
 </Class>
 </Class>
index d71058ca6d35f7c50c57546509a473cd6032e962..cfffc640dd360ff714d2518a3425ddfb58c02b61 100644 (file)
@@ -17,7 +17,6 @@ SPDX-License-Identifier: CC0-1.0
        <equivalentClass>
                <Class>
                        <intersectionOf>
        <equivalentClass>
                <Class>
                        <intersectionOf>
-                               <resource name="awol:Content"/>
                                <Restriction>
                                        <onProperty>
                                                <resource name="awol:body"/>
                                <Restriction>
                                        <onProperty>
                                                <resource name="awol:body"/>
index da6a61be4e54a95503bb00d3ee97275a9fde8ab1..e2f41bc7540e2fa0ea6eb6018d17170000287c91 100644 (file)
@@ -17,7 +17,12 @@ SPDX-License-Identifier: CC0-1.0
        <equivalentClass>
                <Class>
                        <intersectionOf>
        <equivalentClass>
                <Class>
                        <intersectionOf>
-                               <resource name="awol:Content"/>
+                               <Restriction>
+                                       <onProperty>
+                                               <resource name="awol:body"/>
+                                       </onProperty>
+                                       <cardinality>1</cardinality>
+                               </Restriction>
                                <Class>
                                        <unionOf>
                                                <Class>
                                <Class>
                                        <unionOf>
                                                <Class>
index 8a1f973ea2dc2d43b1b26a0c45b9e6416494a047..7448b9de19130f7204db4e08ee871f7ccc55c1bb 100644 (file)
@@ -8,7 +8,7 @@ SPDX-License-Identifier: CC0-1.0
        <label xml:lang="en">Version</label>
        <comment xml:lang="en">
                <p>
        <label xml:lang="en">Version</label>
        <comment xml:lang="en">
                <p>
-                       A version of something.
+                       A versioned <ref target="foaf:Document">Document</ref>.
                </p>
                <p>
                        Following <ptr target="(RFC4287)"/>, Versions must have exactly one <ptr target="awol:id"/>, used to associate related Versions with one another, and one <ptr target="awol:updated"/>, used to determine the most recent Version.
                </p>
                <p>
                        Following <ptr target="(RFC4287)"/>, Versions must have exactly one <ptr target="awol:id"/>, used to associate related Versions with one another, and one <ptr target="awol:updated"/>, used to determine the most recent Version.
@@ -18,6 +18,9 @@ SPDX-License-Identifier: CC0-1.0
        <isDefinedBy>
                <SpecificResource source="(AWOL)" fragment="Version"/>
        </isDefinedBy>
        <isDefinedBy>
                <SpecificResource source="(AWOL)" fragment="Version"/>
        </isDefinedBy>
+       <subClassOf>
+               <resource name="foaf:Document"/>
+       </subClassOf>
        <subClassOf>
                <Restriction>
                        <onProperty>
        <subClassOf>
                <Restriction>
                        <onProperty>
index 5af7c6b51debdaf4ef3395033af557957c5a105f..fdd0fe82dacfbad23febd717c1339f86f466caef 100644 (file)
@@ -20,7 +20,6 @@ SPDX-License-Identifier: CC0-1.0
        <equivalentClass>
                <Class>
                        <intersectionOf>
        <equivalentClass>
                <Class>
                        <intersectionOf>
-                               <resource name="awol:Content"/>
                                <Restriction>
                                        <onProperty>
                                                <resource name="awol:body"/>
                                <Restriction>
                                        <onProperty>
                                                <resource name="awol:body"/>
index 01dd89e60278a16d9e4ad3e2d756bf19a0802f05..dbae65a838e81e0bd50686b34dfdc2669f15d118 100644 (file)
@@ -8,7 +8,7 @@ SPDX-License-Identifier: CC0-1.0
        <label xml:lang="en">body</label>
        <comment xml:lang="en">
                <p>
        <label xml:lang="en">body</label>
        <comment xml:lang="en">
                <p>
-                       The body of this thing.
+                       The body of this <ref target="awol:Content">Content</ref>.
                </p>
                <p>
                        X·M·L data should be provided as a <resource name="rdf:XMLLiteral"/>; binary data may be provided as a <resource name="xsd:base64Binary"/>.
                </p>
                <p>
                        X·M·L data should be provided as a <resource name="rdf:XMLLiteral"/>; binary data may be provided as a <resource name="xsd:base64Binary"/>.
@@ -24,11 +24,8 @@ SPDX-License-Identifier: CC0-1.0
        <domain>
                <Class>
                        <intersectionOf>
        <domain>
                <Class>
                        <intersectionOf>
-                               <Class>
-                                       <complementOf>
-                                               <resource name="awol:Link"/>
-                                       </complementOf>
-                               </Class>
+                               <resource name="foaf:Document"/>
+                               <resource name="awol:Content"/>
                                <Restriction>
                                        <onProperty>
                                                <resource name="awol:src"/>
                                <Restriction>
                                        <onProperty>
                                                <resource name="awol:src"/>
index 2ea2cb2bc145cc4aa536b81af88e533df5ccc389..009e029ae929612673b32423ad63015976ae9386 100644 (file)
@@ -8,20 +8,48 @@ SPDX-License-Identifier: CC0-1.0
        <label xml:lang="en">language</label>
        <comment xml:lang="en">
                <p>
        <label xml:lang="en">language</label>
        <comment xml:lang="en">
                <p>
-                       The language of the thing this <ref target="awol:Link">Link</ref> is <ref target="awol:to">linking to</ref>.
+                       The language of this thing.
                </p>
                <p>
                </p>
                <p>
-                       When the <ref target="awol:rel">link relation</ref> of this Link is <ptr target="rel:alternate" type="individual"/>, the presence of a language implies that the thing being linked to is a translation of the Links <ptr target="awol:subject"/>.
+                       For <ref target="awol:Content">Content</ref> which <ref target="awol:body">has a body</ref>, the language is the base language of that body.
+                       For <ref target="awol:Content">Content</ref> which <ref target="awol:src">has a source</ref>, the language is the base language of the source.
+                       For <ref target="awol:Link">Links</ref>, the language is that of the thing being <ref target="awol:to">linked to</ref>.
+               </p>
+               <p>
+                       This property cannot be used on Content whose body is a language‐tagged string.
                </p>
                <p>
                </p>
                <p>
-                       <ptr target="(AWOL)"/> defines the domain of this property as being <ptr target="awol:Content"/> instead, but this appears to be a confusion; the documentation clearly links to the specification for <code>hreflang</code> (a property of Links in <ptr target="(RFC4287)"/>), not language signification in general.
+                       When the <ref target="awol:rel">link relation</ref> of this Link is <ptr target="rel:alternate" type="individual"/>, the presence of a language implies that the thing being linked to is a translation of the Links <ptr target="awol:subject"/>.
                </p>
        </comment>
        <isDefinedBy>
                <SpecificResource source="(AWOL)" fragment="lang"/>
        </isDefinedBy>
                </p>
        </comment>
        <isDefinedBy>
                <SpecificResource source="(AWOL)" fragment="lang"/>
        </isDefinedBy>
+       <subPropertyOf>
+               <resource name="dc11:language"/>
+       </subPropertyOf>
        <domain>
        <domain>
-               <resource name="awol:Link"/>
+               <Class>
+                       <complementOf>
+                               <Restriction>
+                                       <onProperty>
+                                               <resource name="awol:body"/>
+                                       </onProperty>
+                                       <someValuesFrom>
+                                               <Datatype>
+                                                       <intersectionOf>
+                                                               <resource name="rdf:PlainLiteral"/>
+                                                               <Datatype>
+                                                                       <datatypeComplementOf>
+                                                                               <resource name="xsd:string"/>
+                                                                       </datatypeComplementOf>
+                                                               </Datatype>
+                                                       </intersectionOf>
+                                               </Datatype>
+                                       </someValuesFrom>
+                               </Restriction>
+                       </complementOf>
+               </Class>
        </domain>
        <range>
                <resource name="xsd:language"/>
        </domain>
        <range>
                <resource name="xsd:language"/>
index 0265f85d9ffe77e7887a69b53786bef2e5f00eca..20856c61cbdc04d222bc1b34c1f898fb864b7da5 100644 (file)
@@ -11,8 +11,8 @@ SPDX-License-Identifier: CC0-1.0
                        The media type of this thing.
                </p>
                <p>
                        The media type of this thing.
                </p>
                <p>
-                       For things which <ref target="awol:body">have a body</ref>, the media type is the type of that body.
-                       For things which <ref target="awol:src">have a source</ref>, the media type is the type of the source.
+                       For <ref target="awol:Content">Content</ref> which <ref target="awol:body">has a body</ref>, the media type is the type of that body.
+                       For <ref target="awol:Content">Content</ref> which <ref target="awol:src">has a source</ref>, the media type is the type of the source.
                        For <ref target="awol:Link">Links</ref>, the media type is that of the thing being <ref target="awol:to">linked to</ref>.
                </p>
                <p>
                        For <ref target="awol:Link">Links</ref>, the media type is that of the thing being <ref target="awol:to">linked to</ref>.
                </p>
                <p>
index d29d77273ec681b9b3897438bec4026c3905267f..c2ac17df9dcd81d0cc03945f4428df5fc90e365b 100644 (file)
@@ -8,17 +8,16 @@ SPDX-License-Identifier: CC0-1.0
        <label xml:lang="en">has source</label>
        <comment xml:lang="en">
                <p>
        <label xml:lang="en">has source</label>
        <comment xml:lang="en">
                <p>
-                       The resource which provides the body of this thing.
+                       The <ref target="foaf:Document">Document</ref> which provides the body of this <ref target="awol:Content">Content</ref>.
                </p>
        </comment>
        <isDefinedBy>
                <SpecificResource source="(AWOL)" fragment="src"/>
        </isDefinedBy>
        <domain>
                </p>
        </comment>
        <isDefinedBy>
                <SpecificResource source="(AWOL)" fragment="src"/>
        </isDefinedBy>
        <domain>
-               <Class>
-                       <complementOf>
-                               <resource name="awol:Link"/>
-                       </complementOf>
-               </Class>
+               <resource name="awol:Content"/>
        </domain>
        </domain>
+       <range>
+               <resource name="foaf:Document"/>
+       </range>
 </ObjectProperty>
 </ObjectProperty>
This page took 0.091791 seconds and 4 git commands to generate.