summaryrefslogtreecommitdiff
path: root/mockup/meta.osml
diff options
context:
space:
mode:
Diffstat (limited to 'mockup/meta.osml')
-rw-r--r--mockup/meta.osml243
1 files changed, 243 insertions, 0 deletions
diff --git a/mockup/meta.osml b/mockup/meta.osml
new file mode 100644
index 0000000..dc728e3
--- /dev/null
+++ b/mockup/meta.osml
@@ -0,0 +1,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}
+