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