]> Lady’s Gitweb - Vocab/blob - DTD
Make pcdm:File a siocactions:DigitalArtifact
[Vocab] / DTD
1 <?xml encoding="UTF-8"?>
2 <!--
3 SPDX-FileCopyrightText: 2024, 2025 Lady <https://www.ladys.computer/about/#lady>
4 SPDX-License-Identifier: CC0-1.0
5 -->
6
7 <!-- Text Markup -->
8 <!ENTITY % blocks '(list|p|table)+'>
9 <!ENTITY % inlines 'code|em|ptr|ref|resource|strong|value'>
10 <!ELEMENT p (#PCDATA|%inlines;|note)*>
11 <!ELEMENT code (#PCDATA)>
12 <!ELEMENT em (#PCDATA)>
13 <!ELEMENT strong (#PCDATA)>
14 <!ELEMENT var (#PCDATA)>
15
16 <!-- Notes -->
17 <!ELEMENT note (%blocks;)>
18 <!ATTLIST note
19 n CDATA #REQUIRED
20 >
21
22 <!-- Links -->
23 <!ELEMENT ptr EMPTY>
24 <!ATTLIST ptr
25 target CDATA #REQUIRED
26 type (class|property|individual) #IMPLIED
27 >
28 <!ELEMENT ref (#PCDATA)>
29 <!ATTLIST ref
30 target CDATA #REQUIRED
31 type (class|property|individual) #IMPLIED
32 >
33
34 <!-- Tables -->
35 <!ELEMENT table (row)+>
36 <!ELEMENT row (cell)+>
37 <!ATTLIST row
38 role (label|data) "data"
39 >
40 <!ELEMENT cell (#PCDATA|%inlines;)*>
41 <!ATTLIST cell
42 role (label|data) "data"
43 >
44
45 <!-- Lists -->
46 <!ELEMENT list (item)*>
47 <!ATTLIST list
48 rend (bulleted|numbered) "bulleted"
49 >
50 <!ELEMENT item (%blocks;)>
51
52 <!-- Anno -->
53 <!ELEMENT SpecificResource EMPTY><!-- this actually becomes anno:ResourceSelection, not anno:SpecificResource, but changing the name to match would require editing a lot of files -->
54 <!ATTLIST SpecificResource
55 source CDATA #REQUIRED
56 fragment CDATA #IMPLIED
57 >
58
59 <!-- Skos -->
60 <!ELEMENT broader (resource)>
61 <!ELEMENT inScheme (resource)>
62 <!ELEMENT narrower (resource)>
63
64 <!-- Shacl -->
65 <!ELEMENT declare (prefix,namespace)>
66 <!ELEMENT namespace (#PCDATA)>
67 <!ELEMENT prefix (#PCDATA)>
68
69 <!-- Annotations -->
70 <!ENTITY % annotations '(label*,comment*,isDefinedBy*)'>
71 <!ELEMENT comment (%blocks;)>
72 <!ATTLIST comment
73 xml:lang NMTOKEN #REQUIRED
74 >
75 <!ELEMENT isDefinedBy (resource|SpecificResource)>
76 <!ELEMENT label (#PCDATA)>
77 <!ATTLIST label
78 xml:lang NMTOKEN #REQUIRED
79 >
80
81 <!-- Helper Elements -->
82 <!ELEMENT resource (#PCDATA)>
83 <!ATTLIST resource
84 name CDATA #REQUIRED
85 >
86 <!ELEMENT value (#PCDATA)>
87 <!ATTLIST value
88 datatype CDATA #IMPLIED
89 xml:lang NMTOKEN #IMPLIED
90 >
91
92 <!-- Axioms -->
93 <!ELEMENT allValuesFrom (Class|Datatype|Restriction|resource)>
94 <!ELEMENT assertionProperty (resource)>
95 <!ELEMENT cardinality (#PCDATA)>
96 <!ELEMENT complementOf (Class|Restriction|resource)>
97 <!ELEMENT datatypeComplementOf (Datatype|resource)>
98 <!ELEMENT differentFrom (resource)>
99 <!ELEMENT disjointUnionOf (Class|Restriction|resource)+>
100 <!ELEMENT disjointWith (Class|Datatype|Restriction|resource)>
101 <!ELEMENT domain (Class|Restriction|resource)>
102 <!ELEMENT equivalentClass (Class|Datatype|Restriction|resource)>
103 <!ELEMENT equivalentProperty (DatatypeProperty|ObjectProperty|resource)>
104 <!ELEMENT hasKey (DatatypeProperty|ObjectProperty|resource)+>
105 <!ELEMENT hasSelf EMPTY>
106 <!ELEMENT hasValue (resource|value)>
107 <!ELEMENT intersectionOf (Class|Datatype|Restriction|resource)+>
108 <!ELEMENT inverseOf (Class|Datatype|Restriction|resource)>
109 <!ELEMENT maxCardinality (#PCDATA)>
110 <!ELEMENT maxQualifiedCardinality (#PCDATA)>
111 <!ELEMENT members (Class|Restriction|resource)+>
112 <!ELEMENT minCardinality (#PCDATA)>
113 <!ELEMENT minQualifiedCardinality (#PCDATA)>
114 <!ELEMENT onClass (Class|Restriction|resource)>
115 <!ELEMENT onDataRange (Datatype|resource)>
116 <!ELEMENT onDatatype (resource)>
117 <!ELEMENT onProperty (ObjectProperty|DatatypeProperty|resource)>
118 <!ELEMENT oneOf (Class|Datatype|Restriction|resource)+>
119 <!ELEMENT propertyChainAxiom (ObjectProperty|resource)+>
120 <!ELEMENT propertyDisjointWith (DatatypeProperty|ObjectProperty|resource)>
121 <!ELEMENT qualifiedCardinality (#PCDATA)>
122 <!ELEMENT range (Class|Datatype|Restriction|resource)>
123 <!ELEMENT sameAs (resource)>
124 <!ELEMENT someValuesFrom (Class|Datatype|Restriction|resource)>
125 <!ELEMENT sourceIndividual (resource)>
126 <!ELEMENT subClassOf (Class|Restriction|resource)>
127 <!ELEMENT subPropertyOf (DatatypeProperty|ObjectProperty|resource)>
128 <!ELEMENT superClassOf (Class|Restriction)> <!-- inverse subClassOf; only use for anonymous subclasses -->
129 <!ELEMENT targetIndividual (resource)>
130 <!ELEMENT type (Class|Restriction|resource)>
131 <!ELEMENT unionOf (Class|Datatype|Restriction|resource)+>
132 <!ELEMENT withRestrictions (langRange|length|maxExclusive|maxInclusive|maxLength|minExclusive|minInclusive|minLength|pattern)+>
133
134 <!-- Restrictions -->
135 <!ELEMENT langRange (#PCDATA)>
136 <!ELEMENT length (#PCDATA)>
137 <!ELEMENT maxExclusive (#PCDATA)>
138 <!ATTLIST maxExclusive
139 datatype CDATA #REQUIRED
140 >
141 <!ELEMENT maxInclusive (#PCDATA)>
142 <!ATTLIST maxInclusive
143 datatype CDATA #REQUIRED
144 >
145 <!ELEMENT maxLength (#PCDATA)>
146 <!ELEMENT minExclusive (#PCDATA)>
147 <!ATTLIST minExclusive
148 datatype CDATA #REQUIRED
149 >
150 <!ELEMENT minInclusive (#PCDATA)>
151 <!ATTLIST minInclusive
152 datatype CDATA #REQUIRED
153 >
154 <!ELEMENT minLength (#PCDATA)>
155 <!ELEMENT pattern (#PCDATA)>
156
157 <!-- Axiom Classes -->
158 <!ELEMENT AllDifferent (members)>
159 <!ELEMENT AllDisjointClasses (members)>
160 <!ELEMENT AllDisjointProperties (members)>
161 <!ELEMENT NegativeObjectPropertyAssertion (assertionProperty,sourceIndividual,targetIndividual)>
162
163 <!-- Restrictions -->
164 <!ELEMENT Restriction (onProperty,(((minQualifiedCardinality|maxQualifiedCardinality|qualifiedCardinality),(onClass|onDataRange))|allValuesFrom|cardinality|hasValue|hasSelf|minCardinality|maxCardinality|someValuesFrom))>
165
166 <!-- Declarations -->
167 <!ELEMENT Class (%annotations;,((equivalentClass*,disjointUnionOf*,subClassOf*,superClassOf*,disjointWith*,hasKey*)|complementOf|intersectionOf|oneOf|unionOf))>
168 <!ATTLIST Class
169 name CDATA #IMPLIED
170 status (plumbing|unstable|testing|stable|archaic) #IMPLIED
171 >
172 <!ELEMENT Datatype (%annotations;,(equivalentClass|datatypeComplementOf|intersectionOf|unionOf|(onDatatype,withRestrictions)))> <!-- oneOf not supported; lists of literals are difficult -->
173 <!ATTLIST Datatype
174 name CDATA #IMPLIED
175 status (plumbing|unstable|testing|stable|archaic) #IMPLIED
176 >
177 <!ELEMENT AnnotationProperty (%annotations;,subPropertyOf*,domain*,range*)>
178 <!ATTLIST AnnotationProperty
179 name CDATA #IMPLIED
180 status (plumbing|unstable|testing|stable|archaic) #IMPLIED
181 >
182 <!ELEMENT ObjectProperty (%annotations;,equivalentProperty*,subPropertyOf*,inverseOf*,propertyDisjointWith*,propertyChainAxiom*,domain*,range*)>
183 <!ATTLIST ObjectProperty
184 asymmetric (no|yes) "no"
185 functional (no|yes) "no"
186 inverseFunctional (no|yes) "no"
187 irreflexive (no|yes) "no"
188 name CDATA #IMPLIED
189 reflexive (no|yes) "no"
190 status (plumbing|unstable|testing|stable|archaic) #IMPLIED
191 symmetric (no|yes) "no"
192 transitive (no|yes) "no"
193 >
194 <!ELEMENT DatatypeProperty (%annotations;,equivalentProperty*,subPropertyOf*,propertyDisjointWith*,domain*,range*)>
195 <!ATTLIST DatatypeProperty
196 functional (no|yes) "no"
197 name CDATA #IMPLIED
198 status (plumbing|unstable|testing|stable|archaic) #IMPLIED
199 >
200 <!ELEMENT NamedIndividual (%annotations;,type*,sameAs*,differentFrom*,inScheme*,broader*,narrower*)>
201 <!ATTLIST NamedIndividual
202 name CDATA #IMPLIED
203 status (plumbing|unstable|testing|stable|archaic) #IMPLIED
204 >
205
206 <!-- Ontology -->
207 <!ELEMENT Ontology (%annotations;,declare*)>
208 <!ATTLIST Ontology
209 name CDATA #IMPLIED
210 >
This page took 0.057998 seconds and 5 git commands to generate.