diff options
Diffstat (limited to 'mockup/meta.osml')
-rw-r--r-- | mockup/meta.osml | 243 |
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} + |