Class: slot_definition

the definition of a property or a slot

URI: linkml:SlotDefinition

img

Parents

Uses Mixin

  • mixin: SlotExpression - an expression that constrains the range of values a slot can take

Referenced by Class

Attributes

Own

  • singular_name 0..1
    • Description: a name that is used in the singular form
    • Range: String
    • in subsets: (basic)
  • domain 0..1
    • Description: defines the type of the subject of the slot. Given the following slot definition S1: domain: C1 range: C2 the declaration X: S1: Y

implicitly asserts that X is an instance of C1

 * Range: [ClassDefinition](ClassDefinition.md)
  • slot_uri 0..1
    • Description: predicate of this slot for semantic web application
    • Range: Uriorcurie
    • in subsets: (basic)
  • multivalued 0..1
    • Description: true means that slot can have more than one value
    • Range: Boolean
    • in subsets: (minimal,basic,object_oriented)
  • inherited 0..1
    • Description: true means that the value of a slot is inherited by subclasses
    • Range: Boolean
  • readonly 0..1
    • Description: If present, slot is read only. Text explains why
    • Range: String
  • ifabsent 0..1
    • Description: function that provides a default value for the slot. Possible values for this slot are defined in linkml_runtime.utils.ifabsent_functions.default_library:
  • [Tt]rue -- boolean True
  • [Ff]alse -- boolean False
  • int(value) -- integer value
  • str(value) -- string value
  • default_range -- schema default range
  • bnode -- blank node identifier
  • slot_uri -- URI for the slot
  • class_curie -- CURIE for the containing class
  • class_uri -- URI for the containing class
  • list_elements_unique 0..1
    • Description: If True, then there must be no duplicates in the elements of a multivalued slot
    • Range: Boolean
  • list_elements_ordered 0..1
    • Description: If True, then the order of elements of a multivalued slot is guaranteed to be preserved. If False, the order may still be preserved but this is not guaranteed
    • Range: Boolean
  • shared 0..1
    • Description: If True, then the relationship between the slot domain and range is many to one or many to many
    • Range: Boolean
  • key 0..1
    • Description: True means that the key slot(s) uniquely identify the container.
    • Range: Boolean
    • in subsets: (basic,relational_model)
  • identifier 0..1
    • Description: True means that the key slot(s) uniquely identify the container. There can be at most one identifier or key per container
    • Range: Boolean
    • in subsets: (minimal,basic,relational_model)
  • designates_type 0..1
    • Description: True means that the key slot(s) is used to determine the instantiation (types) relation between objects and a ClassDefinition
    • Range: Boolean
  • alias 0..1
    • Description: the name used for a slot in the context of its owning class. If present, this is used instead of the actual slot name.
    • Range: String
  • owner 0..1
    • Description: the "owner" of the slot. It is the class if it appears in the slots list, otherwise the declaring slot
    • Range: Definition
  • domain_of 0..*
    • Description: the class(es) that reference the slot in a "slots" or "slot_usage" context
    • Range: ClassDefinition
  • subproperty_of 0..1
    • Description: Ontology property which this slot is a subproperty of. Note: setting this property on a slot does not guarantee an expansion of the ontological hiearchy into an enumerated list of possible values in every serialization of the model.
    • Range: SlotDefinition
    • Example: RO:HOM0000001 this is the RO term for "in homology relationship with", and used as a value of subproperty of this means that any ontological child (related to RO:HOM0000001 via an is_a relationship), is a valid value for the slot that declares this with the subproperty_of tag. This differs from the 'values_from' meta model component in that 'values_from' requires the id of a value set (said another way, if an entire ontology had a curie/identifier that was the identifier for the entire ontology, then that identifier would be used in 'values_from.')
  • symmetric 0..1
    • Description: If s is symmetric, and i.s=v, then v.s=i
    • Range: Boolean
  • reflexive 0..1
    • Description: If s is reflexive, then i.s=i for all instances i
    • Range: Boolean
  • locally_reflexive 0..1
    • Description: If s is locally_reflexive, then i.s=i for all instances i where s if a class slot for the type of i
    • Range: Boolean
  • irreflexive 0..1
    • Description: If s is irreflexive, then there exists no i such i.s=i
    • Range: Boolean
  • asymmetric 0..1
    • Description: If s is antisymmetric, and i.s=v where i is different from v, v.s cannot have value i
    • Range: Boolean
  • transitive 0..1
    • Description: If s is transitive, and i.s=z, and s.s=j, then i.s=j
    • Range: Boolean
  • inverse 0..1
    • Description: indicates that any instance of d s r implies that there is also an instance of r s' d
    • Range: SlotDefinition
  • is_class_field 0..1
    • Description: indicates that any instance, i, the domain of this slot will include an assert of i s range
    • Range: Boolean
  • transitive_form_of 0..1
    • Description: If s transitive_form_of d, then (1) s holds whenever d holds (2) s is transitive (3) d holds whenever s holds and there are no intermediates, and s is not reflexive
    • Range: SlotDefinition
  • reflexive_transitive_form_of 0..1
    • Description: transitive_form_of including the reflexive case
    • Range: SlotDefinition
  • role 0..1
    • Description: the role played by the slot range
    • Range: String
  • is_usage_slot 0..1
    • Description: True means that this slot was defined in a slot_usage situation
    • Range: Boolean
  • usage_slot_name 0..1
    • Description: The name of the slot referenced in the slot_usage
    • Range: String
  • relational_role 0..1
    • Description: the role a slot on a relationship class plays, for example, the subject, object or predicate roles
    • Range: relational_role_enum
  • slot_group 0..1
    • Description: allows for grouping of related slots into a grouping slot that serves the role of a group
    • Range: SlotDefinition
    • in subsets: (basic)
  • is_grouping_slot 0..1
    • Description: true if this slot is a grouping slot
    • Range: Boolean
    • in subsets: (basic)
  • path_rule 0..1
    • Description: a rule for inferring a slot assignment based on evaluating a path through a sequence of slot assignemnts
    • Range: PathExpression
  • slot_definition➞disjoint_with 0..*
    • Description: Two classes are disjoint if they have no instances in common, two slots are disjoint if they can never hold between the same two instances
    • Range: SlotDefinition
  • children_are_mutually_disjoint 0..1
    • Description: If true then all direct is_a children are mutually disjoint and share no instances in common
    • Range: Boolean
  • slot_definition➞union_of 0..*
    • Description: indicates that the domain element consists exactly of the members of the element in the range.
    • Range: TypeDefinition
  • slot_definition➞is_a 0..1
    • Description: specifies single-inheritance between classes or slots. While multiple inheritance is not allowed, mixins can be provided effectively providing the same thing. The semantics are the same when translated to formalisms that allow MI (e.g. RDFS/OWL). When translating to a SI framework (e.g. java classes, python classes) then is a is used. When translating a framework without polymorphism (e.g. json-schema, solr document schema) then is a and mixins are recursively unfolded
    • Range: SlotDefinition
    • in subsets: (basic,object_oriented)
  • slot_definition➞mixins 0..*
    • Description: List of definitions to be mixed in. Targets may be any definition of the same type
    • Range: SlotDefinition
    • in subsets: (basic,object_oriented)
  • slot_definition➞apply_to 0..*
    • Description: Used to extend class or slot definitions. For example, if we have a core schema where a gene has two slots for identifier and symbol, and we have a specialized schema for my_organism where we wish to add a slot systematic_name, we can avoid subclassing by defining a class gene_my_organism, adding the slot to this class, and then adding an apply_to pointing to the gene class. The new slot will be 'injected into' the gene class.
    • Range: SlotDefinition

