// an attributed description
message AltDescription
 {
  optional source String = 1
  description String = 2
 }
// a tag/value pair with the semantics of OWL Annotation
message Annotation
 {
  optional tag Uriorcurie = 1
  value String = 2
  repeated extensions Extension = 3
  repeated annotations Annotation = 4
 }
message AnonymousClassExpression
 {
  repeated extensions Extension = 1
  repeated annotations Annotation = 2
  optional description String = 3
  repeated altDescriptions AltDescription = 4
  optional title String = 5
  optional deprecated String = 6
  repeated todos String = 7
  repeated notes String = 8
  repeated comments String = 9
  repeated examples Example = 10
  repeated inSubset SubsetDefinition = 11
  optional fromSchema Uri = 12
  optional importedFrom String = 13
  repeated seeAlso Uriorcurie = 14
  optional deprecatedElementHasExactReplacement Uriorcurie = 15
  optional deprecatedElementHasPossibleReplacement Uriorcurie = 16
  optional isA Definition = 17
  repeated anyOf AnonymousClassExpression = 18
  repeated exactlyOneOf AnonymousClassExpression = 19
  repeated noneOf AnonymousClassExpression = 20
  repeated allOf AnonymousClassExpression = 21
  repeated slotConditions SlotDefinition = 22
 }
message AnonymousSlotExpression
 {
  repeated extensions Extension = 1
  repeated annotations Annotation = 2
  optional description String = 3
  repeated altDescriptions AltDescription = 4
  optional title String = 5
  optional deprecated String = 6
  repeated todos String = 7
  repeated notes String = 8
  repeated comments String = 9
  repeated examples Example = 10
  repeated inSubset SubsetDefinition = 11
  optional fromSchema Uri = 12
  optional importedFrom String = 13
  repeated seeAlso Uriorcurie = 14
  optional deprecatedElementHasExactReplacement Uriorcurie = 15
  optional deprecatedElementHasPossibleReplacement Uriorcurie = 16
  optional range Element = 17
  optional rangeExpression AnonymousClassExpression = 18
  optional required Boolean = 19
  optional recommended Boolean = 20
  optional minimumValue Integer = 21
  optional maximumValue Integer = 22
  optional pattern String = 23
  optional equalsString String = 24
  repeated equalsStringIn String = 25
  optional equalsNumber Integer = 26
  optional equalsExpression String = 27
  optional minimumCardinality Integer = 28
  optional maximumCardinality Integer = 29
  optional hasMember AnonymousSlotExpression = 30
  repeated allMembers SlotDefinition = 31
  repeated noneOf AnonymousSlotExpression = 32
  repeated exactlyOneOf AnonymousSlotExpression = 33
  repeated anyOf AnonymousSlotExpression = 34
  repeated allOf AnonymousSlotExpression = 35
 }
message AnonymousTypeExpression
 {
  optional pattern String = 1
  optional equalsString String = 2
  repeated equalsStringIn String = 3
  optional equalsNumber Integer = 4
  repeated noneOf AnonymousTypeExpression = 5
  repeated exactlyOneOf AnonymousTypeExpression = 6
  repeated anyOf AnonymousTypeExpression = 7
  repeated allOf AnonymousTypeExpression = 8
 }
// the definition of a class or interface
message ClassDefinition
 {
  name String = 1
  repeated idPrefixes Ncname = 2
  optional definitionUri Uriorcurie = 3
  repeated aliases String = 4
  repeated localNames LocalName = 5
  optional conformsTo String = 6
  repeated mappings Uriorcurie = 7
  repeated exactMappings Uriorcurie = 8
  repeated closeMappings Uriorcurie = 9
  repeated relatedMappings Uriorcurie = 10
  repeated narrowMappings Uriorcurie = 11
  repeated broadMappings Uriorcurie = 12
  repeated extensions Extension = 13
  repeated annotations Annotation = 14
  optional description String = 15
  repeated altDescriptions AltDescription = 16
  optional title String = 17
  optional deprecated String = 18
  repeated todos String = 19
  repeated notes String = 20
  repeated comments String = 21
  repeated examples Example = 22
  repeated inSubset SubsetDefinition = 23
  optional fromSchema Uri = 24
  optional importedFrom String = 25
  repeated seeAlso Uriorcurie = 26
  optional deprecatedElementHasExactReplacement Uriorcurie = 27
  optional deprecatedElementHasPossibleReplacement Uriorcurie = 28
  optional abstract Boolean = 29
  optional mixin Boolean = 30
  repeated valuesFrom Uriorcurie = 31
  optional createdBy Uriorcurie = 32
  optional createdOn Datetime = 33
  optional lastUpdatedOn Datetime = 34
  optional modifiedBy Uriorcurie = 35
  optional status Uriorcurie = 36
  optional stringSerialization String = 37
  repeated slots SlotDefinition = 38
  repeated slotUsage SlotDefinition = 39
  repeated attributes SlotDefinition = 40
  optional classUri Uriorcurie = 41
  optional subclassOf Uriorcurie = 42
  repeated unionOf ClassDefinition = 43
  repeated definingSlots SlotDefinition = 44
  optional treeRoot Boolean = 45
  repeated uniqueKeys UniqueKey = 46
  repeated rules ClassRule = 47
  repeated classificationRules AnonymousClassExpression = 48
  optional isA ClassDefinition = 49
  repeated mixins ClassDefinition = 50
  repeated applyTo ClassDefinition = 51
  repeated anyOf AnonymousClassExpression = 52
  repeated exactlyOneOf AnonymousClassExpression = 53
  repeated noneOf AnonymousClassExpression = 54
  repeated allOf AnonymousClassExpression = 55
  repeated slotConditions SlotDefinition = 56
 }
