1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
|
%{
Ousía -- Standard Ontology Library
Copyright (C) 2015 Benjamin Paaßen, Andreas Stöckel
This file is licensed under the Creative CommonsAttribution-ShareAlike 4.0
International (CC BY-SA 4.0) license.
See http://creativecommons.org/licenses/by-sa/4.0/ for more information.
}%
%{!
The "meta" ontology contains various structures that can be used within meta
data as well as top-level meta-classes that may be subclassed by
higher-level ontologies. This ontology should not be imported by the user
directly.
\author{Andreas Stöckel}{astoecke@techfak.uni-bielefeld.de}
}%
\begin{ontology#meta}
\import[ontology]{./base.osml}
%{!
The meta_types typesystem specifies types that are used throughout the
meta domain.
}%
\begin{typesystem#meta_types}
%{!
Used to specify the type of a "name".
TODO: Are there other name types? E.g. search Wikidata or other sources
like the vCard standard or microformats.org.
}%
\enum#name_type{
%{!
Specifies the name as the "official" name, as it is e.g. written in
the passport of this persion. The "official" name is the default
name type.
}%
\entry{official}
%{!
Specifies the name as the name under which a person was born. This
name should not reflect later changes as they occur e.g. because of
marriage.
}%
\entry{birthname}
%{!
Name used e.g. to identify a person on the internet or as called in
its peergroup.
}%
\entry{nickname}
%{!
Name e.g. used by artist who do not want to use their real name to
be published.
}%
\entry{pseudonym}
%{
Indicates the the name is an abbreviation of the actual name.
}%
\entry{short}
}
\end{typesystem}
%{!
Everything that may be located inside a generic meta field should be
subclassed from meta_property
}%
\struct#meta_property
%{
Should be used to specify the title of a piece of work. This field should
not be used if the element that is being described already has a "title" or
"heading" field.
}%
\struct#title[isa=meta_property]{
\field{
\childRef[ref=inline]
}
}
%{
Should be used to specify where the entity at hand was copied from.
}%
\struct#source[isa=meta_property,cardinality={0-1}]{
\field{
\childRef[ref=inline]
}
}
%{
Should be used to specify the license of the work.
}%
\struct#license[isa=meta_property]{
%{!
Url where the verbose license text can be found.
}%
\primitive#url[type=string,subtree=true,optional=true]
%{!
Name of the license
}%
\field#descriptor{
\childRef[ref=license_descriptor]
}
}
\struct#license_descriptor
\struct#generic_license[isa=license_descriptor,transparent=true]{
\primitive[type=string]
}
\struct#creative_commons_license[isa=license_descriptor]{
\attributes{
\attribute#version[type=string]
\attribute#country[type=string,default="international"]
}
}
\struct#cc_0[isa=creative_commons_license]
\struct#cc_by[isa=creative_commons_license]
\struct#cc_by_sa[isa=creative_commons_license]
\struct#cc_by_nd[isa=creative_commons_license]
\struct#cc_by_nc[isa=creative_commons_license]
\struct#cc_by_nc_sa[isa=creative_commons_license]
\struct#cc_by_nc_nd[isa=creative_commons_license]
%{!
Date specifying the creation date of an entity. Use "published"
TODO: Replace with parsing struct type
}%
\struct#date[transparent=true,cardinality={0-1}]{
\primitive[type=string]
}
%{
Structure used to define abstract persons. This class should not be used
directly. Use one of the subclasses "author" or "artist" (or one of its
subclasses instead).
}%
\struct#person{
\field{
\childRef[ref=person_property]
}
}
\struct#person_property
\struct#name[isa=person_property,transparent=true]{
\attributes{
\attribute#type[type=name_type, default=official]
}
\primitive#first[type=string,optional=true,subtree=true]
\primitive#last[type=string,optional=true,subtree=true]
\primitive#second[type=string,optional=true,subtree=true]
}
%{
Structure used to specify the authors of an entity. Please note that there
is a subtle difference between an "author" and an "artist". In this
definition an author is someone who produced a work of text. The "artist"
structure is used for everything else.
}%
\struct#authors[isa=meta_property,transparent=true,cardinality={0-1}]{
\field{
\childRef[ref=author]
}
}
%{
Structure used to specify one of the authors of a piece of work.
}%
\struct#author[isa=person]{
\attributes{
%{!
Should be set to true if this is a primary author of the work at
hand.
}%
\attribute#primary[type=bool, default=false]
}
}
%{!
Structure used to specify the creators of a piece of art.
}%
\struct#artists[isa=meta_property,transparent=true,cardinality={0-1}]{
\field{
\childRef[ref=artist]
}
}
%{!
Generic person that creates a piece of work.
}%
\struct#artist[isa=person]
%{
Artist who drew a painting or a sketch.
}%
\struct#painter[isa=artist]
%{
Artist who created a photograph (the person ultimately shooting the photo).
}%
\struct#photographer[isa=artist]
%{!
Artist who created a sculpture.
}%
\struct#sculpter[isa=artist]
%{!
Artist who composed a piece of music.
}%
\struct#composer[isa=artist]
%{!
Artist who conducted an orchestra.
}%
\struct#conductor[isa=artist]
%{!
Artist who sings in a band or in an orchestra.
}%
\struct#singer[isa=artist]
%{!
Used for someone playing an instrument e.g. inside an orchestra or a band.
The instrument the musician plays may be specified.
}%
\struct#musician[isa=artist]{
\attributes{
\attribute#instrument[type=string,default=""]
}
}
\end{ontology}
|