Inherited from definition:

  • name 1..1
    • Description: the unique name of the element within the context of the schema. Name is combined with the default prefix to form the globally unique subject of the target class.
    • Range: String
    • in subsets: (owl,minimal,basic,relational_model,object_oriented)
  • id_prefixes 0..*
    • Description: the identifier of this class or slot must begin with the URIs referenced by this prefix
    • Range: Ncname
    • in subsets: (basic)
  • definition_uri 0..1
    • Description: the "native" URI of the element
    • Range: Uriorcurie
  • local_names 0..*
  • conforms_to 0..1
    • Description: An established standard to which the element conforms.
    • Range: String
    • in subsets: (owl,basic)
  • abstract 0..1
    • Description: an abstract class is a high level class or slot that is typically used to group common slots together and cannot be directly instantiated.
    • Range: Boolean
    • in subsets: (basic,object_oriented)
  • mixin 0..1
    • Description: this slot or class can only be used as a mixin.
    • Range: Boolean
    • in subsets: (basic,object_oriented)
  • values_from 0..*
    • Description: The identifier of a "value set" -- a set of identifiers that form the possible values for the range of a slot. Note: this is different than 'subproperty_of' in that 'subproperty_of' is intended to be a single ontology term while 'values_from' is the identifier of an entire value set. Additionally, this is different than an enumeration in that in an enumeration, the values of the enumeration are listed directly in the model itself. Setting this property on a slot does not guarantee an expansion of the ontological hiearchy into an enumerated list of possible values in every serialization of the model.
    • Range: Uriorcurie
  • created_by 0..1
    • Description: agent that created the element
    • Range: Uriorcurie
    • in subsets: (basic)
  • created_on 0..1
    • Description: time at which the element was created
    • Range: Datetime
    • in subsets: (basic)
  • last_updated_on 0..1
    • Description: time at which the element was last updated
    • Range: Datetime
    • in subsets: (basic)
  • modified_by 0..1
    • Description: agent that modified the element
    • Range: Uriorcurie
    • in subsets: (basic)
  • status 0..1
    • Description: status of the element
    • Range: Uriorcurie
    • Example: bibo:draft None
    • in subsets: (basic)
  • string_serialization 0..1
    • Description: Used on a slot that stores the string serialization of the containing object. The syntax follows python formatted strings, with slot names enclosed in {}s. These are expanded using the values of those slots. We call the slot with the serialization the s-slot, the slots used in the {}s are v-slots. If both s-slots and v-slots are populated on an object then the value of the s-slot should correspond to the expansion. Implementations of frameworks may choose to use this property to either (a) PARSE: implement automated normalizations by parsing denormalized strings into complex objects (b) GENERARE: implement automated to_string labeling of complex objects For example, a Measurement class may have 3 fields: unit, value, and string_value. The string_value slot may have a string_serialization of {value}{unit} such that if unit=cm and value=2, the value of string_value shouldd be 2cm
    • Range: String

