%{ 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}