// A rule that applies to instances of a class
message ClassRule
 {
  optional preconditions AnonymousClassExpression = 1
  optional postconditions AnonymousClassExpression = 2
  optional elseconditions AnonymousClassExpression = 3
  optional bidirectional Boolean = 4
  optional openWorld Boolean = 5
  optional precedence Integer = 6
  optional deactivated Boolean = 7
  repeated extensions Extension = 8
  repeated annotations Annotation = 9
  optional description String = 10
  repeated altDescriptions AltDescription = 11
  optional title String = 12
  optional deprecated String = 13
  repeated todos String = 14
  repeated notes String = 15
  repeated comments String = 16
  repeated examples Example = 17
  repeated inSubset SubsetDefinition = 18
  optional fromSchema Uri = 19
  optional importedFrom String = 20
  repeated seeAlso Uriorcurie = 21
  optional deprecatedElementHasExactReplacement Uriorcurie = 22
  optional deprecatedElementHasPossibleReplacement Uriorcurie = 23
 }
// List of values that constrain the range of a slot
message EnumDefinition
 {
  name String = 1
  repeated idPrefixes Ncname = 2
  optional definitionUri Uriorcurie = 3
  repeated aliases String = 4
  repeated localNames LocalName = 5
  optional conformsTo String = 6
  repeated mappings Uriorcurie = 7
  repeated exactMappings Uriorcurie = 8
  repeated closeMappings Uriorcurie = 9
  repeated relatedMappings Uriorcurie = 10
  repeated narrowMappings Uriorcurie = 11
  repeated broadMappings Uriorcurie = 12
  repeated extensions Extension = 13
  repeated annotations Annotation = 14
  optional description String = 15
  repeated altDescriptions AltDescription = 16
  optional title String = 17
  optional deprecated String = 18
  repeated todos String = 19
  repeated notes String = 20
  repeated comments String = 21
  repeated examples Example = 22
  repeated inSubset SubsetDefinition = 23
  optional fromSchema Uri = 24
  optional importedFrom String = 25
  repeated seeAlso Uriorcurie = 26
  optional deprecatedElementHasExactReplacement Uriorcurie = 27
  optional deprecatedElementHasPossibleReplacement Uriorcurie = 28
  optional codeSet Uriorcurie = 29
  optional codeSetTag String = 30
  optional codeSetVersion String = 31
  optional pvFormula PvFormulaOptions = 32
  repeated permissibleValues PermissibleValue = 33
 }
// usage example and description
message Example
 {
  optional value String = 1
  optional description String = 2
 }
// a tag/value pair used to add non-model information to an entry
message Extension
 {
  optional tag Uriorcurie = 1
  value String = 2
  repeated extensions Extension = 3
 }
// an attributed label
message LocalName
 {
  optional localNameSource Ncname = 1
  localNameValue String = 2
 }
// a permissible value, accompanied by intended text and an optional mapping to a concept URI
message PermissibleValue
 {
  text String = 1
  optional description String = 2
  optional meaning Uriorcurie = 3
  optional isA PermissibleValue = 4
  repeated mixins PermissibleValue = 5
  repeated extensions Extension = 6
  repeated annotations Annotation = 7
  repeated altDescriptions AltDescription = 8
  optional title String = 9
  optional deprecated String = 10
  repeated todos String = 11
  repeated notes String = 12
  repeated comments String = 13
  repeated examples Example = 14
  repeated inSubset SubsetDefinition = 15
  optional fromSchema Uri = 16
  optional importedFrom String = 17
  repeated seeAlso Uriorcurie = 18
  optional deprecatedElementHasExactReplacement Uriorcurie = 19
  optional deprecatedElementHasPossibleReplacement Uriorcurie = 20
 }