Mixed in from slot_expression:

  • range 0..1
    • Description: defines the type of the object of the slot. Given the following slot definition S1: domain: C1 range: C2 the declaration X: S1: Y

implicitly asserts Y is an instance of C2

 * Range: [Element](Element.md)
 * in subsets: (minimal,basic,relational_model,object_oriented)

Mixed in from slot_expression:

Mixed in from slot_expression:

Mixed in from slot_expression:

  • required 0..1
    • Description: true means that the slot must be present in the loaded definition
    • Range: Boolean
    • in subsets: (minimal,basic,relational_model,object_oriented)

Mixed in from slot_expression:

  • recommended 0..1
    • Description: true means that the slot should be present in the loaded definition, but this is not required
    • Range: Boolean
    • in subsets: (basic)

Mixed in from slot_expression:

  • inlined 0..1
    • Description: True means that keyed or identified slot appears in an outer structure by value. False means that only the key or identifier for the slot appears within the domain, referencing a structure that appears elsewhere.
    • Range: Boolean
    • in subsets: (basic)

Mixed in from slot_expression:

  • inlined_as_list 0..1
    • Description: True means that an inlined slot is represented as a list of range instances. False means that an inlined slot is represented as a dictionary, whose key is the slot key or identifier and whose value is the range instance.
    • Range: Boolean
    • in subsets: (basic)

Mixed in from slot_expression:

  • minimum_value 0..1
    • Description: for slots with ranges of type number, the value must be equal to or higher than this
    • Range: Integer
    • in subsets: (basic)

Mixed in from slot_expression:

  • maximum_value 0..1
    • Description: for slots with ranges of type number, the value must be equal to or lowe than this
    • Range: Integer
    • in subsets: (basic)

Mixed in from slot_expression:

  • pattern 0..1
    • Description: the string value of the slot must conform to this regular expression expressed in the string
    • Range: String
    • in subsets: (basic)

Mixed in from slot_expression:

Mixed in from slot_expression:

  • implicit_prefix 0..1
    • Description: Causes the slot value to be interpreted as a uriorcurie after prefixing with this string
    • Range: String

Mixed in from slot_expression:

  • equals_string 0..1
    • Description: the slot must have range string and the value of the slot must equal the specified value
    • Range: String

Mixed in from slot_expression:

  • equals_string_in 0..*
    • Description: the slot must have range string and the value of the slot must equal one of the specified values
    • Range: String

Mixed in from slot_expression:

  • equals_number 0..1
    • Description: the slot must have range of a number and the value of the slot must equal the specified value
    • Range: Integer

Mixed in from slot_expression:

  • equals_expression 0..1
    • Description: the value of the slot must equal the value of the evaluated expression
    • Range: String

Mixed in from slot_expression:

Mixed in from slot_expression:

Mixed in from slot_expression:

Mixed in from slot_expression:

  • all_members 0..*
    • Description: the value of the multiavlued slot is a list where all elements conform to the specified values. this defines a dynamic class with named slots according to matching constraints

E.g to state that all members of a list are between 1 and 10

all_members:
  x:
    range: integer
    minimum_value: 10
    maximum_value: 10
 * Range: [SlotDefinition](SlotDefinition.md)

Mixed in from slot_expression:

Mixed in from slot_expression:

Mixed in from slot_expression:

Mixed in from slot_expression:

Other properties

Aliases: slot
field
property
attribute
column
variable
In Subsets: basic
Close Mappings: rdf:Property