lib/rdf/vocab/ebucore.rb in rdf-vocab-2.2.9 vs lib/rdf/vocab/ebucore.rb in rdf-vocab-3.0.0

- old
+ new

@@ -8,23 +8,25 @@ # class EBUCore < RDF::StrictVocabulary # end class EBUCore < RDF::StrictVocabulary("http://www.ebu.ch/metadata/ontologies/ebucore/ebucore#") # Ontology definition - ontology :"http://www.ebu.ch/metadata/ontologies/ebucore/ebucore", - :"cc:licence" => %(http://creativecommons.org/licenses/by-sa/3.0/).freeze, - :"dc11:contributor" => [%(Adam Wead, Penn State University).freeze, %(Casey Davis, WGBH).freeze, %(Chuck McCallum, WGBH).freeze, %(Cliff Ingham, City of Bloomington).freeze, %(Dalia R. Levine, HBO).freeze, %(Drew Myers, WGBH).freeze, %(Glenn Clatworthy, PBS).freeze, %(Jack Brighton, WILL Public Media).freeze, %(Julie Hardesty, Indian University Library).freeze, %(Kara van Malssen, AV Preserve).freeze, %(Karen Cariani, WGBH).freeze, %(Laurence Cook, metaCirque).freeze, %(Michael J. Giarlo, Penn State University).freeze, %(Peggy Griesinger, George Mason University Libraries).freeze, %(Rebecca Fraimow, WGBH).freeze, %(Rebecca Guenther, Rebecca Guenther Consulting).freeze, %(Sadie Roosa, WGBH).freeze, %(Valerie J. Miller, PBS).freeze], - :"dc11:description" => [%(Guidelines: for the purpose of flexibility and interoperability with a wider range of implementations, some properties purposefully do not have a range and accept either a resource or a literal. When a resource is used, it is recommended to reuse objects defined in the model \(e.g. pair hasEvent/Event or hasRole/Role\). Example 1: x hasRole 'actor'. Example 2: x hasRole _:Role_1 \(a reference to the Concept Id from a SKOS Role vocabulary defined in the ontology\).).freeze, %(Note to implementers: The EBUCore ontology is used by a variety of users with different needs. Several EBUCore properties have no range to allow different implementations using entities or literals. As an implementer, it is your choice to go for one or the other for each property to have consistent expectations when parsing individuals. EBUCore also provides different classes defined as subclasses of skos:Concept. You can use these classes as entities in range of several properties currently left without range. EBUCore is expressed in RDF in order to facilitate such modelling and flexibility. As a consequence, propoerties appear in the documentation as annotation properties.).freeze, %(The EBUCore has been designed to make users benefit from the flexibility of RDF to adapt the names of Classes and properties to their respective needs. This means users are welcome to add their own subclasses \(e.g. to define the most appropriate BusinessObjects or Resources or Agents\) and subproperties.).freeze, %(The development of the EBUCore ontology is a joint effort of the EBUCore and PBCore communities.).freeze], - :"dc11:rights" => %(Copyright 2015 EBU).freeze, - :"dc11:title" => %(EBUCore - the Dublin Core for media).freeze, - :"http://purl.org/vocab/vann/preferredNamespaceUri" => %(http://www.ebu.ch/metadata/ontologies/ebucore/ebucore#).freeze, - :"http://spinrdf.org/spin#imports" => %(http://topbraid.org/spin/owlrl-all).freeze, - :"owl:imports" => %(http://www.w3.org/2004/02/skos/core).freeze, - :"owl:priorVersion" => %(http://www.ebu.ch/metadata/ontologies/ebucore/20150804/ebucore_2015_08_04.rdf).freeze, - :"owl:versionInfo" => [%(Add CreativeCommons subclass to Rights.).freeze, %(Add FIMS Classes: BMContent, BMEssence, BMTemplate, etc.).freeze, %(Add Identifier as a class.).freeze, %(Add event start and end times and dateTimes).freeze, %(Add for each class an ids, a name a description when missing).freeze, %(Add frameHeight and frameHeightUnit).freeze, %(Add hasAudioCodec and hasVideoCodec).freeze, %(Add hasAudioTrack and hasVideoTrack).freeze, %(Add numberOfAudioTracks and numberOfVideoTracks).freeze, %(Add resourceType property.).freeze, %(Add videoEncodingLevel and audioEncodingLevel properties as subproperties of encodingLevel).freeze, %(Add videoEncodingProfile and audioEncodingProfile properties as subproperties of encodingProfile).freeze, %(Added eventPeriod property.).freeze, %(Added locationCode and hasLocationPicture).freeze, %(Added social medias: agentFacebook, agentTwitter, agentInstagram).freeze, %(Added two Classes: Action and Emotion.).freeze, %(Align with CCDM properties touching EBUCore classes).freeze, %(Alignment with EBUCore schema: add missing rightsClearanceFlag).freeze, %(CORRECTION: change PublicationPlanning into PublicationPlan).freeze, %(Clean the definition of equivalent classes and properties from external vocabularies like foaf: and core:).freeze, %(Extend bitRate properties with audio and video bitRate properties).freeze, %(Harmonisation with EBU CCDM: businessObjectId, businessObjectType, editorialObjectId, editorialObjectType, storageId, storageType .).freeze, %(Improved the relations around the notions of "hasContributor", "Character", "Cast".).freeze, %(Introduce Person as a superClass of Contact and rename Contact properties accordingly).freeze, %(Introduce new classes Artefact/Props/Food...).freeze, %(Introduced new TextLine Class and associated properties for timed text, annotation, etc.).freeze, %(Manage addresses as locations).freeze, %(Sanity check on property domain and ranges and definitions or labels).freeze, %(Support of specific timecode drop frame).freeze, %(Version 1.8).freeze, %(seasonNumber, Episode and episodeNumber.).freeze], + ontology :"http://www.ebu.ch/metadata/ontologies/ebucore/ebucore#", + "cc:licence": "http://creativecommons.org/licenses/by-sa/3.0/".freeze, + "dc11:contributor": ["Adam Wead, Penn State University".freeze, "Are Tverberg, TV2".freeze, "Casey Davis, WGBH".freeze, "Cedric Klein, Perfect Memory".freeze, "Christophe Debruyne, RIA".freeze, "Chuck McCallum, WGBH".freeze, "Cliff Ingham, City of Bloomington".freeze, "Dalia R. Levine, HBO".freeze, "Drew Myers, WGBH".freeze, "Glenn Clatworthy, PBS".freeze, "Guillaume Rachez, Perfect Memory".freeze, "Hugo Cordier, SetKeeper".freeze, "Hugo Manguinhas, Europeana".freeze, "Jack Brighton, WILL Public Media".freeze, "Julie Hardesty, Indian University Library".freeze, "Jürgen Grupp, SRG".freeze, "Kara van Malssen, AV Preserve".freeze, "Karen Cariani, WGBH".freeze, "Kim Viljanen, YLE".freeze, "Knut-Olav Hoven, NRK".freeze, "Laurence Cook, metaCirque".freeze, "Mark Guelbahar, IRT".freeze, "Matthieu Parmentier, francetelevisions".freeze, "Michael J. Giarlo, Penn State University".freeze, "Peggy Griesinger, George Mason University Libraries".freeze, "Rebecca Fraimow, WGBH".freeze, "Rebecca Guenther, Rebecca Guenther Consulting".freeze, "Robert Engels, NRK".freeze, "Sadie Roosa, WGBH".freeze, "Tormod Vaervagen, NRK".freeze, "Valentine Charles, Europeana".freeze, "Valerie J. Miller, PBS".freeze, "Vincent Dabouineau, francetelevisions".freeze], + "dc11:creator": "Jean Pierre Evain, EBU".freeze, + "dc11:description": ["Guidelines: for the purpose of flexibility and interoperability with a wider range of implementations, some properties purposefully do not have a range and accept either a resource or a literal. When a resource is used, it is recommended to reuse objects defined in the model (e.g. pair hasEvent/Event or hasRole/Role). Example 1: x hasRole 'actor'. Example 2: x hasRole _:Role_1 (a reference to the Concept Id from a SKOS Role vocabulary defined in the ontology).".freeze, "Note to implementers: The EBUCore ontology is used by a variety of users with different needs. Several EBUCore properties have no range to allow different implementations using entities or literals. As an implementer, it is your choice to go for one or the other for each property to have consistent expectations when parsing individuals. EBUCore also provides different classes defined as subclasses of skos:Concept. You can use these classes as entities in range of several properties currently left without range. EBUCore is expressed in RDF in order to facilitate such modelling and flexibility. As a consequence, propoerties appear in the documentation as annotation properties.".freeze, "The EBUCore has been designed to make users benefit from the flexibility of RDF to adapt the names of Classes and properties to their respective needs. This means users are welcome to add their own subclasses (e.g. to define the most appropriate BusinessObjects or Resources or Agents) and subproperties.".freeze, "The development of the EBUCore ontology is a joint effort of the EBUCore and PBCore communities.".freeze], + "dc11:publisher": "European Broadcasting Union (EBU)".freeze, + "dc11:rights": "Copyright 2015 EBU".freeze, + "dc11:title": "EBUCore - the Dublin Core for media".freeze, + "http://purl.org/vocab/vann/preferredNamespaceUri": "http://www.ebu.ch/metadata/ontologies/ebucore/ebucore#".freeze, + "http://spinrdf.org/spin#imports": "http://topbraid.org/spin/owlrl-all".freeze, + "owl:imports": "http://www.w3.org/2004/02/skos/core".freeze, + "owl:priorVersion": "http://www.ebu.ch/metadata/ontologies/ebucore/20150804/ebucore_2015_08_04.rdf".freeze, + "owl:versionInfo": ["Add CreativeCommons subclass to Rights.".freeze, "Add FIMS Classes: BMContent, BMEssence, BMTemplate, etc.".freeze, "Add Identifier as a class.".freeze, "Add event start and end times and dateTimes".freeze, "Add for each class an ids, a name a description when missing".freeze, "Add frameHeight and frameHeightUnit".freeze, "Add hasAudioCodec and hasVideoCodec".freeze, "Add hasAudioTrack and hasVideoTrack".freeze, "Add numberOfAudioTracks and numberOfVideoTracks".freeze, "Add resourceType property.".freeze, "Add videoEncodingLevel and audioEncodingLevel properties as subproperties of encodingLevel".freeze, "Add videoEncodingProfile and audioEncodingProfile properties as subproperties of encodingProfile".freeze, "Added eventPeriod property.".freeze, "Added locationCode and hasLocationPicture".freeze, "Added social medias: agentFacebook, agentTwitter, agentInstagram".freeze, "Added two Classes: Action and Emotion.".freeze, "Align with CCDM properties touching EBUCore classes".freeze, "Alignment with EBUCore schema: add missing rightsClearanceFlag".freeze, "CORRECTION: change PublicationPlanning into PublicationPlan".freeze, "Clean the definition of equivalent classes and properties from external vocabularies like foaf: and core:".freeze, "Extend bitRate properties with audio and video bitRate properties".freeze, "Harmonisation with EBU CCDM: businessObjectId, businessObjectType, editorialObjectId, editorialObjectType, storageId, storageType .".freeze, "Improved the relations around the notions of \"hasContributor\", \"Character\", \"Cast\".".freeze, "Introduce Person as a superClass of Contact and rename Contact properties accordingly".freeze, "Introduce new classes Artefact/Props/Food...".freeze, "Introduced new TextLine Class and associated properties for timed text, annotation, etc.".freeze, "Manage addresses as locations".freeze, "Sanity check on property domain and ranges and definitions or labels".freeze, "Support of specific timecode drop frame".freeze, "Version 1.8".freeze, "seasonNumber, Episode and episodeNumber.".freeze], type: "owl:Ontology".freeze, - :"vs:term_status" => %(stable).freeze + "vs:term_status": "stable".freeze # Class definitions term :AccessConditions, comment: %(The conditions under which content can be accessed.).freeze, label: "Access conditions".freeze, @@ -184,11 +186,11 @@ \(descriptive textual metadata or audio/video tag\), a tag \(time related in audiovisual media resources\), or an audiovisual media resource \(optionally composed of one or more fragment / part and / or audio, video data tracks\). Other types of BusinessObjects may be defined as subclasses.).freeze, label: "Business Object".freeze, - :"owl:disjointWith" => %(ebucore:Resource).freeze, + "owl:disjointWith": "ebucore:Resource".freeze, subClassOf: "owl:Thing".freeze, type: "rdfs:Class".freeze term :Captioning, comment: %(To signal the presence of hard of hearing captioning.).freeze, @@ -412,12 +414,12 @@ type: "rdfs:Class".freeze term :Event, comment: [%(Additional types of event shall be defined as new sub-classes of event.).freeze, %(An event related to the media resource, e.g. depicted in the resource \(possibly fictional\), etc.).freeze], + equivalentClass: "http://www.bbc.co.uk/ontologies/coreconcepts/Event".freeze, label: "Event".freeze, - :"owl:equivalentClass" => %(http://www.bbc.co.uk/ontologies/coreconcepts/Event).freeze, subClassOf: "owl:Thing".freeze, type: "rdfs:Class".freeze term :ExploitationIssues, comment: %(To highlight potential exploitation issues.).freeze, @@ -571,12 +573,12 @@ comment: [%(A location related to the media resource, e.g. depicted in the resource \(possibly fictional\) or where the resource was created \(shooting location\), etc.).freeze, %(A type of location is defined as a sub-class of location.).freeze, %(This is provided as free text in an annotation label or as an identifier pointing to a term in a classification scheme.).freeze], + equivalentClass: "http://www.bbc.co.uk/ontologies/coreconcepts/Place".freeze, label: "Location".freeze, - :"owl:equivalentClass" => %(http://www.bbc.co.uk/ontologies/coreconcepts/Place).freeze, subClassOf: "owl:Thing".freeze, type: "rdfs:Class".freeze term :Logo, comment: %(A Logo allows to visually identify an organisation, publicationService, publicationChannel, or ratings / @@ -646,12 +648,12 @@ label: "Open subtitling".freeze, subClassOf: "ebucore:Subtitling".freeze, type: "rdfs:Class".freeze term :Organisation, comment: %(An organisation \(business, corporation, federation, etc.\) or moral agent \(gvernment body\).).freeze, + equivalentClass: ["foaf:Organization".freeze, "http://www.bbc.co.uk/ontologies/coreconcepts/Organisation".freeze], label: "Organisation".freeze, - :"owl:equivalentClass" => [%(foaf:Organization).freeze, %(http://www.bbc.co.uk/ontologies/coreconcepts/Organisation).freeze], subClassOf: "ebucore:Agent".freeze, type: "rdfs:Class".freeze term :OriginalLanguage, comment: %(The original language in which the BusinessObject or Resource has been created and released. This is provided as free text @@ -675,23 +677,23 @@ label: "Party".freeze, subClassOf: "ebucore:Agent".freeze, type: "rdfs:Class".freeze term :Person, comment: %(To describe a Person.).freeze, + equivalentClass: ["foaf:Person".freeze, "http://www.bbc.co.uk/ontologies/coreconcepts/Person".freeze], label: "Person".freeze, - :"owl:equivalentClass" => [%(foaf:Person).freeze, %(http://www.bbc.co.uk/ontologies/coreconcepts/Person).freeze], subClassOf: "ebucore:Agent".freeze, type: "rdfs:Class".freeze term :Pictogram, comment: %(A visual / graphical representation of a concept.).freeze, label: "Pictogram".freeze, subClassOf: "ebucore:Picture".freeze, type: "rdfs:Class".freeze term :Picture, comment: %(A photography, a logo, a pictogram, etc.).freeze, + equivalentClass: "foaf:img".freeze, label: "Picture".freeze, - :"owl:equivalentClass" => %(foaf:img).freeze, subClassOf: "ebucore:Resource".freeze, type: "rdfs:Class".freeze term :PictureDisplayFormat, label: "Picture display format code".freeze, subClassOf: "ebucore:Format".freeze, @@ -702,12 +704,12 @@ label: "Programme".freeze, subClassOf: "ebucore:EditorialObject".freeze, type: "rdfs:Class".freeze term :Props, comment: %(To identify and describe Props used in productions \(e.g. vehicles, objects of various shapes and brand and purpose, etc.\).).freeze, + equivalentClass: "foaf:Agent".freeze, label: "Props".freeze, - :"owl:equivalentClass" => %(foaf:Agent).freeze, subClassOf: "ebucore:Artefact".freeze, type: "rdfs:Class".freeze term :PublicationChannel, comment: %(The name of the channel through which a Resource has been published as a PublicationEvent. A PublicationChannel can use a @@ -747,18 +749,18 @@ comment: [%(All the information about the rating/evaluation given to a media resource by an Agent i.e. a person/Contact or Organisation.).freeze, %(This is provided as free text in an annotation label or as an identifier pointing to a term in a classification scheme.).freeze], label: "Rating".freeze, - :"owl:disjointWith" => [%(ebucore:Asset).freeze, %(ebucore:BusinessObject).freeze, %(ebucore:PublicationEvent).freeze, %(ebucore:Resource).freeze], + "owl:disjointWith": ["ebucore:Asset".freeze, "ebucore:BusinessObject".freeze, "ebucore:PublicationEvent".freeze, "ebucore:Resource".freeze], subClassOf: "owl:Thing".freeze, type: "rdfs:Class".freeze term :Resource, comment: %(A manifestation of a BusinessObject.).freeze, label: "Resource".freeze, - :"owl:disjointWith" => %(ebucore:BusinessObject).freeze, + "owl:disjointWith": "ebucore:BusinessObject".freeze, subClassOf: "owl:Thing".freeze, type: "rdfs:Class".freeze term :Rights, comment: %(To provide information on the rights, including intellectual property, related to a BusinessObject or Resource.).freeze, @@ -766,11 +768,10 @@ subClassOf: "owl:Thing".freeze, type: "rdfs:Class".freeze term :RightsClearance, comment: %(To signal that rights have been cleared \(or not\)).freeze, - label: "RightsClearance".freeze, subClassOf: "ebucore:Rights".freeze, type: "rdfs:Class".freeze term :Role, comment: %(To define the role / action of an agent. This is provided as free text in an annotation label or as an identifier pointing to a term @@ -885,12 +886,12 @@ label: "TV Programme".freeze, subClassOf: "ebucore:Programme".freeze, type: "rdfs:Class".freeze term :Team, comment: %(To define a Team.).freeze, + equivalentClass: "foaf:Group".freeze, label: "Team".freeze, - :"owl:equivalentClass" => %(foaf:Group).freeze, subClassOf: "ebucore:Agent".freeze, type: "rdfs:Class".freeze term :Template, comment: %(An Essence defined as a Template with all associated technical parameters.).freeze, label: "Template".freeze, @@ -1082,10 +1083,14 @@ label: "Activity start date".freeze, range: "xsd:date".freeze, type: "rdf:Property".freeze property :adultContent, comment: %(A flag to signal adult content.).freeze, + domain: term( + unionOf: list("ebucore:EditorialObject".freeze, "ebucore:Resource".freeze), + type: "owl:Class".freeze + ), label: "adult content".freeze, range: "xsd:boolean".freeze, type: "rdf:Property".freeze property :affiliationEndDate, comment: %(The date when a Contact left an Organisation).freeze, @@ -1118,12 +1123,12 @@ type: "rdf:Property".freeze property :agentEmailAddress, comment: %(To provide the email address of an agent \(Contact/person or organisation\).).freeze, domain: "ebucore:Agent".freeze, + equivalentProperty: "foaf:mbox".freeze, label: "Email".freeze, - :"owl:equivalentProperty" => %(foaf:mbox).freeze, range: "xsd:string".freeze, type: "rdf:Property".freeze property :agentFacebook, label: "Facebook".freeze, subPropertyOf: "ebucore:agentSocialMedia".freeze, @@ -1204,12 +1209,12 @@ type: "rdf:Property".freeze property :agentWebHomepage, comment: %(To provide the address of the webpage of an Agent \(Contact/person or Organisation\).).freeze, domain: "ebucore:Agent".freeze, + equivalentProperty: "foaf:homepage".freeze, label: "Homepage".freeze, - :"owl:equivalentProperty" => %(foaf:homepage).freeze, range: "xsd:anyURI".freeze, type: "rdf:Property".freeze property :agentWikidata, comment: %(A link to a wikidata page.).freeze, label: "Wikidata".freeze, @@ -1221,12 +1226,12 @@ range: "xsd:anyURI".freeze, subPropertyOf: "ebucore:agentSocialMedia".freeze, type: "rdf:Property".freeze property :alternativeTitle, comment: %(To provide an alternative title.).freeze, + equivalentProperty: "ma:alternativeTitle".freeze, label: "Alternative title".freeze, - :"owl:equivalentProperty" => %(ma:alternativeTitle).freeze, subPropertyOf: "dc:alternative".freeze, type: "rdf:Property".freeze property :appliesOutOf, comment: %(To define the Location \(e.g. country, region\) to which Rating and TargetAudience do NOT apply.).freeze, domain: "ebucore:Rating".freeze, @@ -1341,10 +1346,14 @@ type: "rdf:Property".freeze property :aspectRatio, comment: %(To provide the aspect ratio of a video frame or image. Several types of different aspect ration can apply to the same video image. If necessary, specialised aspect ratios can be defined as subproperties.).freeze, + domain: term( + unionOf: list("ebucore:MediaResource".freeze, "ebucore:Picture".freeze, "ebucore:VideoTrack".freeze), + type: "owl:Class".freeze + ), label: "Aspect ratio".freeze, range: "xsd:string".freeze, type: "rdf:Property".freeze property :assetDescription, comment: %(A description of an Asset.).freeze, @@ -1415,12 +1424,12 @@ type: "rdf:Property".freeze property :bitRate, comment: %(To provide the bitrate at which the MediaResource can be played in bits/second. Current bitrate if constant, and average bitrate if variable.).freeze, domain: "ebucore:MediaResource".freeze, + equivalentProperty: "ma:averageBitRate".freeze, label: "Bitrate".freeze, - :"owl:equivalentProperty" => %(ma:averageBitRate).freeze, range: "xsd:nonNegativeInteger".freeze, type: "rdf:Property".freeze property :bitRateMax, comment: %(The maximum bitrate when variable, in bits per second.).freeze, domain: "ebucore:MediaResource".freeze, @@ -1436,12 +1445,12 @@ type: "rdf:Property".freeze property :bitRateOverall, comment: %(To provide the overall bitrate at which the MediaResource can be played in bits/second. Current bitrate if constant, and average bitrate if variable.).freeze, domain: "ebucore:MediaResource".freeze, + equivalentProperty: "ma:averageBitRate".freeze, label: "Overall bitrate".freeze, - :"owl:equivalentProperty" => %(ma:averageBitRate).freeze, range: "xsd:nonNegativeInteger".freeze, type: "rdf:Property".freeze property :bookmark, comment: %(To provide a bookmark.).freeze, label: "Bookmark".freeze, @@ -1483,12 +1492,16 @@ label: "Character name".freeze, range: "xsd:string".freeze, type: "rdf:Property".freeze property :clonedTo, comment: %(Identifies relationship between a digital instantiation of a resource and its direct copy, with no generational loss.).freeze, + domain: term( + unionOf: list("ebucore:BusinessObject".freeze, "ebucore:Resource".freeze), + type: "owl:Class".freeze + ), + inverseOf: "ebucore:isClonedFrom".freeze, label: "Cloned to".freeze, - :"owl:inverseOf" => %(ebucore:isClonedFrom).freeze, range: "ebucore:Resource".freeze, type: "rdf:Property".freeze property :codecFamily, comment: %(To provide information on the product family of the Codec.).freeze, domain: "ebucore:Codec".freeze, @@ -1559,30 +1572,46 @@ label: "Date".freeze, subPropertyOf: "dc11:date".freeze, type: "rdf:Property".freeze property :dateArchived, comment: %(The date when the BusinessObject or Resource was archived.).freeze, + domain: term( + unionOf: list("ebucore:BusinessObject".freeze, "ebucore:Resource".freeze), + type: "owl:Class".freeze + ), + equivalentProperty: "ma:creationDate".freeze, label: "Archiving date".freeze, - :"owl:equivalentProperty" => %(ma:creationDate).freeze, subPropertyOf: "ebucore:date".freeze, type: "rdf:Property".freeze property :dateBroadcast, comment: %(The date when the Resource was first broadcast publicly on television or radio or via streaming.).freeze, + domain: term( + unionOf: list("ebucore:BusinessObject".freeze, "ebucore:Resource".freeze), + type: "owl:Class".freeze + ), + equivalentProperty: "ma:creationDate".freeze, label: "Broadcast date".freeze, - :"owl:equivalentProperty" => %(ma:creationDate).freeze, subPropertyOf: "ebucore:date".freeze, type: "rdf:Property".freeze property :dateCreated, comment: %(The date of creation of the Resource or BusinessObject.).freeze, + domain: term( + unionOf: list("ebucore:BusinessObject".freeze, "ebucore:Resource".freeze), + type: "owl:Class".freeze + ), + equivalentProperty: "ma:creationDate".freeze, label: "Creation date/time".freeze, - :"owl:equivalentProperty" => %(ma:creationDate).freeze, subPropertyOf: "ebucore:date".freeze, type: "rdf:Property".freeze property :dateDeleted, comment: %(The date when the BusinessObject or Resource was removed/deleted from institutional holdings.).freeze, + domain: term( + unionOf: list("ebucore:BusinessObject".freeze, "ebucore:Resource".freeze), + type: "owl:Class".freeze + ), + equivalentProperty: "ma:creationDate".freeze, label: "Deletion date".freeze, - :"owl:equivalentProperty" => %(ma:creationDate).freeze, subPropertyOf: "ebucore:date".freeze, type: "rdf:Property".freeze property :dateDigitised, comment: %(To provide the date of digitisation of the Resource.).freeze, domain: "ebucore:Resource".freeze, @@ -1590,101 +1619,117 @@ subPropertyOf: "ebucore:date".freeze, type: "rdf:Property".freeze property :dateDistributed, comment: %(The date when the Resource was first made available to the public for purchase, download, or online access.).freeze, domain: "ebucore:Resource".freeze, + equivalentProperty: "ma:creationDate".freeze, label: "Distribution date".freeze, - :"owl:equivalentProperty" => %(ma:creationDate).freeze, subPropertyOf: "ebucore:date".freeze, type: "rdf:Property".freeze property :dateIngested, comment: %(The date when the Resource was ingested/acquired in institutional holdings.).freeze, domain: "ebucore:Resource".freeze, + equivalentProperty: "ma:creationDate".freeze, label: "Ingest date".freeze, - :"owl:equivalentProperty" => %(ma:creationDate).freeze, subPropertyOf: "ebucore:date".freeze, type: "rdf:Property".freeze property :dateIssued, comment: %(To provide the date of release of the Resource.).freeze, domain: "ebucore:Resource".freeze, + equivalentProperty: "ma:releaseDate".freeze, label: "Publication date/time".freeze, - :"owl:equivalentProperty" => %(ma:releaseDate).freeze, subPropertyOf: "ebucore:date".freeze, type: "rdf:Property".freeze property :dateMigrated, comment: %(The date when the resource was copied or converted from an obsolete or endangered original format to a more updated format for preservation.).freeze, domain: "ebucore:Resource".freeze, + equivalentProperty: "ma:creationDate".freeze, label: "Migration date".freeze, - :"owl:equivalentProperty" => %(ma:creationDate).freeze, subPropertyOf: "ebucore:date".freeze, type: "rdf:Property".freeze property :dateModified, comment: %(To indicate the date at which the Resource or BusinessObject has been modified.).freeze, + domain: term( + unionOf: list("ebucore:BusinessObject".freeze, "ebucore:Resource".freeze), + type: "owl:Class".freeze + ), label: "Modification date/time".freeze, subPropertyOf: "ebucore:date".freeze, type: "rdf:Property".freeze property :dateNormalized, comment: %(The date when the Resource was converted from its original format into a format pre-selected by the institution for preservation.).freeze, domain: "ebucore:Resource".freeze, + equivalentProperty: "ma:creationDate".freeze, label: "Normalization date".freeze, - :"owl:equivalentProperty" => %(ma:creationDate).freeze, subPropertyOf: "ebucore:date".freeze, type: "rdf:Property".freeze property :dateOfBirth, comment: %(The date when a Contact/Person is born.).freeze, domain: "ebucore:Person".freeze, + equivalentProperty: "http://www.bbc.co.uk/ontologies/coreconcepts/dateOfBirth".freeze, label: "Date of birth".freeze, - :"owl:equivalentProperty" => %(http://www.bbc.co.uk/ontologies/coreconcepts/dateOfBirth).freeze, range: "xsd:date".freeze, type: "rdf:Property".freeze property :dateOfDeath, comment: %(The date when a Contact/Person has passed away.).freeze, domain: "ebucore:Person".freeze, + equivalentProperty: "http://www.bbc.co.uk/ontologies/coreconcepts/dateOfDeath".freeze, label: "Date of death".freeze, - :"owl:equivalentProperty" => %(http://www.bbc.co.uk/ontologies/coreconcepts/dateOfDeath).freeze, range: "xsd:date".freeze, type: "rdf:Property".freeze property :dateReleased, comment: %(The date when the Resource was first made available to the public for purchase, download, or online access.).freeze, domain: "ebucore:Resource".freeze, + equivalentProperty: "ma:creationDate".freeze, label: "Release date".freeze, - :"owl:equivalentProperty" => %(ma:creationDate).freeze, subPropertyOf: "ebucore:date".freeze, type: "rdf:Property".freeze property :dateTransferred, comment: %(The date when the Resource or BusinessObject was moved from one digital or physical location to another.).freeze, + domain: term( + unionOf: list("ebucore:BusinessObject".freeze, "ebucore:Resource".freeze), + type: "owl:Class".freeze + ), + equivalentProperty: "ma:creationDate".freeze, label: "Transfer date".freeze, - :"owl:equivalentProperty" => %(ma:creationDate).freeze, subPropertyOf: "ebucore:date".freeze, type: "rdf:Property".freeze property :dateValidated, comment: %(The most recent date when the Resource was confirmed to be valid through manual or digital QC.).freeze, domain: "ebucore:Resource".freeze, + equivalentProperty: "ma:creationDate".freeze, label: "Validation date".freeze, - :"owl:equivalentProperty" => %(ma:creationDate).freeze, subPropertyOf: "ebucore:date".freeze, type: "rdf:Property".freeze property :datelicensed, comment: %(The date when the licence for the Resource begins.).freeze, domain: "ebucore:Resource".freeze, + equivalentProperty: "ma:creationDate".freeze, label: "Licence start date".freeze, - :"owl:equivalentProperty" => %(ma:creationDate).freeze, subPropertyOf: "ebucore:date".freeze, type: "rdf:Property".freeze property :derivedTo, comment: %(Identifies a content-based relationship between two resources.).freeze, + domain: term( + unionOf: list("ebucore:BusinessObject".freeze, "ebucore:Resource".freeze), + type: "owl:Class".freeze + ), + inverseOf: "ebucore:isDerivedFrom".freeze, label: "Derived to".freeze, - :"owl:inverseOf" => %(ebucore:isDerivedFrom).freeze, + range: term( + unionOf: list("ebucore:BusinessObject".freeze, "ebucore:Resource".freeze), + type: "owl:Class".freeze + ), type: "rdf:Property".freeze property :description, comment: %(This can be specialised by using sub-properties like defined in http://www.ebu.ch/metadata/cs/web/ebu_DescriptionTypeCodeCS_p.xml.htm implemented as examples as e.g. 'summary' or 'script'.).freeze, domain: "ebucore:BusinessObject".freeze, + equivalentProperty: "ma:description".freeze, label: "Description".freeze, - :"owl:equivalentProperty" => %(ma:description).freeze, range: "xsd:string".freeze, subPropertyOf: "dc11:description".freeze, type: "rdf:Property".freeze property :dimensions, comment: %(Describes the physical dimensions of a media resource, with units of measure concatenated to become part of the value.).freeze, @@ -1718,18 +1763,30 @@ label: "Dopesheet".freeze, subPropertyOf: "ebucore:description".freeze, type: "rdf:Property".freeze property :dubbedTo, comment: %(Identifies relationship between a physical instantiation of a resource and a duplicate physical copy that may involve generational loss.).freeze, + domain: term( + unionOf: list("ebucore:BusinessObject".freeze, "ebucore:Resource".freeze), + type: "owl:Class".freeze + ), + inverseOf: "ebucore:isDubbedFrom".freeze, label: "Dubbed to".freeze, - :"owl:inverseOf" => %(ebucore:isDubbedFrom).freeze, + range: term( + unionOf: list("ebucore:BusinessObject".freeze, "ebucore:Resource".freeze), + type: "owl:Class".freeze + ), type: "rdf:Property".freeze property :duration, comment: %(To provide information on the duration of a MediaResource. It corresponds to 'duration' in the Ontology for Media Resources.).freeze, + domain: term( + unionOf: list("ebucore:MediaResource".freeze, "ebucore:EditorialObject".freeze), + type: "owl:Class".freeze + ), + equivalentProperty: "ma:duration".freeze, label: "Duration".freeze, - :"owl:equivalentProperty" => %(ma:duration).freeze, range: "rdfs:Literal".freeze, type: "rdf:Property".freeze property :durationNormalPlayTime, comment: %(To provide a duration as normal time.).freeze, @@ -1795,10 +1852,14 @@ subPropertyOf: "ebucore:duration".freeze, type: "rdf:Property".freeze property :editUnit, comment: %(The edit unit is e.g. the inverse of the audio sample rate or video frame rate.).freeze, + domain: term( + unionOf: list("ebucore:MediaResource".freeze, "ebucore:EditorialObject".freeze), + type: "owl:Class".freeze + ), label: "Edit unit".freeze, range: "xsd:float".freeze, type: "rdf:Property".freeze property :editorialObjectId, comment: %(An identifier attributed to an EditorialObject.).freeze, @@ -1897,12 +1958,12 @@ range: "rdfs:Literal".freeze, type: "rdf:Property".freeze property :endLicenceDate, comment: %(The date on which the licence for the resource expires.).freeze, domain: "ebucore:Resource".freeze, + equivalentProperty: "ma:creationDate".freeze, label: "Licence expiration date".freeze, - :"owl:equivalentProperty" => %(ma:creationDate).freeze, subPropertyOf: "ebucore:date".freeze, type: "rdf:Property".freeze property :endNormalPlayTime, comment: %(The start time expressed using a time expression.).freeze, @@ -2021,12 +2082,12 @@ range: "xsd:string".freeze, type: "rdf:Property".freeze property :familyName, comment: %(To provide a family name / last name.).freeze, domain: "ebucore:Person".freeze, + equivalentProperty: "foaf:familyName".freeze, label: "Family name".freeze, - :"owl:equivalentProperty" => %(foaf:familyName).freeze, range: "xsd:string".freeze, type: "rdf:Property".freeze property :fileSize, comment: %(Provides the size of a MediaResource in bytes.).freeze, domain: "ebucore:Resource".freeze, @@ -2052,11 +2113,19 @@ label: "Folksonomy".freeze, range: "xsd:string".freeze, type: "rdf:Property".freeze property :followsInSequence, comment: %(A link to a an BusinessObject or a Resource preceding the current BusinessObject or Resource in an ordered sequence.).freeze, + domain: term( + unionOf: list("ebucore:BusinessObject".freeze, "ebucore:Resource".freeze), + type: "owl:Class".freeze + ), label: "Previous".freeze, + range: term( + unionOf: list("ebucore:BusinessObject".freeze, "ebucore:Resource".freeze), + type: "owl:Class".freeze + ), type: "rdf:Property".freeze property :foodCategory, comment: %(To define a category of Food/cuisine.).freeze, domain: "ebucore:Food".freeze, label: "Food category".freeze, @@ -2092,20 +2161,20 @@ subPropertyOf: "ebucore:heightUnit".freeze, type: "rdf:Property".freeze property :frameRate, comment: %(The frame rate of the video signal in frame per second.).freeze, domain: "ebucore:MediaResource".freeze, + equivalentProperty: "ma:frameRate".freeze, label: "Frame rate".freeze, - :"owl:equivalentProperty" => %(ma:frameRate).freeze, range: "xsd:double".freeze, type: "rdf:Property".freeze property :frameSizeUnit, comment: %(The unit used to express the frame width or height. The unit by default is 'pixel'.).freeze, domain: "ebucore:MediaResource".freeze, + equivalentProperty: "ma:frameSizeUnit".freeze, label: "Frame size unit".freeze, - :"owl:equivalentProperty" => %(ma:frameSizeUnit).freeze, range: "xsd:string".freeze, type: "rdf:Property".freeze property :frameWidth, comment: %(To measure the width of a frame.).freeze, label: "Frame width".freeze, @@ -2117,12 +2186,12 @@ subPropertyOf: "ebucore:widthUnit".freeze, type: "rdf:Property".freeze property :framesPerSecond, comment: %(Identifies the frames per second at which a visual resource should be played back for human consumption.).freeze, domain: "ebucore:Resource".freeze, + equivalentProperty: "ma:frameRate".freeze, label: "Frames per second".freeze, - :"owl:equivalentProperty" => %(ma:frameRate).freeze, range: "xsd:double".freeze, subPropertyOf: "ebucore:playbackSpeed".freeze, type: "rdf:Property".freeze property :free, comment: %(A flag to indicate that the access to the event is 'free'.).freeze, @@ -2131,19 +2200,19 @@ range: "xsd:boolean".freeze, type: "rdf:Property".freeze property :gender, comment: %(The gender of a person e.g. male or female.).freeze, domain: "ebucore:Person".freeze, + equivalentProperty: "http://www.bbc.co.uk/ontologies/coreconcepts/gender".freeze, label: "Gender".freeze, - :"owl:equivalentProperty" => %(http://www.bbc.co.uk/ontologies/coreconcepts/gender).freeze, range: "xsd:string".freeze, type: "rdf:Property".freeze property :givenName, comment: %(To provide one or more given names.).freeze, domain: "ebucore:Person".freeze, + equivalentProperty: "foaf:givenName".freeze, label: "Given name".freeze, - :"owl:equivalentProperty" => %(foaf:givenName).freeze, range: "xsd:string".freeze, type: "rdf:Property".freeze property :groupDescription, comment: %(A textual description of a Group.).freeze, @@ -2179,18 +2248,22 @@ Contact/person and an Organisation.).freeze, %(Range: Affiliation or string).freeze], domain: "ebucore:Person".freeze, label: "Affiliation".freeze, type: "rdf:Property".freeze property :hasAgentRelatedPicture, - :"dc11:description" => %(A link/locator to a picture related to an Agent.).freeze, + "dc11:description": "A link/locator to a picture related to an Agent.".freeze, domain: "ebucore:Agent".freeze, label: "Related picture".freeze, range: "ebucore:Picture".freeze, type: "rdf:Property".freeze property :hasAncillaryData, comment: %(A property to signal the presence of AncillaryData associated with the EditorialObject and / or MediaResource.).freeze, + domain: term( + unionOf: list("ebucore:EditorialObject".freeze, "ebucore:MediaResource".freeze), + type: "owl:Class".freeze + ), label: "Ancillary data".freeze, range: "ebucore:AncillaryData".freeze, type: "rdf:Property".freeze property :hasAncillaryDataFormat, comment: %(the format of ancillary data.).freeze, @@ -2267,10 +2340,14 @@ subPropertyOf: "ebucore:hasCodec".freeze, type: "rdf:Property".freeze property :hasAudioDescription, comment: %(To signal the presence of AudioDescription.).freeze, + domain: term( + unionOf: list("ebucore:EditorialObject".freeze, "ebucore:MediaResource".freeze), + type: "owl:Class".freeze + ), label: "Audio description".freeze, range: "ebucore:AudioDescription".freeze, type: "rdf:Property".freeze property :hasAudioEncodingFormat, comment: %(To specify the audio encoding format.).freeze, @@ -2284,10 +2361,14 @@ subPropertyOf: "ebucore:hasTrack".freeze, type: "rdf:Property".freeze property :hasCaptioning, comment: %(To signal the presence of Captioning.).freeze, + domain: term( + unionOf: list("ebucore:EditorialObject".freeze, "ebucore:MediaResource".freeze), + type: "owl:Class".freeze + ), label: "Captioning".freeze, range: "ebucore:Captioning".freeze, subPropertyOf: "ebucore:hasDataTrack".freeze, type: "rdf:Property".freeze property :hasCaptioningFormat, @@ -2317,12 +2398,12 @@ label: "Character".freeze, type: "rdf:Property".freeze property :hasCodec, comment: [%(Range: a string or a Codec).freeze, %(To identify the Codec with which the Resource has been encoded.).freeze], domain: "ebucore:Resource".freeze, + equivalentProperty: "ma:hasCompression".freeze, label: "Encoder / Codec".freeze, - :"owl:equivalentProperty" => %(ma:hasCompression).freeze, type: "rdf:Property".freeze property :hasColourSpace, comment: %(To describe the colou space.).freeze, label: "Colour space".freeze, subPropertyOf: "ebucore:hasFormat".freeze, @@ -2349,31 +2430,31 @@ subPropertyOf: "ebucore:hasFormat".freeze, type: "rdf:Property".freeze property :hasContributor, comment: %(To provide information on Contacts/persons or Organisations who have contributed to the BusinessObject and associated Resource.).freeze, + equivalentProperty: "ma:hasContributor".freeze, label: "Contributor".freeze, - :"owl:equivalentProperty" => %(ma:hasContributor).freeze, subPropertyOf: "dc11:contributor".freeze, type: "rdf:Property".freeze property :hasCoverage, comment: %(A property to identify the Events and or Locations, all real or fictional, covered by the BusinessObject.).freeze, + equivalentProperty: "ma:hasRelatedLocation".freeze, label: "Coverage".freeze, - :"owl:equivalentProperty" => %(ma:hasRelatedLocation).freeze, subPropertyOf: "dc11:coverage".freeze, type: "rdf:Property".freeze property :hasCreationLocation, comment: %(The Location where content has been created.).freeze, domain: "ebucore:MediaResource".freeze, label: "Creation location".freeze, type: "rdf:Property".freeze property :hasCreator, comment: %(To identify an Agent involved in the creation of the Resource or BusinessObject.).freeze, + equivalentProperty: "ma:hasCreator".freeze, label: "Creator".freeze, - :"owl:equivalentProperty" => %(ma:hasCreator).freeze, subPropertyOf: "dc11:creator".freeze, type: "rdf:Property".freeze property :hasCrewMember, comment: [%(Range: a string or a Person.).freeze, %(To list members of the crew.).freeze], domain: "ebucore:BusinessObject".freeze, @@ -2441,12 +2522,16 @@ subPropertyOf: "ebucore:hasFormat".freeze, type: "rdf:Property".freeze property :hasEpisode, comment: %(To identify an episode of a Series or a Season.).freeze, + domain: term( + unionOf: list("ebucore:Season".freeze, "ebucore:Series".freeze), + type: "owl:Class".freeze + ), + inverseOf: "ebucore:isEpisodeOf".freeze, label: "Episode".freeze, - :"owl:inverseOf" => %(ebucore:isEpisodeOf).freeze, range: "ebucore:Programme".freeze, subPropertyOf: "ebucore:hasRelatedBusinessObject".freeze, type: "rdf:Property".freeze property :hasEventRelatedLocation, comment: [%(Range: a Location or a string).freeze, %(To associate a Location with an Event.).freeze], @@ -2458,34 +2543,38 @@ label: "File format".freeze, subPropertyOf: "ebucore:hasFormat".freeze, type: "rdf:Property".freeze property :hasFormat, comment: %(A property to define the Format of a Resource.).freeze, + equivalentProperty: "ma:hasFormat".freeze, label: "Format".freeze, - :"owl:equivalentProperty" => %(ma:hasFormat).freeze, subPropertyOf: "dc11:format".freeze, type: "rdf:Property".freeze property :hasGeneration, comment: %(Identifies the generation of a version of a resource, i.e. master, edit master, distribution copy, etc.).freeze, label: "Generation".freeze, subPropertyOf: "ebucore:hasFormat".freeze, type: "rdf:Property".freeze property :hasGenre, comment: %(To define a Genre/category associated to the BusinesssObject.).freeze, + equivalentProperty: "ma:hasGenre".freeze, label: "Genre".freeze, - :"owl:equivalentProperty" => %(ma:hasGenre).freeze, subPropertyOf: "ebucore:hasType".freeze, type: "rdf:Property".freeze property :hasIdPicture, comment: [%(A locator /URI or a Picture.).freeze, %(To provide a link to a picture Id.).freeze], domain: "ebucore:Person".freeze, label: "Id picture".freeze, range: "xsd:anyURI".freeze, type: "rdf:Property".freeze property :hasIdentifier, comment: %(To provide an alternative Identifier.).freeze, + domain: term( + unionOf: list("ebucore:Resource".freeze, "ebucore:BusinessObject".freeze), + type: "owl:Class".freeze + ), label: ["Identifier".freeze, "Range: Identifier or string or anyURI".freeze], type: "rdf:Property".freeze property :hasIdentifierType, comment: [%(Range: code/Concept or string).freeze, %(To define a type of Identifer \(e.g. UUID, ISAN, EIDR, in-house production Id\).).freeze], domain: "ebucore:Identifier".freeze, @@ -2510,23 +2599,27 @@ type: "rdf:Property".freeze property :hasKeyword, comment: [%(Range: keyword or string).freeze, %(To associate a concept, descriptive phrase or Keyword that specifies the topic of the BusinessObject or Annotation.).freeze], domain: "ebucore:EditorialObject".freeze, + equivalentProperty: "ma:hasKeyword".freeze, label: "Keyword".freeze, - :"owl:equivalentProperty" => %(ma:hasKeyword).freeze, type: "rdf:Property".freeze property :hasLanguage, comment: %(To associate a Language to a Resource or BusinessObject. A controlled vocabulary based on BCP 47 is recommended. This property can also be used to identify the presence of sign language \(RFC 5646\). By inheritance, the hasLanguage property applies indifferently at the MediaResource / Fragment / Track levels at which the usage is being defined. Best practice recommends to use to best possible level of granularity fo describe the usage of language within a MediaResource including at Fragment and Track levels.).freeze, + domain: term( + unionOf: list("ebucore:BusinessObject".freeze, "ebucore:Resource".freeze), + type: "owl:Class".freeze + ), + equivalentProperty: "ma:hasLanguage".freeze, label: "Language".freeze, - :"owl:equivalentProperty" => %(ma:hasLanguage).freeze, subPropertyOf: "dc11:language".freeze, type: "rdf:Property".freeze property :hasLocationPicture, comment: %(A picture associated with a Location.).freeze, domain: "ebucore:Location".freeze, @@ -2553,13 +2646,13 @@ type: "rdf:Property".freeze property :hasMediaFragment, comment: %(To define relation to MediaFragments withiin a MediaResource.).freeze, domain: "ebucore:MediaResource".freeze, + equivalentProperty: "ma:hasFragment".freeze, + inverseOf: "ebucore:isMediaFragmentOf".freeze, label: "Fragment".freeze, - :"owl:equivalentProperty" => %(ma:hasFragment).freeze, - :"owl:inverseOf" => %(ebucore:isMediaFragmentOf).freeze, range: "ebucore:MediaFragment".freeze, subPropertyOf: "ebucore:hasRelatedResource".freeze, type: "rdf:Property".freeze property :hasMedium, comment: %(To specify the medium on which the Resource is available.).freeze, @@ -2629,32 +2722,40 @@ label: "Pictogram".freeze, type: "rdf:Property".freeze property :hasPlaceOfBirth, comment: [%(Range: Location or string).freeze, %(The place where a person is born.).freeze], domain: "ebucore:Person".freeze, + equivalentProperty: "http://www.bbc.co.uk/ontologies/coreconcepts/placeOfBirth".freeze, label: "Place of birth".freeze, - :"owl:equivalentProperty" => %(http://www.bbc.co.uk/ontologies/coreconcepts/placeOfBirth).freeze, type: "rdf:Property".freeze property :hasPlaceOfDeath, comment: [%(Range: a Location or a string).freeze, %(The place where a person has passed away.).freeze], domain: "ebucore:Person".freeze, + equivalentProperty: "http://www.bbc.co.uk/ontologies/coreconcepts/placeOfDeath".freeze, label: "Place of death".freeze, - :"owl:equivalentProperty" => %(http://www.bbc.co.uk/ontologies/coreconcepts/placeOfDeath).freeze, type: "rdf:Property".freeze property :hasProductionLocation, comment: [%(Range: a location or string).freeze, %(To identify the Location of a production).freeze], domain: "ebucore:EditorialObject".freeze, label: "Production location".freeze, type: "rdf:Property".freeze property :hasPublicationEvent, comment: %(To associate PublicationEvents with PublicationChannels or as elements of a PublicationHistory or PublicationPlanning.).freeze, + domain: term( + unionOf: list("ebucore:PublicationChannel".freeze, "ebucore:PublicationHistory".freeze, "ebucore:PublicationPlan".freeze), + type: "owl:Class".freeze + ), label: "Publication event".freeze, range: "ebucore:PublicationEvent".freeze, type: "rdf:Property".freeze property :hasPublicationHistory, comment: %(To provide the history of publication of an EditorailObject or MediaResource.).freeze, + domain: term( + unionOf: list("ebucore:EditorialObject".freeze, "ebucore:MediaResource".freeze), + type: "owl:Class".freeze + ), label: "Publication history".freeze, range: "ebucore:PublicationHistory".freeze, type: "rdf:Property".freeze property :hasPublicationMedium, comment: [%(Range: string or concept PublicationMedium).freeze, %(To identify the publication medium of a PublicationEvent.).freeze], @@ -2666,28 +2767,36 @@ domain: "ebucore:PublicationEvent".freeze, label: "Publication region".freeze, type: "rdf:Property".freeze property :hasPublisher, comment: %(To identify an Agent involved in the publication of the Resource or BusinessObject.).freeze, + equivalentProperty: "ma:hasPublisher".freeze, label: "Publisher".freeze, - :"owl:equivalentProperty" => %(ma:hasPublisher).freeze, subPropertyOf: "dc11:publisher".freeze, type: "rdf:Property".freeze property :hasRating, comment: [%(Range: a string or a Rating.).freeze, %(To identify the presence of Rating attributed to a Resource or BusinessObject.).freeze], + domain: term( + unionOf: list("ebucore:BusinessObject".freeze, "ebucore:Resource".freeze), + type: "owl:Class".freeze + ), + equivalentProperty: "ma:hasRating".freeze, label: "Rating".freeze, - :"owl:equivalentProperty" => %(ma:hasRating).freeze, type: "rdf:Property".freeze property :hasRatingSource, comment: [%(Range: a string or an Agent.).freeze, %(To identify an Agent \(Contact/person or Organisation\) who has proposed a Rating.).freeze], domain: "ebucore:Rating".freeze, label: "Rating provider".freeze, type: "rdf:Property".freeze property :hasRelatedArtefact, comment: %(To identify and Artefact related to EditorialObject or a resource.).freeze, + domain: term( + unionOf: list("ebucore:EditorialObject".freeze, "ebucore:Resource".freeze), + type: "owl:Class".freeze + ), label: "Related artefact".freeze, range: "ebucore:Artefact".freeze, type: "rdf:Property".freeze property :hasRelatedAsset, comment: %(To identify related Assets.).freeze, @@ -2739,12 +2848,12 @@ property :hasRelatedLocation, comment: %(A property to identify the Locations, all real or fictional, covered by the BusinessObject.).freeze, domain: "ebucore:BusinessObject".freeze, + equivalentProperty: "ma:hasRelatedLocation".freeze, label: "Location".freeze, - :"owl:equivalentProperty" => %(ma:hasRelatedLocation).freeze, range: "ebucore:Location".freeze, subPropertyOf: "ebucore:hasCoverage".freeze, type: "rdf:Property".freeze property :hasRelatedMediaFragment, comment: %(To associate a Part of an EditorialObject with a MediaFragment within the association MediaResource instantiating the EditorialObject.).freeze, @@ -2754,12 +2863,12 @@ subPropertyOf: "ebucore:hasRelatedResource".freeze, type: "rdf:Property".freeze property :hasRelatedPicture, comment: %(To associate a Picture with a BusinessObject or a Resource.).freeze, domain: "ebucore:Resource".freeze, + equivalentProperty: "ma:hasRelatedImage".freeze, label: "Picture".freeze, - :"owl:equivalentProperty" => %(ma:hasRelatedImage).freeze, range: "ebucore:Picture".freeze, subPropertyOf: "ebucore:hasRelatedResource".freeze, type: "rdf:Property".freeze property :hasRelatedPublicationEvent, comment: %(To identify the PublicationEvent associated with a MediaResource \(manifestation of an EditorialObject\).).freeze, @@ -2767,12 +2876,12 @@ label: "Publication event".freeze, range: "ebucore:PublicationEvent".freeze, type: "rdf:Property".freeze property :hasRelatedResource, comment: %(To identify a Resource associated with an Asset or a BusinessObject or a PublicationEvent or another Resource.).freeze, + equivalentProperty: "ma:hasRelatedResource".freeze, label: "Related resource".freeze, - :"owl:equivalentProperty" => %(ma:hasRelatedResource).freeze, type: "rdf:Property".freeze property :hasRelatedService, comment: %(To identify associated Services.).freeze, domain: "ebucore:Service".freeze, label: "Related service".freeze, @@ -2801,19 +2910,27 @@ domain: "ebucore:Agent".freeze, label: "Role".freeze, type: "rdf:Property".freeze property :hasSeason, comment: %(The Season of a Series.).freeze, + domain: term( + unionOf: list("ebucore:Series".freeze, "ebucore:Brand".freeze), + type: "owl:Class".freeze + ), + inverseOf: "ebucore:isSeasonOf".freeze, label: "Season".freeze, - :"owl:inverseOf" => %(ebucore:isSeasonOf).freeze, range: "ebucore:Season".freeze, subPropertyOf: "ebucore:hasRelatedBusinessObject".freeze, type: "rdf:Property".freeze property :hasSeries, comment: %(A Series.).freeze, + domain: term( + unionOf: list("ebucore:Brand".freeze, "ebucore:Season".freeze), + type: "owl:Class".freeze + ), + inverseOf: "ebucore:isSeasonOf".freeze, label: "Series".freeze, - :"owl:inverseOf" => %(ebucore:isSeasonOf).freeze, range: "ebucore:Series".freeze, subPropertyOf: "ebucore:hasRelatedBusinessObject".freeze, type: "rdf:Property".freeze property :hasServiceLogo, domain: "ebucore:Service".freeze, @@ -2826,12 +2943,16 @@ label: "Shooting location".freeze, type: "rdf:Property".freeze property :hasSigning, comment: [%(A locator/URI to a resource or a Signing resource.).freeze, %(To identify the presence of Signing associated to the BusinessObject/Resource.).freeze], + domain: term( + unionOf: list("ebucore:EditorialObject".freeze, "ebucore:MediaResource".freeze), + type: "owl:Class".freeze + ), + equivalentProperty: "ma:hasSigning".freeze, label: "Accessibility - signing".freeze, - :"owl:equivalentProperty" => %(ma:hasSigning).freeze, range: "ebucore:Signing".freeze, subPropertyOf: "ebucore:hasVideoTrack".freeze, type: "rdf:Property".freeze property :hasSigningFormat, comment: %(To specify the format of signing.).freeze, @@ -2839,12 +2960,12 @@ label: "Signing format".freeze, range: "xsd:string".freeze, type: "rdf:Property".freeze property :hasSource, comment: %(To identify a Resource as the source of another Resource.).freeze, + equivalentProperty: "ma:hasSource".freeze, label: "Source".freeze, - :"owl:equivalentProperty" => %(ma:hasSource).freeze, range: "ebucore:Resource".freeze, subPropertyOf: "dc11:source".freeze, type: "rdf:Property".freeze property :hasStaffMember, comment: [%(Range: a string or a Person.).freeze, %(To identify staff working within an Organisation.).freeze], @@ -2881,12 +3002,16 @@ subPropertyOf: "dc11:subject".freeze, type: "rdf:Property".freeze property :hasSubtitling, comment: [%(A locator to a resource or a Signing resource.).freeze, %(To signal the presence of Subtitling associated with the EditorialObject or MediaResource.).freeze], + domain: term( + unionOf: list("ebucore:EditorialObject".freeze, "ebucore:MediaResource".freeze), + type: "owl:Class".freeze + ), + equivalentProperty: "ma:hasSubtitling".freeze, label: "Subtitling".freeze, - :"owl:equivalentProperty" => %(ma:hasSubtitling).freeze, range: "ebucore:Subtitling".freeze, subPropertyOf: "ebucore:hasDataTrack".freeze, type: "rdf:Property".freeze property :hasSubtitlingFormat, comment: %(The format of Subtitling.).freeze, @@ -2895,12 +3020,12 @@ type: "rdf:Property".freeze property :hasTargetAudience, comment: %(To associate a TargetAudience \(e.g. for parental guiddance or targeting a particular social group\) with a BusinessObject/Resource.).freeze, + equivalentProperty: "ma:hasTargetAudience".freeze, label: "Target audience".freeze, - :"owl:equivalentProperty" => %(ma:hasTargetAudience).freeze, subPropertyOf: "ebucore:hasType".freeze, type: "rdf:Property".freeze property :hasTeamMember, comment: [%(Range: a Person or a string).freeze, %(To identify the members of a Team).freeze], domain: "ebucore:Team".freeze, @@ -2927,12 +3052,12 @@ label: "Theme".freeze, subPropertyOf: "ebucore:hasKeyword".freeze, type: "rdf:Property".freeze property :hasTimecodeTrack, comment: %(To identify a timecode track with a MediaResource.).freeze, + equivalentProperty: "ma:hasTrack".freeze, label: "Timecode track".freeze, - :"owl:equivalentProperty" => %(ma:hasTrack).freeze, range: "ebucore:TimecodeTrack".freeze, subPropertyOf: "ebucore:hasTrack".freeze, type: "rdf:Property".freeze property :hasTimelineTrack, comment: %(To associate a TimelineTrack with an EditorialObject).freeze, @@ -2952,24 +3077,32 @@ subPropertyOf: "ebucore:hasSubject".freeze, type: "rdf:Property".freeze property :hasTrack, comment: %(To associate audio/data/video tracks with a MediaResource.).freeze, domain: "ebucore:MediaResource".freeze, + equivalentProperty: "ma:hasTrack".freeze, label: "Track".freeze, - :"owl:equivalentProperty" => %(ma:hasTrack).freeze, range: "ebucore:Track".freeze, subPropertyOf: "ebucore:hasRelatedResource".freeze, type: "rdf:Property".freeze property :hasType, comment: %(To define a type of BusinessObject is not declared as a subClass of BusinessObject.).freeze, label: "Type".freeze, subPropertyOf: "dc11:type".freeze, type: "rdf:Property".freeze property :hasVersion, comment: %(To identify another version of an Asset, BusinessObject or Resource.).freeze, + domain: term( + unionOf: list("ebucore:BusinessObject".freeze, "ebucore:Resource".freeze), + type: "owl:Class".freeze + ), + inverseOf: "ebucore:isVersionOf".freeze, label: "Version".freeze, - :"owl:inverseOf" => %(ebucore:isVersionOf).freeze, + range: term( + unionOf: list("ebucore:BusinessObject".freeze, "ebucore:Resource".freeze), + type: "owl:Class".freeze + ), type: "rdf:Property".freeze property :hasVideoCodec, label: "has video codec".freeze, subPropertyOf: "ebucore:hasCodec".freeze, type: "rdf:Property".freeze @@ -2995,12 +3128,12 @@ property :height, comment: %(The height of e.g. a video frame typically expressed as a number of lines or the height of a picture/image expressed in millimeters or else.).freeze, domain: "ebucore:Resource".freeze, + equivalentProperty: "ma:frameHeight".freeze, label: "Height".freeze, - :"owl:equivalentProperty" => %(ma:frameHeight).freeze, range: "xsd:integer".freeze, type: "rdf:Property".freeze property :heightUnit, comment: %(The unit used to measure a Height e.g. in pixels or number of lines or millimeters or else.).freeze, @@ -3031,12 +3164,12 @@ label: "Identifier value".freeze, type: "rdf:Property".freeze property :inchesPerSecond, comment: %(Identifies the inches per second at which an analog audio tape should be played back for human consumption.).freeze, domain: "ebucore:Resource".freeze, + equivalentProperty: "ma:frameRate".freeze, label: "Inches per second".freeze, - :"owl:equivalentProperty" => %(ma:frameRate).freeze, range: "xsd:double".freeze, subPropertyOf: "ebucore:playbackSpeed".freeze, type: "rdf:Property".freeze property :instantiates, comment: %(To link a particular manifestation of a @@ -3052,24 +3185,32 @@ label: "Agent".freeze, type: "rdf:Property".freeze property :isBrand, comment: %(To identify a Brand.).freeze, domain: "ebucore:EditorialObject".freeze, + inverseOf: "ebucore:hasEpisode".freeze, label: "Brand".freeze, - :"owl:inverseOf" => %(ebucore:hasEpisode).freeze, range: "ebucore:Brand".freeze, subPropertyOf: "ebucore:hasRelatedBusinessObject".freeze, type: "rdf:Property".freeze property :isCharacter, comment: [%(Range: a string or a FictionalPerson/Character.).freeze, %(To identify the character personified by a Cast individual.).freeze], domain: "ebucore:Cast".freeze, label: "Character".freeze, type: "rdf:Property".freeze property :isClonedFrom, comment: %(Identifies relationship between a digital instantiation of a resource and its direct copy, with no generational loss.).freeze, + domain: term( + unionOf: list("ebucore:BusinessObject".freeze, "ebucore:Resource".freeze), + type: "owl:Class".freeze + ), + inverseOf: "ebucore:clonedTo".freeze, label: "Cloned from".freeze, - :"owl:inverseOf" => %(ebucore:clonedTo).freeze, + range: term( + unionOf: list("ebucore:BusinessObject".freeze, "ebucore:Resource".freeze), + type: "owl:Class".freeze + ), type: "rdf:Property".freeze property :isComposedOf, comment: %(To identify mediaResources used to compose an Essence.).freeze, domain: "ebucore:Essence".freeze, label: "MediaResource".freeze, @@ -3077,31 +3218,43 @@ type: "rdf:Property".freeze property :isCoveredBy, comment: [%(Range: a link to Rights or open text \(string\).).freeze, %(The Rights or policy applicable to the BusinessObject, Asset, Resource or PublicationEvent.).freeze], domain: "ebucore:Asset".freeze, + equivalentProperty: ["ma:hasPermissions".freeze, "ma:hasPolicy".freeze], label: "Rights".freeze, - :"owl:equivalentProperty" => [%(ma:hasPermissions).freeze, %(ma:hasPolicy).freeze], subPropertyOf: "dc11:rights".freeze, type: "rdf:Property".freeze property :isDerivedFrom, comment: %(Identifies a content-based relationship between two resources.).freeze, + domain: term( + unionOf: list("ebucore:BusinessObject".freeze, "ebucore:Resource".freeze), + type: "owl:Class".freeze + ), + inverseOf: "ebucore:derivedTo".freeze, label: "Derived from".freeze, - :"owl:inverseOf" => %(ebucore:derivedTo).freeze, + range: term( + unionOf: list("ebucore:BusinessObject".freeze, "ebucore:Resource".freeze), + type: "owl:Class".freeze + ), type: "rdf:Property".freeze property :isDubbedFrom, comment: %(Identifies relationship between a physical instantiation of a resource and a duplicate physical copy that may involve generational loss.).freeze, domain: "ebucore:Resource".freeze, + inverseOf: "ebucore:dubbedTo".freeze, label: "Dubbed from".freeze, - :"owl:inverseOf" => %(ebucore:dubbedTo).freeze, range: "ebucore:Resource".freeze, type: "rdf:Property".freeze property :isEpisodeOf, comment: %(The Episode of a Series or a Season.).freeze, domain: "ebucore:Programme".freeze, + inverseOf: "ebucore:hasEpisode".freeze, label: "Parent season / series".freeze, - :"owl:inverseOf" => %(ebucore:hasEpisode).freeze, + range: term( + unionOf: list("ebucore:Season".freeze, "ebucore:Series".freeze), + type: "owl:Class".freeze + ), subPropertyOf: "ebucore:hasRelatedBusinessObject".freeze, type: "rdf:Property".freeze property :isFictitiousPerson, comment: [%(Range: a string or a FictitiousPerson.).freeze, %(To identify a Contact/Person being fictitious.).freeze], domain: "ebucore:Character".freeze, @@ -3119,31 +3272,39 @@ label: "Issuer".freeze, type: "rdf:Property".freeze property :isMediaFragmentOf, comment: %(To identify the MediaResource to which the MediaFragment belongs to.).freeze, domain: "ebucore:MediaFragment".freeze, + equivalentProperty: "ma:isFragmentOf".freeze, + inverseOf: "ebucore:hasMediaFragment".freeze, label: "Source".freeze, - :"owl:equivalentProperty" => %(ma:isFragmentOf).freeze, - :"owl:inverseOf" => %(ebucore:hasMediaFragment).freeze, range: "ebucore:MediaResource".freeze, subPropertyOf: "ebucore:hasRelatedResource".freeze, type: "rdf:Property".freeze property :isMemberOf, comment: %(To identify a Group to which an EidtorialObject is a member of.).freeze, domain: "ebucore:EditorialObject".freeze, + inverseOf: "ebucore:hasMember".freeze, label: "Member of".freeze, - :"owl:inverseOf" => %(ebucore:hasMember).freeze, range: "ebucore:Group".freeze, type: "rdf:Property".freeze property :isMemberOfPublicationPlan, domain: "ebucore:PublicationPlan".freeze, label: "Member of publication plan".freeze, range: "ebucore:PublicationPlan".freeze, type: "rdf:Property".freeze property :isNextInSequence, comment: %(A link to a an BusinessObject or a Resource following the current BusinessObject or Resource in an ordered sequence.).freeze, + domain: term( + unionOf: list("ebucore:BusinessObject".freeze, "ebucore:Resource".freeze), + type: "owl:Class".freeze + ), label: "Next".freeze, + range: term( + unionOf: list("ebucore:BusinessObject".freeze, "ebucore:Resource".freeze), + type: "owl:Class".freeze + ), type: "rdf:Property".freeze property :isOperatedBy, comment: %(To identify the Service that operates the PublicationChannel.).freeze, domain: "ebucore:PublicationChannel".freeze, @@ -3157,11 +3318,19 @@ label: "Owner".freeze, range: "ebucore:Agent".freeze, type: "rdf:Property".freeze property :isReferencedBy, comment: %(To express references across Assets, BusinessObjects or Resources.).freeze, + domain: term( + unionOf: list("ebucore:BusinessObject".freeze, "ebucore:Resource".freeze), + type: "owl:Class".freeze + ), label: "Related object, resource".freeze, + range: term( + unionOf: list("ebucore:BusinessObject".freeze, "ebucore:Resource".freeze), + type: "owl:Class".freeze + ), type: "rdf:Property".freeze property :isRelatedToBusinessObject, comment: %(To identify the BusinessObject associated with a Rating.).freeze, domain: "ebucore:Rating".freeze, label: "Rated business object".freeze, @@ -3178,34 +3347,54 @@ domain: "ebucore:PublicationEvent".freeze, label: "Service".freeze, type: "rdf:Property".freeze property :isReplacedBy, comment: %(To identify substitutions.).freeze, + domain: term( + unionOf: list("ebucore:BusinessObject".freeze, "ebucore:Resource".freeze), + type: "owl:Class".freeze + ), label: "Replacement".freeze, + range: term( + unionOf: list("ebucore:BusinessObject".freeze, "ebucore:Resource".freeze), + type: "owl:Class".freeze + ), type: "rdf:Property".freeze property :isRequiredBy, comment: %(To express strong relations between Assets, BusinessObjects or Resources.).freeze, + domain: term( + unionOf: list("ebucore:BusinessObject".freeze, "ebucore:Resource".freeze), + type: "owl:Class".freeze + ), label: "Required".freeze, + range: term( + unionOf: list("ebucore:BusinessObject".freeze, "ebucore:Resource".freeze), + type: "owl:Class".freeze + ), type: "rdf:Property".freeze property :isSeasonOf, comment: %(The Season of a Series.).freeze, domain: "ebucore:Season".freeze, + inverseOf: "ebucore:hasSeason".freeze, label: "Parent Series".freeze, - :"owl:inverseOf" => %(ebucore:hasSeason).freeze, range: "ebucore:Series".freeze, subPropertyOf: "ebucore:hasRelatedBusinessObject".freeze, type: "rdf:Property".freeze property :isSeriesOf, comment: %(To identify a Brand or Season associated with a Series.).freeze, domain: "ebucore:Series".freeze, label: "Parent Brand or Series".freeze, + range: term( + unionOf: list("ebucore:Brand".freeze, "ebucore:Season".freeze), + type: "owl:Class".freeze + ), type: "rdf:Property".freeze property :isVersionOf, comment: %(To identify related versions.).freeze, domain: "ebucore:BusinessObject".freeze, + inverseOf: "ebucore:hasVersion".freeze, label: "Version of".freeze, - :"owl:inverseOf" => %(ebucore:hasVersion).freeze, range: "ebucore:BusinessObject".freeze, type: "rdf:Property".freeze property :lineNumber, comment: %(To provide the number of the line on which ancillary data is being carried and the equivalent in the digital domain.).freeze, @@ -3282,19 +3471,19 @@ type: "rdf:Property".freeze property :locationAltitude, comment: %(To define the altitude of a Location in meters.).freeze, domain: "ebucore:Location".freeze, + equivalentProperty: "ma:locationAltitude".freeze, label: "Altitude".freeze, - :"owl:equivalentProperty" => %(ma:locationAltitude).freeze, range: "xsd:float".freeze, type: "rdf:Property".freeze property :locationCode, comment: %(A code attributed to a Location.).freeze, domain: "ebucore:Location".freeze, + equivalentProperty: "ma:locationAltitude".freeze, label: "Code".freeze, - :"owl:equivalentProperty" => %(ma:locationAltitude).freeze, range: "xsd:string".freeze, type: "rdf:Property".freeze property :locationCoordinateSystemName, comment: %(To specify the name of the gps coordinate system used for the Location.).freeze, @@ -3314,74 +3503,90 @@ label: "Location Id".freeze, type: "rdf:Property".freeze property :locationLatitude, comment: %(The latitude of the Location.).freeze, domain: "ebucore:Location".freeze, + equivalentProperty: ["geo:lat".freeze, "ma:locationLatitude".freeze], label: "Latitude".freeze, - :"owl:equivalentProperty" => [%(geo:lat).freeze, %(ma:locationLatitude).freeze], range: "xsd:double".freeze, type: "rdf:Property".freeze property :locationLongitude, comment: %(To define the longitude of the Location.).freeze, domain: "ebucore:Location".freeze, + equivalentProperty: ["geo:long".freeze, "ma:locationLongitude".freeze], label: "Longitude".freeze, - :"owl:equivalentProperty" => [%(geo:long).freeze, %(ma:locationLongitude).freeze], range: "xsd:double".freeze, type: "rdf:Property".freeze property :locationName, comment: %(The name by which a Location is known.).freeze, domain: "ebucore:Location".freeze, + equivalentProperty: "ma:locationName".freeze, label: "Location name".freeze, - :"owl:equivalentProperty" => %(ma:locationName).freeze, range: "xsd:string".freeze, type: "rdf:Property".freeze property :locationRegion, comment: [%(Range: string or code/Concept).freeze, %(To provide a description of a particular region assocoated to the Location.).freeze], domain: "ebucore:Location".freeze, label: "Region".freeze, type: "rdf:Property".freeze property :locationType, comment: [%(A type of Location.).freeze, %(Note: a type can be defined by a subClass of Location).freeze, %(Range: string or code/Concept).freeze], domain: "ebucore:Location".freeze, + equivalentProperty: "ma:locationName".freeze, label: "Location type".freeze, - :"owl:equivalentProperty" => %(ma:locationName).freeze, type: "rdf:Property".freeze property :locator, comment: %(A locator from where the Resource can be accessed.).freeze, domain: "ebucore:Resource".freeze, + equivalentProperty: "ma:locator".freeze, label: "Locator".freeze, - :"owl:equivalentProperty" => %(ma:locator).freeze, range: "xsd:string".freeze, type: "rdf:Property".freeze property :locatorTargetInformation, comment: %(Information about storage accessed by the locator.).freeze, domain: "ebucore:Resource".freeze, label: "Target information".freeze, range: "xsd:string".freeze, type: "rdf:Property".freeze property :loudnessIntegratedLoudness, comment: %(The value for integrated loudness measured at AudioProgramme or AudioContent level.).freeze, + domain: term( + unionOf: list("ebucore:AudioProgramme".freeze, "ebucore:AudioContent".freeze), + type: "owl:Class".freeze + ), label: "Integrated loudness".freeze, range: "xsd:float".freeze, subPropertyOf: "ebucore:loudnessParameters".freeze, type: "rdf:Property".freeze property :loudnessMaxMomentary, comment: %(The value for maximum momentary loudness measured at AudioProgramme or AudioContent level.).freeze, + domain: term( + unionOf: list("ebucore:AudioContent".freeze, "ebucore:AudioProgramme".freeze), + type: "owl:Class".freeze + ), label: "Max momentary loudness".freeze, range: "xsd:float".freeze, subPropertyOf: "ebucore:loudnessParameters".freeze, type: "rdf:Property".freeze property :loudnessMaxTruepeak, comment: %(The value for maximum true peak loudness measured at AudioProgramme or AudioContent level.).freeze, + domain: term( + unionOf: list("ebucore:AudioContent".freeze, "ebucore:AudioProgramme".freeze), + type: "owl:Class".freeze + ), label: "Max true peak loudness".freeze, range: "xsd:float".freeze, subPropertyOf: "ebucore:loudnessParameters".freeze, type: "rdf:Property".freeze property :loudnessMethod, comment: %(The method for loudness measurement at AudioProgramme or AudioContent level.).freeze, + domain: term( + unionOf: list("ebucore:AudioContent".freeze, "ebucore:AudioProgramme".freeze), + type: "owl:Class".freeze + ), label: "Loudness method".freeze, range: "xsd:float".freeze, subPropertyOf: "ebucore:loudnessParameters".freeze, type: "rdf:Property".freeze property :loudnessParameters, @@ -3390,16 +3595,24 @@ label: "loudness parameters".freeze, range: "rdfs:Literal".freeze, type: "rdf:Property".freeze property :loudnessRange, comment: %(The loudness range measured at AudioProgramme or AudioContent level.).freeze, + domain: term( + unionOf: list("ebucore:AudioContent".freeze, "ebucore:AudioProgramme".freeze), + type: "owl:Class".freeze + ), label: "Loudness range".freeze, range: "xsd:float".freeze, subPropertyOf: "ebucore:loudnessParameters".freeze, type: "rdf:Property".freeze property :lounessMaxShortTerm, comment: %(The maximum short term loudness measured at AudioProgramme or AudioContent level.).freeze, + domain: term( + unionOf: list("ebucore:AudioContent".freeze, "ebucore:AudioProgramme".freeze), + type: "owl:Class".freeze + ), label: "Max short term loudness".freeze, range: "xsd:float".freeze, subPropertyOf: "ebucore:loudnessParameters".freeze, type: "rdf:Property".freeze property :mainTitle, @@ -3466,12 +3679,12 @@ subPropertyOf: "ebucore:numberOfTracks".freeze, type: "rdf:Property".freeze property :numberOfTracks, comment: %(The number of Tracks composing the MediaResource.).freeze, domain: "ebucore:MediaResource".freeze, + equivalentProperty: "ma:numberOfTracks".freeze, label: "Number of tracks".freeze, - :"owl:equivalentProperty" => %(ma:numberOfTracks).freeze, range: "xsd:integer".freeze, type: "rdf:Property".freeze property :numberOfVideoTracks, comment: %(To provide the number of video tracks.).freeze, label: "Number of video tracks".freeze, @@ -3535,26 +3748,30 @@ range: "xsd:string".freeze, type: "rdf:Property".freeze property :orientation, comment: %(The orientation of a Document or an Image i.e. landscape or portrait.).freeze, + domain: term( + unionOf: list("ebucore:Document".freeze, "ebucore:Image".freeze), + type: "owl:Class".freeze + ), label: "Orientation".freeze, range: "xsd:string".freeze, type: "rdf:Property".freeze property :originalTitle, comment: %(To provide the original title attributed to the media resource e.g. in its original language.).freeze, + equivalentProperty: "ma:mainOriginalTitle".freeze, label: "Original title".freeze, - :"owl:equivalentProperty" => %(ma:mainOriginalTitle).freeze, subPropertyOf: "ebucore:title".freeze, type: "rdf:Property".freeze property :owns, comment: %(To identify the service \(s\) that an Agent \(Contact/person or Organisation\) owns.).freeze, domain: "ebucore:Agent".freeze, + inverseOf: "ebucore:isOwnedBy".freeze, label: "Owns".freeze, - :"owl:inverseOf" => %(ebucore:isOwnedBy).freeze, range: "ebucore:Service".freeze, type: "rdf:Property".freeze property :packageByteSize, comment: %(The size of a media package in Bytes.).freeze, @@ -3612,12 +3829,12 @@ range: "xsd:anyURI".freeze, type: "rdf:Property".freeze property :playbackSpeed, comment: %(Identifies the rate of units against time at which the resource should be played back for human consumption. If the unit of measure is known, use sub-properties framesPerSecond or inchesPerSecond.).freeze, domain: "ebucore:Resource".freeze, + equivalentProperty: "ma:frameRate".freeze, label: "Playback speed".freeze, - :"owl:equivalentProperty" => %(ma:frameRate).freeze, range: "xsd:double".freeze, type: "rdf:Property".freeze property :playlist, comment: %(To describe a playlist.).freeze, label: "Playlist".freeze, @@ -3644,12 +3861,12 @@ type: "rdf:Property".freeze property :privateHomepage, comment: %(To provide an private web homepage of an Agent \(Contact/person\).).freeze, domain: "ebucore:Person".freeze, + equivalentProperty: "foaf:homepage".freeze, label: "Homepage (private)".freeze, - :"owl:equivalentProperty" => %(foaf:homepage).freeze, range: "xsd:anyURI".freeze, subPropertyOf: "ebucore:agentWebHomepage".freeze, type: "rdf:Property".freeze property :privateMobileTelephoneNumber, comment: %(To provide the private mobile telephone number @@ -3796,42 +4013,42 @@ type: "rdf:Property".freeze property :ratingScaleMax, comment: %(The maximum value of the scale used for rating a media resource.).freeze, domain: "ebucore:Rating".freeze, + equivalentProperty: "ma:ratingScaleMax".freeze, label: "Rating scale (top value)".freeze, - :"owl:equivalentProperty" => %(ma:ratingScaleMax).freeze, range: "xsd:string".freeze, type: "rdf:Property".freeze property :ratingScaleMin, comment: %(The minimum value of the scale used for rating a Resource.).freeze, domain: "ebucore:Rating".freeze, + equivalentProperty: "ma:ratingScaleMin".freeze, label: "Rating scale (min. value)".freeze, - :"owl:equivalentProperty" => %(ma:ratingScaleMin).freeze, range: "xsd:string".freeze, type: "rdf:Property".freeze property :ratingSystemEnvironment, comment: %(To identify the environment in which rating applies.).freeze, domain: "ebucore:Rating".freeze, + equivalentProperty: "ma:hasRatingSystem".freeze, label: "Rating environment".freeze, - :"owl:equivalentProperty" => %(ma:hasRatingSystem).freeze, range: "xsd:string".freeze, type: "rdf:Property".freeze property :ratingSystemName, comment: %(To identify a rating system by its name.).freeze, domain: "ebucore:Rating".freeze, + equivalentProperty: "ma:hasRatingSystem".freeze, label: "Rating system".freeze, - :"owl:equivalentProperty" => %(ma:hasRatingSystem).freeze, range: "xsd:string".freeze, type: "rdf:Property".freeze property :ratingValue, comment: %(To express a free text rating value defined in a rating classification scheme.).freeze, domain: "ebucore:Rating".freeze, + equivalentProperty: "ma:ratingValue".freeze, label: "Rating".freeze, - :"owl:equivalentProperty" => %(ma:ratingValue).freeze, range: "xsd:string".freeze, type: "rdf:Property".freeze property :readyForPublication, comment: %(A flag to indicate that the Essence is ready for publication.).freeze, domain: "ebucore:Essence".freeze, @@ -3844,11 +4061,19 @@ label: "Reason".freeze, range: "xsd:string".freeze, type: "rdf:Property".freeze property :references, comment: %(To express a reference between Assets, BusinessObjects or Resources.).freeze, + domain: term( + unionOf: list("ebucore:BusinessObject".freeze, "ebucore:Resource".freeze), + type: "owl:Class".freeze + ), label: "References".freeze, + range: term( + unionOf: list("ebucore:BusinessObject".freeze, "ebucore:Resource".freeze), + type: "owl:Class".freeze + ), type: "rdf:Property".freeze property :regionDelimX, comment: %(To define the bottom right corner of a zone on the x-axis. If present with regionDelimY, the zone definition is complemented by the associated values of the height and width.).freeze, @@ -3864,21 +4089,37 @@ label: "Region delimiter (y-axis)".freeze, range: "xsd:integer".freeze, type: "rdf:Property".freeze property :replaces, comment: %(To identify substitution.).freeze, + domain: term( + unionOf: list("ebucore:BusinessObject".freeze, "ebucore:Resource".freeze), + type: "owl:Class".freeze + ), label: "Replaces".freeze, + range: term( + unionOf: list("ebucore:BusinessObject".freeze, "ebucore:Resource".freeze), + type: "owl:Class".freeze + ), type: "rdf:Property".freeze property :represents, comment: %(To establish a relation between a BusinessObject and an Asset.).freeze, domain: "ebucore:BusinessObject".freeze, label: "Related asset".freeze, range: "ebucore:Asset".freeze, type: "rdf:Property".freeze property :requires, comment: %(To express dependency.).freeze, + domain: term( + unionOf: list("ebucore:BusinessObject".freeze, "ebucore:Resource".freeze), + type: "owl:Class".freeze + ), label: "Requires".freeze, + range: term( + unionOf: list("ebucore:BusinessObject".freeze, "ebucore:Resource".freeze), + type: "owl:Class".freeze + ), type: "rdf:Property".freeze property :resourceDescription, comment: %(This can be specialised by using sub-properties like defined in http://www.ebu.ch/metadata/cs/web/ebu_DescriptionTypeCodeCS_p.xml.htm implemented as examples as e.g. 'summary' or @@ -3970,19 +4211,19 @@ range: "xsd:string".freeze, type: "rdf:Property".freeze property :salutationTitle, comment: %(To provide a salutation title e.g M. Ms, Dr, Pr.).freeze, domain: "ebucore:Person".freeze, + equivalentProperty: "foaf:title".freeze, label: "Salutation title".freeze, - :"owl:equivalentProperty" => %(foaf:title).freeze, range: "xsd:string".freeze, type: "rdf:Property".freeze property :sampleRate, comment: %(The frequency at which audio is sampled per second. Also called sampling rate.).freeze, domain: "ebucore:MediaResource".freeze, + equivalentProperty: "ma:samplingRate".freeze, label: "Sample Rate".freeze, - :"owl:equivalentProperty" => %(ma:samplingRate).freeze, range: "xsd:integer".freeze, type: "rdf:Property".freeze property :sampleSize, comment: %(The size of an audio sample in bits. Also called bit depth.).freeze, @@ -4027,11 +4268,11 @@ type: "rdf:Property".freeze property :serviceId, comment: [%(An identifier attributed to a Service.).freeze, %(Range: Identifier, anyURI, string).freeze], domain: "ebucore:Service".freeze, label: "Identifier".freeze, - :"skos:prefLabel" => %(Identifier).freeze, + prefLabel: "Identifier".freeze, type: "rdf:Property".freeze property :serviceName, comment: %(The name by which a Service is known.).freeze, domain: "ebucore:Service".freeze, label: "Service name".freeze, @@ -4053,10 +4294,14 @@ domain: "ebucore:Signing".freeze, label: "Signing source".freeze, type: "rdf:Property".freeze property :start, comment: %(The start point of the MediaResource.).freeze, + domain: term( + unionOf: list("ebucore:MediaResource".freeze, "ebucore:EditorialObject".freeze), + type: "owl:Class".freeze + ), label: "Start time".freeze, type: "rdf:Property".freeze property :startNormalPlayTime, comment: %(The start time expressed using a time expression.).freeze, @@ -4241,70 +4486,74 @@ range: "xsd:string".freeze, subPropertyOf: "ebucore:timelineTrackduration".freeze, type: "rdf:Property".freeze property :timelineTrackduration, comment: %(To provide information on the duration of a TimelineTrack.).freeze, + domain: term( + unionOf: list("ebucore:MediaResource".freeze, "ebucore:EditorialObject".freeze), + type: "owl:Class".freeze + ), + equivalentProperty: "ma:duration".freeze, label: "TimelineTrack duration".freeze, - :"owl:equivalentProperty" => %(ma:duration).freeze, range: "rdfs:Literal".freeze, type: "rdf:Property".freeze property :title, comment: [%(All value of the EBU title status classification scheme \(http://www.ebu.ch/metadata/cs/web/ebu_TitleStatusCodeCS_p.xml.htm\) are candidates subproperties of the title property as implemented for an example with alternativeTitle.).freeze, %(Specifies the title or name given to the resource. A root for the definition of subproperties defining ebucore titles of different types. The ebucore title type can be used to define sub-properties to optionally refine the category of the title.).freeze], + equivalentProperty: "ma:title".freeze, label: "Title".freeze, - :"owl:equivalentProperty" => %(ma:title).freeze, subPropertyOf: "dc11:title".freeze, type: "rdf:Property".freeze property :trackDefinition, comment: %(To provide a definition associated to a Track.).freeze, domain: "ebucore:Track".freeze, + equivalentProperty: "ma:trackName".freeze, label: "Definition".freeze, - :"owl:equivalentProperty" => %(ma:trackName).freeze, range: "xsd:string".freeze, type: "rdf:Property".freeze property :trackId, comment: [%(An Id attributed to a Track.).freeze, %(Range: Identifier, anyURI, string).freeze], domain: "ebucore:Track".freeze, label: "Track Id".freeze, type: "rdf:Property".freeze property :trackName, comment: %(The name attributed to a Track.).freeze, domain: "ebucore:Track".freeze, + equivalentProperty: "ma:trackName".freeze, label: "Track name".freeze, - :"owl:equivalentProperty" => %(ma:trackName).freeze, range: "xsd:string".freeze, type: "rdf:Property".freeze property :trackPurpose, comment: %(The purpose for which the Track is provided.).freeze, domain: "ebucore:Track".freeze, + equivalentProperty: "ma:trackName".freeze, label: "Track purpose".freeze, - :"owl:equivalentProperty" => %(ma:trackName).freeze, range: "xsd:string".freeze, type: "rdf:Property".freeze property :trackType, comment: [%(Range: string or code/Concept).freeze, %(The type attributed to a Track.).freeze], domain: "ebucore:Track".freeze, + equivalentProperty: "ma:trackName".freeze, label: "Track name".freeze, - :"owl:equivalentProperty" => %(ma:trackName).freeze, type: "rdf:Property".freeze property :translationTitle, comment: %(A translated version of the title.).freeze, label: "Translation title".freeze, subPropertyOf: "ebucore:alternativeTitle".freeze, type: "rdf:Property".freeze property :username, comment: %(The username by which a Person is known e.g. when attributing a rating value.).freeze, domain: "ebucore:Person".freeze, + equivalentProperty: "foaf:nick".freeze, label: "Username".freeze, - :"owl:equivalentProperty" => %(foaf:nick).freeze, range: "xsd:string".freeze, type: "rdf:Property".freeze property :versionTitle, comment: %(An alternative title specific to a verison of content.).freeze, label: "Version title".freeze, @@ -4341,11 +4590,11 @@ type: "rdf:Property".freeze property :width, comment: %(The width of e.g. a video frame typically expressed as a number of pixels, or picture/image in millimeters.).freeze, domain: "ebucore:Resource".freeze, + equivalentProperty: "ma:frameWidth".freeze, label: "Width".freeze, - :"owl:equivalentProperty" => %(ma:frameWidth).freeze, range: "xsd:integer".freeze, type: "rdf:Property".freeze property :widthUnit, comment: %(The unit used to measure a width e.g. in pixels or number of lines or millimeters or else.).freeze,