// prefix URI tuple
message Prefix
 {
  optional prefixPrefix Ncname = 1
  prefixReference Uri = 2
 }
// a collection of subset, type, slot and class definitions
message SchemaDefinition
 {
  repeated idPrefixes Ncname = 1
  optional definitionUri Uriorcurie = 2
  repeated aliases String = 3
  repeated localNames LocalName = 4
  optional conformsTo String = 5
  repeated mappings Uriorcurie = 6
  repeated exactMappings Uriorcurie = 7
  repeated closeMappings Uriorcurie = 8
  repeated relatedMappings Uriorcurie = 9
  repeated narrowMappings Uriorcurie = 10
  repeated broadMappings Uriorcurie = 11
  repeated extensions Extension = 12
  repeated annotations Annotation = 13
  optional description String = 14
  repeated altDescriptions AltDescription = 15
  optional title String = 16
  optional deprecated String = 17
  repeated todos String = 18
  repeated notes String = 19
  repeated comments String = 20
  repeated examples Example = 21
  repeated inSubset SubsetDefinition = 22
  optional fromSchema Uri = 23
  optional importedFrom String = 24
  repeated seeAlso Uriorcurie = 25
  optional deprecatedElementHasExactReplacement Uriorcurie = 26
  optional deprecatedElementHasPossibleReplacement Uriorcurie = 27
  id Uri = 28
  optional version String = 29
  repeated imports Uriorcurie = 30
  optional license String = 31
  repeated prefixes Prefix = 32
  repeated emitPrefixes Ncname = 33
  repeated defaultCuriMaps String = 34
  optional defaultPrefix String = 35
  optional defaultRange TypeDefinition = 36
  repeated subsets SubsetDefinition = 37
  repeated types TypeDefinition = 38
  repeated enums EnumDefinition = 39
  repeated slots SlotDefinition = 40
  repeated classes ClassDefinition = 41
  optional metamodelVersion String = 42
  optional sourceFile String = 43
  optional sourceFileDate Datetime = 44
  optional sourceFileSize Integer = 45
  optional generationDate Datetime = 46
  name Ncname = 47
 }
// the definition of a property or a slot
message SlotDefinition
 {
  name String = 1
  repeated idPrefixes Ncname = 2
  optional definitionUri Uriorcurie = 3
  repeated aliases String = 4
  repeated localNames LocalName = 5
  optional conformsTo String = 6
  repeated mappings Uriorcurie = 7
  repeated exactMappings Uriorcurie = 8
  repeated closeMappings Uriorcurie = 9
  repeated relatedMappings Uriorcurie = 10
  repeated narrowMappings Uriorcurie = 11
  repeated broadMappings Uriorcurie = 12
  repeated extensions Extension = 13
  repeated annotations Annotation = 14
  optional description String = 15
  repeated altDescriptions AltDescription = 16
  optional title String = 17
  optional deprecated String = 18
  repeated todos String = 19
  repeated notes String = 20
  repeated comments String = 21
  repeated examples Example = 22
  repeated inSubset SubsetDefinition = 23
  optional fromSchema Uri = 24
  optional importedFrom String = 25
  repeated seeAlso Uriorcurie = 26
  optional deprecatedElementHasExactReplacement Uriorcurie = 27
  optional deprecatedElementHasPossibleReplacement Uriorcurie = 28
  optional abstract Boolean = 29
  optional mixin Boolean = 30
  repeated valuesFrom Uriorcurie = 31
  optional createdBy Uriorcurie = 32
  optional createdOn Datetime = 33
  optional lastUpdatedOn Datetime = 34
  optional modifiedBy Uriorcurie = 35
  optional status Uriorcurie = 36
  optional stringSerialization String = 37
  optional singularName String = 38
  optional domain ClassDefinition = 39
  optional slotUri Uriorcurie = 40
  optional multivalued Boolean = 41
  optional inherited Boolean = 42
  optional readonly String = 43
  optional ifabsent String = 44
  optional inlined Boolean = 45
  optional inlinedAsList Boolean = 46
  optional key Boolean = 47
  optional identifier Boolean = 48
  optional designatesType Boolean = 49
  optional alias String = 50
  optional owner Definition = 51
  repeated domainOf ClassDefinition = 52
  optional subpropertyOf SlotDefinition = 53
  optional symmetric Boolean = 54
  optional inverse SlotDefinition = 55
  optional isClassField Boolean = 56
  optional role String = 57
  optional isUsageSlot Boolean = 58
  optional usageSlotName String = 59
  optional isA SlotDefinition = 60
  repeated mixins SlotDefinition = 61
  repeated applyTo SlotDefinition = 62
  optional range Element = 63
  optional rangeExpression AnonymousClassExpression = 64
  optional required Boolean = 65
  optional recommended Boolean = 66
  optional minimumValue Integer = 67
  optional maximumValue Integer = 68
  optional pattern String = 69
  optional equalsString String = 70
  repeated equalsStringIn String = 71
  optional equalsNumber Integer = 72
  optional equalsExpression String = 73
  optional minimumCardinality Integer = 74
  optional maximumCardinality Integer = 75
  optional hasMember AnonymousSlotExpression = 76
  repeated allMembers SlotDefinition = 77
  repeated noneOf AnonymousSlotExpression = 78
  repeated exactlyOneOf AnonymousSlotExpression = 79
  repeated anyOf AnonymousSlotExpression = 80
  repeated allOf AnonymousSlotExpression = 81
 }
// the name and description of a subset
message SubsetDefinition
 {
  name String = 1
  repeated idPrefixes Ncname = 2
  optional definitionUri Uriorcurie = 3
  repeated aliases String = 4
  repeated localNames LocalName = 5
  optional conformsTo String = 6
  repeated mappings Uriorcurie = 7
  repeated exactMappings Uriorcurie = 8
  repeated closeMappings Uriorcurie = 9
  repeated relatedMappings Uriorcurie = 10
  repeated narrowMappings Uriorcurie = 11
  repeated broadMappings Uriorcurie = 12
  repeated extensions Extension = 13
  repeated annotations Annotation = 14
  optional description String = 15
  repeated altDescriptions AltDescription = 16
  optional title String = 17
  optional deprecated String = 18
  repeated todos String = 19
  repeated notes String = 20
  repeated comments String = 21
  repeated examples Example = 22
  repeated inSubset SubsetDefinition = 23
  optional fromSchema Uri = 24
  optional importedFrom String = 25
  repeated seeAlso Uriorcurie = 26
  optional deprecatedElementHasExactReplacement Uriorcurie = 27
  optional deprecatedElementHasPossibleReplacement Uriorcurie = 28
 }
// A data type definition.
message TypeDefinition
 {
  name String = 1
  repeated idPrefixes Ncname = 2
  optional definitionUri Uriorcurie = 3
  repeated aliases String = 4
  repeated localNames LocalName = 5
  optional conformsTo String = 6
  repeated mappings Uriorcurie = 7
  repeated exactMappings Uriorcurie = 8
  repeated closeMappings Uriorcurie = 9
  repeated relatedMappings Uriorcurie = 10
  repeated narrowMappings Uriorcurie = 11
  repeated broadMappings Uriorcurie = 12
  repeated extensions Extension = 13
  repeated annotations Annotation = 14
  optional description String = 15
  repeated altDescriptions AltDescription = 16
  optional title String = 17
  optional deprecated String = 18
  repeated todos String = 19
  repeated notes String = 20
  repeated comments String = 21
  repeated examples Example = 22
  repeated inSubset SubsetDefinition = 23
  optional fromSchema Uri = 24
  optional importedFrom String = 25
  repeated seeAlso Uriorcurie = 26
  optional deprecatedElementHasExactReplacement Uriorcurie = 27
  optional deprecatedElementHasPossibleReplacement Uriorcurie = 28
  optional typeof TypeDefinition = 29
  optional base String = 30
  optional uri Uriorcurie = 31
  optional repr String = 32
  optional pattern String = 33
  optional equalsString String = 34
  repeated equalsStringIn String = 35
  optional equalsNumber Integer = 36
  repeated noneOf AnonymousTypeExpression = 37
  repeated exactlyOneOf AnonymousTypeExpression = 38
  repeated anyOf AnonymousTypeExpression = 39
  repeated allOf AnonymousTypeExpression = 40
 }
// a collection of slots whose values uniquely identify an instance of a class
message UniqueKey
 {
  repeated uniqueKeySlots SlotDefinition = 1
  repeated extensions Extension = 2
  repeated annotations Annotation = 3
  optional description String = 4
  repeated altDescriptions AltDescription = 5
  optional title String = 6
  optional deprecated String = 7
  repeated todos String = 8
  repeated notes String = 9
  repeated comments String = 10
  repeated examples Example = 11
  repeated inSubset SubsetDefinition = 12
  optional fromSchema Uri = 13
  optional importedFrom String = 14
  repeated seeAlso Uriorcurie = 15
  optional deprecatedElementHasExactReplacement Uriorcurie = 16
  optional deprecatedElementHasPossibleReplacement Uriorcurie = 17
 }

