diff --git a/codecov.yml b/codecov.yml new file mode 100644 index 00000000..e91d49cb --- /dev/null +++ b/codecov.yml @@ -0,0 +1,9 @@ +# https://docs.codecov.com/docs/codecov-yaml +coverage: + status: + project: + default: + informational: true + patch: + default: + informational: true diff --git a/linkml_runtime/linkml_model/annotations.py b/linkml_runtime/linkml_model/annotations.py index 7769bbda..a6dbfcba 100644 --- a/linkml_runtime/linkml_model/annotations.py +++ b/linkml_runtime/linkml_model/annotations.py @@ -1,5 +1,5 @@ # Auto generated from annotations.yaml by pythongen.py version: 0.9.0 -# Generation date: 2022-07-14T00:57:14 +# Generation date: 2023-09-01T13:21:10 # Schema: annotations # # id: https://w3id.org/linkml/annotations @@ -7,7 +7,6 @@ # license: https://creativecommons.org/publicdomain/zero/1.0/ import dataclasses -import sys import re from jsonasobj2 import JsonObj, as_dict from typing import Optional, List, Union, Dict, ClassVar, Any @@ -21,8 +20,8 @@ from linkml_runtime.utils.enumerations import EnumDefinitionImpl from rdflib import Namespace, URIRef from linkml_runtime.utils.curienamespace import CurieNamespace -from .extensions import Extension, ExtensionTag -from .types import String, Uriorcurie +from .extensions import AnyValue, Extension, ExtensionTag +from .types import Uriorcurie from linkml_runtime.utils.metamodelcore import URIorCURIE metamodel_version = "1.7.0" @@ -76,7 +75,7 @@ class Annotation(Extension): class_model_uri: ClassVar[URIRef] = LINKML.Annotation tag: Union[str, AnnotationTag] = None - value: str = None + value: Union[dict, AnyValue] = None annotations: Optional[Union[Dict[Union[str, AnnotationTag], Union[dict, "Annotation"]], List[Union[dict, "Annotation"]]]] = empty_dict() def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): @@ -94,4 +93,8 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): # Slots +class slots: + pass +slots.annotations = Slot(uri=LINKML.annotations, name="annotations", curie=LINKML.curie('annotations'), + model_uri=LINKML.annotations, domain=None, range=Optional[Union[Dict[Union[str, AnnotationTag], Union[dict, "Annotation"]], List[Union[dict, "Annotation"]]]]) diff --git a/linkml_runtime/linkml_model/array.py b/linkml_runtime/linkml_model/array.py new file mode 100644 index 00000000..f1cda556 --- /dev/null +++ b/linkml_runtime/linkml_model/array.py @@ -0,0 +1,419 @@ +# Auto generated from array.yaml by pythongen.py version: 0.9.0 +# Generation date: 2023-09-01T13:21:12 +# Schema: arrays +# +# id: https://w3id.org/linkml/lib/arrays +# description: LinkML templates for storing one-dimensional series, two-dimensional arrays, and arrays of higher dimensionality. +# Status: Experimental +# Note that this model is not intended to be imported directly. Instead, use `implements` to denote conformance. +# license: https://creativecommons.org/publicdomain/zero/1.0/ + +import dataclasses +import re +from jsonasobj2 import JsonObj, as_dict +from typing import Optional, List, Union, Dict, ClassVar, Any +from dataclasses import dataclass + +from linkml_runtime.utils.slot import Slot +from linkml_runtime.utils.metamodelcore import empty_list, empty_dict, bnode +from linkml_runtime.utils.yamlutils import YAMLRoot, extended_str, extended_float, extended_int +from linkml_runtime.utils.dataclass_extensions_376 import dataclasses_init_fn_with_kwargs +from linkml_runtime.utils.formatutils import camelcase, underscore, sfx +from linkml_runtime.utils.enumerations import EnumDefinitionImpl +from rdflib import Namespace, URIRef +from linkml_runtime.utils.curienamespace import CurieNamespace +from .types import Integer, String + +metamodel_version = "1.7.0" +version = None + +# Overwrite dataclasses _init_fn to add **kwargs in __init__ +dataclasses._init_fn = dataclasses_init_fn_with_kwargs + +# Namespaces +GITHUB = CurieNamespace('github', 'https://github.com/') +GOM = CurieNamespace('gom', 'https://w3id.org/gom#') +LINKML = CurieNamespace('linkml', 'https://w3id.org/linkml/') +DEFAULT_ = LINKML + + +# Types + +# Class references +class OneDimensionalSeriesSeriesLabel(extended_str): + pass + + +Any = Any + +class DataStructure(YAMLRoot): + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = LINKML.DataStructure + class_class_curie: ClassVar[str] = "linkml:DataStructure" + class_name: ClassVar[str] = "DataStructure" + class_model_uri: ClassVar[URIRef] = LINKML.DataStructure + + +@dataclass +class Array(DataStructure): + """ + a data structure consisting of a collection of *elements*, each identified by at least one array index tuple. + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = LINKML.Array + class_class_curie: ClassVar[str] = "linkml:Array" + class_name: ClassVar[str] = "Array" + class_model_uri: ClassVar[URIRef] = LINKML.Array + + elements: Union[Union[dict, Any], List[Union[dict, Any]]] = None + dimensionality: Optional[int] = None + array_linearization_order: Optional[Union[str, "ArrayLinearizationOrderOptions"]] = "ROW_MAJOR_ARRAY_ORDER" + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self.dimensionality is not None and not isinstance(self.dimensionality, int): + self.dimensionality = int(self.dimensionality) + + if self.array_linearization_order is not None and not isinstance(self.array_linearization_order, ArrayLinearizationOrderOptions): + self.array_linearization_order = ArrayLinearizationOrderOptions(self.array_linearization_order) + + super().__post_init__(**kwargs) + + +@dataclass +class OneDimensionalSeries(Array): + """ + An array that has one dimension + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = LINKML.OneDimensionalSeries + class_class_curie: ClassVar[str] = "linkml:OneDimensionalSeries" + class_name: ClassVar[str] = "OneDimensionalSeries" + class_model_uri: ClassVar[URIRef] = LINKML.OneDimensionalSeries + + series_label: Union[str, OneDimensionalSeriesSeriesLabel] = None + elements: Union[Union[dict, Any], List[Union[dict, Any]]] = None + length: Optional[int] = None + dimensionality: Optional[int] = None + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.series_label): + self.MissingRequiredField("series_label") + if not isinstance(self.series_label, OneDimensionalSeriesSeriesLabel): + self.series_label = OneDimensionalSeriesSeriesLabel(self.series_label) + + if self.length is not None and not isinstance(self.length, int): + self.length = int(self.length) + + if self.dimensionality is not None and not isinstance(self.dimensionality, int): + self.dimensionality = int(self.dimensionality) + + super().__post_init__(**kwargs) + + +@dataclass +class TwoDimensionalArray(Array): + """ + An array that has two dimensions + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = LINKML.TwoDimensionalArray + class_class_curie: ClassVar[str] = "linkml:TwoDimensionalArray" + class_name: ClassVar[str] = "TwoDimensionalArray" + class_model_uri: ClassVar[URIRef] = LINKML.TwoDimensionalArray + + axis0: Union[dict, OneDimensionalSeries] = None + axis1: Union[dict, OneDimensionalSeries] = None + elements: Union[Union[dict, Any], List[Union[dict, Any]]] = None + dimensionality: Optional[int] = None + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.axis0): + self.MissingRequiredField("axis0") + if not isinstance(self.axis0, OneDimensionalSeries): + self.axis0 = OneDimensionalSeries(**as_dict(self.axis0)) + + if self._is_empty(self.axis1): + self.MissingRequiredField("axis1") + if not isinstance(self.axis1, OneDimensionalSeries): + self.axis1 = OneDimensionalSeries(**as_dict(self.axis1)) + + if self.dimensionality is not None and not isinstance(self.dimensionality, int): + self.dimensionality = int(self.dimensionality) + + super().__post_init__(**kwargs) + + +@dataclass +class ThreeDimensionalArray(Array): + """ + An array that has two dimensions + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = LINKML.ThreeDimensionalArray + class_class_curie: ClassVar[str] = "linkml:ThreeDimensionalArray" + class_name: ClassVar[str] = "ThreeDimensionalArray" + class_model_uri: ClassVar[URIRef] = LINKML.ThreeDimensionalArray + + elements: Union[Union[dict, Any], List[Union[dict, Any]]] = None + axis0: Union[dict, OneDimensionalSeries] = None + axis1: Union[dict, OneDimensionalSeries] = None + axis2: Union[dict, OneDimensionalSeries] = None + dimensionality: Optional[int] = None + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.axis0): + self.MissingRequiredField("axis0") + if not isinstance(self.axis0, OneDimensionalSeries): + self.axis0 = OneDimensionalSeries(**as_dict(self.axis0)) + + if self._is_empty(self.axis1): + self.MissingRequiredField("axis1") + if not isinstance(self.axis1, OneDimensionalSeries): + self.axis1 = OneDimensionalSeries(**as_dict(self.axis1)) + + if self._is_empty(self.axis2): + self.MissingRequiredField("axis2") + if not isinstance(self.axis2, OneDimensionalSeries): + self.axis2 = OneDimensionalSeries(**as_dict(self.axis2)) + + if self.dimensionality is not None and not isinstance(self.dimensionality, int): + self.dimensionality = int(self.dimensionality) + + super().__post_init__(**kwargs) + + +class OrderedArray(YAMLRoot): + """ + A mixin that describes an array whose elements are mapped from a linear sequence to an array index via a specified + mapping + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = LINKML.OrderedArray + class_class_curie: ClassVar[str] = "linkml:OrderedArray" + class_name: ClassVar[str] = "OrderedArray" + class_model_uri: ClassVar[URIRef] = LINKML.OrderedArray + + +@dataclass +class ColumnOrderedArray(YAMLRoot): + """ + An array ordering that is column-order + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = LINKML.ColumnOrderedArray + class_class_curie: ClassVar[str] = "linkml:ColumnOrderedArray" + class_name: ClassVar[str] = "ColumnOrderedArray" + class_model_uri: ClassVar[URIRef] = LINKML.ColumnOrderedArray + + array_linearization_order: Optional[Union[str, "ArrayLinearizationOrderOptions"]] = "ROW_MAJOR_ARRAY_ORDER" + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self.array_linearization_order is not None and not isinstance(self.array_linearization_order, ArrayLinearizationOrderOptions): + self.array_linearization_order = ArrayLinearizationOrderOptions(self.array_linearization_order) + + super().__post_init__(**kwargs) + + +@dataclass +class RowOrderedArray(YAMLRoot): + """ + An array ordering that is row-order or generalizations thereof + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = LINKML.RowOrderedArray + class_class_curie: ClassVar[str] = "linkml:RowOrderedArray" + class_name: ClassVar[str] = "RowOrderedArray" + class_model_uri: ClassVar[URIRef] = LINKML.RowOrderedArray + + array_linearization_order: Optional[Union[str, "ArrayLinearizationOrderOptions"]] = "ROW_MAJOR_ARRAY_ORDER" + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self.array_linearization_order is not None and not isinstance(self.array_linearization_order, ArrayLinearizationOrderOptions): + self.array_linearization_order = ArrayLinearizationOrderOptions(self.array_linearization_order) + + super().__post_init__(**kwargs) + + +@dataclass +class MultiDimensionalArray(Array): + """ + An array that has more than two dimensions + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = LINKML.MultiDimensionalArray + class_class_curie: ClassVar[str] = "linkml:MultiDimensionalArray" + class_name: ClassVar[str] = "MultiDimensionalArray" + class_model_uri: ClassVar[URIRef] = LINKML.MultiDimensionalArray + + elements: Union[Union[dict, Any], List[Union[dict, Any]]] = None + +class ObjectAsTuple(YAMLRoot): + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = LINKML.ObjectAsTuple + class_class_curie: ClassVar[str] = "linkml:ObjectAsTuple" + class_name: ClassVar[str] = "ObjectAsTuple" + class_model_uri: ClassVar[URIRef] = LINKML.ObjectAsTuple + + +class ArrayIndex(ObjectAsTuple): + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = LINKML.ArrayIndex + class_class_curie: ClassVar[str] = "linkml:ArrayIndex" + class_name: ClassVar[str] = "ArrayIndex" + class_model_uri: ClassVar[URIRef] = LINKML.ArrayIndex + + +@dataclass +class Operation(YAMLRoot): + """ + Represents the transformation of one or more inputs to one or more outputs determined by zero to many operation + parameters + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = LINKML.Operation + class_class_curie: ClassVar[str] = "linkml:Operation" + class_name: ClassVar[str] = "Operation" + class_model_uri: ClassVar[URIRef] = LINKML.Operation + + specified_input: Optional[Union[Union[dict, DataStructure], List[Union[dict, DataStructure]]]] = empty_list() + specified_output: Optional[Union[Union[dict, DataStructure], List[Union[dict, DataStructure]]]] = empty_list() + operation_parameters: Optional[Union[Union[dict, Any], List[Union[dict, Any]]]] = empty_list() + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if not isinstance(self.specified_input, list): + self.specified_input = [self.specified_input] if self.specified_input is not None else [] + self.specified_input = [v if isinstance(v, DataStructure) else DataStructure(**as_dict(v)) for v in self.specified_input] + + if not isinstance(self.specified_output, list): + self.specified_output = [self.specified_output] if self.specified_output is not None else [] + self.specified_output = [v if isinstance(v, DataStructure) else DataStructure(**as_dict(v)) for v in self.specified_output] + + super().__post_init__(**kwargs) + + +@dataclass +class ArrayIndexOperation(YAMLRoot): + """ + An operation that takes as input an Array and is parameterized by an array index tuple and yields an array element + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = LINKML.ArrayIndexOperation + class_class_curie: ClassVar[str] = "linkml:ArrayIndexOperation" + class_name: ClassVar[str] = "ArrayIndexOperation" + class_model_uri: ClassVar[URIRef] = LINKML.ArrayIndexOperation + + specified_input: Optional[Union[Union[dict, Array], List[Union[dict, Array]]]] = empty_list() + specified_output: Optional[Union[Union[dict, Any], List[Union[dict, Any]]]] = empty_list() + operation_parameters: Optional[Union[Union[dict, ArrayIndex], List[Union[dict, ArrayIndex]]]] = empty_list() + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + self._normalize_inlined_as_dict(slot_name="specified_input", slot_type=Array, key_name="elements", keyed=False) + + if not isinstance(self.operation_parameters, list): + self.operation_parameters = [self.operation_parameters] if self.operation_parameters is not None else [] + self.operation_parameters = [v if isinstance(v, ArrayIndex) else ArrayIndex(**as_dict(v)) for v in self.operation_parameters] + + super().__post_init__(**kwargs) + + +# Enumerations +class ArrayLinearizationOrderOptions(EnumDefinitionImpl): + """ + Determines how a linear contiguous representation of the elements of an array map to array indices + """ + COLUMN_MAJOR_ARRAY_ORDER = PermissibleValue( + text="COLUMN_MAJOR_ARRAY_ORDER", + description="""An array layout option in which the elements in each column is stored in consecutive positions, or any generalization thereof to dimensionality greater than 2""", + meaning=GOM.columnMajorArray) + ROW_MAJOR_ARRAY_ORDER = PermissibleValue( + text="ROW_MAJOR_ARRAY_ORDER", + description="""An array layout option in which the elements in each row is stored in consecutive positions, or any generalization thereof to dimensionality greater than 2""", + meaning=GOM.rowMajorArray) + + _defn = EnumDefinition( + name="ArrayLinearizationOrderOptions", + description="Determines how a linear contiguous representation of the elements of an array map to array indices", + ) + +# Slots +class slots: + pass + +slots.dimensionality = Slot(uri=LINKML.dimensionality, name="dimensionality", curie=LINKML.curie('dimensionality'), + model_uri=LINKML.dimensionality, domain=None, range=Optional[int]) + +slots.axis = Slot(uri=LINKML.axis, name="axis", curie=LINKML.curie('axis'), + model_uri=LINKML.axis, domain=None, range=Optional[Union[str, OneDimensionalSeriesSeriesLabel]]) + +slots.axis0 = Slot(uri=LINKML.axis0, name="axis0", curie=LINKML.curie('axis0'), + model_uri=LINKML.axis0, domain=None, range=Union[dict, OneDimensionalSeries]) + +slots.axis1 = Slot(uri=LINKML.axis1, name="axis1", curie=LINKML.curie('axis1'), + model_uri=LINKML.axis1, domain=None, range=Union[dict, OneDimensionalSeries]) + +slots.axis2 = Slot(uri=LINKML.axis2, name="axis2", curie=LINKML.curie('axis2'), + model_uri=LINKML.axis2, domain=None, range=Union[dict, OneDimensionalSeries]) + +slots.elements = Slot(uri=LINKML.elements, name="elements", curie=LINKML.curie('elements'), + model_uri=LINKML.elements, domain=None, range=Union[Union[dict, Any], List[Union[dict, Any]]]) + +slots.series_label = Slot(uri=LINKML.series_label, name="series_label", curie=LINKML.curie('series_label'), + model_uri=LINKML.series_label, domain=None, range=URIRef) + +slots.length = Slot(uri=LINKML.length, name="length", curie=LINKML.curie('length'), + model_uri=LINKML.length, domain=None, range=Optional[int]) + +slots.array_linearization_order = Slot(uri=LINKML.array_linearization_order, name="array_linearization_order", curie=LINKML.curie('array_linearization_order'), + model_uri=LINKML.array_linearization_order, domain=None, range=Optional[Union[str, "ArrayLinearizationOrderOptions"]]) + +slots.specified_input = Slot(uri=LINKML.specified_input, name="specified_input", curie=LINKML.curie('specified_input'), + model_uri=LINKML.specified_input, domain=None, range=Optional[Union[Union[dict, DataStructure], List[Union[dict, DataStructure]]]]) + +slots.specified_output = Slot(uri=LINKML.specified_output, name="specified_output", curie=LINKML.curie('specified_output'), + model_uri=LINKML.specified_output, domain=None, range=Optional[Union[Union[dict, DataStructure], List[Union[dict, DataStructure]]]]) + +slots.operation_parameters = Slot(uri=LINKML.operation_parameters, name="operation_parameters", curie=LINKML.curie('operation_parameters'), + model_uri=LINKML.operation_parameters, domain=None, range=Optional[Union[Union[dict, Any], List[Union[dict, Any]]]]) + +slots.Array_elements = Slot(uri=LINKML.elements, name="Array_elements", curie=LINKML.curie('elements'), + model_uri=LINKML.Array_elements, domain=Array, range=Union[Union[dict, Any], List[Union[dict, Any]]]) + +slots.OneDimensionalSeries_dimensionality = Slot(uri=LINKML.dimensionality, name="OneDimensionalSeries_dimensionality", curie=LINKML.curie('dimensionality'), + model_uri=LINKML.OneDimensionalSeries_dimensionality, domain=OneDimensionalSeries, range=Optional[int]) + +slots.TwoDimensionalArray_dimensionality = Slot(uri=LINKML.dimensionality, name="TwoDimensionalArray_dimensionality", curie=LINKML.curie('dimensionality'), + model_uri=LINKML.TwoDimensionalArray_dimensionality, domain=TwoDimensionalArray, range=Optional[int]) + +slots.TwoDimensionalArray_elements = Slot(uri=LINKML.elements, name="TwoDimensionalArray_elements", curie=LINKML.curie('elements'), + model_uri=LINKML.TwoDimensionalArray_elements, domain=TwoDimensionalArray, range=Union[Union[dict, Any], List[Union[dict, Any]]]) + +slots.ThreeDimensionalArray_dimensionality = Slot(uri=LINKML.dimensionality, name="ThreeDimensionalArray_dimensionality", curie=LINKML.curie('dimensionality'), + model_uri=LINKML.ThreeDimensionalArray_dimensionality, domain=ThreeDimensionalArray, range=Optional[int]) + +slots.ColumnOrderedArray_array_linearization_order = Slot(uri=LINKML.array_linearization_order, name="ColumnOrderedArray_array_linearization_order", curie=LINKML.curie('array_linearization_order'), + model_uri=LINKML.ColumnOrderedArray_array_linearization_order, domain=None, range=Optional[Union[str, "ArrayLinearizationOrderOptions"]]) + +slots.RowOrderedArray_array_linearization_order = Slot(uri=LINKML.array_linearization_order, name="RowOrderedArray_array_linearization_order", curie=LINKML.curie('array_linearization_order'), + model_uri=LINKML.RowOrderedArray_array_linearization_order, domain=None, range=Optional[Union[str, "ArrayLinearizationOrderOptions"]]) + +slots.ArrayIndexOperation_specified_input = Slot(uri=LINKML.specified_input, name="ArrayIndexOperation_specified_input", curie=LINKML.curie('specified_input'), + model_uri=LINKML.ArrayIndexOperation_specified_input, domain=ArrayIndexOperation, range=Optional[Union[Union[dict, Array], List[Union[dict, Array]]]]) + +slots.ArrayIndexOperation_specified_output = Slot(uri=LINKML.specified_output, name="ArrayIndexOperation_specified_output", curie=LINKML.curie('specified_output'), + model_uri=LINKML.ArrayIndexOperation_specified_output, domain=ArrayIndexOperation, range=Optional[Union[Union[dict, Any], List[Union[dict, Any]]]]) + +slots.ArrayIndexOperation_operation_parameters = Slot(uri=LINKML.operation_parameters, name="ArrayIndexOperation_operation_parameters", curie=LINKML.curie('operation_parameters'), + model_uri=LINKML.ArrayIndexOperation_operation_parameters, domain=ArrayIndexOperation, range=Optional[Union[Union[dict, ArrayIndex], List[Union[dict, ArrayIndex]]]]) diff --git a/linkml_runtime/linkml_model/datasets.py b/linkml_runtime/linkml_model/datasets.py new file mode 100644 index 00000000..d5c603fa --- /dev/null +++ b/linkml_runtime/linkml_model/datasets.py @@ -0,0 +1,544 @@ +# Auto generated from datasets.yaml by pythongen.py version: 0.9.0 +# Generation date: 2023-09-01T13:21:13 +# Schema: datasets +# +# id: https://w3id.org/linkml/datasets +# description: A datamodel for datasets +# license: https://creativecommons.org/publicdomain/zero/1.0/ + +import dataclasses +import re +from jsonasobj2 import JsonObj, as_dict +from typing import Optional, List, Union, Dict, ClassVar, Any +from dataclasses import dataclass + +from linkml_runtime.utils.slot import Slot +from linkml_runtime.utils.metamodelcore import empty_list, empty_dict, bnode +from linkml_runtime.utils.yamlutils import YAMLRoot, extended_str, extended_float, extended_int +from linkml_runtime.utils.dataclass_extensions_376 import dataclasses_init_fn_with_kwargs +from linkml_runtime.utils.formatutils import camelcase, underscore, sfx +from linkml_runtime.utils.enumerations import EnumDefinitionImpl +from rdflib import Namespace, URIRef +from linkml_runtime.utils.curienamespace import CurieNamespace +from .types import Datetime, Integer, String, Uri, Uriorcurie +from linkml_runtime.utils.metamodelcore import URI, URIorCURIE, XSDDateTime + +metamodel_version = "1.7.0" +version = None + +# Overwrite dataclasses _init_fn to add **kwargs in __init__ +dataclasses._init_fn = dataclasses_init_fn_with_kwargs + +# Namespaces +BIBO = CurieNamespace('bibo', 'http://example.org/UNKNOWN/bibo/') +CSVW = CurieNamespace('csvw', 'http://www.w3.org/ns/csvw#') +DATASETS = CurieNamespace('datasets', 'https://w3id.org/linkml/report') +DCAT = CurieNamespace('dcat', 'http://www.w3.org/ns/dcat#') +DCTERMS = CurieNamespace('dcterms', 'http://purl.org/dc/terms/') +FORMATS = CurieNamespace('formats', 'http://www.w3.org/ns/formats/') +FRICTIONLESS = CurieNamespace('frictionless', 'https://specs.frictionlessdata.io/') +LINKML = CurieNamespace('linkml', 'https://w3id.org/linkml/') +MEDIATYPES = CurieNamespace('mediatypes', 'https://www.iana.org/assignments/media-types/') +OSLC = CurieNamespace('oslc', 'http://example.org/UNKNOWN/oslc/') +OWL = CurieNamespace('owl', 'http://www.w3.org/2002/07/owl#') +PAV = CurieNamespace('pav', 'http://purl.org/pav/') +PROV = CurieNamespace('prov', 'http://www.w3.org/ns/prov#') +RDF = CurieNamespace('rdf', 'http://www.w3.org/1999/02/22-rdf-syntax-ns#') +RDFS = CurieNamespace('rdfs', 'http://www.w3.org/2000/01/rdf-schema#') +SCHEMA = CurieNamespace('schema', 'http://schema.org/') +SH = CurieNamespace('sh', 'https://w3id.org/shacl/') +SKOS = CurieNamespace('skos', 'http://www.w3.org/2004/02/skos/core#') +VOID = CurieNamespace('void', 'http://rdfs.org/ns/void#') +XSD = CurieNamespace('xsd', 'http://www.w3.org/2001/XMLSchema#') +DEFAULT_ = DATASETS + + +# Types + +# Class references +class InformationId(extended_str): + pass + + +class DataPackageId(InformationId): + pass + + +class DataResourceId(InformationId): + pass + + +@dataclass +class Information(YAMLRoot): + """ + Grouping for datasets and data files + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = DATASETS.Information + class_class_curie: ClassVar[str] = "datasets:Information" + class_name: ClassVar[str] = "Information" + class_model_uri: ClassVar[URIRef] = DATASETS.Information + + id: Union[str, InformationId] = None + download_url: Optional[Union[str, URI]] = None + license: Optional[str] = None + title: Optional[str] = None + description: Optional[str] = None + conforms_to: Optional[Union[str, URIorCURIE]] = None + conforms_to_schema: Optional[Union[str, URIorCURIE]] = None + conforms_to_class: Optional[Union[str, URIorCURIE]] = None + version: Optional[str] = None + language: Optional[str] = None + publisher: Optional[Union[str, URIorCURIE]] = None + keywords: Optional[Union[str, List[str]]] = empty_list() + issued: Optional[Union[str, XSDDateTime]] = None + created_by: Optional[Union[str, URIorCURIE]] = None + created_on: Optional[Union[str, XSDDateTime]] = None + compression: Optional[str] = None + was_derived_from: Optional[str] = None + page: Optional[str] = None + test_roles: Optional[Union[Union[str, "TestRole"], List[Union[str, "TestRole"]]]] = empty_list() + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.id): + self.MissingRequiredField("id") + if not isinstance(self.id, InformationId): + self.id = InformationId(self.id) + + if self.download_url is not None and not isinstance(self.download_url, URI): + self.download_url = URI(self.download_url) + + if self.license is not None and not isinstance(self.license, str): + self.license = str(self.license) + + if self.title is not None and not isinstance(self.title, str): + self.title = str(self.title) + + if self.description is not None and not isinstance(self.description, str): + self.description = str(self.description) + + if self.conforms_to is not None and not isinstance(self.conforms_to, URIorCURIE): + self.conforms_to = URIorCURIE(self.conforms_to) + + if self.conforms_to_schema is not None and not isinstance(self.conforms_to_schema, URIorCURIE): + self.conforms_to_schema = URIorCURIE(self.conforms_to_schema) + + if self.conforms_to_class is not None and not isinstance(self.conforms_to_class, URIorCURIE): + self.conforms_to_class = URIorCURIE(self.conforms_to_class) + + if self.version is not None and not isinstance(self.version, str): + self.version = str(self.version) + + if self.language is not None and not isinstance(self.language, str): + self.language = str(self.language) + + if self.publisher is not None and not isinstance(self.publisher, URIorCURIE): + self.publisher = URIorCURIE(self.publisher) + + if not isinstance(self.keywords, list): + self.keywords = [self.keywords] if self.keywords is not None else [] + self.keywords = [v if isinstance(v, str) else str(v) for v in self.keywords] + + if self.issued is not None and not isinstance(self.issued, XSDDateTime): + self.issued = XSDDateTime(self.issued) + + if self.created_by is not None and not isinstance(self.created_by, URIorCURIE): + self.created_by = URIorCURIE(self.created_by) + + if self.created_on is not None and not isinstance(self.created_on, XSDDateTime): + self.created_on = XSDDateTime(self.created_on) + + if self.compression is not None and not isinstance(self.compression, str): + self.compression = str(self.compression) + + if self.was_derived_from is not None and not isinstance(self.was_derived_from, str): + self.was_derived_from = str(self.was_derived_from) + + if self.page is not None and not isinstance(self.page, str): + self.page = str(self.page) + + if not isinstance(self.test_roles, list): + self.test_roles = [self.test_roles] if self.test_roles is not None else [] + self.test_roles = [v if isinstance(v, TestRole) else TestRole(v) for v in self.test_roles] + + super().__post_init__(**kwargs) + + +@dataclass +class DataPackage(Information): + """ + A collection of data resources + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = VOID.Dataset + class_class_curie: ClassVar[str] = "void:Dataset" + class_name: ClassVar[str] = "DataPackage" + class_model_uri: ClassVar[URIRef] = DATASETS.DataPackage + + id: Union[str, DataPackageId] = None + resources: Optional[Union[Union[str, DataResourceId], List[Union[str, DataResourceId]]]] = empty_list() + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.id): + self.MissingRequiredField("id") + if not isinstance(self.id, DataPackageId): + self.id = DataPackageId(self.id) + + if not isinstance(self.resources, list): + self.resources = [self.resources] if self.resources is not None else [] + self.resources = [v if isinstance(v, DataResourceId) else DataResourceId(v) for v in self.resources] + + super().__post_init__(**kwargs) + + +@dataclass +class DataResource(Information): + """ + An individual file or table + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = DCAT.Distribution + class_class_curie: ClassVar[str] = "dcat:Distribution" + class_name: ClassVar[str] = "DataResource" + class_model_uri: ClassVar[URIRef] = DATASETS.DataResource + + id: Union[str, DataResourceId] = None + path: Optional[str] = None + title: Optional[str] = None + description: Optional[str] = None + format: Optional[Union[str, "FormatEnum"]] = None + media_type: Optional[str] = None + encoding: Optional[str] = None + bytes: Optional[int] = None + hash: Optional[str] = None + md5: Optional[str] = None + sha256: Optional[str] = None + dialect: Optional[str] = None + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.id): + self.MissingRequiredField("id") + if not isinstance(self.id, DataResourceId): + self.id = DataResourceId(self.id) + + if self.path is not None and not isinstance(self.path, str): + self.path = str(self.path) + + if self.title is not None and not isinstance(self.title, str): + self.title = str(self.title) + + if self.description is not None and not isinstance(self.description, str): + self.description = str(self.description) + + if self.format is not None and not isinstance(self.format, FormatEnum): + self.format = FormatEnum(self.format) + + if self.media_type is not None and not isinstance(self.media_type, str): + self.media_type = str(self.media_type) + + if self.encoding is not None and not isinstance(self.encoding, str): + self.encoding = str(self.encoding) + + if self.bytes is not None and not isinstance(self.bytes, int): + self.bytes = int(self.bytes) + + if self.hash is not None and not isinstance(self.hash, str): + self.hash = str(self.hash) + + if self.md5 is not None and not isinstance(self.md5, str): + self.md5 = str(self.md5) + + if self.sha256 is not None and not isinstance(self.sha256, str): + self.sha256 = str(self.sha256) + + if self.dialect is not None and not isinstance(self.dialect, str): + self.dialect = str(self.dialect) + + super().__post_init__(**kwargs) + + +@dataclass +class FormatDialect(YAMLRoot): + """ + Additional format information for a file + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = DATASETS.FormatDialect + class_class_curie: ClassVar[str] = "datasets:FormatDialect" + class_name: ClassVar[str] = "FormatDialect" + class_model_uri: ClassVar[URIRef] = DATASETS.FormatDialect + + comment_prefix: Optional[str] = None + delimiter: Optional[str] = None + double_quote: Optional[str] = None + header: Optional[str] = None + quote_char: Optional[str] = None + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self.comment_prefix is not None and not isinstance(self.comment_prefix, str): + self.comment_prefix = str(self.comment_prefix) + + if self.delimiter is not None and not isinstance(self.delimiter, str): + self.delimiter = str(self.delimiter) + + if self.double_quote is not None and not isinstance(self.double_quote, str): + self.double_quote = str(self.double_quote) + + if self.header is not None and not isinstance(self.header, str): + self.header = str(self.header) + + if self.quote_char is not None and not isinstance(self.quote_char, str): + self.quote_char = str(self.quote_char) + + super().__post_init__(**kwargs) + + +# Enumerations +class TestRole(EnumDefinitionImpl): + + Example = PermissibleValue(text="Example") + CounterExample = PermissibleValue(text="CounterExample") + + _defn = EnumDefinition( + name="TestRole", + ) + +class MediaTypeEnum(EnumDefinitionImpl): + + csv = PermissibleValue( + text="csv", + meaning=MEDIATYPES["text/csv"]) + + _defn = EnumDefinition( + name="MediaTypeEnum", + ) + + @classmethod + def _addvals(cls): + setattr(cls, "rdf-xml", + PermissibleValue( + text="rdf-xml", + meaning=MEDIATYPES["application/rdf+xml"])) + +class FormatEnum(EnumDefinitionImpl): + + N3 = PermissibleValue( + text="N3", + meaning=FORMATS.N3) + Microdata = PermissibleValue( + text="Microdata", + meaning=FORMATS.microdata) + POWDER = PermissibleValue( + text="POWDER", + meaning=FORMATS.POWDER) + RDFa = PermissibleValue( + text="RDFa", + meaning=FORMATS.RDFa) + Turtle = PermissibleValue( + text="Turtle", + meaning=FORMATS.Turtle) + TriG = PermissibleValue( + text="TriG", + meaning=FORMATS.TriG) + YAML = PermissibleValue(text="YAML") + JSON = PermissibleValue(text="JSON") + + _defn = EnumDefinition( + name="FormatEnum", + ) + + @classmethod + def _addvals(cls): + setattr(cls, "JSON-LD", + PermissibleValue( + text="JSON-LD", + meaning=FORMATS["JSON-LD"])) + setattr(cls, "N-Triples", + PermissibleValue( + text="N-Triples", + meaning=FORMATS["N-Triples"])) + setattr(cls, "N-Quads", + PermissibleValue( + text="N-Quads", + meaning=FORMATS["N-Quads"])) + setattr(cls, "LD Patch", + PermissibleValue( + text="LD Patch", + meaning=FORMATS.LD_Patch)) + setattr(cls, "OWL XML Serialization", + PermissibleValue( + text="OWL XML Serialization", + meaning=FORMATS.OWL_XML)) + setattr(cls, "OWL Functional Syntax", + PermissibleValue( + text="OWL Functional Syntax", + meaning=FORMATS.OWL_Functional)) + setattr(cls, "OWL Manchester Syntax", + PermissibleValue( + text="OWL Manchester Syntax", + meaning=FORMATS.OWL_Manchester)) + setattr(cls, "POWDER-S", + PermissibleValue( + text="POWDER-S", + meaning=FORMATS["POWDER-S"])) + setattr(cls, "PROV-N", + PermissibleValue( + text="PROV-N", + meaning=FORMATS["PROV-N"])) + setattr(cls, "PROV-XML", + PermissibleValue( + text="PROV-XML", + meaning=FORMATS["PROV-XML"])) + setattr(cls, "RDF/JSON", + PermissibleValue( + text="RDF/JSON", + meaning=FORMATS.RDF_JSON)) + setattr(cls, "RDF/XML", + PermissibleValue( + text="RDF/XML", + meaning=FORMATS.RDF_XML)) + setattr(cls, "RIF XML Syntax", + PermissibleValue( + text="RIF XML Syntax", + meaning=FORMATS.RIF_XML)) + setattr(cls, "SPARQL Results in XML", + PermissibleValue( + text="SPARQL Results in XML", + meaning=FORMATS.SPARQL_Results_XML)) + setattr(cls, "SPARQL Results in JSON", + PermissibleValue( + text="SPARQL Results in JSON", + meaning=FORMATS.SPARQL_Results_JSON)) + setattr(cls, "SPARQL Results in CSV", + PermissibleValue( + text="SPARQL Results in CSV", + meaning=FORMATS.SPARQL_Results_CSV)) + setattr(cls, "SPARQL Results in TSV", + PermissibleValue( + text="SPARQL Results in TSV", + meaning=FORMATS.SPARQL_Results_TSV)) + +# Slots +class slots: + pass + +slots.id = Slot(uri=DCTERMS.identifier, name="id", curie=DCTERMS.curie('identifier'), + model_uri=DATASETS.id, domain=None, range=URIRef) + +slots.title = Slot(uri=DCTERMS.title, name="title", curie=DCTERMS.curie('title'), + model_uri=DATASETS.title, domain=None, range=Optional[str]) + +slots.description = Slot(uri=DCTERMS.description, name="description", curie=DCTERMS.curie('description'), + model_uri=DATASETS.description, domain=None, range=Optional[str]) + +slots.language = Slot(uri=DATASETS.language, name="language", curie=DATASETS.curie('language'), + model_uri=DATASETS.language, domain=None, range=Optional[str]) + +slots.publisher = Slot(uri=DCTERMS.publisher, name="publisher", curie=DCTERMS.curie('publisher'), + model_uri=DATASETS.publisher, domain=None, range=Optional[Union[str, URIorCURIE]]) + +slots.issued = Slot(uri=DCTERMS.issued, name="issued", curie=DCTERMS.curie('issued'), + model_uri=DATASETS.issued, domain=None, range=Optional[Union[str, XSDDateTime]]) + +slots.page = Slot(uri=DCAT.landingPage, name="page", curie=DCAT.curie('landingPage'), + model_uri=DATASETS.page, domain=None, range=Optional[str]) + +slots.dialect = Slot(uri=CSVW.dialect, name="dialect", curie=CSVW.curie('dialect'), + model_uri=DATASETS.dialect, domain=None, range=Optional[str]) + +slots.bytes = Slot(uri=DCAT.byteSize, name="bytes", curie=DCAT.curie('byteSize'), + model_uri=DATASETS.bytes, domain=None, range=Optional[int]) + +slots.path = Slot(uri=DATASETS.path, name="path", curie=DATASETS.curie('path'), + model_uri=DATASETS.path, domain=None, range=Optional[str]) + +slots.download_url = Slot(uri=DCAT.downloadURL, name="download_url", curie=DCAT.curie('downloadURL'), + model_uri=DATASETS.download_url, domain=None, range=Optional[Union[str, URI]]) + +slots.format = Slot(uri=DCTERMS.format, name="format", curie=DCTERMS.curie('format'), + model_uri=DATASETS.format, domain=None, range=Optional[Union[str, "FormatEnum"]]) + +slots.compression = Slot(uri=DATASETS.compression, name="compression", curie=DATASETS.curie('compression'), + model_uri=DATASETS.compression, domain=None, range=Optional[str]) + +slots.encoding = Slot(uri=DATASETS.encoding, name="encoding", curie=DATASETS.curie('encoding'), + model_uri=DATASETS.encoding, domain=None, range=Optional[str]) + +slots.hash = Slot(uri=DATASETS.hash, name="hash", curie=DATASETS.curie('hash'), + model_uri=DATASETS.hash, domain=None, range=Optional[str]) + +slots.sha256 = Slot(uri=DATASETS.sha256, name="sha256", curie=DATASETS.curie('sha256'), + model_uri=DATASETS.sha256, domain=None, range=Optional[str]) + +slots.md5 = Slot(uri=DATASETS.md5, name="md5", curie=DATASETS.curie('md5'), + model_uri=DATASETS.md5, domain=None, range=Optional[str]) + +slots.media_type = Slot(uri=DCAT.mediaType, name="media_type", curie=DCAT.curie('mediaType'), + model_uri=DATASETS.media_type, domain=None, range=Optional[str]) + +slots.conforms_to = Slot(uri=DCTERMS.conformsTo, name="conforms_to", curie=DCTERMS.curie('conformsTo'), + model_uri=DATASETS.conforms_to, domain=None, range=Optional[Union[str, URIorCURIE]]) + +slots.conforms_to_schema = Slot(uri=DATASETS.conforms_to_schema, name="conforms_to_schema", curie=DATASETS.curie('conforms_to_schema'), + model_uri=DATASETS.conforms_to_schema, domain=None, range=Optional[Union[str, URIorCURIE]]) + +slots.conforms_to_class = Slot(uri=DATASETS.conforms_to_class, name="conforms_to_class", curie=DATASETS.curie('conforms_to_class'), + model_uri=DATASETS.conforms_to_class, domain=None, range=Optional[Union[str, URIorCURIE]]) + +slots.profile = Slot(uri=DATASETS.profile, name="profile", curie=DATASETS.curie('profile'), + model_uri=DATASETS.profile, domain=None, range=Optional[Union[str, URIorCURIE]]) + +slots.keywords = Slot(uri=DCAT.keyword, name="keywords", curie=DCAT.curie('keyword'), + model_uri=DATASETS.keywords, domain=None, range=Optional[Union[str, List[str]]]) + +slots.themes = Slot(uri=DCAT.theme, name="themes", curie=DCAT.curie('theme'), + model_uri=DATASETS.themes, domain=None, range=Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]]) + +slots.resources = Slot(uri=DCAT.distribution, name="resources", curie=DCAT.curie('distribution'), + model_uri=DATASETS.resources, domain=None, range=Optional[Union[Union[str, DataResourceId], List[Union[str, DataResourceId]]]]) + +slots.test_roles = Slot(uri=DATASETS.test_roles, name="test_roles", curie=DATASETS.curie('test_roles'), + model_uri=DATASETS.test_roles, domain=None, range=Optional[Union[Union[str, "TestRole"], List[Union[str, "TestRole"]]]]) + +slots.created_by = Slot(uri=PAV.createdBy, name="created_by", curie=PAV.curie('createdBy'), + model_uri=DATASETS.created_by, domain=None, range=Optional[Union[str, URIorCURIE]]) + +slots.created_on = Slot(uri=PAV.createdOn, name="created_on", curie=PAV.curie('createdOn'), + model_uri=DATASETS.created_on, domain=None, range=Optional[Union[str, XSDDateTime]]) + +slots.last_updated_on = Slot(uri=PAV.lastUpdatedOn, name="last_updated_on", curie=PAV.curie('lastUpdatedOn'), + model_uri=DATASETS.last_updated_on, domain=None, range=Optional[Union[str, XSDDateTime]]) + +slots.modified_by = Slot(uri=OSLC.modifiedBy, name="modified_by", curie=OSLC.curie('modifiedBy'), + model_uri=DATASETS.modified_by, domain=None, range=Optional[Union[str, URIorCURIE]]) + +slots.status = Slot(uri=BIBO.status, name="status", curie=BIBO.curie('status'), + model_uri=DATASETS.status, domain=None, range=Optional[Union[str, URIorCURIE]]) + +slots.license = Slot(uri=DCTERMS.license, name="license", curie=DCTERMS.curie('license'), + model_uri=DATASETS.license, domain=None, range=Optional[str]) + +slots.version = Slot(uri=PAV.version, name="version", curie=PAV.curie('version'), + model_uri=DATASETS.version, domain=None, range=Optional[str]) + +slots.was_derived_from = Slot(uri=PROV.wasDerivedFrom, name="was_derived_from", curie=PROV.curie('wasDerivedFrom'), + model_uri=DATASETS.was_derived_from, domain=None, range=Optional[str]) + +slots.formatDialect__comment_prefix = Slot(uri=DATASETS.comment_prefix, name="formatDialect__comment_prefix", curie=DATASETS.curie('comment_prefix'), + model_uri=DATASETS.formatDialect__comment_prefix, domain=None, range=Optional[str]) + +slots.formatDialect__delimiter = Slot(uri=DATASETS.delimiter, name="formatDialect__delimiter", curie=DATASETS.curie('delimiter'), + model_uri=DATASETS.formatDialect__delimiter, domain=None, range=Optional[str]) + +slots.formatDialect__double_quote = Slot(uri=DATASETS.double_quote, name="formatDialect__double_quote", curie=DATASETS.curie('double_quote'), + model_uri=DATASETS.formatDialect__double_quote, domain=None, range=Optional[str]) + +slots.formatDialect__header = Slot(uri=DATASETS.header, name="formatDialect__header", curie=DATASETS.curie('header'), + model_uri=DATASETS.formatDialect__header, domain=None, range=Optional[str]) + +slots.formatDialect__quote_char = Slot(uri=DATASETS.quote_char, name="formatDialect__quote_char", curie=DATASETS.curie('quote_char'), + model_uri=DATASETS.formatDialect__quote_char, domain=None, range=Optional[str]) diff --git a/linkml_runtime/linkml_model/excel/meta.xlsx b/linkml_runtime/linkml_model/excel/meta.xlsx new file mode 100644 index 00000000..21fd455c Binary files /dev/null and b/linkml_runtime/linkml_model/excel/meta.xlsx differ diff --git a/linkml_runtime/linkml_model/extensions.py b/linkml_runtime/linkml_model/extensions.py index 7dbc2d3c..0d3fcb9a 100644 --- a/linkml_runtime/linkml_model/extensions.py +++ b/linkml_runtime/linkml_model/extensions.py @@ -1,5 +1,5 @@ # Auto generated from extensions.yaml by pythongen.py version: 0.9.0 -# Generation date: 2022-07-14T00:57:16 +# Generation date: 2023-09-01T13:21:14 # Schema: extensions # # id: https://w3id.org/linkml/extensions @@ -7,7 +7,6 @@ # license: https://creativecommons.org/publicdomain/zero/1.0/ import dataclasses -import sys import re from jsonasobj2 import JsonObj, as_dict from typing import Optional, List, Union, Dict, ClassVar, Any @@ -21,7 +20,7 @@ from linkml_runtime.utils.enumerations import EnumDefinitionImpl from rdflib import Namespace, URIRef from linkml_runtime.utils.curienamespace import CurieNamespace -from .types import String, Uriorcurie +from .types import Uriorcurie from linkml_runtime.utils.metamodelcore import URIorCURIE metamodel_version = "1.7.0" @@ -42,6 +41,8 @@ class ExtensionTag(URIorCURIE): pass +AnyValue = Any + @dataclass class Extension(YAMLRoot): """ @@ -55,7 +56,7 @@ class Extension(YAMLRoot): class_model_uri: ClassVar[URIRef] = LINKML.Extension tag: Union[str, ExtensionTag] = None - value: str = None + value: Union[dict, AnyValue] = None extensions: Optional[Union[Dict[Union[str, ExtensionTag], Union[dict, "Extension"]], List[Union[dict, "Extension"]]]] = empty_dict() def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): @@ -64,11 +65,6 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if not isinstance(self.tag, ExtensionTag): self.tag = ExtensionTag(self.tag) - if self._is_empty(self.value): - self.MissingRequiredField("value") - if not isinstance(self.value, str): - self.value = str(self.value) - self._normalize_inlined_as_dict(slot_name="extensions", slot_type=Extension, key_name="tag", keyed=True) super().__post_init__(**kwargs) @@ -98,4 +94,14 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): # Slots +class slots: + pass + +slots.extensions = Slot(uri=LINKML.extensions, name="extensions", curie=LINKML.curie('extensions'), + model_uri=LINKML.extensions, domain=None, range=Optional[Union[Dict[Union[str, ExtensionTag], Union[dict, Extension]], List[Union[dict, Extension]]]]) + +slots.extension_tag = Slot(uri=LINKML.tag, name="extension_tag", curie=LINKML.curie('tag'), + model_uri=LINKML.extension_tag, domain=Extension, range=Union[str, ExtensionTag]) +slots.extension_value = Slot(uri=LINKML.value, name="extension_value", curie=LINKML.curie('value'), + model_uri=LINKML.extension_value, domain=Extension, range=Union[dict, AnyValue]) diff --git a/linkml_runtime/linkml_model/graphql/meta.graphql b/linkml_runtime/linkml_model/graphql/meta.graphql index 3fed557e..bf9e7dce 100644 --- a/linkml_runtime/linkml_model/graphql/meta.graphql +++ b/linkml_runtime/linkml_model/graphql/meta.graphql @@ -12,7 +12,7 @@ interface Annotatable type Annotation implements Annotatable { tag: Uriorcurie! - value: String! + value: AnyValue! extensions: [Extension] annotations: [Annotation] } @@ -46,11 +46,14 @@ type AnonymousClassExpression implements ClassExpression narrowMappings: [Uriorcurie] broadMappings: [Uriorcurie] createdBy: Uriorcurie + contributors: [Uriorcurie] createdOn: Datetime lastUpdatedOn: Datetime modifiedBy: Uriorcurie status: Uriorcurie rank: Integer + categories: [Uriorcurie] + keywords: [String] isA: Definition anyOf: [AnonymousClassExpression] exactlyOneOf: [AnonymousClassExpression] @@ -103,11 +106,14 @@ type AnonymousExpression implements Expression, Extensible, Annotatable, CommonM narrowMappings: [Uriorcurie] broadMappings: [Uriorcurie] createdBy: Uriorcurie + contributors: [Uriorcurie] createdOn: Datetime lastUpdatedOn: Datetime modifiedBy: Uriorcurie status: Uriorcurie rank: Integer + categories: [Uriorcurie] + keywords: [String] } type AnonymousSlotExpression implements SlotExpression @@ -139,11 +145,14 @@ type AnonymousSlotExpression implements SlotExpression narrowMappings: [Uriorcurie] broadMappings: [Uriorcurie] createdBy: Uriorcurie + contributors: [Uriorcurie] createdOn: Datetime lastUpdatedOn: Datetime modifiedBy: Uriorcurie status: Uriorcurie rank: Integer + categories: [Uriorcurie] + keywords: [String] range: Element rangeExpression: AnonymousClassExpression enumRange: EnumExpression @@ -193,6 +202,10 @@ type Anything { } +type AnyValue + { + } + type ClassDefinition implements ClassExpression { name: String! @@ -201,6 +214,7 @@ type ClassDefinition implements ClassExpression localNames: [LocalName] conformsTo: String implements: [Uriorcurie] + instantiates: [Uriorcurie] extensions: [Extension] annotations: [Annotation] description: String @@ -228,11 +242,14 @@ type ClassDefinition implements ClassExpression narrowMappings: [Uriorcurie] broadMappings: [Uriorcurie] createdBy: Uriorcurie + contributors: [Uriorcurie] createdOn: Datetime lastUpdatedOn: Datetime modifiedBy: Uriorcurie status: Uriorcurie rank: Integer + categories: [Uriorcurie] + keywords: [String] abstract: Boolean mixin: Boolean valuesFrom: [Uriorcurie] @@ -311,10 +328,13 @@ type ClassRule implements Extensible, Annotatable, CommonMetadata narrowMappings: [Uriorcurie] broadMappings: [Uriorcurie] createdBy: Uriorcurie + contributors: [Uriorcurie] createdOn: Datetime lastUpdatedOn: Datetime modifiedBy: Uriorcurie status: Uriorcurie + categories: [Uriorcurie] + keywords: [String] } interface CommonMetadata @@ -344,11 +364,14 @@ interface CommonMetadata narrowMappings: [Uriorcurie] broadMappings: [Uriorcurie] createdBy: Uriorcurie + contributors: [Uriorcurie] createdOn: Datetime lastUpdatedOn: Datetime modifiedBy: Uriorcurie status: Uriorcurie rank: Integer + categories: [Uriorcurie] + keywords: [String] } interface Definition @@ -359,6 +382,7 @@ interface Definition localNames: [LocalName] conformsTo: String implements: [Uriorcurie] + instantiates: [Uriorcurie] extensions: [Extension] annotations: [Annotation] description: String @@ -386,11 +410,14 @@ interface Definition narrowMappings: [Uriorcurie] broadMappings: [Uriorcurie] createdBy: Uriorcurie + contributors: [Uriorcurie] createdOn: Datetime lastUpdatedOn: Datetime modifiedBy: Uriorcurie status: Uriorcurie rank: Integer + categories: [Uriorcurie] + keywords: [String] isA: Definition abstract: Boolean mixin: Boolean @@ -408,6 +435,7 @@ type Element implements Extensible, Annotatable, CommonMetadata localNames: [LocalName] conformsTo: String implements: [Uriorcurie] + instantiates: [Uriorcurie] extensions: [Extension] annotations: [Annotation] description: String @@ -435,11 +463,14 @@ type Element implements Extensible, Annotatable, CommonMetadata narrowMappings: [Uriorcurie] broadMappings: [Uriorcurie] createdBy: Uriorcurie + contributors: [Uriorcurie] createdOn: Datetime lastUpdatedOn: Datetime modifiedBy: Uriorcurie status: Uriorcurie rank: Integer + categories: [Uriorcurie] + keywords: [String] } type EnumDefinition implements EnumExpression @@ -450,6 +481,7 @@ type EnumDefinition implements EnumExpression localNames: [LocalName] conformsTo: String implements: [Uriorcurie] + instantiates: [Uriorcurie] extensions: [Extension] annotations: [Annotation] description: String @@ -477,11 +509,14 @@ type EnumDefinition implements EnumExpression narrowMappings: [Uriorcurie] broadMappings: [Uriorcurie] createdBy: Uriorcurie + contributors: [Uriorcurie] createdOn: Datetime lastUpdatedOn: Datetime modifiedBy: Uriorcurie status: Uriorcurie rank: Integer + categories: [Uriorcurie] + keywords: [String] isA: Definition abstract: Boolean mixin: Boolean @@ -537,7 +572,7 @@ interface Extensible type Extension { tag: Uriorcurie! - value: String! + value: AnyValue! extensions: [Extension] } @@ -573,11 +608,14 @@ type ImportExpression implements Extensible, Annotatable, CommonMetadata narrowMappings: [Uriorcurie] broadMappings: [Uriorcurie] createdBy: Uriorcurie + contributors: [Uriorcurie] createdOn: Datetime lastUpdatedOn: Datetime modifiedBy: Uriorcurie status: Uriorcurie rank: Integer + categories: [Uriorcurie] + keywords: [String] } type LocalName @@ -629,11 +667,14 @@ type PathExpression implements Expression, Extensible, Annotatable, CommonMetada narrowMappings: [Uriorcurie] broadMappings: [Uriorcurie] createdBy: Uriorcurie + contributors: [Uriorcurie] createdOn: Datetime lastUpdatedOn: Datetime modifiedBy: Uriorcurie status: Uriorcurie rank: Integer + categories: [Uriorcurie] + keywords: [String] } type PatternExpression implements Extensible, Annotatable, CommonMetadata @@ -668,11 +709,14 @@ type PatternExpression implements Extensible, Annotatable, CommonMetadata narrowMappings: [Uriorcurie] broadMappings: [Uriorcurie] createdBy: Uriorcurie + contributors: [Uriorcurie] createdOn: Datetime lastUpdatedOn: Datetime modifiedBy: Uriorcurie status: Uriorcurie rank: Integer + categories: [Uriorcurie] + keywords: [String] } type PermissibleValue implements Extensible, Annotatable, CommonMetadata @@ -709,11 +753,14 @@ type PermissibleValue implements Extensible, Annotatable, CommonMetadata narrowMappings: [Uriorcurie] broadMappings: [Uriorcurie] createdBy: Uriorcurie + contributors: [Uriorcurie] createdOn: Datetime lastUpdatedOn: Datetime modifiedBy: Uriorcurie status: Uriorcurie rank: Integer + categories: [Uriorcurie] + keywords: [String] } type Prefix @@ -739,6 +786,7 @@ type SchemaDefinition localNames: [LocalName] conformsTo: String implements: [Uriorcurie] + instantiates: [Uriorcurie] extensions: [Extension] annotations: [Annotation] description: String @@ -766,11 +814,14 @@ type SchemaDefinition narrowMappings: [Uriorcurie] broadMappings: [Uriorcurie] createdBy: Uriorcurie + contributors: [Uriorcurie] createdOn: Datetime lastUpdatedOn: Datetime modifiedBy: Uriorcurie status: Uriorcurie rank: Integer + categories: [Uriorcurie] + keywords: [String] id: Uri! version: String imports: [Uriorcurie] @@ -792,8 +843,6 @@ type SchemaDefinition generationDate: Datetime slotNamesUnique: Boolean settings: [Setting] - categories: [Uriorcurie] - keywords: [String] name: Ncname! } @@ -811,6 +860,7 @@ type SlotDefinition implements SlotExpression localNames: [LocalName] conformsTo: String implements: [Uriorcurie] + instantiates: [Uriorcurie] extensions: [Extension] annotations: [Annotation] description: String @@ -838,11 +888,14 @@ type SlotDefinition implements SlotExpression narrowMappings: [Uriorcurie] broadMappings: [Uriorcurie] createdBy: Uriorcurie + contributors: [Uriorcurie] createdOn: Datetime lastUpdatedOn: Datetime modifiedBy: Uriorcurie status: Uriorcurie rank: Integer + categories: [Uriorcurie] + keywords: [String] abstract: Boolean mixin: Boolean valuesFrom: [Uriorcurie] @@ -977,11 +1030,13 @@ type StructuredAlias implements Expression, Extensible, Annotatable, CommonMetad narrowMappings: [Uriorcurie] broadMappings: [Uriorcurie] createdBy: Uriorcurie + contributors: [Uriorcurie] createdOn: Datetime lastUpdatedOn: Datetime modifiedBy: Uriorcurie status: Uriorcurie rank: Integer + keywords: [String] } type SubsetDefinition @@ -992,6 +1047,7 @@ type SubsetDefinition localNames: [LocalName] conformsTo: String implements: [Uriorcurie] + instantiates: [Uriorcurie] extensions: [Extension] annotations: [Annotation] description: String @@ -1019,11 +1075,14 @@ type SubsetDefinition narrowMappings: [Uriorcurie] broadMappings: [Uriorcurie] createdBy: Uriorcurie + contributors: [Uriorcurie] createdOn: Datetime lastUpdatedOn: Datetime modifiedBy: Uriorcurie status: Uriorcurie rank: Integer + categories: [Uriorcurie] + keywords: [String] } type TypeDefinition implements TypeExpression @@ -1034,6 +1093,7 @@ type TypeDefinition implements TypeExpression localNames: [LocalName] conformsTo: String implements: [Uriorcurie] + instantiates: [Uriorcurie] extensions: [Extension] annotations: [Annotation] description: String @@ -1061,11 +1121,14 @@ type TypeDefinition implements TypeExpression narrowMappings: [Uriorcurie] broadMappings: [Uriorcurie] createdBy: Uriorcurie + contributors: [Uriorcurie] createdOn: Datetime lastUpdatedOn: Datetime modifiedBy: Uriorcurie status: Uriorcurie rank: Integer + categories: [Uriorcurie] + keywords: [String] typeof: TypeDefinition base: String uri: Uriorcurie @@ -1135,11 +1198,14 @@ type UniqueKey implements Extensible, Annotatable, CommonMetadata narrowMappings: [Uriorcurie] broadMappings: [Uriorcurie] createdBy: Uriorcurie + contributors: [Uriorcurie] createdOn: Datetime lastUpdatedOn: Datetime modifiedBy: Uriorcurie status: Uriorcurie rank: Integer + categories: [Uriorcurie] + keywords: [String] } type UnitOfMeasure diff --git a/linkml_runtime/linkml_model/json/annotations.json b/linkml_runtime/linkml_model/json/annotations.json index 6ce4e86e..29c0f25a 100644 --- a/linkml_runtime/linkml_model/json/annotations.json +++ b/linkml_runtime/linkml_model/json/annotations.json @@ -169,7 +169,7 @@ "definition_uri": "https://w3id.org/linkml/Objectidentifier", "description": "A URI or CURIE that represents an object in the model.", "comments": [ - "Used for inheritence and type checking" + "Used for inheritance and type checking" ], "from_schema": "https://w3id.org/linkml/types", "imported_from": "linkml:types", diff --git a/linkml_runtime/linkml_model/json/datasets.json b/linkml_runtime/linkml_model/json/datasets.json new file mode 100644 index 00000000..54be1303 --- /dev/null +++ b/linkml_runtime/linkml_model/json/datasets.json @@ -0,0 +1,1171 @@ +{ + "name": "datasets", + "description": "A datamodel for datasets", + "title": "LinkML Datasets Datamodel", + "see_also": [ + "https://specs.frictionlessdata.io/data-resource", + "https://www.w3.org/TR/void/", + "https://www.w3.org/TR/hcls-dataset/" + ], + "id": "https://w3id.org/linkml/datasets", + "imports": [ + "linkml:types" + ], + "license": "https://creativecommons.org/publicdomain/zero/1.0/", + "prefixes": [ + { + "prefix_prefix": "linkml", + "prefix_reference": "https://w3id.org/linkml/" + }, + { + "prefix_prefix": "datasets", + "prefix_reference": "https://w3id.org/linkml/report" + }, + { + "prefix_prefix": "skos", + "prefix_reference": "http://www.w3.org/2004/02/skos/core#" + }, + { + "prefix_prefix": "pav", + "prefix_reference": "http://purl.org/pav/" + }, + { + "prefix_prefix": "schema", + "prefix_reference": "http://schema.org/" + }, + { + "prefix_prefix": "sh", + "prefix_reference": "https://w3id.org/shacl/" + }, + { + "prefix_prefix": "void", + "prefix_reference": "http://rdfs.org/ns/void#" + }, + { + "prefix_prefix": "frictionless", + "prefix_reference": "https://specs.frictionlessdata.io/" + }, + { + "prefix_prefix": "formats", + "prefix_reference": "http://www.w3.org/ns/formats/" + }, + { + "prefix_prefix": "csvw", + "prefix_reference": "http://www.w3.org/ns/csvw#" + }, + { + "prefix_prefix": "dcat", + "prefix_reference": "http://www.w3.org/ns/dcat#" + }, + { + "prefix_prefix": "mediatypes", + "prefix_reference": "https://www.iana.org/assignments/media-types/" + } + ], + "emit_prefixes": [ + "linkml", + "rdf", + "rdfs", + "xsd", + "owl" + ], + "default_curi_maps": [ + "semweb_context" + ], + "default_prefix": "datasets", + "default_range": "string", + "types": [ + { + "name": "string", + "definition_uri": "https://w3id.org/linkml/String", + "description": "A character string", + "from_schema": "https://w3id.org/linkml/types", + "imported_from": "linkml:types", + "base": "str", + "uri": "http://www.w3.org/2001/XMLSchema#string", + "@type": "TypeDefinition" + }, + { + "name": "integer", + "definition_uri": "https://w3id.org/linkml/Integer", + "description": "An integer", + "from_schema": "https://w3id.org/linkml/types", + "imported_from": "linkml:types", + "base": "int", + "uri": "http://www.w3.org/2001/XMLSchema#integer", + "@type": "TypeDefinition" + }, + { + "name": "boolean", + "definition_uri": "https://w3id.org/linkml/Boolean", + "description": "A binary (true or false) value", + "from_schema": "https://w3id.org/linkml/types", + "imported_from": "linkml:types", + "base": "Bool", + "uri": "http://www.w3.org/2001/XMLSchema#boolean", + "repr": "bool", + "@type": "TypeDefinition" + }, + { + "name": "float", + "definition_uri": "https://w3id.org/linkml/Float", + "description": "A real number that conforms to the xsd:float specification", + "from_schema": "https://w3id.org/linkml/types", + "imported_from": "linkml:types", + "base": "float", + "uri": "http://www.w3.org/2001/XMLSchema#float", + "@type": "TypeDefinition" + }, + { + "name": "double", + "definition_uri": "https://w3id.org/linkml/Double", + "description": "A real number that conforms to the xsd:double specification", + "from_schema": "https://w3id.org/linkml/types", + "imported_from": "linkml:types", + "base": "float", + "uri": "http://www.w3.org/2001/XMLSchema#double", + "@type": "TypeDefinition" + }, + { + "name": "decimal", + "definition_uri": "https://w3id.org/linkml/Decimal", + "description": "A real number with arbitrary precision that conforms to the xsd:decimal specification", + "from_schema": "https://w3id.org/linkml/types", + "imported_from": "linkml:types", + "base": "Decimal", + "uri": "http://www.w3.org/2001/XMLSchema#decimal", + "@type": "TypeDefinition" + }, + { + "name": "time", + "definition_uri": "https://w3id.org/linkml/Time", + "description": "A time object represents a (local) time of day, independent of any particular day", + "notes": [ + "URI is dateTime because OWL reasoners don't work with straight date or time" + ], + "from_schema": "https://w3id.org/linkml/types", + "imported_from": "linkml:types", + "base": "XSDTime", + "uri": "http://www.w3.org/2001/XMLSchema#dateTime", + "repr": "str", + "@type": "TypeDefinition" + }, + { + "name": "date", + "definition_uri": "https://w3id.org/linkml/Date", + "description": "a date (year, month and day) in an idealized calendar", + "notes": [ + "URI is dateTime because OWL reasoners don't work with straight date or time" + ], + "from_schema": "https://w3id.org/linkml/types", + "imported_from": "linkml:types", + "base": "XSDDate", + "uri": "http://www.w3.org/2001/XMLSchema#date", + "repr": "str", + "@type": "TypeDefinition" + }, + { + "name": "datetime", + "definition_uri": "https://w3id.org/linkml/Datetime", + "description": "The combination of a date and time", + "from_schema": "https://w3id.org/linkml/types", + "imported_from": "linkml:types", + "base": "XSDDateTime", + "uri": "http://www.w3.org/2001/XMLSchema#dateTime", + "repr": "str", + "@type": "TypeDefinition" + }, + { + "name": "date_or_datetime", + "definition_uri": "https://w3id.org/linkml/DateOrDatetime", + "description": "Either a date or a datetime", + "from_schema": "https://w3id.org/linkml/types", + "imported_from": "linkml:types", + "base": "str", + "uri": "https://w3id.org/linkml/DateOrDatetime", + "repr": "str", + "@type": "TypeDefinition" + }, + { + "name": "uriorcurie", + "definition_uri": "https://w3id.org/linkml/Uriorcurie", + "description": "a URI or a CURIE", + "from_schema": "https://w3id.org/linkml/types", + "imported_from": "linkml:types", + "base": "URIorCURIE", + "uri": "http://www.w3.org/2001/XMLSchema#anyURI", + "repr": "str", + "@type": "TypeDefinition" + }, + { + "name": "uri", + "definition_uri": "https://w3id.org/linkml/Uri", + "description": "a complete URI", + "from_schema": "https://w3id.org/linkml/types", + "imported_from": "linkml:types", + "base": "URI", + "uri": "http://www.w3.org/2001/XMLSchema#anyURI", + "repr": "str", + "@type": "TypeDefinition" + }, + { + "name": "ncname", + "definition_uri": "https://w3id.org/linkml/Ncname", + "description": "Prefix part of CURIE", + "from_schema": "https://w3id.org/linkml/types", + "imported_from": "linkml:types", + "base": "NCName", + "uri": "http://www.w3.org/2001/XMLSchema#string", + "repr": "str", + "@type": "TypeDefinition" + }, + { + "name": "objectidentifier", + "definition_uri": "https://w3id.org/linkml/Objectidentifier", + "description": "A URI or CURIE that represents an object in the model.", + "comments": [ + "Used for inheritance and type checking" + ], + "from_schema": "https://w3id.org/linkml/types", + "imported_from": "linkml:types", + "base": "ElementIdentifier", + "uri": "http://www.w3.org/ns/shex#iri", + "repr": "str", + "@type": "TypeDefinition" + }, + { + "name": "nodeidentifier", + "definition_uri": "https://w3id.org/linkml/Nodeidentifier", + "description": "A URI, CURIE or BNODE that represents a node in a model.", + "from_schema": "https://w3id.org/linkml/types", + "imported_from": "linkml:types", + "base": "NodeIdentifier", + "uri": "http://www.w3.org/ns/shex#nonLiteral", + "repr": "str", + "@type": "TypeDefinition" + } + ], + "enums": [ + { + "name": "TestRole", + "definition_uri": "https://w3id.org/linkml/reportTestRole", + "from_schema": "https://w3id.org/linkml/datasets", + "permissible_values": [ + { + "text": "Example" + }, + { + "text": "CounterExample" + } + ] + }, + { + "name": "MediaTypeEnum", + "definition_uri": "https://w3id.org/linkml/reportMediaTypeEnum", + "from_schema": "https://w3id.org/linkml/datasets", + "exact_mappings": [ + "dcterms:MediaType" + ], + "permissible_values": [ + { + "text": "csv", + "meaning": "mediatypes:text/csv" + }, + { + "text": "rdf-xml", + "meaning": "mediatypes:application/rdf+xml" + } + ] + }, + { + "name": "FormatEnum", + "definition_uri": "https://w3id.org/linkml/reportFormatEnum", + "from_schema": "https://w3id.org/linkml/datasets", + "permissible_values": [ + { + "text": "JSON-LD", + "meaning": "formats:JSON-LD" + }, + { + "text": "N3", + "meaning": "formats:N3" + }, + { + "text": "N-Triples", + "meaning": "formats:N-Triples" + }, + { + "text": "N-Quads", + "meaning": "formats:N-Quads" + }, + { + "text": "LD Patch", + "meaning": "formats:LD_Patch" + }, + { + "text": "Microdata", + "meaning": "formats:microdata" + }, + { + "text": "OWL XML Serialization", + "meaning": "formats:OWL_XML" + }, + { + "text": "OWL Functional Syntax", + "meaning": "formats:OWL_Functional" + }, + { + "text": "OWL Manchester Syntax", + "meaning": "formats:OWL_Manchester" + }, + { + "text": "POWDER", + "meaning": "formats:POWDER" + }, + { + "text": "POWDER-S", + "meaning": "formats:POWDER-S" + }, + { + "text": "PROV-N", + "meaning": "formats:PROV-N" + }, + { + "text": "PROV-XML", + "meaning": "formats:PROV-XML" + }, + { + "text": "RDFa", + "meaning": "formats:RDFa" + }, + { + "text": "RDF/JSON", + "meaning": "formats:RDF_JSON" + }, + { + "text": "RDF/XML", + "meaning": "formats:RDF_XML" + }, + { + "text": "RIF XML Syntax", + "meaning": "formats:RIF_XML" + }, + { + "text": "SPARQL Results in XML", + "meaning": "formats:SPARQL_Results_XML" + }, + { + "text": "SPARQL Results in JSON", + "meaning": "formats:SPARQL_Results_JSON" + }, + { + "text": "SPARQL Results in CSV", + "meaning": "formats:SPARQL_Results_CSV" + }, + { + "text": "SPARQL Results in TSV", + "meaning": "formats:SPARQL_Results_TSV" + }, + { + "text": "Turtle", + "meaning": "formats:Turtle" + }, + { + "text": "TriG", + "meaning": "formats:TriG" + }, + { + "text": "YAML" + }, + { + "text": "JSON" + } + ] + } + ], + "slots": [ + { + "name": "id", + "definition_uri": "https://w3id.org/linkml/reportid", + "description": "the unique name of th dataset", + "from_schema": "https://w3id.org/linkml/datasets", + "mappings": [ + "http://purl.org/dc/terms/identifier" + ], + "exact_mappings": [ + "http://schema.org/name" + ], + "slot_uri": "http://purl.org/dc/terms/identifier", + "identifier": true, + "owner": "Information", + "domain_of": [ + "Information" + ], + "range": "string", + "required": true, + "@type": "SlotDefinition" + }, + { + "name": "title", + "definition_uri": "https://w3id.org/linkml/reporttitle", + "description": "the official title of the element", + "from_schema": "https://w3id.org/linkml/datasets", + "mappings": [ + "http://purl.org/dc/terms/title" + ], + "slot_uri": "http://purl.org/dc/terms/title", + "owner": "DataResource", + "domain_of": [ + "Information", + "DataResource" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "description", + "definition_uri": "https://w3id.org/linkml/reportdescription", + "description": "human readable description of the information", + "from_schema": "https://w3id.org/linkml/datasets", + "mappings": [ + "http://purl.org/dc/terms/description" + ], + "slot_uri": "http://purl.org/dc/terms/description", + "owner": "DataResource", + "domain_of": [ + "Information", + "DataResource" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "language", + "definition_uri": "https://w3id.org/linkml/reportlanguage", + "description": "language in which the information is expressed", + "from_schema": "https://w3id.org/linkml/datasets", + "slot_uri": "https://w3id.org/linkml/reportlanguage", + "owner": "Information", + "domain_of": [ + "Information" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "publisher", + "definition_uri": "https://w3id.org/linkml/reportpublisher", + "from_schema": "https://w3id.org/linkml/datasets", + "mappings": [ + "http://purl.org/dc/terms/publisher" + ], + "slot_uri": "http://purl.org/dc/terms/publisher", + "owner": "Information", + "domain_of": [ + "Information" + ], + "range": "uriorcurie", + "@type": "SlotDefinition" + }, + { + "name": "issued", + "definition_uri": "https://w3id.org/linkml/reportissued", + "from_schema": "https://w3id.org/linkml/datasets", + "mappings": [ + "http://purl.org/dc/terms/issued" + ], + "slot_uri": "http://purl.org/dc/terms/issued", + "owner": "Information", + "domain_of": [ + "Information" + ], + "range": "datetime", + "@type": "SlotDefinition" + }, + { + "name": "page", + "definition_uri": "https://w3id.org/linkml/reportpage", + "from_schema": "https://w3id.org/linkml/datasets", + "mappings": [ + "http://www.w3.org/ns/dcat#landingPage" + ], + "slot_uri": "http://www.w3.org/ns/dcat#landingPage", + "owner": "Information", + "domain_of": [ + "Information" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "dialect", + "definition_uri": "https://w3id.org/linkml/reportdialect", + "from_schema": "https://w3id.org/linkml/datasets", + "mappings": [ + "http://www.w3.org/ns/csvw#dialect" + ], + "slot_uri": "http://www.w3.org/ns/csvw#dialect", + "owner": "DataResource", + "domain_of": [ + "DataResource" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "bytes", + "definition_uri": "https://w3id.org/linkml/reportbytes", + "from_schema": "https://w3id.org/linkml/datasets", + "mappings": [ + "http://www.w3.org/ns/dcat#byteSize" + ], + "slot_uri": "http://www.w3.org/ns/dcat#byteSize", + "owner": "DataResource", + "domain_of": [ + "DataResource" + ], + "range": "integer", + "@type": "SlotDefinition" + }, + { + "name": "path", + "definition_uri": "https://w3id.org/linkml/reportpath", + "from_schema": "https://w3id.org/linkml/datasets", + "close_mappings": [ + "https://specs.frictionlessdata.io/path" + ], + "slot_uri": "https://w3id.org/linkml/reportpath", + "owner": "DataResource", + "domain_of": [ + "DataResource" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "download_url", + "definition_uri": "https://w3id.org/linkml/reportdownload_url", + "from_schema": "https://w3id.org/linkml/datasets", + "mappings": [ + "http://www.w3.org/ns/dcat#downloadURL" + ], + "exact_mappings": [ + "http://schema.org/url" + ], + "close_mappings": [ + "https://specs.frictionlessdata.io/path" + ], + "slot_uri": "http://www.w3.org/ns/dcat#downloadURL", + "owner": "Information", + "domain_of": [ + "Information" + ], + "range": "uri", + "@type": "SlotDefinition" + }, + { + "name": "format", + "definition_uri": "https://w3id.org/linkml/reportformat", + "from_schema": "https://w3id.org/linkml/datasets", + "mappings": [ + "http://purl.org/dc/terms/format" + ], + "slot_uri": "http://purl.org/dc/terms/format", + "owner": "DataResource", + "domain_of": [ + "DataResource" + ], + "range": "FormatEnum", + "@type": "SlotDefinition" + }, + { + "name": "compression", + "definition_uri": "https://w3id.org/linkml/reportcompression", + "from_schema": "https://w3id.org/linkml/datasets", + "slot_uri": "https://w3id.org/linkml/reportcompression", + "owner": "Information", + "domain_of": [ + "Information" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "encoding", + "definition_uri": "https://w3id.org/linkml/reportencoding", + "from_schema": "https://w3id.org/linkml/datasets", + "slot_uri": "https://w3id.org/linkml/reportencoding", + "owner": "DataResource", + "domain_of": [ + "DataResource" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "hash", + "definition_uri": "https://w3id.org/linkml/reporthash", + "notes": [ + "we recommend using a more specific slot such as sha256 or md5" + ], + "from_schema": "https://w3id.org/linkml/datasets", + "slot_uri": "https://w3id.org/linkml/reporthash", + "owner": "DataResource", + "domain_of": [ + "DataResource" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "sha256", + "definition_uri": "https://w3id.org/linkml/reportsha256", + "from_schema": "https://w3id.org/linkml/datasets", + "is_a": "hash", + "slot_uri": "https://w3id.org/linkml/reportsha256", + "owner": "DataResource", + "domain_of": [ + "DataResource" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "md5", + "definition_uri": "https://w3id.org/linkml/reportmd5", + "from_schema": "https://w3id.org/linkml/datasets", + "is_a": "hash", + "slot_uri": "https://w3id.org/linkml/reportmd5", + "owner": "DataResource", + "domain_of": [ + "DataResource" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "media_type", + "definition_uri": "https://w3id.org/linkml/reportmedia_type", + "examples": [ + { + "value": "text/csv", + "@type": "Example" + }, + { + "value": "application/json", + "@type": "Example" + } + ], + "from_schema": "https://w3id.org/linkml/datasets", + "mappings": [ + "http://www.w3.org/ns/dcat#mediaType" + ], + "exact_mappings": [ + "https://specs.frictionlessdata.io/mediatype", + "http://schema.org/encodingFormat" + ], + "slot_uri": "http://www.w3.org/ns/dcat#mediaType", + "owner": "DataResource", + "domain_of": [ + "DataResource" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "conforms_to", + "definition_uri": "https://w3id.org/linkml/reportconforms_to", + "from_schema": "https://w3id.org/linkml/datasets", + "mappings": [ + "http://purl.org/dc/terms/conformsTo" + ], + "slot_uri": "http://purl.org/dc/terms/conformsTo", + "owner": "Information", + "domain_of": [ + "Information" + ], + "range": "uriorcurie", + "@type": "SlotDefinition" + }, + { + "name": "conforms_to_schema", + "definition_uri": "https://w3id.org/linkml/reportconforms_to_schema", + "from_schema": "https://w3id.org/linkml/datasets", + "exact_mappings": [ + "https://specs.frictionlessdata.io/schema" + ], + "is_a": "conforms_to", + "slot_uri": "https://w3id.org/linkml/reportconforms_to_schema", + "owner": "Information", + "domain_of": [ + "Information" + ], + "range": "uriorcurie", + "@type": "SlotDefinition" + }, + { + "name": "conforms_to_class", + "definition_uri": "https://w3id.org/linkml/reportconforms_to_class", + "description": "class in schema which the data object instantiates", + "from_schema": "https://w3id.org/linkml/datasets", + "is_a": "conforms_to", + "slot_uri": "https://w3id.org/linkml/reportconforms_to_class", + "owner": "Information", + "domain_of": [ + "Information" + ], + "range": "uriorcurie", + "@type": "SlotDefinition" + }, + { + "name": "profile", + "definition_uri": "https://w3id.org/linkml/reportprofile", + "from_schema": "https://w3id.org/linkml/datasets", + "exact_mappings": [ + "https://specs.frictionlessdata.io/profiles" + ], + "slot_uri": "https://w3id.org/linkml/reportprofile", + "range": "uriorcurie", + "@type": "SlotDefinition" + }, + { + "name": "keywords", + "definition_uri": "https://w3id.org/linkml/reportkeywords", + "from_schema": "https://w3id.org/linkml/datasets", + "mappings": [ + "http://www.w3.org/ns/dcat#keyword" + ], + "exact_mappings": [ + "http://schema.org/keywords" + ], + "singular_name": "keyword", + "slot_uri": "http://www.w3.org/ns/dcat#keyword", + "multivalued": true, + "owner": "Information", + "domain_of": [ + "Information" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "themes", + "definition_uri": "https://w3id.org/linkml/reportthemes", + "from_schema": "https://w3id.org/linkml/datasets", + "mappings": [ + "http://www.w3.org/ns/dcat#theme" + ], + "singular_name": "theme", + "slot_uri": "http://www.w3.org/ns/dcat#theme", + "multivalued": true, + "range": "uriorcurie", + "@type": "SlotDefinition" + }, + { + "name": "resources", + "definition_uri": "https://w3id.org/linkml/reportresources", + "from_schema": "https://w3id.org/linkml/datasets", + "mappings": [ + "http://www.w3.org/ns/dcat#distribution" + ], + "exact_mappings": [ + "http://schema.org/distribution" + ], + "slot_uri": "http://www.w3.org/ns/dcat#distribution", + "multivalued": true, + "owner": "DataPackage", + "domain_of": [ + "DataPackage" + ], + "range": "DataResource", + "@type": "SlotDefinition" + }, + { + "name": "test_roles", + "definition_uri": "https://w3id.org/linkml/reporttest_roles", + "from_schema": "https://w3id.org/linkml/datasets", + "slot_uri": "https://w3id.org/linkml/reporttest_roles", + "multivalued": true, + "owner": "Information", + "domain_of": [ + "Information" + ], + "range": "TestRole", + "@type": "SlotDefinition" + }, + { + "name": "created_by", + "definition_uri": "https://w3id.org/linkml/reportcreated_by", + "description": "agent that created the element", + "from_schema": "https://w3id.org/linkml/datasets", + "mappings": [ + "http://purl.org/pav/createdBy" + ], + "slot_uri": "http://purl.org/pav/createdBy", + "owner": "Information", + "domain_of": [ + "Information" + ], + "range": "uriorcurie", + "@type": "SlotDefinition" + }, + { + "name": "created_on", + "definition_uri": "https://w3id.org/linkml/reportcreated_on", + "description": "time at which the element was created", + "from_schema": "https://w3id.org/linkml/datasets", + "mappings": [ + "http://purl.org/pav/createdOn" + ], + "slot_uri": "http://purl.org/pav/createdOn", + "owner": "Information", + "domain_of": [ + "Information" + ], + "range": "datetime", + "@type": "SlotDefinition" + }, + { + "name": "last_updated_on", + "definition_uri": "https://w3id.org/linkml/reportlast_updated_on", + "description": "time at which the element was last updated", + "from_schema": "https://w3id.org/linkml/datasets", + "mappings": [ + "http://purl.org/pav/lastUpdatedOn" + ], + "slot_uri": "http://purl.org/pav/lastUpdatedOn", + "range": "datetime", + "@type": "SlotDefinition" + }, + { + "name": "modified_by", + "definition_uri": "https://w3id.org/linkml/reportmodified_by", + "description": "agent that modified the element", + "from_schema": "https://w3id.org/linkml/datasets", + "mappings": [ + "http://example.org/UNKNOWN/oslc/modifiedBy" + ], + "slot_uri": "http://example.org/UNKNOWN/oslc/modifiedBy", + "range": "uriorcurie", + "@type": "SlotDefinition" + }, + { + "name": "status", + "definition_uri": "https://w3id.org/linkml/reportstatus", + "description": "status of the element", + "examples": [ + { + "value": "bibo:draft", + "@type": "Example" + } + ], + "from_schema": "https://w3id.org/linkml/datasets", + "mappings": [ + "http://example.org/UNKNOWN/bibo/status" + ], + "slot_uri": "http://example.org/UNKNOWN/bibo/status", + "range": "uriorcurie", + "@type": "SlotDefinition" + }, + { + "name": "license", + "definition_uri": "https://w3id.org/linkml/reportlicense", + "description": "license for the data", + "from_schema": "https://w3id.org/linkml/datasets", + "mappings": [ + "http://purl.org/dc/terms/license" + ], + "exact_mappings": [ + "https://specs.frictionlessdata.io/licenses" + ], + "slot_uri": "http://purl.org/dc/terms/license", + "owner": "Information", + "domain_of": [ + "Information" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "version", + "definition_uri": "https://w3id.org/linkml/reportversion", + "description": "particular version of schema", + "from_schema": "https://w3id.org/linkml/datasets", + "mappings": [ + "http://purl.org/pav/version" + ], + "exact_mappings": [ + "http://schema.org/version", + "http://purl.org/dc/terms/hasVersion" + ], + "slot_uri": "http://purl.org/pav/version", + "owner": "Information", + "domain_of": [ + "Information" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "was_derived_from", + "definition_uri": "https://w3id.org/linkml/reportwas_derived_from", + "description": "A derivation is a transformation of an entity into another, an update of an entity resulting in a new one, or the construction of a new entity based on a pre-existing entity.@en", + "from_schema": "https://w3id.org/linkml/datasets", + "mappings": [ + "http://www.w3.org/ns/prov#wasDerivedFrom" + ], + "slot_uri": "http://www.w3.org/ns/prov#wasDerivedFrom", + "owner": "Information", + "domain_of": [ + "Information" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "formatDialect__comment_prefix", + "from_schema": "https://w3id.org/linkml/datasets", + "slot_uri": "https://w3id.org/linkml/reportcomment_prefix", + "alias": "comment_prefix", + "owner": "FormatDialect", + "domain_of": [ + "FormatDialect" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "formatDialect__delimiter", + "from_schema": "https://w3id.org/linkml/datasets", + "slot_uri": "https://w3id.org/linkml/reportdelimiter", + "alias": "delimiter", + "owner": "FormatDialect", + "domain_of": [ + "FormatDialect" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "formatDialect__double_quote", + "from_schema": "https://w3id.org/linkml/datasets", + "slot_uri": "https://w3id.org/linkml/reportdouble_quote", + "alias": "double_quote", + "owner": "FormatDialect", + "domain_of": [ + "FormatDialect" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "formatDialect__header", + "from_schema": "https://w3id.org/linkml/datasets", + "slot_uri": "https://w3id.org/linkml/reportheader", + "alias": "header", + "owner": "FormatDialect", + "domain_of": [ + "FormatDialect" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "formatDialect__quote_char", + "from_schema": "https://w3id.org/linkml/datasets", + "slot_uri": "https://w3id.org/linkml/reportquote_char", + "alias": "quote_char", + "owner": "FormatDialect", + "domain_of": [ + "FormatDialect" + ], + "range": "string", + "@type": "SlotDefinition" + } + ], + "classes": [ + { + "name": "Information", + "definition_uri": "https://w3id.org/linkml/reportInformation", + "description": "Grouping for datasets and data files", + "from_schema": "https://w3id.org/linkml/datasets", + "close_mappings": [ + "schema:CreativeWork" + ], + "abstract": true, + "slots": [ + "id", + "download_url", + "license", + "title", + "description", + "conforms_to", + "conforms_to_schema", + "conforms_to_class", + "version", + "language", + "publisher", + "keywords", + "issued", + "created_by", + "created_on", + "compression", + "was_derived_from", + "page", + "test_roles" + ], + "slot_usage": {}, + "class_uri": "https://w3id.org/linkml/reportInformation", + "@type": "ClassDefinition" + }, + { + "name": "DataPackage", + "definition_uri": "https://w3id.org/linkml/reportDataPackage", + "description": "A collection of data resources", + "from_schema": "https://w3id.org/linkml/datasets", + "see_also": [ + "https://specs.frictionlessdata.io/data-package" + ], + "aliases": [ + "dataset", + "file collection", + "data resource collection" + ], + "mappings": [ + "void:Dataset" + ], + "exact_mappings": [ + "dcat:Dataset" + ], + "close_mappings": [ + "dcat:Catalog" + ], + "is_a": "Information", + "slots": [ + "id", + "download_url", + "license", + "title", + "description", + "conforms_to", + "conforms_to_schema", + "conforms_to_class", + "version", + "language", + "publisher", + "keywords", + "issued", + "created_by", + "created_on", + "compression", + "was_derived_from", + "page", + "test_roles", + "resources" + ], + "slot_usage": {}, + "class_uri": "http://rdfs.org/ns/void#Dataset", + "@type": "ClassDefinition" + }, + { + "name": "DataResource", + "definition_uri": "https://w3id.org/linkml/reportDataResource", + "description": "An individual file or table", + "from_schema": "https://w3id.org/linkml/datasets", + "see_also": [ + "https://specs.frictionlessdata.io/data-resource" + ], + "mappings": [ + "dcat:Distribution" + ], + "exact_mappings": [ + "schema:DataDownload" + ], + "is_a": "Information", + "slots": [ + "id", + "download_url", + "license", + "conforms_to", + "conforms_to_schema", + "conforms_to_class", + "version", + "language", + "publisher", + "keywords", + "issued", + "created_by", + "created_on", + "compression", + "was_derived_from", + "page", + "test_roles", + "path", + "title", + "description", + "format", + "media_type", + "encoding", + "bytes", + "hash", + "md5", + "sha256", + "dialect" + ], + "slot_usage": {}, + "class_uri": "http://www.w3.org/ns/dcat#Distribution", + "@type": "ClassDefinition" + }, + { + "name": "FormatDialect", + "definition_uri": "https://w3id.org/linkml/reportFormatDialect", + "description": "Additional format information for a file", + "from_schema": "https://w3id.org/linkml/datasets", + "slots": [ + "formatDialect__comment_prefix", + "formatDialect__delimiter", + "formatDialect__double_quote", + "formatDialect__header", + "formatDialect__quote_char" + ], + "slot_usage": {}, + "attributes": [ + { + "name": "comment_prefix", + "@type": "SlotDefinition" + }, + { + "name": "delimiter", + "@type": "SlotDefinition" + }, + { + "name": "double_quote", + "@type": "SlotDefinition" + }, + { + "name": "header", + "@type": "SlotDefinition" + }, + { + "name": "quote_char", + "@type": "SlotDefinition" + } + ], + "class_uri": "https://w3id.org/linkml/reportFormatDialect", + "@type": "ClassDefinition" + } + ], + "metamodel_version": "1.7.0", + "source_file": "datasets.yaml", + "source_file_date": "2022-07-14T00:55:10", + "source_file_size": 7804, + "generation_date": "2022-07-14T00:56:05", + "@type": "SchemaDefinition", + "@context": [ + "https://w3id.org/linkml/types.context.jsonld", + { + "@base": "https://w3id.org/linkml/report" + } + ] +} + diff --git a/linkml_runtime/linkml_model/json/extensions.json b/linkml_runtime/linkml_model/json/extensions.json index 096a6b09..fa421a01 100644 --- a/linkml_runtime/linkml_model/json/extensions.json +++ b/linkml_runtime/linkml_model/json/extensions.json @@ -168,7 +168,7 @@ "definition_uri": "https://w3id.org/linkml/Objectidentifier", "description": "A URI or CURIE that represents an object in the model.", "comments": [ - "Used for inheritence and type checking" + "Used for inheritance and type checking" ], "from_schema": "https://w3id.org/linkml/types", "imported_from": "linkml:types", diff --git a/linkml_runtime/linkml_model/json/mappings.json b/linkml_runtime/linkml_model/json/mappings.json index 66086e39..537abb7d 100644 --- a/linkml_runtime/linkml_model/json/mappings.json +++ b/linkml_runtime/linkml_model/json/mappings.json @@ -190,7 +190,7 @@ "definition_uri": "https://w3id.org/linkml/Objectidentifier", "description": "A URI or CURIE that represents an object in the model.", "comments": [ - "Used for inheritence and type checking" + "Used for inheritance and type checking" ], "from_schema": "https://w3id.org/linkml/types", "imported_from": "linkml:types", diff --git a/linkml_runtime/linkml_model/json/meta.json b/linkml_runtime/linkml_model/json/meta.json index a82df6ce..db7650e9 100644 --- a/linkml_runtime/linkml_model/json/meta.json +++ b/linkml_runtime/linkml_model/json/meta.json @@ -281,7 +281,7 @@ "definition_uri": "https://w3id.org/linkml/Objectidentifier", "description": "A URI or CURIE that represents an object in the model.", "comments": [ - "Used for inheritence and type checking" + "Used for inheritance and type checking" ], "from_schema": "https://w3id.org/linkml/types", "imported_from": "linkml:types", @@ -1104,7 +1104,7 @@ "definition_uri": "https://w3id.org/linkml/mixins", "description": "List of definitions to be mixed in. Targets may be any definition of the same type", "comments": [ - "mixins act in the same way as parents (is_a). They allow a model to have a primary strict hierachy, while keeping the benefits of multiple inheritance" + "mixins act in the same way as parents (is_a). They allow a model to have a primary strict hierarchy, while keeping the benefits of multiple inheritance" ], "in_subset": [ "basic", @@ -1145,7 +1145,7 @@ { "name": "values_from", "definition_uri": "https://w3id.org/linkml/values_from", - "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.", + "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 hierarchy into an enumerated list of possible values in every serialization of the model.", "from_schema": "https://w3id.org/linkml/meta", "domain": "Definition", "slot_uri": "https://w3id.org/linkml/values_from", @@ -1839,7 +1839,7 @@ "from_schema": "https://w3id.org/linkml/meta", "domain": "SchemaDefinition", "slot_uri": "https://w3id.org/linkml/source_file", - "readonly": "suppplied by the schema loader", + "readonly": "supplied by the schema loader", "owner": "SchemaDefinition", "domain_of": [ "SchemaDefinition" @@ -2800,7 +2800,7 @@ { "name": "all_members", "definition_uri": "https://w3id.org/linkml/all_members", - "description": "the value of the multiavlued slot is a list where all elements conform to the specified values.\nthis defines a dynamic class with named slots according to matching constraints\n\nE.g to state that all members of a list are between 1 and 10\n```\nall_members:\n x:\n range: integer\n minimum_value: 10\n maximum_value: 10\n```", + "description": "the value of the multivalued slot is a list where all elements conform to the specified values.\nthis defines a dynamic class with named slots according to matching constraints\n\nE.g to state that all members of a list are between 1 and 10\n```\nall_members:\n x:\n range: integer\n minimum_value: 10\n maximum_value: 10\n```", "from_schema": "https://w3id.org/linkml/meta", "is_a": "list_value_specification_constant", "status": "testing", @@ -3155,7 +3155,7 @@ { "name": "subproperty_of", "definition_uri": "https://w3id.org/linkml/subproperty_of", - "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.", + "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 hierarchy into an enumerated list of possible values in every serialization of the model.", "examples": [ { "value": "RO:HOM0000001", @@ -3574,7 +3574,7 @@ "description": "python base type that implements this type definition", "comments": [ "every root type must have a base", - "the base is inherited by child types but may be overriden. Base compatibility is not checked." + "the base is inherited by child types but may be overridden. Base compatibility is not checked." ], "in_subset": [ "basic" @@ -4043,7 +4043,7 @@ { "name": "path_rule", "definition_uri": "https://w3id.org/linkml/path_rule", - "description": "a rule for inferring a slot assignment based on evaluating a path through a sequence of slot assignemnts", + "description": "a rule for inferring a slot assignment based on evaluating a path through a sequence of slot assignments", "from_schema": "https://w3id.org/linkml/meta", "domain": "SlotDefinition", "slot_uri": "https://w3id.org/linkml/path_rule", @@ -4389,7 +4389,7 @@ { "name": "has_quantity_kind", "definition_uri": "https://w3id.org/linkml/has_quantity_kind", - "description": "Concept in a vocabulary or ontology that denotes the kind of quanity being measured, e.g. length", + "description": "Concept in a vocabulary or ontology that denotes the kind of quantity being measured, e.g. length", "comments": [ "Potential ontologies include but are not limited to PATO, NCIT, OBOE, qudt.quantityKind" ], @@ -4857,7 +4857,7 @@ "definition_uri": "https://w3id.org/linkml/mixins", "description": "List of definitions to be mixed in. Targets may be any definition of the same type", "comments": [ - "mixins act in the same way as parents (is_a). They allow a model to have a primary strict hierachy, while keeping the benefits of multiple inheritance" + "mixins act in the same way as parents (is_a). They allow a model to have a primary strict hierarchy, while keeping the benefits of multiple inheritance" ], "in_subset": [ "basic", @@ -5064,7 +5064,7 @@ "definition_uri": "https://w3id.org/linkml/mixins", "description": "List of definitions to be mixed in. Targets may be any definition of the same type", "comments": [ - "mixins act in the same way as parents (is_a). They allow a model to have a primary strict hierachy, while keeping the benefits of multiple inheritance" + "mixins act in the same way as parents (is_a). They allow a model to have a primary strict hierarchy, while keeping the benefits of multiple inheritance" ], "in_subset": [ "basic", @@ -5202,7 +5202,7 @@ "definition_uri": "https://w3id.org/linkml/mixins", "description": "List of definitions to be mixed in. Targets may be any definition of the same type", "comments": [ - "mixins act in the same way as parents (is_a). They allow a model to have a primary strict hierachy, while keeping the benefits of multiple inheritance" + "mixins act in the same way as parents (is_a). They allow a model to have a primary strict hierarchy, while keeping the benefits of multiple inheritance" ], "in_subset": [ "basic", diff --git a/linkml_runtime/linkml_model/json/types.json b/linkml_runtime/linkml_model/json/types.json index 3eb5f2a6..418ea3fb 100644 --- a/linkml_runtime/linkml_model/json/types.json +++ b/linkml_runtime/linkml_model/json/types.json @@ -158,7 +158,7 @@ "definition_uri": "https://w3id.org/linkml/Objectidentifier", "description": "A URI or CURIE that represents an object in the model.", "comments": [ - "Used for inheritence and type checking" + "Used for inheritance and type checking" ], "from_schema": "https://w3id.org/linkml/types", "base": "ElementIdentifier", diff --git a/linkml_runtime/linkml_model/json/units.json b/linkml_runtime/linkml_model/json/units.json index 820826d3..adf198c4 100644 --- a/linkml_runtime/linkml_model/json/units.json +++ b/linkml_runtime/linkml_model/json/units.json @@ -174,7 +174,7 @@ "definition_uri": "https://w3id.org/linkml/Objectidentifier", "description": "A URI or CURIE that represents an object in the model.", "comments": [ - "Used for inheritence and type checking" + "Used for inheritance and type checking" ], "from_schema": "https://w3id.org/linkml/types", "imported_from": "linkml:types", @@ -243,7 +243,7 @@ { "name": "has_quantity_kind", "definition_uri": "https://w3id.org/linkml/has_quantity_kind", - "description": "Concept in a vocabulary or ontology that denotes the kind of quanity being measured, e.g. length", + "description": "Concept in a vocabulary or ontology that denotes the kind of quantity being measured, e.g. length", "comments": [ "Potential ontologies include but are not limited to PATO, NCIT, OBOE, qudt.quantityKind" ], diff --git a/linkml_runtime/linkml_model/json/validation.json b/linkml_runtime/linkml_model/json/validation.json index 4c9d608d..98e1d026 100644 --- a/linkml_runtime/linkml_model/json/validation.json +++ b/linkml_runtime/linkml_model/json/validation.json @@ -195,7 +195,7 @@ "definition_uri": "https://w3id.org/linkml/Objectidentifier", "description": "A URI or CURIE that represents an object in the model.", "comments": [ - "Used for inheritence and type checking" + "Used for inheritance and type checking" ], "from_schema": "https://w3id.org/linkml/types", "imported_from": "linkml:types", diff --git a/linkml_runtime/linkml_model/jsonld/datasets.context.jsonld b/linkml_runtime/linkml_model/jsonld/datasets.context.jsonld new file mode 100644 index 00000000..262f0574 --- /dev/null +++ b/linkml_runtime/linkml_model/jsonld/datasets.context.jsonld @@ -0,0 +1,138 @@ +{ + "_comments": "Auto generated from datasets.yaml by jsonldcontextgen.py version: 0.1.1\n Generation date: 2022-07-14T00:56:17\n Schema: datasets\n metamodel version: 1.7.0\n model version: None\n \n id: https://w3id.org/linkml/datasets\n description: A datamodel for datasets\n license: https://creativecommons.org/publicdomain/zero/1.0/\n ", + "@context": { + "bibo": "http://example.org/UNKNOWN/bibo/", + "csvw": "http://www.w3.org/ns/csvw#", + "datasets": { + "@id": "https://w3id.org/linkml/report", + "@prefix": true + }, + "dcat": "http://www.w3.org/ns/dcat#", + "dcterms": "http://purl.org/dc/terms/", + "formats": "http://www.w3.org/ns/formats/", + "frictionless": "https://specs.frictionlessdata.io/", + "linkml": "https://w3id.org/linkml/", + "mediatypes": "https://www.iana.org/assignments/media-types/", + "oslc": "http://example.org/UNKNOWN/oslc/", + "owl": "http://www.w3.org/2002/07/owl#", + "pav": "http://purl.org/pav/", + "prov": "http://www.w3.org/ns/prov#", + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "schema": "http://schema.org/", + "sh": "https://w3id.org/shacl/", + "skos": "http://www.w3.org/2004/02/skos/core#", + "void": "http://rdfs.org/ns/void#", + "xsd": "http://www.w3.org/2001/XMLSchema#", + "@vocab": "https://w3id.org/linkml/report", + "bytes": { + "@type": "xsd:integer", + "@id": "dcat:byteSize" + }, + "conforms_to": { + "@type": "@id", + "@id": "dcterms:conformsTo" + }, + "conforms_to_class": { + "@type": "@id" + }, + "conforms_to_schema": { + "@type": "@id" + }, + "created_by": { + "@type": "@id", + "@id": "pav:createdBy" + }, + "created_on": { + "@type": "xsd:dateTime", + "@id": "pav:createdOn" + }, + "description": { + "@id": "dcterms:description" + }, + "dialect": { + "@id": "csvw:dialect" + }, + "download_url": { + "@type": "@id", + "@id": "dcat:downloadURL" + }, + "format": { + "@context": { + "@vocab": "@null", + "text": "skos:notation", + "description": "skos:prefLabel", + "meaning": "@id" + }, + "@id": "dcterms:format" + }, + "id": "@id", + "issued": { + "@type": "xsd:dateTime", + "@id": "dcterms:issued" + }, + "keywords": { + "@id": "dcat:keyword" + }, + "last_updated_on": { + "@type": "xsd:dateTime", + "@id": "pav:lastUpdatedOn" + }, + "license": { + "@id": "dcterms:license" + }, + "media_type": { + "@id": "dcat:mediaType" + }, + "modified_by": { + "@type": "@id", + "@id": "oslc:modifiedBy" + }, + "page": { + "@id": "dcat:landingPage" + }, + "profile": { + "@type": "@id" + }, + "publisher": { + "@type": "@id", + "@id": "dcterms:publisher" + }, + "resources": { + "@type": "@id", + "@id": "dcat:distribution" + }, + "status": { + "@type": "@id", + "@id": "bibo:status" + }, + "test_roles": { + "@context": { + "@vocab": "@null", + "text": "skos:notation", + "description": "skos:prefLabel", + "meaning": "@id" + } + }, + "themes": { + "@type": "@id", + "@id": "dcat:theme" + }, + "title": { + "@id": "dcterms:title" + }, + "version": { + "@id": "pav:version" + }, + "was_derived_from": { + "@id": "prov:wasDerivedFrom" + }, + "DataPackage": { + "@id": "void:Dataset" + }, + "DataResource": { + "@id": "dcat:Distribution" + } + } +} + diff --git a/linkml_runtime/linkml_model/jsonld/datasets.model.context.jsonld b/linkml_runtime/linkml_model/jsonld/datasets.model.context.jsonld new file mode 100644 index 00000000..b332709d --- /dev/null +++ b/linkml_runtime/linkml_model/jsonld/datasets.model.context.jsonld @@ -0,0 +1,138 @@ +{ + "_comments": "Auto generated from datasets.yaml by jsonldcontextgen.py version: 0.1.1\n Generation date: 2022-07-14T00:56:28\n Schema: datasets\n metamodel version: 1.7.0\n model version: None\n \n id: https://w3id.org/linkml/datasets\n description: A datamodel for datasets\n license: https://creativecommons.org/publicdomain/zero/1.0/\n ", + "@context": { + "bibo": "http://example.org/UNKNOWN/bibo/", + "csvw": "http://www.w3.org/ns/csvw#", + "datasets": { + "@id": "https://w3id.org/linkml/report", + "@prefix": true + }, + "dcat": "http://www.w3.org/ns/dcat#", + "dcterms": "http://purl.org/dc/terms/", + "formats": "http://www.w3.org/ns/formats/", + "frictionless": "https://specs.frictionlessdata.io/", + "linkml": "https://w3id.org/linkml/", + "mediatypes": "https://www.iana.org/assignments/media-types/", + "oslc": "http://example.org/UNKNOWN/oslc/", + "owl": "http://www.w3.org/2002/07/owl#", + "pav": "http://purl.org/pav/", + "prov": "http://www.w3.org/ns/prov#", + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "schema": "http://schema.org/", + "sh": "https://w3id.org/shacl/", + "skos": "http://www.w3.org/2004/02/skos/core#", + "void": "http://rdfs.org/ns/void#", + "xsd": "http://www.w3.org/2001/XMLSchema#", + "@vocab": "https://w3id.org/linkml/report", + "bytes": { + "@type": "xsd:integer", + "@id": "dcat:byteSize" + }, + "conforms_to": { + "@type": "@id", + "@id": "dcterms:conformsTo" + }, + "conforms_to_class": { + "@type": "@id" + }, + "conforms_to_schema": { + "@type": "@id" + }, + "created_by": { + "@type": "@id", + "@id": "pav:createdBy" + }, + "created_on": { + "@type": "xsd:dateTime", + "@id": "pav:createdOn" + }, + "description": { + "@id": "dcterms:description" + }, + "dialect": { + "@id": "csvw:dialect" + }, + "download_url": { + "@type": "@id", + "@id": "dcat:downloadURL" + }, + "format": { + "@context": { + "@vocab": "@null", + "text": "skos:notation", + "description": "skos:prefLabel", + "meaning": "@id" + }, + "@id": "dcterms:format" + }, + "id": "@id", + "issued": { + "@type": "xsd:dateTime", + "@id": "dcterms:issued" + }, + "keywords": { + "@id": "dcat:keyword" + }, + "last_updated_on": { + "@type": "xsd:dateTime", + "@id": "pav:lastUpdatedOn" + }, + "license": { + "@id": "dcterms:license" + }, + "media_type": { + "@id": "dcat:mediaType" + }, + "modified_by": { + "@type": "@id", + "@id": "oslc:modifiedBy" + }, + "page": { + "@id": "dcat:landingPage" + }, + "profile": { + "@type": "@id" + }, + "publisher": { + "@type": "@id", + "@id": "dcterms:publisher" + }, + "resources": { + "@type": "@id", + "@id": "dcat:distribution" + }, + "status": { + "@type": "@id", + "@id": "bibo:status" + }, + "test_roles": { + "@context": { + "@vocab": "@null", + "text": "skos:notation", + "description": "skos:prefLabel", + "meaning": "@id" + } + }, + "themes": { + "@type": "@id", + "@id": "dcat:theme" + }, + "title": { + "@id": "dcterms:title" + }, + "version": { + "@id": "pav:version" + }, + "was_derived_from": { + "@id": "prov:wasDerivedFrom" + }, + "DataPackage": { + "@id": "void:Dataset" + }, + "DataResource": { + "@id": "dcat:Distribution" + } + } +} + diff --git a/linkml_runtime/linkml_model/jsonld/meta.context.jsonld b/linkml_runtime/linkml_model/jsonld/meta.context.jsonld index 20334b57..e29e4ff8 100644 --- a/linkml_runtime/linkml_model/jsonld/meta.context.jsonld +++ b/linkml_runtime/linkml_model/jsonld/meta.context.jsonld @@ -1,7 +1,7 @@ { "comments": { "description": "Auto generated by LinkML jsonld context generator", - "generation_date": "2023-03-16T10:58:06", + "generation_date": "2023-09-01T13:19:55", "source": "meta.yaml" }, "@context": { @@ -12,6 +12,7 @@ "NCIT": "http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#", "OIO": "http://www.geneontology.org/formats/oboInOwl#", "bibo": "http://purl.org/ontology/bibo/", + "cdisc": "http://rdf.cdisc.org/mms#", "dcterms": "http://purl.org/dc/terms/", "linkml": "https://w3id.org/linkml/", "oslc": "http://open-services.net/ns/core#", @@ -200,6 +201,9 @@ "tag": { "@type": "@id" }, + "value": { + "@id": "skos:example" + }, "extensions": { "@type": "@id" }, @@ -272,6 +276,9 @@ "inlined_as_simple_dict": { "@type": "xsd:boolean" }, + "instantiates": { + "@type": "@id" + }, "interpolated": { "@type": "xsd:boolean" }, @@ -597,9 +604,6 @@ "@type": "@id", "@id": "qudt:unit" }, - "value": { - "@id": "skos:example" - }, "object": { "@type": "@id" }, diff --git a/linkml_runtime/linkml_model/jsonld/meta.jsonld b/linkml_runtime/linkml_model/jsonld/meta.jsonld new file mode 100644 index 00000000..ff3e780b --- /dev/null +++ b/linkml_runtime/linkml_model/jsonld/meta.jsonld @@ -0,0 +1,8032 @@ +{ + "name": "meta", + "description": "The metamodel for schemas defined using the Linked Data Modeling Language framework.\n\nFor more information on LinkML:\n\n* [linkml.io](https://linkml.io) main website\n* [specification](https://w3id.org/linkml/docs/specification/)\n\nLinkML is self-describing. Every LinkML schema consists of elements\nthat instantiate classes in this metamodel.\n\nCore metaclasses:\n\n* [SchemaDefinition](https://w3id.org/linkml/SchemaDefinition)\n* [ClassDefinition](https://w3id.org/linkml/ClassDefinition)\n* [SlotDefinition](https://w3id.org/linkml/SlotDefinition)\n* [TypeDefinition](https://w3id.org/linkml/TypeDefinition)\n\nThere are many subsets of *profiles* of the metamodel, for different purposes:\n\n* [MinimalSubset](https://w3id.org/linkml/MinimalSubset)\n* [BasicSubset](https://w3id.org/linkml/BasicSubset)\n* [BasicSubset](https://w3id.org/linkml/BasicSubset)\n\nFor canonical reference documentation on any metamodel construct,\nrefer to the official URI for each construct, e.g.\n[https://w3id.org/linkml/is_a](https://w3id.org/linkml/is_a)", + "title": "LinkML Schema Metamodel", + "id": "https://w3id.org/linkml/meta", + "version": "2.0.0", + "imports": [ + "linkml:types", + "linkml:mappings", + "linkml:extensions", + "linkml:annotations", + "linkml:units" + ], + "license": "https://creativecommons.org/publicdomain/zero/1.0/", + "prefixes": [ + { + "prefix_prefix": "linkml", + "prefix_reference": "https://w3id.org/linkml/" + }, + { + "prefix_prefix": "skos", + "prefix_reference": "http://www.w3.org/2004/02/skos/core#" + }, + { + "prefix_prefix": "skosxl", + "prefix_reference": "http://www.w3.org/2008/05/skos-xl#" + }, + { + "prefix_prefix": "OIO", + "prefix_reference": "http://www.geneontology.org/formats/oboInOwl#" + }, + { + "prefix_prefix": "NCIT", + "prefix_reference": "http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#" + }, + { + "prefix_prefix": "pav", + "prefix_reference": "http://purl.org/pav/" + }, + { + "prefix_prefix": "oslc", + "prefix_reference": "http://open-services.net/ns/core#" + }, + { + "prefix_prefix": "schema", + "prefix_reference": "http://schema.org/" + }, + { + "prefix_prefix": "bibo", + "prefix_reference": "http://purl.org/ontology/bibo/" + }, + { + "prefix_prefix": "swrl", + "prefix_reference": "http://www.w3.org/2003/11/swrl#" + }, + { + "prefix_prefix": "sh", + "prefix_reference": "http://www.w3.org/ns/shacl#" + }, + { + "prefix_prefix": "owl", + "prefix_reference": "http://www.w3.org/2002/07/owl#" + }, + { + "prefix_prefix": "qb", + "prefix_reference": "http://purl.org/linked-data/cube#" + }, + { + "prefix_prefix": "prov", + "prefix_reference": "http://www.w3.org/ns/prov#" + }, + { + "prefix_prefix": "vann", + "prefix_reference": "https://vocab.org/vann/" + }, + { + "prefix_prefix": "qudt", + "prefix_reference": "http://qudt.org/schema/qudt/" + }, + { + "prefix_prefix": "cdisc", + "prefix_reference": "http://rdf.cdisc.org/mms#" + } + ], + "emit_prefixes": [ + "linkml", + "rdf", + "rdfs", + "xsd", + "skos", + "dcterms", + "OIO", + "owl", + "pav", + "IAO" + ], + "default_curi_maps": [ + "semweb_context" + ], + "default_prefix": "linkml", + "default_range": "string", + "subsets": [ + { + "name": "MinimalSubset", + "definition_uri": "https://w3id.org/linkml/MinimalSubset", + "description": "The absolute minimal set of elements necessary for defining any schema.\n\nschemas conforming to the minimal subset consist of classes, with all slots\ninlined as attributes. There are no enums.", + "title": "minimal subset", + "from_schema": "https://w3id.org/linkml/meta", + "rank": 0, + "@type": "SubsetDefinition" + }, + { + "name": "BasicSubset", + "definition_uri": "https://w3id.org/linkml/BasicSubset", + "description": "An extension of MinimalSubset that avoids advanced constructs and can be implemented by a broad variety of tools.\n\nThis subset roughly corresponds to the union of most standard constructs used in relational datamodel modeling,\nobject oriented modeling, and simple JSON-style modeling, while avoiding more advanced constructs from these languages.\n\nIt is often possible to translate from a more expressive schema to a BasicSubset schema, through a schema derivation\nprocess", + "title": "basic subset", + "from_schema": "https://w3id.org/linkml/meta", + "rank": 1, + "@type": "SubsetDefinition" + }, + { + "name": "SpecificationSubset", + "definition_uri": "https://w3id.org/linkml/SpecificationSubset", + "description": "A subset that includes all the metamodel elements that form part of the normative LinkML specification.\n\nThe complete LinkML specification can be found at [linkml:specification](https://w3id.org/linkml/specification)", + "title": "specification subset", + "from_schema": "https://w3id.org/linkml/meta", + "rank": 2, + "@type": "SubsetDefinition" + }, + { + "name": "RelationalModelProfile", + "definition_uri": "https://w3id.org/linkml/RelationalModelProfile", + "description": "A profile that includes all the metamodel elements whose semantics can be expressed using the classic Relational Model.\nThe Relational Model excludes collections (multivalued slots) as first class entities. Instead, these must be\nmapped to backreferences\n\nThe classic Relational Model excludes inheritance and polymorphism -- these must be rolled down to\nconcrete classes or otherwise transformed.", + "title": "relational model profile", + "from_schema": "https://w3id.org/linkml/meta", + "rank": 3, + "@type": "SubsetDefinition" + }, + { + "name": "ObjectOrientedProfile", + "definition_uri": "https://w3id.org/linkml/ObjectOrientedProfile", + "description": "A profile that includes all the metamodel elements whose semantics can be expressed using a minimal\nimplementation of the object oriented metamodel as employed by languages such as Java and Python, or\nin modeling frameworks like UML", + "title": "object oriented profile", + "from_schema": "https://w3id.org/linkml/meta", + "rank": 4, + "@type": "SubsetDefinition" + }, + { + "name": "OwlProfile", + "definition_uri": "https://w3id.org/linkml/OwlProfile", + "description": "A profile that includes all the metamodel elements whose semantics can be expressed in OWL", + "title": "owl profile", + "from_schema": "https://w3id.org/linkml/meta", + "@type": "SubsetDefinition" + } + ], + "types": [ + { + "name": "string", + "definition_uri": "https://w3id.org/linkml/String", + "description": "A character string", + "notes": [ + "In RDF serializations, a slot with range of string is treated as a literal or type xsd:string. If you are authoring schemas in LinkML YAML, the type is referenced with the lower case \"string\"." + ], + "from_schema": "https://w3id.org/linkml/types", + "imported_from": "linkml:types", + "exact_mappings": [ + "schema:Text" + ], + "base": "str", + "uri": "http://www.w3.org/2001/XMLSchema#string", + "@type": "TypeDefinition" + }, + { + "name": "integer", + "definition_uri": "https://w3id.org/linkml/Integer", + "description": "An integer", + "notes": [ + "If you are authoring schemas in LinkML YAML, the type is referenced with the lower case \"integer\"." + ], + "from_schema": "https://w3id.org/linkml/types", + "imported_from": "linkml:types", + "exact_mappings": [ + "schema:Integer" + ], + "base": "int", + "uri": "http://www.w3.org/2001/XMLSchema#integer", + "@type": "TypeDefinition" + }, + { + "name": "boolean", + "definition_uri": "https://w3id.org/linkml/Boolean", + "description": "A binary (true or false) value", + "notes": [ + "If you are authoring schemas in LinkML YAML, the type is referenced with the lower case \"boolean\"." + ], + "from_schema": "https://w3id.org/linkml/types", + "imported_from": "linkml:types", + "exact_mappings": [ + "schema:Boolean" + ], + "base": "Bool", + "uri": "http://www.w3.org/2001/XMLSchema#boolean", + "repr": "bool", + "@type": "TypeDefinition" + }, + { + "name": "float", + "definition_uri": "https://w3id.org/linkml/Float", + "description": "A real number that conforms to the xsd:float specification", + "notes": [ + "If you are authoring schemas in LinkML YAML, the type is referenced with the lower case \"float\"." + ], + "from_schema": "https://w3id.org/linkml/types", + "imported_from": "linkml:types", + "exact_mappings": [ + "schema:Float" + ], + "base": "float", + "uri": "http://www.w3.org/2001/XMLSchema#float", + "@type": "TypeDefinition" + }, + { + "name": "double", + "definition_uri": "https://w3id.org/linkml/Double", + "description": "A real number that conforms to the xsd:double specification", + "notes": [ + "If you are authoring schemas in LinkML YAML, the type is referenced with the lower case \"double\"." + ], + "from_schema": "https://w3id.org/linkml/types", + "imported_from": "linkml:types", + "close_mappings": [ + "schema:Float" + ], + "base": "float", + "uri": "http://www.w3.org/2001/XMLSchema#double", + "@type": "TypeDefinition" + }, + { + "name": "decimal", + "definition_uri": "https://w3id.org/linkml/Decimal", + "description": "A real number with arbitrary precision that conforms to the xsd:decimal specification", + "notes": [ + "If you are authoring schemas in LinkML YAML, the type is referenced with the lower case \"decimal\"." + ], + "from_schema": "https://w3id.org/linkml/types", + "imported_from": "linkml:types", + "broad_mappings": [ + "schema:Number" + ], + "base": "Decimal", + "uri": "http://www.w3.org/2001/XMLSchema#decimal", + "@type": "TypeDefinition" + }, + { + "name": "time", + "definition_uri": "https://w3id.org/linkml/Time", + "description": "A time object represents a (local) time of day, independent of any particular day", + "notes": [ + "URI is dateTime because OWL reasoners do not work with straight date or time", + "If you are authoring schemas in LinkML YAML, the type is referenced with the lower case \"time\"." + ], + "from_schema": "https://w3id.org/linkml/types", + "imported_from": "linkml:types", + "exact_mappings": [ + "schema:Time" + ], + "base": "XSDTime", + "uri": "http://www.w3.org/2001/XMLSchema#time", + "repr": "str", + "@type": "TypeDefinition" + }, + { + "name": "date", + "definition_uri": "https://w3id.org/linkml/Date", + "description": "a date (year, month and day) in an idealized calendar", + "notes": [ + "URI is dateTime because OWL reasoners don't work with straight date or time", + "If you are authoring schemas in LinkML YAML, the type is referenced with the lower case \"date\"." + ], + "from_schema": "https://w3id.org/linkml/types", + "imported_from": "linkml:types", + "exact_mappings": [ + "schema:Date" + ], + "base": "XSDDate", + "uri": "http://www.w3.org/2001/XMLSchema#date", + "repr": "str", + "@type": "TypeDefinition" + }, + { + "name": "datetime", + "definition_uri": "https://w3id.org/linkml/Datetime", + "description": "The combination of a date and time", + "notes": [ + "If you are authoring schemas in LinkML YAML, the type is referenced with the lower case \"datetime\"." + ], + "from_schema": "https://w3id.org/linkml/types", + "imported_from": "linkml:types", + "exact_mappings": [ + "schema:DateTime" + ], + "base": "XSDDateTime", + "uri": "http://www.w3.org/2001/XMLSchema#dateTime", + "repr": "str", + "@type": "TypeDefinition" + }, + { + "name": "date_or_datetime", + "definition_uri": "https://w3id.org/linkml/DateOrDatetime", + "description": "Either a date or a datetime", + "notes": [ + "If you are authoring schemas in LinkML YAML, the type is referenced with the lower case \"date_or_datetime\"." + ], + "from_schema": "https://w3id.org/linkml/types", + "imported_from": "linkml:types", + "base": "str", + "uri": "https://w3id.org/linkml/DateOrDatetime", + "repr": "str", + "@type": "TypeDefinition" + }, + { + "name": "uriorcurie", + "definition_uri": "https://w3id.org/linkml/Uriorcurie", + "description": "a URI or a CURIE", + "notes": [ + "If you are authoring schemas in LinkML YAML, the type is referenced with the lower case \"uriorcurie\"." + ], + "from_schema": "https://w3id.org/linkml/types", + "imported_from": "linkml:types", + "base": "URIorCURIE", + "uri": "http://www.w3.org/2001/XMLSchema#anyURI", + "repr": "str", + "@type": "TypeDefinition" + }, + { + "name": "curie", + "definition_uri": "https://w3id.org/linkml/Curie", + "conforms_to": "https://www.w3.org/TR/curie/", + "description": "a compact URI", + "notes": [ + "If you are authoring schemas in LinkML YAML, the type is referenced with the lower case \"curie\"." + ], + "comments": [ + "in RDF serializations this MUST be expanded to a URI", + "in non-RDF serializations MAY be serialized as the compact representation" + ], + "from_schema": "https://w3id.org/linkml/types", + "imported_from": "linkml:types", + "base": "Curie", + "uri": "http://www.w3.org/2001/XMLSchema#string", + "repr": "str", + "@type": "TypeDefinition" + }, + { + "name": "uri", + "definition_uri": "https://w3id.org/linkml/Uri", + "conforms_to": "https://www.ietf.org/rfc/rfc3987.txt", + "description": "a complete URI", + "notes": [ + "If you are authoring schemas in LinkML YAML, the type is referenced with the lower case \"uri\"." + ], + "comments": [ + "in RDF serializations a slot with range of uri is treated as a literal or type xsd:anyURI unless it is an identifier or a reference to an identifier, in which case it is translated directly to a node" + ], + "from_schema": "https://w3id.org/linkml/types", + "imported_from": "linkml:types", + "close_mappings": [ + "schema:URL" + ], + "base": "URI", + "uri": "http://www.w3.org/2001/XMLSchema#anyURI", + "repr": "str", + "@type": "TypeDefinition" + }, + { + "name": "ncname", + "definition_uri": "https://w3id.org/linkml/Ncname", + "description": "Prefix part of CURIE", + "notes": [ + "If you are authoring schemas in LinkML YAML, the type is referenced with the lower case \"ncname\"." + ], + "from_schema": "https://w3id.org/linkml/types", + "imported_from": "linkml:types", + "base": "NCName", + "uri": "http://www.w3.org/2001/XMLSchema#string", + "repr": "str", + "@type": "TypeDefinition" + }, + { + "name": "objectidentifier", + "definition_uri": "https://w3id.org/linkml/Objectidentifier", + "description": "A URI or CURIE that represents an object in the model.", + "notes": [ + "If you are authoring schemas in LinkML YAML, the type is referenced with the lower case \"objectidentifier\"." + ], + "comments": [ + "Used for inheritance and type checking" + ], + "from_schema": "https://w3id.org/linkml/types", + "imported_from": "linkml:types", + "base": "ElementIdentifier", + "uri": "http://www.w3.org/ns/shex#iri", + "repr": "str", + "@type": "TypeDefinition" + }, + { + "name": "nodeidentifier", + "definition_uri": "https://w3id.org/linkml/Nodeidentifier", + "description": "A URI, CURIE or BNODE that represents a node in a model.", + "notes": [ + "If you are authoring schemas in LinkML YAML, the type is referenced with the lower case \"nodeidentifier\"." + ], + "from_schema": "https://w3id.org/linkml/types", + "imported_from": "linkml:types", + "base": "NodeIdentifier", + "uri": "http://www.w3.org/ns/shex#nonLiteral", + "repr": "str", + "@type": "TypeDefinition" + }, + { + "name": "jsonpointer", + "definition_uri": "https://w3id.org/linkml/Jsonpointer", + "conforms_to": "https://datatracker.ietf.org/doc/html/rfc6901", + "description": "A string encoding a JSON Pointer. The value of the string MUST conform to JSON Point syntax and SHOULD dereference to a valid object within the current instance document when encoded in tree form.", + "notes": [ + "If you are authoring schemas in LinkML YAML, the type is referenced with the lower case \"jsonpointer\"." + ], + "from_schema": "https://w3id.org/linkml/types", + "imported_from": "linkml:types", + "base": "str", + "uri": "http://www.w3.org/2001/XMLSchema#string", + "repr": "str", + "@type": "TypeDefinition" + }, + { + "name": "jsonpath", + "definition_uri": "https://w3id.org/linkml/Jsonpath", + "conforms_to": "https://www.ietf.org/archive/id/draft-goessner-dispatch-jsonpath-00.html", + "description": "A string encoding a JSON Path. The value of the string MUST conform to JSON Point syntax and SHOULD dereference to zero or more valid objects within the current instance document when encoded in tree form.", + "notes": [ + "If you are authoring schemas in LinkML YAML, the type is referenced with the lower case \"jsonpath\"." + ], + "from_schema": "https://w3id.org/linkml/types", + "imported_from": "linkml:types", + "base": "str", + "uri": "http://www.w3.org/2001/XMLSchema#string", + "repr": "str", + "@type": "TypeDefinition" + }, + { + "name": "sparqlpath", + "definition_uri": "https://w3id.org/linkml/Sparqlpath", + "conforms_to": "https://www.w3.org/TR/sparql11-query/#propertypaths", + "description": "A string encoding a SPARQL Property Path. The value of the string MUST conform to SPARQL syntax and SHOULD dereference to zero or more valid objects within the current instance document when encoded as RDF.", + "notes": [ + "If you are authoring schemas in LinkML YAML, the type is referenced with the lower case \"sparqlpath\"." + ], + "from_schema": "https://w3id.org/linkml/types", + "imported_from": "linkml:types", + "base": "str", + "uri": "http://www.w3.org/2001/XMLSchema#string", + "repr": "str", + "@type": "TypeDefinition" + } + ], + "enums": [ + { + "name": "pv_formula_options", + "definition_uri": "https://w3id.org/linkml/PvFormulaOptions", + "description": "The formula used to generate the set of permissible values from the code_set values", + "in_subset": [ + "SpecificationSubset", + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "rank": 1, + "permissible_values": [ + { + "text": "CODE", + "description": "The permissible values are the set of possible codes in the code set" + }, + { + "text": "CURIE", + "description": "The permissible values are the set of CURIES in the code set" + }, + { + "text": "URI", + "description": "The permissible values are the set of code URIs in the code set" + }, + { + "text": "FHIR_CODING", + "description": "The permissible values are the set of FHIR coding elements derived from the code set" + } + ] + }, + { + "name": "presence_enum", + "definition_uri": "https://w3id.org/linkml/PresenceEnum", + "description": "enumeration of conditions by which a slot value should be set", + "from_schema": "https://w3id.org/linkml/meta", + "status": "testing", + "rank": 11, + "permissible_values": [ + { + "text": "UNCOMMITTED" + }, + { + "text": "PRESENT" + }, + { + "text": "ABSENT" + } + ] + }, + { + "name": "relational_role_enum", + "definition_uri": "https://w3id.org/linkml/RelationalRoleEnum", + "description": "enumeration of roles a slot on a relationship class can play", + "from_schema": "https://w3id.org/linkml/meta", + "rank": 3, + "permissible_values": [ + { + "text": "SUBJECT", + "description": "a slot with this role connects a relationship to its subject/source node", + "meaning": "rdf:subject", + "exact_mappings": [ + "owl:annotatedSource" + ] + }, + { + "text": "OBJECT", + "description": "a slot with this role connects a relationship to its object/target node", + "meaning": "rdf:object", + "exact_mappings": [ + "owl:annotatedTarget" + ] + }, + { + "text": "PREDICATE", + "description": "a slot with this role connects a relationship to its predicate/property", + "meaning": "rdf:predicate", + "exact_mappings": [ + "owl:annotatedProperty" + ] + }, + { + "text": "NODE", + "description": "a slot with this role connects a symmetric relationship to a node that represents either subject or object node" + }, + { + "text": "OTHER_ROLE", + "description": "a slot with this role connects a relationship to a node that is not subject/object/predicate" + } + ] + }, + { + "name": "alias_predicate_enum", + "definition_uri": "https://w3id.org/linkml/AliasPredicateEnum", + "description": "permissible values for the relationship between an element and an alias", + "from_schema": "https://w3id.org/linkml/meta", + "rank": 5, + "permissible_values": [ + { + "text": "EXACT_SYNONYM", + "meaning": "skos:exactMatch" + }, + { + "text": "RELATED_SYNONYM", + "meaning": "skos:relatedMatch" + }, + { + "text": "BROAD_SYNONYM", + "meaning": "skos:broaderMatch" + }, + { + "text": "NARROW_SYNONYM", + "meaning": "skos:narrowerMatch" + } + ] + } + ], + "slots": [ + { + "name": "name", + "definition_uri": "https://w3id.org/linkml/name", + "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.", + "in_subset": [ + "SpecificationSubset", + "OwlProfile", + "MinimalSubset", + "BasicSubset", + "RelationalModelProfile", + "ObjectOrientedProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://en.wikipedia.org/wiki/Data_element_name", + "https://linkml.io/linkml/faq/modeling.html#why-are-my-class-names-translated-to-camelcase" + ], + "aliases": [ + "short name", + "unique name" + ], + "mappings": [ + "http://www.w3.org/2000/01/rdf-schema#label" + ], + "exact_mappings": [ + "http://schema.org/name" + ], + "rank": 1, + "domain": "Element", + "slot_uri": "http://www.w3.org/2000/01/rdf-schema#label", + "identifier": true, + "owner": "Element", + "domain_of": [ + "Element" + ], + "range": "string", + "required": true, + "@type": "SlotDefinition" + }, + { + "name": "title", + "definition_uri": "https://w3id.org/linkml/title", + "description": "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation.", + "in_subset": [ + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "aliases": [ + "long name" + ], + "mappings": [ + "http://purl.org/dc/terms/title" + ], + "rank": 3, + "domain": "Element", + "slot_uri": "http://purl.org/dc/terms/title", + "owner": "title", + "domain_of": [ + "CommonMetadata" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "conforms_to", + "definition_uri": "https://w3id.org/linkml/conforms_to", + "description": "An established standard to which the element conforms.", + "in_subset": [ + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "linkml:implements" + ], + "mappings": [ + "http://purl.org/dc/terms/conformsTo" + ], + "domain": "Element", + "slot_uri": "http://purl.org/dc/terms/conformsTo", + "owner": "Element", + "domain_of": [ + "Element" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "implements", + "definition_uri": "https://w3id.org/linkml/implements", + "description": "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element.", + "from_schema": "https://w3id.org/linkml/meta", + "domain": "Element", + "slot_uri": "https://w3id.org/linkml/implements", + "multivalued": true, + "owner": "Element", + "domain_of": [ + "Element" + ], + "range": "uriorcurie", + "@type": "SlotDefinition" + }, + { + "name": "instantiates", + "definition_uri": "https://w3id.org/linkml/instantiates", + "description": "An element in another schema which this element instantiates.", + "from_schema": "https://w3id.org/linkml/meta", + "domain": "Element", + "slot_uri": "https://w3id.org/linkml/instantiates", + "multivalued": true, + "owner": "Element", + "domain_of": [ + "Element" + ], + "range": "uriorcurie", + "@type": "SlotDefinition" + }, + { + "name": "categories", + "definition_uri": "https://w3id.org/linkml/categories", + "description": "Controlled terms used to categorize an element.", + "comments": [ + "if you wish to use uncontrolled terms or terms that lack identifiers then use the keywords element" + ], + "in_subset": [ + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "mappings": [ + "http://purl.org/dc/terms/subject" + ], + "singular_name": "category", + "slot_uri": "http://purl.org/dc/terms/subject", + "multivalued": true, + "owner": "StructuredAlias", + "domain_of": [ + "CommonMetadata", + "StructuredAlias" + ], + "range": "uriorcurie", + "@type": "SlotDefinition" + }, + { + "name": "keywords", + "definition_uri": "https://w3id.org/linkml/keywords", + "description": "Keywords or tags used to describe the element", + "in_subset": [ + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "mappings": [ + "http://schema.org/keywords" + ], + "singular_name": "keyword", + "domain": "Element", + "slot_uri": "http://schema.org/keywords", + "multivalued": true, + "owner": "keywords", + "domain_of": [ + "CommonMetadata" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "definition_uri", + "definition_uri": "https://w3id.org/linkml/definition_uri", + "description": "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri", + "comments": [ + "Formed by combining the default_prefix with the normalized element name" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "linkml:class_uri", + "linkml:slot_uri" + ], + "domain": "Element", + "slot_uri": "https://w3id.org/linkml/definition_uri", + "readonly": "filled in by the schema loader or schema view", + "owner": "Element", + "domain_of": [ + "Element" + ], + "range": "uriorcurie", + "@type": "SlotDefinition" + }, + { + "name": "id_prefixes", + "definition_uri": "https://w3id.org/linkml/id_prefixes", + "description": "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix", + "comments": [ + "Order of elements may be used to indicate priority order", + "If identifiers are treated as CURIEs, then the CURIE must start with one of the indicated prefixes followed by `:` (_should_ start if the list is open)", + "If identifiers are treated as URIs, then the URI string must start with the expanded for of the prefix (_should_ start if the list is open)" + ], + "in_subset": [ + "SpecificationSubset", + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://github.com/linkml/linkml/issues/194", + "https://github.com/linkml/linkml-model/issues/28" + ], + "domain": "Element", + "slot_uri": "https://w3id.org/linkml/id_prefixes", + "multivalued": true, + "owner": "Element", + "domain_of": [ + "Element" + ], + "range": "ncname", + "@type": "SlotDefinition" + }, + { + "name": "description", + "definition_uri": "https://w3id.org/linkml/description", + "description": "a textual description of the element's purpose and use", + "in_subset": [ + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "aliases": [ + "definition" + ], + "mappings": [ + "http://www.w3.org/2004/02/skos/core#definition" + ], + "exact_mappings": [ + "http://purl.org/dc/terms/description", + "http://schema.org/description" + ], + "rank": 5, + "domain": "Element", + "slot_uri": "http://www.w3.org/2004/02/skos/core#definition", + "owner": "description", + "domain_of": [ + "CommonMetadata", + "PermissibleValue" + ], + "range": "string", + "recommended": true, + "@type": "SlotDefinition" + }, + { + "name": "structured_aliases", + "definition_uri": "https://w3id.org/linkml/structured_aliases", + "description": "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata.", + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "linkml:aliases" + ], + "mappings": [ + "http://www.w3.org/2008/05/skos-xl#altLabel" + ], + "slot_uri": "http://www.w3.org/2008/05/skos-xl#altLabel", + "multivalued": true, + "owner": "CommonMetadata", + "domain_of": [ + "CommonMetadata" + ], + "range": "StructuredAlias", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "aliases", + "definition_uri": "https://w3id.org/linkml/aliases", + "description": "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment.", + "comments": [ + "not be confused with the metaslot alias." + ], + "in_subset": [ + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "aliases": [ + "synonyms", + "alternate names", + "alternative labels", + "designations" + ], + "mappings": [ + "http://www.w3.org/2004/02/skos/core#altLabel" + ], + "exact_mappings": [ + "http://schema.org/alternateName" + ], + "domain": "Element", + "slot_uri": "http://www.w3.org/2004/02/skos/core#altLabel", + "multivalued": true, + "owner": "aliases", + "domain_of": [ + "CommonMetadata" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "deprecated", + "definition_uri": "https://w3id.org/linkml/deprecated", + "description": "Description of why and when this element will no longer be used", + "comments": [ + "note that linkml does not use a boolean to indicate deprecation status - the presence of a string value in this field is sufficient to indicate deprecation." + ], + "in_subset": [ + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "close_mappings": [ + "http://www.w3.org/2002/07/owl#deprecated" + ], + "domain": "Element", + "slot_uri": "https://w3id.org/linkml/deprecated", + "owner": "deprecated", + "domain_of": [ + "CommonMetadata" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "todos", + "definition_uri": "https://w3id.org/linkml/todos", + "description": "Outstanding issues that needs resolution", + "in_subset": [ + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "domain": "Element", + "slot_uri": "https://w3id.org/linkml/todos", + "multivalued": true, + "owner": "todos", + "domain_of": [ + "CommonMetadata" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "notes", + "definition_uri": "https://w3id.org/linkml/notes", + "description": "editorial notes about an element intended primarily for internal consumption", + "in_subset": [ + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "mappings": [ + "http://www.w3.org/2004/02/skos/core#editorialNote" + ], + "domain": "Element", + "slot_uri": "http://www.w3.org/2004/02/skos/core#editorialNote", + "multivalued": true, + "owner": "notes", + "domain_of": [ + "CommonMetadata" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "comments", + "definition_uri": "https://w3id.org/linkml/comments", + "description": "notes and comments about an element intended primarily for external consumption", + "in_subset": [ + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "mappings": [ + "http://www.w3.org/2004/02/skos/core#note" + ], + "exact_mappings": [ + "http://www.w3.org/2000/01/rdf-schema#comment" + ], + "domain": "Element", + "slot_uri": "http://www.w3.org/2004/02/skos/core#note", + "multivalued": true, + "owner": "comments", + "domain_of": [ + "CommonMetadata" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "in_subset", + "definition_uri": "https://w3id.org/linkml/in_subset", + "description": "used to indicate membership of a term in a defined subset of terms used for a particular domain or application.", + "comments": [ + "an example of use in the translator_minimal subset in the biolink model, holding the minimal set of predicates used in a translator knowledge graph" + ], + "in_subset": [ + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "mappings": [ + "http://www.geneontology.org/formats/oboInOwl#inSubset" + ], + "domain": "Element", + "slot_uri": "http://www.geneontology.org/formats/oboInOwl#inSubset", + "multivalued": true, + "owner": "in_subset", + "domain_of": [ + "CommonMetadata" + ], + "range": "SubsetDefinition", + "@type": "SlotDefinition" + }, + { + "name": "from_schema", + "definition_uri": "https://w3id.org/linkml/from_schema", + "description": "id of the schema that defined the element", + "notes": [ + "A stronger model would be range schema_definition, but this doesn't address the import model" + ], + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "mappings": [ + "http://www.w3.org/2004/02/skos/core#inScheme" + ], + "domain": "Element", + "slot_uri": "http://www.w3.org/2004/02/skos/core#inScheme", + "readonly": "supplied by the schema loader or schema view", + "owner": "from_schema", + "domain_of": [ + "CommonMetadata" + ], + "range": "uri", + "@type": "SlotDefinition" + }, + { + "name": "imported_from", + "definition_uri": "https://w3id.org/linkml/imported_from", + "description": "the imports entry that this element was derived from. Empty means primary source", + "from_schema": "https://w3id.org/linkml/meta", + "domain": "Element", + "slot_uri": "https://w3id.org/linkml/imported_from", + "readonly": "supplied by the schema loader or schema view", + "owner": "imported_from", + "domain_of": [ + "CommonMetadata" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "see_also", + "definition_uri": "https://w3id.org/linkml/see_also", + "description": "A list of related entities or URLs that may be of relevance", + "in_subset": [ + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "mappings": [ + "http://www.w3.org/2000/01/rdf-schema#seeAlso" + ], + "domain": "Element", + "slot_uri": "http://www.w3.org/2000/01/rdf-schema#seeAlso", + "multivalued": true, + "owner": "see_also", + "domain_of": [ + "CommonMetadata" + ], + "range": "uriorcurie", + "@type": "SlotDefinition" + }, + { + "name": "owned_by", + "definition_uri": "https://w3id.org/linkml/owned_by", + "description": "agent that owns or is the steward of the element", + "in_subset": [ + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "aliases": [ + "steward", + "owner" + ], + "close_mappings": [ + "http://www.w3.org/2000/01/rdf-schema#isDefinedBy" + ], + "domain": "Element", + "slot_uri": "https://w3id.org/linkml/owned_by", + "owner": "owned_by", + "range": "uriorcurie", + "@type": "SlotDefinition" + }, + { + "name": "created_by", + "definition_uri": "https://w3id.org/linkml/created_by", + "description": "agent that created the element", + "in_subset": [ + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "mappings": [ + "http://purl.org/pav/createdBy" + ], + "domain": "Element", + "slot_uri": "http://purl.org/pav/createdBy", + "owner": "created_by", + "domain_of": [ + "CommonMetadata" + ], + "range": "uriorcurie", + "@type": "SlotDefinition" + }, + { + "name": "contributors", + "definition_uri": "https://w3id.org/linkml/contributors", + "description": "agent that contributed to the element", + "in_subset": [ + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "mappings": [ + "http://purl.org/dc/terms/contributor" + ], + "domain": "Element", + "slot_uri": "http://purl.org/dc/terms/contributor", + "multivalued": true, + "owner": "contributors", + "domain_of": [ + "CommonMetadata" + ], + "range": "uriorcurie", + "@type": "SlotDefinition" + }, + { + "name": "created_on", + "definition_uri": "https://w3id.org/linkml/created_on", + "description": "time at which the element was created", + "in_subset": [ + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "mappings": [ + "http://purl.org/pav/createdOn" + ], + "domain": "Element", + "slot_uri": "http://purl.org/pav/createdOn", + "owner": "created_on", + "domain_of": [ + "CommonMetadata" + ], + "range": "datetime", + "@type": "SlotDefinition" + }, + { + "name": "last_updated_on", + "definition_uri": "https://w3id.org/linkml/last_updated_on", + "description": "time at which the element was last updated", + "in_subset": [ + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "mappings": [ + "http://purl.org/pav/lastUpdatedOn" + ], + "domain": "Element", + "slot_uri": "http://purl.org/pav/lastUpdatedOn", + "owner": "last_updated_on", + "domain_of": [ + "CommonMetadata" + ], + "range": "datetime", + "@type": "SlotDefinition" + }, + { + "name": "modified_by", + "definition_uri": "https://w3id.org/linkml/modified_by", + "description": "agent that modified the element", + "in_subset": [ + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "mappings": [ + "http://open-services.net/ns/core#modifiedBy" + ], + "domain": "Element", + "slot_uri": "http://open-services.net/ns/core#modifiedBy", + "owner": "modified_by", + "domain_of": [ + "CommonMetadata" + ], + "range": "uriorcurie", + "@type": "SlotDefinition" + }, + { + "name": "status", + "definition_uri": "https://w3id.org/linkml/status", + "description": "status of the element", + "examples": [ + { + "value": "bibo:draft", + "@type": "Example" + } + ], + "in_subset": [ + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://www.hl7.org/fhir/valueset-publication-status.html", + "https://www.hl7.org/fhir/versions.html#std-process" + ], + "aliases": [ + "workflow status" + ], + "mappings": [ + "http://purl.org/ontology/bibo/status" + ], + "domain": "Element", + "slot_uri": "http://purl.org/ontology/bibo/status", + "owner": "status", + "domain_of": [ + "CommonMetadata" + ], + "range": "uriorcurie", + "@type": "SlotDefinition" + }, + { + "name": "literal_form", + "definition_uri": "https://w3id.org/linkml/literal_form", + "description": "The literal lexical form of a structured alias; i.e the actual alias value.", + "from_schema": "https://w3id.org/linkml/meta", + "aliases": [ + "alias_name", + "string_value" + ], + "mappings": [ + "http://www.w3.org/2008/05/skos-xl#literalForm" + ], + "domain": "StructuredAlias", + "slot_uri": "http://www.w3.org/2008/05/skos-xl#literalForm", + "owner": "StructuredAlias", + "domain_of": [ + "StructuredAlias" + ], + "range": "string", + "required": true, + "@type": "SlotDefinition" + }, + { + "name": "alias_predicate", + "definition_uri": "https://w3id.org/linkml/alias_predicate", + "description": "The relationship between an element and its alias.", + "from_schema": "https://w3id.org/linkml/meta", + "mappings": [ + "http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate" + ], + "domain": "StructuredAlias", + "slot_uri": "http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate", + "alias": "predicate", + "owner": "StructuredAlias", + "domain_of": [ + "StructuredAlias" + ], + "range": "alias_predicate_enum", + "recommended": true, + "@type": "SlotDefinition" + }, + { + "name": "in_language", + "definition_uri": "https://w3id.org/linkml/in_language", + "conforms_to": "https://www.rfc-editor.org/rfc/bcp/bcp47.txt", + "description": "the primary language used in the sources", + "comments": [ + "Recommended to use a string from IETF BCP 47" + ], + "from_schema": "https://w3id.org/linkml/meta", + "mappings": [ + "http://schema.org/inLanguage" + ], + "slot_uri": "http://schema.org/inLanguage", + "owner": "CommonMetadata", + "domain_of": [ + "CommonMetadata" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "source", + "definition_uri": "https://w3id.org/linkml/source", + "description": "A related resource from which the element is derived.", + "comments": [ + "The described resource may be derived from the related resource in whole or in part" + ], + "in_subset": [ + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "aliases": [ + "origin", + "derived from" + ], + "mappings": [ + "http://purl.org/dc/terms/source" + ], + "close_mappings": [ + "http://www.w3.org/ns/prov#wasDerivedFrom", + "http://schema.org/isBasedOn" + ], + "domain": "Element", + "slot_uri": "http://purl.org/dc/terms/source", + "owner": "source", + "domain_of": [ + "CommonMetadata" + ], + "range": "uriorcurie", + "@type": "SlotDefinition" + }, + { + "name": "publisher", + "definition_uri": "https://w3id.org/linkml/publisher", + "description": "An entity responsible for making the resource available", + "in_subset": [ + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "mappings": [ + "http://purl.org/dc/terms/publisher" + ], + "domain": "Element", + "slot_uri": "http://purl.org/dc/terms/publisher", + "owner": "publisher", + "range": "uriorcurie", + "@type": "SlotDefinition" + }, + { + "name": "is_a", + "definition_uri": "https://w3id.org/linkml/is_a", + "description": "A primary parent class or slot from which inheritable metaslots are propagated from. 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", + "in_subset": [ + "SpecificationSubset", + "BasicSubset", + "ObjectOrientedProfile", + "OwlProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "rank": 11, + "abstract": true, + "domain": "Definition", + "slot_uri": "https://w3id.org/linkml/is_a", + "owner": "AnonymousClassExpression", + "domain_of": [ + "Definition", + "AnonymousClassExpression" + ], + "range": "Definition", + "@type": "SlotDefinition" + }, + { + "name": "abstract", + "definition_uri": "https://w3id.org/linkml/abstract", + "description": "Indicates the class or slot cannot be directly instantiated and is intended for grouping purposes.", + "in_subset": [ + "SpecificationSubset", + "BasicSubset", + "ObjectOrientedProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "domain": "Definition", + "slot_uri": "https://w3id.org/linkml/abstract", + "owner": "Definition", + "domain_of": [ + "Definition" + ], + "range": "boolean", + "@type": "SlotDefinition" + }, + { + "name": "mixin", + "definition_uri": "https://w3id.org/linkml/mixin", + "description": "Indicates the class or slot is intended to be inherited from without being an is_a parent. mixins should not be inherited from using is_a, except by other mixins.", + "in_subset": [ + "SpecificationSubset", + "BasicSubset", + "ObjectOrientedProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://en.wikipedia.org/wiki/Mixin" + ], + "aliases": [ + "trait" + ], + "domain": "Definition", + "slot_uri": "https://w3id.org/linkml/mixin", + "owner": "Definition", + "domain_of": [ + "Definition" + ], + "range": "boolean", + "@type": "SlotDefinition" + }, + { + "name": "mixins", + "definition_uri": "https://w3id.org/linkml/mixins", + "description": "A collection of secondary parent classes or slots from which inheritable metaslots are propagated from.", + "comments": [ + "mixins act in the same way as parents (is_a). They allow a model to have a primary strict hierarchy, while keeping the benefits of multiple inheritance" + ], + "in_subset": [ + "SpecificationSubset", + "BasicSubset", + "ObjectOrientedProfile", + "OwlProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://en.wikipedia.org/wiki/Mixin" + ], + "aliases": [ + "traits" + ], + "rank": 13, + "domain": "Definition", + "slot_uri": "https://w3id.org/linkml/mixins", + "multivalued": true, + "owner": "Definition", + "domain_of": [ + "Definition" + ], + "range": "Definition", + "@type": "SlotDefinition" + }, + { + "name": "apply_to", + "definition_uri": "https://w3id.org/linkml/apply_to", + "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.", + "from_schema": "https://w3id.org/linkml/meta", + "status": "testing", + "domain": "Definition", + "slot_uri": "https://w3id.org/linkml/apply_to", + "multivalued": true, + "owner": "Definition", + "domain_of": [ + "Definition" + ], + "range": "Definition", + "@type": "SlotDefinition" + }, + { + "name": "values_from", + "definition_uri": "https://w3id.org/linkml/values_from", + "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 hierarchy into an enumerated list of possible values in every serialization of the model.", + "from_schema": "https://w3id.org/linkml/meta", + "status": "testing", + "domain": "Definition", + "slot_uri": "https://w3id.org/linkml/values_from", + "multivalued": true, + "owner": "Definition", + "domain_of": [ + "Definition" + ], + "range": "uriorcurie", + "@type": "SlotDefinition" + }, + { + "name": "code_set", + "definition_uri": "https://w3id.org/linkml/code_set", + "description": "the identifier of an enumeration code set.", + "in_subset": [ + "SpecificationSubset", + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "domain": "EnumExpression", + "slot_uri": "https://w3id.org/linkml/code_set", + "owner": "EnumExpression", + "domain_of": [ + "EnumExpression" + ], + "range": "uriorcurie", + "@type": "SlotDefinition" + }, + { + "name": "code_set_version", + "definition_uri": "https://w3id.org/linkml/code_set_version", + "description": "the version identifier of the enumeration code set", + "comments": [ + "we assume that version identifiers lexically sort in temporal order. Recommend semver when possible" + ], + "in_subset": [ + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "domain": "EnumExpression", + "slot_uri": "https://w3id.org/linkml/code_set_version", + "owner": "EnumExpression", + "domain_of": [ + "EnumExpression" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "code_set_tag", + "definition_uri": "https://w3id.org/linkml/code_set_tag", + "description": "the version tag of the enumeration code set", + "comments": [ + "enum_expression cannot have both a code_set_tag and a code_set_version" + ], + "in_subset": [ + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "domain": "EnumExpression", + "slot_uri": "https://w3id.org/linkml/code_set_tag", + "owner": "EnumExpression", + "domain_of": [ + "EnumExpression" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "pv_formula", + "definition_uri": "https://w3id.org/linkml/pv_formula", + "description": "Defines the specific formula to be used to generate the permissible values.", + "comments": [ + "you cannot have BOTH the permissible_values and permissible_value_formula tag", + "code_set must be supplied for this to be valid" + ], + "in_subset": [ + "SpecificationSubset", + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "domain": "EnumExpression", + "slot_uri": "https://w3id.org/linkml/pv_formula", + "owner": "EnumExpression", + "domain_of": [ + "EnumExpression" + ], + "range": "pv_formula_options", + "@type": "SlotDefinition" + }, + { + "name": "permissible_values", + "definition_uri": "https://w3id.org/linkml/permissible_values", + "description": "A list of possible values for a slot range", + "in_subset": [ + "SpecificationSubset", + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "aliases": [ + "coded values" + ], + "exact_mappings": [ + "http://rdf.cdisc.org/mms#PermissibleValue" + ], + "domain": "EnumExpression", + "slot_uri": "https://w3id.org/linkml/permissible_values", + "multivalued": true, + "owner": "EnumExpression", + "domain_of": [ + "EnumExpression" + ], + "range": "PermissibleValue", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "enum_uri", + "definition_uri": "https://w3id.org/linkml/enum_uri", + "description": "URI of the enum that provides a semantic interpretation of the element in a linked data context. The URI may come from any namespace and may be shared between schemas", + "in_subset": [ + "SpecificationSubset", + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "aliases": [ + "public ID" + ], + "domain": "EnumDefinition", + "slot_uri": "https://w3id.org/linkml/enum_uri", + "ifabsent": "class_curie", + "owner": "EnumDefinition", + "domain_of": [ + "EnumDefinition" + ], + "range": "uriorcurie", + "@type": "SlotDefinition" + }, + { + "name": "include", + "definition_uri": "https://w3id.org/linkml/include", + "description": "An enum expression that yields a list of permissible values that are to be included, after subtracting the minus set", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "domain": "EnumExpression", + "slot_uri": "https://w3id.org/linkml/include", + "multivalued": true, + "owner": "EnumExpression", + "domain_of": [ + "EnumExpression" + ], + "range": "AnonymousEnumExpression", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "minus", + "definition_uri": "https://w3id.org/linkml/minus", + "description": "An enum expression that yields a list of permissible values that are to be subtracted from the enum", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "domain": "EnumExpression", + "slot_uri": "https://w3id.org/linkml/minus", + "multivalued": true, + "owner": "EnumExpression", + "domain_of": [ + "EnumExpression" + ], + "range": "AnonymousEnumExpression", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "inherits", + "definition_uri": "https://w3id.org/linkml/inherits", + "description": "An enum definition that is used as the basis to create a new enum", + "comments": [ + "All permissible values for all inherited enums are copied to form the initial seed set" + ], + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "domain": "EnumExpression", + "slot_uri": "https://w3id.org/linkml/inherits", + "multivalued": true, + "owner": "EnumExpression", + "domain_of": [ + "EnumExpression" + ], + "range": "EnumDefinition", + "@type": "SlotDefinition" + }, + { + "name": "matches", + "definition_uri": "https://w3id.org/linkml/matches", + "description": "Specifies a match query that is used to calculate the list of permissible values", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "domain": "EnumExpression", + "slot_uri": "https://w3id.org/linkml/matches", + "owner": "EnumExpression", + "domain_of": [ + "EnumExpression" + ], + "range": "MatchQuery", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "identifier_pattern", + "definition_uri": "https://w3id.org/linkml/identifier_pattern", + "description": "A regular expression that is used to obtain a set of identifiers from a source_ontology to construct a set of permissible values", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "domain": "MatchQuery", + "slot_uri": "https://w3id.org/linkml/identifier_pattern", + "owner": "MatchQuery", + "domain_of": [ + "MatchQuery" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "concepts", + "definition_uri": "https://w3id.org/linkml/concepts", + "description": "A list of identifiers that are used to construct a set of permissible values", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "domain": "EnumExpression", + "slot_uri": "https://w3id.org/linkml/concepts", + "multivalued": true, + "owner": "EnumExpression", + "domain_of": [ + "EnumExpression" + ], + "range": "uriorcurie", + "@type": "SlotDefinition" + }, + { + "name": "reachable_from", + "definition_uri": "https://w3id.org/linkml/reachable_from", + "description": "Specifies a query for obtaining a list of permissible values based on graph reachability", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "domain": "EnumExpression", + "slot_uri": "https://w3id.org/linkml/reachable_from", + "owner": "EnumExpression", + "domain_of": [ + "EnumExpression" + ], + "range": "ReachabilityQuery", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "source_ontology", + "definition_uri": "https://w3id.org/linkml/source_ontology", + "description": "An ontology or vocabulary or terminology that is used in a query to obtain a set of permissible values", + "comments": [ + "examples include schema.org, wikidata, or an OBO ontology", + "for obo ontologies we recommend CURIEs of the form obo:cl, obo:envo, etc" + ], + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "aliases": [ + "terminology", + "vocabulary" + ], + "slot_uri": "https://w3id.org/linkml/source_ontology", + "owner": "ReachabilityQuery", + "domain_of": [ + "MatchQuery", + "ReachabilityQuery" + ], + "range": "uriorcurie", + "@type": "SlotDefinition" + }, + { + "name": "is_direct", + "definition_uri": "https://w3id.org/linkml/is_direct", + "description": "True if the reachability query should only include directly related nodes, if False then include also transitively connected", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "aliases": [ + "non-transitive" + ], + "domain": "ReachabilityQuery", + "slot_uri": "https://w3id.org/linkml/is_direct", + "owner": "ReachabilityQuery", + "domain_of": [ + "ReachabilityQuery" + ], + "range": "boolean", + "@type": "SlotDefinition" + }, + { + "name": "traverse_up", + "definition_uri": "https://w3id.org/linkml/traverse_up", + "description": "True if the direction of the reachability query is reversed and ancestors are retrieved", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "aliases": [ + "ancestors" + ], + "domain": "ReachabilityQuery", + "slot_uri": "https://w3id.org/linkml/traverse_up", + "owner": "ReachabilityQuery", + "domain_of": [ + "ReachabilityQuery" + ], + "range": "boolean", + "@type": "SlotDefinition" + }, + { + "name": "include_self", + "definition_uri": "https://w3id.org/linkml/include_self", + "description": "True if the query is reflexive", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "aliases": [ + "reflexive" + ], + "domain": "ReachabilityQuery", + "slot_uri": "https://w3id.org/linkml/include_self", + "owner": "ReachabilityQuery", + "domain_of": [ + "ReachabilityQuery" + ], + "range": "boolean", + "@type": "SlotDefinition" + }, + { + "name": "relationship_types", + "definition_uri": "https://w3id.org/linkml/relationship_types", + "description": "A list of relationship types (properties) that are used in a reachability query", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "aliases": [ + "predicates", + "properties" + ], + "domain": "ReachabilityQuery", + "slot_uri": "https://w3id.org/linkml/relationship_types", + "multivalued": true, + "owner": "ReachabilityQuery", + "domain_of": [ + "ReachabilityQuery" + ], + "range": "uriorcurie", + "@type": "SlotDefinition" + }, + { + "name": "source_nodes", + "definition_uri": "https://w3id.org/linkml/source_nodes", + "description": "A list of nodes that are used in the reachability query", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "domain": "ReachabilityQuery", + "slot_uri": "https://w3id.org/linkml/source_nodes", + "multivalued": true, + "owner": "ReachabilityQuery", + "domain_of": [ + "ReachabilityQuery" + ], + "range": "uriorcurie", + "@type": "SlotDefinition" + }, + { + "name": "text", + "definition_uri": "https://w3id.org/linkml/text", + "description": "The actual permissible value itself", + "comments": [ + "there are no constraints on the text of the permissible value, but for many applications you may want to consider following idiomatic forms and using computer-friendly forms" + ], + "in_subset": [ + "SpecificationSubset", + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "aliases": [ + "value" + ], + "close_mappings": [ + "http://www.w3.org/2004/02/skos/core#notation" + ], + "rank": 21, + "domain": "PermissibleValue", + "slot_uri": "https://w3id.org/linkml/text", + "identifier": true, + "owner": "PermissibleValue", + "domain_of": [ + "PermissibleValue" + ], + "range": "string", + "required": true, + "@type": "SlotDefinition" + }, + { + "name": "meaning", + "definition_uri": "https://w3id.org/linkml/meaning", + "description": "the value meaning of a permissible value", + "notes": [ + "we may want to change the range of this (and other) elements in the model to an entitydescription type construct" + ], + "in_subset": [ + "SpecificationSubset", + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://en.wikipedia.org/wiki/ISO/IEC_11179" + ], + "aliases": [ + "PV meaning" + ], + "rank": 23, + "domain": "PermissibleValue", + "slot_uri": "https://w3id.org/linkml/meaning", + "owner": "PermissibleValue", + "domain_of": [ + "PermissibleValue" + ], + "range": "uriorcurie", + "@type": "SlotDefinition" + }, + { + "name": "id", + "definition_uri": "https://w3id.org/linkml/id", + "description": "The official schema URI", + "in_subset": [ + "SpecificationSubset", + "MinimalSubset", + "BasicSubset", + "OwlProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "rank": 0, + "domain": "SchemaDefinition", + "slot_uri": "https://w3id.org/linkml/id", + "owner": "SchemaDefinition", + "domain_of": [ + "SchemaDefinition" + ], + "range": "uri", + "required": true, + "@type": "SlotDefinition" + }, + { + "name": "emit_prefixes", + "definition_uri": "https://w3id.org/linkml/emit_prefixes", + "description": "a list of Curie prefixes that are used in the representation of instances of the model. All prefixes in this list are added to the prefix sections of the target models.", + "from_schema": "https://w3id.org/linkml/meta", + "domain": "SchemaDefinition", + "slot_uri": "https://w3id.org/linkml/emit_prefixes", + "multivalued": true, + "owner": "SchemaDefinition", + "domain_of": [ + "SchemaDefinition" + ], + "range": "ncname", + "@type": "SlotDefinition" + }, + { + "name": "version", + "definition_uri": "https://w3id.org/linkml/version", + "description": "particular version of schema", + "in_subset": [ + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "mappings": [ + "http://purl.org/pav/version" + ], + "exact_mappings": [ + "http://schema.org/schemaVersion" + ], + "domain": "SchemaDefinition", + "slot_uri": "http://purl.org/pav/version", + "owner": "SchemaDefinition", + "domain_of": [ + "SchemaDefinition" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "imports", + "definition_uri": "https://w3id.org/linkml/imports", + "description": "A list of schemas that are to be included in this schema", + "in_subset": [ + "SpecificationSubset", + "BasicSubset", + "OwlProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "rank": 21, + "domain": "SchemaDefinition", + "slot_uri": "https://w3id.org/linkml/imports", + "multivalued": true, + "owner": "SchemaDefinition", + "domain_of": [ + "SchemaDefinition" + ], + "range": "uriorcurie", + "@type": "SlotDefinition" + }, + { + "name": "structured_imports", + "definition_uri": "https://w3id.org/linkml/structured_imports", + "description": "A list of specifications for how to import elements from external schemas", + "from_schema": "https://w3id.org/linkml/meta", + "status": "testing", + "domain": "SchemaDefinition", + "slot_uri": "https://w3id.org/linkml/structured_imports", + "multivalued": true, + "owner": "structured_imports", + "range": "ImportExpression", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "license", + "definition_uri": "https://w3id.org/linkml/license", + "description": "license for the schema", + "in_subset": [ + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "mappings": [ + "http://purl.org/dc/terms/license" + ], + "rank": 31, + "domain": "SchemaDefinition", + "slot_uri": "http://purl.org/dc/terms/license", + "owner": "SchemaDefinition", + "domain_of": [ + "SchemaDefinition" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "default_curi_maps", + "definition_uri": "https://w3id.org/linkml/default_curi_maps", + "description": "ordered list of prefixcommon biocontexts to be fetched to resolve id prefixes and inline prefix variables", + "in_subset": [ + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "domain": "SchemaDefinition", + "slot_uri": "https://w3id.org/linkml/default_curi_maps", + "multivalued": true, + "owner": "SchemaDefinition", + "domain_of": [ + "SchemaDefinition" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "default_prefix", + "definition_uri": "https://w3id.org/linkml/default_prefix", + "description": "The prefix that is used for all elements within a schema", + "in_subset": [ + "SpecificationSubset", + "MinimalSubset", + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "rank": 11, + "domain": "SchemaDefinition", + "slot_uri": "https://w3id.org/linkml/default_prefix", + "ifabsent": "default_ns", + "owner": "SchemaDefinition", + "domain_of": [ + "SchemaDefinition" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "default_range", + "definition_uri": "https://w3id.org/linkml/default_range", + "description": "default slot range to be used if range element is omitted from a slot definition", + "in_subset": [ + "SpecificationSubset", + "MinimalSubset", + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "rank": 13, + "domain": "SchemaDefinition", + "slot_uri": "https://w3id.org/linkml/default_range", + "owner": "SchemaDefinition", + "domain_of": [ + "SchemaDefinition" + ], + "range": "TypeDefinition", + "@type": "SlotDefinition" + }, + { + "name": "subsets", + "definition_uri": "https://w3id.org/linkml/subsets", + "description": "An index to the collection of all subset definitions in the schema", + "in_subset": [ + "SpecificationSubset", + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "exact_mappings": [ + "http://www.geneontology.org/formats/oboInOwl#hasSubset" + ], + "rank": 8, + "domain": "SchemaDefinition", + "slot_uri": "https://w3id.org/linkml/subsets", + "multivalued": true, + "owner": "SchemaDefinition", + "domain_of": [ + "SchemaDefinition" + ], + "range": "SubsetDefinition", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "types", + "definition_uri": "https://w3id.org/linkml/types", + "description": "An index to the collection of all type definitions in the schema", + "in_subset": [ + "BasicSubset", + "ObjectOrientedProfile", + "OwlProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "rank": 6, + "domain": "SchemaDefinition", + "slot_uri": "https://w3id.org/linkml/types", + "multivalued": true, + "owner": "SchemaDefinition", + "domain_of": [ + "SchemaDefinition" + ], + "range": "TypeDefinition", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "enums", + "definition_uri": "https://w3id.org/linkml/enums", + "description": "An index to the collection of all enum definitions in the schema", + "in_subset": [ + "SpecificationSubset", + "BasicSubset", + "ObjectOrientedProfile", + "OwlProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "rank": 5, + "domain": "SchemaDefinition", + "slot_uri": "https://w3id.org/linkml/enums", + "multivalued": true, + "owner": "SchemaDefinition", + "domain_of": [ + "SchemaDefinition" + ], + "range": "EnumDefinition", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "slot_definitions", + "definition_uri": "https://w3id.org/linkml/slot_definitions", + "description": "An index to the collection of all slot definitions in the schema", + "comments": [ + "note the formal name of this element is slot_definitions, but it has alias slots, which is the canonical form used in yaml/json serializes of schemas." + ], + "in_subset": [ + "SpecificationSubset", + "BasicSubset", + "OwlProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "rank": 4, + "domain": "SchemaDefinition", + "slot_uri": "https://w3id.org/linkml/slots", + "multivalued": true, + "alias": "slots", + "owner": "SchemaDefinition", + "domain_of": [ + "SchemaDefinition" + ], + "range": "SlotDefinition", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "classes", + "definition_uri": "https://w3id.org/linkml/classes", + "description": "An index to the collection of all class definitions in the schema", + "in_subset": [ + "SpecificationSubset", + "MinimalSubset", + "BasicSubset", + "RelationalModelProfile", + "ObjectOrientedProfile", + "OwlProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "rank": 3, + "domain": "SchemaDefinition", + "slot_uri": "https://w3id.org/linkml/classes", + "multivalued": true, + "owner": "SchemaDefinition", + "domain_of": [ + "SchemaDefinition" + ], + "range": "ClassDefinition", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "metamodel_version", + "definition_uri": "https://w3id.org/linkml/metamodel_version", + "description": "Version of the metamodel used to load the schema", + "in_subset": [ + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "domain": "SchemaDefinition", + "slot_uri": "https://w3id.org/linkml/metamodel_version", + "readonly": "supplied by the schema loader or schema view", + "owner": "SchemaDefinition", + "domain_of": [ + "SchemaDefinition" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "source_file", + "definition_uri": "https://w3id.org/linkml/source_file", + "description": "name, uri or description of the source of the schema", + "in_subset": [ + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "domain": "SchemaDefinition", + "slot_uri": "https://w3id.org/linkml/source_file", + "readonly": "supplied by the schema loader", + "owner": "SchemaDefinition", + "domain_of": [ + "SchemaDefinition" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "source_file_date", + "definition_uri": "https://w3id.org/linkml/source_file_date", + "description": "modification date of the source of the schema", + "in_subset": [ + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "domain": "SchemaDefinition", + "slot_uri": "https://w3id.org/linkml/source_file_date", + "readonly": "supplied by the loader", + "owner": "SchemaDefinition", + "domain_of": [ + "SchemaDefinition" + ], + "range": "datetime", + "@type": "SlotDefinition" + }, + { + "name": "source_file_size", + "definition_uri": "https://w3id.org/linkml/source_file_size", + "description": "size in bytes of the source of the schema", + "in_subset": [ + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "domain": "SchemaDefinition", + "slot_uri": "https://w3id.org/linkml/source_file_size", + "readonly": "supplied by the schema loader or schema view", + "owner": "SchemaDefinition", + "domain_of": [ + "SchemaDefinition" + ], + "range": "integer", + "@type": "SlotDefinition" + }, + { + "name": "generation_date", + "definition_uri": "https://w3id.org/linkml/generation_date", + "description": "date and time that the schema was loaded/generated", + "in_subset": [ + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "domain": "SchemaDefinition", + "slot_uri": "https://w3id.org/linkml/generation_date", + "readonly": "supplied by the schema loader or schema view", + "owner": "SchemaDefinition", + "domain_of": [ + "SchemaDefinition" + ], + "range": "datetime", + "@type": "SlotDefinition" + }, + { + "name": "slots", + "definition_uri": "https://w3id.org/linkml/slots", + "description": "collection of slot names that are applicable to a class", + "comments": [ + "the list of applicable slots is inherited from parent classes", + "This defines the set of slots that are allowed to be used for a given class. The final list of slots for a class is the combination of the parent (is a) slots, mixins slots, apply to slots minus the slot usage entries." + ], + "in_subset": [ + "SpecificationSubset", + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "rank": 19, + "domain": "ClassDefinition", + "slot_uri": "https://w3id.org/linkml/slots", + "multivalued": true, + "owner": "ClassDefinition", + "domain_of": [ + "ClassDefinition" + ], + "range": "SlotDefinition", + "@type": "SlotDefinition" + }, + { + "name": "slot_usage", + "definition_uri": "https://w3id.org/linkml/slot_usage", + "description": "the refinement of a slot in the context of the containing class definition.", + "comments": [ + "Many slots may be re-used across different classes, but the meaning of the slot may be refined by context. For example, a generic association model may use slots subject/predicate/object with generic semantics and minimal constraints. When this is subclasses, e.g. to disease-phenotype associations then slot usage may specify both local naming (e.g. subject=disease) and local constraints" + ], + "in_subset": [ + "SpecificationSubset", + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "rank": 23, + "domain": "ClassDefinition", + "slot_uri": "https://w3id.org/linkml/slot_usage", + "multivalued": true, + "owner": "ClassDefinition", + "domain_of": [ + "ClassDefinition" + ], + "range": "SlotDefinition", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "enum_range", + "definition_uri": "https://w3id.org/linkml/enum_range", + "description": "An inlined enumeration", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "status": "testing", + "slot_uri": "https://w3id.org/linkml/enum_range", + "owner": "SlotExpression", + "domain_of": [ + "SlotExpression" + ], + "range": "EnumExpression", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "range_expression", + "definition_uri": "https://w3id.org/linkml/range_expression", + "description": "A range that is described as a boolean expression combining existing ranges", + "comments": [ + "one use for this is being able to describe a range using any_of expressions, for example to combine two enums" + ], + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "status": "testing", + "domain": "SlotExpression", + "slot_uri": "https://w3id.org/linkml/range_expression", + "owner": "SlotExpression", + "domain_of": [ + "PathExpression", + "SlotExpression" + ], + "range": "AnonymousClassExpression", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "boolean_slot", + "definition_uri": "https://w3id.org/linkml/boolean_slot", + "description": "A grouping of slots that expression a boolean operator over a list of operands", + "from_schema": "https://w3id.org/linkml/meta", + "abstract": true, + "slot_uri": "https://w3id.org/linkml/boolean_slot", + "multivalued": true, + "range": "Expression", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "any_of", + "definition_uri": "https://w3id.org/linkml/any_of", + "description": "holds if at least one of the expressions hold", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://w3id.org/linkml/docs/specification/05validation/#rules" + ], + "exact_mappings": [ + "http://www.w3.org/ns/shacl#or" + ], + "rank": 101, + "is_a": "boolean_slot", + "slot_uri": "https://w3id.org/linkml/any_of", + "multivalued": true, + "owner": "ClassExpression", + "domain_of": [ + "TypeExpression", + "PathExpression", + "SlotExpression", + "ClassExpression" + ], + "range": "Expression", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "exactly_one_of", + "definition_uri": "https://w3id.org/linkml/exactly_one_of", + "description": "holds if only one of the expressions hold", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://w3id.org/linkml/docs/specification/05validation/#rules" + ], + "exact_mappings": [ + "http://www.w3.org/ns/shacl#xone" + ], + "rank": 103, + "is_a": "boolean_slot", + "slot_uri": "https://w3id.org/linkml/exactly_one_of", + "multivalued": true, + "owner": "ClassExpression", + "domain_of": [ + "TypeExpression", + "PathExpression", + "SlotExpression", + "ClassExpression" + ], + "range": "Expression", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "none_of", + "definition_uri": "https://w3id.org/linkml/none_of", + "description": "holds if none of the expressions hold", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://w3id.org/linkml/docs/specification/05validation/#rules" + ], + "exact_mappings": [ + "http://www.w3.org/ns/shacl#not" + ], + "rank": 105, + "is_a": "boolean_slot", + "slot_uri": "https://w3id.org/linkml/none_of", + "multivalued": true, + "owner": "ClassExpression", + "domain_of": [ + "TypeExpression", + "PathExpression", + "SlotExpression", + "ClassExpression" + ], + "range": "Expression", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "all_of", + "definition_uri": "https://w3id.org/linkml/all_of", + "description": "holds if all of the expressions hold", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://w3id.org/linkml/docs/specification/05validation/#rules" + ], + "exact_mappings": [ + "http://www.w3.org/ns/shacl#and" + ], + "rank": 107, + "is_a": "boolean_slot", + "slot_uri": "https://w3id.org/linkml/all_of", + "multivalued": true, + "owner": "ClassExpression", + "domain_of": [ + "TypeExpression", + "PathExpression", + "SlotExpression", + "ClassExpression" + ], + "range": "Expression", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "preconditions", + "definition_uri": "https://w3id.org/linkml/preconditions", + "description": "an expression that must hold in order for the rule to be applicable to an instance", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://w3id.org/linkml/docs/specification/05validation/#rules" + ], + "aliases": [ + "if", + "body", + "antecedents" + ], + "mappings": [ + "http://www.w3.org/ns/shacl#condition" + ], + "close_mappings": [ + "http://www.w3.org/2003/11/swrl#body" + ], + "rank": 111, + "slot_uri": "http://www.w3.org/ns/shacl#condition", + "owner": "ClassRule", + "domain_of": [ + "ClassRule" + ], + "range": "AnonymousClassExpression", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "postconditions", + "definition_uri": "https://w3id.org/linkml/postconditions", + "description": "an expression that must hold for an instance of the class, if the preconditions hold", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://w3id.org/linkml/docs/specification/05validation/#rules" + ], + "aliases": [ + "then", + "head", + "consequents" + ], + "close_mappings": [ + "http://www.w3.org/2003/11/swrl#body" + ], + "rank": 113, + "slot_uri": "https://w3id.org/linkml/postconditions", + "owner": "ClassRule", + "domain_of": [ + "ClassRule" + ], + "range": "AnonymousClassExpression", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "elseconditions", + "definition_uri": "https://w3id.org/linkml/elseconditions", + "description": "an expression that must hold for an instance of the class, if the preconditions no not hold", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://w3id.org/linkml/docs/specification/05validation/#rules" + ], + "aliases": [ + "else" + ], + "rank": 115, + "slot_uri": "https://w3id.org/linkml/elseconditions", + "owner": "ClassRule", + "domain_of": [ + "ClassRule" + ], + "range": "AnonymousClassExpression", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "bidirectional", + "definition_uri": "https://w3id.org/linkml/bidirectional", + "description": "in addition to preconditions entailing postconditions, the postconditions entail the preconditions", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "aliases": [ + "iff", + "if and only if" + ], + "slot_uri": "https://w3id.org/linkml/bidirectional", + "owner": "ClassRule", + "domain_of": [ + "ClassRule" + ], + "range": "boolean", + "@type": "SlotDefinition" + }, + { + "name": "open_world", + "definition_uri": "https://w3id.org/linkml/open_world", + "description": "if true, the the postconditions may be omitted in instance data, but it is valid for an inference engine to add these", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "slot_uri": "https://w3id.org/linkml/open_world", + "owner": "ClassRule", + "domain_of": [ + "ClassRule" + ], + "range": "boolean", + "@type": "SlotDefinition" + }, + { + "name": "rank", + "definition_uri": "https://w3id.org/linkml/rank", + "description": "the relative order in which the element occurs, lower values are given precedence", + "comments": [ + "the rank of an element does not affect the semantics" + ], + "in_subset": [ + "SpecificationSubset", + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "aliases": [ + "order", + "precedence", + "display order" + ], + "mappings": [ + "http://www.w3.org/ns/shacl#order" + ], + "exact_mappings": [ + "http://qudt.org/schema/qudt/order", + "http://purl.org/linked-data/cube#order" + ], + "rank": 51, + "slot_uri": "http://www.w3.org/ns/shacl#order", + "owner": "ClassRule", + "domain_of": [ + "CommonMetadata", + "ClassRule" + ], + "range": "integer", + "@type": "SlotDefinition" + }, + { + "name": "deactivated", + "definition_uri": "https://w3id.org/linkml/deactivated", + "description": "a deactivated rule is not executed by the rules engine", + "from_schema": "https://w3id.org/linkml/meta", + "mappings": [ + "http://www.w3.org/ns/shacl#deactivated" + ], + "slot_uri": "http://www.w3.org/ns/shacl#deactivated", + "owner": "ClassRule", + "domain_of": [ + "ClassRule" + ], + "range": "boolean", + "@type": "SlotDefinition" + }, + { + "name": "rules", + "definition_uri": "https://w3id.org/linkml/rules", + "description": "the collection of rules that apply to all members of this class", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "mappings": [ + "http://www.w3.org/ns/shacl#rule" + ], + "domain": "ClassDefinition", + "slot_uri": "http://www.w3.org/ns/shacl#rule", + "multivalued": true, + "owner": "ClassDefinition", + "domain_of": [ + "ClassDefinition" + ], + "range": "ClassRule", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "classification_rules", + "definition_uri": "https://w3id.org/linkml/classification_rules", + "description": "The collection of classification rules that apply to all members of this class. Classification rules allow for automatically assigning the instantiated type of an instance.", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "domain": "ClassDefinition", + "slot_uri": "https://w3id.org/linkml/classification_rules", + "multivalued": true, + "owner": "ClassDefinition", + "domain_of": [ + "ClassDefinition" + ], + "range": "AnonymousClassExpression", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "slot_conditions", + "definition_uri": "https://w3id.org/linkml/slot_conditions", + "description": "expresses constraints on a group of slots for a class expression", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "domain": "ClassExpression", + "slot_uri": "https://w3id.org/linkml/slot_conditions", + "multivalued": true, + "owner": "ClassExpression", + "domain_of": [ + "ClassExpression" + ], + "range": "SlotDefinition", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "attributes", + "definition_uri": "https://w3id.org/linkml/attributes", + "description": "Inline definition of slots", + "comments": [ + "attributes are an alternative way of defining new slots. An attribute adds a slot to the global space in the form __ (lower case, double underscores). Attributes can be specialized via slot_usage." + ], + "in_subset": [ + "SpecificationSubset", + "MinimalSubset", + "BasicSubset", + "RelationalModelProfile", + "ObjectOrientedProfile", + "OwlProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "rank": 29, + "domain": "ClassDefinition", + "slot_uri": "https://w3id.org/linkml/attributes", + "multivalued": true, + "owner": "ClassDefinition", + "domain_of": [ + "ClassDefinition" + ], + "range": "SlotDefinition", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "class_uri", + "definition_uri": "https://w3id.org/linkml/class_uri", + "description": "URI of the class that provides a semantic interpretation of the element in a linked data context. The URI may come from any namespace and may be shared between schemas", + "comments": [ + "Assigning class_uris can provide additional hooks for interoperation, indicating a common conceptual model" + ], + "in_subset": [ + "SpecificationSubset", + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "linkml:definition_uri", + "https://linkml.io/linkml/schemas/uris-and-mappings.html" + ], + "aliases": [ + "public ID" + ], + "rank": 2, + "domain": "ClassDefinition", + "slot_uri": "https://w3id.org/linkml/class_uri", + "ifabsent": "class_curie", + "owner": "ClassDefinition", + "domain_of": [ + "ClassDefinition" + ], + "range": "uriorcurie", + "@type": "SlotDefinition" + }, + { + "name": "subclass_of", + "definition_uri": "https://w3id.org/linkml/subclass_of", + "description": "DEPRECATED -- rdfs:subClassOf to be emitted in OWL generation", + "deprecated": "Use is_a instead", + "from_schema": "https://w3id.org/linkml/meta", + "close_mappings": [ + "http://www.w3.org/2000/01/rdf-schema#subClassOf" + ], + "domain": "ClassDefinition", + "slot_uri": "https://w3id.org/linkml/subclass_of", + "owner": "ClassDefinition", + "domain_of": [ + "ClassDefinition" + ], + "range": "uriorcurie", + "@type": "SlotDefinition" + }, + { + "name": "defining_slots", + "definition_uri": "https://w3id.org/linkml/defining_slots", + "description": "The combination of is a plus defining slots form a genus-differentia definition, or the set of necessary and sufficient conditions that can be transformed into an OWL equivalence axiom", + "from_schema": "https://w3id.org/linkml/meta", + "domain": "ClassDefinition", + "slot_uri": "https://w3id.org/linkml/defining_slots", + "multivalued": true, + "inherited": true, + "owner": "ClassDefinition", + "domain_of": [ + "ClassDefinition" + ], + "range": "SlotDefinition", + "@type": "SlotDefinition" + }, + { + "name": "union_of", + "definition_uri": "https://w3id.org/linkml/union_of", + "description": "indicates that the domain element consists exactly of the members of the element in the range.", + "notes": [ + "this only applies in the OWL generation" + ], + "in_subset": [ + "SpecificationSubset", + "OwlProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "domain": "Element", + "slot_uri": "https://w3id.org/linkml/union_of", + "multivalued": true, + "owner": "union_of", + "domain_of": [ + "TypeDefinition", + "SlotDefinition", + "ClassDefinition" + ], + "range": "Element", + "@type": "SlotDefinition" + }, + { + "name": "tree_root", + "definition_uri": "https://w3id.org/linkml/tree_root", + "description": "Indicates that this is the Container class which forms the root of the serialized document structure in tree serializations", + "notes": [ + "each schema should have at most one tree root" + ], + "in_subset": [ + "SpecificationSubset", + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://linkml.io/linkml/intro/tutorial02.html" + ], + "rank": 31, + "domain": "ClassDefinition", + "slot_uri": "https://w3id.org/linkml/tree_root", + "owner": "ClassDefinition", + "domain_of": [ + "ClassDefinition" + ], + "range": "boolean", + "@type": "SlotDefinition" + }, + { + "name": "unique_keys", + "definition_uri": "https://w3id.org/linkml/unique_keys", + "description": "A collection of named unique keys for this class. Unique keys may be singular or compound.", + "in_subset": [ + "SpecificationSubset", + "BasicSubset", + "RelationalModelProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://linkml.io/linkml/schemas/constraints.html#unique-key" + ], + "exact_mappings": [ + "http://www.w3.org/2002/07/owl#hasKey" + ], + "domain": "ClassDefinition", + "slot_uri": "https://w3id.org/linkml/unique_keys", + "multivalued": true, + "owner": "ClassDefinition", + "domain_of": [ + "ClassDefinition" + ], + "range": "UniqueKey", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "unique_key_name", + "definition_uri": "https://w3id.org/linkml/unique_key_name", + "description": "name of the unique key", + "in_subset": [ + "SpecificationSubset", + "BasicSubset", + "RelationalModelProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "domain": "UniqueKey", + "slot_uri": "https://w3id.org/linkml/unique_key_name", + "key": true, + "owner": "UniqueKey", + "domain_of": [ + "UniqueKey" + ], + "range": "string", + "required": true, + "@type": "SlotDefinition" + }, + { + "name": "consider_nulls_inequal", + "definition_uri": "https://w3id.org/linkml/consider_nulls_inequal", + "description": "By default, None values are considered equal for the purposes of comparisons in determining uniqueness. Set this to true to treat missing values as per ANSI-SQL NULLs, i.e NULL=NULL is always False.", + "from_schema": "https://w3id.org/linkml/meta", + "domain": "UniqueKey", + "slot_uri": "https://w3id.org/linkml/consider_nulls_inequal", + "owner": "UniqueKey", + "domain_of": [ + "UniqueKey" + ], + "range": "boolean", + "@type": "SlotDefinition" + }, + { + "name": "unique_key_slots", + "definition_uri": "https://w3id.org/linkml/unique_key_slots", + "description": "list of slot names that form a key. The tuple formed from the values of all these slots should be unique.", + "in_subset": [ + "SpecificationSubset", + "BasicSubset", + "RelationalModelProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "domain": "UniqueKey", + "slot_uri": "https://w3id.org/linkml/unique_key_slots", + "multivalued": true, + "owner": "UniqueKey", + "domain_of": [ + "UniqueKey" + ], + "range": "SlotDefinition", + "required": true, + "@type": "SlotDefinition" + }, + { + "name": "slot_names_unique", + "definition_uri": "https://w3id.org/linkml/slot_names_unique", + "description": "if true then induced/mangled slot names are not created for class_usage and attributes", + "from_schema": "https://w3id.org/linkml/meta", + "status": "testing", + "domain": "Definition", + "slot_uri": "https://w3id.org/linkml/slot_names_unique", + "owner": "slot_names_unique", + "domain_of": [ + "SchemaDefinition", + "ClassDefinition" + ], + "range": "boolean", + "@type": "SlotDefinition" + }, + { + "name": "domain", + "definition_uri": "https://w3id.org/linkml/domain", + "description": "defines the type of the subject of the slot. Given the following slot definition\n S1:\n domain: C1\n range: C2\nthe declaration\n X:\n S1: Y\n\nimplicitly asserts that X is an instance of C1\n", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "domain": "SlotDefinition", + "slot_uri": "https://w3id.org/linkml/domain", + "inherited": true, + "owner": "SlotDefinition", + "domain_of": [ + "SlotDefinition" + ], + "range": "ClassDefinition", + "@type": "SlotDefinition" + }, + { + "name": "range", + "definition_uri": "https://w3id.org/linkml/range", + "description": "defines the type of the object of the slot. Given the following slot definition\n S1:\n domain: C1\n range: C2\nthe declaration\n X:\n S1: Y\n\nimplicitly asserts Y is an instance of C2\n", + "comments": [ + "range is underspecified, as not all elements can appear as the range of a slot." + ], + "in_subset": [ + "SpecificationSubset", + "MinimalSubset", + "BasicSubset", + "RelationalModelProfile", + "ObjectOrientedProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "aliases": [ + "value domain" + ], + "domain": "SlotDefinition", + "slot_uri": "https://w3id.org/linkml/range", + "inherited": true, + "ifabsent": "default_range", + "owner": "range", + "domain_of": [ + "SlotExpression" + ], + "range": "Element", + "@type": "SlotDefinition" + }, + { + "name": "slot_uri", + "definition_uri": "https://w3id.org/linkml/slot_uri", + "description": "URI of the class that provides a semantic interpretation of the slot in a linked data context. The URI may come from any namespace and may be shared between schemas.", + "comments": [ + "Assigning slot_uris can provide additional hooks for interoperation, indicating a common conceptual model" + ], + "in_subset": [ + "SpecificationSubset", + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "linkml:definition_uri", + "https://linkml.io/linkml/schemas/uris-and-mappings.html" + ], + "aliases": [ + "public ID" + ], + "rank": 2, + "domain": "SlotDefinition", + "slot_uri": "https://w3id.org/linkml/slot_uri", + "ifabsent": "slot_curie", + "owner": "SlotDefinition", + "domain_of": [ + "SlotDefinition" + ], + "range": "uriorcurie", + "@type": "SlotDefinition" + }, + { + "name": "multivalued", + "definition_uri": "https://w3id.org/linkml/multivalued", + "description": "true means that slot can have more than one value and should be represented using a list or collection structure.", + "in_subset": [ + "SpecificationSubset", + "MinimalSubset", + "BasicSubset", + "ObjectOrientedProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "rank": 7, + "domain": "SlotDefinition", + "slot_uri": "https://w3id.org/linkml/multivalued", + "inherited": true, + "owner": "SlotDefinition", + "domain_of": [ + "SlotDefinition" + ], + "range": "boolean", + "@type": "SlotDefinition" + }, + { + "name": "inherited", + "definition_uri": "https://w3id.org/linkml/inherited", + "description": "true means that the *value* of a slot is inherited by subclasses", + "comments": [ + "the slot is to be used for defining *metamodels* only", + "Inherited applies to slot values. Parent *slots* are always inherited by subclasses" + ], + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "domain": "SlotDefinition", + "slot_uri": "https://w3id.org/linkml/inherited", + "inherited": true, + "owner": "SlotDefinition", + "domain_of": [ + "SlotDefinition" + ], + "range": "boolean", + "@type": "SlotDefinition" + }, + { + "name": "readonly", + "definition_uri": "https://w3id.org/linkml/readonly", + "description": "If present, slot is read only. Text explains why", + "comments": [ + "the slot is to be used for defining *metamodels* only" + ], + "from_schema": "https://w3id.org/linkml/meta", + "domain": "SlotDefinition", + "slot_uri": "https://w3id.org/linkml/readonly", + "inherited": true, + "owner": "SlotDefinition", + "domain_of": [ + "SlotDefinition" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "ifabsent", + "definition_uri": "https://w3id.org/linkml/ifabsent", + "description": "function that provides a default value for the slot. Possible values for this slot are defined in linkml.utils.ifabsent_functions.default_library:\n * [Tt]rue -- boolean True\n * [Ff]alse -- boolean False\n * bnode -- blank node identifier\n * class_curie -- CURIE for the containing class\n * class_uri -- URI for the containing class\n * default_ns -- schema default namespace\n * default_range -- schema default range\n * int(value) -- integer value\n * slot_uri -- URI for the slot\n * slot_curie -- CURIE for the slot\n * string(value) -- string value", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "linkml:equals_expression" + ], + "close_mappings": [ + "http://www.w3.org/ns/shacl#defaultValue" + ], + "domain": "SlotDefinition", + "slot_uri": "https://w3id.org/linkml/ifabsent", + "inherited": true, + "owner": "SlotDefinition", + "domain_of": [ + "SlotDefinition" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "implicit_prefix", + "definition_uri": "https://w3id.org/linkml/implicit_prefix", + "description": "Causes the slot value to be interpreted as a uriorcurie after prefixing with this string", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "status": "testing", + "domain": "SlotExpression", + "slot_uri": "https://w3id.org/linkml/implicit_prefix", + "owner": "SlotExpression", + "domain_of": [ + "TypeExpression", + "SlotExpression" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "value_specification_constant", + "definition_uri": "https://w3id.org/linkml/value_specification_constant", + "description": "Grouping for metamodel slots that constrain the a slot value to equal a specified constant", + "from_schema": "https://w3id.org/linkml/meta", + "status": "testing", + "abstract": true, + "slot_uri": "https://w3id.org/linkml/value_specification_constant", + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "list_value_specification_constant", + "definition_uri": "https://w3id.org/linkml/list_value_specification_constant", + "description": "Grouping for metamodel slots that constrain members of a multivalued slot value to equal a specified constant", + "from_schema": "https://w3id.org/linkml/meta", + "status": "testing", + "abstract": true, + "slot_uri": "https://w3id.org/linkml/list_value_specification_constant", + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "value_presence", + "definition_uri": "https://w3id.org/linkml/value_presence", + "description": "if true then a value must be present (for lists there must be at least one value). If false then a value must be absent (for lists, must be empty)", + "comments": [ + "if set to true this has the same effect as required=true. In contrast, required=false allows a value to be present" + ], + "from_schema": "https://w3id.org/linkml/meta", + "status": "unstable", + "is_a": "list_value_specification_constant", + "domain": "SlotDefinition", + "slot_uri": "https://w3id.org/linkml/value_presence", + "inherited": true, + "owner": "value_presence", + "domain_of": [ + "SlotExpression" + ], + "range": "presence_enum", + "@type": "SlotDefinition" + }, + { + "name": "equals_string", + "definition_uri": "https://w3id.org/linkml/equals_string", + "description": "the slot must have range string and the value of the slot must equal the specified value", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "is_a": "list_value_specification_constant", + "slot_uri": "https://w3id.org/linkml/equals_string", + "inherited": true, + "owner": "SlotExpression", + "domain_of": [ + "TypeExpression", + "SlotExpression" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "equals_number", + "definition_uri": "https://w3id.org/linkml/equals_number", + "description": "the slot must have range of a number and the value of the slot must equal the specified value", + "from_schema": "https://w3id.org/linkml/meta", + "status": "unstable", + "is_a": "list_value_specification_constant", + "slot_uri": "https://w3id.org/linkml/equals_number", + "inherited": true, + "owner": "SlotExpression", + "domain_of": [ + "TypeExpression", + "SlotExpression" + ], + "range": "integer", + "@type": "SlotDefinition" + }, + { + "name": "equals_expression", + "definition_uri": "https://w3id.org/linkml/equals_expression", + "description": "the value of the slot must equal the value of the evaluated expression", + "comments": [ + "for example, a 'length' slot may have an equals_expression with value '(end-start)+1'" + ], + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://linkml.io/linkml/developers/inference.html", + "https://linkml.io/linkml/schemas/advanced.html#equals-expression" + ], + "is_a": "list_value_specification_constant", + "slot_uri": "https://w3id.org/linkml/equals_expression", + "inherited": true, + "owner": "SlotExpression", + "domain_of": [ + "SlotExpression" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "minimum_cardinality", + "definition_uri": "https://w3id.org/linkml/minimum_cardinality", + "description": "the minimum number of entries for a multivalued slot", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "is_a": "list_value_specification_constant", + "slot_uri": "https://w3id.org/linkml/minimum_cardinality", + "inherited": true, + "owner": "SlotExpression", + "domain_of": [ + "SlotExpression" + ], + "range": "integer", + "@type": "SlotDefinition" + }, + { + "name": "maximum_cardinality", + "definition_uri": "https://w3id.org/linkml/maximum_cardinality", + "description": "the maximum number of entries for a multivalued slot", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "is_a": "list_value_specification_constant", + "slot_uri": "https://w3id.org/linkml/maximum_cardinality", + "inherited": true, + "owner": "SlotExpression", + "domain_of": [ + "SlotExpression" + ], + "range": "integer", + "@type": "SlotDefinition" + }, + { + "name": "equals_string_in", + "definition_uri": "https://w3id.org/linkml/equals_string_in", + "description": "the slot must have range string and the value of the slot must equal one of the specified values", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "status": "testing", + "is_a": "list_value_specification_constant", + "slot_uri": "https://w3id.org/linkml/equals_string_in", + "multivalued": true, + "inherited": true, + "owner": "SlotExpression", + "domain_of": [ + "TypeExpression", + "SlotExpression" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "equals_number_in", + "definition_uri": "https://w3id.org/linkml/equals_number_in", + "description": "the slot must have range number and the value of the slot must equal one of the specified values", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "status": "testing", + "is_a": "list_value_specification_constant", + "slot_uri": "https://w3id.org/linkml/equals_number_in", + "multivalued": true, + "inherited": true, + "range": "integer", + "@type": "SlotDefinition" + }, + { + "name": "has_member", + "definition_uri": "https://w3id.org/linkml/has_member", + "description": "the value of the slot is multivalued with at least one member satisfying the condition", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "status": "testing", + "is_a": "list_value_specification_constant", + "slot_uri": "https://w3id.org/linkml/has_member", + "owner": "SlotExpression", + "domain_of": [ + "SlotExpression" + ], + "range": "AnonymousSlotExpression", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "all_members", + "definition_uri": "https://w3id.org/linkml/all_members", + "description": "the value of the slot is multivalued with all members satisfying the condition", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "status": "testing", + "is_a": "list_value_specification_constant", + "slot_uri": "https://w3id.org/linkml/all_members", + "owner": "SlotExpression", + "domain_of": [ + "SlotExpression" + ], + "range": "AnonymousSlotExpression", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "singular_name", + "definition_uri": "https://w3id.org/linkml/singular_name", + "description": "a name that is used in the singular form", + "comments": [ + "this may be used in some schema translations where use of a singular form is idiomatic, for example RDF" + ], + "in_subset": [ + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "close_mappings": [ + "http://www.w3.org/2004/02/skos/core#altLabel" + ], + "domain": "SlotDefinition", + "slot_uri": "https://w3id.org/linkml/singular_name", + "owner": "SlotDefinition", + "domain_of": [ + "SlotDefinition" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "required", + "definition_uri": "https://w3id.org/linkml/required", + "description": "true means that the slot must be present in instances of the class definition", + "in_subset": [ + "SpecificationSubset", + "MinimalSubset", + "BasicSubset", + "RelationalModelProfile", + "ObjectOrientedProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "rank": 8, + "domain": "SlotDefinition", + "slot_uri": "https://w3id.org/linkml/required", + "inherited": true, + "owner": "required", + "domain_of": [ + "SlotExpression" + ], + "range": "boolean", + "@type": "SlotDefinition" + }, + { + "name": "recommended", + "definition_uri": "https://w3id.org/linkml/recommended", + "description": "true means that the slot should be present in instances of the class definition, but this is not required", + "comments": [ + "This is to be used where not all data is expected to conform to having a required field", + "If a slot is recommended, and it is not populated, applications must not treat this as an error. Applications may use this to inform the user of missing data" + ], + "in_subset": [ + "SpecificationSubset", + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://github.com/linkml/linkml/issues/177" + ], + "rank": 9, + "domain": "SlotDefinition", + "slot_uri": "https://w3id.org/linkml/recommended", + "inherited": true, + "owner": "recommended", + "domain_of": [ + "SlotExpression" + ], + "range": "boolean", + "@type": "SlotDefinition" + }, + { + "name": "inapplicable", + "definition_uri": "https://w3id.org/linkml/inapplicable", + "description": "true means that values for this slot must not be present", + "comments": [ + "By default all slots are applicable. The main use case for this slot is as an override in a subclass" + ], + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "domain": "SlotDefinition", + "slot_uri": "https://w3id.org/linkml/inapplicable", + "inherited": true, + "owner": "inapplicable", + "range": "boolean", + "@type": "SlotDefinition" + }, + { + "name": "inlined", + "definition_uri": "https://w3id.org/linkml/inlined", + "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.", + "comments": [ + "classes without keys or identifiers are necessarily inlined as lists", + "only applicable in tree-like serializations, e.g json, yaml" + ], + "in_subset": [ + "SpecificationSubset", + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://w3id.org/linkml/docs/specification/06mapping/#collection-forms" + ], + "rank": 25, + "domain": "SlotDefinition", + "slot_uri": "https://w3id.org/linkml/inlined", + "inherited": true, + "owner": "inlined", + "domain_of": [ + "SlotExpression" + ], + "range": "boolean", + "@type": "SlotDefinition" + }, + { + "name": "inlined_as_list", + "definition_uri": "https://w3id.org/linkml/inlined_as_list", + "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.", + "comments": [ + "The default loader will accept either list or dictionary form as input. This parameter controls internal\nrepresentation and output.", + "A keyed or identified class with one additional slot can be input in a third form, a dictionary whose key\nis the key or identifier and whose value is the one additional element. This form is still stored according\nto the inlined_as_list setting." + ], + "in_subset": [ + "SpecificationSubset", + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://w3id.org/linkml/docs/specification/06mapping/#collection-forms" + ], + "rank": 27, + "domain": "SlotDefinition", + "slot_uri": "https://w3id.org/linkml/inlined_as_list", + "inherited": true, + "owner": "inlined_as_list", + "domain_of": [ + "SlotExpression" + ], + "range": "boolean", + "@type": "SlotDefinition" + }, + { + "name": "inlined_as_simple_dict", + "definition_uri": "https://w3id.org/linkml/inlined_as_simple_dict", + "description": "True means that an inlined slot is represented as a simple dict whose values are all atoms", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://w3id.org/linkml/docs/specification/06mapping/#collection-forms" + ], + "status": "testing", + "rank": 28, + "domain": "SlotDefinition", + "slot_uri": "https://w3id.org/linkml/inlined_as_simple_dict", + "inherited": true, + "owner": "inlined_as_simple_dict", + "range": "boolean", + "@type": "SlotDefinition" + }, + { + "name": "list_elements_ordered", + "definition_uri": "https://w3id.org/linkml/list_elements_ordered", + "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", + "comments": [ + "should only be used with multivalued slots" + ], + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "status": "testing", + "domain": "SlotDefinition", + "slot_uri": "https://w3id.org/linkml/list_elements_ordered", + "inherited": true, + "owner": "SlotDefinition", + "domain_of": [ + "SlotDefinition" + ], + "range": "boolean", + "@type": "SlotDefinition" + }, + { + "name": "list_elements_unique", + "definition_uri": "https://w3id.org/linkml/list_elements_unique", + "description": "If True, then there must be no duplicates in the elements of a multivalued slot", + "comments": [ + "should only be used with multivalued slots" + ], + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "domain": "SlotDefinition", + "slot_uri": "https://w3id.org/linkml/list_elements_unique", + "inherited": true, + "owner": "SlotDefinition", + "domain_of": [ + "SlotDefinition" + ], + "range": "boolean", + "@type": "SlotDefinition" + }, + { + "name": "shared", + "definition_uri": "https://w3id.org/linkml/shared", + "description": "If True, then the relationship between the slot domain and range is many to one or many to many", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "aliases": [ + "inverse functional", + "many to one or many" + ], + "domain": "SlotDefinition", + "slot_uri": "https://w3id.org/linkml/shared", + "inherited": true, + "owner": "SlotDefinition", + "domain_of": [ + "SlotDefinition" + ], + "range": "boolean", + "@type": "SlotDefinition" + }, + { + "name": "key", + "definition_uri": "https://w3id.org/linkml/key", + "description": "True means that the key slot(s) uniquely identify the elements within a single container", + "comments": [ + "key is inherited", + "a given domain can have at most one key slot (restriction to be removed in the future)", + "identifiers and keys are mutually exclusive. A given domain cannot have both", + "a key slot is automatically required. Keys cannot be optional" + ], + "in_subset": [ + "SpecificationSubset", + "BasicSubset", + "RelationalModelProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "linkml:unique_keys" + ], + "domain": "SlotDefinition", + "slot_uri": "https://w3id.org/linkml/key", + "inherited": true, + "owner": "SlotDefinition", + "domain_of": [ + "SlotDefinition" + ], + "range": "boolean", + "@type": "SlotDefinition" + }, + { + "name": "identifier", + "definition_uri": "https://w3id.org/linkml/identifier", + "description": "True means that the key slot(s) uniquely identifies the elements. There can be at most one identifier or key per container", + "comments": [ + "identifier is inherited", + "a key slot is automatically required. Identifiers cannot be optional", + "a given domain can have at most one identifier", + "identifiers and keys are mutually exclusive. A given domain cannot have both" + ], + "in_subset": [ + "SpecificationSubset", + "MinimalSubset", + "BasicSubset", + "RelationalModelProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://en.wikipedia.org/wiki/Identifier", + "linkml:unique_keys" + ], + "aliases": [ + "primary key", + "ID", + "UID", + "code" + ], + "rank": 5, + "domain": "SlotDefinition", + "slot_uri": "https://w3id.org/linkml/identifier", + "inherited": true, + "owner": "SlotDefinition", + "domain_of": [ + "SlotDefinition" + ], + "range": "boolean", + "@type": "SlotDefinition" + }, + { + "name": "designates_type", + "definition_uri": "https://w3id.org/linkml/designates_type", + "description": "True means that the key slot(s) is used to determine the instantiation (types) relation between objects and a ClassDefinition", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://linkml.io/linkml/schemas/type-designators.html" + ], + "aliases": [ + "type designator" + ], + "domain": "SlotDefinition", + "slot_uri": "https://w3id.org/linkml/designates_type", + "inherited": true, + "owner": "SlotDefinition", + "domain_of": [ + "SlotDefinition" + ], + "range": "boolean", + "@type": "SlotDefinition" + }, + { + "name": "alias", + "definition_uri": "https://w3id.org/linkml/alias", + "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.", + "comments": [ + "an example of alias is used within this metamodel, slot_definitions is aliases as slots", + "not to be confused with aliases, which indicates a set of terms to be used for search purposes." + ], + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "mappings": [ + "http://www.w3.org/2004/02/skos/core#prefLabel" + ], + "rank": 6, + "domain": "SlotDefinition", + "slot_uri": "http://www.w3.org/2004/02/skos/core#prefLabel", + "owner": "SlotDefinition", + "domain_of": [ + "SlotDefinition" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "owner", + "definition_uri": "https://w3id.org/linkml/owner", + "description": "the \"owner\" of the slot. It is the class if it appears in the slots list, otherwise the declaring slot", + "deprecated": "Will be replaced by domain_of and eventually removed", + "from_schema": "https://w3id.org/linkml/meta", + "domain": "SlotDefinition", + "slot_uri": "https://w3id.org/linkml/owner", + "readonly": "filled in by loader -- either class domain or slot domain", + "owner": "SlotDefinition", + "domain_of": [ + "SlotDefinition" + ], + "range": "Definition", + "@type": "SlotDefinition" + }, + { + "name": "domain_of", + "definition_uri": "https://w3id.org/linkml/domain_of", + "description": "the class(es) that reference the slot in a \"slots\" or \"slot_usage\" context", + "from_schema": "https://w3id.org/linkml/meta", + "exact_mappings": [ + "http://schema.org/domainIncludes" + ], + "domain": "SlotDefinition", + "slot_uri": "https://w3id.org/linkml/domain_of", + "multivalued": true, + "readonly": "filled in by the loader", + "owner": "SlotDefinition", + "domain_of": [ + "SlotDefinition" + ], + "range": "ClassDefinition", + "@type": "SlotDefinition" + }, + { + "name": "is_usage_slot", + "definition_uri": "https://w3id.org/linkml/is_usage_slot", + "description": "True means that this slot was defined in a slot_usage situation", + "deprecated": "Replaced by usage_slot_name", + "from_schema": "https://w3id.org/linkml/meta", + "domain": "SlotDefinition", + "slot_uri": "https://w3id.org/linkml/is_usage_slot", + "readonly": "filled in by the loader", + "owner": "SlotDefinition", + "domain_of": [ + "SlotDefinition" + ], + "range": "boolean", + "@type": "SlotDefinition" + }, + { + "name": "usage_slot_name", + "definition_uri": "https://w3id.org/linkml/usage_slot_name", + "description": "The name of the slot referenced in the slot_usage", + "from_schema": "https://w3id.org/linkml/meta", + "domain": "SlotDefinition", + "slot_uri": "https://w3id.org/linkml/usage_slot_name", + "readonly": "filled in by the loader", + "owner": "SlotDefinition", + "domain_of": [ + "SlotDefinition" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "subproperty_of", + "definition_uri": "https://w3id.org/linkml/subproperty_of", + "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 hierarchy into an enumerated list of possible values in every serialization of the model.", + "examples": [ + { + "value": "RO:HOM0000001", + "description": "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.')", + "@type": "Example" + } + ], + "from_schema": "https://w3id.org/linkml/meta", + "mappings": [ + "http://www.w3.org/2000/01/rdf-schema#subPropertyOf" + ], + "domain": "SlotDefinition", + "slot_uri": "http://www.w3.org/2000/01/rdf-schema#subPropertyOf", + "owner": "SlotDefinition", + "domain_of": [ + "SlotDefinition" + ], + "range": "SlotDefinition", + "@type": "SlotDefinition" + }, + { + "name": "disjoint_with", + "definition_uri": "https://w3id.org/linkml/disjoint_with", + "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", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "domain": "Definition", + "slot_uri": "https://w3id.org/linkml/disjoint_with", + "multivalued": true, + "owner": "disjoint_with", + "domain_of": [ + "SlotDefinition", + "ClassDefinition" + ], + "range": "Definition", + "@type": "SlotDefinition" + }, + { + "name": "children_are_mutually_disjoint", + "definition_uri": "https://w3id.org/linkml/children_are_mutually_disjoint", + "description": "If true then all direct is_a children are mutually disjoint and share no instances in common", + "from_schema": "https://w3id.org/linkml/meta", + "domain": "Definition", + "slot_uri": "https://w3id.org/linkml/children_are_mutually_disjoint", + "owner": "children_are_mutually_disjoint", + "domain_of": [ + "SlotDefinition", + "ClassDefinition" + ], + "range": "boolean", + "@type": "SlotDefinition" + }, + { + "name": "relational_logical_characteristic", + "definition_uri": "https://w3id.org/linkml/relational_logical_characteristic", + "description": "An abstract grouping for metaslots that describe logical properties of a slot", + "from_schema": "https://w3id.org/linkml/meta", + "abstract": true, + "domain": "SlotDefinition", + "slot_uri": "https://w3id.org/linkml/relational_logical_characteristic", + "owner": "relational_logical_characteristic", + "range": "boolean", + "@type": "SlotDefinition" + }, + { + "name": "symmetric", + "definition_uri": "https://w3id.org/linkml/symmetric", + "description": "If s is symmetric, and i.s=v, then v.s=i", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "close_mappings": [ + "http://www.w3.org/2002/07/owl#SymmetricProperty" + ], + "is_a": "relational_logical_characteristic", + "domain": "SlotDefinition", + "slot_uri": "https://w3id.org/linkml/symmetric", + "owner": "SlotDefinition", + "domain_of": [ + "SlotDefinition" + ], + "range": "boolean", + "@type": "SlotDefinition" + }, + { + "name": "asymmetric", + "definition_uri": "https://w3id.org/linkml/asymmetric", + "description": "If s is antisymmetric, and i.s=v where i is different from v, v.s cannot have value i", + "comments": [ + "asymmetry is the combination of antisymmetry and irreflexivity" + ], + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "close_mappings": [ + "http://www.w3.org/2002/07/owl#AsymmetricProperty" + ], + "is_a": "relational_logical_characteristic", + "domain": "SlotDefinition", + "slot_uri": "https://w3id.org/linkml/asymmetric", + "owner": "SlotDefinition", + "domain_of": [ + "SlotDefinition" + ], + "range": "boolean", + "@type": "SlotDefinition" + }, + { + "name": "reflexive", + "definition_uri": "https://w3id.org/linkml/reflexive", + "description": "If s is reflexive, then i.s=i for all instances i", + "comments": [ + "it is rare for a property to be reflexive, this characteristic is added for completeness, consider instead locally_reflexive" + ], + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "close_mappings": [ + "http://www.w3.org/2002/07/owl#ReflexiveProperty" + ], + "is_a": "relational_logical_characteristic", + "domain": "SlotDefinition", + "slot_uri": "https://w3id.org/linkml/reflexive", + "owner": "SlotDefinition", + "domain_of": [ + "SlotDefinition" + ], + "range": "boolean", + "@type": "SlotDefinition" + }, + { + "name": "irreflexive", + "definition_uri": "https://w3id.org/linkml/irreflexive", + "description": "If s is irreflexive, then there exists no i such i.s=i", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "close_mappings": [ + "http://www.w3.org/2002/07/owl#IrreflexiveProperty" + ], + "is_a": "relational_logical_characteristic", + "domain": "SlotDefinition", + "slot_uri": "https://w3id.org/linkml/irreflexive", + "owner": "SlotDefinition", + "domain_of": [ + "SlotDefinition" + ], + "range": "boolean", + "@type": "SlotDefinition" + }, + { + "name": "locally_reflexive", + "definition_uri": "https://w3id.org/linkml/locally_reflexive", + "description": "If s is locally_reflexive, then i.s=i for all instances i where s is a class slot for the type of i", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "is_a": "relational_logical_characteristic", + "domain": "SlotDefinition", + "slot_uri": "https://w3id.org/linkml/locally_reflexive", + "owner": "SlotDefinition", + "domain_of": [ + "SlotDefinition" + ], + "range": "boolean", + "@type": "SlotDefinition" + }, + { + "name": "transitive", + "definition_uri": "https://w3id.org/linkml/transitive", + "description": "If s is transitive, and i.s=z, and s.s=j, then i.s=j", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "close_mappings": [ + "http://www.w3.org/2002/07/owl#TransitiveProperty" + ], + "is_a": "relational_logical_characteristic", + "domain": "SlotDefinition", + "slot_uri": "https://w3id.org/linkml/transitive", + "owner": "SlotDefinition", + "domain_of": [ + "SlotDefinition" + ], + "range": "boolean", + "@type": "SlotDefinition" + }, + { + "name": "transitive_form_of", + "definition_uri": "https://w3id.org/linkml/transitive_form_of", + "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", + "comments": [ + "Example: ancestor_of is the transitive_form_of parent_of" + ], + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "slot_uri": "https://w3id.org/linkml/transitive_form_of", + "owner": "SlotDefinition", + "domain_of": [ + "SlotDefinition" + ], + "range": "SlotDefinition", + "@type": "SlotDefinition" + }, + { + "name": "reflexive_transitive_form_of", + "definition_uri": "https://w3id.org/linkml/reflexive_transitive_form_of", + "description": "transitive_form_of including the reflexive case", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "is_a": "transitive_form_of", + "slot_uri": "https://w3id.org/linkml/reflexive_transitive_form_of", + "owner": "SlotDefinition", + "domain_of": [ + "SlotDefinition" + ], + "range": "SlotDefinition", + "@type": "SlotDefinition" + }, + { + "name": "inverse", + "definition_uri": "https://w3id.org/linkml/inverse", + "description": "indicates that any instance of d s r implies that there is also an instance of r s' d", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "mappings": [ + "http://www.w3.org/2002/07/owl#inverseOf" + ], + "domain": "SlotDefinition", + "slot_uri": "http://www.w3.org/2002/07/owl#inverseOf", + "owner": "SlotDefinition", + "domain_of": [ + "SlotDefinition" + ], + "range": "SlotDefinition", + "@type": "SlotDefinition" + }, + { + "name": "is_class_field", + "definition_uri": "https://w3id.org/linkml/is_class_field", + "description": "indicates that for any instance, i, the domain of this slot will include an assertion of i s range", + "from_schema": "https://w3id.org/linkml/meta", + "domain": "SlotDefinition", + "slot_uri": "https://w3id.org/linkml/is_class_field", + "owner": "SlotDefinition", + "domain_of": [ + "SlotDefinition" + ], + "range": "boolean", + "@type": "SlotDefinition" + }, + { + "name": "role", + "definition_uri": "https://w3id.org/linkml/role", + "description": "a textual descriptor that indicates the role played by the slot range", + "comments": [ + "the primary use case for this slot is to provide a textual descriptor of a generic slot name when used in the context of a more specific class" + ], + "from_schema": "https://w3id.org/linkml/meta", + "domain": "SlotDefinition", + "slot_uri": "https://w3id.org/linkml/role", + "inherited": true, + "owner": "SlotDefinition", + "domain_of": [ + "SlotDefinition" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "minimum_value", + "definition_uri": "https://w3id.org/linkml/minimum_value", + "description": "for slots with ranges of type number, the value must be equal to or higher than this", + "in_subset": [ + "SpecificationSubset", + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "aliases": [ + "low value" + ], + "domain": "SlotDefinition", + "slot_uri": "https://w3id.org/linkml/minimum_value", + "inherited": true, + "owner": "minimum_value", + "domain_of": [ + "TypeExpression", + "SlotExpression" + ], + "range": "integer", + "@type": "SlotDefinition" + }, + { + "name": "maximum_value", + "definition_uri": "https://w3id.org/linkml/maximum_value", + "description": "for slots with ranges of type number, the value must be equal to or lowe than this", + "in_subset": [ + "SpecificationSubset", + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "aliases": [ + "high value" + ], + "domain": "SlotDefinition", + "slot_uri": "https://w3id.org/linkml/maximum_value", + "inherited": true, + "owner": "maximum_value", + "domain_of": [ + "TypeExpression", + "SlotExpression" + ], + "range": "integer", + "@type": "SlotDefinition" + }, + { + "name": "interpolated", + "definition_uri": "https://w3id.org/linkml/interpolated", + "description": "if true then the pattern is first string interpolated", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "domain": "PatternExpression", + "slot_uri": "https://w3id.org/linkml/interpolated", + "owner": "PatternExpression", + "domain_of": [ + "PatternExpression" + ], + "range": "boolean", + "@type": "SlotDefinition" + }, + { + "name": "partial_match", + "definition_uri": "https://w3id.org/linkml/partial_match", + "description": "if not true then the pattern must match the whole string, as if enclosed in ^...$", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "domain": "PatternExpression", + "slot_uri": "https://w3id.org/linkml/partial_match", + "owner": "PatternExpression", + "domain_of": [ + "PatternExpression" + ], + "range": "boolean", + "@type": "SlotDefinition" + }, + { + "name": "pattern", + "definition_uri": "https://w3id.org/linkml/pattern", + "description": "the string value of the slot must conform to this regular expression expressed in the string", + "in_subset": [ + "SpecificationSubset", + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "rank": 35, + "domain": "Definition", + "slot_uri": "https://w3id.org/linkml/pattern", + "inherited": true, + "owner": "pattern", + "domain_of": [ + "TypeExpression", + "SlotExpression" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "syntax", + "definition_uri": "https://w3id.org/linkml/syntax", + "description": "the string value of the slot must conform to this regular expression expressed in the string. May be interpolated.", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "domain": "PatternExpression", + "slot_uri": "https://w3id.org/linkml/syntax", + "inherited": true, + "owner": "PatternExpression", + "domain_of": [ + "PatternExpression" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "structured_pattern", + "definition_uri": "https://w3id.org/linkml/structured_pattern", + "description": "the string value of the slot must conform to the regular expression in the pattern expression", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://linkml.io/linkml/schemas/constraints.html#structured-patterns" + ], + "domain": "Definition", + "slot_uri": "https://w3id.org/linkml/structured_pattern", + "inherited": true, + "owner": "structured_pattern", + "domain_of": [ + "TypeExpression", + "SlotExpression" + ], + "range": "PatternExpression", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "string_serialization", + "definition_uri": "https://w3id.org/linkml/string_serialization", + "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.\nWe 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.\nImplementations 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\nFor 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", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://github.com/linkml/issues/128" + ], + "domain": "Definition", + "slot_uri": "https://w3id.org/linkml/string_serialization", + "owner": "Definition", + "domain_of": [ + "Definition" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "typeof", + "definition_uri": "https://w3id.org/linkml/typeof", + "description": "A parent type from which type properties are inherited", + "comments": [ + "the target type definition of the typeof slot is referred to as the \"parent type\"", + "the type definition containing the typeof slot is referred to as the \"child type\"", + "type definitions without a typeof slot are referred to as a \"root type\"" + ], + "in_subset": [ + "SpecificationSubset", + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "rank": 7, + "domain": "TypeDefinition", + "slot_uri": "https://w3id.org/linkml/typeof", + "owner": "TypeDefinition", + "domain_of": [ + "TypeDefinition" + ], + "range": "TypeDefinition", + "@type": "SlotDefinition" + }, + { + "name": "base", + "definition_uri": "https://w3id.org/linkml/base", + "description": "python base type in the LinkML runtime that implements this type definition", + "comments": [ + "every root type must have a base", + "the base is inherited by child types but may be overridden. Base compatibility is not checked." + ], + "in_subset": [ + "SpecificationSubset", + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "rank": 8, + "domain": "TypeDefinition", + "slot_uri": "https://w3id.org/linkml/base", + "inherited": true, + "owner": "TypeDefinition", + "domain_of": [ + "TypeDefinition" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "type_uri", + "definition_uri": "https://w3id.org/linkml/type_uri", + "description": "The uri that defines the possible values for the type definition", + "comments": [ + "uri is typically drawn from the set of URI's defined in OWL (https://www.w3.org/TR/2012/REC-owl2-syntax-20121211/#Datatype_Maps)", + "every root type must have a type uri" + ], + "in_subset": [ + "SpecificationSubset", + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "rank": 2, + "domain": "TypeDefinition", + "slot_uri": "https://w3id.org/linkml/uri", + "inherited": true, + "alias": "uri", + "owner": "TypeDefinition", + "domain_of": [ + "TypeDefinition" + ], + "range": "uriorcurie", + "@type": "SlotDefinition" + }, + { + "name": "repr", + "definition_uri": "https://w3id.org/linkml/repr", + "description": "the name of the python object that implements this type definition", + "in_subset": [ + "SpecificationSubset", + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "rank": 10, + "domain": "TypeDefinition", + "slot_uri": "https://w3id.org/linkml/repr", + "inherited": true, + "owner": "TypeDefinition", + "domain_of": [ + "TypeDefinition" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "alt_description_text", + "definition_uri": "https://w3id.org/linkml/alt_description_text", + "description": "text of an attributed description", + "in_subset": [ + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "domain": "AltDescription", + "slot_uri": "https://w3id.org/linkml/description", + "alias": "description", + "owner": "AltDescription", + "domain_of": [ + "AltDescription" + ], + "range": "string", + "required": true, + "@type": "SlotDefinition" + }, + { + "name": "alt_description_source", + "definition_uri": "https://w3id.org/linkml/alt_description_source", + "description": "the source of an attributed description", + "in_subset": [ + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "domain": "AltDescription", + "slot_uri": "https://w3id.org/linkml/source", + "key": true, + "alias": "source", + "owner": "AltDescription", + "domain_of": [ + "AltDescription" + ], + "range": "string", + "required": true, + "@type": "SlotDefinition" + }, + { + "name": "alt_descriptions", + "definition_uri": "https://w3id.org/linkml/alt_descriptions", + "description": "A sourced alternative description for an element", + "in_subset": [ + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "aliases": [ + "alternate definitions" + ], + "domain": "Element", + "slot_uri": "https://w3id.org/linkml/alt_descriptions", + "multivalued": true, + "owner": "alt_descriptions", + "domain_of": [ + "CommonMetadata" + ], + "range": "AltDescription", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "value", + "definition_uri": "https://w3id.org/linkml/value", + "description": "example value", + "in_subset": [ + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "mappings": [ + "http://www.w3.org/2004/02/skos/core#example" + ], + "domain": "Example", + "slot_uri": "http://www.w3.org/2004/02/skos/core#example", + "owner": "Example", + "domain_of": [ + "Example" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "value_description", + "definition_uri": "https://w3id.org/linkml/value_description", + "description": "description of what the value is doing", + "in_subset": [ + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "domain": "Example", + "slot_uri": "https://w3id.org/linkml/description", + "alias": "description", + "owner": "Example", + "domain_of": [ + "Example" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "value_object", + "definition_uri": "https://w3id.org/linkml/value_object", + "description": "direct object representation of the example", + "in_subset": [ + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "domain": "Example", + "slot_uri": "https://w3id.org/linkml/object", + "alias": "object", + "owner": "Example", + "domain_of": [ + "Example" + ], + "range": "Anything", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "examples", + "definition_uri": "https://w3id.org/linkml/examples", + "description": "example usages of an element", + "in_subset": [ + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "close_mappings": [ + "https://vocab.org/vann/example" + ], + "singular_name": "example", + "domain": "Element", + "slot_uri": "https://w3id.org/linkml/examples", + "multivalued": true, + "owner": "examples", + "domain_of": [ + "CommonMetadata" + ], + "range": "Example", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "prefix_prefix", + "definition_uri": "https://w3id.org/linkml/prefix_prefix", + "description": "The prefix components of a prefix expansions. This is the part that appears before the colon in a CURIE.", + "in_subset": [ + "SpecificationSubset", + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "mappings": [ + "http://www.w3.org/ns/shacl#prefix" + ], + "rank": 1, + "domain": "Prefix", + "slot_uri": "http://www.w3.org/ns/shacl#prefix", + "key": true, + "owner": "Prefix", + "domain_of": [ + "Prefix" + ], + "range": "ncname", + "required": true, + "@type": "SlotDefinition" + }, + { + "name": "prefix_reference", + "definition_uri": "https://w3id.org/linkml/prefix_reference", + "description": "The namespace to which a prefix expands to.", + "in_subset": [ + "SpecificationSubset", + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "mappings": [ + "http://www.w3.org/ns/shacl#namespace" + ], + "rank": 2, + "domain": "Prefix", + "slot_uri": "http://www.w3.org/ns/shacl#namespace", + "owner": "Prefix", + "domain_of": [ + "Prefix" + ], + "range": "uri", + "required": true, + "@type": "SlotDefinition" + }, + { + "name": "prefixes", + "definition_uri": "https://w3id.org/linkml/prefixes", + "description": "A collection of prefix expansions that specify how CURIEs can be expanded to URIs", + "in_subset": [ + "SpecificationSubset", + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "mappings": [ + "http://www.w3.org/ns/shacl#declare" + ], + "rank": 10, + "domain": "SchemaDefinition", + "slot_uri": "http://www.w3.org/ns/shacl#declare", + "multivalued": true, + "owner": "SchemaDefinition", + "domain_of": [ + "SchemaDefinition" + ], + "range": "Prefix", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "setting_key", + "definition_uri": "https://w3id.org/linkml/setting_key", + "description": "the variable name for a setting", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "domain": "Setting", + "slot_uri": "https://w3id.org/linkml/setting_key", + "key": true, + "owner": "Setting", + "domain_of": [ + "Setting" + ], + "range": "ncname", + "required": true, + "@type": "SlotDefinition" + }, + { + "name": "setting_value", + "definition_uri": "https://w3id.org/linkml/setting_value", + "description": "The value assigned for a setting", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "domain": "Setting", + "slot_uri": "https://w3id.org/linkml/setting_value", + "owner": "Setting", + "domain_of": [ + "Setting" + ], + "range": "string", + "required": true, + "@type": "SlotDefinition" + }, + { + "name": "settings", + "definition_uri": "https://w3id.org/linkml/settings", + "description": "A collection of global variable settings", + "comments": [ + "global variables are used in string interpolation in structured patterns" + ], + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "aliases": [ + "constants" + ], + "rank": 20, + "domain": "SchemaDefinition", + "slot_uri": "https://w3id.org/linkml/settings", + "multivalued": true, + "owner": "SchemaDefinition", + "domain_of": [ + "SchemaDefinition" + ], + "range": "Setting", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "import_from", + "definition_uri": "https://w3id.org/linkml/import_from", + "from_schema": "https://w3id.org/linkml/meta", + "status": "testing", + "domain": "ImportExpression", + "slot_uri": "https://w3id.org/linkml/import_from", + "owner": "ImportExpression", + "domain_of": [ + "ImportExpression" + ], + "range": "uriorcurie", + "required": true, + "@type": "SlotDefinition" + }, + { + "name": "import_as", + "definition_uri": "https://w3id.org/linkml/import_as", + "from_schema": "https://w3id.org/linkml/meta", + "status": "testing", + "domain": "ImportExpression", + "slot_uri": "https://w3id.org/linkml/import_as", + "owner": "ImportExpression", + "domain_of": [ + "ImportExpression" + ], + "range": "ncname", + "@type": "SlotDefinition" + }, + { + "name": "import_map", + "definition_uri": "https://w3id.org/linkml/import_map", + "from_schema": "https://w3id.org/linkml/meta", + "status": "testing", + "domain": "ImportExpression", + "slot_uri": "https://w3id.org/linkml/import_map", + "multivalued": true, + "owner": "ImportExpression", + "domain_of": [ + "ImportExpression" + ], + "range": "Setting", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "local_name_source", + "definition_uri": "https://w3id.org/linkml/local_name_source", + "description": "the ncname of the source of the name", + "from_schema": "https://w3id.org/linkml/meta", + "domain": "LocalName", + "slot_uri": "https://w3id.org/linkml/local_name_source", + "key": true, + "owner": "LocalName", + "domain_of": [ + "LocalName" + ], + "range": "ncname", + "required": true, + "@type": "SlotDefinition" + }, + { + "name": "local_name_value", + "definition_uri": "https://w3id.org/linkml/local_name_value", + "description": "a name assigned to an element in a given ontology", + "from_schema": "https://w3id.org/linkml/meta", + "mappings": [ + "http://www.w3.org/2004/02/skos/core#altLabel" + ], + "domain": "LocalName", + "slot_uri": "http://www.w3.org/2004/02/skos/core#altLabel", + "owner": "LocalName", + "domain_of": [ + "LocalName" + ], + "range": "string", + "required": true, + "@type": "SlotDefinition" + }, + { + "name": "local_names", + "definition_uri": "https://w3id.org/linkml/local_names", + "from_schema": "https://w3id.org/linkml/meta", + "domain": "Element", + "slot_uri": "https://w3id.org/linkml/local_names", + "multivalued": true, + "owner": "Element", + "domain_of": [ + "Element" + ], + "range": "LocalName", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "slot_group", + "definition_uri": "https://w3id.org/linkml/slot_group", + "description": "allows for grouping of related slots into a grouping slot that serves the role of a group", + "comments": [ + "slot groups do not change the semantics of a model but are a useful way of visually grouping related slots" + ], + "in_subset": [ + "SpecificationSubset", + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "mappings": [ + "http://www.w3.org/ns/shacl#group" + ], + "domain": "SlotDefinition", + "slot_uri": "http://www.w3.org/ns/shacl#group", + "owner": "SlotDefinition", + "domain_of": [ + "SlotDefinition" + ], + "range": "SlotDefinition", + "range_expression": { + "slot_conditions": [ + { + "name": "is_grouping_slot", + "equals_expression": "True", + "@type": "SlotDefinition" + } + ], + "@type": "AnonymousClassExpression" + }, + "@type": "SlotDefinition" + }, + { + "name": "is_grouping_slot", + "definition_uri": "https://w3id.org/linkml/is_grouping_slot", + "description": "true if this slot is a grouping slot", + "in_subset": [ + "SpecificationSubset", + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "close_mappings": [ + "http://www.w3.org/ns/shacl#PropertyGroup" + ], + "domain": "SlotDefinition", + "slot_uri": "https://w3id.org/linkml/is_grouping_slot", + "owner": "SlotDefinition", + "domain_of": [ + "SlotDefinition" + ], + "range": "boolean", + "@type": "SlotDefinition" + }, + { + "name": "followed_by", + "definition_uri": "https://w3id.org/linkml/followed_by", + "description": "in a sequential list, this indicates the next member", + "from_schema": "https://w3id.org/linkml/meta", + "slot_uri": "https://w3id.org/linkml/followed_by", + "owner": "PathExpression", + "domain_of": [ + "PathExpression" + ], + "range": "Expression", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "reversed", + "definition_uri": "https://w3id.org/linkml/reversed", + "description": "true if the slot is to be inversed", + "from_schema": "https://w3id.org/linkml/meta", + "slot_uri": "https://w3id.org/linkml/reversed", + "owner": "PathExpression", + "domain_of": [ + "PathExpression" + ], + "range": "boolean", + "@type": "SlotDefinition" + }, + { + "name": "traverse", + "definition_uri": "https://w3id.org/linkml/traverse", + "description": "the slot to traverse", + "from_schema": "https://w3id.org/linkml/meta", + "slot_uri": "https://w3id.org/linkml/traverse", + "owner": "PathExpression", + "domain_of": [ + "PathExpression" + ], + "range": "SlotDefinition", + "@type": "SlotDefinition" + }, + { + "name": "path_rule", + "definition_uri": "https://w3id.org/linkml/path_rule", + "description": "a rule for inferring a slot assignment based on evaluating a path through a sequence of slot assignments", + "from_schema": "https://w3id.org/linkml/meta", + "domain": "SlotDefinition", + "slot_uri": "https://w3id.org/linkml/path_rule", + "owner": "SlotDefinition", + "domain_of": [ + "SlotDefinition" + ], + "range": "PathExpression", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "represents_relationship", + "definition_uri": "https://w3id.org/linkml/represents_relationship", + "description": "true if this class represents a relationship rather than an entity", + "comments": [ + "in the context of Entity-Relationship (ER) modeling, this is used to state that a class models a relationship between entities, and should be drawn with a diamond", + "in the context of RDF, this should be used when instances of the class are `rdf:Statement`s", + "in the context of property graphs, this should be used when a class is used to represent an edge that connects nodes" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "rdf:Statement", + "https://patterns.dataincubator.org/book/qualified-relation.html" + ], + "aliases": [ + "is_reified" + ], + "status": "testing", + "domain": "ClassDefinition", + "slot_uri": "https://w3id.org/linkml/represents_relationship", + "inherited": true, + "owner": "ClassDefinition", + "domain_of": [ + "ClassDefinition" + ], + "range": "boolean", + "@type": "SlotDefinition" + }, + { + "name": "relational_role", + "definition_uri": "https://w3id.org/linkml/relational_role", + "description": "the role a slot on a relationship class plays, for example, the subject, object or predicate roles", + "comments": [ + "this should only be used on slots that are applicable to class that represent relationships", + "in the context of RDF, this should be used for slots that can be modeled using the RDF reification vocabulary", + "in the context of property graphs, this should be used on edge classes to indicate which slots represent the input and output nodes" + ], + "from_schema": "https://w3id.org/linkml/meta", + "aliases": [ + "reification_role" + ], + "status": "testing", + "domain": "SlotDefinition", + "slot_uri": "https://w3id.org/linkml/relational_role", + "inherited": true, + "owner": "SlotDefinition", + "domain_of": [ + "SlotDefinition" + ], + "range": "relational_role_enum", + "@type": "SlotDefinition" + }, + { + "name": "mappings", + "definition_uri": "https://w3id.org/linkml/mappings", + "description": "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective.", + "from_schema": "https://w3id.org/linkml/mappings", + "imported_from": "linkml:mappings", + "aliases": [ + "xrefs", + "identifiers", + "alternate identifiers", + "alternate ids" + ], + "mappings": [ + "http://www.w3.org/2004/02/skos/core#mappingRelation" + ], + "slot_uri": "http://www.w3.org/2004/02/skos/core#mappingRelation", + "multivalued": true, + "owner": "CommonMetadata", + "domain_of": [ + "CommonMetadata" + ], + "range": "uriorcurie", + "@type": "SlotDefinition" + }, + { + "name": "exact_mappings", + "definition_uri": "https://w3id.org/linkml/exact_mappings", + "description": "A list of terms from different schemas or terminology systems that have identical meaning.", + "from_schema": "https://w3id.org/linkml/mappings", + "imported_from": "linkml:mappings", + "mappings": [ + "http://www.w3.org/2004/02/skos/core#exactMatch" + ], + "is_a": "mappings", + "slot_uri": "http://www.w3.org/2004/02/skos/core#exactMatch", + "multivalued": true, + "owner": "UnitOfMeasure", + "domain_of": [ + "CommonMetadata", + "UnitOfMeasure" + ], + "range": "uriorcurie", + "@type": "SlotDefinition" + }, + { + "name": "close_mappings", + "definition_uri": "https://w3id.org/linkml/close_mappings", + "description": "A list of terms from different schemas or terminology systems that have close meaning.", + "from_schema": "https://w3id.org/linkml/mappings", + "imported_from": "linkml:mappings", + "mappings": [ + "http://www.w3.org/2004/02/skos/core#closeMatch" + ], + "is_a": "mappings", + "slot_uri": "http://www.w3.org/2004/02/skos/core#closeMatch", + "multivalued": true, + "owner": "CommonMetadata", + "domain_of": [ + "CommonMetadata" + ], + "range": "uriorcurie", + "@type": "SlotDefinition" + }, + { + "name": "related_mappings", + "definition_uri": "https://w3id.org/linkml/related_mappings", + "description": "A list of terms from different schemas or terminology systems that have related meaning.", + "from_schema": "https://w3id.org/linkml/mappings", + "imported_from": "linkml:mappings", + "mappings": [ + "http://www.w3.org/2004/02/skos/core#relatedMatch" + ], + "is_a": "mappings", + "slot_uri": "http://www.w3.org/2004/02/skos/core#relatedMatch", + "multivalued": true, + "owner": "CommonMetadata", + "domain_of": [ + "CommonMetadata" + ], + "range": "uriorcurie", + "@type": "SlotDefinition" + }, + { + "name": "narrow_mappings", + "definition_uri": "https://w3id.org/linkml/narrow_mappings", + "description": "A list of terms from different schemas or terminology systems that have narrower meaning.", + "from_schema": "https://w3id.org/linkml/mappings", + "imported_from": "linkml:mappings", + "mappings": [ + "http://www.w3.org/2004/02/skos/core#narrowMatch" + ], + "is_a": "mappings", + "slot_uri": "http://www.w3.org/2004/02/skos/core#narrowMatch", + "multivalued": true, + "owner": "CommonMetadata", + "domain_of": [ + "CommonMetadata" + ], + "range": "uriorcurie", + "@type": "SlotDefinition" + }, + { + "name": "broad_mappings", + "definition_uri": "https://w3id.org/linkml/broad_mappings", + "description": "A list of terms from different schemas or terminology systems that have broader meaning.", + "from_schema": "https://w3id.org/linkml/mappings", + "imported_from": "linkml:mappings", + "mappings": [ + "http://www.w3.org/2004/02/skos/core#broadMatch" + ], + "is_a": "mappings", + "slot_uri": "http://www.w3.org/2004/02/skos/core#broadMatch", + "multivalued": true, + "owner": "CommonMetadata", + "domain_of": [ + "CommonMetadata" + ], + "range": "uriorcurie", + "@type": "SlotDefinition" + }, + { + "name": "deprecated_element_has_exact_replacement", + "definition_uri": "https://w3id.org/linkml/deprecated_element_has_exact_replacement", + "description": "When an element is deprecated, it can be automatically replaced by this uri or curie", + "from_schema": "https://w3id.org/linkml/mappings", + "imported_from": "linkml:mappings", + "mappings": [ + "http://purl.obolibrary.org/obo/IAO_0100001" + ], + "slot_uri": "https://w3id.org/linkml/deprecated_element_has_exact_replacement", + "owner": "CommonMetadata", + "domain_of": [ + "CommonMetadata" + ], + "range": "uriorcurie", + "@type": "SlotDefinition" + }, + { + "name": "deprecated_element_has_possible_replacement", + "definition_uri": "https://w3id.org/linkml/deprecated_element_has_possible_replacement", + "description": "When an element is deprecated, it can be potentially replaced by this uri or curie", + "from_schema": "https://w3id.org/linkml/mappings", + "imported_from": "linkml:mappings", + "mappings": [ + "http://www.geneontology.org/formats/oboInOwl#consider" + ], + "slot_uri": "https://w3id.org/linkml/deprecated_element_has_possible_replacement", + "owner": "CommonMetadata", + "domain_of": [ + "CommonMetadata" + ], + "range": "uriorcurie", + "@type": "SlotDefinition" + }, + { + "name": "extensions", + "definition_uri": "https://w3id.org/linkml/extensions", + "description": "a tag/text tuple attached to an arbitrary element", + "from_schema": "https://w3id.org/linkml/extensions", + "imported_from": "linkml:extensions", + "domain": "Extensible", + "slot_uri": "https://w3id.org/linkml/extensions", + "multivalued": true, + "owner": "Extensible", + "domain_of": [ + "Extension", + "Extensible" + ], + "range": "Extension", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "extension_tag", + "definition_uri": "https://w3id.org/linkml/extension_tag", + "description": "a tag associated with an extension", + "from_schema": "https://w3id.org/linkml/extensions", + "imported_from": "linkml:extensions", + "domain": "Extension", + "slot_uri": "https://w3id.org/linkml/tag", + "key": true, + "alias": "tag", + "owner": "Extension", + "domain_of": [ + "Extension" + ], + "range": "uriorcurie", + "required": true, + "@type": "SlotDefinition" + }, + { + "name": "extension_value", + "definition_uri": "https://w3id.org/linkml/extension_value", + "description": "the actual annotation", + "from_schema": "https://w3id.org/linkml/extensions", + "imported_from": "linkml:extensions", + "domain": "Extension", + "slot_uri": "https://w3id.org/linkml/value", + "alias": "value", + "owner": "Extension", + "domain_of": [ + "Extension" + ], + "range": "AnyValue", + "required": true, + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "annotations", + "definition_uri": "https://w3id.org/linkml/annotations", + "description": "a collection of tag/text tuples with the semantics of OWL Annotation", + "from_schema": "https://w3id.org/linkml/annotations", + "imported_from": "linkml:annotations", + "is_a": "extensions", + "domain": "Annotatable", + "slot_uri": "https://w3id.org/linkml/annotations", + "multivalued": true, + "owner": "Annotation", + "domain_of": [ + "Annotatable", + "Annotation" + ], + "range": "Annotation", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "unit", + "definition_uri": "https://w3id.org/linkml/unit", + "description": "an encoding of a unit", + "from_schema": "https://w3id.org/linkml/units", + "imported_from": "linkml:units", + "mappings": [ + "http://qudt.org/schema/qudt/unit" + ], + "slot_uri": "http://qudt.org/schema/qudt/unit", + "owner": "PermissibleValue", + "domain_of": [ + "TypeExpression", + "SlotExpression", + "PermissibleValue" + ], + "range": "UnitOfMeasure", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "ucum_code", + "definition_uri": "https://w3id.org/linkml/ucum_code", + "description": "associates a QUDT unit with its UCUM code (case-sensitive).", + "from_schema": "https://w3id.org/linkml/units", + "imported_from": "linkml:units", + "mappings": [ + "http://qudt.org/schema/qudt/ucumCode" + ], + "domain": "UnitOfMeasure", + "slot_uri": "http://qudt.org/schema/qudt/ucumCode", + "owner": "UnitOfMeasure", + "domain_of": [ + "UnitOfMeasure" + ], + "range": "string", + "recommended": true, + "@type": "SlotDefinition" + }, + { + "name": "derivation", + "definition_uri": "https://w3id.org/linkml/derivation", + "description": "Expression for deriving this unit from other units", + "from_schema": "https://w3id.org/linkml/units", + "imported_from": "linkml:units", + "slot_uri": "https://w3id.org/linkml/derivation", + "owner": "UnitOfMeasure", + "domain_of": [ + "UnitOfMeasure" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "has_quantity_kind", + "definition_uri": "https://w3id.org/linkml/has_quantity_kind", + "description": "Concept in a vocabulary or ontology that denotes the kind of quantity being measured, e.g. length", + "comments": [ + "Potential ontologies include but are not limited to PATO, NCIT, OBOE, qudt.quantityKind" + ], + "from_schema": "https://w3id.org/linkml/units", + "imported_from": "linkml:units", + "mappings": [ + "http://qudt.org/schema/qudt/hasQuantityKind" + ], + "slot_uri": "http://qudt.org/schema/qudt/hasQuantityKind", + "owner": "UnitOfMeasure", + "domain_of": [ + "UnitOfMeasure" + ], + "range": "uriorcurie", + "@type": "SlotDefinition" + }, + { + "name": "iec61360code", + "definition_uri": "https://w3id.org/linkml/iec61360code", + "from_schema": "https://w3id.org/linkml/units", + "imported_from": "linkml:units", + "mappings": [ + "http://qudt.org/schema/qudt/iec61360Code" + ], + "slot_uri": "http://qudt.org/schema/qudt/iec61360Code", + "owner": "UnitOfMeasure", + "domain_of": [ + "UnitOfMeasure" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "symbol", + "definition_uri": "https://w3id.org/linkml/symbol", + "description": "name of the unit encoded as a symbol", + "from_schema": "https://w3id.org/linkml/units", + "imported_from": "linkml:units", + "mappings": [ + "http://qudt.org/schema/qudt/symbol" + ], + "slot_uri": "http://qudt.org/schema/qudt/symbol", + "owner": "UnitOfMeasure", + "domain_of": [ + "UnitOfMeasure" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "abbreviation", + "definition_uri": "https://w3id.org/linkml/abbreviation", + "description": "An abbreviation for a unit is a short ASCII string that is used in place of the full name for the unit in contexts where non-ASCII characters would be problematic, or where using the abbreviation will enhance readability. When a power of a base unit needs to be expressed, such as squares this can be done using abbreviations rather than symbols (source: qudt)", + "from_schema": "https://w3id.org/linkml/units", + "imported_from": "linkml:units", + "mappings": [ + "http://qudt.org/schema/qudt/abbreviation" + ], + "slot_uri": "http://qudt.org/schema/qudt/abbreviation", + "owner": "UnitOfMeasure", + "domain_of": [ + "UnitOfMeasure" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "descriptive_name", + "definition_uri": "https://w3id.org/linkml/descriptive_name", + "description": "the spelled out name of the unit, for example, meter", + "from_schema": "https://w3id.org/linkml/units", + "imported_from": "linkml:units", + "mappings": [ + "http://www.w3.org/2000/01/rdf-schema#label" + ], + "slot_uri": "http://www.w3.org/2000/01/rdf-schema#label", + "owner": "UnitOfMeasure", + "domain_of": [ + "UnitOfMeasure" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "schema_definition_name", + "definition_uri": "https://w3id.org/linkml/name", + "description": "a unique name for the schema that is both human-readable and consists of only characters from the NCName set", + "in_subset": [ + "SpecificationSubset", + "OwlProfile", + "MinimalSubset", + "BasicSubset", + "RelationalModelProfile", + "ObjectOrientedProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://en.wikipedia.org/wiki/Data_element_name", + "https://linkml.io/linkml/faq/modeling.html#why-are-my-class-names-translated-to-camelcase" + ], + "aliases": [ + "short name", + "unique name" + ], + "mappings": [ + "http://www.w3.org/2000/01/rdf-schema#label" + ], + "exact_mappings": [ + "http://schema.org/name" + ], + "rank": 1, + "is_a": "name", + "domain": "SchemaDefinition", + "slot_uri": "http://www.w3.org/2000/01/rdf-schema#label", + "identifier": true, + "alias": "name", + "owner": "SchemaDefinition", + "domain_of": [ + "SchemaDefinition" + ], + "is_usage_slot": true, + "usage_slot_name": "name", + "range": "ncname", + "required": true, + "@type": "SlotDefinition" + }, + { + "name": "type_expression_any_of", + "definition_uri": "https://w3id.org/linkml/any_of", + "description": "holds if at least one of the expressions hold", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://w3id.org/linkml/docs/specification/05validation/#rules" + ], + "exact_mappings": [ + "http://www.w3.org/ns/shacl#or" + ], + "rank": 101, + "is_a": "any_of", + "domain": "TypeExpression", + "slot_uri": "https://w3id.org/linkml/any_of", + "multivalued": true, + "alias": "any_of", + "owner": "TypeExpression", + "domain_of": [ + "TypeExpression" + ], + "is_usage_slot": true, + "usage_slot_name": "any_of", + "range": "AnonymousTypeExpression", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "type_expression_all_of", + "definition_uri": "https://w3id.org/linkml/all_of", + "description": "holds if all of the expressions hold", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://w3id.org/linkml/docs/specification/05validation/#rules" + ], + "exact_mappings": [ + "http://www.w3.org/ns/shacl#and" + ], + "rank": 107, + "is_a": "all_of", + "domain": "TypeExpression", + "slot_uri": "https://w3id.org/linkml/all_of", + "multivalued": true, + "alias": "all_of", + "owner": "TypeExpression", + "domain_of": [ + "TypeExpression" + ], + "is_usage_slot": true, + "usage_slot_name": "all_of", + "range": "AnonymousTypeExpression", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "type_expression_exactly_one_of", + "definition_uri": "https://w3id.org/linkml/exactly_one_of", + "description": "holds if only one of the expressions hold", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://w3id.org/linkml/docs/specification/05validation/#rules" + ], + "exact_mappings": [ + "http://www.w3.org/ns/shacl#xone" + ], + "rank": 103, + "is_a": "exactly_one_of", + "domain": "TypeExpression", + "slot_uri": "https://w3id.org/linkml/exactly_one_of", + "multivalued": true, + "alias": "exactly_one_of", + "owner": "TypeExpression", + "domain_of": [ + "TypeExpression" + ], + "is_usage_slot": true, + "usage_slot_name": "exactly_one_of", + "range": "AnonymousTypeExpression", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "type_expression_none_of", + "definition_uri": "https://w3id.org/linkml/none_of", + "description": "holds if none of the expressions hold", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://w3id.org/linkml/docs/specification/05validation/#rules" + ], + "exact_mappings": [ + "http://www.w3.org/ns/shacl#not" + ], + "rank": 105, + "is_a": "none_of", + "domain": "TypeExpression", + "slot_uri": "https://w3id.org/linkml/none_of", + "multivalued": true, + "alias": "none_of", + "owner": "TypeExpression", + "domain_of": [ + "TypeExpression" + ], + "is_usage_slot": true, + "usage_slot_name": "none_of", + "range": "AnonymousTypeExpression", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "type_definition_union_of", + "definition_uri": "https://w3id.org/linkml/union_of", + "description": "indicates that the domain element consists exactly of the members of the element in the range.", + "notes": [ + "this only applies in the OWL generation" + ], + "in_subset": [ + "SpecificationSubset", + "OwlProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "is_a": "union_of", + "domain": "TypeDefinition", + "slot_uri": "https://w3id.org/linkml/union_of", + "multivalued": true, + "alias": "union_of", + "owner": "TypeDefinition", + "domain_of": [ + "TypeDefinition" + ], + "is_usage_slot": true, + "usage_slot_name": "union_of", + "range": "TypeDefinition", + "@type": "SlotDefinition" + }, + { + "name": "structured_alias_categories", + "definition_uri": "https://w3id.org/linkml/categories", + "description": "The category or categories of an alias. This can be drawn from any relevant vocabulary", + "comments": [ + "if you wish to use uncontrolled terms or terms that lack identifiers then use the keywords element" + ], + "examples": [ + { + "value": "https://w3id.org/mod#acronym", + "description": "An acronym", + "@type": "Example" + } + ], + "in_subset": [ + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "mappings": [ + "http://purl.org/dc/terms/subject" + ], + "is_a": "categories", + "singular_name": "category", + "domain": "StructuredAlias", + "slot_uri": "http://purl.org/dc/terms/subject", + "multivalued": true, + "alias": "categories", + "owner": "StructuredAlias", + "domain_of": [ + "StructuredAlias" + ], + "is_usage_slot": true, + "usage_slot_name": "categories", + "range": "uriorcurie", + "@type": "SlotDefinition" + }, + { + "name": "path_expression_followed_by", + "definition_uri": "https://w3id.org/linkml/followed_by", + "description": "in a sequential list, this indicates the next member", + "from_schema": "https://w3id.org/linkml/meta", + "is_a": "followed_by", + "domain": "PathExpression", + "slot_uri": "https://w3id.org/linkml/followed_by", + "alias": "followed_by", + "owner": "PathExpression", + "domain_of": [ + "PathExpression" + ], + "is_usage_slot": true, + "usage_slot_name": "followed_by", + "range": "PathExpression", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "path_expression_any_of", + "definition_uri": "https://w3id.org/linkml/any_of", + "description": "holds if at least one of the expressions hold", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://w3id.org/linkml/docs/specification/05validation/#rules" + ], + "exact_mappings": [ + "http://www.w3.org/ns/shacl#or" + ], + "rank": 101, + "is_a": "any_of", + "domain": "PathExpression", + "slot_uri": "https://w3id.org/linkml/any_of", + "multivalued": true, + "alias": "any_of", + "owner": "PathExpression", + "domain_of": [ + "PathExpression" + ], + "is_usage_slot": true, + "usage_slot_name": "any_of", + "range": "PathExpression", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "path_expression_exactly_one_of", + "definition_uri": "https://w3id.org/linkml/exactly_one_of", + "description": "holds if only one of the expressions hold", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://w3id.org/linkml/docs/specification/05validation/#rules" + ], + "exact_mappings": [ + "http://www.w3.org/ns/shacl#xone" + ], + "rank": 103, + "is_a": "exactly_one_of", + "domain": "PathExpression", + "slot_uri": "https://w3id.org/linkml/exactly_one_of", + "multivalued": true, + "alias": "exactly_one_of", + "owner": "PathExpression", + "domain_of": [ + "PathExpression" + ], + "is_usage_slot": true, + "usage_slot_name": "exactly_one_of", + "range": "PathExpression", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "path_expression_none_of", + "definition_uri": "https://w3id.org/linkml/none_of", + "description": "holds if none of the expressions hold", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://w3id.org/linkml/docs/specification/05validation/#rules" + ], + "exact_mappings": [ + "http://www.w3.org/ns/shacl#not" + ], + "rank": 105, + "is_a": "none_of", + "domain": "PathExpression", + "slot_uri": "https://w3id.org/linkml/none_of", + "multivalued": true, + "alias": "none_of", + "owner": "PathExpression", + "domain_of": [ + "PathExpression" + ], + "is_usage_slot": true, + "usage_slot_name": "none_of", + "range": "PathExpression", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "path_expression_all_of", + "definition_uri": "https://w3id.org/linkml/all_of", + "description": "holds if all of the expressions hold", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://w3id.org/linkml/docs/specification/05validation/#rules" + ], + "exact_mappings": [ + "http://www.w3.org/ns/shacl#and" + ], + "rank": 107, + "is_a": "all_of", + "domain": "PathExpression", + "slot_uri": "https://w3id.org/linkml/all_of", + "multivalued": true, + "alias": "all_of", + "owner": "PathExpression", + "domain_of": [ + "PathExpression" + ], + "is_usage_slot": true, + "usage_slot_name": "all_of", + "range": "PathExpression", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "slot_expression_any_of", + "definition_uri": "https://w3id.org/linkml/any_of", + "description": "holds if at least one of the expressions hold", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://w3id.org/linkml/docs/specification/05validation/#rules" + ], + "exact_mappings": [ + "http://www.w3.org/ns/shacl#or" + ], + "rank": 101, + "is_a": "any_of", + "domain": "SlotExpression", + "slot_uri": "https://w3id.org/linkml/any_of", + "multivalued": true, + "alias": "any_of", + "owner": "SlotExpression", + "domain_of": [ + "SlotExpression" + ], + "is_usage_slot": true, + "usage_slot_name": "any_of", + "range": "AnonymousSlotExpression", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "slot_expression_all_of", + "definition_uri": "https://w3id.org/linkml/all_of", + "description": "holds if all of the expressions hold", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://w3id.org/linkml/docs/specification/05validation/#rules" + ], + "exact_mappings": [ + "http://www.w3.org/ns/shacl#and" + ], + "rank": 107, + "is_a": "all_of", + "domain": "SlotExpression", + "slot_uri": "https://w3id.org/linkml/all_of", + "multivalued": true, + "alias": "all_of", + "owner": "SlotExpression", + "domain_of": [ + "SlotExpression" + ], + "is_usage_slot": true, + "usage_slot_name": "all_of", + "range": "AnonymousSlotExpression", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "slot_expression_exactly_one_of", + "definition_uri": "https://w3id.org/linkml/exactly_one_of", + "description": "holds if only one of the expressions hold", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://w3id.org/linkml/docs/specification/05validation/#rules" + ], + "exact_mappings": [ + "http://www.w3.org/ns/shacl#xone" + ], + "rank": 103, + "is_a": "exactly_one_of", + "domain": "SlotExpression", + "slot_uri": "https://w3id.org/linkml/exactly_one_of", + "multivalued": true, + "alias": "exactly_one_of", + "owner": "SlotExpression", + "domain_of": [ + "SlotExpression" + ], + "is_usage_slot": true, + "usage_slot_name": "exactly_one_of", + "range": "AnonymousSlotExpression", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "slot_expression_none_of", + "definition_uri": "https://w3id.org/linkml/none_of", + "description": "holds if none of the expressions hold", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://w3id.org/linkml/docs/specification/05validation/#rules" + ], + "exact_mappings": [ + "http://www.w3.org/ns/shacl#not" + ], + "rank": 105, + "is_a": "none_of", + "domain": "SlotExpression", + "slot_uri": "https://w3id.org/linkml/none_of", + "multivalued": true, + "alias": "none_of", + "owner": "SlotExpression", + "domain_of": [ + "SlotExpression" + ], + "is_usage_slot": true, + "usage_slot_name": "none_of", + "range": "AnonymousSlotExpression", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "slot_definition_is_a", + "definition_uri": "https://w3id.org/linkml/is_a", + "description": "A primary parent slot from which inheritable metaslots are propagated", + "in_subset": [ + "SpecificationSubset", + "BasicSubset", + "ObjectOrientedProfile", + "OwlProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "rank": 11, + "is_a": "is_a", + "abstract": true, + "domain": "SlotDefinition", + "slot_uri": "https://w3id.org/linkml/is_a", + "alias": "is_a", + "owner": "SlotDefinition", + "domain_of": [ + "SlotDefinition" + ], + "is_usage_slot": true, + "usage_slot_name": "is_a", + "range": "SlotDefinition", + "@type": "SlotDefinition" + }, + { + "name": "slot_definition_mixins", + "definition_uri": "https://w3id.org/linkml/mixins", + "description": "A collection of secondary parent mixin slots from which inheritable metaslots are propagated", + "comments": [ + "mixins act in the same way as parents (is_a). They allow a model to have a primary strict hierarchy, while keeping the benefits of multiple inheritance" + ], + "in_subset": [ + "SpecificationSubset", + "BasicSubset", + "ObjectOrientedProfile", + "OwlProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://en.wikipedia.org/wiki/Mixin" + ], + "aliases": [ + "traits" + ], + "rank": 13, + "is_a": "mixins", + "domain": "SlotDefinition", + "slot_uri": "https://w3id.org/linkml/mixins", + "multivalued": true, + "alias": "mixins", + "owner": "SlotDefinition", + "domain_of": [ + "SlotDefinition" + ], + "is_usage_slot": true, + "usage_slot_name": "mixins", + "range": "SlotDefinition", + "@type": "SlotDefinition" + }, + { + "name": "slot_definition_apply_to", + "definition_uri": "https://w3id.org/linkml/apply_to", + "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.", + "from_schema": "https://w3id.org/linkml/meta", + "status": "testing", + "is_a": "apply_to", + "domain": "SlotDefinition", + "slot_uri": "https://w3id.org/linkml/apply_to", + "multivalued": true, + "alias": "apply_to", + "owner": "SlotDefinition", + "domain_of": [ + "SlotDefinition" + ], + "is_usage_slot": true, + "usage_slot_name": "apply_to", + "range": "SlotDefinition", + "@type": "SlotDefinition" + }, + { + "name": "slot_definition_disjoint_with", + "definition_uri": "https://w3id.org/linkml/disjoint_with", + "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", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "is_a": "disjoint_with", + "domain": "SlotDefinition", + "slot_uri": "https://w3id.org/linkml/disjoint_with", + "multivalued": true, + "alias": "disjoint_with", + "owner": "SlotDefinition", + "domain_of": [ + "SlotDefinition" + ], + "is_usage_slot": true, + "usage_slot_name": "disjoint_with", + "range": "SlotDefinition", + "@type": "SlotDefinition" + }, + { + "name": "slot_definition_union_of", + "definition_uri": "https://w3id.org/linkml/union_of", + "description": "indicates that the domain element consists exactly of the members of the element in the range.", + "notes": [ + "this only applies in the OWL generation" + ], + "in_subset": [ + "SpecificationSubset", + "OwlProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "is_a": "union_of", + "domain": "SlotDefinition", + "slot_uri": "https://w3id.org/linkml/union_of", + "multivalued": true, + "alias": "union_of", + "owner": "SlotDefinition", + "domain_of": [ + "SlotDefinition" + ], + "is_usage_slot": true, + "usage_slot_name": "union_of", + "range": "SlotDefinition", + "@type": "SlotDefinition" + }, + { + "name": "class_expression_any_of", + "definition_uri": "https://w3id.org/linkml/any_of", + "description": "holds if at least one of the expressions hold", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://w3id.org/linkml/docs/specification/05validation/#rules" + ], + "exact_mappings": [ + "http://www.w3.org/ns/shacl#or" + ], + "rank": 101, + "is_a": "any_of", + "domain": "ClassExpression", + "slot_uri": "https://w3id.org/linkml/any_of", + "multivalued": true, + "alias": "any_of", + "owner": "ClassExpression", + "domain_of": [ + "ClassExpression" + ], + "is_usage_slot": true, + "usage_slot_name": "any_of", + "range": "AnonymousClassExpression", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "class_expression_all_of", + "definition_uri": "https://w3id.org/linkml/all_of", + "description": "holds if all of the expressions hold", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://w3id.org/linkml/docs/specification/05validation/#rules" + ], + "exact_mappings": [ + "http://www.w3.org/ns/shacl#and" + ], + "rank": 107, + "is_a": "all_of", + "domain": "ClassExpression", + "slot_uri": "https://w3id.org/linkml/all_of", + "multivalued": true, + "alias": "all_of", + "owner": "ClassExpression", + "domain_of": [ + "ClassExpression" + ], + "is_usage_slot": true, + "usage_slot_name": "all_of", + "range": "AnonymousClassExpression", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "class_expression_exactly_one_of", + "definition_uri": "https://w3id.org/linkml/exactly_one_of", + "description": "holds if only one of the expressions hold", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://w3id.org/linkml/docs/specification/05validation/#rules" + ], + "exact_mappings": [ + "http://www.w3.org/ns/shacl#xone" + ], + "rank": 103, + "is_a": "exactly_one_of", + "domain": "ClassExpression", + "slot_uri": "https://w3id.org/linkml/exactly_one_of", + "multivalued": true, + "alias": "exactly_one_of", + "owner": "ClassExpression", + "domain_of": [ + "ClassExpression" + ], + "is_usage_slot": true, + "usage_slot_name": "exactly_one_of", + "range": "AnonymousClassExpression", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "class_expression_none_of", + "definition_uri": "https://w3id.org/linkml/none_of", + "description": "holds if none of the expressions hold", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://w3id.org/linkml/docs/specification/05validation/#rules" + ], + "exact_mappings": [ + "http://www.w3.org/ns/shacl#not" + ], + "rank": 105, + "is_a": "none_of", + "domain": "ClassExpression", + "slot_uri": "https://w3id.org/linkml/none_of", + "multivalued": true, + "alias": "none_of", + "owner": "ClassExpression", + "domain_of": [ + "ClassExpression" + ], + "is_usage_slot": true, + "usage_slot_name": "none_of", + "range": "AnonymousClassExpression", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "class_definition_is_a", + "definition_uri": "https://w3id.org/linkml/is_a", + "description": "A primary parent class from which inheritable metaslots are propagated", + "in_subset": [ + "SpecificationSubset", + "BasicSubset", + "ObjectOrientedProfile", + "OwlProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "rank": 11, + "is_a": "is_a", + "abstract": true, + "domain": "ClassDefinition", + "slot_uri": "https://w3id.org/linkml/is_a", + "alias": "is_a", + "owner": "ClassDefinition", + "domain_of": [ + "ClassDefinition" + ], + "is_usage_slot": true, + "usage_slot_name": "is_a", + "range": "ClassDefinition", + "@type": "SlotDefinition" + }, + { + "name": "class_definition_mixins", + "definition_uri": "https://w3id.org/linkml/mixins", + "description": "A collection of secondary parent mixin classes from which inheritable metaslots are propagated", + "comments": [ + "mixins act in the same way as parents (is_a). They allow a model to have a primary strict hierarchy, while keeping the benefits of multiple inheritance" + ], + "in_subset": [ + "SpecificationSubset", + "BasicSubset", + "ObjectOrientedProfile", + "OwlProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://en.wikipedia.org/wiki/Mixin" + ], + "aliases": [ + "traits" + ], + "rank": 13, + "is_a": "mixins", + "domain": "ClassDefinition", + "slot_uri": "https://w3id.org/linkml/mixins", + "multivalued": true, + "alias": "mixins", + "owner": "ClassDefinition", + "domain_of": [ + "ClassDefinition" + ], + "is_usage_slot": true, + "usage_slot_name": "mixins", + "range": "ClassDefinition", + "@type": "SlotDefinition" + }, + { + "name": "class_definition_apply_to", + "definition_uri": "https://w3id.org/linkml/apply_to", + "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.", + "from_schema": "https://w3id.org/linkml/meta", + "status": "testing", + "is_a": "apply_to", + "domain": "ClassDefinition", + "slot_uri": "https://w3id.org/linkml/apply_to", + "multivalued": true, + "alias": "apply_to", + "owner": "ClassDefinition", + "domain_of": [ + "ClassDefinition" + ], + "is_usage_slot": true, + "usage_slot_name": "apply_to", + "range": "ClassDefinition", + "@type": "SlotDefinition" + }, + { + "name": "class_definition_rules", + "definition_uri": "https://w3id.org/linkml/rules", + "description": "the collection of rules that apply to all members of this class", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "mappings": [ + "http://www.w3.org/ns/shacl#rule" + ], + "is_a": "rules", + "domain": "ClassDefinition", + "slot_uri": "http://www.w3.org/ns/shacl#rule", + "multivalued": true, + "alias": "rules", + "owner": "ClassDefinition", + "domain_of": [ + "ClassDefinition" + ], + "is_usage_slot": true, + "usage_slot_name": "rules", + "range": "ClassRule", + "inlined": true, + "@type": "SlotDefinition" + }, + { + "name": "class_definition_disjoint_with", + "definition_uri": "https://w3id.org/linkml/disjoint_with", + "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", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "is_a": "disjoint_with", + "domain": "ClassDefinition", + "slot_uri": "https://w3id.org/linkml/disjoint_with", + "multivalued": true, + "alias": "disjoint_with", + "owner": "ClassDefinition", + "domain_of": [ + "ClassDefinition" + ], + "is_usage_slot": true, + "usage_slot_name": "disjoint_with", + "range": "ClassDefinition", + "@type": "SlotDefinition" + }, + { + "name": "class_definition_union_of", + "definition_uri": "https://w3id.org/linkml/union_of", + "description": "indicates that the domain element consists exactly of the members of the element in the range.", + "notes": [ + "this only applies in the OWL generation" + ], + "in_subset": [ + "SpecificationSubset", + "OwlProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "is_a": "union_of", + "domain": "ClassDefinition", + "slot_uri": "https://w3id.org/linkml/union_of", + "multivalued": true, + "alias": "union_of", + "owner": "ClassDefinition", + "domain_of": [ + "ClassDefinition" + ], + "is_usage_slot": true, + "usage_slot_name": "union_of", + "range": "ClassDefinition", + "@type": "SlotDefinition" + }, + { + "name": "permissible_value_is_a", + "definition_uri": "https://w3id.org/linkml/is_a", + "description": "A primary parent class or slot from which inheritable metaslots are propagated from. 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", + "in_subset": [ + "SpecificationSubset", + "BasicSubset", + "ObjectOrientedProfile", + "OwlProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "rank": 11, + "is_a": "is_a", + "abstract": true, + "domain": "PermissibleValue", + "slot_uri": "https://w3id.org/linkml/is_a", + "alias": "is_a", + "owner": "PermissibleValue", + "domain_of": [ + "PermissibleValue" + ], + "is_usage_slot": true, + "usage_slot_name": "is_a", + "range": "PermissibleValue", + "@type": "SlotDefinition" + }, + { + "name": "permissible_value_mixins", + "definition_uri": "https://w3id.org/linkml/mixins", + "description": "A collection of secondary parent classes or slots from which inheritable metaslots are propagated from.", + "comments": [ + "mixins act in the same way as parents (is_a). They allow a model to have a primary strict hierarchy, while keeping the benefits of multiple inheritance" + ], + "in_subset": [ + "SpecificationSubset", + "BasicSubset", + "ObjectOrientedProfile", + "OwlProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://en.wikipedia.org/wiki/Mixin" + ], + "aliases": [ + "traits" + ], + "rank": 13, + "is_a": "mixins", + "domain": "PermissibleValue", + "slot_uri": "https://w3id.org/linkml/mixins", + "multivalued": true, + "alias": "mixins", + "owner": "PermissibleValue", + "domain_of": [ + "PermissibleValue" + ], + "is_usage_slot": true, + "usage_slot_name": "mixins", + "range": "PermissibleValue", + "@type": "SlotDefinition" + }, + { + "name": "UnitOfMeasure_exact_mappings", + "definition_uri": "https://w3id.org/linkml/exact_mappings", + "description": "Used to link a unit to equivalent concepts in ontologies such as UO, SNOMED, OEM, OBOE, NCIT", + "comments": [ + "Do not use this to encode mappings to systems for which a dedicated field exists" + ], + "from_schema": "https://w3id.org/linkml/mappings", + "imported_from": "linkml:units", + "mappings": [ + "http://www.w3.org/2004/02/skos/core#exactMatch" + ], + "is_a": "exact_mappings", + "domain": "UnitOfMeasure", + "slot_uri": "http://www.w3.org/2004/02/skos/core#exactMatch", + "multivalued": true, + "alias": "exact mappings", + "owner": "UnitOfMeasure", + "domain_of": [ + "UnitOfMeasure" + ], + "is_usage_slot": true, + "usage_slot_name": "exact mappings", + "range": "uriorcurie", + "@type": "SlotDefinition" + } + ], + "classes": [ + { + "name": "Anything", + "definition_uri": "https://w3id.org/linkml/Anything", + "from_schema": "https://w3id.org/linkml/meta", + "mappings": [ + "linkml:Any" + ], + "slot_usage": {}, + "class_uri": "https://w3id.org/linkml/Any", + "@type": "ClassDefinition" + }, + { + "name": "CommonMetadata", + "definition_uri": "https://w3id.org/linkml/CommonMetadata", + "description": "Generic metadata shared across definitions", + "in_subset": [ + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "mixin": true, + "slots": [ + "description", + "alt_descriptions", + "title", + "deprecated", + "todos", + "notes", + "comments", + "examples", + "in_subset", + "from_schema", + "imported_from", + "source", + "in_language", + "see_also", + "deprecated_element_has_exact_replacement", + "deprecated_element_has_possible_replacement", + "aliases", + "structured_aliases", + "mappings", + "exact_mappings", + "close_mappings", + "related_mappings", + "narrow_mappings", + "broad_mappings", + "created_by", + "contributors", + "created_on", + "last_updated_on", + "modified_by", + "status", + "rank", + "categories", + "keywords" + ], + "slot_usage": {}, + "class_uri": "https://w3id.org/linkml/CommonMetadata", + "@type": "ClassDefinition" + }, + { + "name": "Element", + "definition_uri": "https://w3id.org/linkml/Element", + "description": "A named element in the model", + "in_subset": [ + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://en.wikipedia.org/wiki/Data_element" + ], + "aliases": [ + "data element", + "object" + ], + "abstract": true, + "mixins": [ + "Extensible", + "Annotatable", + "CommonMetadata" + ], + "slots": [ + "name", + "id_prefixes", + "definition_uri", + "local_names", + "conforms_to", + "implements", + "instantiates", + "extensions", + "annotations", + "description", + "alt_descriptions", + "title", + "deprecated", + "todos", + "notes", + "comments", + "examples", + "in_subset", + "from_schema", + "imported_from", + "source", + "in_language", + "see_also", + "deprecated_element_has_exact_replacement", + "deprecated_element_has_possible_replacement", + "aliases", + "structured_aliases", + "mappings", + "exact_mappings", + "close_mappings", + "related_mappings", + "narrow_mappings", + "broad_mappings", + "created_by", + "contributors", + "created_on", + "last_updated_on", + "modified_by", + "status", + "rank", + "categories", + "keywords" + ], + "slot_usage": {}, + "class_uri": "https://w3id.org/linkml/Element", + "@type": "ClassDefinition" + }, + { + "name": "SchemaDefinition", + "definition_uri": "https://w3id.org/linkml/SchemaDefinition", + "description": "A collection of definitions that make up a schema or a data model.", + "in_subset": [ + "SpecificationSubset", + "MinimalSubset", + "BasicSubset", + "RelationalModelProfile", + "ObjectOrientedProfile", + "OwlProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://en.wikipedia.org/wiki/Data_dictionary" + ], + "aliases": [ + "data dictionary", + "data model", + "information model", + "logical model", + "schema", + "model" + ], + "close_mappings": [ + "qb:ComponentSet", + "owl:Ontology" + ], + "rank": 1, + "is_a": "Element", + "slots": [ + "id_prefixes", + "definition_uri", + "local_names", + "conforms_to", + "implements", + "instantiates", + "extensions", + "annotations", + "description", + "alt_descriptions", + "title", + "deprecated", + "todos", + "notes", + "comments", + "examples", + "in_subset", + "from_schema", + "imported_from", + "source", + "in_language", + "see_also", + "deprecated_element_has_exact_replacement", + "deprecated_element_has_possible_replacement", + "aliases", + "structured_aliases", + "mappings", + "exact_mappings", + "close_mappings", + "related_mappings", + "narrow_mappings", + "broad_mappings", + "created_by", + "contributors", + "created_on", + "last_updated_on", + "modified_by", + "status", + "rank", + "categories", + "keywords", + "id", + "version", + "imports", + "license", + "prefixes", + "emit_prefixes", + "default_curi_maps", + "default_prefix", + "default_range", + "subsets", + "types", + "enums", + "slot_definitions", + "classes", + "metamodel_version", + "source_file", + "source_file_date", + "source_file_size", + "generation_date", + "slot_names_unique", + "settings", + "schema_definition_name" + ], + "slot_usage": {}, + "class_uri": "https://w3id.org/linkml/SchemaDefinition", + "tree_root": true, + "@type": "ClassDefinition" + }, + { + "name": "TypeExpression", + "definition_uri": "https://w3id.org/linkml/TypeExpression", + "description": "An abstract class grouping named types and anonymous type expressions", + "from_schema": "https://w3id.org/linkml/meta", + "is_a": "Expression", + "mixin": true, + "slots": [ + "pattern", + "structured_pattern", + "unit", + "implicit_prefix", + "equals_string", + "equals_string_in", + "equals_number", + "minimum_value", + "maximum_value", + "type_expression_none_of", + "type_expression_exactly_one_of", + "type_expression_any_of", + "type_expression_all_of" + ], + "slot_usage": {}, + "class_uri": "https://w3id.org/linkml/TypeExpression", + "@type": "ClassDefinition" + }, + { + "name": "AnonymousTypeExpression", + "definition_uri": "https://w3id.org/linkml/AnonymousTypeExpression", + "description": "A type expression that is not a top-level named type definition. Used for nesting.", + "from_schema": "https://w3id.org/linkml/meta", + "mixins": [ + "TypeExpression" + ], + "slots": [ + "pattern", + "structured_pattern", + "unit", + "implicit_prefix", + "equals_string", + "equals_string_in", + "equals_number", + "minimum_value", + "maximum_value", + "type_expression_none_of", + "type_expression_exactly_one_of", + "type_expression_any_of", + "type_expression_all_of" + ], + "slot_usage": {}, + "class_uri": "https://w3id.org/linkml/AnonymousTypeExpression", + "@type": "ClassDefinition" + }, + { + "name": "TypeDefinition", + "definition_uri": "https://w3id.org/linkml/TypeDefinition", + "description": "an element that whose instances are atomic scalar values that can be mapped to primitive types", + "in_subset": [ + "SpecificationSubset", + "BasicSubset", + "OwlProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "rank": 4, + "is_a": "Element", + "mixins": [ + "TypeExpression" + ], + "slots": [ + "name", + "id_prefixes", + "definition_uri", + "local_names", + "conforms_to", + "implements", + "instantiates", + "extensions", + "annotations", + "description", + "alt_descriptions", + "title", + "deprecated", + "todos", + "notes", + "comments", + "examples", + "in_subset", + "from_schema", + "imported_from", + "source", + "in_language", + "see_also", + "deprecated_element_has_exact_replacement", + "deprecated_element_has_possible_replacement", + "aliases", + "structured_aliases", + "mappings", + "exact_mappings", + "close_mappings", + "related_mappings", + "narrow_mappings", + "broad_mappings", + "created_by", + "contributors", + "created_on", + "last_updated_on", + "modified_by", + "status", + "rank", + "categories", + "keywords", + "typeof", + "base", + "type_uri", + "repr", + "type_definition_union_of", + "pattern", + "structured_pattern", + "unit", + "implicit_prefix", + "equals_string", + "equals_string_in", + "equals_number", + "minimum_value", + "maximum_value", + "type_expression_none_of", + "type_expression_exactly_one_of", + "type_expression_any_of", + "type_expression_all_of" + ], + "slot_usage": {}, + "class_uri": "https://w3id.org/linkml/TypeDefinition", + "@type": "ClassDefinition" + }, + { + "name": "SubsetDefinition", + "definition_uri": "https://w3id.org/linkml/SubsetDefinition", + "description": "an element that can be used to group other metamodel elements", + "in_subset": [ + "SpecificationSubset", + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "rank": 6, + "is_a": "Element", + "slots": [ + "name", + "id_prefixes", + "definition_uri", + "local_names", + "conforms_to", + "implements", + "instantiates", + "extensions", + "annotations", + "description", + "alt_descriptions", + "title", + "deprecated", + "todos", + "notes", + "comments", + "examples", + "in_subset", + "from_schema", + "imported_from", + "source", + "in_language", + "see_also", + "deprecated_element_has_exact_replacement", + "deprecated_element_has_possible_replacement", + "aliases", + "structured_aliases", + "mappings", + "exact_mappings", + "close_mappings", + "related_mappings", + "narrow_mappings", + "broad_mappings", + "created_by", + "contributors", + "created_on", + "last_updated_on", + "modified_by", + "status", + "rank", + "categories", + "keywords" + ], + "slot_usage": {}, + "class_uri": "https://w3id.org/linkml/SubsetDefinition", + "@type": "ClassDefinition" + }, + { + "name": "Definition", + "definition_uri": "https://w3id.org/linkml/Definition", + "description": "abstract base class for core metaclasses", + "in_subset": [ + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "see_also": [ + "https://en.wikipedia.org/wiki/Data_element_definition" + ], + "is_a": "Element", + "abstract": true, + "slots": [ + "name", + "id_prefixes", + "definition_uri", + "local_names", + "conforms_to", + "implements", + "instantiates", + "extensions", + "annotations", + "description", + "alt_descriptions", + "title", + "deprecated", + "todos", + "notes", + "comments", + "examples", + "in_subset", + "from_schema", + "imported_from", + "source", + "in_language", + "see_also", + "deprecated_element_has_exact_replacement", + "deprecated_element_has_possible_replacement", + "aliases", + "structured_aliases", + "mappings", + "exact_mappings", + "close_mappings", + "related_mappings", + "narrow_mappings", + "broad_mappings", + "created_by", + "contributors", + "created_on", + "last_updated_on", + "modified_by", + "status", + "rank", + "categories", + "keywords", + "is_a", + "abstract", + "mixin", + "mixins", + "apply_to", + "values_from", + "string_serialization" + ], + "slot_usage": {}, + "class_uri": "https://w3id.org/linkml/Definition", + "@type": "ClassDefinition" + }, + { + "name": "EnumExpression", + "definition_uri": "https://w3id.org/linkml/EnumExpression", + "description": "An expression that constrains the range of a slot", + "from_schema": "https://w3id.org/linkml/meta", + "is_a": "Expression", + "slots": [ + "code_set", + "code_set_tag", + "code_set_version", + "pv_formula", + "permissible_values", + "include", + "minus", + "inherits", + "reachable_from", + "matches", + "concepts" + ], + "slot_usage": {}, + "class_uri": "https://w3id.org/linkml/EnumExpression", + "@type": "ClassDefinition" + }, + { + "name": "AnonymousEnumExpression", + "definition_uri": "https://w3id.org/linkml/AnonymousEnumExpression", + "description": "An enum_expression that is not named", + "from_schema": "https://w3id.org/linkml/meta", + "mixins": [ + "EnumExpression" + ], + "slots": [ + "code_set", + "code_set_tag", + "code_set_version", + "pv_formula", + "permissible_values", + "include", + "minus", + "inherits", + "reachable_from", + "matches", + "concepts" + ], + "slot_usage": {}, + "class_uri": "https://w3id.org/linkml/AnonymousEnumExpression", + "@type": "ClassDefinition" + }, + { + "name": "EnumDefinition", + "definition_uri": "https://w3id.org/linkml/EnumDefinition", + "description": "an element whose instances must be drawn from a specified set of permissible values", + "in_subset": [ + "SpecificationSubset", + "BasicSubset", + "RelationalModelProfile", + "ObjectOrientedProfile", + "OwlProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "aliases": [ + "enum", + "value set", + "term set", + "concept set", + "Terminology Value Set", + "answer list", + "value domain" + ], + "exact_mappings": [ + "qb:HierarchicalCodeList", + "NCIT:C113497", + "cdisc:ValueDomain" + ], + "close_mappings": [ + "skos:ConceptScheme" + ], + "rank": 5, + "is_a": "Definition", + "mixins": [ + "EnumExpression" + ], + "slots": [ + "name", + "id_prefixes", + "definition_uri", + "local_names", + "conforms_to", + "implements", + "instantiates", + "extensions", + "annotations", + "description", + "alt_descriptions", + "title", + "deprecated", + "todos", + "notes", + "comments", + "examples", + "in_subset", + "from_schema", + "imported_from", + "source", + "in_language", + "see_also", + "deprecated_element_has_exact_replacement", + "deprecated_element_has_possible_replacement", + "aliases", + "structured_aliases", + "mappings", + "exact_mappings", + "close_mappings", + "related_mappings", + "narrow_mappings", + "broad_mappings", + "created_by", + "contributors", + "created_on", + "last_updated_on", + "modified_by", + "status", + "rank", + "categories", + "keywords", + "is_a", + "abstract", + "mixin", + "mixins", + "apply_to", + "values_from", + "string_serialization", + "enum_uri", + "code_set", + "code_set_tag", + "code_set_version", + "pv_formula", + "permissible_values", + "include", + "minus", + "inherits", + "reachable_from", + "matches", + "concepts" + ], + "slot_usage": {}, + "class_uri": "https://w3id.org/linkml/EnumDefinition", + "@type": "ClassDefinition" + }, + { + "name": "MatchQuery", + "definition_uri": "https://w3id.org/linkml/MatchQuery", + "description": "A query that is used on an enum expression to dynamically obtain a set of permissivle values via a query that matches on properties of the external concepts.", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "slots": [ + "identifier_pattern", + "source_ontology" + ], + "slot_usage": {}, + "class_uri": "https://w3id.org/linkml/MatchQuery", + "@type": "ClassDefinition" + }, + { + "name": "ReachabilityQuery", + "definition_uri": "https://w3id.org/linkml/ReachabilityQuery", + "description": "A query that is used on an enum expression to dynamically obtain a set of permissible values via walking from a set of source nodes to a set of descendants or ancestors over a set of relationship types.", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "slots": [ + "source_ontology", + "source_nodes", + "relationship_types", + "is_direct", + "include_self", + "traverse_up" + ], + "slot_usage": {}, + "class_uri": "https://w3id.org/linkml/ReachabilityQuery", + "@type": "ClassDefinition" + }, + { + "name": "StructuredAlias", + "definition_uri": "https://w3id.org/linkml/StructuredAlias", + "description": "object that contains meta data about a synonym or alias including where it came from (source) and its scope (narrow, broad, etc.)", + "from_schema": "https://w3id.org/linkml/meta", + "mappings": [ + "skosxl:Label" + ], + "mixins": [ + "Expression", + "Extensible", + "Annotatable", + "CommonMetadata" + ], + "slots": [ + "literal_form", + "alias_predicate", + "structured_alias_categories", + "extensions", + "annotations", + "description", + "alt_descriptions", + "title", + "deprecated", + "todos", + "notes", + "comments", + "examples", + "in_subset", + "from_schema", + "imported_from", + "source", + "in_language", + "see_also", + "deprecated_element_has_exact_replacement", + "deprecated_element_has_possible_replacement", + "aliases", + "structured_aliases", + "mappings", + "exact_mappings", + "close_mappings", + "related_mappings", + "narrow_mappings", + "broad_mappings", + "created_by", + "contributors", + "created_on", + "last_updated_on", + "modified_by", + "status", + "rank", + "keywords" + ], + "slot_usage": {}, + "class_uri": "http://www.w3.org/2008/05/skos-xl#Label", + "@type": "ClassDefinition" + }, + { + "name": "Expression", + "definition_uri": "https://w3id.org/linkml/Expression", + "description": "general mixin for any class that can represent some form of expression", + "from_schema": "https://w3id.org/linkml/meta", + "abstract": true, + "mixin": true, + "slot_usage": {}, + "class_uri": "https://w3id.org/linkml/Expression", + "@type": "ClassDefinition" + }, + { + "name": "AnonymousExpression", + "definition_uri": "https://w3id.org/linkml/AnonymousExpression", + "description": "An abstract parent class for any nested expression", + "comments": [ + "anonymous expressions are useful for when it is necessary to build a complex expression without introducing a named element for each sub-expression" + ], + "from_schema": "https://w3id.org/linkml/meta", + "abstract": true, + "mixins": [ + "Expression", + "Extensible", + "Annotatable", + "CommonMetadata" + ], + "slots": [ + "extensions", + "annotations", + "description", + "alt_descriptions", + "title", + "deprecated", + "todos", + "notes", + "comments", + "examples", + "in_subset", + "from_schema", + "imported_from", + "source", + "in_language", + "see_also", + "deprecated_element_has_exact_replacement", + "deprecated_element_has_possible_replacement", + "aliases", + "structured_aliases", + "mappings", + "exact_mappings", + "close_mappings", + "related_mappings", + "narrow_mappings", + "broad_mappings", + "created_by", + "contributors", + "created_on", + "last_updated_on", + "modified_by", + "status", + "rank", + "categories", + "keywords" + ], + "slot_usage": {}, + "class_uri": "https://w3id.org/linkml/AnonymousExpression", + "@type": "ClassDefinition" + }, + { + "name": "PathExpression", + "definition_uri": "https://w3id.org/linkml/PathExpression", + "description": "An expression that describes an abstract path from an object to another through a sequence of slot lookups", + "from_schema": "https://w3id.org/linkml/meta", + "mixins": [ + "Expression", + "Extensible", + "Annotatable", + "CommonMetadata" + ], + "slots": [ + "path_expression_followed_by", + "path_expression_none_of", + "path_expression_any_of", + "path_expression_all_of", + "path_expression_exactly_one_of", + "reversed", + "traverse", + "range_expression", + "extensions", + "annotations", + "description", + "alt_descriptions", + "title", + "deprecated", + "todos", + "notes", + "comments", + "examples", + "in_subset", + "from_schema", + "imported_from", + "source", + "in_language", + "see_also", + "deprecated_element_has_exact_replacement", + "deprecated_element_has_possible_replacement", + "aliases", + "structured_aliases", + "mappings", + "exact_mappings", + "close_mappings", + "related_mappings", + "narrow_mappings", + "broad_mappings", + "created_by", + "contributors", + "created_on", + "last_updated_on", + "modified_by", + "status", + "rank", + "categories", + "keywords" + ], + "slot_usage": {}, + "class_uri": "https://w3id.org/linkml/PathExpression", + "@type": "ClassDefinition" + }, + { + "name": "SlotExpression", + "definition_uri": "https://w3id.org/linkml/SlotExpression", + "description": "an expression that constrains the range of values a slot can take", + "from_schema": "https://w3id.org/linkml/meta", + "is_a": "Expression", + "mixin": true, + "slots": [ + "range", + "range_expression", + "enum_range", + "required", + "recommended", + "inlined", + "inlined_as_list", + "minimum_value", + "maximum_value", + "pattern", + "structured_pattern", + "unit", + "implicit_prefix", + "value_presence", + "equals_string", + "equals_string_in", + "equals_number", + "equals_expression", + "minimum_cardinality", + "maximum_cardinality", + "has_member", + "all_members", + "slot_expression_none_of", + "slot_expression_exactly_one_of", + "slot_expression_any_of", + "slot_expression_all_of" + ], + "slot_usage": {}, + "class_uri": "https://w3id.org/linkml/SlotExpression", + "@type": "ClassDefinition" + }, + { + "name": "AnonymousSlotExpression", + "definition_uri": "https://w3id.org/linkml/AnonymousSlotExpression", + "from_schema": "https://w3id.org/linkml/meta", + "is_a": "AnonymousExpression", + "mixins": [ + "SlotExpression" + ], + "slots": [ + "extensions", + "annotations", + "description", + "alt_descriptions", + "title", + "deprecated", + "todos", + "notes", + "comments", + "examples", + "in_subset", + "from_schema", + "imported_from", + "source", + "in_language", + "see_also", + "deprecated_element_has_exact_replacement", + "deprecated_element_has_possible_replacement", + "aliases", + "structured_aliases", + "mappings", + "exact_mappings", + "close_mappings", + "related_mappings", + "narrow_mappings", + "broad_mappings", + "created_by", + "contributors", + "created_on", + "last_updated_on", + "modified_by", + "status", + "rank", + "categories", + "keywords", + "range", + "range_expression", + "enum_range", + "required", + "recommended", + "inlined", + "inlined_as_list", + "minimum_value", + "maximum_value", + "pattern", + "structured_pattern", + "unit", + "implicit_prefix", + "value_presence", + "equals_string", + "equals_string_in", + "equals_number", + "equals_expression", + "minimum_cardinality", + "maximum_cardinality", + "has_member", + "all_members", + "slot_expression_none_of", + "slot_expression_exactly_one_of", + "slot_expression_any_of", + "slot_expression_all_of" + ], + "slot_usage": {}, + "class_uri": "https://w3id.org/linkml/AnonymousSlotExpression", + "@type": "ClassDefinition" + }, + { + "name": "SlotDefinition", + "definition_uri": "https://w3id.org/linkml/SlotDefinition", + "description": "an element that describes how instances are related to other instances", + "in_subset": [ + "SpecificationSubset", + "MinimalSubset", + "BasicSubset", + "OwlProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "aliases": [ + "slot", + "field", + "property", + "attribute", + "column", + "variable" + ], + "close_mappings": [ + "rdf:Property", + "qb:ComponentProperty" + ], + "rank": 3, + "is_a": "Definition", + "mixins": [ + "SlotExpression" + ], + "slots": [ + "name", + "id_prefixes", + "definition_uri", + "local_names", + "conforms_to", + "implements", + "instantiates", + "extensions", + "annotations", + "description", + "alt_descriptions", + "title", + "deprecated", + "todos", + "notes", + "comments", + "examples", + "in_subset", + "from_schema", + "imported_from", + "source", + "in_language", + "see_also", + "deprecated_element_has_exact_replacement", + "deprecated_element_has_possible_replacement", + "aliases", + "structured_aliases", + "mappings", + "exact_mappings", + "close_mappings", + "related_mappings", + "narrow_mappings", + "broad_mappings", + "created_by", + "contributors", + "created_on", + "last_updated_on", + "modified_by", + "status", + "rank", + "categories", + "keywords", + "abstract", + "mixin", + "values_from", + "string_serialization", + "singular_name", + "domain", + "slot_uri", + "multivalued", + "inherited", + "readonly", + "ifabsent", + "list_elements_unique", + "list_elements_ordered", + "shared", + "key", + "identifier", + "designates_type", + "alias", + "owner", + "domain_of", + "subproperty_of", + "symmetric", + "reflexive", + "locally_reflexive", + "irreflexive", + "asymmetric", + "transitive", + "inverse", + "is_class_field", + "transitive_form_of", + "reflexive_transitive_form_of", + "role", + "is_usage_slot", + "usage_slot_name", + "relational_role", + "slot_group", + "is_grouping_slot", + "path_rule", + "slot_definition_disjoint_with", + "children_are_mutually_disjoint", + "slot_definition_union_of", + "slot_definition_is_a", + "slot_definition_mixins", + "slot_definition_apply_to", + "range", + "range_expression", + "enum_range", + "required", + "recommended", + "inlined", + "inlined_as_list", + "minimum_value", + "maximum_value", + "pattern", + "structured_pattern", + "unit", + "implicit_prefix", + "value_presence", + "equals_string", + "equals_string_in", + "equals_number", + "equals_expression", + "minimum_cardinality", + "maximum_cardinality", + "has_member", + "all_members", + "slot_expression_none_of", + "slot_expression_exactly_one_of", + "slot_expression_any_of", + "slot_expression_all_of" + ], + "slot_usage": {}, + "class_uri": "https://w3id.org/linkml/SlotDefinition", + "@type": "ClassDefinition" + }, + { + "name": "ClassExpression", + "definition_uri": "https://w3id.org/linkml/ClassExpression", + "description": "A boolean expression that can be used to dynamically determine membership of a class", + "from_schema": "https://w3id.org/linkml/meta", + "mixin": true, + "slots": [ + "class_expression_any_of", + "class_expression_exactly_one_of", + "class_expression_none_of", + "class_expression_all_of", + "slot_conditions" + ], + "slot_usage": {}, + "class_uri": "https://w3id.org/linkml/ClassExpression", + "@type": "ClassDefinition" + }, + { + "name": "AnonymousClassExpression", + "definition_uri": "https://w3id.org/linkml/AnonymousClassExpression", + "from_schema": "https://w3id.org/linkml/meta", + "is_a": "AnonymousExpression", + "mixins": [ + "ClassExpression" + ], + "slots": [ + "extensions", + "annotations", + "description", + "alt_descriptions", + "title", + "deprecated", + "todos", + "notes", + "comments", + "examples", + "in_subset", + "from_schema", + "imported_from", + "source", + "in_language", + "see_also", + "deprecated_element_has_exact_replacement", + "deprecated_element_has_possible_replacement", + "aliases", + "structured_aliases", + "mappings", + "exact_mappings", + "close_mappings", + "related_mappings", + "narrow_mappings", + "broad_mappings", + "created_by", + "contributors", + "created_on", + "last_updated_on", + "modified_by", + "status", + "rank", + "categories", + "keywords", + "is_a", + "class_expression_any_of", + "class_expression_exactly_one_of", + "class_expression_none_of", + "class_expression_all_of", + "slot_conditions" + ], + "slot_usage": {}, + "class_uri": "https://w3id.org/linkml/AnonymousClassExpression", + "@type": "ClassDefinition" + }, + { + "name": "ClassDefinition", + "definition_uri": "https://w3id.org/linkml/ClassDefinition", + "description": "an element whose instances are complex objects that may have slot-value assignments", + "in_subset": [ + "SpecificationSubset", + "MinimalSubset", + "BasicSubset", + "RelationalModelProfile", + "ObjectOrientedProfile", + "OwlProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "aliases": [ + "table", + "record", + "template", + "message", + "observation" + ], + "close_mappings": [ + "owl:Class" + ], + "rank": 2, + "is_a": "Definition", + "mixins": [ + "ClassExpression" + ], + "slots": [ + "name", + "id_prefixes", + "definition_uri", + "local_names", + "conforms_to", + "implements", + "instantiates", + "extensions", + "annotations", + "description", + "alt_descriptions", + "title", + "deprecated", + "todos", + "notes", + "comments", + "examples", + "in_subset", + "from_schema", + "imported_from", + "source", + "in_language", + "see_also", + "deprecated_element_has_exact_replacement", + "deprecated_element_has_possible_replacement", + "aliases", + "structured_aliases", + "mappings", + "exact_mappings", + "close_mappings", + "related_mappings", + "narrow_mappings", + "broad_mappings", + "created_by", + "contributors", + "created_on", + "last_updated_on", + "modified_by", + "status", + "rank", + "categories", + "keywords", + "abstract", + "mixin", + "values_from", + "string_serialization", + "slots", + "slot_usage", + "attributes", + "class_uri", + "subclass_of", + "class_definition_union_of", + "defining_slots", + "tree_root", + "unique_keys", + "class_definition_rules", + "classification_rules", + "slot_names_unique", + "represents_relationship", + "class_definition_disjoint_with", + "children_are_mutually_disjoint", + "class_definition_is_a", + "class_definition_mixins", + "class_definition_apply_to", + "class_expression_any_of", + "class_expression_exactly_one_of", + "class_expression_none_of", + "class_expression_all_of", + "slot_conditions" + ], + "slot_usage": {}, + "class_uri": "https://w3id.org/linkml/ClassDefinition", + "@type": "ClassDefinition" + }, + { + "name": "ClassLevelRule", + "definition_uri": "https://w3id.org/linkml/ClassLevelRule", + "description": "A rule that is applied to classes", + "from_schema": "https://w3id.org/linkml/meta", + "abstract": true, + "slot_usage": {}, + "class_uri": "https://w3id.org/linkml/ClassLevelRule", + "@type": "ClassDefinition" + }, + { + "name": "ClassRule", + "definition_uri": "https://w3id.org/linkml/ClassRule", + "description": "A rule that applies to instances of a class", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "aliases": [ + "if rule" + ], + "close_mappings": [ + "sh:TripleRule", + "swrl:Imp" + ], + "is_a": "ClassLevelRule", + "mixins": [ + "Extensible", + "Annotatable", + "CommonMetadata" + ], + "slots": [ + "preconditions", + "postconditions", + "elseconditions", + "bidirectional", + "open_world", + "rank", + "deactivated", + "extensions", + "annotations", + "description", + "alt_descriptions", + "title", + "deprecated", + "todos", + "notes", + "comments", + "examples", + "in_subset", + "from_schema", + "imported_from", + "source", + "in_language", + "see_also", + "deprecated_element_has_exact_replacement", + "deprecated_element_has_possible_replacement", + "aliases", + "structured_aliases", + "mappings", + "exact_mappings", + "close_mappings", + "related_mappings", + "narrow_mappings", + "broad_mappings", + "created_by", + "contributors", + "created_on", + "last_updated_on", + "modified_by", + "status", + "categories", + "keywords" + ], + "slot_usage": {}, + "class_uri": "https://w3id.org/linkml/ClassRule", + "@type": "ClassDefinition" + }, + { + "name": "PatternExpression", + "definition_uri": "https://w3id.org/linkml/PatternExpression", + "description": "a regular expression pattern used to evaluate conformance of a string", + "from_schema": "https://w3id.org/linkml/meta", + "mixins": [ + "Extensible", + "Annotatable", + "CommonMetadata" + ], + "slots": [ + "syntax", + "interpolated", + "partial_match", + "extensions", + "annotations", + "description", + "alt_descriptions", + "title", + "deprecated", + "todos", + "notes", + "comments", + "examples", + "in_subset", + "from_schema", + "imported_from", + "source", + "in_language", + "see_also", + "deprecated_element_has_exact_replacement", + "deprecated_element_has_possible_replacement", + "aliases", + "structured_aliases", + "mappings", + "exact_mappings", + "close_mappings", + "related_mappings", + "narrow_mappings", + "broad_mappings", + "created_by", + "contributors", + "created_on", + "last_updated_on", + "modified_by", + "status", + "rank", + "categories", + "keywords" + ], + "slot_usage": {}, + "class_uri": "https://w3id.org/linkml/PatternExpression", + "@type": "ClassDefinition" + }, + { + "name": "ImportExpression", + "definition_uri": "https://w3id.org/linkml/ImportExpression", + "description": "an expression describing an import", + "from_schema": "https://w3id.org/linkml/meta", + "status": "testing", + "mixins": [ + "Extensible", + "Annotatable", + "CommonMetadata" + ], + "slots": [ + "import_from", + "import_as", + "import_map", + "extensions", + "annotations", + "description", + "alt_descriptions", + "title", + "deprecated", + "todos", + "notes", + "comments", + "examples", + "in_subset", + "from_schema", + "imported_from", + "source", + "in_language", + "see_also", + "deprecated_element_has_exact_replacement", + "deprecated_element_has_possible_replacement", + "aliases", + "structured_aliases", + "mappings", + "exact_mappings", + "close_mappings", + "related_mappings", + "narrow_mappings", + "broad_mappings", + "created_by", + "contributors", + "created_on", + "last_updated_on", + "modified_by", + "status", + "rank", + "categories", + "keywords" + ], + "slot_usage": {}, + "class_uri": "https://w3id.org/linkml/ImportExpression", + "@type": "ClassDefinition" + }, + { + "name": "Setting", + "definition_uri": "https://w3id.org/linkml/Setting", + "description": "assignment of a key to a value", + "in_subset": [ + "SpecificationSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "slots": [ + "setting_key", + "setting_value" + ], + "slot_usage": {}, + "class_uri": "https://w3id.org/linkml/Setting", + "@type": "ClassDefinition" + }, + { + "name": "Prefix", + "definition_uri": "https://w3id.org/linkml/Prefix", + "description": "prefix URI tuple", + "in_subset": [ + "SpecificationSubset", + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "rank": 12, + "slots": [ + "prefix_prefix", + "prefix_reference" + ], + "slot_usage": {}, + "class_uri": "https://w3id.org/linkml/Prefix", + "@type": "ClassDefinition" + }, + { + "name": "LocalName", + "definition_uri": "https://w3id.org/linkml/LocalName", + "description": "an attributed label", + "from_schema": "https://w3id.org/linkml/meta", + "slots": [ + "local_name_source", + "local_name_value" + ], + "slot_usage": {}, + "class_uri": "https://w3id.org/linkml/LocalName", + "@type": "ClassDefinition" + }, + { + "name": "Example", + "definition_uri": "https://w3id.org/linkml/Example", + "description": "usage example and description", + "in_subset": [ + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "slots": [ + "value", + "value_description", + "value_object" + ], + "slot_usage": {}, + "class_uri": "https://w3id.org/linkml/Example", + "@type": "ClassDefinition" + }, + { + "name": "AltDescription", + "definition_uri": "https://w3id.org/linkml/AltDescription", + "description": "an attributed description", + "in_subset": [ + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "aliases": [ + "structured description" + ], + "slots": [ + "alt_description_source", + "alt_description_text" + ], + "slot_usage": {}, + "class_uri": "https://w3id.org/linkml/AltDescription", + "@type": "ClassDefinition" + }, + { + "name": "PermissibleValue", + "definition_uri": "https://w3id.org/linkml/PermissibleValue", + "description": "a permissible value, accompanied by intended text and an optional mapping to a concept URI", + "in_subset": [ + "SpecificationSubset", + "BasicSubset" + ], + "from_schema": "https://w3id.org/linkml/meta", + "aliases": [ + "PV" + ], + "close_mappings": [ + "skos:Concept" + ], + "rank": 16, + "mixins": [ + "Extensible", + "Annotatable", + "CommonMetadata" + ], + "slots": [ + "text", + "description", + "meaning", + "unit", + "permissible_value_is_a", + "permissible_value_mixins", + "extensions", + "annotations", + "alt_descriptions", + "title", + "deprecated", + "todos", + "notes", + "comments", + "examples", + "in_subset", + "from_schema", + "imported_from", + "source", + "in_language", + "see_also", + "deprecated_element_has_exact_replacement", + "deprecated_element_has_possible_replacement", + "aliases", + "structured_aliases", + "mappings", + "exact_mappings", + "close_mappings", + "related_mappings", + "narrow_mappings", + "broad_mappings", + "created_by", + "contributors", + "created_on", + "last_updated_on", + "modified_by", + "status", + "rank", + "categories", + "keywords" + ], + "slot_usage": {}, + "class_uri": "https://w3id.org/linkml/PermissibleValue", + "@type": "ClassDefinition" + }, + { + "name": "UniqueKey", + "definition_uri": "https://w3id.org/linkml/UniqueKey", + "description": "a collection of slots whose values uniquely identify an instance of a class", + "in_subset": [ + "SpecificationSubset", + "BasicSubset", + "RelationalModelProfile" + ], + "from_schema": "https://w3id.org/linkml/meta", + "rank": 20, + "mixins": [ + "Extensible", + "Annotatable", + "CommonMetadata" + ], + "slots": [ + "unique_key_name", + "unique_key_slots", + "consider_nulls_inequal", + "extensions", + "annotations", + "description", + "alt_descriptions", + "title", + "deprecated", + "todos", + "notes", + "comments", + "examples", + "in_subset", + "from_schema", + "imported_from", + "source", + "in_language", + "see_also", + "deprecated_element_has_exact_replacement", + "deprecated_element_has_possible_replacement", + "aliases", + "structured_aliases", + "mappings", + "exact_mappings", + "close_mappings", + "related_mappings", + "narrow_mappings", + "broad_mappings", + "created_by", + "contributors", + "created_on", + "last_updated_on", + "modified_by", + "status", + "rank", + "categories", + "keywords" + ], + "slot_usage": {}, + "class_uri": "https://w3id.org/linkml/UniqueKey", + "@type": "ClassDefinition" + }, + { + "name": "AnyValue", + "definition_uri": "https://w3id.org/linkml/AnyValue", + "from_schema": "https://w3id.org/linkml/extensions", + "imported_from": "linkml:extensions", + "mappings": [ + "linkml:Any" + ], + "slot_usage": {}, + "class_uri": "https://w3id.org/linkml/Any", + "@type": "ClassDefinition" + }, + { + "name": "Extension", + "definition_uri": "https://w3id.org/linkml/Extension", + "description": "a tag/value pair used to add non-model information to an entry", + "from_schema": "https://w3id.org/linkml/extensions", + "imported_from": "linkml:extensions", + "slots": [ + "extension_tag", + "extension_value", + "extensions" + ], + "slot_usage": {}, + "class_uri": "https://w3id.org/linkml/Extension", + "@type": "ClassDefinition" + }, + { + "name": "Extensible", + "definition_uri": "https://w3id.org/linkml/Extensible", + "description": "mixin for classes that support extension", + "from_schema": "https://w3id.org/linkml/extensions", + "imported_from": "linkml:extensions", + "mixin": true, + "slots": [ + "extensions" + ], + "slot_usage": {}, + "class_uri": "https://w3id.org/linkml/Extensible", + "@type": "ClassDefinition" + }, + { + "name": "Annotatable", + "definition_uri": "https://w3id.org/linkml/Annotatable", + "description": "mixin for classes that support annotations", + "from_schema": "https://w3id.org/linkml/annotations", + "imported_from": "linkml:annotations", + "mixin": true, + "slots": [ + "annotations" + ], + "slot_usage": {}, + "class_uri": "https://w3id.org/linkml/Annotatable", + "@type": "ClassDefinition" + }, + { + "name": "Annotation", + "definition_uri": "https://w3id.org/linkml/Annotation", + "description": "a tag/value pair with the semantics of OWL Annotation", + "from_schema": "https://w3id.org/linkml/annotations", + "imported_from": "linkml:annotations", + "is_a": "Extension", + "mixins": [ + "Annotatable" + ], + "slots": [ + "extension_tag", + "extension_value", + "extensions", + "annotations" + ], + "slot_usage": {}, + "class_uri": "https://w3id.org/linkml/Annotation", + "@type": "ClassDefinition" + }, + { + "name": "UnitOfMeasure", + "definition_uri": "https://w3id.org/linkml/UnitOfMeasure", + "description": "A unit of measure, or unit, is a particular quantity value that has been chosen as a scale for measuring other quantities the same kind (more generally of equivalent dimension).", + "from_schema": "https://w3id.org/linkml/units", + "imported_from": "linkml:units", + "mappings": [ + "qudt:Unit" + ], + "slots": [ + "symbol", + "abbreviation", + "descriptive_name", + "UnitOfMeasure_exact_mappings", + "ucum_code", + "derivation", + "has_quantity_kind", + "iec61360code" + ], + "slot_usage": {}, + "class_uri": "http://qudt.org/schema/qudt/Unit", + "any_of": [ + { + "slot_conditions": [ + { + "name": "ucum_code", + "required": true, + "@type": "SlotDefinition" + } + ], + "@type": "AnonymousClassExpression" + }, + { + "slot_conditions": [ + { + "name": "iec61360code", + "required": true, + "@type": "SlotDefinition" + } + ], + "@type": "AnonymousClassExpression" + }, + { + "slot_conditions": [ + { + "name": "symbol", + "required": true, + "@type": "SlotDefinition" + } + ], + "@type": "AnonymousClassExpression" + }, + { + "slot_conditions": [ + { + "name": "exact_mappings", + "required": true, + "@type": "SlotDefinition" + } + ], + "@type": "AnonymousClassExpression" + } + ], + "@type": "ClassDefinition" + } + ], + "metamodel_version": "1.7.0", + "source_file": "meta.yaml", + "source_file_date": "2023-09-01T13:18:46", + "source_file_size": 89472, + "generation_date": "2023-09-01T13:19:57", + "@type": "SchemaDefinition", + "@context": [ + "target/jsonld/meta.context.jsonld", + "https://w3id.org/linkml/types.context.jsonld", + "https://w3id.org/linkml/mappings.context.jsonld", + "https://w3id.org/linkml/extensions.context.jsonld", + "https://w3id.org/linkml/annotations.context.jsonld", + "https://w3id.org/linkml/units.context.jsonld", + { + "@base": "https://w3id.org/linkml/" + } + ] +} diff --git a/linkml_runtime/linkml_model/jsonschema/datasets.schema.json b/linkml_runtime/linkml_model/jsonschema/datasets.schema.json new file mode 100644 index 00000000..67515917 --- /dev/null +++ b/linkml_runtime/linkml_model/jsonschema/datasets.schema.json @@ -0,0 +1,293 @@ +{ + "$defs": { + "DataPackage": { + "additionalProperties": false, + "description": "A collection of data resources", + "properties": { + "compression": { + "type": "string" + }, + "conforms_to": { + "type": "string" + }, + "conforms_to_class": { + "description": "class in schema which the data object instantiates", + "type": "string" + }, + "conforms_to_schema": { + "type": "string" + }, + "created_by": { + "description": "agent that created the element", + "type": "string" + }, + "created_on": { + "description": "time at which the element was created", + "format": "date-time", + "type": "string" + }, + "description": { + "description": "human readable description of the information", + "type": "string" + }, + "download_url": { + "type": "string" + }, + "id": { + "description": "the unique name of th dataset", + "type": "string" + }, + "issued": { + "format": "date-time", + "type": "string" + }, + "keywords": { + "items": { + "type": "string" + }, + "type": "array" + }, + "language": { + "description": "language in which the information is expressed", + "type": "string" + }, + "license": { + "description": "license for the data", + "type": "string" + }, + "page": { + "type": "string" + }, + "publisher": { + "type": "string" + }, + "resources": { + "items": { + "type": "string" + }, + "type": "array" + }, + "test_roles": { + "items": { + "$ref": "#/$defs/TestRole" + }, + "type": "array" + }, + "title": { + "description": "the official title of the element", + "type": "string" + }, + "version": { + "description": "particular version of schema", + "type": "string" + }, + "was_derived_from": { + "description": "A derivation is a transformation of an entity into another, an update of an entity resulting in a new one, or the construction of a new entity based on a pre-existing entity.@en", + "type": "string" + } + }, + "required": [ + "id" + ], + "title": "DataPackage", + "type": "object" + }, + "DataResource": { + "additionalProperties": false, + "description": "An individual file or table", + "properties": { + "bytes": { + "type": "integer" + }, + "compression": { + "type": "string" + }, + "conforms_to": { + "type": "string" + }, + "conforms_to_class": { + "description": "class in schema which the data object instantiates", + "type": "string" + }, + "conforms_to_schema": { + "type": "string" + }, + "created_by": { + "description": "agent that created the element", + "type": "string" + }, + "created_on": { + "description": "time at which the element was created", + "format": "date-time", + "type": "string" + }, + "description": { + "description": "human readable description of the information", + "type": "string" + }, + "dialect": { + "type": "string" + }, + "download_url": { + "type": "string" + }, + "encoding": { + "type": "string" + }, + "format": { + "$ref": "#/$defs/FormatEnum" + }, + "hash": { + "type": "string" + }, + "id": { + "description": "the unique name of th dataset", + "type": "string" + }, + "issued": { + "format": "date-time", + "type": "string" + }, + "keywords": { + "items": { + "type": "string" + }, + "type": "array" + }, + "language": { + "description": "language in which the information is expressed", + "type": "string" + }, + "license": { + "description": "license for the data", + "type": "string" + }, + "md5": { + "type": "string" + }, + "media_type": { + "type": "string" + }, + "page": { + "type": "string" + }, + "path": { + "type": "string" + }, + "publisher": { + "type": "string" + }, + "sha256": { + "type": "string" + }, + "test_roles": { + "items": { + "$ref": "#/$defs/TestRole" + }, + "type": "array" + }, + "title": { + "description": "the official title of the element", + "type": "string" + }, + "version": { + "description": "particular version of schema", + "type": "string" + }, + "was_derived_from": { + "description": "A derivation is a transformation of an entity into another, an update of an entity resulting in a new one, or the construction of a new entity based on a pre-existing entity.@en", + "type": "string" + } + }, + "required": [ + "id" + ], + "title": "DataResource", + "type": "object" + }, + "FormatDialect": { + "additionalProperties": false, + "description": "Additional format information for a file", + "properties": { + "comment_prefix": { + "type": "string" + }, + "delimiter": { + "type": "string" + }, + "double_quote": { + "type": "string" + }, + "header": { + "type": "string" + }, + "quote_char": { + "type": "string" + } + }, + "required": [], + "title": "FormatDialect", + "type": "object" + }, + "FormatEnum": { + "description": "", + "enum": [ + "JSON-LD", + "N3", + "N-Triples", + "N-Quads", + "LD Patch", + "Microdata", + "OWL XML Serialization", + "OWL Functional Syntax", + "OWL Manchester Syntax", + "POWDER", + "POWDER-S", + "PROV-N", + "PROV-XML", + "RDFa", + "RDF/JSON", + "RDF/XML", + "RIF XML Syntax", + "SPARQL Results in XML", + "SPARQL Results in JSON", + "SPARQL Results in CSV", + "SPARQL Results in TSV", + "Turtle", + "TriG", + "YAML", + "JSON" + ], + "title": "FormatEnum", + "type": "string" + }, + "MediaTypeEnum": { + "description": "", + "enum": [ + "csv", + "rdf-xml" + ], + "title": "MediaTypeEnum", + "type": "string" + }, + "TestRole": { + "description": "", + "enum": [ + "Example", + "CounterExample" + ], + "title": "TestRole", + "type": "string" + } + }, + "$id": "https://w3id.org/linkml/datasets", + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": true, + "metamodel_version": "1.7.0", + "properties": {}, + "required": [], + "title": "datasets", + "type": "object", + "version": null +} + diff --git a/linkml_runtime/linkml_model/jsonschema/meta.schema.json b/linkml_runtime/linkml_model/jsonschema/meta.schema.json index 05491674..f91d9cdd 100644 --- a/linkml_runtime/linkml_model/jsonschema/meta.schema.json +++ b/linkml_runtime/linkml_model/jsonschema/meta.schema.json @@ -137,7 +137,15 @@ }, "alt_descriptions": { "additionalProperties": { - "$ref": "#/$defs/AltDescription__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/AltDescription__identifier_optional" + }, + { + "description": "text of an attributed description", + "type": "string" + } + ] }, "description": "A sourced alternative description for an element", "type": "object" @@ -163,6 +171,13 @@ }, "type": "array" }, + "categories": { + "description": "Controlled terms used to categorize an element.", + "items": { + "type": "string" + }, + "type": "array" + }, "close_mappings": { "description": "A list of terms from different schemas or terminology systems that have close meaning.", "items": { @@ -177,6 +192,13 @@ }, "type": "array" }, + "contributors": { + "description": "agent that contributed to the element", + "items": { + "type": "string" + }, + "type": "array" + }, "created_by": { "description": "agent that created the element", "type": "string" @@ -253,6 +275,13 @@ "description": "A primary parent class or slot from which inheritable metaslots are propagated from. 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", "type": "string" }, + "keywords": { + "description": "Keywords or tags used to describe the element", + "items": { + "type": "string" + }, + "type": "array" + }, "last_updated_on": { "description": "time at which the element was last updated", "format": "date-time", @@ -310,7 +339,14 @@ }, "slot_conditions": { "additionalProperties": { - "$ref": "#/$defs/SlotDefinition__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/SlotDefinition__identifier_optional" + }, + { + "type": "null" + } + ] }, "description": "expresses constraints on a group of slots for a class expression", "type": "object" @@ -395,7 +431,14 @@ }, "permissible_values": { "additionalProperties": { - "$ref": "#/$defs/PermissibleValue__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/PermissibleValue__identifier_optional" + }, + { + "type": "null" + } + ] }, "description": "A list of possible values for a slot range", "type": "object" @@ -436,7 +479,15 @@ }, "alt_descriptions": { "additionalProperties": { - "$ref": "#/$defs/AltDescription__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/AltDescription__identifier_optional" + }, + { + "description": "text of an attributed description", + "type": "string" + } + ] }, "description": "A sourced alternative description for an element", "type": "object" @@ -462,6 +513,13 @@ }, "type": "array" }, + "categories": { + "description": "Controlled terms used to categorize an element.", + "items": { + "type": "string" + }, + "type": "array" + }, "close_mappings": { "description": "A list of terms from different schemas or terminology systems that have close meaning.", "items": { @@ -476,6 +534,13 @@ }, "type": "array" }, + "contributors": { + "description": "agent that contributed to the element", + "items": { + "type": "string" + }, + "type": "array" + }, "created_by": { "description": "agent that created the element", "type": "string" @@ -587,6 +652,13 @@ "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.", "type": "boolean" }, + "keywords": { + "description": "Keywords or tags used to describe the element", + "items": { + "type": "string" + }, + "type": "array" + }, "last_updated_on": { "description": "time at which the element was last updated", "format": "date-time", @@ -825,7 +897,15 @@ }, "alt_descriptions": { "additionalProperties": { - "$ref": "#/$defs/AltDescription__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/AltDescription__identifier_optional" + }, + { + "description": "text of an attributed description", + "type": "string" + } + ] }, "description": "A sourced alternative description for an element", "type": "object" @@ -853,7 +933,14 @@ }, "attributes": { "additionalProperties": { - "$ref": "#/$defs/SlotDefinition__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/SlotDefinition__identifier_optional" + }, + { + "type": "null" + } + ] }, "description": "Inline definition of slots", "type": "object" @@ -865,6 +952,13 @@ }, "type": "array" }, + "categories": { + "description": "Controlled terms used to categorize an element.", + "items": { + "type": "string" + }, + "type": "array" + }, "children_are_mutually_disjoint": { "description": "If true then all direct is_a children are mutually disjoint and share no instances in common", "type": "boolean" @@ -898,6 +992,13 @@ "description": "An established standard to which the element conforms.", "type": "string" }, + "contributors": { + "description": "agent that contributed to the element", + "items": { + "type": "string" + }, + "type": "array" + }, "created_by": { "description": "agent that created the element", "type": "string" @@ -1002,10 +1103,24 @@ }, "type": "array" }, + "instantiates": { + "description": "An element in another schema which this element instantiates.", + "items": { + "type": "string" + }, + "type": "array" + }, "is_a": { "description": "A primary parent class from which inheritable metaslots are propagated", "type": "string" }, + "keywords": { + "description": "Keywords or tags used to describe the element", + "items": { + "type": "string" + }, + "type": "array" + }, "last_updated_on": { "description": "time at which the element was last updated", "format": "date-time", @@ -1013,7 +1128,15 @@ }, "local_names": { "additionalProperties": { - "$ref": "#/$defs/LocalName__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/LocalName__identifier_optional" + }, + { + "description": "a name assigned to an element in a given ontology", + "type": "string" + } + ] }, "type": "object" }, @@ -1095,7 +1218,14 @@ }, "slot_conditions": { "additionalProperties": { - "$ref": "#/$defs/SlotDefinition__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/SlotDefinition__identifier_optional" + }, + { + "type": "null" + } + ] }, "description": "expresses constraints on a group of slots for a class expression", "type": "object" @@ -1106,7 +1236,14 @@ }, "slot_usage": { "additionalProperties": { - "$ref": "#/$defs/SlotDefinition__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/SlotDefinition__identifier_optional" + }, + { + "type": "null" + } + ] }, "description": "the refinement of a slot in the context of the containing class definition.", "type": "object" @@ -1171,7 +1308,7 @@ "type": "object" }, "values_from": { - "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.", + "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 hierarchy into an enumerated list of possible values in every serialization of the model.", "items": { "type": "string" }, @@ -1208,7 +1345,15 @@ }, "alt_descriptions": { "additionalProperties": { - "$ref": "#/$defs/AltDescription__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/AltDescription__identifier_optional" + }, + { + "description": "text of an attributed description", + "type": "string" + } + ] }, "description": "A sourced alternative description for an element", "type": "object" @@ -1236,7 +1381,14 @@ }, "attributes": { "additionalProperties": { - "$ref": "#/$defs/SlotDefinition__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/SlotDefinition__identifier_optional" + }, + { + "type": "null" + } + ] }, "description": "Inline definition of slots", "type": "object" @@ -1248,6 +1400,13 @@ }, "type": "array" }, + "categories": { + "description": "Controlled terms used to categorize an element.", + "items": { + "type": "string" + }, + "type": "array" + }, "children_are_mutually_disjoint": { "description": "If true then all direct is_a children are mutually disjoint and share no instances in common", "type": "boolean" @@ -1281,6 +1440,13 @@ "description": "An established standard to which the element conforms.", "type": "string" }, + "contributors": { + "description": "agent that contributed to the element", + "items": { + "type": "string" + }, + "type": "array" + }, "created_by": { "description": "agent that created the element", "type": "string" @@ -1385,10 +1551,24 @@ }, "type": "array" }, + "instantiates": { + "description": "An element in another schema which this element instantiates.", + "items": { + "type": "string" + }, + "type": "array" + }, "is_a": { "description": "A primary parent class from which inheritable metaslots are propagated", "type": "string" }, + "keywords": { + "description": "Keywords or tags used to describe the element", + "items": { + "type": "string" + }, + "type": "array" + }, "last_updated_on": { "description": "time at which the element was last updated", "format": "date-time", @@ -1396,7 +1576,15 @@ }, "local_names": { "additionalProperties": { - "$ref": "#/$defs/LocalName__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/LocalName__identifier_optional" + }, + { + "description": "a name assigned to an element in a given ontology", + "type": "string" + } + ] }, "type": "object" }, @@ -1478,7 +1666,14 @@ }, "slot_conditions": { "additionalProperties": { - "$ref": "#/$defs/SlotDefinition__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/SlotDefinition__identifier_optional" + }, + { + "type": "null" + } + ] }, "description": "expresses constraints on a group of slots for a class expression", "type": "object" @@ -1489,7 +1684,14 @@ }, "slot_usage": { "additionalProperties": { - "$ref": "#/$defs/SlotDefinition__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/SlotDefinition__identifier_optional" + }, + { + "type": "null" + } + ] }, "description": "the refinement of a slot in the context of the containing class definition.", "type": "object" @@ -1554,7 +1756,7 @@ "type": "object" }, "values_from": { - "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.", + "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 hierarchy into an enumerated list of possible values in every serialization of the model.", "items": { "type": "string" }, @@ -1578,7 +1780,15 @@ }, "alt_descriptions": { "additionalProperties": { - "$ref": "#/$defs/AltDescription__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/AltDescription__identifier_optional" + }, + { + "description": "text of an attributed description", + "type": "string" + } + ] }, "description": "A sourced alternative description for an element", "type": "object" @@ -1601,6 +1811,13 @@ }, "type": "array" }, + "categories": { + "description": "Controlled terms used to categorize an element.", + "items": { + "type": "string" + }, + "type": "array" + }, "close_mappings": { "description": "A list of terms from different schemas or terminology systems that have close meaning.", "items": { @@ -1615,6 +1832,13 @@ }, "type": "array" }, + "contributors": { + "description": "agent that contributed to the element", + "items": { + "type": "string" + }, + "type": "array" + }, "created_by": { "description": "agent that created the element", "type": "string" @@ -1688,6 +1912,13 @@ }, "type": "array" }, + "keywords": { + "description": "Keywords or tags used to describe the element", + "items": { + "type": "string" + }, + "type": "array" + }, "last_updated_on": { "description": "time at which the element was last updated", "format": "date-time", @@ -1795,7 +2026,15 @@ }, "alt_descriptions": { "additionalProperties": { - "$ref": "#/$defs/AltDescription__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/AltDescription__identifier_optional" + }, + { + "description": "text of an attributed description", + "type": "string" + } + ] }, "description": "A sourced alternative description for an element", "type": "object" @@ -1821,6 +2060,13 @@ }, "type": "array" }, + "categories": { + "description": "Controlled terms used to categorize an element.", + "items": { + "type": "string" + }, + "type": "array" + }, "close_mappings": { "description": "A list of terms from different schemas or terminology systems that have close meaning.", "items": { @@ -1858,6 +2104,13 @@ "description": "An established standard to which the element conforms.", "type": "string" }, + "contributors": { + "description": "agent that contributed to the element", + "items": { + "type": "string" + }, + "type": "array" + }, "created_by": { "description": "agent that created the element", "type": "string" @@ -1959,10 +2212,24 @@ }, "type": "array" }, + "instantiates": { + "description": "An element in another schema which this element instantiates.", + "items": { + "type": "string" + }, + "type": "array" + }, "is_a": { "description": "A primary parent class or slot from which inheritable metaslots are propagated from. 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", "type": "string" }, + "keywords": { + "description": "Keywords or tags used to describe the element", + "items": { + "type": "string" + }, + "type": "array" + }, "last_updated_on": { "description": "time at which the element was last updated", "format": "date-time", @@ -1970,7 +2237,15 @@ }, "local_names": { "additionalProperties": { - "$ref": "#/$defs/LocalName__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/LocalName__identifier_optional" + }, + { + "description": "a name assigned to an element in a given ontology", + "type": "string" + } + ] }, "type": "object" }, @@ -2027,7 +2302,14 @@ }, "permissible_values": { "additionalProperties": { - "$ref": "#/$defs/PermissibleValue__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/PermissibleValue__identifier_optional" + }, + { + "type": "null" + } + ] }, "description": "A list of possible values for a slot range", "type": "object" @@ -2089,7 +2371,7 @@ "type": "array" }, "values_from": { - "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.", + "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 hierarchy into an enumerated list of possible values in every serialization of the model.", "items": { "type": "string" }, @@ -2119,7 +2401,15 @@ }, "alt_descriptions": { "additionalProperties": { - "$ref": "#/$defs/AltDescription__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/AltDescription__identifier_optional" + }, + { + "description": "text of an attributed description", + "type": "string" + } + ] }, "description": "A sourced alternative description for an element", "type": "object" @@ -2145,6 +2435,13 @@ }, "type": "array" }, + "categories": { + "description": "Controlled terms used to categorize an element.", + "items": { + "type": "string" + }, + "type": "array" + }, "close_mappings": { "description": "A list of terms from different schemas or terminology systems that have close meaning.", "items": { @@ -2182,6 +2479,13 @@ "description": "An established standard to which the element conforms.", "type": "string" }, + "contributors": { + "description": "agent that contributed to the element", + "items": { + "type": "string" + }, + "type": "array" + }, "created_by": { "description": "agent that created the element", "type": "string" @@ -2283,10 +2587,24 @@ }, "type": "array" }, + "instantiates": { + "description": "An element in another schema which this element instantiates.", + "items": { + "type": "string" + }, + "type": "array" + }, "is_a": { "description": "A primary parent class or slot from which inheritable metaslots are propagated from. 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", "type": "string" }, + "keywords": { + "description": "Keywords or tags used to describe the element", + "items": { + "type": "string" + }, + "type": "array" + }, "last_updated_on": { "description": "time at which the element was last updated", "format": "date-time", @@ -2294,7 +2612,15 @@ }, "local_names": { "additionalProperties": { - "$ref": "#/$defs/LocalName__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/LocalName__identifier_optional" + }, + { + "description": "a name assigned to an element in a given ontology", + "type": "string" + } + ] }, "type": "object" }, @@ -2351,7 +2677,14 @@ }, "permissible_values": { "additionalProperties": { - "$ref": "#/$defs/PermissibleValue__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/PermissibleValue__identifier_optional" + }, + { + "type": "null" + } + ] }, "description": "A list of possible values for a slot range", "type": "object" @@ -2413,7 +2746,7 @@ "type": "array" }, "values_from": { - "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.", + "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 hierarchy into an enumerated list of possible values in every serialization of the model.", "items": { "type": "string" }, @@ -2474,7 +2807,14 @@ }, "permissible_values": { "additionalProperties": { - "$ref": "#/$defs/PermissibleValue__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/PermissibleValue__identifier_optional" + }, + { + "type": "null" + } + ] }, "description": "A list of possible values for a slot range", "type": "object" @@ -2577,7 +2917,15 @@ }, "alt_descriptions": { "additionalProperties": { - "$ref": "#/$defs/AltDescription__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/AltDescription__identifier_optional" + }, + { + "description": "text of an attributed description", + "type": "string" + } + ] }, "description": "A sourced alternative description for an element", "type": "object" @@ -2596,6 +2944,13 @@ }, "type": "array" }, + "categories": { + "description": "Controlled terms used to categorize an element.", + "items": { + "type": "string" + }, + "type": "array" + }, "close_mappings": { "description": "A list of terms from different schemas or terminology systems that have close meaning.", "items": { @@ -2610,6 +2965,13 @@ }, "type": "array" }, + "contributors": { + "description": "agent that contributed to the element", + "items": { + "type": "string" + }, + "type": "array" + }, "created_by": { "description": "agent that created the element", "type": "string" @@ -2668,7 +3030,15 @@ }, "import_map": { "additionalProperties": { - "$ref": "#/$defs/Setting__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/Setting__identifier_optional" + }, + { + "description": "The value assigned for a setting", + "type": "string" + } + ] }, "type": "object" }, @@ -2687,6 +3057,13 @@ }, "type": "array" }, + "keywords": { + "description": "Keywords or tags used to describe the element", + "items": { + "type": "string" + }, + "type": "array" + }, "last_updated_on": { "description": "time at which the element was last updated", "format": "date-time", @@ -2809,7 +3186,7 @@ }, "MatchQuery": { "additionalProperties": false, - "description": "A query that is used on an enum expression to dynamically obtain a set of permissivle values via a query that matches on properties of the external concepts", + "description": "A query that is used on an enum expression to dynamically obtain a set of permissivle values via a query that matches on properties of the external concepts.", "properties": { "identifier_pattern": { "description": "A regular expression that is used to obtain a set of identifiers from a source_ontology to construct a set of permissible values", @@ -2843,7 +3220,15 @@ }, "alt_descriptions": { "additionalProperties": { - "$ref": "#/$defs/AltDescription__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/AltDescription__identifier_optional" + }, + { + "description": "text of an attributed description", + "type": "string" + } + ] }, "description": "A sourced alternative description for an element", "type": "object" @@ -2869,6 +3254,13 @@ }, "type": "array" }, + "categories": { + "description": "Controlled terms used to categorize an element.", + "items": { + "type": "string" + }, + "type": "array" + }, "close_mappings": { "description": "A list of terms from different schemas or terminology systems that have close meaning.", "items": { @@ -2883,6 +3275,13 @@ }, "type": "array" }, + "contributors": { + "description": "agent that contributed to the element", + "items": { + "type": "string" + }, + "type": "array" + }, "created_by": { "description": "agent that created the element", "type": "string" @@ -2959,6 +3358,13 @@ }, "type": "array" }, + "keywords": { + "description": "Keywords or tags used to describe the element", + "items": { + "type": "string" + }, + "type": "array" + }, "last_updated_on": { "description": "time at which the element was last updated", "format": "date-time", @@ -3069,7 +3475,15 @@ }, "alt_descriptions": { "additionalProperties": { - "$ref": "#/$defs/AltDescription__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/AltDescription__identifier_optional" + }, + { + "description": "text of an attributed description", + "type": "string" + } + ] }, "description": "A sourced alternative description for an element", "type": "object" @@ -3088,6 +3502,13 @@ }, "type": "array" }, + "categories": { + "description": "Controlled terms used to categorize an element.", + "items": { + "type": "string" + }, + "type": "array" + }, "close_mappings": { "description": "A list of terms from different schemas or terminology systems that have close meaning.", "items": { @@ -3102,6 +3523,13 @@ }, "type": "array" }, + "contributors": { + "description": "agent that contributed to the element", + "items": { + "type": "string" + }, + "type": "array" + }, "created_by": { "description": "agent that created the element", "type": "string" @@ -3171,6 +3599,13 @@ "description": "if true then the pattern is first string interpolated", "type": "boolean" }, + "keywords": { + "description": "Keywords or tags used to describe the element", + "items": { + "type": "string" + }, + "type": "array" + }, "last_updated_on": { "description": "time at which the element was last updated", "format": "date-time", @@ -3202,7 +3637,7 @@ "type": "array" }, "partial_match": { - "description": "if true then the pattern must match the whole string, as if enclosed in ^...$", + "description": "if not true then the pattern must match the whole string, as if enclosed in ^...$", "type": "boolean" }, "rank": { @@ -3270,7 +3705,15 @@ }, "alt_descriptions": { "additionalProperties": { - "$ref": "#/$defs/AltDescription__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/AltDescription__identifier_optional" + }, + { + "description": "text of an attributed description", + "type": "string" + } + ] }, "description": "A sourced alternative description for an element", "type": "object" @@ -3289,6 +3732,13 @@ }, "type": "array" }, + "categories": { + "description": "Controlled terms used to categorize an element.", + "items": { + "type": "string" + }, + "type": "array" + }, "close_mappings": { "description": "A list of terms from different schemas or terminology systems that have close meaning.", "items": { @@ -3303,6 +3753,13 @@ }, "type": "array" }, + "contributors": { + "description": "agent that contributed to the element", + "items": { + "type": "string" + }, + "type": "array" + }, "created_by": { "description": "agent that created the element", "type": "string" @@ -3368,6 +3825,13 @@ }, "type": "array" }, + "keywords": { + "description": "Keywords or tags used to describe the element", + "items": { + "type": "string" + }, + "type": "array" + }, "last_updated_on": { "description": "time at which the element was last updated", "format": "date-time", @@ -3474,7 +3938,15 @@ }, "alt_descriptions": { "additionalProperties": { - "$ref": "#/$defs/AltDescription__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/AltDescription__identifier_optional" + }, + { + "description": "text of an attributed description", + "type": "string" + } + ] }, "description": "A sourced alternative description for an element", "type": "object" @@ -3493,6 +3965,13 @@ }, "type": "array" }, + "categories": { + "description": "Controlled terms used to categorize an element.", + "items": { + "type": "string" + }, + "type": "array" + }, "close_mappings": { "description": "A list of terms from different schemas or terminology systems that have close meaning.", "items": { @@ -3507,6 +3986,13 @@ }, "type": "array" }, + "contributors": { + "description": "agent that contributed to the element", + "items": { + "type": "string" + }, + "type": "array" + }, "created_by": { "description": "agent that created the element", "type": "string" @@ -3572,6 +4058,13 @@ }, "type": "array" }, + "keywords": { + "description": "Keywords or tags used to describe the element", + "items": { + "type": "string" + }, + "type": "array" + }, "last_updated_on": { "description": "time at which the element was last updated", "format": "date-time", @@ -3725,7 +4218,7 @@ }, "ReachabilityQuery": { "additionalProperties": false, - "description": "A query that is used on an enum expression to dynamically obtain a set of permissible values via walking from a set of source nodes to a set of descendants or ancestors over a set of relationship types", + "description": "A query that is used on an enum expression to dynamically obtain a set of permissible values via walking from a set of source nodes to a set of descendants or ancestors over a set of relationship types.", "properties": { "include_self": { "description": "True if the query is reflexive", @@ -3786,7 +4279,15 @@ }, "alt_descriptions": { "additionalProperties": { - "$ref": "#/$defs/AltDescription__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/AltDescription__identifier_optional" + }, + { + "description": "text of an attributed description", + "type": "string" + } + ] }, "description": "A sourced alternative description for an element", "type": "object" @@ -3814,7 +4315,14 @@ }, "classes": { "additionalProperties": { - "$ref": "#/$defs/ClassDefinition__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/ClassDefinition__identifier_optional" + }, + { + "type": "null" + } + ] }, "description": "An index to the collection of all class definitions in the schema", "type": "object" @@ -3837,6 +4345,13 @@ "description": "An established standard to which the element conforms.", "type": "string" }, + "contributors": { + "description": "agent that contributed to the element", + "items": { + "type": "string" + }, + "type": "array" + }, "created_by": { "description": "agent that created the element", "type": "string" @@ -3890,7 +4405,14 @@ }, "enums": { "additionalProperties": { - "$ref": "#/$defs/EnumDefinition__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/EnumDefinition__identifier_optional" + }, + { + "type": "null" + } + ] }, "description": "An index to the collection of all enum definitions in the schema", "type": "object" @@ -3965,6 +4487,13 @@ }, "type": "array" }, + "instantiates": { + "description": "An element in another schema which this element instantiates.", + "items": { + "type": "string" + }, + "type": "array" + }, "keywords": { "description": "Keywords or tags used to describe the element", "items": { @@ -3983,7 +4512,15 @@ }, "local_names": { "additionalProperties": { - "$ref": "#/$defs/LocalName__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/LocalName__identifier_optional" + }, + { + "description": "a name assigned to an element in a given ontology", + "type": "string" + } + ] }, "type": "object" }, @@ -4022,7 +4559,15 @@ }, "prefixes": { "additionalProperties": { - "$ref": "#/$defs/Prefix__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/Prefix__identifier_optional" + }, + { + "description": "The namespace to which a prefix expands to.", + "type": "string" + } + ] }, "description": "A collection of prefix expansions that specify how CURIEs can be expanded to URIs", "type": "object" @@ -4047,7 +4592,15 @@ }, "settings": { "additionalProperties": { - "$ref": "#/$defs/Setting__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/Setting__identifier_optional" + }, + { + "description": "The value assigned for a setting", + "type": "string" + } + ] }, "description": "A collection of global variable settings", "type": "object" @@ -4058,7 +4611,14 @@ }, "slots": { "additionalProperties": { - "$ref": "#/$defs/SlotDefinition__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/SlotDefinition__identifier_optional" + }, + { + "type": "null" + } + ] }, "description": "An index to the collection of all slot definitions in the schema", "type": "object" @@ -4093,7 +4653,14 @@ }, "subsets": { "additionalProperties": { - "$ref": "#/$defs/SubsetDefinition__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/SubsetDefinition__identifier_optional" + }, + { + "type": "null" + } + ] }, "description": "An index to the collection of all subset definitions in the schema", "type": "object" @@ -4111,7 +4678,14 @@ }, "types": { "additionalProperties": { - "$ref": "#/$defs/TypeDefinition__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/TypeDefinition__identifier_optional" + }, + { + "type": "null" + } + ] }, "description": "An index to the collection of all type definitions in the schema", "type": "object" @@ -4199,7 +4773,15 @@ }, "alt_descriptions": { "additionalProperties": { - "$ref": "#/$defs/AltDescription__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/AltDescription__identifier_optional" + }, + { + "description": "text of an attributed description", + "type": "string" + } + ] }, "description": "A sourced alternative description for an element", "type": "object" @@ -4236,6 +4818,13 @@ }, "type": "array" }, + "categories": { + "description": "Controlled terms used to categorize an element.", + "items": { + "type": "string" + }, + "type": "array" + }, "children_are_mutually_disjoint": { "description": "If true then all direct is_a children are mutually disjoint and share no instances in common", "type": "boolean" @@ -4258,6 +4847,13 @@ "description": "An established standard to which the element conforms.", "type": "string" }, + "contributors": { + "description": "agent that contributed to the element", + "items": { + "type": "string" + }, + "type": "array" + }, "created_by": { "description": "agent that created the element", "type": "string" @@ -4380,7 +4976,7 @@ "type": "boolean" }, "ifabsent": { - "description": "function that provides a default value for the slot. Possible values for this slot are defined in\nlinkml.utils.ifabsent_functions.default_library:\n * [Tt]rue -- boolean True\n * [Ff]alse -- boolean False\n * bnode -- blank node identifier\n * class_curie -- CURIE for the containing class\n * class_uri -- URI for the containing class\n * default_ns -- schema default namespace\n * default_range -- schema default range\n * int(value) -- integer value\n * slot_uri -- URI for the slot\n * slot_curie -- CURIE for the slot\n * string(value) -- string value", + "description": "function that provides a default value for the slot. Possible values for this slot are defined in linkml.utils.ifabsent_functions.default_library:\n * [Tt]rue -- boolean True\n * [Ff]alse -- boolean False\n * bnode -- blank node identifier\n * class_curie -- CURIE for the containing class\n * class_uri -- URI for the containing class\n * default_ns -- schema default namespace\n * default_range -- schema default range\n * int(value) -- integer value\n * slot_uri -- URI for the slot\n * slot_curie -- CURIE for the slot\n * string(value) -- string value", "type": "string" }, "implements": { @@ -4421,6 +5017,13 @@ "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.", "type": "boolean" }, + "instantiates": { + "description": "An element in another schema which this element instantiates.", + "items": { + "type": "string" + }, + "type": "array" + }, "inverse": { "description": "indicates that any instance of d s r implies that there is also an instance of r s' d", "type": "string" @@ -4449,6 +5052,13 @@ "description": "True means that the key slot(s) uniquely identify the elements within a single container", "type": "boolean" }, + "keywords": { + "description": "Keywords or tags used to describe the element", + "items": { + "type": "string" + }, + "type": "array" + }, "last_updated_on": { "description": "time at which the element was last updated", "format": "date-time", @@ -4464,7 +5074,15 @@ }, "local_names": { "additionalProperties": { - "$ref": "#/$defs/LocalName__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/LocalName__identifier_optional" + }, + { + "description": "a name assigned to an element in a given ontology", + "type": "string" + } + ] }, "type": "object" }, @@ -4545,7 +5163,7 @@ }, "path_rule": { "$ref": "#/$defs/PathExpression", - "description": "a rule for inferring a slot assignment based on evaluating a path through a sequence of slot assignemnts" + "description": "a rule for inferring a slot assignment based on evaluating a path through a sequence of slot assignments" }, "pattern": { "description": "the string value of the slot must conform to this regular expression expressed in the string", @@ -4645,7 +5263,7 @@ "description": "the string value of the slot must conform to the regular expression in the pattern expression" }, "subproperty_of": { - "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.", + "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 hierarchy into an enumerated list of possible values in every serialization of the model.", "type": "string" }, "symmetric": { @@ -4691,7 +5309,7 @@ "description": "if true then a value must be present (for lists there must be at least one value). If false then a value must be absent (for lists, must be empty)" }, "values_from": { - "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.", + "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 hierarchy into an enumerated list of possible values in every serialization of the model.", "items": { "type": "string" }, @@ -4736,7 +5354,15 @@ }, "alt_descriptions": { "additionalProperties": { - "$ref": "#/$defs/AltDescription__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/AltDescription__identifier_optional" + }, + { + "description": "text of an attributed description", + "type": "string" + } + ] }, "description": "A sourced alternative description for an element", "type": "object" @@ -4773,6 +5399,13 @@ }, "type": "array" }, + "categories": { + "description": "Controlled terms used to categorize an element.", + "items": { + "type": "string" + }, + "type": "array" + }, "children_are_mutually_disjoint": { "description": "If true then all direct is_a children are mutually disjoint and share no instances in common", "type": "boolean" @@ -4795,6 +5428,13 @@ "description": "An established standard to which the element conforms.", "type": "string" }, + "contributors": { + "description": "agent that contributed to the element", + "items": { + "type": "string" + }, + "type": "array" + }, "created_by": { "description": "agent that created the element", "type": "string" @@ -4917,7 +5557,7 @@ "type": "boolean" }, "ifabsent": { - "description": "function that provides a default value for the slot. Possible values for this slot are defined in\nlinkml.utils.ifabsent_functions.default_library:\n * [Tt]rue -- boolean True\n * [Ff]alse -- boolean False\n * bnode -- blank node identifier\n * class_curie -- CURIE for the containing class\n * class_uri -- URI for the containing class\n * default_ns -- schema default namespace\n * default_range -- schema default range\n * int(value) -- integer value\n * slot_uri -- URI for the slot\n * slot_curie -- CURIE for the slot\n * string(value) -- string value", + "description": "function that provides a default value for the slot. Possible values for this slot are defined in linkml.utils.ifabsent_functions.default_library:\n * [Tt]rue -- boolean True\n * [Ff]alse -- boolean False\n * bnode -- blank node identifier\n * class_curie -- CURIE for the containing class\n * class_uri -- URI for the containing class\n * default_ns -- schema default namespace\n * default_range -- schema default range\n * int(value) -- integer value\n * slot_uri -- URI for the slot\n * slot_curie -- CURIE for the slot\n * string(value) -- string value", "type": "string" }, "implements": { @@ -4958,6 +5598,13 @@ "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.", "type": "boolean" }, + "instantiates": { + "description": "An element in another schema which this element instantiates.", + "items": { + "type": "string" + }, + "type": "array" + }, "inverse": { "description": "indicates that any instance of d s r implies that there is also an instance of r s' d", "type": "string" @@ -4986,6 +5633,13 @@ "description": "True means that the key slot(s) uniquely identify the elements within a single container", "type": "boolean" }, + "keywords": { + "description": "Keywords or tags used to describe the element", + "items": { + "type": "string" + }, + "type": "array" + }, "last_updated_on": { "description": "time at which the element was last updated", "format": "date-time", @@ -5001,7 +5655,15 @@ }, "local_names": { "additionalProperties": { - "$ref": "#/$defs/LocalName__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/LocalName__identifier_optional" + }, + { + "description": "a name assigned to an element in a given ontology", + "type": "string" + } + ] }, "type": "object" }, @@ -5082,7 +5744,7 @@ }, "path_rule": { "$ref": "#/$defs/PathExpression", - "description": "a rule for inferring a slot assignment based on evaluating a path through a sequence of slot assignemnts" + "description": "a rule for inferring a slot assignment based on evaluating a path through a sequence of slot assignments" }, "pattern": { "description": "the string value of the slot must conform to this regular expression expressed in the string", @@ -5182,7 +5844,7 @@ "description": "the string value of the slot must conform to the regular expression in the pattern expression" }, "subproperty_of": { - "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.", + "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 hierarchy into an enumerated list of possible values in every serialization of the model.", "type": "string" }, "symmetric": { @@ -5228,7 +5890,7 @@ "description": "if true then a value must be present (for lists there must be at least one value). If false then a value must be absent (for lists, must be empty)" }, "values_from": { - "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.", + "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 hierarchy into an enumerated list of possible values in every serialization of the model.", "items": { "type": "string" }, @@ -5252,7 +5914,15 @@ }, "alt_descriptions": { "additionalProperties": { - "$ref": "#/$defs/AltDescription__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/AltDescription__identifier_optional" + }, + { + "description": "text of an attributed description", + "type": "string" + } + ] }, "description": "A sourced alternative description for an element", "type": "object" @@ -5292,6 +5962,13 @@ }, "type": "array" }, + "contributors": { + "description": "agent that contributed to the element", + "items": { + "type": "string" + }, + "type": "array" + }, "created_by": { "description": "agent that created the element", "type": "string" @@ -5357,6 +6034,13 @@ }, "type": "array" }, + "keywords": { + "description": "Keywords or tags used to describe the element", + "items": { + "type": "string" + }, + "type": "array" + }, "last_updated_on": { "description": "time at which the element was last updated", "format": "date-time", @@ -5459,7 +6143,15 @@ }, "alt_descriptions": { "additionalProperties": { - "$ref": "#/$defs/AltDescription__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/AltDescription__identifier_optional" + }, + { + "description": "text of an attributed description", + "type": "string" + } + ] }, "description": "A sourced alternative description for an element", "type": "object" @@ -5478,6 +6170,13 @@ }, "type": "array" }, + "categories": { + "description": "Controlled terms used to categorize an element.", + "items": { + "type": "string" + }, + "type": "array" + }, "close_mappings": { "description": "A list of terms from different schemas or terminology systems that have close meaning.", "items": { @@ -5496,6 +6195,13 @@ "description": "An established standard to which the element conforms.", "type": "string" }, + "contributors": { + "description": "agent that contributed to the element", + "items": { + "type": "string" + }, + "type": "array" + }, "created_by": { "description": "agent that created the element", "type": "string" @@ -5579,6 +6285,20 @@ }, "type": "array" }, + "instantiates": { + "description": "An element in another schema which this element instantiates.", + "items": { + "type": "string" + }, + "type": "array" + }, + "keywords": { + "description": "Keywords or tags used to describe the element", + "items": { + "type": "string" + }, + "type": "array" + }, "last_updated_on": { "description": "time at which the element was last updated", "format": "date-time", @@ -5586,7 +6306,15 @@ }, "local_names": { "additionalProperties": { - "$ref": "#/$defs/LocalName__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/LocalName__identifier_optional" + }, + { + "description": "a name assigned to an element in a given ontology", + "type": "string" + } + ] }, "type": "object" }, @@ -5683,7 +6411,15 @@ }, "alt_descriptions": { "additionalProperties": { - "$ref": "#/$defs/AltDescription__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/AltDescription__identifier_optional" + }, + { + "description": "text of an attributed description", + "type": "string" + } + ] }, "description": "A sourced alternative description for an element", "type": "object" @@ -5702,6 +6438,13 @@ }, "type": "array" }, + "categories": { + "description": "Controlled terms used to categorize an element.", + "items": { + "type": "string" + }, + "type": "array" + }, "close_mappings": { "description": "A list of terms from different schemas or terminology systems that have close meaning.", "items": { @@ -5720,6 +6463,13 @@ "description": "An established standard to which the element conforms.", "type": "string" }, + "contributors": { + "description": "agent that contributed to the element", + "items": { + "type": "string" + }, + "type": "array" + }, "created_by": { "description": "agent that created the element", "type": "string" @@ -5803,6 +6553,20 @@ }, "type": "array" }, + "instantiates": { + "description": "An element in another schema which this element instantiates.", + "items": { + "type": "string" + }, + "type": "array" + }, + "keywords": { + "description": "Keywords or tags used to describe the element", + "items": { + "type": "string" + }, + "type": "array" + }, "last_updated_on": { "description": "time at which the element was last updated", "format": "date-time", @@ -5810,7 +6574,15 @@ }, "local_names": { "additionalProperties": { - "$ref": "#/$defs/LocalName__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/LocalName__identifier_optional" + }, + { + "description": "a name assigned to an element in a given ontology", + "type": "string" + } + ] }, "type": "object" }, @@ -5912,7 +6684,15 @@ }, "alt_descriptions": { "additionalProperties": { - "$ref": "#/$defs/AltDescription__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/AltDescription__identifier_optional" + }, + { + "description": "text of an attributed description", + "type": "string" + } + ] }, "description": "A sourced alternative description for an element", "type": "object" @@ -5942,6 +6722,13 @@ }, "type": "array" }, + "categories": { + "description": "Controlled terms used to categorize an element.", + "items": { + "type": "string" + }, + "type": "array" + }, "close_mappings": { "description": "A list of terms from different schemas or terminology systems that have close meaning.", "items": { @@ -5960,6 +6747,13 @@ "description": "An established standard to which the element conforms.", "type": "string" }, + "contributors": { + "description": "agent that contributed to the element", + "items": { + "type": "string" + }, + "type": "array" + }, "created_by": { "description": "agent that created the element", "type": "string" @@ -6069,6 +6863,20 @@ }, "type": "array" }, + "instantiates": { + "description": "An element in another schema which this element instantiates.", + "items": { + "type": "string" + }, + "type": "array" + }, + "keywords": { + "description": "Keywords or tags used to describe the element", + "items": { + "type": "string" + }, + "type": "array" + }, "last_updated_on": { "description": "time at which the element was last updated", "format": "date-time", @@ -6076,7 +6884,15 @@ }, "local_names": { "additionalProperties": { - "$ref": "#/$defs/LocalName__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/LocalName__identifier_optional" + }, + { + "description": "a name assigned to an element in a given ontology", + "type": "string" + } + ] }, "type": "object" }, @@ -6226,7 +7042,15 @@ }, "alt_descriptions": { "additionalProperties": { - "$ref": "#/$defs/AltDescription__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/AltDescription__identifier_optional" + }, + { + "description": "text of an attributed description", + "type": "string" + } + ] }, "description": "A sourced alternative description for an element", "type": "object" @@ -6256,6 +7080,13 @@ }, "type": "array" }, + "categories": { + "description": "Controlled terms used to categorize an element.", + "items": { + "type": "string" + }, + "type": "array" + }, "close_mappings": { "description": "A list of terms from different schemas or terminology systems that have close meaning.", "items": { @@ -6274,6 +7105,13 @@ "description": "An established standard to which the element conforms.", "type": "string" }, + "contributors": { + "description": "agent that contributed to the element", + "items": { + "type": "string" + }, + "type": "array" + }, "created_by": { "description": "agent that created the element", "type": "string" @@ -6383,6 +7221,20 @@ }, "type": "array" }, + "instantiates": { + "description": "An element in another schema which this element instantiates.", + "items": { + "type": "string" + }, + "type": "array" + }, + "keywords": { + "description": "Keywords or tags used to describe the element", + "items": { + "type": "string" + }, + "type": "array" + }, "last_updated_on": { "description": "time at which the element was last updated", "format": "date-time", @@ -6390,7 +7242,15 @@ }, "local_names": { "additionalProperties": { - "$ref": "#/$defs/LocalName__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/LocalName__identifier_optional" + }, + { + "description": "a name assigned to an element in a given ontology", + "type": "string" + } + ] }, "type": "object" }, @@ -6531,7 +7391,15 @@ }, "alt_descriptions": { "additionalProperties": { - "$ref": "#/$defs/AltDescription__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/AltDescription__identifier_optional" + }, + { + "description": "text of an attributed description", + "type": "string" + } + ] }, "description": "A sourced alternative description for an element", "type": "object" @@ -6550,6 +7418,13 @@ }, "type": "array" }, + "categories": { + "description": "Controlled terms used to categorize an element.", + "items": { + "type": "string" + }, + "type": "array" + }, "close_mappings": { "description": "A list of terms from different schemas or terminology systems that have close meaning.", "items": { @@ -6568,6 +7443,13 @@ "description": "By default, None values are considered equal for the purposes of comparisons in determining uniqueness. Set this to true to treat missing values as per ANSI-SQL NULLs, i.e NULL=NULL is always False.", "type": "boolean" }, + "contributors": { + "description": "agent that contributed to the element", + "items": { + "type": "string" + }, + "type": "array" + }, "created_by": { "description": "agent that created the element", "type": "string" @@ -6633,6 +7515,13 @@ }, "type": "array" }, + "keywords": { + "description": "Keywords or tags used to describe the element", + "items": { + "type": "string" + }, + "type": "array" + }, "last_updated_on": { "description": "time at which the element was last updated", "format": "date-time", @@ -6739,7 +7628,15 @@ }, "alt_descriptions": { "additionalProperties": { - "$ref": "#/$defs/AltDescription__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/AltDescription__identifier_optional" + }, + { + "description": "text of an attributed description", + "type": "string" + } + ] }, "description": "A sourced alternative description for an element", "type": "object" @@ -6758,6 +7655,13 @@ }, "type": "array" }, + "categories": { + "description": "Controlled terms used to categorize an element.", + "items": { + "type": "string" + }, + "type": "array" + }, "close_mappings": { "description": "A list of terms from different schemas or terminology systems that have close meaning.", "items": { @@ -6776,6 +7680,13 @@ "description": "By default, None values are considered equal for the purposes of comparisons in determining uniqueness. Set this to true to treat missing values as per ANSI-SQL NULLs, i.e NULL=NULL is always False.", "type": "boolean" }, + "contributors": { + "description": "agent that contributed to the element", + "items": { + "type": "string" + }, + "type": "array" + }, "created_by": { "description": "agent that created the element", "type": "string" @@ -6841,6 +7752,13 @@ }, "type": "array" }, + "keywords": { + "description": "Keywords or tags used to describe the element", + "items": { + "type": "string" + }, + "type": "array" + }, "last_updated_on": { "description": "time at which the element was last updated", "format": "date-time", @@ -6937,10 +7855,18 @@ "additionalProperties": false, "description": "A unit of measure, or unit, is a particular quantity value that has been chosen as a scale for measuring other quantities the same kind (more generally of equivalent dimension).", "properties": { + "abbreviation": { + "description": "An abbreviation for a unit is a short ASCII string that is used in place of the full name for the unit in contexts where non-ASCII characters would be problematic, or where using the abbreviation will enhance readability. When a power of a base unit needs to be expressed, such as squares this can be done using abbreviations rather than symbols (source: qudt)", + "type": "string" + }, "derivation": { "description": "Expression for deriving this unit from other units", "type": "string" }, + "descriptive_name": { + "description": "the spelled out name of the unit, for example, meter", + "type": "string" + }, "exact_mappings": { "description": "Used to link a unit to equivalent concepts in ontologies such as UO, SNOMED, OEM, OBOE, NCIT", "items": { @@ -6971,6 +7897,7 @@ "$id": "https://w3id.org/linkml/meta", "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, + "description": "A collection of definitions that make up a schema or a data model.", "metamodel_version": "1.7.0", "properties": { "aliases": { @@ -6982,7 +7909,15 @@ }, "alt_descriptions": { "additionalProperties": { - "$ref": "#/$defs/AltDescription__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/AltDescription__identifier_optional" + }, + { + "description": "text of an attributed description", + "type": "string" + } + ] }, "description": "A sourced alternative description for an element", "type": "object" @@ -7010,7 +7945,14 @@ }, "classes": { "additionalProperties": { - "$ref": "#/$defs/ClassDefinition__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/ClassDefinition__identifier_optional" + }, + { + "type": "null" + } + ] }, "description": "An index to the collection of all class definitions in the schema", "type": "object" @@ -7033,6 +7975,13 @@ "description": "An established standard to which the element conforms.", "type": "string" }, + "contributors": { + "description": "agent that contributed to the element", + "items": { + "type": "string" + }, + "type": "array" + }, "created_by": { "description": "agent that created the element", "type": "string" @@ -7086,7 +8035,14 @@ }, "enums": { "additionalProperties": { - "$ref": "#/$defs/EnumDefinition__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/EnumDefinition__identifier_optional" + }, + { + "type": "null" + } + ] }, "description": "An index to the collection of all enum definitions in the schema", "type": "object" @@ -7161,6 +8117,13 @@ }, "type": "array" }, + "instantiates": { + "description": "An element in another schema which this element instantiates.", + "items": { + "type": "string" + }, + "type": "array" + }, "keywords": { "description": "Keywords or tags used to describe the element", "items": { @@ -7179,7 +8142,15 @@ }, "local_names": { "additionalProperties": { - "$ref": "#/$defs/LocalName__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/LocalName__identifier_optional" + }, + { + "description": "a name assigned to an element in a given ontology", + "type": "string" + } + ] }, "type": "object" }, @@ -7218,7 +8189,15 @@ }, "prefixes": { "additionalProperties": { - "$ref": "#/$defs/Prefix__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/Prefix__identifier_optional" + }, + { + "description": "The namespace to which a prefix expands to.", + "type": "string" + } + ] }, "description": "A collection of prefix expansions that specify how CURIEs can be expanded to URIs", "type": "object" @@ -7243,7 +8222,15 @@ }, "settings": { "additionalProperties": { - "$ref": "#/$defs/Setting__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/Setting__identifier_optional" + }, + { + "description": "The value assigned for a setting", + "type": "string" + } + ] }, "description": "A collection of global variable settings", "type": "object" @@ -7254,7 +8241,14 @@ }, "slots": { "additionalProperties": { - "$ref": "#/$defs/SlotDefinition__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/SlotDefinition__identifier_optional" + }, + { + "type": "null" + } + ] }, "description": "An index to the collection of all slot definitions in the schema", "type": "object" @@ -7289,7 +8283,14 @@ }, "subsets": { "additionalProperties": { - "$ref": "#/$defs/SubsetDefinition__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/SubsetDefinition__identifier_optional" + }, + { + "type": "null" + } + ] }, "description": "An index to the collection of all subset definitions in the schema", "type": "object" @@ -7307,7 +8308,14 @@ }, "types": { "additionalProperties": { - "$ref": "#/$defs/TypeDefinition__identifier_optional" + "anyOf": [ + { + "$ref": "#/$defs/TypeDefinition__identifier_optional" + }, + { + "type": "null" + } + ] }, "description": "An index to the collection of all type definitions in the schema", "type": "object" diff --git a/linkml_runtime/linkml_model/jsonschema/units.schema.json b/linkml_runtime/linkml_model/jsonschema/units.schema.json index 35cfff6a..477bc988 100644 --- a/linkml_runtime/linkml_model/jsonschema/units.schema.json +++ b/linkml_runtime/linkml_model/jsonschema/units.schema.json @@ -130,7 +130,7 @@ "type": "array" }, "has_quantity_kind": { - "description": "Concept in a vocabulary or ontology that denotes the kind of quanity being measured, e.g. length", + "description": "Concept in a vocabulary or ontology that denotes the kind of quantity being measured, e.g. length", "type": "string" }, "iec61360code": { diff --git a/linkml_runtime/linkml_model/mappings.py b/linkml_runtime/linkml_model/mappings.py index 1a7b3a03..0e7a8d97 100644 --- a/linkml_runtime/linkml_model/mappings.py +++ b/linkml_runtime/linkml_model/mappings.py @@ -1,5 +1,5 @@ # Auto generated from mappings.yaml by pythongen.py version: 0.9.0 -# Generation date: 2022-07-14T00:57:21 +# Generation date: 2023-09-01T13:21:16 # Schema: mappings # # id: https://w3id.org/linkml/mappings @@ -7,7 +7,6 @@ # license: https://creativecommons.org/publicdomain/zero/1.0/ import dataclasses -import sys import re from jsonasobj2 import JsonObj, as_dict from typing import Optional, List, Union, Dict, ClassVar, Any @@ -52,4 +51,29 @@ # Slots +class slots: + pass +slots.mappings = Slot(uri=SKOS.mappingRelation, name="mappings", curie=SKOS.curie('mappingRelation'), + model_uri=LINKML.mappings, domain=None, range=Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]]) + +slots.exact_mappings = Slot(uri=SKOS.exactMatch, name="exact mappings", curie=SKOS.curie('exactMatch'), + model_uri=LINKML.exact_mappings, domain=None, range=Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]]) + +slots.close_mappings = Slot(uri=SKOS.closeMatch, name="close mappings", curie=SKOS.curie('closeMatch'), + model_uri=LINKML.close_mappings, domain=None, range=Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]]) + +slots.related_mappings = Slot(uri=SKOS.relatedMatch, name="related mappings", curie=SKOS.curie('relatedMatch'), + model_uri=LINKML.related_mappings, domain=None, range=Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]]) + +slots.narrow_mappings = Slot(uri=SKOS.narrowMatch, name="narrow mappings", curie=SKOS.curie('narrowMatch'), + model_uri=LINKML.narrow_mappings, domain=None, range=Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]]) + +slots.broad_mappings = Slot(uri=SKOS.broadMatch, name="broad mappings", curie=SKOS.curie('broadMatch'), + model_uri=LINKML.broad_mappings, domain=None, range=Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]]) + +slots.deprecated_element_has_exact_replacement = Slot(uri=LINKML.deprecated_element_has_exact_replacement, name="deprecated element has exact replacement", curie=LINKML.curie('deprecated_element_has_exact_replacement'), + model_uri=LINKML.deprecated_element_has_exact_replacement, domain=None, range=Optional[Union[str, URIorCURIE]], mappings = [IAO["0100001"]]) + +slots.deprecated_element_has_possible_replacement = Slot(uri=LINKML.deprecated_element_has_possible_replacement, name="deprecated element has possible replacement", curie=LINKML.curie('deprecated_element_has_possible_replacement'), + model_uri=LINKML.deprecated_element_has_possible_replacement, domain=None, range=Optional[Union[str, URIorCURIE]], mappings = [OIO.consider]) diff --git a/linkml_runtime/linkml_model/meta.py b/linkml_runtime/linkml_model/meta.py index eb43d1c3..5480f1dc 100644 --- a/linkml_runtime/linkml_model/meta.py +++ b/linkml_runtime/linkml_model/meta.py @@ -1,25 +1,37 @@ # Auto generated from meta.yaml by pythongen.py version: 0.9.0 -# Generation date: 2023-03-16T10:58:36 +# Generation date: 2023-09-01T13:21:17 # Schema: meta # # id: https://w3id.org/linkml/meta -# description: The metamodel for schemas defined using the Linked Data Modeling Language framework. For more -# information on LinkML: * [linkml.io](https://linkml.io) main website * -# [specification](https://w3id.org/linkml/docs/specification/) LinkML is self-describing. Every -# LinkML schema consists of elements that instantiate classes in this metamodel. Core metaclasses: * -# [SchemaDefinition](https://w3id.org/linkml/SchemaDefinition) * -# [ClassDefinition](https://w3id.org/linkml/ClassDefinition) * -# [SlotDefinition](https://w3id.org/linkml/SlotDefinition) * -# [TypeDefinition](https://w3id.org/linkml/TypeDefinition) There are many subsets of *profiles* of -# the metamodel, for different purposes: * [MinimalSubset](https://w3id.org/linkml/MinimalSubset) * -# [BasicSubset](https://w3id.org/linkml/BasicSubset) * -# [BasicSubset](https://w3id.org/linkml/BasicSubset) For canonical reference documentation on any -# metamodel construct, refer to the official URI for each construct, e.g. -# [https://w3id.org/linkml/is_a](https://w3id.org/linkml/is_a) +# description: The metamodel for schemas defined using the Linked Data Modeling Language framework. +# +# For more information on LinkML: +# +# * [linkml.io](https://linkml.io) main website +# * [specification](https://w3id.org/linkml/docs/specification/) +# +# LinkML is self-describing. Every LinkML schema consists of elements +# that instantiate classes in this metamodel. +# +# Core metaclasses: +# +# * [SchemaDefinition](https://w3id.org/linkml/SchemaDefinition) +# * [ClassDefinition](https://w3id.org/linkml/ClassDefinition) +# * [SlotDefinition](https://w3id.org/linkml/SlotDefinition) +# * [TypeDefinition](https://w3id.org/linkml/TypeDefinition) +# +# There are many subsets of *profiles* of the metamodel, for different purposes: +# +# * [MinimalSubset](https://w3id.org/linkml/MinimalSubset) +# * [BasicSubset](https://w3id.org/linkml/BasicSubset) +# * [BasicSubset](https://w3id.org/linkml/BasicSubset) +# +# For canonical reference documentation on any metamodel construct, +# refer to the official URI for each construct, e.g. +# [https://w3id.org/linkml/is_a](https://w3id.org/linkml/is_a) # license: https://creativecommons.org/publicdomain/zero/1.0/ import dataclasses -import sys import re from jsonasobj2 import JsonObj, as_dict from typing import Optional, List, Union, Dict, ClassVar, Any @@ -46,9 +58,11 @@ dataclasses._init_fn = dataclasses_init_fn_with_kwargs # Namespaces +IAO = CurieNamespace('IAO', 'http://purl.obolibrary.org/obo/IAO_') NCIT = CurieNamespace('NCIT', 'http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#') OIO = CurieNamespace('OIO', 'http://www.geneontology.org/formats/oboInOwl#') BIBO = CurieNamespace('bibo', 'http://purl.org/ontology/bibo/') +CDISC = CurieNamespace('cdisc', 'http://rdf.cdisc.org/mms#') DCTERMS = CurieNamespace('dcterms', 'http://purl.org/dc/terms/') LINKML = CurieNamespace('linkml', 'https://w3id.org/linkml/') OSLC = CurieNamespace('oslc', 'http://open-services.net/ns/core#') @@ -167,11 +181,14 @@ class CommonMetadata(YAMLRoot): narrow_mappings: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() broad_mappings: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() created_by: Optional[Union[str, URIorCURIE]] = None + contributors: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() created_on: Optional[Union[str, XSDDateTime]] = None last_updated_on: Optional[Union[str, XSDDateTime]] = None modified_by: Optional[Union[str, URIorCURIE]] = None status: Optional[Union[str, URIorCURIE]] = None rank: Optional[int] = None + categories: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() + keywords: Optional[Union[str, List[str]]] = empty_list() def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.description is not None and not isinstance(self.description, str): @@ -260,6 +277,10 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.created_by is not None and not isinstance(self.created_by, URIorCURIE): self.created_by = URIorCURIE(self.created_by) + if not isinstance(self.contributors, list): + self.contributors = [self.contributors] if self.contributors is not None else [] + self.contributors = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.contributors] + if self.created_on is not None and not isinstance(self.created_on, XSDDateTime): self.created_on = XSDDateTime(self.created_on) @@ -275,6 +296,14 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.rank is not None and not isinstance(self.rank, int): self.rank = int(self.rank) + if not isinstance(self.categories, list): + self.categories = [self.categories] if self.categories is not None else [] + self.categories = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.categories] + + if not isinstance(self.keywords, list): + self.keywords = [self.keywords] if self.keywords is not None else [] + self.keywords = [v if isinstance(v, str) else str(v) for v in self.keywords] + super().__post_init__(**kwargs) @@ -296,6 +325,7 @@ class Element(YAMLRoot): local_names: Optional[Union[Dict[Union[str, LocalNameLocalNameSource], Union[dict, "LocalName"]], List[Union[dict, "LocalName"]]]] = empty_dict() conforms_to: Optional[str] = None implements: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() + instantiates: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() extensions: Optional[Union[Dict[Union[str, ExtensionTag], Union[dict, Extension]], List[Union[dict, Extension]]]] = empty_dict() annotations: Optional[Union[Dict[Union[str, AnnotationTag], Union[dict, Annotation]], List[Union[dict, Annotation]]]] = empty_dict() description: Optional[str] = None @@ -323,11 +353,14 @@ class Element(YAMLRoot): narrow_mappings: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() broad_mappings: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() created_by: Optional[Union[str, URIorCURIE]] = None + contributors: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() created_on: Optional[Union[str, XSDDateTime]] = None last_updated_on: Optional[Union[str, XSDDateTime]] = None modified_by: Optional[Union[str, URIorCURIE]] = None status: Optional[Union[str, URIorCURIE]] = None rank: Optional[int] = None + categories: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() + keywords: Optional[Union[str, List[str]]] = empty_list() def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self._is_empty(self.name): @@ -351,6 +384,10 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): self.implements = [self.implements] if self.implements is not None else [] self.implements = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.implements] + if not isinstance(self.instantiates, list): + self.instantiates = [self.instantiates] if self.instantiates is not None else [] + self.instantiates = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.instantiates] + self._normalize_inlined_as_dict(slot_name="extensions", slot_type=Extension, key_name="tag", keyed=True) self._normalize_inlined_as_dict(slot_name="annotations", slot_type=Annotation, key_name="tag", keyed=True) @@ -441,6 +478,10 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.created_by is not None and not isinstance(self.created_by, URIorCURIE): self.created_by = URIorCURIE(self.created_by) + if not isinstance(self.contributors, list): + self.contributors = [self.contributors] if self.contributors is not None else [] + self.contributors = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.contributors] + if self.created_on is not None and not isinstance(self.created_on, XSDDateTime): self.created_on = XSDDateTime(self.created_on) @@ -456,6 +497,14 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.rank is not None and not isinstance(self.rank, int): self.rank = int(self.rank) + if not isinstance(self.categories, list): + self.categories = [self.categories] if self.categories is not None else [] + self.categories = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.categories] + + if not isinstance(self.keywords, list): + self.keywords = [self.keywords] if self.keywords is not None else [] + self.keywords = [v if isinstance(v, str) else str(v) for v in self.keywords] + super().__post_init__(**kwargs) @@ -493,8 +542,6 @@ class SchemaDefinition(Element): generation_date: Optional[Union[str, XSDDateTime]] = None slot_names_unique: Optional[Union[bool, Bool]] = None settings: Optional[Union[Dict[Union[str, SettingSettingKey], Union[dict, "Setting"]], List[Union[dict, "Setting"]]]] = empty_dict() - categories: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() - keywords: Optional[Union[str, List[str]]] = empty_list() def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.default_prefix is None: @@ -565,14 +612,6 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): self._normalize_inlined_as_dict(slot_name="settings", slot_type=Setting, key_name="setting_key", keyed=True) - if not isinstance(self.categories, list): - self.categories = [self.categories] if self.categories is not None else [] - self.categories = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.categories] - - if not isinstance(self.keywords, list): - self.keywords = [self.keywords] if self.keywords is not None else [] - self.keywords = [v if isinstance(v, str) else str(v) for v in self.keywords] - super().__post_init__(**kwargs) @@ -965,7 +1004,7 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): class MatchQuery(YAMLRoot): """ A query that is used on an enum expression to dynamically obtain a set of permissivle values via a query that - matches on properties of the external concepts + matches on properties of the external concepts. """ _inherited_slots: ClassVar[List[str]] = [] @@ -991,7 +1030,7 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): class ReachabilityQuery(YAMLRoot): """ A query that is used on an enum expression to dynamically obtain a set of permissible values via walking from a - set of source nodes to a set of descendants or ancestors over a set of relationship types + set of source nodes to a set of descendants or ancestors over a set of relationship types. """ _inherited_slots: ClassVar[List[str]] = [] @@ -1074,11 +1113,13 @@ class StructuredAlias(YAMLRoot): narrow_mappings: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() broad_mappings: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() created_by: Optional[Union[str, URIorCURIE]] = None + contributors: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() created_on: Optional[Union[str, XSDDateTime]] = None last_updated_on: Optional[Union[str, XSDDateTime]] = None modified_by: Optional[Union[str, URIorCURIE]] = None status: Optional[Union[str, URIorCURIE]] = None rank: Optional[int] = None + keywords: Optional[Union[str, List[str]]] = empty_list() def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self._is_empty(self.literal_form): @@ -1183,6 +1224,10 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.created_by is not None and not isinstance(self.created_by, URIorCURIE): self.created_by = URIorCURIE(self.created_by) + if not isinstance(self.contributors, list): + self.contributors = [self.contributors] if self.contributors is not None else [] + self.contributors = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.contributors] + if self.created_on is not None and not isinstance(self.created_on, XSDDateTime): self.created_on = XSDDateTime(self.created_on) @@ -1198,6 +1243,10 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.rank is not None and not isinstance(self.rank, int): self.rank = int(self.rank) + if not isinstance(self.keywords, list): + self.keywords = [self.keywords] if self.keywords is not None else [] + self.keywords = [v if isinstance(v, str) else str(v) for v in self.keywords] + super().__post_init__(**kwargs) @@ -1390,11 +1439,14 @@ class AnonymousExpression(YAMLRoot): narrow_mappings: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() broad_mappings: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() created_by: Optional[Union[str, URIorCURIE]] = None + contributors: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() created_on: Optional[Union[str, XSDDateTime]] = None last_updated_on: Optional[Union[str, XSDDateTime]] = None modified_by: Optional[Union[str, URIorCURIE]] = None status: Optional[Union[str, URIorCURIE]] = None rank: Optional[int] = None + categories: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() + keywords: Optional[Union[str, List[str]]] = empty_list() def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): self._normalize_inlined_as_dict(slot_name="extensions", slot_type=Extension, key_name="tag", keyed=True) @@ -1487,6 +1539,10 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.created_by is not None and not isinstance(self.created_by, URIorCURIE): self.created_by = URIorCURIE(self.created_by) + if not isinstance(self.contributors, list): + self.contributors = [self.contributors] if self.contributors is not None else [] + self.contributors = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.contributors] + if self.created_on is not None and not isinstance(self.created_on, XSDDateTime): self.created_on = XSDDateTime(self.created_on) @@ -1502,6 +1558,14 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.rank is not None and not isinstance(self.rank, int): self.rank = int(self.rank) + if not isinstance(self.categories, list): + self.categories = [self.categories] if self.categories is not None else [] + self.categories = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.categories] + + if not isinstance(self.keywords, list): + self.keywords = [self.keywords] if self.keywords is not None else [] + self.keywords = [v if isinstance(v, str) else str(v) for v in self.keywords] + super().__post_init__(**kwargs) @@ -1552,11 +1616,14 @@ class PathExpression(YAMLRoot): narrow_mappings: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() broad_mappings: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() created_by: Optional[Union[str, URIorCURIE]] = None + contributors: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() created_on: Optional[Union[str, XSDDateTime]] = None last_updated_on: Optional[Union[str, XSDDateTime]] = None modified_by: Optional[Union[str, URIorCURIE]] = None status: Optional[Union[str, URIorCURIE]] = None rank: Optional[int] = None + categories: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() + keywords: Optional[Union[str, List[str]]] = empty_list() def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.followed_by is not None and not isinstance(self.followed_by, PathExpression): @@ -1677,6 +1744,10 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.created_by is not None and not isinstance(self.created_by, URIorCURIE): self.created_by = URIorCURIE(self.created_by) + if not isinstance(self.contributors, list): + self.contributors = [self.contributors] if self.contributors is not None else [] + self.contributors = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.contributors] + if self.created_on is not None and not isinstance(self.created_on, XSDDateTime): self.created_on = XSDDateTime(self.created_on) @@ -1692,6 +1763,14 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.rank is not None and not isinstance(self.rank, int): self.rank = int(self.rank) + if not isinstance(self.categories, list): + self.categories = [self.categories] if self.categories is not None else [] + self.categories = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.categories] + + if not isinstance(self.keywords, list): + self.keywords = [self.keywords] if self.keywords is not None else [] + self.keywords = [v if isinstance(v, str) else str(v) for v in self.keywords] + super().__post_init__(**kwargs) @@ -2503,10 +2582,13 @@ class ClassRule(ClassLevelRule): narrow_mappings: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() broad_mappings: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() created_by: Optional[Union[str, URIorCURIE]] = None + contributors: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() created_on: Optional[Union[str, XSDDateTime]] = None last_updated_on: Optional[Union[str, XSDDateTime]] = None modified_by: Optional[Union[str, URIorCURIE]] = None status: Optional[Union[str, URIorCURIE]] = None + categories: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() + keywords: Optional[Union[str, List[str]]] = empty_list() def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.preconditions is not None and not isinstance(self.preconditions, AnonymousClassExpression): @@ -2620,6 +2702,10 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.created_by is not None and not isinstance(self.created_by, URIorCURIE): self.created_by = URIorCURIE(self.created_by) + if not isinstance(self.contributors, list): + self.contributors = [self.contributors] if self.contributors is not None else [] + self.contributors = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.contributors] + if self.created_on is not None and not isinstance(self.created_on, XSDDateTime): self.created_on = XSDDateTime(self.created_on) @@ -2632,6 +2718,14 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.status is not None and not isinstance(self.status, URIorCURIE): self.status = URIorCURIE(self.status) + if not isinstance(self.categories, list): + self.categories = [self.categories] if self.categories is not None else [] + self.categories = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.categories] + + if not isinstance(self.keywords, list): + self.keywords = [self.keywords] if self.keywords is not None else [] + self.keywords = [v if isinstance(v, str) else str(v) for v in self.keywords] + super().__post_init__(**kwargs) @@ -2677,11 +2771,14 @@ class PatternExpression(YAMLRoot): narrow_mappings: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() broad_mappings: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() created_by: Optional[Union[str, URIorCURIE]] = None + contributors: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() created_on: Optional[Union[str, XSDDateTime]] = None last_updated_on: Optional[Union[str, XSDDateTime]] = None modified_by: Optional[Union[str, URIorCURIE]] = None status: Optional[Union[str, URIorCURIE]] = None rank: Optional[int] = None + categories: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() + keywords: Optional[Union[str, List[str]]] = empty_list() def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.syntax is not None and not isinstance(self.syntax, str): @@ -2783,6 +2880,10 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.created_by is not None and not isinstance(self.created_by, URIorCURIE): self.created_by = URIorCURIE(self.created_by) + if not isinstance(self.contributors, list): + self.contributors = [self.contributors] if self.contributors is not None else [] + self.contributors = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.contributors] + if self.created_on is not None and not isinstance(self.created_on, XSDDateTime): self.created_on = XSDDateTime(self.created_on) @@ -2798,6 +2899,14 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.rank is not None and not isinstance(self.rank, int): self.rank = int(self.rank) + if not isinstance(self.categories, list): + self.categories = [self.categories] if self.categories is not None else [] + self.categories = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.categories] + + if not isinstance(self.keywords, list): + self.keywords = [self.keywords] if self.keywords is not None else [] + self.keywords = [v if isinstance(v, str) else str(v) for v in self.keywords] + super().__post_init__(**kwargs) @@ -2843,11 +2952,14 @@ class ImportExpression(YAMLRoot): narrow_mappings: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() broad_mappings: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() created_by: Optional[Union[str, URIorCURIE]] = None + contributors: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() created_on: Optional[Union[str, XSDDateTime]] = None last_updated_on: Optional[Union[str, XSDDateTime]] = None modified_by: Optional[Union[str, URIorCURIE]] = None status: Optional[Union[str, URIorCURIE]] = None rank: Optional[int] = None + categories: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() + keywords: Optional[Union[str, List[str]]] = empty_list() def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self._is_empty(self.import_from): @@ -2950,6 +3062,10 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.created_by is not None and not isinstance(self.created_by, URIorCURIE): self.created_by = URIorCURIE(self.created_by) + if not isinstance(self.contributors, list): + self.contributors = [self.contributors] if self.contributors is not None else [] + self.contributors = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.contributors] + if self.created_on is not None and not isinstance(self.created_on, XSDDateTime): self.created_on = XSDDateTime(self.created_on) @@ -2965,6 +3081,14 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.rank is not None and not isinstance(self.rank, int): self.rank = int(self.rank) + if not isinstance(self.categories, list): + self.categories = [self.categories] if self.categories is not None else [] + self.categories = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.categories] + + if not isinstance(self.keywords, list): + self.keywords = [self.keywords] if self.keywords is not None else [] + self.keywords = [v if isinstance(v, str) else str(v) for v in self.keywords] + super().__post_init__(**kwargs) @@ -3154,11 +3278,14 @@ class PermissibleValue(YAMLRoot): narrow_mappings: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() broad_mappings: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() created_by: Optional[Union[str, URIorCURIE]] = None + contributors: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() created_on: Optional[Union[str, XSDDateTime]] = None last_updated_on: Optional[Union[str, XSDDateTime]] = None modified_by: Optional[Union[str, URIorCURIE]] = None status: Optional[Union[str, URIorCURIE]] = None rank: Optional[int] = None + categories: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() + keywords: Optional[Union[str, List[str]]] = empty_list() def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self._is_empty(self.text): @@ -3269,6 +3396,10 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.created_by is not None and not isinstance(self.created_by, URIorCURIE): self.created_by = URIorCURIE(self.created_by) + if not isinstance(self.contributors, list): + self.contributors = [self.contributors] if self.contributors is not None else [] + self.contributors = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.contributors] + if self.created_on is not None and not isinstance(self.created_on, XSDDateTime): self.created_on = XSDDateTime(self.created_on) @@ -3284,6 +3415,14 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.rank is not None and not isinstance(self.rank, int): self.rank = int(self.rank) + if not isinstance(self.categories, list): + self.categories = [self.categories] if self.categories is not None else [] + self.categories = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.categories] + + if not isinstance(self.keywords, list): + self.keywords = [self.keywords] if self.keywords is not None else [] + self.keywords = [v if isinstance(v, str) else str(v) for v in self.keywords] + super().__post_init__(**kwargs) @@ -3329,11 +3468,14 @@ class UniqueKey(YAMLRoot): narrow_mappings: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() broad_mappings: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() created_by: Optional[Union[str, URIorCURIE]] = None + contributors: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() created_on: Optional[Union[str, XSDDateTime]] = None last_updated_on: Optional[Union[str, XSDDateTime]] = None modified_by: Optional[Union[str, URIorCURIE]] = None status: Optional[Union[str, URIorCURIE]] = None rank: Optional[int] = None + categories: Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]] = empty_list() + keywords: Optional[Union[str, List[str]]] = empty_list() def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self._is_empty(self.unique_key_name): @@ -3440,6 +3582,10 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.created_by is not None and not isinstance(self.created_by, URIorCURIE): self.created_by = URIorCURIE(self.created_by) + if not isinstance(self.contributors, list): + self.contributors = [self.contributors] if self.contributors is not None else [] + self.contributors = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.contributors] + if self.created_on is not None and not isinstance(self.created_on, XSDDateTime): self.created_on = XSDDateTime(self.created_on) @@ -3455,6 +3601,14 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.rank is not None and not isinstance(self.rank, int): self.rank = int(self.rank) + if not isinstance(self.categories, list): + self.categories = [self.categories] if self.categories is not None else [] + self.categories = [v if isinstance(v, URIorCURIE) else URIorCURIE(v) for v in self.categories] + + if not isinstance(self.keywords, list): + self.keywords = [self.keywords] if self.keywords is not None else [] + self.keywords = [v if isinstance(v, str) else str(v) for v in self.keywords] + super().__post_init__(**kwargs) @@ -3463,14 +3617,18 @@ class PvFormulaOptions(EnumDefinitionImpl): """ The formula used to generate the set of permissible values from the code_set values """ - CODE = PermissibleValue(text="CODE", - description="The permissible values are the set of possible codes in the code set") - CURIE = PermissibleValue(text="CURIE", - description="The permissible values are the set of CURIES in the code set") - URI = PermissibleValue(text="URI", - description="The permissible values are the set of code URIs in the code set") - FHIR_CODING = PermissibleValue(text="FHIR_CODING", - description="The permissible values are the set of FHIR coding elements derived from the code set") + CODE = PermissibleValue( + text="CODE", + description="The permissible values are the set of possible codes in the code set") + CURIE = PermissibleValue( + text="CURIE", + description="The permissible values are the set of CURIES in the code set") + URI = PermissibleValue( + text="URI", + description="The permissible values are the set of code URIs in the code set") + FHIR_CODING = PermissibleValue( + text="FHIR_CODING", + description="The permissible values are the set of FHIR coding elements derived from the code set") _defn = EnumDefinition( name="PvFormulaOptions", @@ -3494,19 +3652,24 @@ class RelationalRoleEnum(EnumDefinitionImpl): """ enumeration of roles a slot on a relationship class can play """ - SUBJECT = PermissibleValue(text="SUBJECT", - description="a slot with this role connects a relationship to its subject/source node", - meaning=RDF.subject) - OBJECT = PermissibleValue(text="OBJECT", - description="a slot with this role connects a relationship to its object/target node", - meaning=RDF.object) - PREDICATE = PermissibleValue(text="PREDICATE", - description="a slot with this role connects a relationship to its predicate/property", - meaning=RDF.predicate) - NODE = PermissibleValue(text="NODE", - description="a slot with this role connects a symmetric relationship to a node that represents either subject or object node") - OTHER_ROLE = PermissibleValue(text="OTHER_ROLE", - description="a slot with this role connects a relationship to a node that is not subject/object/predicate") + SUBJECT = PermissibleValue( + text="SUBJECT", + description="a slot with this role connects a relationship to its subject/source node", + meaning=RDF.subject) + OBJECT = PermissibleValue( + text="OBJECT", + description="a slot with this role connects a relationship to its object/target node", + meaning=RDF.object) + PREDICATE = PermissibleValue( + text="PREDICATE", + description="a slot with this role connects a relationship to its predicate/property", + meaning=RDF.predicate) + NODE = PermissibleValue( + text="NODE", + description="""a slot with this role connects a symmetric relationship to a node that represents either subject or object node""") + OTHER_ROLE = PermissibleValue( + text="OTHER_ROLE", + description="a slot with this role connects a relationship to a node that is not subject/object/predicate") _defn = EnumDefinition( name="RelationalRoleEnum", @@ -3517,14 +3680,18 @@ class AliasPredicateEnum(EnumDefinitionImpl): """ permissible values for the relationship between an element and an alias """ - EXACT_SYNONYM = PermissibleValue(text="EXACT_SYNONYM", - meaning=SKOS.exactMatch) - RELATED_SYNONYM = PermissibleValue(text="RELATED_SYNONYM", - meaning=SKOS.relatedMatch) - BROAD_SYNONYM = PermissibleValue(text="BROAD_SYNONYM", - meaning=SKOS.broaderMatch) - NARROW_SYNONYM = PermissibleValue(text="NARROW_SYNONYM", - meaning=SKOS.narrowerMatch) + EXACT_SYNONYM = PermissibleValue( + text="EXACT_SYNONYM", + meaning=SKOS.exactMatch) + RELATED_SYNONYM = PermissibleValue( + text="RELATED_SYNONYM", + meaning=SKOS.relatedMatch) + BROAD_SYNONYM = PermissibleValue( + text="BROAD_SYNONYM", + meaning=SKOS.broaderMatch) + NARROW_SYNONYM = PermissibleValue( + text="NARROW_SYNONYM", + meaning=SKOS.narrowerMatch) _defn = EnumDefinition( name="AliasPredicateEnum", @@ -3547,6 +3714,9 @@ class slots: slots.implements = Slot(uri=LINKML.implements, name="implements", curie=LINKML.curie('implements'), model_uri=LINKML.implements, domain=Element, range=Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]]) +slots.instantiates = Slot(uri=LINKML.instantiates, name="instantiates", curie=LINKML.curie('instantiates'), + model_uri=LINKML.instantiates, domain=Element, range=Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]]) + slots.categories = Slot(uri=DCTERMS.subject, name="categories", curie=DCTERMS.curie('subject'), model_uri=LINKML.categories, domain=None, range=Optional[Union[Union[str, URIorCURIE], List[Union[str, URIorCURIE]]]]) @@ -4229,4 +4399,4 @@ class slots: model_uri=LINKML.permissible_value_is_a, domain=PermissibleValue, range=Optional[Union[str, PermissibleValueText]]) slots.permissible_value_mixins = Slot(uri=LINKML.mixins, name="permissible_value_mixins", curie=LINKML.curie('mixins'), - model_uri=LINKML.permissible_value_mixins, domain=PermissibleValue, range=Optional[Union[Union[str, PermissibleValueText], List[Union[str, PermissibleValueText]]]]) \ No newline at end of file + model_uri=LINKML.permissible_value_mixins, domain=PermissibleValue, range=Optional[Union[Union[str, PermissibleValueText], List[Union[str, PermissibleValueText]]]]) diff --git a/linkml_runtime/linkml_model/model/docs/specification/00preamble.md b/linkml_runtime/linkml_model/model/docs/specification/00preamble.md new file mode 100644 index 00000000..1eedeaf5 --- /dev/null +++ b/linkml_runtime/linkml_model/model/docs/specification/00preamble.md @@ -0,0 +1,28 @@ +# Linked Data Modeling Language: Specification + +Authors: + + - Chris Mungall, Lawrence Berkeley National Laboratory + - Harold Solbrig, Johns Hopkins University + +## Abstract + +The Linked Data Modeling Language (LinkML) is a language for writing schemas that describe the structure of *instance* data. A LinkML schema consists of a number of different elements, including *classes*, which are used to type instances, and *slots* which are used to describe instance data attributes. + +The LinkML specification defines the structure of instance data using a functional-style syntax, and defines the elements of a schema, together with the rules for operating over these schemas. + +## Notes + +More information about LinkML can be found on the [LinkML site](https://linkml.io), which includes introductory material and [tutorials](https://linkml.io/linkml/intro/tutorial). +It also includes a reference implementation and set of tools for working with LinkML schemas and data. + +The specification provided here is intended to be independent of any particular tool or implementation. + +### Status of this specification + +This is a draft specification open from comments to all. + +### License + +This specification, like all parts of LinkML are in the public domain under a Creative Commons Zero license waiver. + diff --git a/linkml_runtime/linkml_model/model/docs/specification/01introduction.md b/linkml_runtime/linkml_model/model/docs/specification/01introduction.md new file mode 100644 index 00000000..d3190b26 --- /dev/null +++ b/linkml_runtime/linkml_model/model/docs/specification/01introduction.md @@ -0,0 +1,85 @@ +# Introduction + +This document is a functional draft specification for the Linked Data Modeling Language (LinkML). + +LinkML is a data modeling language for describing the structure of a collection of *instances*, where instances are tree-like object-oriented structures. Instances represent things of interest in a particular domain, such as individual people, biological samples, places, events, or abstract entities. + +Instances are either primitive *types* such as numbers or strings, or *objects* that are typed using *classes* from a LinkML *schema*. Classes are categories or groupings of things in the domain of interest; for example, `Person`, `Medical History`, `Data file`, or `Country`. Instances can be inter-related by assigning *values* to particular *slots*; for example, an instance of a Person may have values for slots `name` or `country of birth`. + +LinkML schemas also specify *rules* for determining if instances conform to the schema, and for *inference* adding additional implicit slot values. + +LinkML is independent of any programming language, database technology, and is independent of any concrete form for serializing instances of schemas. Mappings are provided for serializing instances as JSON, YAML, RDF, flat tables, or relational models, or for mapping to programming language structures. However, the structure and semantics of LinkML are not dependent on any of these. Schemas are typically expressed using the YAML serialization, but this specification is defined independent of that particular serialization. + +LinkML is self-describing, and any LinkML schema is itself a collection instances that instantiates elements in a special schema called the *LinkML metamodel*. + +## Audience + +This document is intended for LinkML tool and framework implementors, and is intended to formally specify the structure and semantics of LinkML. + +For a more lightweight introduction, consult the material on the main [LinkML site](https://linkml.io), +including the LinkML tutorial. + +## Conventions and terminology + +The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC 2119](https://www.ietf.org/rfc/rfc2119.txt). + +## BNF + +Grammars in this specification are written using the BNF notation, summarized below: + +Construct | Syntax | +|---|---| +terminal symbols | enclosed in single quotes | +a set of terminal symbols described in English | italic | +nonterminal symbols | boldface | +zero or more | curly braces | +zero or one | square brackets | +alternative | vertical bar | + +We also include a meta-production rule for expressing comma-delimited lists + +``` +List ::= [ { ',' List } ] +``` + +## Outline + +The specification is organized in 6 parts. The parts are not independent, as each part builds on concepts introduced in previous parts. + +### Part 1: Introduction + +This section. Background information and preliminary definitions. + +### Part 2: Structure and Syntax of Instances + +Part 2 provides a *structural specification* of LinkML **instances**. The structural specification is provided as a normative abstract functional-style syntax. UML diagrams are provided for informative purposes. + +This syntax is not intended as an actual exchange syntax for LinkML data. For that, existing syntaxes such as JSON, YAML, or RDF syntaxes should be used (see Part 6). The abstract syntax allows for a separation of the essential features of the language from issues related to any particular syntax. + +Part 2 also introduces a **path accessor** syntax for specifying how to traverse LinkML instances. + +The abstract syntax and path accessor syntax are used in the remainder of the specification. + +### Part 3: Structure of Schemas + +Introduces the concept of a LinkML schema, which specifies how conforming LinkML instances are intended to be structured. + +This part specifies the core elements of a LinkML schema: [ClassDefinitions](https://w3id.org/linkml/ClassDefinition), [TypeDefinitions](https://w3id.org/linkml/TypeDefinition), [SlotDefinitions](https://w3id.org/linkml/SlotDefinition), [EnumDefinitions](https://w3id.org/linkml/EnumDefinition), as well as ancillary structures. + +This part also introduces the concept of the LinkML metamodel. A LinkML schema is both a specification of conformance conditions for an instance, and at the same time an instance that conforms to the metamodel schema. + +### Part 4: Derived Schemas and Schema Semantics + +Specification of inference functions and procedures for **derived schemas** to populate missing values in schemas. + +### Part 5: Validation of Instance Data + +Specification of the procedure for **validating** LinkML instances using a derived schema. + +### Part 6: Mapping of Instance Data + +Specification of how LinkML instances are mapped to other data models and concrete syntaxes: + +- JSON and the JSON subset of YAML +- RDF and JSON-LD +- in-memory object-oriented representations diff --git a/linkml_runtime/linkml_model/model/docs/specification/02instances.md b/linkml_runtime/linkml_model/model/docs/specification/02instances.md new file mode 100644 index 00000000..2c08cc62 --- /dev/null +++ b/linkml_runtime/linkml_model/model/docs/specification/02instances.md @@ -0,0 +1,331 @@ +# LinkML Instances + +## Abstract Functional Instance Syntax and Structure + +This specification provides a grammar for a **functional syntax** for expressing the structure of LinkML instances. A LinkML instance is a tree-like structure conforming to the syntax specified here. + +This syntax is not intended for data exchange, but instead for unambiguous describing data in LinkML in a way that is independent of any particular syntax. + +[Section 6](../06mapping) specifies how the instance model is serialized as JSON, YAML, and RDF, and guidelines for mapping to object-oriented programming representations. + +This section uses BNF to define the structure of the LinkML instance abstract model. +We also include UML-style diagrams for informative purposes. + +### Instances + +An instance is a tree-like structure conforming to either one of four *definition* types, or a *collection*, or the special token `None`. The four definition types are subdivided into instances of classes (aka objects), or atomic instances: + +> **Instance** := **None** | **InstanceOfClass** | **AtomicInstance** | **CollectionInstance** + +> **AtomicInstance** := **InstanceOfType** | **InstanceOfEnum** | **InstanceOfReference** + +```mermaid +classDiagram + Instance <|-- InstanceOfClass + Instance <|-- AtomicInstance + AtomicInstance <|-- InstanceOfReference + AtomicInstance <|-- InstanceOfType + AtomicInstance <|-- InstanceOfEnum + Instance <|-- CollectionInstance + Instance <-- None + +``` + +### Definition Types and Names + +Definition names are used to unambiguously indicate *elements* specified in a **Schema** (described in [Part 3](../03schemas)): + +> **ClassDefinitionName** := **ElementName** + +> **TypeDefinitionName** := **ElementName** + +> **EnumDefinitionName** := **ElementName** + +> **SlotDefinitionName** := **ElementName** + +> **ElementName** := *a finite sequence of characters matching the PN_LOCAL production of [SPARQL](https://www.w3.org/TR/rdf-sparql-query/) and not matching any of the keyword terminals of the syntax* + +Names MUST NOT be shared across definition types + +### Instances of Classes (Objects) + +An **InstanceOfClass** is a pair consisting of (1) a ClassDefinition *Name* that indicates the *instantiation type* of the instance, and (2) zero to many *Assignments**, where each +assignment is a key-value pair of a **SlotName** and an **Instance** value. + +> **InstanceOfClass** := **ClassDefinitionName** '(' <**Assignment**>List ')' + +> **Assignment** := **SlotDefinitionName** '=' **Instance** + +```mermaid +classDiagram + Instance <|-- InstanceOfClass + InstanceOfClass "1" --> "1..*" Assignment + Assignment "1" --> Instance + + class InstanceOfClass { + +ClassDefinitionName type + +Assignment assignments + } + class Assignment { + +SlotDefinitionName slot + +Instance value + } +``` + +No SlotDefinitionName can appear twice in any set of Assignments (i.e. SlotDefinitionName is a *key*) + +An example instance might be written in functional syntax as: + +```python +Person(id=..., + name=..., + age=..., + ) +``` + +Here the **ClassDefinitionName** is `Person`, and the **SlotDefinitionName**s are `id`, `name`, `age`. + +### Primitive (Atomic) Instances + +There are 3 types of primitive (aka atomic aka scalar) instances, each is a pair consisting of (1) a *Name* of the element instantiated (2) an atomic value. Different syntaxes are used to unambiguously distinguish the different types of primitive instances. + +> **InstanceOfType** := **TypeDefinitionName** '^' **AtomicValue** + +> **InstanceOfEnum** := **EnumDefinitionName** '[' **PermissibleValue** ']' +> +> **PermissibleValue** := **AtomicValue** + +> **InstanceOfReference** := **ClassDefinitionName** '&' **ObjectReference** +> +> **ObjectReference** := **AtomicValue** + +```mermaid +classDiagram + Instance <|-- AtomicInstance + AtomicInstance <|-- InstanceOfReference + AtomicInstance <|-- InstanceOfType + AtomicInstance <|-- InstanceOfEnum + class Instance { + + } + class AtomicInstance { + +AtomicValue value + } + class InstanceOfReference { + +ClassDefinitionName type + } + class InstanceOfType { + +TypeDefinitionName type + } + class InstanceOfEnum { + +EnumDefinitionName type + } +``` + +Terminology note: Primitive instances are also known as "literals" or "scalars". + +### Atomic Values + +An atomic value is either a string or number or boolean, where numbers can be floating points, decimals, or integers. + +> **AtomicValue** := **QuotedString** | **NumberValue** | **BooleanValue** + +> **QuotedString** := '"' **StringValue** '"' +> +> **StringValue** := *a finite sequence of characters in which " (U+22) and \ (U+5C) occur only in pairs of the form \" (U+5C, U+22) and \\ (U+5C, U+5C), enclosed in a pair of " (U+22) characters* + +> **NumberValue** := **FloatingPointValue** | **DecimalValue** | **IntegerValue** + +> **FloatingPointValue** ::= [ '+' | '-'] ( **Digits** ['.'**Digits**] [ **Exponent** ] | '.' **Digits** [ **Exponent** ]) ( 'f' | 'F' ) + +> **Exponent** ::= ('e' | 'E') ['+' | '-'] **Digits** + +> **DecimalValue** ::= ['+' | '-'] **Digits** '.' **Digits** + +> **IntegerValue** ::= ['+' | '-'] **Digits** + +> **NonNegativeInteger** ::= **Zero** | **PositiveInteger** + +> **PositiveInteger** ::= **NonZero** { **Digit** } + +> **Digits** ::= **Digit** { **Digit** } + +> **Digit** ::= **Zero** | **NonZero** + +> **NonZero** := '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' + +> **Zero** ::= '0' + +> **BooleanValue** ::= 'True' | 'False' + +Examples of atomic values are: + +* `180.2` -- a DecimalValue +* `5` -- an IntegerValue +* `"Alex"` -- a StringValue +* `True` -- a BooleanValue +* `"2023-01-01"` -- a StringValue (which happens to be interpetable as a date) + +#### Atomic Instance Examples + +An **InstanceOfType** instance might look like: + +```python +Integer^23 +``` + +In this example, the **TypeDefinitionName** is `Integer`, and the **AtomicValue** is the number `23`. + +Note that this is necessarily a syntactically valid Instance according to this part of the specification. Part 6 describes schema-level validation, and for this to be valid according to a schema, that schema must (a) provide a TypeDefinition with the name "Integer" (b) map this to an XSD number type (presumably, xsd:integer). + +Note that the following is *syntactically valid*: + +```python +Integer^"ABC" +``` + +If `Integer` is a TypeDefinition that is mapped to the XSD type for integers, then this will be invalid according to the schema, but at the syntactic level the structure is valid. + + +Another example if a syntactically valid **InstanceOfType**: + +```python +PhoneNumber^"+1 800 555 0100" +``` + +For this to be a valid according to a schema InstanceOfType, "PhoneNumber" must be the name of a TypeDefinition in the schema, mapped to an XSD string type. + +An example of a syntactically valid **InstanceOfReference**: + +```python +Person&"SSN:456" +``` + +This is syntactically valid, but for it to be valid according to a schema, the schema must include a ClassDefinition with the name `Person`, and that ClassDefinition must have an *identifier* (see Part 6). + +### Collections + +A collection is zero or more instances, serialized as a comma-delimited list inside square brackets: + +> **CollectionInstance** := '[' <**Instance**>List ']' + +```mermaid + +classDiagram +Instance <|-- CollectionInstance +CollectionInstance "*" --> "0..*" Instance +``` + +Examples of collections: + +* `[String^"A", String^"B", Integer^5]` -- a list of primitive instances +* `[Person(name=..., ...), Person(name=..., ...)]` -- a list of class instances +* `[Person(name=..., ...), Integer^5, None]` -- a heterogeneous collection +* `[]` -- an empty collection + +Note that collections can be serialized in different ways depending on the target syntax, for examples, lists vs dictionaries. See section [6](../06mapping) for details of serializations. + +### None (Null) instances + +A special symbol is included to indicate null or missing values + +> **None** := 'None' + +An assignment of a slot to None is equivalent to omitting that assignment. I.e. the following two instance serializations are equivalent: + +``` +Person(address=None) +``` + +``` +Person() +``` + +### Combined Example + +The following is an example of an **InstanceOfClass** where the instantiated type is a class with name "Person": + +```python +Person( + id=String^"SSN:123", + name=String^"Alex", + aliases=[String^"Alexandra"], + address=None, + phone=PhoneNumber^"+1 800 555 0100", + height= + Measurement(value=Decimal^170.2 + unit=UnitCode["cm"]), + relationships=[ + FamilialRelationship( + type=RelationshipType["SIBLING_OF"], + related_to=Person&"SSN:456" + ) + ] +) +``` + +## Identity conditions + +Two instances `i` and `j` are identical if one of the following conditions is met: + +| **Name** | `i` | `j` | Additional Conditions | +|-------------------|---------------------------------------|---------------------------------------|-----------------------| +| `None` | `None` | `None` | | +| `TypeDefinition` | `^` | `^` | | +| `ObjectReference` | `&` | `&` | | +| `EnumDefinition` | `[]` | `[` | | +| `ClassDefinition` | `(ai1, ..., aiN)` | `(aj1, ..., ajN)` | See below | +| `Collection` | `[i1, ..., iN]` | `[j1, ..., jN]` | `i1=j`, ..., `iN=jN` | + +### Identity conditions for ClassDefinition Instances + +Two ClassDefinition instances `i` and `j` are identical if (1) both instantiate the same class, and all slot assignments can be matched, regardless of order. + +Note that prior to comparison, the representation is first *normalized* and all assignments whose value is `None` are removed. + +``` +if + i == () and j == () and + all(a_i in Assignments_i if any(a_j in Assignments_j if a_i == a_j)) and + all(a_j in Assignments_j if any(a_i in Assignments_i if a_i == a_j)) +then + i == j +``` + +Two slot value assignments are identical if either (1) either is None (b) slot and value match + +Assignment identity conditions: + +``` +if + a_i == = and a_j == = and Value_i == Value_j +then + a_i == a_j +``` + + +## Instance Accessor Syntax + +For a given instance `i`, **Path** syntax can be used to dereference values. + +> **PathComponent** := '.' **SlotDefinitionName** | '[' **Identifier** ']' +> +> **Identifier** := **AtomicValue** + +An path is a name of a variable denoting an instance followed by zero or more **PathComponent**s. + +> **Path** := **VariableName** [ **PathComponent** ] + +To interpret a path *p*: + +1. **VariableName** is resolved to an instance *i* +2. For each path component in the path, reset *i* to be the value of looking up that component: + - if the path extension is `.` then *r* must be an **InstanceOfClass*, and the value is equal to the value of the slot assignment for slot `s` + - if the path extension is `[]` then *r* must be an **InstanceOfCollection**, and the value is equals to the member of that list that has a slot with the role of *identifier* whose value is `` + +For example, if *i* is equal to the Person instance in the Combined Example above: + +* `i` == `i` +* `i.id` == `String^"SSN:123"` +* `i.height.unit` == `String^"cm"` +* `i.relationships[0].related_to` == `Person&"SSN:456"` diff --git a/linkml_runtime/linkml_model/model/docs/specification/03schemas.md b/linkml_runtime/linkml_model/model/docs/specification/03schemas.md new file mode 100644 index 00000000..ff427fc1 --- /dev/null +++ b/linkml_runtime/linkml_model/model/docs/specification/03schemas.md @@ -0,0 +1,794 @@ +# Schema Data Model + +This section describes the *structure* of LinkML schemas. For precise *semantic* interpretation of these structures, refer to the following two parts on *derived schemas* (part 4) and *validation* (part 5). + +## Schema Basics + +A LinkML **schema** specifies rules and structural conformance conditions for **instances**. Schemas allow for: + +- **parsing** of instance *serializations* to LinkML instances +- structurally and semantically **validating** LinkML instances +- **inference** of missing values in LinkML instances + +## The LinkML Metamodel + +Every LinkML schema *m* is itself an instance of a special class [SchemaDefinition](https://w3id.org/linkml/SchemaDefinition) that forms part of a special schema called the **LinkML metamodel**, which is denoted by *mM*. There is exactly one metamodel. + +In this specification: + + - ClassDefinitions in *mM* are called **metaclasses** + - SlotDefinitions in *mM* are called **metaslots** + +The metamodel is itself expressed in LinkML, and the latest version can found from canonical URLs: + +* [https://w3id.org/linkml/SchemaDefinition](https://w3id.org/linkml/SchemaDefinition) -- top level class +* [https://w3id.org/linkml/meta.yaml](https://w3id.org/linkml/meta.yaml) -- canonical YAML serialization of the metamodel + +This specification specifies the *normative elements* necessary to specify the behavior of LinkML schemas. Schemas may have additional +elements provided in the metamodel. For example, elements in schemas can have *informative* slot assignments for slots such as [title](https://w3id.org/linkml/title), [description](https://w3id.org/linkml/description), and so on, but these slots are not described in this specification as they are not normative and do not affect the formal interpretation of schemas. + +The subset of the metamodel that corresponds to the specification is called the SpecificationProfile, and it is found at: + +* [https://w3id.org/linkml/SpecificationSubset](https://w3id.org/linkml/SpecificationSubset) + +### YAML representation of schemas + +This part of the specification specifies schemas in terms of the abstract functional syntax (part 2). + +For practical purposes, the canonical serialization of a schema is in YAML. The rules for serializing and deserializing LinkML schemas are the same as for instances, because every schema is an object that instantiates a SchemaDefinition class in the metamodel. + +See [section 6](06mapping) for rules for mapping to YAML. + +### Analogies to other modeling frameworks + +To help understand the basic concepts, it can be helpful to think about analogous structures in other frameworks. +However, it should be understood these are not precisely equivalent. + + * ClassDefinitions are analogous to: + - [classes](https://en.wikipedia.org/wiki/Class_(computer_programming)) in object-oriented languages + - tables in relational databases and spreadsheets + - owl:Class entities in RDFS/OWL + * SlotDefinitions are analogous to: + - [attributes](https://en.wikipedia.org/wiki/Attribute_(computing)) in object-oriented languages + - columns or fields in relational databases and spreadsheets + - properties in JSON-Schema + - rdf:Property entities in RDFS/OWL + * EnumDefinitions are analogous to: + - [enumerated types](https://en.wikipedia.org/wiki/Enumerated_type) in programming languages and some relational systems + - drop-down selections in spreadsheets + - Note however that in LinkML enums are optionally backed by stronger semantics with enum elements (permissible values) mapped to vocabularies or ontologies + * TypeDefinitions are analogous to: + - [data types](https://en.wikipedia.org/wiki/Data_type) in most object-oriented languages + - primitive types in database systems + - extensible types in some systems + - rdf:Literals in RDF + - Datatypes in OWL + +## SchemaDefinition Metaclass + +* metamodel documentation: [SchemaDefinition](https://w3id.org/linkml/SchemaDefinition) + +### SchemaDefinition: Normative subset metaslots + +A schema *m* is an instance of a SchemaDefinition, with normative elements: + +| Name | Cardinality and Range | Description | +| --- | --- |-------------------------------------------------------------------------------------------------| +| [id](id.md) | 1..1
[xsd:anyURI](http://www.w3.org/2001/XMLSchema#anyURI) | The official schema URI | +| [name](name.md) | 1..1
[xsd:string](http://www.w3.org/2001/XMLSchema#string) | a unique name for the schema that is both human-readable and consists of only... **identifier** | +| [classes](classes.md) | 0..*
[ClassDefinition](ClassDefinition.md) | An index to the collection of all class definitions in the schema | +| [slot_definitions](slot_definitions.md) | 0..*
[SlotDefinition](SlotDefinition.md) | An index to the collection of all slot definitions in the schema | +| [enums](enums.md) | 0..*
[EnumDefinition](EnumDefinition.md) | An index to the collection of all enum definitions in the schema | +| [subsets](subsets.md) | 0..*
[SubsetDefinition](SubsetDefinition.md) | An index to the collection of all subset definitions in the schema | +| [prefixes](prefixes.md) | 0..*
[Prefix](Prefix.md) | prefix / URI definitions to be added to the context beyond those fetched from... | +| [default_prefix](default_prefix.md) | 0..1
[xsd:string](http://www.w3.org/2001/XMLSchema#string) | default and base prefix -- used for ':' identifiers, @base and @vocab | +| [default_range](default_range.md) | 0..1
[TypeDefinition](TypeDefinition.md) | default slot range to be used if range element is omitted from a slot definitition... | +| [settings](settings.md) | 0..*
[Setting](Setting.md) | A collection of global variable settings | +| [imports](imports.md) | 0..*
[xsd:anyURI](http://www.w3.org/2001/XMLSchema#anyURI) | other schemas that are included in this schema | +| [rank](rank.md) | 0..1
[xsd:integer](http://www.w3.org/2001/XMLSchema#integer) | the relative order in which the element occurs, lower values are given ... | +| [id_prefixes](id_prefixes.md) | 0..*
[xsd:string](http://www.w3.org/2001/XMLSchema#string) | the identifier of this class or slot must begin with the URIs referenced by ... | +| [from_schema](from_schema.md) | 0..1
[xsd:anyURI](http://www.w3.org/2001/XMLSchema#anyURI) | id of the schema that defined the element | + + +### SchemaDefinition: Normative subset UML + +A subset of the above normative slots are depicted as follows: + +```mermaid +classDiagram + SchemaDefinition "1" --> "*" ClassDefinition: classes + SchemaDefinition "1" --> "*" SlotDefinition: slots + SchemaDefinition "1" --> "*" EnumDefinition: enums + SchemaDefinition "1" --> "*" SubsetDefinition: subsets + SchemaDefinition "1" --> "*" Prefix: prefixes + ClassDefinition --|> Element + SlotDefinition --|> Element + EnumDefinition --|> Element + EnumDefinition --|> Element + class SchemaDefinition { + +Uri id + +NcName name + +UriOrCurie[] imports + +Ncname default_prefix + +Uri default_range + } +``` + +### Schema example, functional syntax + +The skeleton of a schema instance serialized as in functional syntax might look like: + +``` +SchemaDefinition( + id=String^"http://example.org/organization", + imports=[...], + prefixes=[...], + classes=[...], + slots=[...], + enums=[...], + types=[...], +) +``` + +### Schema example, YAML + +The skeleton of the above schema instance serialized as YAML might look like: + +```yaml +id: http://example.org/personinfo +imports: + ... +prefixes: + ... +classes: + ... +slots: + ... +enums: + ... +types: + ... +``` + + +## ClassDefinition Metaclass + +* metamodel documentation: [ClassDefinition](https://w3id.org/linkml/ClassDefinition) + +Instances of **ClassDefinition** are themselves *instantiable*. For example, a schema may contain a class definition "Person". This ClassDefinition instantiates the metaclass **ClassDefinition**, and can have instances, of actual persons. + +Any LinkML instance that instantiates a ClassDefinition will have zero to many slot-value assignments, constrained by rules that operate off of the metaslot assignments of that class. + +### ClassDefinition: Normative subset metaslots + +Any instance *c* of a ClassDefinition may have assignments in any of the following normative metaslots + +| Name | Cardinality and Range | Description | +| --- | --- | --- | +| [name](name.md) | 1..1
[xsd:string](http://www.w3.org/2001/XMLSchema#string) | the unique name of the element within the context of the schema **identifier** | +| [class_uri](class_uri.md) | 0..1
[xsd:anyURI](http://www.w3.org/2001/XMLSchema#anyURI) | URI of the class that provides a semantic interpretation of the element in a ... | +| [is_a](is_a.md) | 0..1
[ClassDefinition](ClassDefinition.md) | A primary parent class from which inheritable metaslots are propagated | +| [mixins](mixins.md) | 0..*
[ClassDefinition](ClassDefinition.md) | A collection of secondary parent mixin classes from which inheritable metaslo... | +| [slots](slots.md) | 0..*
[SlotDefinition](SlotDefinition.md) | collection of slot names that are applicable to a class | +| [slot_usage](slot_usage.md) | 0..*
[SlotDefinition](SlotDefinition.md) | the refinement of a slot in the context of the containing class definition | +| [attributes](attributes.md) | 0..*
[SlotDefinition](SlotDefinition.md) | Inline definition of slots | +| [tree_root](tree_root.md) | 0..1
[xsd:boolean](http://www.w3.org/2001/XMLSchema#boolean) | indicator that this is the root class in tree structures | +| [rank](rank.md) | 0..1
[xsd:integer](http://www.w3.org/2001/XMLSchema#integer) | the relative order in which the element occurs, lower values are given... | +| [any_of](any_of.md) | 0..*
[AnonymousClassExpression](AnonymousClassExpression.md) | holds if at least one of the expressions hold | +| [exactly_one_of](exactly_one_of.md) | 0..*
[AnonymousClassExpression](AnonymousClassExpression.md) | holds if only one of the expressions hold | +| [none_of](none_of.md) | 0..*
[AnonymousClassExpression](AnonymousClassExpression.md) | holds if none of the expressions hold | +| [all_of](all_of.md) | 0..*
[AnonymousClassExpression](AnonymousClassExpression.md) | holds if all of the expressions hold | +| [union_of](union_of.md) | 0..*
[ClassDefinition](ClassDefinition.md) | indicates that the domain element consists exactly of the members of the elem... | +| [unique_keys](unique_keys.md) | 0..*
[UniqueKey](UniqueKey.md) | A collection of unique keys for this class | +| [rules](rules.md) | 0..*
[ClassRule](ClassRule.md) | the collection of rules that apply to all members of this class | +| [classification_rules](classification_rules.md) | 0..*
[AnonymousClassExpression](AnonymousClassExpression.md) | the collection of classification rules that apply to all members of this clas... | +| [disjoint_with](disjoint_with.md) | 0..*
[ClassDefinition](ClassDefinition.md) | Two classes are disjoint if they have no instances in common, two slots are d... | +| [slot_conditions](slot_conditions.md) | 0..*
[SlotDefinition](SlotDefinition.md) | expresses constraints on a group of slots for a class expression | +| [abstract](abstract.md) | 0..1
[xsd:boolean](http://www.w3.org/2001/XMLSchema#boolean) | Indicates the class or slot cannot be directly instantiated and is intended f... | +| [mixin](mixin.md) | 0..1
[xsd:boolean](http://www.w3.org/2001/XMLSchema#boolean) | Indicates the class or slot is not intended to inherited from without being a... | +| [string_serialization](string_serialization.md) | 0..1
[xsd:string](http://www.w3.org/2001/XMLSchema#string) | Used on a slot that stores the string serialization of the containing object | +| [id_prefixes](id_prefixes.md) | 0..*
[xsd:string](http://www.w3.org/2001/XMLSchema#string) | the identifier of this class or slot must begin with the URIs referenced by t... | +| [from_schema](from_schema.md) | 0..1
[xsd:anyURI](http://www.w3.org/2001/XMLSchema#anyURI) | id of the schema that defined the element | + + + +### ClassDefinition: UML + +A subset of the above normative slots are depicted as follows: + +```mermaid +classDiagram +ClassExpression "1" --> "*" AnonymousClassExpression: any_of +ClassExpression "1" --> "*" AnonymousClassExpression: exactly_one_of +ClassExpression "1" --> "*" AnonymousClassExpression: none_of +ClassExpression "1" --> "*" AnonymousClassExpression: all_of +ClassDefinition --|> ClassExpression: mixin +ClassDefinition --|> Element: is_a +AnonymousClassExpression --|> ClassExpression +class ClassDefinition { + +ClassDefinitionName name + +boolean abstract + +boolean mixin +} +ClassDefinition "*" --> "*" SlotDefinition: slots +ClassDefinition "1" --> "*" SlotDefinition: slot_usage +ClassDefinition "1" --> "*" SlotDefinition: attributes +ClassDefinition "*"--> "0..1" ClassDefinition: is_a +ClassDefinition "1" --> "*" ClassDefinition: mixins +ClassDefinition "1" --> "*" AnonymousClassExpression: classification_rules +ClassDefinition "1" --> "*" ClassRule: rules +``` + +### ClassExpressions and anonymous ClassExpressions + +Note this metaclass exemplifies a pattern that is reused by TypeDefinition, SlotDefinition and EnumDefinition metaclasses, below. + +For the core definition types ``, there are a triad of 3 metaclasses in the metamodel: + +* `Expression` + * `AnonymousExpression` + * `Definition` + +depicted as: + +```mermaid +classDiagram +D_Expression "*" --> AnonymousD_Expression: +class D_Definition { + +D_Name name +} +D_Definition --|> D_Expression +AnonymousT_Expression --|> D_Expression +``` + +For many purposes, all that is required is the Definition element. The purpose of the above abstraction is to allow +composition of anonymous expressions using boolean operators. For example, we may want to refer to the union of collection +of ClassDefinitions. + +### Class Definition Example, Functional Syntax + +A collection of ClassDefinition instances might look + +```python +[ + ClassDefinition( + name=String^"NamedThing", + abstract=True, + slots=[ + SlotDefinitionReference&"id", + SlotDefinitionReference&"name", + ... + ] + ), + ClassDefinition( + name=String^"Person", + description=String^"A person, living or dead", + is_a=ClassDefinitionReference&"NamedThing", + attributes=[ + SlotDefinition( + name=String^"height", + ...), + SlotDefinition( + name=String^"age", + ...) + ), + ... +], +``` + +### Class Definition Example, YAML + +The above example following the YAML serialization is: + +```yaml +NamedThing: + abstract: true + slots: + - id + - name +Person: + description: A person, living or dead + is_a: NamedThing + attributes: + height: + ... + age: + ... +``` + +## SlotDefinition Metaclass + +* metamodel documentation: [SlotDefinition](https://w3id.org/linkml/SlotDefinition) + +Instances of **SlotDefinition** are not themselves *instantiable*. Each **assignment** in a LinkML **ClassDefinition** instance must use a SlotDefinition from the schema. + +### SlotDefinition: Normative subset metaslots + +SlotDefinition inherits from both Element and SlotExpression. A SlotDefinition must have a *name*. +other schema elements may refer to **AnonymousSlotExpression**s composed using boolean operators. + +Any instance *s* of a SlotDefinition may have assignments in any of the following normative metaslots + +| Name | Cardinality and Range | Description | +| --- | --- | --- | +| [name](name.md) | 1..1
[xsd:string](http://www.w3.org/2001/XMLSchema#string) | the unique name of the element within the context of the schema **identifier** | +| [slot_uri](slot_uri.md) | 0..1
[xsd:anyURI](http://www.w3.org/2001/XMLSchema#anyURI) | predicate of this slot for semantic web application | +| [identifier](identifier.md) | 0..1
[xsd:boolean](http://www.w3.org/2001/XMLSchema#boolean) | True means that the key slot(s) uniquely identify the container | +| [alias](alias.md) | 0..1
[xsd:string](http://www.w3.org/2001/XMLSchema#string) | the name used for a slot in the context of its owning class | +| [multivalued](multivalued.md) | 0..1
[xsd:boolean](http://www.w3.org/2001/XMLSchema#boolean) | true means that slot can have more than one value | +| [required](required.md) | 0..1
[xsd:boolean](http://www.w3.org/2001/XMLSchema#boolean) | true means that the slot must be present in the loaded definition | +| [recommended](recommended.md) | 0..1
[xsd:boolean](http://www.w3.org/2001/XMLSchema#boolean) | true means that the slot should be present in the loaded definition, but this... | +| [is_a](is_a.md) | 0..1
[SlotDefinition](SlotDefinition.md) | A primary parent slot from which inheritable metaslots are propagated | +| [mixins](mixins.md) | 0..*
[SlotDefinition](SlotDefinition.md) | A collection of secondary parent mixin slots from which inheritable metaslots... | +| [inlined](inlined.md) | 0..1
[xsd:boolean](http://www.w3.org/2001/XMLSchema#boolean) | True means that keyed or identified slot appears in an outer structure by val... | +| [inlined_as_list](inlined_as_list.md) | 0..1
[xsd:boolean](http://www.w3.org/2001/XMLSchema#boolean) | True means that an inlined slot is represented as a list of range instances | +| [pattern](pattern.md) | 0..1
[xsd:string](http://www.w3.org/2001/XMLSchema#string) | the string value of the slot must conform to this regular expression expresse... | +| [rank](rank.md) | 0..1
[xsd:integer](http://www.w3.org/2001/XMLSchema#integer) | the relative order in which the element occurs, lower values are given ... | +| [any_of](any_of.md) | 0..*
[AnonymousSlotExpression](AnonymousSlotExpression.md) | holds if at least one of the expressions hold | +| [exactly_one_of](exactly_one_of.md) | 0..*
[AnonymousSlotExpression](AnonymousSlotExpression.md) | holds if only one of the expressions hold | +| [none_of](none_of.md) | 0..*
[AnonymousSlotExpression](AnonymousSlotExpression.md) | holds if none of the expressions hold | +| [all_of](all_of.md) | 0..*
[AnonymousSlotExpression](AnonymousSlotExpression.md) | holds if all of the expressions hold | +| [domain](domain.md) | 0..1
[ClassDefinition](ClassDefinition.md) | defines the type of the subject of the slot | +| [inherited](inherited.md) | 0..1
[xsd:boolean](http://www.w3.org/2001/XMLSchema#boolean) | true means that the *value* of a slot is inherited by subclasses | +| [ifabsent](ifabsent.md) | 0..1
[xsd:string](http://www.w3.org/2001/XMLSchema#string) | function that provides a default value for the slot | +| [list_elements_unique](list_elements_unique.md) | 0..1
[xsd:boolean](http://www.w3.org/2001/XMLSchema#boolean) | If True, then there must be no duplicates in the elements of a multivalued sl... | +| [list_elements_ordered](list_elements_ordered.md) | 0..1
[xsd:boolean](http://www.w3.org/2001/XMLSchema#boolean) | If True, then the order of elements of a multivalued slot is guaranteed to be... | +| [shared](shared.md) | 0..1
[xsd:boolean](http://www.w3.org/2001/XMLSchema#boolean) | If True, then the relationship between the slot domain and range is many to o... | +| [key](key.md) | 0..1
[xsd:boolean](http://www.w3.org/2001/XMLSchema#boolean) | True means that the key slot(s) uniquely identify the container | +| [designates_type](designates_type.md) | 0..1
[xsd:boolean](http://www.w3.org/2001/XMLSchema#boolean) | True means that the key slot(s) is used to determine the instantiation (types... | +| [symmetric](symmetric.md) | 0..1
[xsd:boolean](http://www.w3.org/2001/XMLSchema#boolean) | If s is symmetric, and i | +| [reflexive](reflexive.md) | 0..1
[xsd:boolean](http://www.w3.org/2001/XMLSchema#boolean) | If s is reflexive, then i | +| [locally_reflexive](locally_reflexive.md) | 0..1
[xsd:boolean](http://www.w3.org/2001/XMLSchema#boolean) | If s is locally_reflexive, then i | +| [irreflexive](irreflexive.md) | 0..1
[xsd:boolean](http://www.w3.org/2001/XMLSchema#boolean) | If s is irreflexive, then there exists no i such i | +| [asymmetric](asymmetric.md) | 0..1
[xsd:boolean](http://www.w3.org/2001/XMLSchema#boolean) | If s is antisymmetric, and i | +| [transitive](transitive.md) | 0..1
[xsd:boolean](http://www.w3.org/2001/XMLSchema#boolean) | If s is transitive, and i | +| [inverse](inverse.md) | 0..1
[SlotDefinition](SlotDefinition.md) | indicates that any instance of d s r implies that there is also an instance o... | +| [transitive_form_of](transitive_form_of.md) | 0..1
[SlotDefinition](SlotDefinition.md) | If s transitive_form_of d, then (1) s holds whenever d holds (2) s is transit... | +| [reflexive_transitive_form_of](reflexive_transitive_form_of.md) | 0..1
[SlotDefinition](SlotDefinition.md) | transitive_form_of including the reflexive case | +| [slot_group](slot_group.md) | 0..1
[SlotDefinition](SlotDefinition.md) | allows for grouping of related slots into a grouping slot that serves the rol... | +| [is_grouping_slot](is_grouping_slot.md) | 0..1
[xsd:boolean](http://www.w3.org/2001/XMLSchema#boolean) | true if this slot is a grouping slot | +| [disjoint_with](disjoint_with.md) | 0..*
[SlotDefinition](SlotDefinition.md) | Two classes are disjoint if they have no instances in common, two slots are d... | +| [union_of](union_of.md) | 0..*
[SlotDefinition](SlotDefinition.md) | indicates that the domain element consists exactly of the members of the elem... | +| [range](range.md) | 0..1
[Element](Element.md) | defines the type of the object of the slot | +| [range_expression](range_expression.md) | 0..1
[AnonymousClassExpression](AnonymousClassExpression.md) | A range that is described as a boolean expression combining existing ranges | +| [enum_range](enum_range.md) | 0..1
[EnumExpression](EnumExpression.md) | An inlined enumeration | +| [minimum_value](minimum_value.md) | 0..1
[xsd:integer](http://www.w3.org/2001/XMLSchema#integer) | for slots with ranges of type number, the value must be equal to or higher th... | +| [maximum_value](maximum_value.md) | 0..1
[xsd:integer](http://www.w3.org/2001/XMLSchema#integer) | for slots with ranges of type number, the value must be equal to or lowe than... | +| [structured_pattern](structured_pattern.md) | 0..1
[PatternExpression](PatternExpression.md) | the string value of the slot must conform to the regular expression in the pa... | +| [implicit_prefix](implicit_prefix.md) | 0..1
[xsd:string](http://www.w3.org/2001/XMLSchema#string) | Causes the slot value to be interpreted as a uriorcurie after prefixing with ... | +| [equals_string](equals_string.md) | 0..1
[xsd:string](http://www.w3.org/2001/XMLSchema#string) | the slot must have range string and the value of the slot must equal the spec... | +| [equals_string_in](equals_string_in.md) | 0..*
[xsd:string](http://www.w3.org/2001/XMLSchema#string) | the slot must have range string and the value of the slot must equal one of t... | +| [equals_expression](equals_expression.md) | 0..1
[xsd:string](http://www.w3.org/2001/XMLSchema#string) | the value of the slot must equal the value of the evaluated expression | +| [minimum_cardinality](minimum_cardinality.md) | 0..1
[xsd:integer](http://www.w3.org/2001/XMLSchema#integer) | the minimum number of entries for a multivalued slot | +| [maximum_cardinality](maximum_cardinality.md) | 0..1
[xsd:integer](http://www.w3.org/2001/XMLSchema#integer) | the maximum number of entries for a multivalued slot | +| [has_member](has_member.md) | 0..1
[AnonymousSlotExpression](AnonymousSlotExpression.md) | the values of the slot is multivalued with at least one member satisfying the... | +| [all_members](all_members.md) | 0..*
[SlotDefinition](SlotDefinition.md) | the value of the multivalued slot is a list where all elements conform to the... | +| [abstract](abstract.md) | 0..1
[xsd:boolean](http://www.w3.org/2001/XMLSchema#boolean) | Indicates the class or slot cannot be directly instantiated and is intended f... | +| [mixin](mixin.md) | 0..1
[xsd:boolean](http://www.w3.org/2001/XMLSchema#boolean) | Indicates the class or slot is not intended to inherited from without being a... | +| [string_serialization](string_serialization.md) | 0..1
[xsd:string](http://www.w3.org/2001/XMLSchema#string) | Used on a slot that stores the string serialization of the containing object | +| [id_prefixes](id_prefixes.md) | 0..*
[xsd:string](http://www.w3.org/2001/XMLSchema#string) | the identifier of this class or slot must begin with the URIs referenced by t... | +| [from_schema](from_schema.md) | 0..1
[xsd:anyURI](http://www.w3.org/2001/XMLSchema#anyURI) | id of the schema that defined the element | + +### SlotDefinition: Normative subset UML + +A subset of the above normative slots are depicted as follows: + +```mermaid +classDiagram +class SlotExpression { + +SlotDefinitionName range +} +SlotExpression "1" --> "*" AnonymousSlotExpression: any_of +SlotExpression "1" --> "*" AnonymousSlotExpression: exactly_one_of +SlotExpression "1" --> "*" AnonymousSlotExpression: none_of +SlotExpression "1" --> "*" AnonymousSlotExpression: all_of +class SlotDefinition { + +SlotDefinitionName name + +boolean identifier + +boolean key + +boolean abstract + +boolean mixin + +boolean designates_type + +SlotDefinitionName is_a + +SlotDefinitionName[] mixins + +ClassDefinitionName range + +Decimal minimum_value + +Decimal maximum_value + +String equals_expression + +String pattern + +String string_serialization + +boolean symmetric + +boolean asymmetric + +boolean reflexive + +boolean irreflexive + +boolean locally_reflexive + +boolean transitive + +SlotDefinition transitive_form_of + +SlotDefinition reflexive_transitive_form_of + +SlotDefinition inverse +} +SlotDefinition --|> SlotExpression: mixin +SlotDefinition --|> Element: is_a +SlotDefinition "0..1" --> SlotDefinition: is_a +SlotDefinition "*" --> SlotDefinition: mixins +``` + +### Slot Definition Example, Functional Syntax + +An example collection of SlotDefinitions might be: + +```python +SchemaDefinition( + slots=[ + SlotDefinition( + name=String^"id", + identifier=Boolean^True, + description=String^"A unique identifier for an object", + range=TypeDefinitionReference&"String", + ... + ), + SlotDefinition( + name=String^"name", + description=String^"...", + range=String^"String", + ... + ) +``` + +## EnumDefinition Metaclass + +* metamodel documentation: [EnumDefinition](https://w3id.org/linkml/EnumDefinition) + +Instances of **EnumDefinition** instances are *instantiable*. For example, a schema may have an enumeration with name "JobCode". This is an instance of an EnumDefinition, and can also be instantiated by different **permissible values** such as "Forklift Driver" + +### EnumDefinition: Normative subset metaslots + +Any instance *e* of a EnumDefinition may have assignments in any of the following normative metaslots: + +| Name | Cardinality and Range | Description | +| --- | --- | --- | +| [name](name.md) | 1..1
[xsd:string](http://www.w3.org/2001/XMLSchema#string) | the unique name of the element within the context of the schema **identifier** | +| [is_a](is_a.md) | 0..1
[Definition](Definition.md) | A primary parent class or slot from which inheritable metaslots are propagate... | +| [mixins](mixins.md) | 0..*
[Definition](Definition.md) | A collection of secondary parent classes or slots from which inheritable meta... | +| [rank](rank.md) | 0..1
[xsd:integer](http://www.w3.org/2001/XMLSchema#integer) | the relative order in which the element occurs, lower values are given... | +| [enum_uri](enum_uri.md) | 0..1
[xsd:anyURI](http://www.w3.org/2001/XMLSchema#anyURI) | URI of the enum that provides a semantic interpretation of the element in a l... | +| [code_set](code_set.md) | 0..1
[xsd:anyURI](http://www.w3.org/2001/XMLSchema#anyURI) | the identifier of an enumeration code set | +| [pv_formula](pv_formula.md) | 0..1
[PvFormulaOptions](PvFormulaOptions.md) | Defines the specific formula to be used to generate the permissible values | +| [permissible_values](permissible_values.md) | 0..*
[PermissibleValue](PermissibleValue.md) | A list of possible values for a slot range | +| [include](include.md) | 0..*
[AnonymousEnumExpression](AnonymousEnumExpression.md) | An enum expression that yields a list of permissible values that are to be in... | +| [minus](minus.md) | 0..*
[AnonymousEnumExpression](AnonymousEnumExpression.md) | An enum expression that yields a list of permissible values that are to be su... | +| [inherits](inherits.md) | 0..*
[EnumDefinition](EnumDefinition.md) | An enum definition that is used as the basis to create a new enum | +| [reachable_from](reachable_from.md) | 0..1
[ReachabilityQuery](ReachabilityQuery.md) | Specifies a query for obtaining a list of permissible values based on graph r... | +| [matches](matches.md) | 0..1
[MatchQuery](MatchQuery.md) | Specifies a match query that is used to calculate the list of permissible val... | +| [concepts](concepts.md) | 0..*
[xsd:anyURI](http://www.w3.org/2001/XMLSchema#anyURI) | A list of identifiers that are used to construct a set of permissible values | +| [abstract](abstract.md) | 0..1
[xsd:boolean](http://www.w3.org/2001/XMLSchema#boolean) | Indicates the class or slot cannot be directly instantiated and is intended f... | +| [mixin](mixin.md) | 0..1
[xsd:boolean](http://www.w3.org/2001/XMLSchema#boolean) | Indicates the class or slot is not intended to inherited from without being a... | +| [string_serialization](string_serialization.md) | 0..1
[xsd:string](http://www.w3.org/2001/XMLSchema#string) | Used on a slot that stores the string serialization of the containing object | +| [id_prefixes](id_prefixes.md) | 0..*
[xsd:string](http://www.w3.org/2001/XMLSchema#string) | the identifier of this class or slot must begin with the URIs referenced by t... | +| [from_schema](from_schema.md) | 0..1
[xsd:anyURI](http://www.w3.org/2001/XMLSchema#anyURI) | id of the schema that defined the element | + + + +### EnumDefinition: Normative subset UML + +A subset of the above normative slots are depicted as follows: + +```mermaid +classDiagram +class EnumExpression { + +TypeDefinitionName range +} +EnumExpression "*" --> AnonymousEnumExpression: any_of +EnumExpression "*" --> AnonymousEnumExpression: exactly_one_of +EnumExpression "*" --> AnonymousEnumExpression: none_of +EnumExpression "*" --> AnonymousEnumExpression: all_of +class EnumDefinition { + +EnumDefinitionName name +} +EnumDefinition "*" --> PermissibleValue: permissible_values +class PermissibleValue { + +String text + +String description + +UriOrCurie meaning +} +``` + +## TypeDefinition Metaclass + +* metamodel documentation: [TypeDefinition](https://w3id.org/linkml/TypeDefinition) + +Instances of **TypeDefinition** are themselves *instantiable*. For example, a schema might contain a TypeDefinition with name "PhoneNumber". This is an instance of TypeDefinition, and can itself be instantiated by individual phone numbers. + +### TypeDefinition: Normative subset metaslots + +Any instance *t* of a TypeDefinition may have assignments in any of the following normative metaslots: + +| Name | Cardinality and Range | Description | +| --- | --- |-----------------------------------------------------------------------------------| +| [name](name.md) | 1..1
[xsd:string](http://www.w3.org/2001/XMLSchema#string) | the unique name of the element within the context of the schema **identifier** | +| [type_uri](type_uri.md) | 0..1
[xsd:anyURI](http://www.w3.org/2001/XMLSchema#anyURI) | The uri that defines the possible values for the type definition | +| [typeof](typeof.md) | 0..1
[TypeDefinition](TypeDefinition.md) | Names a parent type | +| [base](base.md) | 0..1
[xsd:string](http://www.w3.org/2001/XMLSchema#string) | python base type that implements this type definition | +| [repr](repr.md) | 0..1
[xsd:string](http://www.w3.org/2001/XMLSchema#string) | the name of the python object that implements this type definition | +| [pattern](pattern.md) | 0..1
[xsd:string](http://www.w3.org/2001/XMLSchema#string) | the string value of the slot must conform to this regular expression expresses... | +| [rank](rank.md) | 0..1
[xsd:integer](http://www.w3.org/2001/XMLSchema#integer) | the relative order in which the element occurs, lower values are given ... | +| [any_of](any_of.md) | 0..*
[AnonymousTypeExpression](AnonymousTypeExpression.md) | holds if at least one of the expressions hold | +| [exactly_one_of](exactly_one_of.md) | 0..*
[AnonymousTypeExpression](AnonymousTypeExpression.md) | holds if only one of the expressions hold | +| [none_of](none_of.md) | 0..*
[AnonymousTypeExpression](AnonymousTypeExpression.md) | holds if none of the expressions hold | +| [all_of](all_of.md) | 0..*
[AnonymousTypeExpression](AnonymousTypeExpression.md) | holds if all of the expressions hold | +| [union_of](union_of.md) | 0..*
[TypeDefinition](TypeDefinition.md) | indicates that the domain element consists exactly of the members of ... | +| [structured_pattern](structured_pattern.md) | 0..1
[PatternExpression](PatternExpression.md) | the string value of the slot must conform to the regular expression in the ... | +| [implicit_prefix](implicit_prefix.md) | 0..1
[xsd:string](http://www.w3.org/2001/XMLSchema#string) | Causes the slot value to be interpreted as a uriorcurie after prefixing with ... | +| [equals_string](equals_string.md) | 0..1
[xsd:string](http://www.w3.org/2001/XMLSchema#string) | the slot must have range string and the value of the slot must equal the ... | +| [equals_string_in](equals_string_in.md) | 0..*
[xsd:string](http://www.w3.org/2001/XMLSchema#string) | the slot must have range string and the value of the slot must equal one of ... | +| [minimum_value](minimum_value.md) | 0..1
[xsd:integer](http://www.w3.org/2001/XMLSchema#integer) | for slots with ranges of type number, the value must be equal to or higher ... | +| [maximum_value](maximum_value.md) | 0..1
[xsd:integer](http://www.w3.org/2001/XMLSchema#integer) | for slots with ranges of type number, the value must be equal to or lowe than... | +| [id_prefixes](id_prefixes.md) | 0..*
[xsd:string](http://www.w3.org/2001/XMLSchema#string) | the identifier of this class or slot must begin with the URIs referenced by ... | +| [from_schema](from_schema.md) | 0..1
[xsd:anyURI](http://www.w3.org/2001/XMLSchema#anyURI) | id of the schema that defined the element | + +### TypeDefinition: Normative subset UML + +A subset of the above normative slots are depicted as follows: + + +```mermaid +classDiagram +class TypeExpression { + +TypeDefinitionName range +} +TypeExpression "*" --> AnonymousTypeExpression: any_of +TypeExpression "*" --> AnonymousTypeExpression: exactly_one_of +TypeExpression "*" --> AnonymousTypeExpression: none_of +TypeExpression "*" --> AnonymousTypeExpression: all_of +AnonymousTypeExpression --|> TypeExpression +TypeDefinition --|> TypeExpression +class TypeDefinition { + +TypeDefinitionName name + +TypeDefinitionName typeof + +TypeDefinitionName[] mixins + +Uri uri + +String base + +String repr +} +TypeDefinition --|> TypeExpression: mixin +TypeDefinition --|> Element: is_a +``` + +### Default Types + +LinkML includes a default schema of types + +* Schema: [https://w3id.org/linkml/types.yaml](https://w3id.org/linkml/types.yaml). +* Documentation: [https://linkml.io/linkml-model/docs/#types](https://linkml.io/linkml-model/docs/#types) + +These are: + +- Boolean (Bool) - A binary (true or false) value +- Date (XSDDate) - a date (year, month and day) in an idealized calendar +- Datetime (XSDDateTime) - The combination of a date and time +- Decimal (Decimal) - A real number with arbitrary precision that conforms to the xsd:decimal specification +- Double (float) - A real number that conforms to the xsd:double specification +- Float (float) - A real number that conforms to the xsd:float specification +- Integer (int) - An integer +- Ncname (NCName) - Prefix part of CURIE +- Nodeidentifier (NodeIdentifier) - A URI, CURIE or BNODE that represents a node in a model. +- Objectidentifier (ElementIdentifier) - A URI or CURIE that represents an object in the model. +- String (str) - A character string +- Time (XSDTime) - A time object represents a (local) time of day, independent of any particular day +- Uri (URI) - a complete URI +- Uriorcurie (URIorCURIE) - a URI or a CURIE + +The type schema can be imported, used directly, or used as a basis to extend new types + +## ClassDefinitionReference Metaclass + +**ClassDefinitionReferences** are primitive elements that provide a way to reference a particular instances. + +ClassDefinitionReferences are not part of the asserted schema but are derived from derivation rules -- see next section + +## Prefix Metaclass + +* metamodel documentation: [Prefix](https://w3id.org/linkml/Prefix) + +A schema can contain any number of prefixes. Each prefix maps a short name such as "owl" to a URI. These are used to determine the **canonical URI** for any element. + +### Prefix: Normative subset metaslots + +| Name | Cardinality and Range | Description | +| --- | --- | --- | +| [prefix_prefix](prefix_prefix.md) | 0..1
[xsd:string](http://www.w3.org/2001/XMLSchema#string) | the nsname (sans ':' for a given prefix) | +| [prefix_reference](prefix_reference.md) | 1..1
[xsd:anyURI](http://www.w3.org/2001/XMLSchema#anyURI) | A URI associated with a given prefix | + + +### Prefix: Normative subset UML + +```mermaid +classDiagram + SchemaDefinition "*" --> "*" Prefix: prefixes + class Prefix { + +Ncname prefix_prefix + +Uri prefix_reference + } +``` + + +### Prefix Example, Functional Syntax + +```python +SchemaDefinition( + prefixes=[ + Prefix(prefix_prefix=Ncname("linkml") + prefix_reference=Uri("https://w3id.org/linkml/")), + Prefix(prefix_prefix=Ncname("schema") + prefix_reference=Uri("http://schema.org")), + Prefix(prefix_prefix=Ncname("wgs") + prefix_reference=Uri("http://www.w3.org/2003/01/geo/wgs84_pos#")), + Prefix(prefix_prefix=Ncname("qudt") + prefix_reference=Uri("http://qudt.org/1.1/schema/qudt#")) + ]) +``` + +### Prefix Example, YAML + +```yaml +prefixes: + linkml: https://w3id.org/linkml/ + schema: http://schema.org/ + wgs: http://www.w3.org/2003/01/geo/wgs84_pos# + qudt: http://qudt.org/1.1/schema/qudt# +``` + +## Complete Schema Example (Informative) + +For example, consider a schema that models representations of individual people and organizations they belong to may include a class definition `Person`, and slot definitions for `name`, `address`, `relationships` and so on. + +This might be depicted in UML as: + +```mermaid +classDiagram + Person "0" --> "*" Person: knows + class Person { + +String id + +String name + +Float height + +Date date_of_birth + +JobCode occupation + + } +``` + +This would have a YAML serialization (see section 6): + +```yaml +classes: + Person: + description: ... + slots: + - id + - name + - height + - date_of_birth + - occupation + - knows +slots: + id: + identifier: true + range: string + name: + range: string + date_of_birth: + range: date + height: + range: float + occupation: + range: JobCode + knows: + range: Person + multivalued: true +enums: + JobCode: + permissible_values: + ForkliftDriver: + ...: +types: + date: + ... +``` + +Because schemas, are instances of the metamodel, this hypothetical schema may be serialized in functional instance syntax as follows: + +``` +SchemaDefinition( + id=String^"http://example.org/organization", + name=String^"organization", + prefixes=[ + Prefix(prefix_prefix=Ncname^"linkml" + prefix_reference=Uri^"https://w3id.org/linkml/"), + Prefix(prefix_prefix=Ncname^"org" + prefix_reference=Uri^"http://example.org/organization/"), + Prefix(prefix_prefix=Ncname^"schema" + prefix_reference=Uri^"http://schema.org"), + Prefix(prefix_prefix=Ncname^"wgs" + prefix_reference=Uri^"http://www.w3.org/2003/01/geo/wgs84_pos#"), + Prefix(prefix_prefix=Ncname^"qudt" + prefix_reference=Uri^"http://qudt.org/1.1/schema/qudt#") + ], + default_prefix=String^"org", + imports=[ + Uriorcurie^"linkml:types" + ], + classes=[ + ClassDefinition( + name=String^"Person", + slots=[ + SlotDefinition&"id", + SlotDefinition&"name", + SlotDefinition&"height", + SlotDefinition&"age", + SlotDefinition&"knows", + SlotDefinition&"job", + ... + ] + ), + ClassDefinition( + name=String^"Organization", + slots=[ + SlotDefinition&"id", + ... + ] + ), + ... + ], + slots=[ + SlotDefinition( + name=SlotDefinition&"id", + identifier=Boolean^True, + description=String^"...", + range=TypeDefinition&"String", + ... + ), + SlotDefinition( + name=SlotDefinition&"name", + description=SlotDefinition&"...", + ... + ), + SlotDefinition( + name=String^"occupation", + ... + ), + SlotDefinition( + name=String^"date_of_birth", + ... + ), + SlotDefinition( + name=String^"knows", + description=String^"...", + range=ClassDefinition&"Person", + multivalued=Boolean^True, + ... + ) + ], + enums=[ + EnumDefinition( + name=String^"JobCode", + permissible_values=[...], + ) + ], + types=[ + TypeDefinition( + name=String^"Date", + ... + ), + TypeDefinition( + name=String^"String", + ... + ), + ] +) +``` + + + + + + diff --git a/linkml_runtime/linkml_model/model/docs/specification/04derived-schemas.md b/linkml_runtime/linkml_model/model/docs/specification/04derived-schemas.md new file mode 100644 index 00000000..6b7223b4 --- /dev/null +++ b/linkml_runtime/linkml_model/model/docs/specification/04derived-schemas.md @@ -0,0 +1,540 @@ +# Derived Schemas + +This section describes rules that can be applied to a schema to obtain a *derived* schema. + +The derived schema can be *materialized* as a static schema object, or it may be a dynamic *view* onto a schema object. + +Derived schemas are also known as *induced* schemas or *inferred* schemas. + +```mermaid +flowchart TD + M[Asserted Schema] -->|input| Derivation{Derivation Procedure} + Derivation -->|output| Mstar[Derived Schema] + R[Rules] -->|input| Derivation +``` + +Derivations happen via *derivation rules*, using a collection of defined *functions*. + +## Conventions + +We use *m* to denote the input or asserted schema (model), and *mD* to denote the derived schema + +## Informative Example + +We provide a non-normative example of a schema in canonical YAML. This will be referred to +in the remainder of the document. + +The schema is organized in a local folder as follows: + +person.yaml: +```yaml +id: https://w3id.org/linkml/examples/person +name: person +prefixes: + person: https://w3id.org/linkml/examples/person + linkml: https://w3id.org/linkml/ +default_prefix: person +imports: + - linkml:types + - core + +classes: + Person: + is_a: NameThing + description: >- + A person, living or dead + slots: + - age_in_years + - vital_status + +slots: + age_in_years: + description: >- + The age of a person in years + range: integer + multivalued: false + vital_status: + description: >- + The vital status of a person + range: VitalStatusEnum + +enums: + VitalStatusEnum: + description: >- + The vital status of a person + permissible_values: + ALIVE: + DECEASED: +``` + +core.yaml: +```yaml +id: https://w3id.org/linkml/examples/core +name: person-core +prefixes: + person: https://w3id.org/linkml/examples/person + linkml: https://w3id.org/linkml/ +default_prefix: person +imports: + - linkml:types + +classes: + NamedThing: + attributes: + id: + range: string + identifier: true + name: + range: string +... +``` + + +## Functions + +This section defines functions that can be used in schema derivation rules. + +### Normalize as List Function + +The function **L**(*v*) normalizes `v` to a list/collection: + +| *v* | **L**(*v*) | +|-------------------------------------|-----------------| +| `None` | `[]` | +| `[v1, v2, ...]` | `[v1, v2, ...]` | +| `v` *if no preceding matches apply* | `[v]` | + +i.e. + +``` +L(v) = + [] if v == None + v if v == [...] + [v] otherwise +``` + +### Identifier Value Function + +The function **K**(*v*) returns the identifier value of an **InstanceOfClassDefinition**, if present, otherwise `None` + +In the metamodel, the identifier **SlotDefinitionName** is always `name`, so this can be calculated: + +> **K**(*v*) = *v*.**name** + +### URI and CURIE functions + +- a CURIE is a string that conforms to the [W3 CURIE specification](https://www.w3.org/TR/curie/) +- a URI is a string that conforms to [rfc3987](https://www.ietf.org/rfc/rfc3987.txt) +- The function **URI**(*s*, *v*) takes a string as input and normalizes it to a URI + - if the input is already a URI, then return it + - if the input is a CURIE, then expand it using the prefix map in *s*; this is known as *expansion* +- The function **CURIE**(*s*, *v*) takes a string as input and normalizes it to a CURIE + - if the input is already a CURIE, then return it + - if the input is a URI, then shorten it using the prefix map in *s*; this is known as *contraction* + +When a CURIE is expanded, it is first decomposed according to the grammar defined in [W3 CURIE specification](https://www.w3.org/TR/curie/): + +> curie := [ [ prefix ] ':' ] reference +> +> prefix := [NCName](http://www.w3.org/TR/1999/REC-xml-names-19990114/#NT-NCName) +> +> reference := irelative-ref (as defined in [IRI](https://www.w3.org/TR/curie/#ref_IRI)) + +The following concatenation is applied + +> **URI**(``: ``) = `m.prefixes`[`prefix`]`.prefix_reference` + `` + +For the reverse operation, any URI that starts with a prefix reference can be used to generate a valid CURIE. +The one with the shortest reference is chosen as the canonical. + +### Resolve Functions + +The function **Resolve** takes as input a **InstanceOfReference** and returns an **InstanceOfClass** +that is the referenced object. + +| *i* | **Resolve**(*i*) | +|------------------------|------------------| +| `SlotDefinition&` | `m.slots[]` | +| `ClassDefinition&` | `m.classes[]` | +| `EnumDefinition&` | `m.enums[]` | +| `TypeDefinition&` | `m.types[]` | +| `SchemaDefinition&` | see below | + +The rules for schema resolution are as follows: + +1. Determine the *location* of *V*, which may be on the local file system or on a network + - if *V* is in a user-supplied *import map*, then look up this value + - if *V* is a URL, then retrieve from this location + - if *V* is a CURIE, then expand using the rules below, and retrieve from this location + - otherwise retrieve from local file system, relative to the current schema, assuming a `.yaml` suffix +2. Load the YAML file at this location following the rules for parsing YAML in Part 6, yielding a SchemaDefinition instance. + +Examples: + +| *i* | **Resolve**(*i*) in *mD* | +|-------------------------------|------------------------------------------------------------------------| +| `ClassDefinition&Person` | `m.classes["Person"]` = `ClassDefinition(name="Person", ...)` | +| `SlotDefinition&vital_status` | `m.slots["vital_status"]` = `SlotDefinition(name="vital_status", ...)` | + +### Lookup Functions + +The notation **i**.`` denotes a function that looks up the slot assignment `slot` +in instance `i`. If `i` is a **InstanceOfReference** it is first *Resolved*, as per the table above. If `i` is collection of +references, then each element is resolved. + +### Closure Function + +The function **C**(*e*, *f*) takes as input an element *e* and a function *f* and returns +the mathematical closure of *f* + +``` +C(e, f) = { f(e) } U { f(e') | e' in C(e, f) } +``` + +The *ReflexiveClosure* **C*** includes *e* + +``` +C*(e, f) = C(e, f) U { e } +``` + +### Function: Parents + +**Parents** itself is the union of `is_a` and `mixins`, plus the builtin ClassDefinition `Any`: + +> **P**(*e*) = **L**(*e*.`is_a`) ∪ **L**(*e*.`mixins`) } ∪ { `Any` } + +### Function: Ancestors + +The ancestors function **A** returns the **Closure** of the **Parents** function + +> **A**(*e*) = **C**(*e*, **P**) + +The function **ReflexiveAncestors** **A*** uses the **ReflexiveClosure**. + +> **A***(*e*) = **C***(*e*, **P**) + +### Function: Imports Closure + +The imports closure function **I** returns the reflexive **ReferenceClosure** of the direct imports. + +> **I**(*s*) = **C***(*s*, **s.imports**) + +### Function: Element CURIEs and URIs + +For each element in the schema, we can derive a model URI and an element URI. These *may* be identical. + +The following table is used: + +| Type | Element URI | Model URI | +|---------------------|---------------|------------------------------------------| +| `ClassDefinition` | `e.class_uri` | `:` | +| `SlotDefinition` | `e.slot_uri` | `:` | +| `TypeDefinition` | `e.uri` | `:` | +| `EnumDefinition` | `e.enum_uri` | `:` | +| `PermissibleValue` | `e.meaning` | `ModelURI(Enum) + "." + Safe(e.text)` | + +If the element URI slot is not set, then the model URI is used as the element URI. + +URIs can be contracted to CURIEs using the `prefixes` map in the model, see next function. + +### Function: Applicable Slots + +The applicable slots for a class are all valid slots to use for an instance of that class. +It is the set of all direct slots for that class and its ancestors. + +> **ApplicableSlots**(*c*) = *c'* ∈ **A***(*c*) **DirectSlots**(*c'*) +> +> **DirectSlots(c)** = **L**(c.`slots`) ∪ **L**(c.`attributes`) + +### Algorithm: Combine Slots + +The combine slot algorithm takes two slots s1 and s2. s1 is assumed to have *precedence* over s2. + +``` +CombineSlots(s1, s2) = + s = SlotDefinition() + for ms in MetaModel.slots: + s.ms = CombineSlotsMetaslots(ms, s1.ms, s2.ms) +``` + +The `CombineSlotsMetaslots` function is evaluated by looking up the table below: + +| metaslot | v1 | v2 | expression | +|--------------------------|--------|--------|-----------------------------| +| | `v` | `v` | v | +| | `None` | `v2` | v2 | +| | `v1` | `None` | v1 | +| `.name == maximum_value` | | | `min(v1,v2)` | +| `.name == minimum_value` | | | `max(v1,v2)` | +| `.name == pattern` | | | `CombinePattern(v1,v2)` | +| `.name == range` | | | **A***(*r1*) ∩ **A***(*r2*) | +| `.multivalued == True` | | | `L(v1) U L(v2)` | +| `.range == boolean` | | | `v1 OR v2` | +| | | | `v1` | + +The preconditions are matched in order of precedence, thus if no +preconditions save the last one match, then the value is taken from the +first, higher precedence slot. + +### Algorithm: Combine Schemas + +Two schemas combined by combining their individual elements + +``` +CombineSchemas(m1, m2): + m = SchemaDefinition() + m.classes = CombineElements(m1.classes, m2.classes) + m.types = CombineElements(m1.types, m2.types) + m.slots = CombineElements(m1.slots, m2.slots) + m.enums = CombineElements(m1.enums, m2.enums) + m.subsets = CombineElements(m1.subsets, m2.subsets) +``` + +``` +CombineElements(E1, E2): + E1ids = { e.id for e in E1 } + E2ids = { e.id for e in E2 } + for e in E1: + if e.id in E2ids: + raise Error + else: + yield e + for e in E2: + if e.id in E1ids: + raise Error + else: + yield e +``` + +### Algorithm: Calculate Derived Slot + +**DerivedSlot(*s*, *c*)** takes a slot definition name *s* and a class definition name *c* and returns +a *derived* slot that is pre-populated with the appropriate inferred values. + +The procedure first applies slot usage and attributes from the class and its ancestors, then +it applies top level slot definitions for that slot and the slot ancestors. In the latter case, only +metaslots marked inheritable are propagated. + +``` +DerivedSlot(m,s,c): + d = SlotDefinition(name=s, alias=s) + ApplySlotUsage(d,s,c) + if s in m.slots: + d = CombineSlots(d, m.slots[s]) + for s' in A(s): + for ms in MetaModel.slots: + if ms.inheritable: + d.ms = CombineSlotsMetaslots(ms, d.ms, m.slots[s'].ms) + AddMissingValues(d, c) + return d +``` + +The `ApplySlotUsage` function iteratively combines the value of the `slot_usage` and `attributes` +metaslots for a class, and then for class ancestors, with mixins having priority. + +``` +ApplySlotUsage(d, s, c): + for s' in { c.slot_usage, c.attributes} + s' = CombineSlots(d, s') + for c' in **L**(c.`mixins`) ∪ **L**(c.`is_a`) + ApplySlotUsage(d, s, c') +``` + +The function `AddMissingValues(s, c)` is calculated for a **SlotDefinition** according to the following table + +| Preconditions | Postconditions | +|--------------------------|------------------| +| `s.inlined_as_dict=True` | `s.inlined=True` | +| `PK(c)=None` | `s.inlined=True` | + +### Algorithm: Calculate Permissible Values + +The set of permissible values for an Enum may be specified as a static fixes list OR as a dynamic query OR both + +``` +PVs(e): + pvs = Texts(e.permissible_values) + for e' in e.inherits: + pvs = pvs U PVs(e') + for e' in e.minus: + pvs = pvs - PVs(e') + for pv in e.concepts: + pvs = pvs U pv + for q in e.reachable_from: + pvs = pvs U ResolveQuery(q) +``` + +The `ResolveQuery` applied to `q` operates over an external ontology of vocabulary resource +indicated by `r.source_ontology`. Each such ontology has a *graph presentation* which the +query is resolved against. Each resource may choose to present itself as a graph in an application +specific way. For OWL ontologies, it is recommended that the OWL TBox is presented as a graph +following the Relation Graph pattern, i.e. axioms such as `A SubClassOf R some B` are presented as +edges from `A` to `B` with label `R`. + +``` +ResolveQuery(q: EnumExpression): + G = as_graph(q.source_ontology) + G = FilterEdges(p in g.relationship_types) + pvs = {} + for n in q.source_nodes + pvs = pvs U Closure(G, parent, n) + if q.reflexive: + pvs = pvs U {n} + return pvs +``` + +## Derivation Rules + +The following rules are applied to deduce a derived schema *mD*. + +### Rule: Ensure Metamodel ids are unique + +Each **m'** in **I**(*m*) must have a unique identifier, `m'.id`. + +> not exists m' in **I**(*m*) and m' in **I**(*m*) and m'.id == m'.id + +### Rule: Populate Schema Metadata + +For each **m'** in **I**(*m*), populate the following metamodel slots: + +* for each element `e` in `m'`, set `e.from_schema` to `m'` +* if `m'.default_range` is not set, set it to `string`. + +### Rule: Combine Import Closure + +A derived model *m*D is the result of combining the import closure of *m*: + +*mD* = **Aggregate**(**CombineSchemas**, **I**(*m*)) + +When copying an element `x` from an import into *mD*, the name `x.name` must be unique - if the same name has been used in another model, the derivation procedure fails, and an error is thrown. + +### Rule: Derived Attributes + +Derived attributes are populated by applying the `DerivedSlot` algorithm to each applicable slot for any class + +``` +for c in m.classes: + for s in ApplicableSlots(c): + d = DerivedSlot(m,s,c) + c.attributes[s] = d +``` + +### Rule: Derived Class and Slot URIs + +For each class or slot, if a class_uri or slot_uri is not specified, then this is derived using the rules specified +for Element URIs above. + +For example, given: + +```yaml +prefixes: + foo: http://example.org/foo/ + bar: http://example.org/bar/ +default_prefix: foo +classes: + A: + class_uri: bar:A + ... + B: + ... +``` + +the following values would be set: + + * `A.class_uri` = `http://example.org/bar/A` + * `B.class_uri` = `http://example.org/foo/B` + +### Rule: Derived Permissible Values + +TODO + +### Rule: Generation of patterns from structured patterns + +For any slot `s`, if `s.structured_pattern = p` and `p` is not **None** then `s.pattern` is assigned a value based on the following +procedure: + +If `p.interpolated` is True, then the value of `s.syntax` is *interpolated*, by replacing all occurrences of braced text `{VAR}` +with the value of `VAR`. The value of `VAR` is obtained using `m.settings[VAR]`, where *m* is the schema in which `p` is introduced. + +If `p.interpolated` is not True, then the value of `s.syntax` is used directly. + +If `p.partial_match` is not True, then `s.pattern` has a '^' character inserted at the beginning and a '$' character inserted as the end. + +## Structural Conformance Rules + +This section specifies conformance rules which the derived schema must satisfy. + +Note that some of these rules may be derivable from treating the schema as an instance of +the metamodel and applying validation rules in part 5, but we still list them below for +completeness. + +### Rule: Each referenced entity must be present + +Every **ClassDefinition**, **ClassDefinitionReference**, **SlotDefinitionReference**, **EnumDefinitionReference**, and **TypeDefinitionReference** must be resolvable within *mD* + +However, not every element needs to be referenced. For example, it is valid to have a list of SlotDefinitions that are never used in *mD*. + +### ClassDefinition Structural Conformance Rules + +Each `c` in *mD*`.classes` must conform to the rules below: + +- `c` must be an instance of a **ClassDefinition** +- `c` must have a unique name `c.name`, and this name must not be shared by any other class or element in *mD* +- `c` lists permissible slots in `c.slots`, the range of this is a reference to a SlotDefinition in *mD*`.slots` +- `c` defines how slots are used in the context of `c` via a collection of SlotDefinitions specified in `c.slot_usage` +- `c` may define local slots using `c.attributes`, the value of this is a. collection of SlotDefinitions +- `c` may have certain boolean properties defined such as `c.mixin` and `c.abstract` +- `c` must have exactly one value for `c.class_uri` in *mD*, and the value must be an instance of the builtin type UriOrCurie +- `c` may have parent ClassDefinitions defined via `c.is_a` and `c.mixins` + - the value of `c.is_a` must be a ClassDefinitionReference + - the value of `c.mixins` must be a collection of ClassDefinitonReferences + - For any parent `p` of `c`, if `p.mixin` is True, then `c.mixin` SHOULD be True +- `c` includes additional rules in `c.rules` and `c.classificiation_rules` +- `c` may have any number of additional slot-value assignments consistent with the validation rules provided here with the metamodel `MM` + +### SlotDefinition Structural Conformance Rules + +Each `s` in *mD*`.slots` must conform to the rules below: + +- `s` must be an instance of a **SlotDefinition** +- `s` must have a unique name `s.name`, and this name must not be shared by any other type or element +- `s` must have a range specified via `s.range` in *mD* +- `s` may have an assignment `s.identifier` which is True if `s` plays the role of a unique identifier +- `s` may have certain boolean properties defined such as `s.mixin` and `s.abstract` +- `s` must have exactly one value for `s.slot_uri` in *mD*, and the value must be an instance of the builtin type UriOrCurie +- `s` may have parent SlotDefinitions defined via `s.is_a` and `s.mixins` + - the value of `s.is_a` must be a **SlotDefinitionReference** + - the value of `s.mixins` must be a collection of **SlotDefinitionReference**s + - For any parent `p` of `s`, if `p.mixin` is True, then `s.mixin` SHOULD be True +- `s` may have any number of additional slot-value assignments consistent with the validation rules provided here with the metamodel `MM` + +### TypeDefinition Structural Conformance Rules + +Each `s` in *mD*`.types` must conform to the rules below: + +- `t` must be an instance of a **TypeDefinition** +- `t` must have a unique name `t.name`, and this name must not be shared by any other type or element +- `t` must have a mapping to an xsd type provided via `t.uri` in *mD* +- `t` may have a parent type declared via `t.typeof` +- `t` may have any number of additional slot-value assignments consistent with the validation rules provided here with the metamodel `MM` + +### EnumDefinition Structural Conformance Rules + +Each `e` in *mD*`.enums` must conform to the rules below: + +- `e` must be an instance of a **EnumDefinition** +- `e` must have a unique name `e.name`, and this name must not be shared by any other enum or element +- `e` lists all static permissible values via `e.permissible_values`, the value of which is a list of instances of the MM class PermissibleValue +- `e` may have any number of additional slot-value assignments consistent with the validation rules provided here with the metamodel `MM` + +### ClassDefinitionReference Structural Conformance Rules + +Each `r` in *mD*`.class_references` must conform to the rules below: + +- `r` must be an instance of a **ClassDefinitionReference** +- `r` must have a unique name `r.name`, and this name must not be shared by any other type or element + +### Metamodel Conformance Rules + +Both the asserted and derived schema should be valid instances of the LinkML metamodel **MM** +using the instance validation rules described in the next section \ No newline at end of file diff --git a/linkml_runtime/linkml_model/model/docs/specification/05validation.md b/linkml_runtime/linkml_model/model/docs/specification/05validation.md new file mode 100644 index 00000000..f8a0d3ad --- /dev/null +++ b/linkml_runtime/linkml_model/model/docs/specification/05validation.md @@ -0,0 +1,307 @@ +# Validation using Schemas + +**Validation** is a procedure that takes as input a LinkML instance and a schema, and will +run a collection of *checks* against that instance. + +The validation procedure will produce output that can be used to determine if the instance is *structurally and semantically valid* according to the schema. + +The formal specification of the validation procedure takes as input a *derived* schema *mD*: + +```mermaid +flowchart TD + M[Asserted Schema] --> Derivation{Derivation Procedure} + Derivation -->|derives| Mstar[Derived Schema] + R[Rules] --> Derivation + I[Instance] --> Validation{Validation Procedure} + Validation -->|produces| Results[Validation Results] + Mstar --> Validation +``` + +Formally, the validation is performed against the abstract instance model, but validator +implementations may choose to perform additional validation checks against the concrete +serialization. This includes checking collections using `inlined_as_dict`. + +Actual implementations may choose to perform this composition or work directly on the asserted schema. + +The following holds for any validation procedure: + +- The output MUST include a boolean slot indicating whether the input can be demonstrated to be false +- The output SHOULD include additional information indicating types of validation errors and where they occur +- The output SHOULD be conformant with the LinkML validation schema. +- The output MAY also return cases where *recommendations* are not adhered to +- The output MAY also be combined with parsing to yield the precise location (i.e. line numbers) in the source serialization document where problems are found. +- The procedure MAY restrict validation to defined subsets (profiles) of the Metamodel +- The procedure SHOULD return in its payload an indication of which profile and version is used. + +## Types of checks + +| Check | Type | Description | SHACL | +|-----------------------|-----------|------------------------|-----------------------------------| +| `Required` | ERROR | | `MinCountConstraintComponent` | +| `Recommended` | WARNING | | `MinCountConstraintComponent` | +| `Singlevalued` | ERROR | | `MaxCountConstraintComponent` | +| `Multivalued` | ERROR | | `MinCountConstraintComponent` | +| `Inlined` | ERROR | | | +| `Referenced` | ERROR | | | +| `ClassRange` | ERROR | class matches range | `ClassConstraintComponent` | +| `Datatype` | ERROR | datatype matches range | `DatatypeConstraintComponent` | +| `NodeKind` | ERROR | range metatype | `NodeKindConstraintComponent` | +| `MinimumValue` | ERROR | | `MinInclusiveConstraintComponent` | +| `MaximumValue` | ERROR | | `MaxInclusiveConstraintComponent` | +| `Pattern` | ERROR | | `PatternConstraintComponent` | +| `EqualsExpression` | INFERENCE | | `EqualsConstraintComponent` | +| `StringSerialization` | INFERENCE | | `EqualsConstraintComponent` | +| `TypeDesignator` | INFERENCE | | | + +For the `INFERENCE` type, the validation procedure MAY fill in missing values in the instance. +There is only an error if the inferred value is not consistent with the asserted value. + +## Validation procedure for instances + + +``` +Validate(i, m, t): + mD = DeriveSchema(m) + s = new SlotDefinition(range=t) + for check in Checks: + if (s,i) matches check: + yield check + if i == (a1, ..., an): + for s' = i' in a1, ..., an: + Validate(i', mD, DerivedSlot(s', )) +``` + +Matches are performed against the tables below. The element `i` is checked against +the `Element` column. If the comparison type value **T** is `=`, this must be identical. If `i` is a Collection, +then the match is performed against all members of the collection. + + +The notation `[...]` indicates a collection with at least one value. + +### Core checks + +The following core checks apply to multiple instance definition types. + +| **T** | Element | Check Name | Fail Condition | +|-------|------------------------------------|----------------|----------------------------------------------------------------------------| +| `=` | `None` | `Required` | `.required=True` | +| `=` | `[]` | `Required` | `.required=True` | +| `=` | `None` | `Recommended` | `.required=True` | +| `=` | `[]` | `Recommended` | `.required=True` | +| `=` | `[...]` | `Singlevalued` | `.multivalued=False` | +| `=` | `[...]` | `UniqueKey` | **not** **Unique**(`[...]`) | +| `=` | `` ` != [...]` ` != None` | `Multivalued` | `.multivalued=True` | +| `in` | `&` | `NodeKind` | `.range ∉ m.types` | +| `in` | `[]` | `NodeKind` | `.range ∉ m.enums` | +| `in` | `&` | `Inlined` | `.range.inlined=True` | +| `in` | `()` | `Referenced` | `.range.inlined=False` | +| `in` | `()` | `NodeKind` | `.range ∉ m.classes` | + +The condition **Unique** checks a list of objects for uniqueness. + +For each `ClassDefinition` in the list, the primary key value is calculated, and this is assumed to be unique. + +### Deprecation checks + +The following checks match multiple different instance definition types and check for usage of deprecated elements. + +| **T** | Element | Check | Fail Condition | +|-------|------------------------------|--------------------|----------------------------------------------------------------------------| +| `in` | | `DeprecatedSlot` | `.deprecated=True` | +| `in` | `&` | `DeprecatedType` | `.deprecated=True` | +| `in` | `[]` | `DeprecatedEnum` | `.deprecated=True` | +| `in` | `&` | `DeprecatedClass` | `.deprecated=True` | +| `in` | `()` | `DeprecatedClass` | `.deprecated=True` | + + +### Atomic Checks + +The following checks only match when `i` is an **AtomicInstance** + +| **T** | Element | Check | Fail Condition | +|--------|-----------------------|-----------------------|-------------------------------------------------------------| +| `in` | `^` | `Datatype` | **Conforms**(``, `.uri`) | +| `in` | `^` | `MaximumValue` | ` > .maximum_value` | +| `in` | `^` | `MinimumValue` | ` < .minimum_value` | +| `in` | `^` | `Pattern` | ` !~ .pattern` | +| `in` | `&` | `Pattern` | ` !~ .pattern` | +| `in` | `^` | `EqualsExpression` | ` != Eval(.equals_expression(parent))` | +| `in` | `^` | `StringSerialization` | ` != Stringify(.string_serialization(parent))` | + + +### Class Checks + +The following checks only match when `i` is an **InstanceOfClass** + +| **T** | Element | Check | Fail Condition | +|--------|------------------------------------|-------------------|---------------------------------------------------------------------------------| +| `in` | `()` | `Abstract` | `Class.abstract` | +| `in` | `()` | `Mixin` | `Class.mixin` | +| `in` | `()` | `ClassRange` | `slot.range ∉ A*()` | +| `in` | `(..., =, ...)` | `ApplicableSlot` | `subslot ∉ .attributes` | +| `in` | `(..., =, ...)` | `DesignatedType` | `∃ v ∈ L(): v ∉ Norm(A*(), ts.range)` and `ts.designates_type = True` | + +For the DesignatedType check, the `Norm` function takes as input as a list of classes, +and expands these according to the range of the slot `ts` that designates the type. + + +| Range | Match | +|--------------|------------------------------------------------------| +| `string` | { `c.name` } | +| `curie` | { **CURIE**(`c.class_uri`) } | +| `uri` | { **URI**(`c.class_uri`) } | +| `uriorcurie` | { **CURIE**(`c.class_uri`), **URI**(`c.class_uri`) } | + +For example, given an instance + +> `Organization(name="acme", type=String^"Business")` + +And a schema that includes: + +```python +ClassDefinition( + name="Business", + is_a=ClassDefinition&Organization, +) +ClassDefinition( + name="Organization", + attributes=[ + SlotDefinition(name="type", range=TypeDefinition&string), + ... +``` + +This will pass the `DesignatedType` check, because: + +* `A*(ClassDefinition&Business) = { ..., ClassDefinition&Organization, ... }` +* `Norm(A*(ClassDefinition&Business), TypeDefinition&string) = { ..., String^"Business", ... }` +* `String^"Business" ∉ { ..., String^"Business", ... }` + +DesignatedType checks can also executed in inference mode, where an inference engine +may choose to assign the most specific value allowed to the slot. + +### Enum checks + + +| **T** | Element | Check | Fail Condition | +|--------|-----------------|---------------|------------------------------------| +| `in` | `[]` | `Permissible` | ` ∉ .permissible_value` | + +### Rules + +### Uniqueness checks + + +### Boolean combinations of expressions + +There are 4 boolean operator metaslots: + +- any_of +- exactly_one_of +- none_of +- all_of + +These can apply to classes, slots, types, or enums. The range is always a list of operand expressions +of the same type. + +In all cases, the semantics are as follows: + +- any_of: true if there exists a member of the operands that evaluates to true + * for empty lists this is always false +- exactly_one_of: true if there exists a member of the operands that evaluates to true, and all other members evaluate to false + * for empty lists this is always false +- none_of: true if there does not exist a member of the operands that evaluates to true + * for empty lists this is always true + * for lists of length 1 this is the same as the logical NOT operator + * for lists of length 2 this is the same as the logical XOR operator +- all_of: true if there are no members that evaluate to false + * for empty lists this is always true + +### Rule evaluation + +For each rule `r` in *C*.rules: + +- if `r.preconditions` is `None` or `r.preconditions` is satisfied, then +- `r.postconditions` are applied + +### Classification Rule evaluation + +## Validation of TypeDefinitions + +For each slot `s` in **Assignments**, if `i.` is not `None`, and `s.range` is in `m*.types`, +where `i. = *T*( **AtomicValue** )` must match `s.range`, + +here `T.uri` is used to determine the type: + +- for xsd floats, doubles, and decimals, AtomicValue must be a decimal- for xsd floats, doubles, and decimals, AtomicValue must be a decimal +- for xsd ints, AtomicValue must be an Integer +- for xsd dates, datetimes, and times, AtomicValue must be a string conforming to the relevant ISO type +- for xsd booleans, AtomicValue must be `True` or `False` + + +## Inference of new values + +## Schema Validation + +A LinkML schema is a LinkML instance that conforms to the LinkML metamodel. As such, it can be validated +in the same way as any other LinkML instance. + +### Metamodel refinement using annotations + +#### Background + +The LinkML model provides a fixed set of metamodel slots which can be applied to any schema element. +Any schema that assigns slot values not in the metamodel is invalid. + +Sometimes it is useful to attach additional information to elements in a schema, this is called +schema *extension*. Alternatively, it may be useful to be able to make the metamodel more restrictive +in some contexts; for example, making the `description` metamodel slot `required` rather than `recommended`. + +The LinkML metamodel can be effectively extended through the use of `annotation` slot assignments. +Annotations are `tag`-`value` pairs. + +As an example, if we want to add a metamodel slot `review` intended to store a review of a schema element. + +```yaml +classes: + Person: + annotations: + review: A very useful class that is well defined + ... +``` + +#### Annotation validation + +By default, all annotation tags and values are valid. + +LinkML 1.6 introduces the ability to validate annotation tags and values. + +This is done by adding an `instantiates` slot-value assignment onto any schema element. The range of +the `instantiates` slot is a `uriorcurie` that references a class that serves as a metamodel extension class. + +If a schema element instantiates at least one class then *all* annotations are validated. + +For example: + +```yaml +classes: + Person: + instantiates: + - mymetamodel:Reviewable + annotations: + review: A very useful class that is well defined + ... +``` + +The `Reviewable` class is defined as follows: + +```yaml +classes: + Reviewable: + class_uri: mymetamodel:Reviewable + slots: + description: an expert review of a schema element + review: string +``` + + + diff --git a/linkml_runtime/linkml_model/model/docs/specification/06mapping.md b/linkml_runtime/linkml_model/model/docs/specification/06mapping.md new file mode 100644 index 00000000..6a9fe4e0 --- /dev/null +++ b/linkml_runtime/linkml_model/model/docs/specification/06mapping.md @@ -0,0 +1,238 @@ +# Mapping of instance graphs to trees and graphs + +## Introduction + +This section describes how LinkML instances are translated to different formats and data models. + +The formal specification of LinkML instances is described in [Section 2](02instances.md). + +LinkML instances can be *realized* in a number of different concrete forms, including: + +1. tree-shaped serializations such as JSON or YAML +2. graph serializations such as RDF +3. in-memory programmatic typed object representations, such as Python dataclass instances or java objects. +4. Tables in a relational database +5. flattened tabular representations + +This part of the LinkML specification only deals with 1-3. Future versions of the specification may also include 4-5. + +### Terminology + +- a *mapping* describes how the abstract LinkML instance model maps to a concrete form and back +- *dumping* or *serialization* is the process realizing a mapping from a programmatic representation to a serialization syntax +- *conversion* is the processing of converting between one serialization and another +- a *lossy* mapping is one that is not guaranteed to preserve all information + +### Implementations + +As the functional syntax is only intended for specification purposes, it is not expected that implementations use this as an intermediate. Instead, it is expected that an implementation will go via an internal programmatic representation. + +The reference implementation is the [linkml-runtime](https://github.com/linkml/linkml-runtime/) but other implementations that conform to this specification are valid. + +## Mapping to JSON or YAML + +Here we define a mapping of LinkML instances to JSON. + +| note on YAML| +|---| +| As JSON is a subset of YAML, this can also be used to load and dump from YAML. This is the canonical YAML mapping. We leave open the possibility of a *direct* YAML conversion in future which makes use of YAML tags to encode typing information. | + +### Mapping to JSON: Overview + +- Serialization to JSON takes as input: + - a (root) instance +- Parsing from JSON takes as input: + - a JSON document + - a target ElementName + - a SchemaDefinition + +The following table defines a translation function **trJ**(*i*) that maps LinkML instances to JSON. + +To apply this, *i* is matched against the instance column, and if a match is found, the production rule on the right hand side is applied. + +| Instance | JSON | +|----------------------------------------------------|-------------------------------------------------------| +| `None` | `null` | +| `&` | `string()` | +| `&` | `number()` | +| `&` | `bool()` | +| `[]` | `` | +| `&` | `string()` | +| `&` | `number()` | +| `(=, ..., =)` | `object(string(s1)=trJ(v1), ..., string(sN)=trJ(vN))` | +| `[]` | See below | + +the functions `object` and `number` and `string` apply as per the [definitions here](https://www.json.org/json-en.html) + +### Collection Forms + +There are 4 different *forms* in which a LinkML collection can be serialized as JSON. These forms *only* apply to lists uniformly consisting of **InstanceOfClass** objects. + +| Form | JSON | +|----------------|--------------------------------------------------------------------------| +| `SimpleDict` | `object( K(i1): tr(V(i1)), ..., K(iN): tr(V(iN)) )` | +| `CompactDict` | `object( K(i1): tr(i1) - {PK: K(i1), ..., K(iN): tr(iN) - {PK: K(iN)} )` | +| `ExpandedDict` | `object( K(i1): tr(i1), ..., K(iN): tr(iN) )` | +| `List` | `'[' tr(i1), ..., tr(iN) ']'` | + +This is determined in part by the parent slot `s` + +* If `s.inlined_as_dict == False` then the form is `List` +* If `s.inlined_as_dict == True` then the form is `SimpleDict` or `CompactDict` or `ExpandedDict` + * If `s.inlined_as_simple_dict == True` then the form is `SimpleDict` + * If `s.inlined_as_simple_dict == False` then the form is `CompactDict` or `ExpandedDict` + * If `s.inlined_as_expanded_dict == True` then the form is `ExpandedDict` + * If `s.inlined_as_expanded_dict == False` then the form is `CompactDict` + +Note that `inlined_as_simple_dict` and `inlined_as_expanded_dict` are only explicitly added to the metamodel in LinkML 1.5 and above. Prior to 1.5 these are calculated as follows: + +* `inlined_as_simple_dict` is True if `inlined_as_dict` is True, and the derived model has a total of two attributes (one of which is the key) +* `inlined_as_expanded_dict` is False + +### Collection Form Normalization + +*Normalization* is the process of translating or *coercing* one form to the canonical form. + +There are 12 non-identity normalizations possible, according to this table: + +| Source Form | Target Form | Repair? | +|----------------|----------------|---------| +| `List` | `SimpleDict` | `True` | +| `List` | `CompactDict` | `True` | +| `List` | `ExpandedDict` | `True` | +| `SimpleDict` | `List` | `True` | +| `SimpleDict` | `CompactDict` | `False` | +| `SimpleDict` | `ExpandedDict` | `False` | +| `CompactDict` | `List` | `True` | +| `CompactDict` | `SimpleDict` | `False` | +| `CompactDict` | `ExpandedDict` | `False` | +| `ExpandedDict` | `List` | `True` | +| `ExpandedDict` | `SimpleDict` | `False` | +| `ExpandedDict` | `CompactDict` | `False` | + +Additionally, the process of converting between a list of length 1 and a singleton, or the reverse translation, is considered a Repair normalization. + +JSON Parsers MUST implement normalizations where Repair=False. These indicate alternative *valid* serializations. JSON Parsers MAY choose to implement Repair normalizations. If they choose to implement these, there SHOULD be a way to allow the user to disable these repairs. + +Validators that take JSON as input SHOULD perform normalizations where Repair=False. These normalizations SHOULD be reported as part of the validation report, and MUST NOT be counted as validation errors. Validators MAY perform normalization of Repair=True normalizations, if they do, they MUST report these as errors. + +### Mapping from JSON + +Mapping to JSON is potentially lossy, as the definition names are not preserved. + +When mapping from JSON, the function is **tr-1J**(*obj*, *target*) where target is a schema element. + +The same table as above is used, but an additional inference rule is applied when the target is a `ClassDefinitionName`. + +First a *deepening* procedure is applied. If `target` has an induced slot **st** such as that **st**`.designates_type` is `True`, then the value of `obj.`**st** is used to determine the type of the instance. + +* If the range of **st** is a TypeDefinition `uriorcurie` then the ClassDefinitionName is indexed by the uriorcurie of the class +* If the range of **st** is a TypeDefinition with uri `xsd:anyURI` then the ClassDefinitionName is indexed by the URI of the class +* Otherwise the value of the **st** is the target class name + +For each assignment, the induced slot `s` is calculated (see section 5 of the specification), and `s.range` is used for the target of subsequent calls to **tr-1J**(*obj*, *target*). + +## Translation to RDF + +Two RDF translations can be specified: + +- A *direct* translation +- Translation via JSON-LD, which combines + 1. Translation of a LinkML **SchemaDefinition** to a **JSON-LD Context** + 2. The standard translation of LinkML instances to JSON + +Both translations make use of the **prefixes** provided in the schema + +The semantic content of both is equivalent. + +### Mapping of CURIEs to URIs + +LinkML provides standard types: + +- Curie +- Uri +- Curieoruri + +The syntax for a CURIE is defined by [W3C CURIE Syntax 1.0](https://www.w3.org/TR/curie/) + +> **curie** := [ [ **prefix** ] ':' ] **reference** + +> **prefix** := **[NCName](https://www.w3.org/TR/1999/REC-xml-names-19990114/#NT-NCName)** + +> **reference** := **[irelative-ref](https://www.ietf.org/rfc/rfc3987.txt)** + +See the Part 5 for rules for generating CURIEs and URIs from schema elements. + +### Mapping functions + +The following three functions are used when mapping LinkML instances to RDF: + +| Function | Value | +|-------------------|----------------------------| +| Literal(*v*, *T*) | `""^^T.uri` | +| Node(*v*) | `URI()` | +| Pred(*p*) | `URI(p.slot_uri)` | +| Subj(*i*) | `URI(K(i))` *or* **Blank** | + +### Direct Translation of instance graphs to RDF + +A translation **Tr**R operates on an instance `i`, which is matched against the first column here, generating triples in the second column, and returning the value in the final column. + +| *i* | Triples | Returns | +|---------------------------------------------|------------------------------------------------|--------------------| +| `None` | `{}` | `None` | +| `&` | `{}` | `Literal(V, Type)` | +| `[]` *where* `PV.meaning=None` | `{}` | `Literal(V, Type)` | +| `[]` *where* `PV.meaning!==None` | `{}` | `Node(PV.meaning)` | +| `&` | `{}` | `Node(V)` | +| `(=, ..., =)` | `` *for i in 1..N* | `Subj(i)` | + +The triple generator column contains either the empty list or rules to generate triples. The templates `` denotes a triple `` for each `oi` in `L(o)`. + +### Translation of instance graphs to RDF graphs (via JSON-LD) + +This is an alternative specification of a mapping to RDF, specified in terms of a mapping to JSON-LD. + +The mapping to JSON-LD is in two parts: + +1. mapping the instance to JSON-LD +2. mapping the derived schema to a JSON-LD context + +For (1), the mapping is the same as in "Mapping to JSON", above, with the addition of the insertion of a `@context` key-value pair into the top level object. + +For (2), a JSON-LD context is generated by walking the entire derived SchemaDefinition object applying matches in the table below: + +| Schema Element | Match | Context Key | Context Value | +|--------------------|----------------------------------|--------------------|-------------------------------------------| +| `SchemaDefinition` | p in e.prefixes` | `p.prefix_prefix` | `@id=` `@prefix=true` | +| `SchemaDefinition` | `s in e.slots` | `s.name` | `@type=` | +| `SchemaDefinition` | `s in e.slots` | `s.name` | `@id=URI()` | +| `SchemaDefinition` | `s in e.slots`, `s.inlined=True` | `s.name` | `@id=URI()` | +| `SchemaDefinition` | `c in e.classes` | `c.name` | `@id=URI()` ` | +| `ClassDefinition` | `s in e.attributes` | `s.name` | `@type=` | +| `ClassDefinition` | `s in e.attributes` | `s.name` | `@id=URI()` | +| `ClassDefinition` | `s in e.attributes`, `s.inlined=True` | `s.name` | `@id=URI()` | + +## Mapping to Typed Objects + +Different programming languages have different formalisms for representing objects. We specify a generic mapping +to an abstract *typed object* representation, which can be mapped to the native object representation of a given language. + +The mapping to Typed Objects is similar to the mapping to JSON, with the addition that each node in the tree has an **ElementName** (type) +associated with it. + +| Instance | TypedObject | +|----------------------------------------------------|------------------------------------------------------| +| `None` | `null` | +| `&` | `()` | +| `[]` | `()` | +| `&` | `REF()()` | +| `(=, ..., =)` | `(s1=trO(v1), ..., sN=trO(vN))` | +| `[]` | As for JSON | + +The function `REF` takes a ClassDefinitionName and returns a function that returns the name of an atomic class by +concatenating the ClassDefinitionName with the name of `PK(ClassDefinitionName)` using the naming conventions of the target language. +For example, if the class `Person` has an attribute `id` marked `identifier=True` then `REF(Person)` returns `PersonId`, +assuming CamelCase naming conventions. + +Mappings to target languages MAY choose to simplify AtomicClassNamees to the corresponding primitives for that language. diff --git a/linkml_runtime/linkml_model/model/docs/specification/07codegen.md b/linkml_runtime/linkml_model/model/docs/specification/07codegen.md new file mode 100644 index 00000000..deedf7ee --- /dev/null +++ b/linkml_runtime/linkml_model/model/docs/specification/07codegen.md @@ -0,0 +1,235 @@ +# Mapping Schemas to Programming Language Structures + +LinkML Schemas can be mapped to modeling constructs in different programming languages. +This allows for *code generation*, in which a LinkML schema is used as the source to generate +code in a target language. + +This has a number of advantages, including type safety, programmer efficiency, ease of mapping +to other serializations, helping ensure code and domain models are aligned. + +As each programming language differs in which constructs it offers and the precise +semantics of these constructs, there is single standard for mapping. Instead, we provide +a set of general recommendations that can be adapted to each language. + +## Terminology + +* Programming language constructs: + * `Structure`: a compound datatype that consists of one of more attributes + * `Class`: a Structure that supports or partially supports inheritance + * `Attribute`: a field or property of a class or struct + * `Class-level variable`: a property of a class rather than of an instance of that class + * `Module`: A file-level bundle of classes or structures + * `Package`: A collection of modules + +## Mapping of LinkML Schemas + +### Schemas to Modules + +A schema SHOULD be mapped to EITHER a module or a collection of modules, depending on the idioms +of the target language. + +For languages where it is conventional to include multiple classes or structures in +a single module (e.g. Python), the schema SHOULD correspond to a module. + +For languages where it is conventional to include a single classes or structures in +a single module (e.g. Java), a single module will correspond to a single LinkML class or enum. + +Current implementations: + +| Target | Default Mapping | +|---------------|---------------------| +| Dataclasses | One file per schema | +| Pydantic | One file per schema | +| Java | One file per class | +| Typescript | One file per schema | + +### Imports + +A mapping MAY choose to merge imports prior to code generation. If imports are not merged, +then each `imports` in the SchemaDefinition MUST be mapped to an import statement in the target +language. + +Where modules correspond to structures, there SHOULD be one import in the target language module for +every import in the source LinkML schema. + +Mappings MAY choose to selectively import via inspection of all used elements. + +### Naming Conventions for Modules + +There MUST be a correspondence between schema `name` and module name. The mapping MAY +prioritize idioms of the target language over LinkML idioms, although the mapping MUST +be deterministic. + +For example, if the target language has module names as `CamelCase` then a mapping MAY +translate all module names using a standard camel case string transformation. + +Schema level metadata MAY be included in the header of the module. This MAY +be as comments, but if the target language supports module-level variables or other +ways to make schema metadata introspectable at runtime, these mechanisms SHOULD be used. + +Current implementations: + +| Target | Default Mapping | +|---------------|-----------------| +| Dataclasses | underscore | +| Pydantic | underscore | +| Java | CamelCase | +| Typescript | CamelCase | + +## Mapping of LinkML Classes + +### Target Constructs + +Different languages support different constructs, which may all make +appropriate targets for LinkML classes. For example: + +* Java has both Interfaces and Classes, and newer versions of Java support Records +* Scala has traits and sealed traits +* Rust has structs, traits, and enums +* Typescript has classes and interfaces + +The choice should reflect whatever is most idiomatic for the target language. +The generation MAY allow for different mappings, controlled by either user configuration, +or by properties of either the schema and its elements. + +For example, when mapping to Rust, a generator MAY choose to map to either structs +or to struct/enum/trait combinations, depending on whether polymorphism is used +in the schema. + +A mapping MAY be non-isomorphic (i.e not one-to-one). For example, +in languages that have a split between +interface-like constructs and concrete class-like constructs, a generator MAY choose to +implement a mapping where each LinkML class creates *both* structures, in order +to leverage the full benefits of the target language. + + + +### Class level variables + +A generator SHOULD map certain properties of schema elements to class level +variables where the target language allows. When this mapping occurs, +the names of the class level variables MUST correspond to LinkML metamodel elements, +allowing for translation to language idioms. + +The following class-level variables are recommended: + +* class_class_uri: the semantic URI of the class, as defined by `class_uri` +* class_class_curie: the CURIE form of class_class_uri +* class_name: the normalized name of the LinkML class, corresponding to the name of the class +* class_model_uri: the URI of the class within the namespace of the schema + +A generator MAY allow for generation of class level variables to be suppressed. + +A generator MAY choose to use annotations in place of class-level variables + +Current implementations: + +| Target | Default Mapping | +|---------------|-----------------| +| Dataclasses | all | +| Pydantic | none (planned) | +| Java | none (planned) | +| Typescript | none | + +### Inheritance + +Mapping of `is_a` and `mixins` may be dependent on properties of target language +constructs. + +Generators MAY choose to roll-down attributes from parent classes. + +If the target construct for a class supports single inheritance, then the is_a SHOULD +correspond to the analogous construct (for example, `extends` in Java). The mixins MAY be +represented using an alternative construct (such as `implements` in Java). + +Generators MAY choose to create type checkers for runtime inspection +of instantiated classes. This SHOULD NOT be done in languages that +support polymorphism and type checking natively (for example `isinstance` in Python) + +### Mapping of class slots and attributes + +Mapping of class slots and attributes should be entailment-preserving, such that +the semantics of the generated code in the target language corresponds to +a *derived* schema. + +For example, consider a schema with classes: + +```yaml +classes: + NamedThing: + attributes: + id: + Person: + is_a: NamedThing + attributes: + address: +``` + +The following are both valid ways to map `Person` to a target language construct: + +* a non-class structure with two asserted attributes, `id` and `address` (the address has been "rolled down") +* a class structure whose structure mirrors the source LinkML, with `id` only asserted on the parent + +### Constructors + +Generation of constructors will be highly dependent on source language, but the following +guidelines should be followed: + +- if the target language allows named assignment of attributes, then this SHOULD be the default constructor style +- if the target language allows positional assignment of attributes, then this MAY be allowed: + - the order of attributes MUST correspond to `rank` metaslots in the derived schema, if specified + - otherwise the ordering MUST correspond to the order in which slots or attributes are specified + - starting from the is_a root, working down the is_a hierarchy + - `slots` order prioritized over `attributes` +- if the target language and idiom uses builder patterns then these may be used + +### Mapping of schema-level slots + +### Mapping of constraints and rules + +Constraints and rules in LinkML SHOULD be mapped to declarative target +constructs where possible. If this is not possible then the generator +MAY choose to generate code that implements the constraint or rule. + +For example, when mapping the LinkML metaslot `maximum_value` to Pydantic, +a `Field` with property `maximum_value` should be used. This makes the generated +code more declarative, and takes advantage of the target framework's +builtin abilities to perform validation. + +If mapping to a target that does not support the feature then code generation +may be applied. For example, if there is no equivalent direct correspondence to +`maximum_value`, then the generated construct MAY include a validation +procedure that checks the value against the maximum. + +### Complex boolean ranges + +## Mapping of enums + +## Runtime dependencies + +A generator MAY choose to generate code that is either self-contained, +or that has runtime dependencies. The runtime library SHOULD be kept +minimal, within the constraints of the requirements of the runtime library. + +## Mapping of types + +Types SHOULD be mapped to one of the following: + +* primitive types in the target language +* type variables +* class-like structures that can emulate scalar-like properties + +Some languages like Java have a choice for primitives, either builtin +like `str` or classes like `String`. + +## Metaclasses + +If the target language supports it then metaclasses may be used to +type generated LinkML classes. + + + +## Loaders and Dumpers + +## Packages and package distribution + diff --git a/linkml_runtime/linkml_model/model/docs/specification/index.md b/linkml_runtime/linkml_model/model/docs/specification/index.md new file mode 100644 index 00000000..1eefb0f3 --- /dev/null +++ b/linkml_runtime/linkml_model/model/docs/specification/index.md @@ -0,0 +1,11 @@ +# LinkML Specification + +## Table of Contents + +- [Preamble](00preamble) +- [Introduction](01introduction) +- [Instances](02instances) +- [Schemas](03schemas) +- [Derived Schemas](D04derived-schemas) +- [Validation](05validation) +- [Mapping](06mapping) diff --git a/linkml_runtime/linkml_model/model/schema/annotations.yaml b/linkml_runtime/linkml_model/model/schema/annotations.yaml index 0ab045ba..31672646 100644 --- a/linkml_runtime/linkml_model/model/schema/annotations.yaml +++ b/linkml_runtime/linkml_model/model/schema/annotations.yaml @@ -40,4 +40,3 @@ classes: - annotatable slots: - annotations - diff --git a/linkml_runtime/linkml_model/model/schema/array.yaml b/linkml_runtime/linkml_model/model/schema/array.yaml new file mode 100644 index 00000000..f049abc3 --- /dev/null +++ b/linkml_runtime/linkml_model/model/schema/array.yaml @@ -0,0 +1,279 @@ +id: https://w3id.org/linkml/lib/arrays +name: arrays +title: LinkML Arrays +description: >- + LinkML templates for storing one-dimensional series, two-dimensional arrays, + and arrays of higher dimensionality. + + Status: Experimental + + Note that this model is not intended to be imported directly. Instead, + use `implements` to denote conformance. + +status: testing +# contributors: +# - github:rly +# - github:oruebel +# - github:jmchandonia +# - github:realmarcin +# - github:mavaylon1 +# - github:ialarmedalien +# - github:cmungall + +prefixes: + linkml: https://w3id.org/linkml/ + github: https://github.com/ + gom: https://w3id.org/gom# + +default_prefix: linkml +default_range: string + +imports: + - linkml:types + +classes: + + Any: + class_uri: linkml:Any + + DataStructure: + abstract: true + + Array: + description: >- + a data structure consisting of a collection of *elements*, each identified by at least one array index tuple. + abstract: true + is_a: DataStructure + slots: + - dimensionality + - elements + - array_linearization_order + slot_usage: + elements: + description: >- + the collection of values that make up the array. The elements have a *direct* representation which is + an ordered sequence of values. The elements also have an *array interpretation*, where each + element has a unique index which is determined by array_linearization_order + + + OneDimensionalSeries: + is_a: Array + description: >- + An array that has one dimension + aliases: + - axis + - 1D array + - vector + - series + - row + slots: + - series_label + - length + # TODO: consider offset and rate + slot_usage: + dimensionality: + equals_expression: "1" + + TwoDimensionalArray: + is_a: Array + description: >- + An array that has two dimensions + aliases: + - table + - matrix + - grid + slots: + - axis0 + - axis1 + slot_usage: + dimensionality: + equals_expression: "2" + elements: + description: >- + this will be serialized as one big long list that should be interpreted as a 2D array + + ThreeDimensionalArray: + is_a: Array + description: >- + An array that has two dimensions + aliases: + - 3D array + slots: + - axis0 + - axis1 + - axis2 + slot_usage: + dimensionality: + equals_expression: "3" + + OrderedArray: + mixin: true + description: >- + A mixin that describes an array whose elements are mapped from a linear sequence to an array index + via a specified mapping + + ColumnOrderedArray: + mixin: true + description: >- + An array ordering that is column-order + slots: + - array_linearization_order + slot_usage: + array_linearization_order: + equals_string: COLUMN_MAJOR_ARRAY_ORDER + + RowOrderedArray: + mixin: true + description: >- + An array ordering that is row-order or generalizations thereof + slots: + - array_linearization_order + slot_usage: + array_linearization_order: + equals_string: ROW_MAJOR_ARRAY_ORDER + + MultiDimensionalArray: + is_a: Array + abstract: true + description: >- + An array that has more than two dimensions + + ObjectAsTuple: + comments: + - not modeled as an array since this is used as a metaclass + implements: + - OneDimensionalSeries + + ArrayIndex: + is_a: ObjectAsTuple + + Operation: + abstract: true + description: >- + Represents the transformation of one or more inputs to one or more outputs determined by + zero to many operation parameters + slots: + - specified_input + - specified_output + - operation_parameters + + ArrayIndexOperation: + description: >- + An operation that takes as input an Array and is parameterized by an array index tuple and + yields an array element + slot_usage: + specified_input: + range: Array + maximum_cardinality: 1 + specified_output: + range: Any + maximum_cardinality: 1 + operation_parameters: + range: ArrayIndex + maximum_cardinality: 1 + +slots: + dimensionality: + description: >- + The number of elements in the tuple used to access elements of an array + aliases: + - rank + - dimension + - number of axes + - number of elements + range: integer + axis: + abstract: true + range: OneDimensionalSeries + aliases: + - dimension + description: >- + A one dimensional series that contains elements that form one part of a tuple used to access an array + axis0: + is_a: axis + aliases: + - x + - dimension0 + description: >- + An axis that is the zeroth index of the tuple used to access an array + range: OneDimensionalSeries + rank: 0 + required: true + inlined: true + inlined_as_list: true + axis1: + is_a: axis + aliases: + - y + description: >- + An axis that is the index after the zeroth of the tuple used to access an array + range: OneDimensionalSeries + rank: 1 + required: true + inlined: true + inlined_as_list: true + axis2: + is_a: axis + aliases: + - z + range: OneDimensionalSeries + rank: 2 + required: true + inlined: true + inlined_as_list: true + elements: + # this will be serialized as one big long list that should be interpreted as a 2D array + range: Any + aliases: + - values + required: true + multivalued: true + description: >- + A collection of values that make up the contents of an array. These elements may be interpreted + as a contiguous linear sequence (direct representation) or as elements to be accessed via an + array index + series_label: # the row label + key: true + description: >- + A name that uniquely identifiers a series + length: + description: >- + The number of elements in the array + range: integer + equals_expression: "length(elements)" + array_linearization_order: + range: ArrayLinearizationOrderOptions + ifabsent: "string(ROW_MAJOR_ARRAY_ORDER)" + + specified_input: + range: DataStructure + multivalued: true + specified_output: + range: DataStructure + multivalued: true + operation_parameters: + range: Any + multivalued: true + +enums: + ArrayLinearizationOrderOptions: + description: >- + Determines how a linear contiguous representation of the elements of an array map + to array indices + permissible_values: + COLUMN_MAJOR_ARRAY_ORDER: + meaning: gom:columnMajorArray + description: >- + An array layout option in which the elements in each column is stored in consecutive positions, + or any generalization thereof to dimensionality greater than 2 + aliases: + - F order + ROW_MAJOR_ARRAY_ORDER: + meaning: gom:rowMajorArray + description: >- + An array layout option in which the elements in each row is stored in consecutive positions, + or any generalization thereof to dimensionality greater than 2 + aliases: + - C order + + diff --git a/linkml_runtime/linkml_model/model/schema/datasets.yaml b/linkml_runtime/linkml_model/model/schema/datasets.yaml new file mode 100644 index 00000000..1f95748d --- /dev/null +++ b/linkml_runtime/linkml_model/model/schema/datasets.yaml @@ -0,0 +1,355 @@ +id: https://w3id.org/linkml/datasets +title: LinkML Datasets Datamodel +name: datasets +description: A datamodel for datasets +license: https://creativecommons.org/publicdomain/zero/1.0/ +see_also: + - https://specs.frictionlessdata.io/data-resource + - https://www.w3.org/TR/void/ + - https://www.w3.org/TR/hcls-dataset/ + +prefixes: + linkml: https://w3id.org/linkml/ + datasets: https://w3id.org/linkml/report + skos: http://www.w3.org/2004/02/skos/core# + pav: http://purl.org/pav/ + schema: http://schema.org/ + sh: https://w3id.org/shacl/ + void: http://rdfs.org/ns/void# + frictionless: https://specs.frictionlessdata.io/ + formats: http://www.w3.org/ns/formats/ + csvw: http://www.w3.org/ns/csvw# + dcat: http://www.w3.org/ns/dcat# + mediatypes: https://www.iana.org/assignments/media-types/ + +default_prefix: datasets +default_range: string + +default_curi_maps: + - semweb_context + +emit_prefixes: + - linkml + - rdf + - rdfs + - xsd + - owl + +imports: + - linkml:types + + +# ================================== +# Classes # +# ================================== +classes: + Information: + abstract: true + description: Grouping for datasets and data files + close_mappings: + - schema:CreativeWork + slots: + - id + - download_url + - license + - title + - description + - conforms_to + - conforms_to_schema + - conforms_to_class + - version + - language + - publisher + - keywords + - issued +# - modified + - created_by + - created_on + - compression + - was_derived_from + - page + - test_roles + + DataPackage: + aliases: + - dataset + - file collection + - data resource collection + description: A collection of data resources + is_a: Information + class_uri: void:Dataset + exact_mappings: + - dcat:Dataset + close_mappings: + - dcat:Catalog + see_also: + - https://specs.frictionlessdata.io/data-package + slots: + - resources + + DataResource: + is_a: Information + description: An individual file or table + class_uri: dcat:Distribution + exact_mappings: + - schema:DataDownload + see_also: + - https://specs.frictionlessdata.io/data-resource + slots: + - path + - title + - description + - format + - media_type + - encoding + - bytes + - hash + - md5 + - sha256 + - dialect + + FormatDialect: + description: Additional format information for a file + attributes: + comment_prefix: + delimiter: + double_quote: + header: + quote_char: + +# ================================== +# Slots # +# ================================== +slots: + id: + identifier: true + description: the unique name of th dataset + slot_uri: dcterms:identifier + exact_mappings: + - schema:name + + title: + description: the official title of the element + slot_uri: dcterms:title + + description: + description: human readable description of the information + slot_uri: dcterms:description + + language: + description: language in which the information is expressed + + publisher: + slot_uri: dcterms:publisher + range: uriorcurie + + issued: + slot_uri: dcterms:issued + range: datetime + + page: + slot_uri: dcat:landingPage + + dialect: + slot_uri: csvw:dialect + + bytes: + range: integer + slot_uri: dcat:byteSize + + path: + close_mappings: + - frictionless:path + + download_url: + range: uri + slot_uri: dcat:downloadURL + exact_mappings: + - schema:url + close_mappings: + - frictionless:path + + format: + range: FormatEnum + slot_uri: dcterms:format + + compression: + + encoding: + hash: + notes: + - we recommend using a more specific slot such as sha256 or md5 + sha256: + is_a: hash + md5: + is_a: hash + + media_type: + # range: MediaTypeEnum + range: string + examples: + - value: text/csv + - value: application/json + slot_uri: dcat:mediaType + exact_mappings: + - frictionless:mediatype + - schema:encodingFormat + + conforms_to: + slot_uri: dcterms:conformsTo + range: uriorcurie + + conforms_to_schema: + is_a: conforms_to + exact_mappings: + - frictionless:schema + + conforms_to_class: + is_a: conforms_to + description: class in schema which the data object instantiates + + profile: + range: uriorcurie + exact_mappings: + - frictionless:profiles + + keywords: + singular_name: keyword + multivalued: true + range: string + slot_uri: dcat:keyword + exact_mappings: + - schema:keywords + + themes: + singular_name: theme + multivalued: true + range: uriorcurie + slot_uri: dcat:theme + + resources: + multivalued: true + range: DataResource + slot_uri: dcat:distribution + exact_mappings: + - schema:distribution + + test_roles: + multivalued: true + range: TestRole + + created_by: + range: uriorcurie + description: agent that created the element + slot_uri: pav:createdBy + + created_on: + range: datetime + description: time at which the element was created + slot_uri: pav:createdOn + + last_updated_on: + range: datetime + description: time at which the element was last updated + slot_uri: pav:lastUpdatedOn + + modified_by: + range: uriorcurie + description: agent that modified the element + slot_uri: oslc:modifiedBy + + status: + range: uriorcurie + description: status of the element + slot_uri: bibo:status + examples: + - value: "bibo:draft" + + license: + description: license for the data + slot_uri: dcterms:license + exact_mappings: + - frictionless:licenses + + version: + description: particular version of schema + slot_uri: pav:version + exact_mappings: + - schema:version + - dcterms:hasVersion + + was_derived_from: + slot_uri: prov:wasDerivedFrom + description: A derivation is a transformation of an entity into another, an update + of an entity resulting in a new one, or the construction of a new entity based + on a pre-existing entity.@en + +# ================================== +# Enumerations # +# ================================== +enums: + + TestRole: + permissible_values: + Example: + CounterExample: + + MediaTypeEnum: + exact_mappings: + - dcterms:MediaType + permissible_values: + csv: + meaning: mediatypes:text/csv + rdf-xml: + meaning: mediatypes:application/rdf+xml + + FormatEnum: + permissible_values: + JSON-LD: + meaning: formats:JSON-LD + N3: + meaning: formats:N3 + N-Triples: + meaning: formats:N-Triples + N-Quads: + meaning: formats:N-Quads + LD Patch: + meaning: formats:LD_Patch + Microdata: + meaning: formats:microdata + OWL XML Serialization: + meaning: formats:OWL_XML + OWL Functional Syntax: + meaning: formats:OWL_Functional + OWL Manchester Syntax: + meaning: formats:OWL_Manchester + POWDER: + meaning: formats:POWDER + POWDER-S: + meaning: formats:POWDER-S + PROV-N: + meaning: formats:PROV-N + PROV-XML: + meaning: formats:PROV-XML + RDFa: + meaning: formats:RDFa + RDF/JSON: + meaning: formats:RDF_JSON + RDF/XML: + meaning: formats:RDF_XML + RIF XML Syntax: + meaning: formats:RIF_XML + SPARQL Results in XML: + meaning: formats:SPARQL_Results_XML + SPARQL Results in JSON: + meaning: formats:SPARQL_Results_JSON + SPARQL Results in CSV: + meaning: formats:SPARQL_Results_CSV + SPARQL Results in TSV: + meaning: formats:SPARQL_Results_TSV + Turtle: + meaning: formats:Turtle + TriG: + meaning: formats:TriG + YAML: + JSON: diff --git a/linkml_runtime/linkml_model/model/schema/extensions.yaml b/linkml_runtime/linkml_model/model/schema/extensions.yaml index ca9bd1b1..b015dcae 100644 --- a/linkml_runtime/linkml_model/model/schema/extensions.yaml +++ b/linkml_runtime/linkml_model/model/schema/extensions.yaml @@ -37,9 +37,14 @@ slots: domain: extension alias: value required: true + range: AnyValue classes: + + AnyValue: + class_uri: linkml:Any + extension: description: a tag/value pair used to add non-model information to an entry slots: diff --git a/linkml_runtime/linkml_model/model/schema/mappings.yaml b/linkml_runtime/linkml_model/model/schema/mappings.yaml index 15285e7f..6f1ede05 100644 --- a/linkml_runtime/linkml_model/model/schema/mappings.yaml +++ b/linkml_runtime/linkml_model/model/schema/mappings.yaml @@ -12,7 +12,7 @@ prefixes: IAO: http://purl.obolibrary.org/obo/IAO_ default_curi_maps: - - semweb_context + - semweb_context default_prefix: linkml default_range: string diff --git a/linkml_runtime/linkml_model/model/schema/meta.yaml b/linkml_runtime/linkml_model/model/schema/meta.yaml index efdaa1b1..7bad9e38 100644 --- a/linkml_runtime/linkml_model/model/schema/meta.yaml +++ b/linkml_runtime/linkml_model/model/schema/meta.yaml @@ -49,6 +49,7 @@ prefixes: prov: http://www.w3.org/ns/prov# vann: https://vocab.org/vann/ qudt: http://qudt.org/schema/qudt/ + cdisc: http://rdf.cdisc.org/mms# default_prefix: linkml default_range: string @@ -124,9 +125,9 @@ subsets: description: |- A profile that includes all the metamodel elements whose semantics can be expressed in OWL -#================================== -# Slots # -#================================== +# ================================== +# Slots # +# ================================== slots: # ----------------------------------- @@ -185,6 +186,13 @@ slots: into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element. multivalued: true + + instantiates: + domain: element + range: uriorcurie + description: >- + An element in another schema which this element instantiates. + multivalued: true categories: range: uriorcurie @@ -456,7 +464,7 @@ slots: description: >- the primary language used in the sources comments: - - Recommended to use a string from IETF BCP 47 + - Recommended to use a string from IETF BCP 47 conforms_to: https://www.rfc-editor.org/rfc/bcp/bcp47.txt source: @@ -538,7 +546,7 @@ slots: description: >- A collection of secondary parent classes or slots from which inheritable metaslots are propagated from. comments: - - mixins act in the same way as parents (is_a). They allow a model to have a primary strict hierachy, while keeping the benefits of multiple inheritance + - mixins act in the same way as parents (is_a). They allow a model to have a primary strict hierarchy, while keeping the benefits of multiple inheritance see_also: - https://en.wikipedia.org/wiki/Mixin in_subset: @@ -567,7 +575,7 @@ slots: 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 + Setting this property on a slot does not guarantee an expansion of the ontological hierarchy into an enumerated list of possible values in every serialization of the model. status: testing @@ -627,6 +635,8 @@ slots: in_subset: - SpecificationSubset - BasicSubset + exact_mappings: + - cdisc:PermissibleValue enum_uri: aliases: @@ -953,7 +963,7 @@ slots: source_file: domain: schema_definition - readonly: suppplied by the schema loader + readonly: supplied by the schema loader description: name, uri or description of the source of the schema in_subset: - BasicSubset @@ -1432,7 +1442,7 @@ slots: domain: slot_definition range: string inherited: true - description: |- + description: >- function that provides a default value for the slot. Possible values for this slot are defined in linkml.utils.ifabsent_functions.default_library: * [Tt]rue -- boolean True @@ -1515,7 +1525,6 @@ slots: range: integer inherited: true description: the minimum number of entries for a multivalued slot - status: testing in_subset: - SpecificationSubset @@ -1524,7 +1533,6 @@ slots: range: integer inherited: true description: the maximum number of entries for a multivalued slot - status: testing in_subset: - SpecificationSubset @@ -1807,7 +1815,7 @@ slots: range: slot_definition 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 + does not guarantee an expansion of the ontological hierarchy into an enumerated list of possible values in every serialization of the model. examples: - value: RO:HOM0000001 @@ -1955,7 +1963,7 @@ slots: partial_match: domain: pattern_expression range: boolean - description: if true then the pattern must match the whole string, as if enclosed in ^...$ + description: if not true then the pattern must match the whole string, as if enclosed in ^...$ in_subset: - SpecificationSubset @@ -2036,7 +2044,7 @@ slots: inherited: true comments: - every root type must have a base - - the base is inherited by child types but may be overriden. Base compatibility is not checked. + - the base is inherited by child types but may be overridden. Base compatibility is not checked. in_subset: - SpecificationSubset - BasicSubset @@ -2288,7 +2296,7 @@ slots: description: the slot to traverse range: slot_definition path_rule: - description: a rule for inferring a slot assignment based on evaluating a path through a sequence of slot assignemnts + description: a rule for inferring a slot assignment based on evaluating a path through a sequence of slot assignments domain: slot_definition range: path_expression @@ -2325,9 +2333,9 @@ slots: - in the context of property graphs, this should be used on edge classes to indicate which slots represent the input and output nodes -#================================== -# Classes # -#================================== +# ================================== +# Classes # +# ================================== classes: Anything: @@ -2362,11 +2370,14 @@ classes: - narrow mappings - broad mappings - created_by + - contributors - created_on - last_updated_on - modified_by - status - rank + - categories + - keywords in_subset: - BasicSubset @@ -2388,6 +2399,7 @@ classes: - local_names - conforms_to - implements + - instantiates see_also: - https://en.wikipedia.org/wiki/Data_element in_subset: @@ -2428,8 +2440,6 @@ classes: - generation_date - slot_names_unique - settings - - categories - - keywords see_also: - https://en.wikipedia.org/wiki/Data_dictionary close_mappings: @@ -2560,6 +2570,7 @@ classes: - concept set - Terminology Value Set - answer list + - value domain description: an element whose instances must be drawn from a specified set of permissible values is_a: definition mixins: @@ -2567,6 +2578,7 @@ classes: exact_mappings: - qb:HierarchicalCodeList - NCIT:C113497 + - cdisc:ValueDomain close_mappings: - skos:ConceptScheme in_subset: @@ -2579,7 +2591,9 @@ classes: - enum_uri match_query: - description: A query that is used on an enum expression to dynamically obtain a set of permissivle values via a query that matches on properties of the external concepts + description: >- + A query that is used on an enum expression to dynamically obtain a set of permissivle values via a query that + matches on properties of the external concepts. slots: - identifier_pattern - source_ontology @@ -2587,7 +2601,9 @@ classes: - SpecificationSubset reachability_query: - description: A query that is used on an enum expression to dynamically obtain a set of permissible values via walking from a set of source nodes to a set of descendants or ancestors over a set of relationship types + description: >- + A query that is used on an enum expression to dynamically obtain a set of permissible values via walking from a + set of source nodes to a set of descendants or ancestors over a set of relationship types. slots: - source_ontology - source_nodes @@ -2997,9 +3013,9 @@ classes: - BasicSubset - RelationalModelProfile -#================================== -# Enumerations # -#================================== +# ================================== +# Enumerations # +# ================================== enums: pv_formula_options: rank: 1 diff --git a/linkml_runtime/linkml_model/model/schema/types.yaml b/linkml_runtime/linkml_model/model/schema/types.yaml index b8981855..c4fd00f6 100644 --- a/linkml_runtime/linkml_model/model/schema/types.yaml +++ b/linkml_runtime/linkml_model/model/schema/types.yaml @@ -16,7 +16,7 @@ default_prefix: linkml default_range: string -#================================== +# ================================== # Common type definitions # # Definition consists of: @@ -25,12 +25,15 @@ default_range: string # base: python base type # repr: representational form in yaml/python if different than representation in base # (additional metadata) -#================================== +# ================================== types: string: uri: xsd:string base: str description: A character string + notes: >- + In RDF serializations, a slot with range of string is treated as a literal or type xsd:string. + If you are authoring schemas in LinkML YAML, the type is referenced with the lower case "string". exact_mappings: - schema:Text @@ -38,6 +41,8 @@ types: uri: xsd:integer base: int description: An integer + notes: >- + If you are authoring schemas in LinkML YAML, the type is referenced with the lower case "integer". exact_mappings: - schema:Integer @@ -46,6 +51,8 @@ types: base: Bool repr: bool description: A binary (true or false) value + notes: >- + If you are authoring schemas in LinkML YAML, the type is referenced with the lower case "boolean". exact_mappings: - schema:Boolean @@ -53,6 +60,8 @@ types: uri: xsd:float base: float description: A real number that conforms to the xsd:float specification + notes: >- + If you are authoring schemas in LinkML YAML, the type is referenced with the lower case "float". exact_mappings: - schema:Float @@ -60,6 +69,8 @@ types: uri: xsd:double base: float description: A real number that conforms to the xsd:double specification + notes: >- + If you are authoring schemas in LinkML YAML, the type is referenced with the lower case "double". close_mappings: - schema:Float @@ -67,16 +78,19 @@ types: uri: xsd:decimal base: Decimal description: A real number with arbitrary precision that conforms to the xsd:decimal specification + notes: >- + If you are authoring schemas in LinkML YAML, the type is referenced with the lower case "decimal". broad_mappings: - schema:Number time: - uri: xsd:dateTime + uri: xsd:time base: XSDTime repr: str description: A time object represents a (local) time of day, independent of any particular day notes: - URI is dateTime because OWL reasoners do not work with straight date or time + - If you are authoring schemas in LinkML YAML, the type is referenced with the lower case "time". exact_mappings: - schema:Time @@ -87,6 +101,7 @@ types: description: a date (year, month and day) in an idealized calendar notes: - URI is dateTime because OWL reasoners don't work with straight date or time + - If you are authoring schemas in LinkML YAML, the type is referenced with the lower case "date". exact_mappings: - schema:Date @@ -95,6 +110,8 @@ types: repr: str base: XSDDateTime description: The combination of a date and time + notes: >- + If you are authoring schemas in LinkML YAML, the type is referenced with the lower case "datetime". exact_mappings: - schema:DateTime @@ -103,15 +120,16 @@ types: repr: str base: str description: Either a date or a datetime -# union_of: -# - date -# - datetime + notes: >- + If you are authoring schemas in LinkML YAML, the type is referenced with the lower case "date_or_datetime". uriorcurie: uri: xsd:anyURI base: URIorCURIE repr: str description: a URI or a CURIE + notes: >- + If you are authoring schemas in LinkML YAML, the type is referenced with the lower case "uriorcurie". curie: uri: xsd:string @@ -121,6 +139,8 @@ types: comments: - in RDF serializations this MUST be expanded to a URI - in non-RDF serializations MAY be serialized as the compact representation + notes: >- + If you are authoring schemas in LinkML YAML, the type is referenced with the lower case "curie". conforms_to: https://www.w3.org/TR/curie/ uri: @@ -132,6 +152,8 @@ types: - >- in RDF serializations a slot with range of uri is treated as a literal or type xsd:anyURI unless it is an identifier or a reference to an identifier, in which case it is translated directly to a node + notes: >- + If you are authoring schemas in LinkML YAML, the type is referenced with the lower case "uri". close_mappings: - schema:URL conforms_to: https://www.ietf.org/rfc/rfc3987.txt @@ -141,6 +163,8 @@ types: base: NCName repr: str description: Prefix part of CURIE + notes: >- + If you are authoring schemas in LinkML YAML, the type is referenced with the lower case "ncname". objectidentifier: uri: shex:iri @@ -148,10 +172,48 @@ types: repr: str description: A URI or CURIE that represents an object in the model. comments: - - Used for inheritence and type checking + - Used for inheritance and type checking + notes: >- + If you are authoring schemas in LinkML YAML, the type is referenced with the lower case "objectidentifier". nodeidentifier: uri: shex:nonLiteral base: NodeIdentifier repr: str description: A URI, CURIE or BNODE that represents a node in a model. + notes: >- + If you are authoring schemas in LinkML YAML, the type is referenced with the lower case "nodeidentifier". + + jsonpointer: + uri: xsd:string + base: str + repr: str + description: >- + A string encoding a JSON Pointer. The value of the string MUST conform to JSON Point syntax and + SHOULD dereference to a valid object within the current instance document when encoded in tree form. + conforms_to: https://datatracker.ietf.org/doc/html/rfc6901 + notes: >- + If you are authoring schemas in LinkML YAML, the type is referenced with the lower case "jsonpointer". + + jsonpath: + uri: xsd:string + base: str + repr: str + description: >- + A string encoding a JSON Path. The value of the string MUST conform to JSON Point syntax and + SHOULD dereference to zero or more valid objects within the current instance document when encoded + in tree form. + conforms_to: https://www.ietf.org/archive/id/draft-goessner-dispatch-jsonpath-00.html + notes: >- + If you are authoring schemas in LinkML YAML, the type is referenced with the lower case "jsonpath". + + sparqlpath: + uri: xsd:string + base: str + repr: str + description: >- + A string encoding a SPARQL Property Path. The value of the string MUST conform to SPARQL syntax and + SHOULD dereference to zero or more valid objects within the current instance document when encoded as RDF. + conforms_to: https://www.w3.org/TR/sparql11-query/#propertypaths + notes: >- + If you are authoring schemas in LinkML YAML, the type is referenced with the lower case "sparqlpath". diff --git a/linkml_runtime/linkml_model/model/schema/units.yaml b/linkml_runtime/linkml_model/model/schema/units.yaml index cdf7c660..d6b87389 100644 --- a/linkml_runtime/linkml_model/model/schema/units.yaml +++ b/linkml_runtime/linkml_model/model/schema/units.yaml @@ -40,7 +40,7 @@ slots: has_quantity_kind: range: uriorcurie slot_uri: qudt:hasQuantityKind - description: Concept in a vocabulary or ontology that denotes the kind of quanity being measured, e.g. length + description: Concept in a vocabulary or ontology that denotes the kind of quantity being measured, e.g. length comments: - Potential ontologies include but are not limited to PATO, NCIT, OBOE, qudt.quantityKind @@ -54,7 +54,10 @@ slots: abbreviation: slot_uri: qudt:abbreviation description: >- - An abbreviation for a unit is a short ASCII string that is used in place of the full name for the unit in contexts where non-ASCII characters would be problematic, or where using the abbreviation will enhance readability. When a power of a base unit needs to be expressed, such as squares this can be done using abbreviations rather than symbols (source: qudt) + An abbreviation for a unit is a short ASCII string that is used in place of the full name for the unit in + contexts where non-ASCII characters would be problematic, or where using the abbreviation will enhance + readability. When a power of a base unit needs to be expressed, such as squares this can be done using + abbreviations rather than symbols (source: qudt) descriptive_name: slot_uri: rdfs:label @@ -63,7 +66,9 @@ slots: classes: UnitOfMeasure: class_uri: qudt:Unit - description: A unit of measure, or unit, is a particular quantity value that has been chosen as a scale for measuring other quantities the same kind (more generally of equivalent dimension). + description: >- + A unit of measure, or unit, is a particular quantity value that has been chosen as a scale for + measuring other quantities the same kind (more generally of equivalent dimension). slots: - symbol - abbreviation @@ -91,4 +96,3 @@ classes: - slot_conditions: exact_mappings: required: true - diff --git a/linkml_runtime/linkml_model/model/schema/validation.yaml b/linkml_runtime/linkml_model/model/schema/validation.yaml index c4e642b2..825f5442 100644 --- a/linkml_runtime/linkml_model/model/schema/validation.yaml +++ b/linkml_runtime/linkml_model/model/schema/validation.yaml @@ -16,7 +16,7 @@ default_prefix: reporting default_range: string default_curi_maps: - - semweb_context + - semweb_context emit_prefixes: - linkml @@ -29,10 +29,9 @@ imports: - linkml:types - -#================================== -# Classes # -#================================== +# ================================== +# Classes # +# ================================== classes: ValidationReport: class_uri: sh:ValidationReport @@ -58,12 +57,12 @@ classes: - node_source - info -#================================== -# Slots # -#================================== +# ================================== +# Slots # +# ================================== slots: type: - #range: problem_type + # range: problem_type range: nodeidentifier slot_uri: sh:sourceConstraintComponent subject: @@ -90,9 +89,9 @@ slots: range: string -#================================== -# Enumerations # -#================================== +# ================================== +# Enumerations # +# ================================== enums: problem_type: permissible_values: diff --git a/linkml_runtime/linkml_model/owl/meta.owl.ttl b/linkml_runtime/linkml_model/owl/meta.owl.ttl index 4063ad13..237252e9 100644 --- a/linkml_runtime/linkml_model/owl/meta.owl.ttl +++ b/linkml_runtime/linkml_model/owl/meta.owl.ttl @@ -2,6 +2,7 @@ @prefix NCIT: . @prefix OIO: . @prefix bibo: . +@prefix cdisc: . @prefix dcterms: . @prefix linkml: . @prefix oslc: . @@ -12,12 +13,12 @@ @prefix qudt: . @prefix rdf: . @prefix rdfs: . -@prefix schema: . +@prefix schema1: . @prefix sh: . @prefix skos: . @prefix skosxl: . @prefix swrl: . -@prefix vann: . +@prefix vann1: . @prefix xsd: . linkml:equals_number_in a owl:ObjectProperty, @@ -32,21 +33,20 @@ linkml:inapplicable a owl:ObjectProperty, rdfs:label "inapplicable" ; rdfs:domain linkml:SlotDefinition ; rdfs:range linkml:Boolean ; - skos:definition "true means that values for this slot must not be present" ; - skos:note "By default all slots are applicable. The main use case for this slot is as an override in a subclass" . + skos:definition "true means that values for this slot must not be present" . linkml:inlined_as_simple_dict a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "inlined_as_simple_dict" ; rdfs:domain linkml:SlotDefinition ; rdfs:range linkml:Boolean ; - rdfs:seeAlso "https://w3id.org/linkml/docs/specification/06mapping/#collection-forms" ; skos:definition "True means that an inlined slot is represented as a simple dict whose values are all atoms" . linkml:meta a owl:Ontology ; rdfs:label "meta" ; IAO:0000700 linkml:AltDescription, linkml:Annotatable, + linkml:AnyValue, linkml:Anything, linkml:ClassExpression, linkml:ClassLevelRule, @@ -61,14 +61,12 @@ linkml:meta a owl:Ontology ; linkml:ReachabilityQuery, linkml:Setting, linkml:UnitOfMeasure ; - dcterms:license "https://creativecommons.org/publicdomain/zero/1.0/" ; - dcterms:title "LinkML Schema Metamodel" ; - pav:version "2.0.0" ; - linkml:generation_date "2023-03-16T10:58:30" ; - linkml:metamodel_version "1.7.0" ; - linkml:source_file "meta.yaml" ; - linkml:source_file_date "2023-03-11T19:19:30" ; - linkml:source_file_size 89120 . + linkml:id "https://w3id.org/linkml/meta" ; + linkml:imports "linkml:annotations", + "linkml:extensions", + "linkml:mappings", + "linkml:types", + "linkml:units" . linkml:owned_by a owl:ObjectProperty, linkml:SlotDefinition ; @@ -96,14 +94,6 @@ linkml:value_specification_constant a owl:ObjectProperty, rdfs:range linkml:String ; skos:definition "Grouping for metamodel slots that constrain the a slot value to equal a specified constant" . -dcterms:contributor a owl:ObjectProperty, - linkml:SlotDefinition ; - rdfs:label "contributors" ; - rdfs:domain linkml:Element ; - rdfs:range linkml:Uriorcurie ; - skos:definition "agent that contributed to the element" ; - skos:exactMatch dcterms:contributor . - dcterms:publisher a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "publisher" ; @@ -126,25 +116,21 @@ linkml:asymmetric a owl:ObjectProperty, rdfs:range linkml:Boolean ; rdfs:subPropertyOf linkml:relational_logical_characteristic ; skos:closeMatch owl:AsymmetricProperty ; - skos:definition "If s is antisymmetric, and i.s=v where i is different from v, v.s cannot have value i" ; - skos:note "asymmetry is the combination of antisymmetry and irreflexivity" . + skos:definition "If s is antisymmetric, and i.s=v where i is different from v, v.s cannot have value i" . linkml:attributes a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "attributes" ; rdfs:domain linkml:ClassDefinition ; rdfs:range linkml:SlotDefinition ; - skos:definition "Inline definition of slots" ; - skos:note "attributes are an alternative way of defining new slots. An attribute adds a slot to the global space in the form __ (lower case, double underscores). Attributes can be specialized via slot_usage." . + skos:definition "Inline definition of slots" . linkml:base a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "base" ; rdfs:domain linkml:TypeDefinition ; rdfs:range linkml:String ; - skos:definition "python base type in the LinkML runtime that implements this type definition" ; - skos:note "every root type must have a base", - "the base is inherited by child types but may be overriden. Base compatibility is not checked." . + skos:definition "python base type in the LinkML runtime that implements this type definition" . linkml:bidirectional a owl:ObjectProperty, linkml:SlotDefinition ; @@ -159,11 +145,8 @@ linkml:class_uri a owl:ObjectProperty, rdfs:label "class_uri" ; rdfs:domain linkml:ClassDefinition ; rdfs:range linkml:Uriorcurie ; - rdfs:seeAlso "https://linkml.io/linkml/schemas/uris-and-mappings.html", - "linkml:definition_uri" ; skos:altLabel "public ID" ; - skos:definition "URI of the class that provides a semantic interpretation of the element in a linked data context. The URI may come from any namespace and may be shared between schemas" ; - skos:note "Assigning class_uris can provide additional hooks for interoperation, indicating a common conceptual model" . + skos:definition "URI of the class that provides a semantic interpretation of the element in a linked data context. The URI may come from any namespace and may be shared between schemas" . linkml:classes a owl:ObjectProperty, linkml:SlotDefinition ; @@ -219,10 +202,7 @@ linkml:definition_uri a owl:ObjectProperty, rdfs:label "definition_uri" ; rdfs:domain linkml:Element ; rdfs:range linkml:Uriorcurie ; - rdfs:seeAlso "linkml:class_uri", - "linkml:slot_uri" ; - skos:definition "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri" ; - skos:note "Formed by combining the default_prefix with the normalized element name" . + skos:definition "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri" . linkml:derivation a owl:ObjectProperty, linkml:SlotDefinition ; @@ -235,7 +215,6 @@ linkml:designates_type a owl:ObjectProperty, rdfs:label "designates_type" ; rdfs:domain linkml:SlotDefinition ; rdfs:range linkml:Boolean ; - rdfs:seeAlso "https://linkml.io/linkml/schemas/type-designators.html" ; skos:altLabel "type designator" ; skos:definition "True means that the key slot(s) is used to determine the instantiation (types) relation between objects and a ClassDefinition" . @@ -261,13 +240,12 @@ linkml:domain_of a owl:ObjectProperty, rdfs:domain linkml:SlotDefinition ; rdfs:range linkml:ClassDefinition ; skos:definition "the class(es) that reference the slot in a \"slots\" or \"slot_usage\" context" ; - skos:exactMatch schema:domainIncludes . + skos:exactMatch schema1:domainIncludes . linkml:elseconditions a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "elseconditions" ; rdfs:range linkml:AnonymousClassExpression ; - rdfs:seeAlso "https://w3id.org/linkml/docs/specification/05validation/#rules" ; skos:altLabel "else" ; skos:definition "an expression that must hold for an instance of the class, if the preconditions no not hold" . @@ -318,29 +296,18 @@ linkml:id_prefixes a owl:ObjectProperty, rdfs:label "id_prefixes" ; rdfs:domain linkml:Element ; rdfs:range linkml:Ncname ; - rdfs:seeAlso "https://github.com/linkml/linkml-model/issues/28", - "https://github.com/linkml/linkml/issues/194" ; - skos:definition "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix" ; - skos:note "If identifiers are treated as CURIEs, then the CURIE must start with one of the indicated prefixes followed by `:` (_should_ start if the list is open)", - "If identifiers are treated as URIs, then the URI string must start with the expanded for of the prefix (_should_ start if the list is open)", - "Order of elements may be used to indicate priority order" . + skos:definition "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix" . linkml:identifier a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "identifier" ; rdfs:domain linkml:SlotDefinition ; rdfs:range linkml:Boolean ; - rdfs:seeAlso "https://en.wikipedia.org/wiki/Identifier", - "linkml:unique_keys" ; skos:altLabel "ID", "UID", "code", "primary key" ; - skos:definition "True means that the key slot(s) uniquely identifies the elements. There can be at most one identifier or key per container" ; - skos:note "a given domain can have at most one identifier", - "a key slot is automatically required. Identifiers cannot be optional", - "identifier is inherited", - "identifiers and keys are mutually exclusive. A given domain cannot have both" . + skos:definition "True means that the key slot(s) uniquely identifies the elements. There can be at most one identifier or key per container" . linkml:identifier_pattern a owl:ObjectProperty, linkml:SlotDefinition ; @@ -354,10 +321,8 @@ linkml:ifabsent a owl:ObjectProperty, rdfs:label "ifabsent" ; rdfs:domain linkml:SlotDefinition ; rdfs:range linkml:String ; - rdfs:seeAlso "linkml:equals_expression" ; skos:closeMatch sh:defaultValue ; - skos:definition """function that provides a default value for the slot. Possible values for this slot are defined in -linkml.utils.ifabsent_functions.default_library: + skos:definition """function that provides a default value for the slot. Possible values for this slot are defined in linkml.utils.ifabsent_functions.default_library: * [Tt]rue -- boolean True * [Ff]alse -- boolean False * bnode -- blank node identifier @@ -415,9 +380,14 @@ linkml:inherited a owl:ObjectProperty, rdfs:label "inherited" ; rdfs:domain linkml:SlotDefinition ; rdfs:range linkml:Boolean ; - skos:definition "true means that the *value* of a slot is inherited by subclasses" ; - skos:note "Inherited applies to slot values. Parent *slots* are always inherited by subclasses", - "the slot is to be used for defining *metamodels* only" . + skos:definition "true means that the *value* of a slot is inherited by subclasses" . + +linkml:instantiates a owl:ObjectProperty, + linkml:SlotDefinition ; + rdfs:label "instantiates" ; + rdfs:domain linkml:Element ; + rdfs:range linkml:Uriorcurie ; + skos:definition "An element in another schema which this element instantiates." . linkml:interpolated a owl:ObjectProperty, linkml:SlotDefinition ; @@ -470,28 +440,21 @@ linkml:key a owl:ObjectProperty, rdfs:label "key" ; rdfs:domain linkml:SlotDefinition ; rdfs:range linkml:Boolean ; - rdfs:seeAlso "linkml:unique_keys" ; - skos:definition "True means that the key slot(s) uniquely identify the elements within a single container" ; - skos:note "a given domain can have at most one key slot (restriction to be removed in the future)", - "a key slot is automatically required. Keys cannot be optional", - "identifiers and keys are mutually exclusive. A given domain cannot have both", - "key is inherited" . + skos:definition "True means that the key slot(s) uniquely identify the elements within a single container" . linkml:list_elements_ordered a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "list_elements_ordered" ; rdfs:domain linkml:SlotDefinition ; rdfs:range linkml:Boolean ; - skos:definition "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" ; - skos:note "should only be used with multivalued slots" . + skos:definition "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" . linkml:list_elements_unique a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "list_elements_unique" ; rdfs:domain linkml:SlotDefinition ; rdfs:range linkml:Boolean ; - skos:definition "If True, then there must be no duplicates in the elements of a multivalued slot" ; - skos:note "should only be used with multivalued slots" . + skos:definition "If True, then there must be no duplicates in the elements of a multivalued slot" . linkml:local_name_source a owl:ObjectProperty, linkml:SlotDefinition ; @@ -519,10 +482,8 @@ linkml:meaning a owl:ObjectProperty, rdfs:label "meaning" ; rdfs:domain linkml:PermissibleValue ; rdfs:range linkml:Uriorcurie ; - rdfs:seeAlso "https://en.wikipedia.org/wiki/ISO/IEC_11179" ; skos:altLabel "PV meaning" ; - skos:definition "the value meaning of a permissible value" ; - skos:editorialNote "we may want to change the range of this (and other) elements in the model to an entitydescription type construct" . + skos:definition "the value meaning of a permissible value" . linkml:metamodel_version a owl:ObjectProperty, linkml:SlotDefinition ; @@ -563,20 +524,19 @@ linkml:partial_match a owl:ObjectProperty, rdfs:label "partial_match" ; rdfs:domain linkml:PatternExpression ; rdfs:range linkml:Boolean ; - skos:definition "if true then the pattern must match the whole string, as if enclosed in ^...$" . + skos:definition "if not true then the pattern must match the whole string, as if enclosed in ^...$" . linkml:path_rule a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "path_rule" ; rdfs:domain linkml:SlotDefinition ; rdfs:range linkml:PathExpression ; - skos:definition "a rule for inferring a slot assignment based on evaluating a path through a sequence of slot assignemnts" . + skos:definition "a rule for inferring a slot assignment based on evaluating a path through a sequence of slot assignments" . linkml:postconditions a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "postconditions" ; rdfs:range linkml:AnonymousClassExpression ; - rdfs:seeAlso "https://w3id.org/linkml/docs/specification/05validation/#rules" ; skos:altLabel "consequents", "head", "then" ; @@ -588,8 +548,7 @@ linkml:readonly a owl:ObjectProperty, rdfs:label "readonly" ; rdfs:domain linkml:SlotDefinition ; rdfs:range linkml:String ; - skos:definition "If present, slot is read only. Text explains why" ; - skos:note "the slot is to be used for defining *metamodels* only" . + skos:definition "If present, slot is read only. Text explains why" . linkml:reflexive a owl:ObjectProperty, linkml:SlotDefinition ; @@ -598,8 +557,7 @@ linkml:reflexive a owl:ObjectProperty, rdfs:range linkml:Boolean ; rdfs:subPropertyOf linkml:relational_logical_characteristic ; skos:closeMatch owl:ReflexiveProperty ; - skos:definition "If s is reflexive, then i.s=i for all instances i" ; - skos:note "it is rare for a property to be reflexive, this characteristic is added for completeness, consider instead locally_reflexive" . + skos:definition "If s is reflexive, then i.s=i for all instances i" . linkml:reflexive_transitive_form_of a owl:ObjectProperty, linkml:SlotDefinition ; @@ -614,10 +572,7 @@ linkml:relational_role a owl:ObjectProperty, rdfs:domain linkml:SlotDefinition ; rdfs:range linkml:RelationalRoleEnum ; skos:altLabel "reification_role" ; - skos:definition "the role a slot on a relationship class plays, for example, the subject, object or predicate roles" ; - skos:note "in the context of RDF, this should be used for slots that can be modeled using the RDF reification vocabulary", - "in the context of property graphs, this should be used on edge classes to indicate which slots represent the input and output nodes", - "this should only be used on slots that are applicable to class that represent relationships" . + skos:definition "the role a slot on a relationship class plays, for example, the subject, object or predicate roles" . linkml:relationship_types a owl:ObjectProperty, linkml:SlotDefinition ; @@ -640,13 +595,8 @@ linkml:represents_relationship a owl:ObjectProperty, rdfs:label "represents_relationship" ; rdfs:domain linkml:ClassDefinition ; rdfs:range linkml:Boolean ; - rdfs:seeAlso "https://patterns.dataincubator.org/book/qualified-relation.html", - "rdf:Statement" ; skos:altLabel "is_reified" ; - skos:definition "true if this class represents a relationship rather than an entity" ; - skos:note "in the context of Entity-Relationship (ER) modeling, this is used to state that a class models a relationship between entities, and should be drawn with a diamond", - "in the context of RDF, this should be used when instances of the class are `rdf:Statement`s", - "in the context of property graphs, this should be used when a class is used to represent an edge that connects nodes" . + skos:definition "true if this class represents a relationship rather than an entity" . linkml:reversed a owl:ObjectProperty, linkml:SlotDefinition ; @@ -659,8 +609,7 @@ linkml:role a owl:ObjectProperty, rdfs:label "role" ; rdfs:domain linkml:SlotDefinition ; rdfs:range linkml:String ; - skos:definition "a textual descriptor that indicates the role played by the slot range" ; - skos:note "the primary use case for this slot is to provide a textual descriptor of a generic slot name when used in the context of a more specific class" . + skos:definition "a textual descriptor that indicates the role played by the slot range" . linkml:setting_key a owl:ObjectProperty, linkml:SlotDefinition ; @@ -682,8 +631,7 @@ linkml:settings a owl:ObjectProperty, rdfs:domain linkml:SchemaDefinition ; rdfs:range linkml:Setting ; skos:altLabel "constants" ; - skos:definition "A collection of global variable settings" ; - skos:note "global variables are used in string interpolation in structured patterns" . + skos:definition "A collection of global variable settings" . linkml:shared a owl:ObjectProperty, linkml:SlotDefinition ; @@ -700,27 +648,22 @@ linkml:singular_name a owl:ObjectProperty, rdfs:domain linkml:SlotDefinition ; rdfs:range linkml:String ; skos:closeMatch skos:altLabel ; - skos:definition "a name that is used in the singular form" ; - skos:note "this may be used in some schema translations where use of a singular form is idiomatic, for example RDF" . + skos:definition "a name that is used in the singular form" . linkml:slot_uri a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "slot_uri" ; rdfs:domain linkml:SlotDefinition ; rdfs:range linkml:Uriorcurie ; - rdfs:seeAlso "https://linkml.io/linkml/schemas/uris-and-mappings.html", - "linkml:definition_uri" ; skos:altLabel "public ID" ; - skos:definition "URI of the class that provides a semantic interpretation of the slot in a linked data context. The URI may come from any namespace and may be shared between schemas." ; - skos:note "Assigning slot_uris can provide additional hooks for interoperation, indicating a common conceptual model" . + skos:definition "URI of the class that provides a semantic interpretation of the slot in a linked data context. The URI may come from any namespace and may be shared between schemas." . linkml:slot_usage a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "slot_usage" ; rdfs:domain linkml:ClassDefinition ; rdfs:range linkml:SlotDefinition ; - skos:definition "the refinement of a slot in the context of the containing class definition." ; - skos:note "Many slots may be re-used across different classes, but the meaning of the slot may be refined by context. For example, a generic association model may use slots subject/predicate/object with generic semantics and minimal constraints. When this is subclasses, e.g. to disease-phenotype associations then slot usage may specify both local naming (e.g. subject=disease) and local constraints" . + skos:definition "the refinement of a slot in the context of the containing class definition." . linkml:source_file a owl:ObjectProperty, linkml:SlotDefinition ; @@ -755,7 +698,6 @@ linkml:string_serialization a owl:ObjectProperty, rdfs:label "string_serialization" ; rdfs:domain linkml:Definition ; rdfs:range linkml:String ; - rdfs:seeAlso "https://github.com/linkml/issues/128" ; skos:definition """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 @@ -807,8 +749,7 @@ linkml:text a owl:ObjectProperty, rdfs:range linkml:String ; skos:altLabel "value" ; skos:closeMatch skos:notation ; - skos:definition "The actual permissible value itself" ; - skos:note "there are no constraints on the text of the permissible value, but for many applications you may want to consider following idiomatic forms and using computer-friendly forms" . + skos:definition "The actual permissible value itself" . linkml:transitive a owl:ObjectProperty, linkml:SlotDefinition ; @@ -838,19 +779,14 @@ linkml:tree_root a owl:ObjectProperty, rdfs:label "tree_root" ; rdfs:domain linkml:ClassDefinition ; rdfs:range linkml:Boolean ; - rdfs:seeAlso "https://linkml.io/linkml/intro/tutorial02.html" ; - skos:definition "Indicates that this is the Container class which forms the root of the serialized document structure in tree serializations" ; - skos:editorialNote "each schema should have at most one tree root" . + skos:definition "Indicates that this is the Container class which forms the root of the serialized document structure in tree serializations" . linkml:typeof a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "typeof" ; rdfs:domain linkml:TypeDefinition ; rdfs:range linkml:TypeDefinition ; - skos:definition "A parent type from which type properties are inherited" ; - skos:note "the target type definition of the typeof slot is referred to as the \"parent type\"", - "the type definition containing the typeof slot is referred to as the \"child type\"", - "type definitions without a typeof slot are referred to as a \"root type\"" . + skos:definition "A parent type from which type properties are inherited" . linkml:types a owl:ObjectProperty, linkml:SlotDefinition ; @@ -871,7 +807,6 @@ linkml:unique_keys a owl:ObjectProperty, rdfs:label "unique_keys" ; rdfs:domain linkml:ClassDefinition ; rdfs:range linkml:UniqueKey ; - rdfs:seeAlso "https://linkml.io/linkml/schemas/constraints.html#unique-key" ; skos:definition "A collection of named unique keys for this class. Unique keys may be singular or compound." ; skos:exactMatch owl:hasKey . @@ -880,9 +815,7 @@ linkml:uri a owl:ObjectProperty, rdfs:label "uri" ; rdfs:domain linkml:TypeDefinition ; rdfs:range linkml:Uriorcurie ; - skos:definition "The uri that defines the possible values for the type definition" ; - skos:note "every root type must have a type uri", - "uri is typically drawn from the set of URI's defined in OWL (https://www.w3.org/TR/2012/REC-owl2-syntax-20121211/#Datatype_Maps)" . + skos:definition "The uri that defines the possible values for the type definition" . linkml:usage_slot_name a owl:ObjectProperty, linkml:SlotDefinition ; @@ -896,14 +829,13 @@ linkml:values_from a owl:ObjectProperty, rdfs:label "values_from" ; rdfs:domain linkml:Definition ; rdfs:range linkml:Uriorcurie ; - skos:definition "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." . + skos:definition "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 hierarchy into an enumerated list of possible values in every serialization of the model." . dcterms:conformsTo a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "conforms_to" ; rdfs:domain linkml:Element ; rdfs:range linkml:String ; - rdfs:seeAlso "linkml:implements" ; skos:definition "An established standard to which the element conforms." ; skos:exactMatch dcterms:conformsTo . @@ -922,22 +854,21 @@ pav:version a owl:ObjectProperty, rdfs:range linkml:String ; skos:definition "particular version of schema" ; skos:exactMatch pav:version, - schema:schemaVersion . + schema1:schemaVersion . qudt:abbreviation a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "abbreviation" ; rdfs:range linkml:String ; - skos:definition "An abbreviation for a unit is a short ASCII string that is used in place of the full name for the unit in contexts where non-ASCII characters would be problematic, or where using the abbreviation will enhance readability. When a power of a base unit needs to be expressed, such as squares this can be done using abbreviations rather than symbols (source: qudt)" ; + skos:definition "An abbreviation for a unit is a short ASCII string that is used in place of the full name for the unit in contexts where non-ASCII characters would be problematic, or where using the abbreviation will enhance readability. When a power of a base unit needs to be expressed, such as squares this can be done using abbreviations rather than symbols (source: qudt)" ; skos:exactMatch qudt:abbreviation . qudt:hasQuantityKind a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "has_quantity_kind" ; rdfs:range linkml:Uriorcurie ; - skos:definition "Concept in a vocabulary or ontology that denotes the kind of quanity being measured, e.g. length" ; - skos:exactMatch qudt:hasQuantityKind ; - skos:note "Potential ontologies include but are not limited to PATO, NCIT, OBOE, qudt.quantityKind" . + skos:definition "Concept in a vocabulary or ontology that denotes the kind of quantity being measured, e.g. length" ; + skos:exactMatch qudt:hasQuantityKind . qudt:iec61360Code a owl:ObjectProperty, linkml:SlotDefinition ; @@ -960,14 +891,6 @@ qudt:ucumCode a owl:ObjectProperty, skos:definition "associates a QUDT unit with its UCUM code (case-sensitive)." ; skos:exactMatch qudt:ucumCode . -schema:keywords a owl:ObjectProperty, - linkml:SlotDefinition ; - rdfs:label "keywords" ; - rdfs:domain linkml:Element ; - rdfs:range linkml:String ; - skos:definition "Keywords or tags used to describe the element" ; - skos:exactMatch schema:keywords . - rdf:object a owl:Class, linkml:RelationalRoleEnum ; rdfs:label "OBJECT" . @@ -981,9 +904,8 @@ rdfs:subPropertyOf a owl:ObjectProperty, rdfs:label "subproperty_of" ; rdfs:domain linkml:SlotDefinition ; rdfs:range linkml:SlotDefinition ; - skos:definition "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." ; - skos:exactMatch rdfs:subPropertyOf ; - linkml:examples "Example(value='RO:HOM0000001', description='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.\\')')" . + skos:definition "Ontology property which this slot is a subproperty of. Note: setting this property on a slot does not guarantee an expansion of the ontological hierarchy into an enumerated list of possible values in every serialization of the model." ; + skos:exactMatch rdfs:subPropertyOf . owl:inverseOf a owl:ObjectProperty, linkml:SlotDefinition ; @@ -1015,9 +937,7 @@ skos:prefLabel a owl:ObjectProperty, rdfs:domain linkml:SlotDefinition ; rdfs:range linkml:String ; skos:definition "the name used for a slot in the context of its owning class. If present, this is used instead of the actual slot name." ; - skos:exactMatch skos:prefLabel ; - skos:note "an example of alias is used within this metamodel, slot_definitions is aliases as slots", - "not to be confused with aliases, which indicates a set of terms to be used for search purposes." . + skos:exactMatch skos:prefLabel . skosxl:literalForm a owl:ObjectProperty, linkml:SlotDefinition ; @@ -1033,7 +953,6 @@ sh:condition a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "preconditions" ; rdfs:range linkml:AnonymousClassExpression ; - rdfs:seeAlso "https://w3id.org/linkml/docs/specification/05validation/#rules" ; skos:altLabel "antecedents", "body", "if" ; @@ -1062,8 +981,7 @@ sh:group a owl:ObjectProperty, rdfs:domain linkml:SlotDefinition ; rdfs:range linkml:SlotDefinition ; skos:definition "allows for grouping of related slots into a grouping slot that serves the role of a group" ; - skos:exactMatch sh:group ; - skos:note "slot groups do not change the semantics of a model but are a useful way of visually grouping related slots" . + skos:exactMatch sh:group . sh:namespace a owl:ObjectProperty, linkml:SlotDefinition ; @@ -1089,270 +1007,158 @@ sh:rule a owl:ObjectProperty, skos:definition "the collection of rules that apply to all members of this class" ; skos:exactMatch sh:rule . -linkml:AnonymousExpression a owl:Class, +linkml:AnyValue a owl:Class, linkml:ClassDefinition ; - rdfs:label "anonymous_expression" ; + rdfs:label "AnyValue" ; + skos:exactMatch linkml:Any . + +linkml:ClassRule a owl:Class, + linkml:ClassDefinition ; + rdfs:label "class_rule" ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Integer ; - owl:onProperty sh:order ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:narrowMatch ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uriorcurie ; - owl:onProperty linkml:deprecated_element_has_possible_replacement ], - [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Uriorcurie ; owl:onProperty pav:createdBy ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uriorcurie ; - owl:onProperty linkml:deprecated_element_has_exact_replacement ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:mappingRelation ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:StructuredAlias ; - owl:onProperty skosxl:altLabel ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:broadMatch ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uriorcurie ; - owl:onProperty oslc:modifiedBy ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:exactMatch ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:AltDescription ; - owl:onProperty linkml:alt_descriptions ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:todos ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty skos:altLabel ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty skos:editorialNote ], + owl:onClass linkml:Datetime ; + owl:onProperty pav:lastUpdatedOn ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty schema:inLanguage ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Example ; - owl:onProperty linkml:examples ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:closeMatch ], + owl:onClass linkml:AnonymousClassExpression ; + owl:onProperty linkml:elseconditions ], [ a owl:Restriction ; owl:allValuesFrom linkml:Annotation ; owl:onProperty linkml:annotations ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty rdfs:seeAlso ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty dcterms:title ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty skos:definition ], + owl:onProperty skos:relatedMatch ], [ a owl:Restriction ; owl:allValuesFrom linkml:SubsetDefinition ; owl:onProperty OIO:inSubset ], [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty linkml:imported_from ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uriorcurie ; - owl:onProperty dcterms:source ], + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty dcterms:contributor ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Datetime ; - owl:onProperty pav:lastUpdatedOn ], + owl:onClass linkml:Boolean ; + owl:onProperty linkml:bidirectional ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Uriorcurie ; - owl:onProperty bibo:status ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Datetime ; - owl:onProperty pav:createdOn ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Extension ; - owl:onProperty linkml:extensions ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty skos:note ], + owl:onProperty linkml:deprecated_element_has_possible_replacement ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Uri ; owl:onProperty skos:inScheme ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:relatedMatch ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; owl:onProperty linkml:deprecated ], - linkml:Annotatable, - linkml:CommonMetadata, - linkml:Expression, - linkml:Extensible ; - skos:definition "An abstract parent class for any nested expression" ; - skos:note "anonymous expressions are useful for when it is necessary to build a complex expression without introducing a named element for each sub-expression" . - -linkml:ClassLevelRule a owl:Class, - linkml:ClassDefinition ; - rdfs:label "class_level_rule" ; - skos:definition "A rule that is applied to classes" . - -linkml:ClassRule a owl:Class, - linkml:ClassDefinition ; - rdfs:label "class_rule" ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uriorcurie ; - owl:onProperty linkml:deprecated_element_has_possible_replacement ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Uriorcurie ; - owl:onProperty dcterms:source ], + owl:onProperty linkml:deprecated_element_has_exact_replacement ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; owl:onProperty rdfs:seeAlso ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; - owl:onProperty skos:note ], + owl:onProperty skos:editorialNote ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:mappingRelation ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uriorcurie ; - owl:onProperty pav:createdBy ], + owl:onProperty dcterms:subject ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; - owl:onProperty linkml:todos ], + owl:onProperty skos:altLabel ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty skos:narrowMatch ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty skos:definition ], + owl:onClass linkml:Uriorcurie ; + owl:onProperty bibo:status ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty schema:inLanguage ], + owl:onProperty linkml:imported_from ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Annotation ; - owl:onProperty linkml:annotations ], + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty skos:exactMatch ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Example ; - owl:onProperty linkml:examples ], + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Integer ; + owl:onProperty sh:order ], [ a owl:Restriction ; owl:allValuesFrom linkml:AltDescription ; owl:onProperty linkml:alt_descriptions ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Uriorcurie ; - owl:onProperty bibo:status ], + owl:onProperty dcterms:source ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Datetime ; - owl:onProperty pav:lastUpdatedOn ], + owl:onProperty pav:createdOn ], [ a owl:Restriction ; - owl:allValuesFrom linkml:StructuredAlias ; - owl:onProperty skosxl:altLabel ], + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:String ; + owl:onProperty skos:definition ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Boolean ; - owl:onProperty sh:deactivated ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:SubsetDefinition ; - owl:onProperty OIO:inSubset ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty skos:altLabel ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty skos:editorialNote ], + owl:onProperty linkml:open_world ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Datetime ; - owl:onProperty pav:createdOn ], + owl:onClass linkml:String ; + owl:onProperty schema1:inLanguage ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:AnonymousClassExpression ; - owl:onProperty sh:condition ], + owl:onClass linkml:String ; + owl:onProperty dcterms:title ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:narrowMatch ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Integer ; - owl:onProperty sh:order ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:AnonymousClassExpression ; - owl:onProperty linkml:elseconditions ], + owl:onProperty skos:broadMatch ], [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Boolean ; - owl:onProperty linkml:open_world ], + owl:allValuesFrom linkml:String ; + owl:onProperty schema1:keywords ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; owl:onProperty skos:closeMatch ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:exactMatch ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Extension ; - owl:onProperty linkml:extensions ], + owl:onProperty skos:mappingRelation ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Uriorcurie ; owl:onProperty oslc:modifiedBy ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:relatedMatch ], + owl:allValuesFrom linkml:Extension ; + owl:onProperty linkml:extensions ], [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty dcterms:title ], + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:todos ], [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Boolean ; - owl:onProperty linkml:bidirectional ], + owl:allValuesFrom linkml:String ; + owl:onProperty skos:note ], [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uri ; - owl:onProperty skos:inScheme ], + owl:allValuesFrom linkml:StructuredAlias ; + owl:onProperty skosxl:altLabel ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty linkml:imported_from ], + owl:onClass linkml:Boolean ; + owl:onProperty sh:deactivated ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:AnonymousClassExpression ; - owl:onProperty linkml:postconditions ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty linkml:deprecated ], + owl:onProperty sh:condition ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:broadMatch ], + owl:allValuesFrom linkml:Example ; + owl:onProperty linkml:examples ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uriorcurie ; - owl:onProperty linkml:deprecated_element_has_exact_replacement ], + owl:onClass linkml:AnonymousClassExpression ; + owl:onProperty linkml:postconditions ], linkml:Annotatable, linkml:ClassLevelRule, linkml:CommonMetadata, @@ -1360,7 +1166,11 @@ linkml:ClassRule a owl:Class, skos:altLabel "if rule" ; skos:closeMatch swrl:Imp, sh:TripleRule ; - skos:definition "A rule that applies to instances of a class" . + skos:definition "A rule that applies to instances of a class" ; + linkml:is_a linkml:ClassLevelRule ; + linkml:mixins linkml:Annotatable, + linkml:CommonMetadata, + linkml:Extensible . a owl:Class, linkml:PresenceEnum ; @@ -1398,60 +1208,6 @@ linkml:ClassRule a owl:Class, linkml:RelationalRoleEnum ; rdfs:label "OTHER_ROLE" . -linkml:TypeExpression a owl:Class, - linkml:ClassDefinition ; - rdfs:label "type_expression" ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom linkml:AnonymousTypeExpression ; - owl:onProperty linkml:any_of ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:equals_string_in ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Integer ; - owl:onProperty linkml:equals_number ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty linkml:implicit_prefix ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty linkml:equals_string ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:AnonymousTypeExpression ; - owl:onProperty linkml:none_of ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:PatternExpression ; - owl:onProperty linkml:structured_pattern ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Integer ; - owl:onProperty linkml:minimum_value ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:AnonymousTypeExpression ; - owl:onProperty linkml:all_of ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:AnonymousTypeExpression ; - owl:onProperty linkml:exactly_one_of ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Integer ; - owl:onProperty linkml:maximum_value ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:UnitOfMeasure ; - owl:onProperty qudt:unit ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty linkml:pattern ], - linkml:Expression, - linkml:mixin ; - skos:definition "An abstract class grouping named types and anonymous type expressions" . - linkml:children_are_mutually_disjoint a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "children_are_mutually_disjoint" ; @@ -1482,16 +1238,13 @@ linkml:source_ontology a owl:ObjectProperty, rdfs:range linkml:Uriorcurie ; skos:altLabel "terminology", "vocabulary" ; - skos:definition "An ontology or vocabulary or terminology that is used in a query to obtain a set of permissible values" ; - skos:note "examples include schema.org, wikidata, or an OBO ontology", - "for obo ontologies we recommend CURIEs of the form obo:cl, obo:envo, etc" . + skos:definition "An ontology or vocabulary or terminology that is used in a query to obtain a set of permissible values" . linkml:transitive_form_of a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "transitive_form_of" ; rdfs:range linkml:SlotDefinition ; - skos:definition "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" ; - skos:note "Example: ancestor_of is the transitive_form_of parent_of" . + skos:definition "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" . linkml:unique_key_slots a owl:ObjectProperty, linkml:SlotDefinition ; @@ -1500,14 +1253,6 @@ linkml:unique_key_slots a owl:ObjectProperty, rdfs:range linkml:SlotDefinition ; skos:definition "list of slot names that form a key. The tuple formed from the values of all these slots should be unique." . -dcterms:subject a owl:ObjectProperty, - linkml:SlotDefinition ; - rdfs:label "categories" ; - rdfs:range linkml:Uriorcurie ; - skos:definition "Controlled terms used to categorize an element." ; - skos:exactMatch dcterms:subject ; - skos:note "if you wish to use uncontrolled terms or terms that lack identifiers then use the keywords element" . - rdfs:label a owl:ObjectProperty, linkml:SlotDefinition . @@ -1516,6 +1261,11 @@ linkml:Anything a owl:Class, rdfs:label "Anything" ; skos:exactMatch linkml:Any . +linkml:ClassLevelRule a owl:Class, + linkml:ClassDefinition ; + rdfs:label "class_level_rule" ; + skos:definition "A rule that is applied to classes" . + linkml:all_members a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "all_members" ; @@ -1542,16 +1292,14 @@ linkml:code_set_tag a owl:ObjectProperty, rdfs:label "code_set_tag" ; rdfs:domain linkml:EnumExpression ; rdfs:range linkml:String ; - skos:definition "the version tag of the enumeration code set" ; - skos:note "enum_expression cannot have both a code_set_tag and a code_set_version" . + skos:definition "the version tag of the enumeration code set" . linkml:code_set_version a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "code_set_version" ; rdfs:domain linkml:EnumExpression ; rdfs:range linkml:String ; - skos:definition "the version identifier of the enumeration code set" ; - skos:note "we assume that version identifiers lexically sort in temporal order. Recommend semver when possible" . + skos:definition "the version identifier of the enumeration code set" . linkml:concepts a owl:ObjectProperty, linkml:SlotDefinition ; @@ -1570,11 +1318,8 @@ linkml:equals_expression a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "equals_expression" ; rdfs:range linkml:String ; - rdfs:seeAlso "https://linkml.io/linkml/developers/inference.html", - "https://linkml.io/linkml/schemas/advanced.html#equals-expression" ; rdfs:subPropertyOf linkml:list_value_specification_constant ; - skos:definition "the value of the slot must equal the value of the evaluated expression" ; - skos:note "for example, a 'length' slot may have an equals_expression with value '(end-start)+1'" . + skos:definition "the value of the slot must equal the value of the evaluated expression" . linkml:has_member a owl:ObjectProperty, linkml:SlotDefinition ; @@ -1595,31 +1340,21 @@ linkml:inherits a owl:ObjectProperty, rdfs:label "inherits" ; rdfs:domain linkml:EnumExpression ; rdfs:range linkml:EnumDefinition ; - skos:definition "An enum definition that is used as the basis to create a new enum" ; - skos:note "All permissible values for all inherited enums are copied to form the initial seed set" . + skos:definition "An enum definition that is used as the basis to create a new enum" . linkml:inlined a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "inlined" ; rdfs:domain linkml:SlotDefinition ; rdfs:range linkml:Boolean ; - rdfs:seeAlso "https://w3id.org/linkml/docs/specification/06mapping/#collection-forms" ; - skos:definition "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." ; - skos:note "classes without keys or identifiers are necessarily inlined as lists", - "only applicable in tree-like serializations, e.g json, yaml" . + skos:definition "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." . linkml:inlined_as_list a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "inlined_as_list" ; rdfs:domain linkml:SlotDefinition ; rdfs:range linkml:Boolean ; - rdfs:seeAlso "https://w3id.org/linkml/docs/specification/06mapping/#collection-forms" ; - skos:definition "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." ; - skos:note """A keyed or identified class with one additional slot can be input in a third form, a dictionary whose key -is the key or identifier and whose value is the one additional element. This form is still stored according -to the inlined_as_list setting.""", - """The default loader will accept either list or dictionary form as input. This parameter controls internal -representation and output.""" . + skos:definition "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." . linkml:matches a owl:ObjectProperty, linkml:SlotDefinition ; @@ -1655,16 +1390,15 @@ linkml:permissible_values a owl:ObjectProperty, rdfs:domain linkml:EnumExpression ; rdfs:range linkml:PermissibleValue ; skos:altLabel "coded values" ; - skos:definition "A list of possible values for a slot range" . + skos:definition "A list of possible values for a slot range" ; + skos:exactMatch cdisc:PermissibleValue . linkml:pv_formula a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "pv_formula" ; rdfs:domain linkml:EnumExpression ; rdfs:range linkml:PvFormulaOptions ; - skos:definition "Defines the specific formula to be used to generate the permissible values." ; - skos:note "code_set must be supplied for this to be valid", - "you cannot have BOTH the permissible_values and permissible_value_formula tag" . + skos:definition "Defines the specific formula to be used to generate the permissible values." . linkml:range a owl:ObjectProperty, linkml:SlotDefinition ; @@ -1681,8 +1415,7 @@ the declaration S1: Y implicitly asserts Y is an instance of C2 -""" ; - skos:note "range is underspecified, as not all elements can appear as the range of a slot." . +""" . linkml:reachable_from a owl:ObjectProperty, linkml:SlotDefinition ; @@ -1696,10 +1429,7 @@ linkml:recommended a owl:ObjectProperty, rdfs:label "recommended" ; rdfs:domain linkml:SlotDefinition ; rdfs:range linkml:Boolean ; - rdfs:seeAlso "https://github.com/linkml/linkml/issues/177" ; - skos:definition "true means that the slot should be present in instances of the class definition, but this is not required" ; - skos:note "If a slot is recommended, and it is not populated, applications must not treat this as an error. Applications may use this to inform the user of missing data", - "This is to be used where not all data is expected to conform to having a required field" . + skos:definition "true means that the slot should be present in instances of the class definition, but this is not required" . linkml:required a owl:ObjectProperty, linkml:SlotDefinition ; @@ -1720,8 +1450,7 @@ linkml:union_of a owl:ObjectProperty, rdfs:label "union_of" ; rdfs:domain linkml:Element ; rdfs:range linkml:Element ; - skos:definition "indicates that the domain element consists exactly of the members of the element in the range." ; - skos:editorialNote "this only applies in the OWL generation" . + skos:definition "indicates that the domain element consists exactly of the members of the element in the range." . linkml:value_presence a owl:ObjectProperty, linkml:SlotDefinition ; @@ -1729,8 +1458,7 @@ linkml:value_presence a owl:ObjectProperty, rdfs:domain linkml:SlotDefinition ; rdfs:range linkml:PresenceEnum ; rdfs:subPropertyOf linkml:list_value_specification_constant ; - skos:definition "if true then a value must be present (for lists there must be at least one value). If false then a value must be absent (for lists, must be empty)" ; - skos:note "if set to true this has the same effect as required=true. In contrast, required=false allows a value to be present" . + skos:definition "if true then a value must be present (for lists there must be at least one value). If false then a value must be absent (for lists, must be empty)" . rdf:predicate a owl:Class, owl:ObjectProperty, @@ -1743,275 +1471,348 @@ rdf:predicate a owl:Class, skos:definition "The relationship between an element and its alias." ; skos:exactMatch rdf:predicate . -linkml:ClassExpression a owl:Class, +linkml:AnonymousExpression a owl:Class, linkml:ClassDefinition ; - rdfs:label "class_expression" ; + rdfs:label "anonymous_expression" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom linkml:AnonymousClassExpression ; - owl:onProperty linkml:any_of ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:AnonymousClassExpression ; - owl:onProperty linkml:none_of ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:SlotDefinition ; - owl:onProperty linkml:slot_conditions ], + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Uriorcurie ; + owl:onProperty oslc:modifiedBy ], [ a owl:Restriction ; - owl:allValuesFrom linkml:AnonymousClassExpression ; - owl:onProperty linkml:all_of ], + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Uriorcurie ; + owl:onProperty pav:createdBy ], [ a owl:Restriction ; - owl:allValuesFrom linkml:AnonymousClassExpression ; - owl:onProperty linkml:exactly_one_of ], - linkml:mixin ; - skos:definition "A boolean expression that can be used to dynamically determine membership of a class" . - -linkml:ImportExpression a owl:Class, - linkml:ClassDefinition ; - rdfs:label "import_expression" ; - rdfs:subClassOf [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; owl:onProperty skos:exactMatch ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Datetime ; - owl:onProperty pav:createdOn ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:StructuredAlias ; - owl:onProperty skosxl:altLabel ], + owl:onClass linkml:Integer ; + owl:onProperty sh:order ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:todos ], + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Datetime ; + owl:onProperty pav:lastUpdatedOn ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Uriorcurie ; owl:onProperty linkml:deprecated_element_has_exact_replacement ], [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uriorcurie ; - owl:onProperty oslc:modifiedBy ], + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty skos:mappingRelation ], [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uri ; - owl:onProperty skos:inScheme ], + owl:allValuesFrom linkml:StructuredAlias ; + owl:onProperty skosxl:altLabel ], [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Ncname ; - owl:onProperty linkml:import_as ], + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty skos:relatedMatch ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Datetime ; - owl:onProperty pav:lastUpdatedOn ], + owl:onClass linkml:Uriorcurie ; + owl:onProperty bibo:status ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty dcterms:contributor ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; owl:onProperty skos:note ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty linkml:imported_from ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Extension ; - owl:onProperty linkml:extensions ], + owl:onProperty schema1:inLanguage ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty skos:definition ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty rdfs:seeAlso ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uriorcurie ; - owl:onProperty dcterms:source ], + owl:onProperty linkml:deprecated ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Example ; - owl:onProperty linkml:examples ], + owl:allValuesFrom linkml:Annotation ; + owl:onProperty linkml:annotations ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty schema:inLanguage ], + owl:onProperty skos:definition ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty linkml:deprecated ], + owl:onClass linkml:Datetime ; + owl:onProperty pav:createdOn ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Extension ; + owl:onProperty linkml:extensions ], [ a owl:Restriction ; owl:allValuesFrom linkml:SubsetDefinition ; owl:onProperty OIO:inSubset ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Setting ; - owl:onProperty linkml:import_map ], + owl:allValuesFrom linkml:String ; + owl:onProperty schema1:keywords ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:relatedMatch ], + owl:onProperty skos:broadMatch ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:String ; + owl:onProperty dcterms:title ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; - owl:onProperty skos:altLabel ], + owl:onProperty linkml:todos ], [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uriorcurie ; - owl:onProperty linkml:deprecated_element_has_possible_replacement ], + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty dcterms:subject ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Annotation ; - owl:onProperty linkml:annotations ], + owl:allValuesFrom linkml:Example ; + owl:onProperty linkml:examples ], [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uriorcurie ; - owl:onProperty bibo:status ], + owl:allValuesFrom linkml:String ; + owl:onProperty skos:editorialNote ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Uriorcurie ; - owl:onProperty pav:createdBy ], + owl:onProperty linkml:deprecated_element_has_possible_replacement ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:broadMatch ], + owl:onProperty rdfs:seeAlso ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Integer ; - owl:onProperty sh:order ], + owl:onClass linkml:Uriorcurie ; + owl:onProperty dcterms:source ], [ a owl:Restriction ; owl:allValuesFrom linkml:AltDescription ; owl:onProperty linkml:alt_descriptions ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty skos:altLabel ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; owl:onProperty skos:narrowMatch ], [ a owl:Restriction ; - owl:onClass linkml:Uriorcurie ; - owl:onProperty linkml:import_from ; - owl:qualifiedCardinality 1 ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:mappingRelation ], + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Uri ; + owl:onProperty skos:inScheme ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty dcterms:title ], + owl:onProperty linkml:imported_from ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; owl:onProperty skos:closeMatch ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty skos:editorialNote ], linkml:Annotatable, linkml:CommonMetadata, + linkml:Expression, linkml:Extensible ; - skos:definition "an expression describing an import" . + skos:definition "An abstract parent class for any nested expression" ; + linkml:mixins linkml:Annotatable, + linkml:CommonMetadata, + linkml:Expression, + linkml:Extensible . -linkml:LocalName a owl:Class, +linkml:ImportExpression a owl:Class, linkml:ClassDefinition ; - rdfs:label "local_name" ; + rdfs:label "import_expression" ; rdfs:subClassOf [ a owl:Restriction ; - owl:onClass linkml:Ncname ; - owl:onProperty linkml:local_name_source ; - owl:qualifiedCardinality 1 ], + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty dcterms:contributor ], [ a owl:Restriction ; - owl:onClass linkml:String ; - owl:onProperty skos:altLabel ; - owl:qualifiedCardinality 1 ] ; - skos:definition "an attributed label" . - -linkml:SlotExpression a owl:Class, - linkml:ClassDefinition ; - rdfs:label "slot_expression" ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Integer ; - owl:onProperty linkml:minimum_value ], + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty skos:mappingRelation ], [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Element ; - owl:onProperty linkml:range ], + owl:allValuesFrom linkml:String ; + owl:onProperty skos:altLabel ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty schema1:keywords ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty skos:closeMatch ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Integer ; - owl:onProperty linkml:maximum_cardinality ], + owl:onClass linkml:String ; + owl:onProperty dcterms:title ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:PatternExpression ; - owl:onProperty linkml:structured_pattern ], + owl:onClass linkml:Uriorcurie ; + owl:onProperty dcterms:source ], [ a owl:Restriction ; - owl:allValuesFrom linkml:AnonymousSlotExpression ; - owl:onProperty linkml:none_of ], + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty skos:broadMatch ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Boolean ; - owl:onProperty linkml:required ], + owl:onClass linkml:Uriorcurie ; + owl:onProperty linkml:deprecated_element_has_exact_replacement ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:UnitOfMeasure ; - owl:onProperty qudt:unit ], + owl:onClass linkml:Uriorcurie ; + owl:onProperty bibo:status ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:AnonymousSlotExpression ; - owl:onProperty linkml:all_members ], + owl:onClass linkml:String ; + owl:onProperty linkml:imported_from ], [ a owl:Restriction ; - owl:allValuesFrom linkml:AnonymousSlotExpression ; - owl:onProperty linkml:exactly_one_of ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:AnonymousSlotExpression ; - owl:onProperty linkml:any_of ], + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Datetime ; + owl:onProperty pav:lastUpdatedOn ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Integer ; - owl:onProperty linkml:minimum_cardinality ], + owl:onClass linkml:Uriorcurie ; + owl:onProperty pav:createdBy ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:PresenceEnum ; - owl:onProperty linkml:value_presence ], + owl:onClass linkml:Uriorcurie ; + owl:onProperty oslc:modifiedBy ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Annotation ; + owl:onProperty linkml:annotations ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; - owl:onProperty linkml:equals_string_in ], + owl:onProperty skos:editorialNote ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:SubsetDefinition ; + owl:onProperty OIO:inSubset ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Boolean ; - owl:onProperty linkml:inlined_as_list ], + owl:onClass linkml:String ; + owl:onProperty linkml:deprecated ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty dcterms:subject ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:AnonymousSlotExpression ; - owl:onProperty linkml:has_member ], + owl:onClass linkml:Datetime ; + owl:onProperty pav:createdOn ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty skos:narrowMatch ], + [ a owl:Restriction ; + owl:onClass linkml:Uriorcurie ; + owl:onProperty linkml:import_from ; + owl:qualifiedCardinality 1 ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Integer ; - owl:onProperty linkml:equals_number ], + owl:onClass linkml:Ncname ; + owl:onProperty linkml:import_as ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:StructuredAlias ; + owl:onProperty skosxl:altLabel ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty linkml:equals_string ], + owl:onProperty skos:definition ], [ a owl:Restriction ; - owl:allValuesFrom linkml:AnonymousSlotExpression ; - owl:onProperty linkml:all_of ], + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Uriorcurie ; + owl:onProperty linkml:deprecated_element_has_possible_replacement ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Boolean ; - owl:onProperty linkml:recommended ], + owl:onClass linkml:Integer ; + owl:onProperty sh:order ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Setting ; + owl:onProperty linkml:import_map ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:AltDescription ; + owl:onProperty linkml:alt_descriptions ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty rdfs:seeAlso ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty skos:relatedMatch ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Extension ; + owl:onProperty linkml:extensions ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Example ; + owl:onProperty linkml:examples ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty skos:note ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:todos ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty linkml:implicit_prefix ], + owl:onProperty schema1:inLanguage ], [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Boolean ; - owl:onProperty linkml:inlined ], + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty skos:exactMatch ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Uri ; + owl:onProperty skos:inScheme ], + linkml:Annotatable, + linkml:CommonMetadata, + linkml:Extensible ; + skos:definition "an expression describing an import" ; + linkml:mixins linkml:Annotatable, + linkml:CommonMetadata, + linkml:Extensible . + +linkml:LocalName a owl:Class, + linkml:ClassDefinition ; + rdfs:label "local_name" ; + rdfs:subClassOf [ a owl:Restriction ; + owl:onClass linkml:Ncname ; + owl:onProperty linkml:local_name_source ; + owl:qualifiedCardinality 1 ], + [ a owl:Restriction ; owl:onClass linkml:String ; - owl:onProperty linkml:equals_expression ], + owl:onProperty skos:altLabel ; + owl:qualifiedCardinality 1 ] ; + skos:definition "an attributed label" . + +linkml:TypeExpression a owl:Class, + linkml:ClassDefinition ; + rdfs:label "type_expression" ; + rdfs:subClassOf [ a owl:Restriction ; + owl:allValuesFrom linkml:AnonymousTypeExpression ; + owl:onProperty linkml:all_of ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:AnonymousClassExpression ; - owl:onProperty linkml:range_expression ], + owl:onClass linkml:UnitOfMeasure ; + owl:onProperty qudt:unit ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:EnumExpression ; - owl:onProperty linkml:enum_range ], + owl:onClass linkml:String ; + owl:onProperty linkml:equals_string ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:AnonymousTypeExpression ; + owl:onProperty linkml:exactly_one_of ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; owl:onProperty linkml:pattern ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:PatternExpression ; + owl:onProperty linkml:structured_pattern ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Integer ; + owl:onProperty linkml:minimum_value ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:equals_string_in ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Integer ; owl:onProperty linkml:maximum_value ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Integer ; + owl:onProperty linkml:equals_number ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:AnonymousTypeExpression ; + owl:onProperty linkml:any_of ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:String ; + owl:onProperty linkml:implicit_prefix ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:AnonymousTypeExpression ; + owl:onProperty linkml:none_of ], linkml:Expression, linkml:mixin ; - skos:definition "an expression that constrains the range of values a slot can take" . + skos:definition "An abstract class grouping named types and anonymous type expressions" ; + linkml:is_a linkml:Expression . linkml:boolean_slot a owl:ObjectProperty, linkml:SlotDefinition ; @@ -2024,29 +1825,26 @@ linkml:mixins a owl:ObjectProperty, rdfs:label "mixins" ; rdfs:domain linkml:Definition ; rdfs:range linkml:Definition ; - rdfs:seeAlso "https://en.wikipedia.org/wiki/Mixin" ; skos:altLabel "traits" ; - skos:definition "A collection of secondary parent classes or slots from which inheritable metaslots are propagated from." ; - skos:note "mixins act in the same way as parents (is_a). They allow a model to have a primary strict hierachy, while keeping the benefits of multiple inheritance" . + skos:definition "A collection of secondary parent classes or slots from which inheritable metaslots are propagated from." . linkml:range_expression a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "range_expression" ; rdfs:domain linkml:SlotExpression ; rdfs:range linkml:AnonymousClassExpression ; - skos:definition "A range that is described as a boolean expression combining existing ranges" ; - skos:note "one use for this is being able to describe a range using any_of expressions, for example to combine two enums" . + skos:definition "A range that is described as a boolean expression combining existing ranges" . linkml:Prefix a owl:Class, linkml:ClassDefinition ; rdfs:label "prefix" ; rdfs:subClassOf [ a owl:Restriction ; - owl:onClass linkml:Ncname ; - owl:onProperty sh:prefix ; - owl:qualifiedCardinality 1 ], - [ a owl:Restriction ; owl:onClass linkml:Uri ; owl:onProperty sh:namespace ; + owl:qualifiedCardinality 1 ], + [ a owl:Restriction ; + owl:onClass linkml:Ncname ; + owl:onProperty sh:prefix ; owl:qualifiedCardinality 1 ] ; skos:definition "prefix URI tuple" . @@ -2054,18 +1852,33 @@ linkml:UniqueKey a owl:Class, linkml:ClassDefinition ; rdfs:label "unique_key" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom linkml:StructuredAlias ; - owl:onProperty skosxl:altLabel ], + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Uri ; + owl:onProperty skos:inScheme ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty dcterms:title ], + owl:onClass linkml:Datetime ; + owl:onProperty pav:lastUpdatedOn ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Example ; - owl:onProperty linkml:examples ], + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:todos ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty skos:relatedMatch ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; owl:onProperty skos:exactMatch ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty skos:altLabel ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:String ; + owl:onProperty linkml:imported_from ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Uriorcurie ; + owl:onProperty bibo:status ], [ a owl:Class ; owl:intersectionOf ( [ a owl:Restriction ; owl:allValuesFrom linkml:SlotDefinition ; @@ -2076,112 +1889,109 @@ linkml:UniqueKey a owl:Class, owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Uriorcurie ; owl:onProperty dcterms:source ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:todos ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Boolean ; - owl:onProperty linkml:consider_nulls_inequal ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uriorcurie ; - owl:onProperty bibo:status ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:narrowMatch ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Integer ; owl:onProperty sh:order ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uri ; - owl:onProperty skos:inScheme ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:relatedMatch ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty skos:definition ], + owl:onProperty dcterms:contributor ], [ a owl:Restriction ; - owl:allValuesFrom linkml:AltDescription ; - owl:onProperty linkml:alt_descriptions ], + owl:allValuesFrom linkml:Extension ; + owl:onProperty linkml:extensions ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Datetime ; - owl:onProperty pav:lastUpdatedOn ], - [ a owl:Restriction ; owl:onClass linkml:String ; - owl:onProperty linkml:unique_key_name ; - owl:qualifiedCardinality 1 ], + owl:onProperty skos:definition ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Uriorcurie ; - owl:onProperty linkml:deprecated_element_has_exact_replacement ], + owl:onProperty oslc:modifiedBy ], [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty linkml:imported_from ], + owl:allValuesFrom linkml:StructuredAlias ; + owl:onProperty skosxl:altLabel ], [ a owl:Restriction ; - owl:allValuesFrom linkml:SubsetDefinition ; - owl:onProperty OIO:inSubset ], + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty skos:mappingRelation ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Uriorcurie ; owl:onProperty pav:createdBy ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty skos:editorialNote ], + owl:allValuesFrom linkml:SubsetDefinition ; + owl:onProperty OIO:inSubset ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:closeMatch ], + owl:onProperty rdfs:seeAlso ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Datetime ; - owl:onProperty pav:createdOn ], + owl:onClass linkml:Boolean ; + owl:onProperty linkml:consider_nulls_inequal ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uriorcurie ; - owl:onProperty oslc:modifiedBy ], + owl:onClass linkml:String ; + owl:onProperty schema1:inLanguage ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uriorcurie ; - owl:onProperty linkml:deprecated_element_has_possible_replacement ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty rdfs:seeAlso ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty skos:altLabel ], + owl:onClass linkml:Datetime ; + owl:onProperty pav:createdOn ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty linkml:deprecated ], + owl:onClass linkml:Uriorcurie ; + owl:onProperty linkml:deprecated_element_has_exact_replacement ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; - owl:onProperty skos:note ], + owl:onProperty schema1:keywords ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty schema:inLanguage ], + owl:onProperty dcterms:title ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:broadMatch ], + owl:allValuesFrom linkml:Annotation ; + owl:onProperty linkml:annotations ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:mappingRelation ], + owl:onProperty dcterms:subject ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Annotation ; - owl:onProperty linkml:annotations ], + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty skos:narrowMatch ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Extension ; - owl:onProperty linkml:extensions ], + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Uriorcurie ; + owl:onProperty linkml:deprecated_element_has_possible_replacement ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty skos:note ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty skos:broadMatch ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:AltDescription ; + owl:onProperty linkml:alt_descriptions ], + [ a owl:Restriction ; + owl:onClass linkml:String ; + owl:onProperty linkml:unique_key_name ; + owl:qualifiedCardinality 1 ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:String ; + owl:onProperty linkml:deprecated ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty skos:editorialNote ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty skos:closeMatch ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Example ; + owl:onProperty linkml:examples ], linkml:Annotatable, linkml:CommonMetadata, linkml:Extensible ; - skos:definition "a collection of slots whose values uniquely identify an instance of a class" . + skos:definition "a collection of slots whose values uniquely identify an instance of a class" ; + linkml:mixins linkml:Annotatable, + linkml:CommonMetadata, + linkml:Extensible . linkml:is_a a owl:ObjectProperty, linkml:SlotDefinition ; @@ -2199,18 +2009,146 @@ linkml:AliasPredicateEnum a owl:Class, skos:narrowerMatch, skos:relatedMatch . +linkml:ClassExpression a owl:Class, + linkml:ClassDefinition ; + rdfs:label "class_expression" ; + rdfs:subClassOf [ a owl:Restriction ; + owl:allValuesFrom linkml:AnonymousClassExpression ; + owl:onProperty linkml:none_of ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:AnonymousClassExpression ; + owl:onProperty linkml:any_of ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:SlotDefinition ; + owl:onProperty linkml:slot_conditions ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:AnonymousClassExpression ; + owl:onProperty linkml:all_of ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:AnonymousClassExpression ; + owl:onProperty linkml:exactly_one_of ], + linkml:mixin ; + skos:definition "A boolean expression that can be used to dynamically determine membership of a class" . + linkml:MatchQuery a owl:Class, linkml:ClassDefinition ; rdfs:label "match_query" ; rdfs:subClassOf [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Uriorcurie ; + owl:onProperty linkml:source_ontology ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:String ; + owl:onProperty linkml:identifier_pattern ] ; + skos:definition "A query that is used on an enum expression to dynamically obtain a set of permissivle values via a query that matches on properties of the external concepts." . + +linkml:SlotExpression a owl:Class, + linkml:ClassDefinition ; + rdfs:label "slot_expression" ; + rdfs:subClassOf [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Boolean ; + owl:onProperty linkml:inlined_as_list ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:AnonymousSlotExpression ; + owl:onProperty linkml:all_of ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Boolean ; + owl:onProperty linkml:required ], + [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty linkml:identifier_pattern ], + owl:onProperty linkml:equals_string ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uriorcurie ; - owl:onProperty linkml:source_ontology ] ; - skos:definition "A query that is used on an enum expression to dynamically obtain a set of permissivle values via a query that matches on properties of the external concepts" . + owl:onClass linkml:UnitOfMeasure ; + owl:onProperty qudt:unit ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:PresenceEnum ; + owl:onProperty linkml:value_presence ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:AnonymousSlotExpression ; + owl:onProperty linkml:has_member ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Boolean ; + owl:onProperty linkml:recommended ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Integer ; + owl:onProperty linkml:equals_number ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:String ; + owl:onProperty linkml:pattern ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:AnonymousSlotExpression ; + owl:onProperty linkml:exactly_one_of ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:AnonymousClassExpression ; + owl:onProperty linkml:range_expression ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:AnonymousSlotExpression ; + owl:onProperty linkml:all_members ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:equals_string_in ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Integer ; + owl:onProperty linkml:minimum_cardinality ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:PatternExpression ; + owl:onProperty linkml:structured_pattern ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:String ; + owl:onProperty linkml:equals_expression ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:String ; + owl:onProperty linkml:implicit_prefix ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Integer ; + owl:onProperty linkml:maximum_cardinality ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Element ; + owl:onProperty linkml:range ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Integer ; + owl:onProperty linkml:maximum_value ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:AnonymousSlotExpression ; + owl:onProperty linkml:any_of ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Integer ; + owl:onProperty linkml:minimum_value ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:EnumExpression ; + owl:onProperty linkml:enum_range ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Boolean ; + owl:onProperty linkml:inlined ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:AnonymousSlotExpression ; + owl:onProperty linkml:none_of ], + linkml:Expression, + linkml:mixin ; + skos:definition "an expression that constrains the range of values a slot can take" ; + linkml:is_a linkml:Expression . linkml:equals_number a owl:ObjectProperty, linkml:SlotDefinition ; @@ -2275,7 +2213,6 @@ linkml:structured_pattern a owl:ObjectProperty, rdfs:label "structured_pattern" ; rdfs:domain linkml:Definition ; rdfs:range linkml:PatternExpression ; - rdfs:seeAlso "https://linkml.io/linkml/schemas/constraints.html#structured-patterns" ; skos:definition "the string value of the slot must conform to the regular expression in the pattern expression" . linkml:PathExpression a owl:Class, @@ -2283,54 +2220,77 @@ linkml:PathExpression a owl:Class, rdfs:label "path_expression" ; rdfs:subClassOf [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty linkml:deprecated ], + owl:onClass linkml:Uriorcurie ; + owl:onProperty pav:createdBy ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:PathExpression ; + owl:onProperty linkml:none_of ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty skos:closeMatch ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty skos:narrowMatch ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uriorcurie ; - owl:onProperty oslc:modifiedBy ], + owl:onClass linkml:SlotDefinition ; + owl:onProperty linkml:traverse ], [ a owl:Restriction ; owl:allValuesFrom linkml:Extension ; owl:onProperty linkml:extensions ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty skos:note ], + owl:allValuesFrom linkml:PathExpression ; + owl:onProperty linkml:all_of ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Boolean ; - owl:onProperty linkml:reversed ], + owl:onClass linkml:String ; + owl:onProperty linkml:deprecated ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uriorcurie ; - owl:onProperty dcterms:source ], + owl:onClass linkml:Integer ; + owl:onProperty sh:order ], [ a owl:Restriction ; - owl:allValuesFrom linkml:PathExpression ; - owl:onProperty linkml:any_of ], + owl:allValuesFrom linkml:StructuredAlias ; + owl:onProperty skosxl:altLabel ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:AnonymousClassExpression ; - owl:onProperty linkml:range_expression ], + owl:onClass linkml:Datetime ; + owl:onProperty pav:lastUpdatedOn ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Uriorcurie ; + owl:onProperty dcterms:source ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty dcterms:subject ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; owl:onProperty skos:relatedMatch ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty skos:altLabel ], + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:String ; + owl:onProperty linkml:imported_from ], [ a owl:Restriction ; - owl:allValuesFrom linkml:PathExpression ; - owl:onProperty linkml:none_of ], + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Boolean ; + owl:onProperty linkml:reversed ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Example ; - owl:onProperty linkml:examples ], + owl:allValuesFrom linkml:String ; + owl:onProperty schema1:keywords ], [ a owl:Restriction ; owl:allValuesFrom linkml:Annotation ; owl:onProperty linkml:annotations ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:todos ], + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:String ; + owl:onProperty dcterms:title ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty skos:editorialNote ], + owl:allValuesFrom linkml:SubsetDefinition ; + owl:onProperty OIO:inSubset ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Uri ; + owl:onProperty skos:inScheme ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Uriorcurie ; @@ -2339,21 +2299,19 @@ linkml:PathExpression a owl:Class, owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Datetime ; owl:onProperty pav:createdOn ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:PathExpression ; - owl:onProperty linkml:exactly_one_of ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty skos:definition ], + owl:onClass linkml:Uriorcurie ; + owl:onProperty oslc:modifiedBy ], [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty linkml:imported_from ], + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:todos ], [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Integer ; - owl:onProperty sh:order ], + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty dcterms:contributor ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty skos:altLabel ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Uriorcurie ; @@ -2361,70 +2319,62 @@ linkml:PathExpression a owl:Class, [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; owl:onProperty rdfs:seeAlso ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:broadMatch ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uriorcurie ; - owl:onProperty pav:createdBy ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:SubsetDefinition ; - owl:onProperty OIO:inSubset ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:narrowMatch ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uriorcurie ; - owl:onProperty linkml:deprecated_element_has_possible_replacement ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:StructuredAlias ; - owl:onProperty skosxl:altLabel ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:exactMatch ], + owl:onClass linkml:String ; + owl:onProperty skos:definition ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:PathExpression ; owl:onProperty linkml:followed_by ], [ a owl:Restriction ; owl:allValuesFrom linkml:PathExpression ; - owl:onProperty linkml:all_of ], + owl:onProperty linkml:any_of ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:closeMatch ], + owl:allValuesFrom linkml:Example ; + owl:onProperty linkml:examples ], [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:SlotDefinition ; - owl:onProperty linkml:traverse ], + owl:allValuesFrom linkml:String ; + owl:onProperty skos:note ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty skos:exactMatch ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; owl:onProperty skos:mappingRelation ], [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Datetime ; - owl:onProperty pav:lastUpdatedOn ], + owl:allValuesFrom linkml:PathExpression ; + owl:onProperty linkml:exactly_one_of ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:AltDescription ; + owl:onProperty linkml:alt_descriptions ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty schema:inLanguage ], + owl:onClass linkml:AnonymousClassExpression ; + owl:onProperty linkml:range_expression ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uri ; - owl:onProperty skos:inScheme ], + owl:onClass linkml:Uriorcurie ; + owl:onProperty linkml:deprecated_element_has_possible_replacement ], [ a owl:Restriction ; - owl:allValuesFrom linkml:AltDescription ; - owl:onProperty linkml:alt_descriptions ], + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty skos:broadMatch ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty dcterms:title ], + owl:onProperty schema1:inLanguage ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty skos:editorialNote ], linkml:Annotatable, linkml:CommonMetadata, linkml:Expression, linkml:Extensible ; - skos:definition "An expression that describes an abstract path from an object to another through a sequence of slot lookups" . + skos:definition "An expression that describes an abstract path from an object to another through a sequence of slot lookups" ; + linkml:mixins linkml:Annotatable, + linkml:CommonMetadata, + linkml:Expression, + linkml:Extensible . linkml:PresenceEnum a owl:Class, linkml:EnumDefinition ; @@ -2448,12 +2398,12 @@ linkml:Setting a owl:Class, linkml:ClassDefinition ; rdfs:label "setting" ; rdfs:subClassOf [ a owl:Restriction ; - owl:onClass linkml:String ; - owl:onProperty linkml:setting_value ; - owl:qualifiedCardinality 1 ], - [ a owl:Restriction ; owl:onClass linkml:Ncname ; owl:onProperty linkml:setting_key ; + owl:qualifiedCardinality 1 ], + [ a owl:Restriction ; + owl:onClass linkml:String ; + owl:onProperty linkml:setting_value ; owl:qualifiedCardinality 1 ] ; skos:definition "assignment of a key to a value" . @@ -2468,21 +2418,34 @@ linkml:AnonymousEnumExpression a owl:Class, linkml:ClassDefinition ; rdfs:label "anonymous_enum_expression" ; rdfs:subClassOf [ a owl:Restriction ; + owl:allValuesFrom linkml:PermissibleValue ; + owl:onProperty linkml:permissible_values ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:AnonymousEnumExpression ; + owl:onProperty linkml:include ], + [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:PvFormulaOptions ; - owl:onProperty linkml:pv_formula ], + owl:onClass linkml:MatchQuery ; + owl:onProperty linkml:matches ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty linkml:code_set_version ], + owl:onClass linkml:Uriorcurie ; + owl:onProperty linkml:code_set ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:ReachabilityQuery ; owl:onProperty linkml:reachable_from ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uriorcurie ; - owl:onProperty linkml:code_set ], + owl:onClass linkml:PvFormulaOptions ; + owl:onProperty linkml:pv_formula ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:String ; + owl:onProperty linkml:code_set_version ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:EnumDefinition ; + owl:onProperty linkml:inherits ], [ a owl:Restriction ; owl:allValuesFrom linkml:AnonymousEnumExpression ; owl:onProperty linkml:minus ], @@ -2493,161 +2456,161 @@ linkml:AnonymousEnumExpression a owl:Class, owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; owl:onProperty linkml:code_set_tag ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:MatchQuery ; - owl:onProperty linkml:matches ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:AnonymousEnumExpression ; - owl:onProperty linkml:include ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:EnumDefinition ; - owl:onProperty linkml:inherits ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:PermissibleValue ; - owl:onProperty linkml:permissible_values ], linkml:EnumExpression ; - skos:definition "An enum_expression that is not named" . + skos:definition "An enum_expression that is not named" ; + linkml:mixins linkml:EnumExpression . linkml:PermissibleValue a owl:Class, linkml:ClassDefinition ; rdfs:label "permissible_value" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty skos:editorialNote ], + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Uriorcurie ; + owl:onProperty linkml:deprecated_element_has_possible_replacement ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Integer ; owl:onProperty sh:order ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty skos:closeMatch ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uriorcurie ; - owl:onProperty oslc:modifiedBy ], + owl:onClass linkml:String ; + owl:onProperty linkml:deprecated ], [ a owl:Restriction ; - owl:allValuesFrom linkml:StructuredAlias ; - owl:onProperty skosxl:altLabel ], + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty rdfs:seeAlso ], [ a owl:Restriction ; - owl:onClass linkml:String ; - owl:onProperty linkml:text ; - owl:qualifiedCardinality 1 ], + owl:allValuesFrom linkml:PermissibleValue ; + owl:onProperty linkml:mixins ], [ a owl:Restriction ; - owl:allValuesFrom linkml:SubsetDefinition ; - owl:onProperty OIO:inSubset ], + owl:allValuesFrom linkml:AltDescription ; + owl:onProperty linkml:alt_descriptions ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty linkml:deprecated ], + owl:onClass linkml:Uriorcurie ; + owl:onProperty pav:createdBy ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:narrowMatch ], + owl:onProperty skos:relatedMatch ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty schema:inLanguage ], + owl:onClass linkml:Datetime ; + owl:onProperty pav:createdOn ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty skos:exactMatch ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uriorcurie ; - owl:onProperty linkml:deprecated_element_has_exact_replacement ], + owl:onClass linkml:Uri ; + owl:onProperty skos:inScheme ], [ a owl:Restriction ; - owl:allValuesFrom linkml:PermissibleValue ; - owl:onProperty linkml:mixins ], + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty skos:mappingRelation ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:UnitOfMeasure ; + owl:onProperty qudt:unit ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty schema1:keywords ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Extension ; + owl:onProperty linkml:extensions ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:PermissibleValue ; owl:onProperty linkml:is_a ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Example ; - owl:onProperty linkml:examples ], + owl:allValuesFrom linkml:SubsetDefinition ; + owl:onProperty OIO:inSubset ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; owl:onProperty linkml:imported_from ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:closeMatch ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:exactMatch ], + owl:allValuesFrom linkml:StructuredAlias ; + owl:onProperty skosxl:altLabel ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Extension ; - owl:onProperty linkml:extensions ], + owl:allValuesFrom linkml:String ; + owl:onProperty skos:altLabel ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:mappingRelation ], + owl:allValuesFrom linkml:Example ; + owl:onProperty linkml:examples ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Uriorcurie ; owl:onProperty linkml:meaning ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uriorcurie ; - owl:onProperty linkml:deprecated_element_has_possible_replacement ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:todos ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty rdfs:seeAlso ], + owl:onClass linkml:String ; + owl:onProperty schema1:inLanguage ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; owl:onProperty skos:note ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Datetime ; - owl:onProperty pav:createdOn ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:relatedMatch ], + owl:onProperty dcterms:contributor ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Uriorcurie ; - owl:onProperty bibo:status ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:UnitOfMeasure ; - owl:onProperty qudt:unit ], + owl:onProperty linkml:deprecated_element_has_exact_replacement ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Datetime ; - owl:onProperty pav:lastUpdatedOn ], + owl:onClass linkml:String ; + owl:onProperty skos:definition ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Annotation ; - owl:onProperty linkml:annotations ], + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty dcterms:subject ], [ a owl:Restriction ; - owl:allValuesFrom linkml:AltDescription ; - owl:onProperty linkml:alt_descriptions ], + owl:allValuesFrom linkml:String ; + owl:onProperty skos:editorialNote ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; owl:onProperty skos:broadMatch ], + [ a owl:Restriction ; + owl:onClass linkml:String ; + owl:onProperty linkml:text ; + owl:qualifiedCardinality 1 ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty skos:narrowMatch ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Uriorcurie ; - owl:onProperty pav:createdBy ], + owl:onProperty dcterms:source ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty dcterms:title ], + owl:onClass linkml:Uriorcurie ; + owl:onProperty oslc:modifiedBy ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Uriorcurie ; - owl:onProperty dcterms:source ], + owl:onProperty bibo:status ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Annotation ; + owl:onProperty linkml:annotations ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; - owl:onProperty skos:altLabel ], + owl:onProperty linkml:todos ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty skos:definition ], + owl:onProperty dcterms:title ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uri ; - owl:onProperty skos:inScheme ], + owl:onClass linkml:Datetime ; + owl:onProperty pav:lastUpdatedOn ], linkml:Annotatable, linkml:CommonMetadata, linkml:Extensible ; skos:altLabel "PV" ; skos:closeMatch skos:Concept ; - skos:definition "a permissible value, accompanied by intended text and an optional mapping to a concept URI" . + skos:definition "a permissible value, accompanied by intended text and an optional mapping to a concept URI" ; + linkml:mixins linkml:Annotatable, + linkml:CommonMetadata, + linkml:Extensible . linkml:PvFormulaOptions a owl:Class, linkml:EnumDefinition ; @@ -2663,84 +2626,38 @@ linkml:mixin a owl:ObjectProperty, rdfs:label "mixin" ; rdfs:domain linkml:Definition ; rdfs:range linkml:Boolean ; - rdfs:seeAlso "https://en.wikipedia.org/wiki/Mixin" ; skos:altLabel "trait" ; skos:definition "Indicates the class or slot is intended to be inherited from without being an is_a parent. mixins should not be inherited from using is_a, except by other mixins." . -linkml:CommonMetadata a owl:Class, +linkml:PatternExpression a owl:Class, linkml:ClassDefinition ; - rdfs:label "common_metadata" ; + rdfs:label "pattern_expression" ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty linkml:deprecated ], + owl:allValuesFrom linkml:SubsetDefinition ; + owl:onProperty OIO:inSubset ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty skos:editorialNote ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty dcterms:title ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:AltDescription ; - owl:onProperty linkml:alt_descriptions ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:todos ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:closeMatch ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:broadMatch ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty skos:editorialNote ], + owl:onClass linkml:Datetime ; + owl:onProperty pav:createdOn ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Uriorcurie ; - owl:onProperty pav:createdBy ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Datetime ; - owl:onProperty pav:lastUpdatedOn ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty rdfs:seeAlso ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:StructuredAlias ; - owl:onProperty skosxl:altLabel ], + owl:onProperty dcterms:source ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Uriorcurie ; - owl:onProperty oslc:modifiedBy ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:exactMatch ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Example ; - owl:onProperty linkml:examples ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:relatedMatch ], + owl:onProperty linkml:deprecated_element_has_possible_replacement ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Datetime ; - owl:onProperty pav:createdOn ], + owl:onClass linkml:Uriorcurie ; + owl:onProperty bibo:status ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty schema:inLanguage ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:mappingRelation ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty skos:altLabel ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty skos:note ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uriorcurie ; - owl:onProperty bibo:status ], + owl:onProperty skos:definition ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Integer ; @@ -2748,193 +2665,139 @@ linkml:CommonMetadata a owl:Class, [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty skos:definition ], + owl:onProperty linkml:imported_from ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Uriorcurie ; owl:onProperty linkml:deprecated_element_has_exact_replacement ], [ a owl:Restriction ; - owl:allValuesFrom linkml:SubsetDefinition ; - owl:onProperty OIO:inSubset ], + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty skos:narrowMatch ], [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uriorcurie ; - owl:onProperty dcterms:source ], + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty dcterms:contributor ], [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uri ; - owl:onProperty skos:inScheme ], + owl:allValuesFrom linkml:String ; + owl:onProperty skos:altLabel ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty schema1:keywords ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:narrowMatch ], + owl:onProperty skos:relatedMatch ], [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty linkml:imported_from ], + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty skos:mappingRelation ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uriorcurie ; - owl:onProperty linkml:deprecated_element_has_possible_replacement ], - linkml:mixin ; - skos:definition "Generic metadata shared across definitions" . - -linkml:PatternExpression a owl:Class, - linkml:ClassDefinition ; - rdfs:label "pattern_expression" ; - rdfs:subClassOf [ a owl:Restriction ; + owl:onClass linkml:Boolean ; + owl:onProperty linkml:partial_match ], + [ a owl:Restriction ; owl:allValuesFrom linkml:Annotation ; owl:onProperty linkml:annotations ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty skos:editorialNote ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty linkml:syntax ], + owl:onProperty linkml:deprecated ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uriorcurie ; - owl:onProperty dcterms:source ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:mappingRelation ], + owl:onClass linkml:String ; + owl:onProperty linkml:syntax ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty rdfs:seeAlso ], + owl:onProperty skos:closeMatch ], [ a owl:Restriction ; owl:allValuesFrom linkml:Example ; owl:onProperty linkml:examples ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uri ; - owl:onProperty skos:inScheme ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; - owl:onProperty skos:altLabel ], + owl:onProperty skos:note ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:exactMatch ], + owl:allValuesFrom linkml:Extension ; + owl:onProperty linkml:extensions ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty linkml:deprecated ], + owl:onProperty schema1:inLanguage ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Uriorcurie ; owl:onProperty oslc:modifiedBy ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty skos:note ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Datetime ; - owl:onProperty pav:lastUpdatedOn ], + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty skos:broadMatch ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Uriorcurie ; owl:onProperty pav:createdBy ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:relatedMatch ], [ a owl:Restriction ; owl:allValuesFrom linkml:AltDescription ; owl:onProperty linkml:alt_descriptions ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty schema:inLanguage ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Extension ; - owl:onProperty linkml:extensions ], + owl:onClass linkml:Uri ; + owl:onProperty skos:inScheme ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:narrowMatch ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty linkml:imported_from ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty skos:definition ], + owl:onProperty skos:exactMatch ], [ a owl:Restriction ; - owl:allValuesFrom linkml:SubsetDefinition ; - owl:onProperty OIO:inSubset ], + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty dcterms:subject ], [ a owl:Restriction ; owl:allValuesFrom linkml:StructuredAlias ; owl:onProperty skosxl:altLabel ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Boolean ; - owl:onProperty linkml:interpolated ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:todos ], + owl:onClass linkml:String ; + owl:onProperty dcterms:title ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:closeMatch ], + owl:onProperty rdfs:seeAlso ], [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Datetime ; - owl:onProperty pav:createdOn ], + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:todos ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Boolean ; - owl:onProperty linkml:partial_match ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:broadMatch ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uriorcurie ; - owl:onProperty linkml:deprecated_element_has_possible_replacement ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uriorcurie ; - owl:onProperty bibo:status ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Integer ; - owl:onProperty sh:order ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uriorcurie ; - owl:onProperty linkml:deprecated_element_has_exact_replacement ], + owl:onProperty linkml:interpolated ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty dcterms:title ], + owl:onClass linkml:Datetime ; + owl:onProperty pav:lastUpdatedOn ], linkml:Annotatable, linkml:CommonMetadata, linkml:Extensible ; - skos:definition "a regular expression pattern used to evaluate conformance of a string" . + skos:definition "a regular expression pattern used to evaluate conformance of a string" ; + linkml:mixins linkml:Annotatable, + linkml:CommonMetadata, + linkml:Extensible . linkml:ReachabilityQuery a owl:Class, linkml:ClassDefinition ; rdfs:label "reachability_query" ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uriorcurie ; - owl:onProperty linkml:source_ontology ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Boolean ; - owl:onProperty linkml:is_direct ], - [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; owl:onProperty linkml:relationship_types ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Boolean ; - owl:onProperty linkml:include_self ], + owl:onProperty linkml:traverse_up ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Boolean ; - owl:onProperty linkml:traverse_up ], + owl:onProperty linkml:is_direct ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Uriorcurie ; + owl:onProperty linkml:source_ontology ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty linkml:source_nodes ] ; - skos:definition "A query that is used on an enum expression to dynamically obtain a set of permissible values via walking from a set of source nodes to a set of descendants or ancestors over a set of relationship types" . + owl:onProperty linkml:source_nodes ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Boolean ; + owl:onProperty linkml:include_self ] ; + skos:definition "A query that is used on an enum expression to dynamically obtain a set of permissible values via walking from a set of source nodes to a set of descendants or ancestors over a set of relationship types." . linkml:UnitOfMeasure a owl:Class, linkml:ClassDefinition ; @@ -2942,18 +2805,15 @@ linkml:UnitOfMeasure a owl:Class, rdfs:subClassOf [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty qudt:iec61360Code ], + owl:onProperty qudt:abbreviation ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty qudt:ucumCode ], + owl:onProperty qudt:symbol ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Uriorcurie ; owl:onProperty qudt:hasQuantityKind ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:exactMatch ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; @@ -2961,23 +2821,25 @@ linkml:UnitOfMeasure a owl:Class, [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty qudt:symbol ], + owl:onProperty linkml:derivation ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty linkml:derivation ], + owl:onProperty qudt:iec61360Code ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty qudt:abbreviation ] ; - skos:definition "A unit of measure, or unit, is a particular quantity value that has been chosen as a scale for measuring other quantities the same kind (more generally of equivalent dimension)." ; + owl:onProperty qudt:ucumCode ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty skos:exactMatch ] ; + skos:definition "A unit of measure, or unit, is a particular quantity value that has been chosen as a scale for measuring other quantities the same kind (more generally of equivalent dimension)." ; skos:exactMatch qudt:Unit . linkml:all_of a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "all_of" ; rdfs:range linkml:Expression ; - rdfs:seeAlso "https://w3id.org/linkml/docs/specification/05validation/#rules" ; rdfs:subPropertyOf linkml:boolean_slot ; skos:definition "holds if all of the expressions hold" ; skos:exactMatch sh:and . @@ -2994,7 +2856,6 @@ linkml:any_of a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "any_of" ; rdfs:range linkml:Expression ; - rdfs:seeAlso "https://w3id.org/linkml/docs/specification/05validation/#rules" ; rdfs:subPropertyOf linkml:boolean_slot ; skos:definition "holds if at least one of the expressions hold" ; skos:exactMatch sh:or . @@ -3005,8 +2866,7 @@ linkml:deprecated a owl:ObjectProperty, rdfs:domain linkml:Element ; rdfs:range linkml:String ; skos:closeMatch owl:deprecated ; - skos:definition "Description of why and when this element will no longer be used" ; - skos:note "note that linkml does not use a boolean to indicate deprecation status - the presence of a string value in this field is sufficient to indicate deprecation." . + skos:definition "Description of why and when this element will no longer be used" . linkml:deprecated_element_has_exact_replacement a owl:ObjectProperty, linkml:SlotDefinition ; @@ -3026,7 +2886,6 @@ linkml:exactly_one_of a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "exactly_one_of" ; rdfs:range linkml:Expression ; - rdfs:seeAlso "https://w3id.org/linkml/docs/specification/05validation/#rules" ; rdfs:subPropertyOf linkml:boolean_slot ; skos:definition "holds if only one of the expressions hold" ; skos:exactMatch sh:xone . @@ -3036,7 +2895,7 @@ linkml:examples a owl:ObjectProperty, rdfs:label "examples" ; rdfs:domain linkml:Element ; rdfs:range linkml:Example ; - skos:closeMatch vann:example ; + skos:closeMatch vann1:example ; skos:definition "example usages of an element" . linkml:imported_from a owl:ObjectProperty, @@ -3056,7 +2915,6 @@ linkml:none_of a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "none_of" ; rdfs:range linkml:Expression ; - rdfs:seeAlso "https://w3id.org/linkml/docs/specification/05validation/#rules" ; rdfs:subPropertyOf linkml:boolean_slot ; skos:definition "holds if none of the expressions hold" ; skos:exactMatch sh:not . @@ -3076,6 +2934,14 @@ oslc:modifiedBy a owl:ObjectProperty, skos:definition "agent that modified the element" ; skos:exactMatch oslc:modifiedBy . +dcterms:contributor a owl:ObjectProperty, + linkml:SlotDefinition ; + rdfs:label "contributors" ; + rdfs:domain linkml:Element ; + rdfs:range linkml:Uriorcurie ; + skos:definition "agent that contributed to the element" ; + skos:exactMatch dcterms:contributor . + dcterms:source a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "source" ; @@ -3083,11 +2949,17 @@ dcterms:source a owl:ObjectProperty, rdfs:range linkml:Uriorcurie ; skos:altLabel "derived from", "origin" ; - skos:closeMatch schema:isBasedOn, + skos:closeMatch schema1:isBasedOn, prov:wasDerivedFrom ; skos:definition "A related resource from which the element is derived." ; - skos:exactMatch dcterms:source ; - skos:note "The described resource may be derived from the related resource in whole or in part" . + skos:exactMatch dcterms:source . + +dcterms:subject a owl:ObjectProperty, + linkml:SlotDefinition ; + rdfs:label "categories" ; + rdfs:range linkml:Uriorcurie ; + skos:definition "Controlled terms used to categorize an element." ; + skos:exactMatch dcterms:subject . dcterms:title a owl:ObjectProperty, linkml:SlotDefinition ; @@ -3103,12 +2975,9 @@ bibo:status a owl:ObjectProperty, rdfs:label "status" ; rdfs:domain linkml:Element ; rdfs:range linkml:Uriorcurie ; - rdfs:seeAlso "https://www.hl7.org/fhir/valueset-publication-status.html", - "https://www.hl7.org/fhir/versions.html#std-process" ; skos:altLabel "workflow status" ; skos:definition "status of the element" ; - skos:exactMatch bibo:status ; - linkml:examples "Example(value='bibo:draft', description=None)" . + skos:exactMatch bibo:status . pav:createdBy a owl:ObjectProperty, linkml:SlotDefinition ; @@ -3134,14 +3003,20 @@ pav:lastUpdatedOn a owl:ObjectProperty, skos:definition "time at which the element was last updated" ; skos:exactMatch pav:lastUpdatedOn . -schema:inLanguage a owl:ObjectProperty, +schema1:inLanguage a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "in_language" ; - dcterms:conformsTo "https://www.rfc-editor.org/rfc/bcp/bcp47.txt" ; rdfs:range linkml:String ; skos:definition "the primary language used in the sources" ; - skos:exactMatch schema:inLanguage ; - skos:note "Recommended to use a string from IETF BCP 47" . + skos:exactMatch schema1:inLanguage . + +schema1:keywords a owl:ObjectProperty, + linkml:SlotDefinition ; + rdfs:label "keywords" ; + rdfs:domain linkml:Element ; + rdfs:range linkml:String ; + skos:definition "Keywords or tags used to describe the element" ; + skos:exactMatch schema1:keywords . OIO:inSubset a owl:ObjectProperty, linkml:SlotDefinition ; @@ -3149,8 +3024,7 @@ OIO:inSubset a owl:ObjectProperty, rdfs:domain linkml:Element ; rdfs:range linkml:SubsetDefinition ; skos:definition "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; - skos:exactMatch OIO:inSubset ; - skos:note "an example of use in the translator_minimal subset in the biolink model, holding the minimal set of predicates used in a translator knowledge graph" . + skos:exactMatch OIO:inSubset . rdfs:seeAlso a owl:ObjectProperty, linkml:SlotDefinition ; @@ -3184,7 +3058,7 @@ skos:definition a owl:ObjectProperty, skos:altLabel "definition" ; skos:definition "a textual description of the element's purpose and use" ; skos:exactMatch dcterms:description, - schema:description, + schema1:description, skos:definition . skos:editorialNote a owl:ObjectProperty, @@ -3201,7 +3075,6 @@ skos:inScheme a owl:ObjectProperty, rdfs:domain linkml:Element ; rdfs:range linkml:Uri ; skos:definition "id of the schema that defined the element" ; - skos:editorialNote "A stronger model would be range schema_definition, but this doesn't address the import model" ; skos:exactMatch skos:inScheme . skos:narrowMatch a owl:ObjectProperty, @@ -3225,7 +3098,6 @@ skosxl:altLabel a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "structured_aliases" ; rdfs:range linkml:StructuredAlias ; - rdfs:seeAlso "linkml:aliases" ; skos:definition "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; skos:exactMatch skosxl:altLabel . @@ -3239,55 +3111,54 @@ sh:order a owl:ObjectProperty, skos:definition "the relative order in which the element occurs, lower values are given precedence" ; skos:exactMatch qb:order, qudt:order, - sh:order ; - skos:note "the rank of an element does not affect the semantics" . + sh:order . linkml:EnumDefinition a owl:Class, linkml:ClassDefinition ; rdfs:label "enum_definition" ; rdfs:subClassOf [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:ReachabilityQuery ; + owl:onProperty linkml:reachable_from ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Uriorcurie ; + owl:onProperty linkml:code_set ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:MatchQuery ; + owl:onProperty linkml:matches ], + [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Uriorcurie ; owl:onProperty linkml:enum_uri ], [ a owl:Restriction ; owl:allValuesFrom linkml:PermissibleValue ; owl:onProperty linkml:permissible_values ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty linkml:concepts ], [ a owl:Restriction ; owl:allValuesFrom linkml:AnonymousEnumExpression ; owl:onProperty linkml:include ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:PvFormulaOptions ; - owl:onProperty linkml:pv_formula ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:AnonymousEnumExpression ; - owl:onProperty linkml:minus ], [ a owl:Restriction ; owl:allValuesFrom linkml:EnumDefinition ; owl:onProperty linkml:inherits ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty linkml:code_set_version ], + owl:onProperty linkml:code_set_tag ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:MatchQuery ; - owl:onProperty linkml:matches ], + owl:onClass linkml:PvFormulaOptions ; + owl:onProperty linkml:pv_formula ], [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty linkml:code_set_tag ], + owl:allValuesFrom linkml:AnonymousEnumExpression ; + owl:onProperty linkml:minus ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:ReachabilityQuery ; - owl:onProperty linkml:reachable_from ], + owl:onClass linkml:String ; + owl:onProperty linkml:code_set_version ], [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uriorcurie ; - owl:onProperty linkml:code_set ], + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty linkml:concepts ], linkml:Definition, linkml:EnumExpression ; skos:altLabel "Terminology Value Set", @@ -3295,93 +3166,90 @@ linkml:EnumDefinition a owl:Class, "concept set", "enum", "term set", + "value domain", "value set" ; skos:closeMatch skos:ConceptScheme ; skos:definition "an element whose instances must be drawn from a specified set of permissible values" ; skos:exactMatch NCIT:C113497, - qb:HierarchicalCodeList . - -linkml:Extensible a owl:Class, - linkml:ClassDefinition ; - rdfs:label "extensible" ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom linkml:Extension ; - owl:onProperty linkml:extensions ], - linkml:mixin ; - skos:definition "mixin for classes that support extension" . + qb:HierarchicalCodeList, + cdisc:ValueDomain ; + linkml:is_a linkml:Definition ; + linkml:mixins linkml:EnumExpression . linkml:TypeDefinition a owl:Class, linkml:ClassDefinition ; rdfs:label "type_definition" ; rdfs:subClassOf [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:String ; + owl:onProperty linkml:implicit_prefix ], + [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Uriorcurie ; owl:onProperty linkml:uri ], [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty linkml:pattern ], + owl:allValuesFrom linkml:AnonymousTypeExpression ; + owl:onProperty linkml:none_of ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:AnonymousTypeExpression ; + owl:onProperty linkml:all_of ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; owl:onProperty linkml:repr ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:TypeDefinition ; - owl:onProperty linkml:typeof ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:AnonymousTypeExpression ; - owl:onProperty linkml:all_of ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:AnonymousTypeExpression ; - owl:onProperty linkml:none_of ], + owl:onClass linkml:Integer ; + owl:onProperty linkml:maximum_value ], [ a owl:Restriction ; - owl:allValuesFrom linkml:AnonymousTypeExpression ; - owl:onProperty linkml:any_of ], + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:String ; + owl:onProperty linkml:base ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; owl:onProperty linkml:equals_string_in ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:TypeDefinition ; - owl:onProperty linkml:union_of ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:AnonymousTypeExpression ; - owl:onProperty linkml:exactly_one_of ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty linkml:implicit_prefix ], + owl:onProperty linkml:pattern ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Integer ; - owl:onProperty linkml:minimum_value ], + owl:onProperty linkml:equals_number ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Integer ; - owl:onProperty linkml:maximum_value ], + owl:onClass linkml:String ; + owl:onProperty linkml:equals_string ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:TypeDefinition ; + owl:onProperty linkml:union_of ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:AnonymousTypeExpression ; + owl:onProperty linkml:exactly_one_of ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:AnonymousTypeExpression ; + owl:onProperty linkml:any_of ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:UnitOfMeasure ; owl:onProperty qudt:unit ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty linkml:base ], + owl:onClass linkml:TypeDefinition ; + owl:onProperty linkml:typeof ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty linkml:equals_string ], + owl:onClass linkml:PatternExpression ; + owl:onProperty linkml:structured_pattern ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Integer ; - owl:onProperty linkml:equals_number ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:PatternExpression ; - owl:onProperty linkml:structured_pattern ], + owl:onProperty linkml:minimum_value ], linkml:Element, linkml:TypeExpression ; - skos:definition "an element that whose instances are atomic scalar values that can be mapped to primitive types" . + skos:definition "an element that whose instances are atomic scalar values that can be mapped to primitive types" ; + linkml:is_a linkml:Element ; + linkml:mixins linkml:TypeExpression . linkml:annotations a owl:ObjectProperty, linkml:SlotDefinition ; @@ -3408,15 +3276,6 @@ linkml:AltDescription a owl:Class, skos:altLabel "structured description" ; skos:definition "an attributed description" . -linkml:Annotatable a owl:Class, - linkml:ClassDefinition ; - rdfs:label "annotatable" ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom linkml:Annotation ; - owl:onProperty linkml:annotations ], - linkml:mixin ; - skos:definition "mixin for classes that support annotations" . - linkml:Annotation a owl:Class, linkml:ClassDefinition ; rdfs:label "annotation" ; @@ -3425,24 +3284,33 @@ linkml:Annotation a owl:Class, owl:onProperty linkml:annotations ], linkml:Annotatable, linkml:Extension ; - skos:definition "a tag/value pair with the semantics of OWL Annotation" . + skos:definition "a tag/value pair with the semantics of OWL Annotation" ; + linkml:is_a linkml:Extension ; + linkml:mixins linkml:Annotatable . linkml:AnonymousTypeExpression a owl:Class, linkml:ClassDefinition ; rdfs:label "anonymous_type_expression" ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:PatternExpression ; - owl:onProperty linkml:structured_pattern ], + owl:allValuesFrom linkml:AnonymousTypeExpression ; + owl:onProperty linkml:none_of ], [ a owl:Restriction ; owl:allValuesFrom linkml:AnonymousTypeExpression ; owl:onProperty linkml:all_of ], [ a owl:Restriction ; - owl:allValuesFrom linkml:AnonymousTypeExpression ; - owl:onProperty linkml:none_of ], + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:equals_string_in ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Integer ; + owl:onProperty linkml:minimum_value ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Integer ; + owl:onProperty linkml:equals_number ], [ a owl:Restriction ; owl:allValuesFrom linkml:AnonymousTypeExpression ; - owl:onProperty linkml:exactly_one_of ], + owl:onProperty linkml:any_of ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; @@ -3454,11 +3322,14 @@ linkml:AnonymousTypeExpression a owl:Class, [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Integer ; - owl:onProperty linkml:minimum_value ], + owl:onProperty linkml:maximum_value ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:AnonymousTypeExpression ; + owl:onProperty linkml:exactly_one_of ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Integer ; - owl:onProperty linkml:maximum_value ], + owl:onClass linkml:PatternExpression ; + owl:onProperty linkml:structured_pattern ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; @@ -3467,18 +3338,9 @@ linkml:AnonymousTypeExpression a owl:Class, owl:maxQualifiedCardinality 1 ; owl:onClass linkml:UnitOfMeasure ; owl:onProperty qudt:unit ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Integer ; - owl:onProperty linkml:equals_number ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:equals_string_in ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:AnonymousTypeExpression ; - owl:onProperty linkml:any_of ], linkml:TypeExpression ; - skos:definition "A type expression that is not a top-level named type definition. Used for nesting." . + skos:definition "A type expression that is not a top-level named type definition. Used for nesting." ; + linkml:mixins linkml:TypeExpression . linkml:extensions a owl:ObjectProperty, linkml:SlotDefinition ; @@ -3498,149 +3360,154 @@ skos:relatedMatch a owl:Class, skos:definition "A list of terms from different schemas or terminology systems that have related meaning." ; skos:exactMatch skos:relatedMatch . -linkml:Expression a owl:Class, - linkml:ClassDefinition ; - rdfs:label "expression" ; - rdfs:subClassOf linkml:mixin ; - skos:definition "general mixin for any class that can represent some form of expression" . - linkml:StructuredAlias a owl:Class, linkml:ClassDefinition ; rdfs:label "structured_alias" ; rdfs:subClassOf [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty linkml:deprecated ], + owl:onProperty schema1:inLanguage ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty linkml:imported_from ], + owl:onClass linkml:Integer ; + owl:onProperty sh:order ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty skos:note ], + owl:allValuesFrom linkml:Example ; + owl:onProperty linkml:examples ], [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uri ; - owl:onProperty skos:inScheme ], + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty dcterms:subject ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Uriorcurie ; owl:onProperty pav:createdBy ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty skos:altLabel ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty schema1:keywords ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty skos:editorialNote ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty rdfs:seeAlso ], + owl:onProperty dcterms:contributor ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty dcterms:subject ], + owl:onProperty skos:relatedMatch ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty skos:mappingRelation ], [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty skosxl:literalForm ; - owl:qualifiedCardinality 1 ], + owl:onProperty dcterms:title ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:broadMatch ], + owl:allValuesFrom linkml:String ; + owl:onProperty skos:note ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uriorcurie ; - owl:onProperty linkml:deprecated_element_has_exact_replacement ], + owl:onClass linkml:AliasPredicateEnum ; + owl:onProperty rdf:predicate ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Datetime ; - owl:onProperty pav:createdOn ], + owl:onClass linkml:Uriorcurie ; + owl:onProperty bibo:status ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty skos:altLabel ], + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Uriorcurie ; + owl:onProperty linkml:deprecated_element_has_exact_replacement ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:relatedMatch ], + owl:allValuesFrom linkml:Extension ; + owl:onProperty linkml:extensions ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty schema:inLanguage ], + owl:onProperty linkml:imported_from ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:closeMatch ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:StructuredAlias ; - owl:onProperty skosxl:altLabel ], + owl:onProperty skos:narrowMatch ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:exactMatch ], + owl:onProperty rdfs:seeAlso ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Uriorcurie ; - owl:onProperty bibo:status ], + owl:onProperty oslc:modifiedBy ], [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty skos:definition ], + owl:onProperty skosxl:literalForm ; + owl:qualifiedCardinality 1 ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uriorcurie ; - owl:onProperty linkml:deprecated_element_has_possible_replacement ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty skos:editorialNote ], + owl:onClass linkml:Datetime ; + owl:onProperty pav:lastUpdatedOn ], [ a owl:Restriction ; owl:allValuesFrom linkml:SubsetDefinition ; owl:onProperty OIO:inSubset ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Example ; - owl:onProperty linkml:examples ], + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Uri ; + owl:onProperty skos:inScheme ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:String ; + owl:onProperty skos:definition ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Datetime ; + owl:onProperty pav:createdOn ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty skos:exactMatch ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Uriorcurie ; - owl:onProperty oslc:modifiedBy ], + owl:onProperty dcterms:source ], [ a owl:Restriction ; owl:allValuesFrom linkml:Annotation ; owl:onProperty linkml:annotations ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uriorcurie ; - owl:onProperty dcterms:source ], + owl:onClass linkml:String ; + owl:onProperty linkml:deprecated ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; owl:onProperty linkml:todos ], [ a owl:Restriction ; owl:allValuesFrom linkml:AltDescription ; owl:onProperty linkml:alt_descriptions ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Extension ; - owl:onProperty linkml:extensions ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty dcterms:title ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Datetime ; - owl:onProperty pav:lastUpdatedOn ], + owl:onClass linkml:Uriorcurie ; + owl:onProperty linkml:deprecated_element_has_possible_replacement ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:mappingRelation ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Integer ; - owl:onProperty sh:order ], + owl:onProperty skos:closeMatch ], [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:AliasPredicateEnum ; - owl:onProperty rdf:predicate ], + owl:allValuesFrom linkml:StructuredAlias ; + owl:onProperty skosxl:altLabel ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:narrowMatch ], + owl:onProperty skos:broadMatch ], linkml:Annotatable, linkml:CommonMetadata, linkml:Expression, linkml:Extensible ; skos:definition "object that contains meta data about a synonym or alias including where it came from (source) and its scope (narrow, broad, etc.)" ; - skos:exactMatch skosxl:Label . + skos:exactMatch skosxl:Label ; + linkml:mixins linkml:Annotatable, + linkml:CommonMetadata, + linkml:Expression, + linkml:Extensible . linkml:SubsetDefinition a owl:Class, linkml:ClassDefinition ; rdfs:label "subset_definition" ; rdfs:subClassOf linkml:Element ; - skos:definition "an element that can be used to group other metamodel elements" . + skos:definition "an element that can be used to group other metamodel elements" ; + linkml:is_a linkml:Element . skos:exactMatch a owl:Class, owl:ObjectProperty, @@ -3655,52 +3522,192 @@ skos:exactMatch a owl:Class, linkml:Example a owl:Class, linkml:ClassDefinition ; - rdfs:label "example" ; + rdfs:label "example" ; + rdfs:subClassOf [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:String ; + owl:onProperty skos:example ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:String ; + owl:onProperty linkml:description ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Anything ; + owl:onProperty linkml:object ] ; + skos:definition "usage example and description" . + +skos:mappingRelation a owl:ObjectProperty, + linkml:SlotDefinition ; + rdfs:label "mappings" ; + rdfs:range linkml:Uriorcurie ; + skos:altLabel "alternate identifiers", + "alternate ids", + "identifiers", + "xrefs" ; + skos:definition "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; + skos:exactMatch skos:mappingRelation . + +linkml:Extension a owl:Class, + linkml:ClassDefinition ; + rdfs:label "extension" ; + rdfs:subClassOf [ a owl:Restriction ; + owl:allValuesFrom linkml:Extension ; + owl:onProperty linkml:extensions ], + [ a owl:Restriction ; + owl:onClass linkml:Uriorcurie ; + owl:onProperty linkml:tag ; + owl:qualifiedCardinality 1 ], + [ a owl:Restriction ; + owl:onClass linkml:AnyValue ; + owl:onProperty linkml:value ; + owl:qualifiedCardinality 1 ] ; + skos:definition "a tag/value pair used to add non-model information to an entry" . + +linkml:CommonMetadata a owl:Class, + linkml:ClassDefinition ; + rdfs:label "common_metadata" ; + rdfs:subClassOf [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty schema1:keywords ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty skos:mappingRelation ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Uri ; + owl:onProperty skos:inScheme ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:String ; + owl:onProperty skos:definition ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty skos:exactMatch ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:String ; + owl:onProperty linkml:imported_from ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:SubsetDefinition ; + owl:onProperty OIO:inSubset ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Uriorcurie ; + owl:onProperty linkml:deprecated_element_has_exact_replacement ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Integer ; + owl:onProperty sh:order ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Uriorcurie ; + owl:onProperty dcterms:source ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Example ; + owl:onProperty linkml:examples ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:todos ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:StructuredAlias ; + owl:onProperty skosxl:altLabel ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:String ; + owl:onProperty linkml:deprecated ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty skos:broadMatch ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Datetime ; + owl:onProperty pav:lastUpdatedOn ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Datetime ; + owl:onProperty pav:createdOn ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:AltDescription ; + owl:onProperty linkml:alt_descriptions ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty skos:note ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty skos:closeMatch ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Uriorcurie ; + owl:onProperty linkml:deprecated_element_has_possible_replacement ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty dcterms:contributor ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty skos:narrowMatch ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Uriorcurie ; + owl:onProperty pav:createdBy ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:String ; + owl:onProperty schema1:inLanguage ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:String ; + owl:onProperty dcterms:title ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty rdfs:seeAlso ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Uriorcurie ; + owl:onProperty bibo:status ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty dcterms:subject ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty skos:relatedMatch ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty skos:editorialNote ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Uriorcurie ; + owl:onProperty oslc:modifiedBy ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty skos:altLabel ], + linkml:mixin ; + skos:definition "Generic metadata shared across definitions" . + +linkml:EnumExpression a owl:Class, + linkml:ClassDefinition ; + rdfs:label "enum_expression" ; rdfs:subClassOf [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty skos:example ], + owl:onClass linkml:MatchQuery ; + owl:onProperty linkml:matches ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty linkml:description ], + owl:onProperty linkml:code_set_version ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Anything ; - owl:onProperty linkml:object ] ; - skos:definition "usage example and description" . - -linkml:Extension a owl:Class, - linkml:ClassDefinition ; - rdfs:label "extension" ; - rdfs:subClassOf [ a owl:Restriction ; owl:onClass linkml:String ; - owl:onProperty linkml:value ; - owl:qualifiedCardinality 1 ], + owl:onProperty linkml:code_set_tag ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Extension ; - owl:onProperty linkml:extensions ], + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:ReachabilityQuery ; + owl:onProperty linkml:reachable_from ], [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Uriorcurie ; - owl:onProperty linkml:tag ; - owl:qualifiedCardinality 1 ] ; - skos:definition "a tag/value pair used to add non-model information to an entry" . - -skos:mappingRelation a owl:ObjectProperty, - linkml:SlotDefinition ; - rdfs:label "mappings" ; - rdfs:range linkml:Uriorcurie ; - skos:altLabel "alternate identifiers", - "alternate ids", - "identifiers", - "xrefs" ; - skos:definition "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; - skos:exactMatch skos:mappingRelation . - -linkml:EnumExpression a owl:Class, - linkml:ClassDefinition ; - rdfs:label "enum_expression" ; - rdfs:subClassOf [ a owl:Restriction ; + owl:onProperty linkml:code_set ], + [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; owl:onProperty linkml:concepts ], [ a owl:Restriction ; @@ -3712,92 +3719,72 @@ linkml:EnumExpression a owl:Class, [ a owl:Restriction ; owl:allValuesFrom linkml:AnonymousEnumExpression ; owl:onProperty linkml:minus ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:MatchQuery ; - owl:onProperty linkml:matches ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:PvFormulaOptions ; - owl:onProperty linkml:pv_formula ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty linkml:code_set_version ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uriorcurie ; - owl:onProperty linkml:code_set ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:ReachabilityQuery ; - owl:onProperty linkml:reachable_from ], [ a owl:Restriction ; owl:allValuesFrom linkml:PermissibleValue ; owl:onProperty linkml:permissible_values ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty linkml:code_set_tag ], + owl:onClass linkml:PvFormulaOptions ; + owl:onProperty linkml:pv_formula ], linkml:Expression ; - skos:definition "An expression that constrains the range of a slot" . + skos:definition "An expression that constrains the range of a slot" ; + linkml:is_a linkml:Expression . + +linkml:Expression a owl:Class, + linkml:ClassDefinition ; + rdfs:label "expression" ; + rdfs:subClassOf linkml:mixin ; + skos:definition "general mixin for any class that can represent some form of expression" . linkml:AnonymousSlotExpression a owl:Class, linkml:ClassDefinition ; rdfs:label "anonymous_slot_expression" ; rdfs:subClassOf [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:PresenceEnum ; - owl:onProperty linkml:value_presence ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Boolean ; - owl:onProperty linkml:inlined ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Boolean ; - owl:onProperty linkml:recommended ], + owl:onClass linkml:AnonymousSlotExpression ; + owl:onProperty linkml:has_member ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:AnonymousClassExpression ; - owl:onProperty linkml:range_expression ], + owl:onClass linkml:UnitOfMeasure ; + owl:onProperty qudt:unit ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:EnumExpression ; owl:onProperty linkml:enum_range ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:AnonymousSlotExpression ; - owl:onProperty linkml:has_member ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty linkml:implicit_prefix ], + owl:onClass linkml:PatternExpression ; + owl:onProperty linkml:structured_pattern ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Element ; - owl:onProperty linkml:range ], + owl:onClass linkml:Boolean ; + owl:onProperty linkml:recommended ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Integer ; owl:onProperty linkml:maximum_cardinality ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty linkml:pattern ], + owl:onClass linkml:Integer ; + owl:onProperty linkml:minimum_value ], [ a owl:Restriction ; owl:allValuesFrom linkml:AnonymousSlotExpression ; - owl:onProperty linkml:none_of ], + owl:onProperty linkml:all_of ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:AnonymousSlotExpression ; - owl:onProperty linkml:all_members ], + owl:onClass linkml:Boolean ; + owl:onProperty linkml:inlined ], [ a owl:Restriction ; - owl:allValuesFrom linkml:AnonymousSlotExpression ; - owl:onProperty linkml:exactly_one_of ], + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Integer ; + owl:onProperty linkml:minimum_cardinality ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:String ; + owl:onProperty linkml:pattern ], [ a owl:Restriction ; owl:allValuesFrom linkml:AnonymousSlotExpression ; - owl:onProperty linkml:all_of ], + owl:onProperty linkml:any_of ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; owl:onProperty linkml:equals_string_in ], @@ -3807,134 +3794,145 @@ linkml:AnonymousSlotExpression a owl:Class, owl:onProperty linkml:required ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Integer ; - owl:onProperty linkml:minimum_cardinality ], + owl:onClass linkml:String ; + owl:onProperty linkml:equals_expression ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Integer ; - owl:onProperty linkml:maximum_value ], + owl:onProperty linkml:equals_number ], [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:PatternExpression ; - owl:onProperty linkml:structured_pattern ], + owl:allValuesFrom linkml:AnonymousSlotExpression ; + owl:onProperty linkml:exactly_one_of ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty linkml:equals_expression ], + owl:onProperty linkml:implicit_prefix ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:PresenceEnum ; + owl:onProperty linkml:value_presence ], [ a owl:Restriction ; owl:allValuesFrom linkml:AnonymousSlotExpression ; - owl:onProperty linkml:any_of ], + owl:onProperty linkml:none_of ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Boolean ; - owl:onProperty linkml:inlined_as_list ], + owl:onClass linkml:AnonymousClassExpression ; + owl:onProperty linkml:range_expression ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty linkml:equals_string ], + owl:onClass linkml:Element ; + owl:onProperty linkml:range ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:UnitOfMeasure ; - owl:onProperty qudt:unit ], + owl:onClass linkml:AnonymousSlotExpression ; + owl:onProperty linkml:all_members ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Integer ; - owl:onProperty linkml:minimum_value ], + owl:onClass linkml:Boolean ; + owl:onProperty linkml:inlined_as_list ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:String ; + owl:onProperty linkml:equals_string ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Integer ; - owl:onProperty linkml:equals_number ], + owl:onProperty linkml:maximum_value ], linkml:AnonymousExpression, - linkml:SlotExpression . + linkml:SlotExpression ; + linkml:is_a linkml:AnonymousExpression ; + linkml:mixins linkml:SlotExpression . + +linkml:Extensible a owl:Class, + linkml:ClassDefinition ; + rdfs:label "extensible" ; + rdfs:subClassOf [ a owl:Restriction ; + owl:allValuesFrom linkml:Extension ; + owl:onProperty linkml:extensions ], + linkml:mixin ; + skos:definition "mixin for classes that support extension" . linkml:SchemaDefinition a owl:Class, linkml:ClassDefinition ; rdfs:label "schema_definition" ; - rdfs:seeAlso "https://en.wikipedia.org/wiki/Data_dictionary" ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Datetime ; - owl:onProperty linkml:source_file_date ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:TypeDefinition ; - owl:onProperty linkml:types ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Datetime ; - owl:onProperty linkml:generation_date ], + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty linkml:imports ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:TypeDefinition ; owl:onProperty linkml:default_range ], [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty linkml:metamodel_version ], + owl:onClass linkml:Ncname ; + owl:onProperty rdfs:label ; + owl:qualifiedCardinality 1 ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty schema:keywords ], + owl:allValuesFrom linkml:Prefix ; + owl:onProperty sh:declare ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty dcterms:license ], + owl:onClass linkml:Integer ; + owl:onProperty linkml:source_file_size ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:default_curi_maps ], [ a owl:Restriction ; owl:allValuesFrom linkml:EnumDefinition ; owl:onProperty linkml:enums ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:SubsetDefinition ; - owl:onProperty linkml:subsets ], - [ a owl:Restriction ; - owl:onClass linkml:Uri ; - owl:onProperty linkml:id ; - owl:qualifiedCardinality 1 ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty pav:version ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:default_curi_maps ], + owl:onProperty dcterms:license ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Setting ; - owl:onProperty linkml:settings ], + owl:allValuesFrom linkml:SlotDefinition ; + owl:onProperty linkml:slots ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty linkml:source_file ], + owl:onProperty pav:version ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:ClassDefinition ; + owl:onProperty linkml:classes ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; owl:onProperty linkml:default_prefix ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Prefix ; - owl:onProperty sh:declare ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Ncname ; - owl:onProperty linkml:emit_prefixes ], + owl:allValuesFrom linkml:Setting ; + owl:onProperty linkml:settings ], [ a owl:Restriction ; - owl:onClass linkml:Ncname ; - owl:onProperty rdfs:label ; + owl:onClass linkml:Uri ; + owl:onProperty linkml:id ; owl:qualifiedCardinality 1 ], [ a owl:Restriction ; - owl:allValuesFrom linkml:ClassDefinition ; - owl:onProperty linkml:classes ], + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Datetime ; + owl:onProperty linkml:source_file_date ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Integer ; - owl:onProperty linkml:source_file_size ], + owl:onClass linkml:Datetime ; + owl:onProperty linkml:generation_date ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:String ; + owl:onProperty linkml:metamodel_version ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Boolean ; owl:onProperty linkml:slot_names_unique ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty dcterms:subject ], + owl:allValuesFrom linkml:SubsetDefinition ; + owl:onProperty linkml:subsets ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:String ; + owl:onProperty linkml:source_file ], [ a owl:Restriction ; - owl:allValuesFrom linkml:SlotDefinition ; - owl:onProperty linkml:slots ], + owl:allValuesFrom linkml:TypeDefinition ; + owl:onProperty linkml:types ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty linkml:imports ], + owl:allValuesFrom linkml:Ncname ; + owl:onProperty linkml:emit_prefixes ], linkml:Element ; skos:altLabel "data dictionary", "data model", @@ -3944,37 +3942,48 @@ linkml:SchemaDefinition a owl:Class, "schema" ; skos:closeMatch qb:ComponentSet, owl:Ontology ; - skos:definition "A collection of definitions that make up a schema or a data model." . + skos:definition "A collection of definitions that make up a schema or a data model." ; + linkml:is_a linkml:Element . + +linkml:Annotatable a owl:Class, + linkml:ClassDefinition ; + rdfs:label "annotatable" ; + rdfs:subClassOf [ a owl:Restriction ; + owl:allValuesFrom linkml:Annotation ; + owl:onProperty linkml:annotations ], + linkml:mixin ; + skos:definition "mixin for classes that support annotations" . linkml:AnonymousClassExpression a owl:Class, linkml:ClassDefinition ; rdfs:label "anonymous_class_expression" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom linkml:AnonymousClassExpression ; - owl:onProperty linkml:none_of ], + owl:allValuesFrom linkml:SlotDefinition ; + owl:onProperty linkml:slot_conditions ], [ a owl:Restriction ; owl:allValuesFrom linkml:AnonymousClassExpression ; - owl:onProperty linkml:exactly_one_of ], + owl:onProperty linkml:none_of ], [ a owl:Restriction ; owl:allValuesFrom linkml:AnonymousClassExpression ; owl:onProperty linkml:any_of ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:SlotDefinition ; - owl:onProperty linkml:slot_conditions ], [ a owl:Restriction ; owl:allValuesFrom linkml:AnonymousClassExpression ; - owl:onProperty linkml:all_of ], + owl:onProperty linkml:exactly_one_of ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Definition ; owl:onProperty linkml:is_a ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:AnonymousClassExpression ; + owl:onProperty linkml:all_of ], linkml:AnonymousExpression, - linkml:ClassExpression . + linkml:ClassExpression ; + linkml:is_a linkml:AnonymousExpression ; + linkml:mixins linkml:ClassExpression . linkml:Definition a owl:Class, linkml:ClassDefinition ; rdfs:label "definition" ; - rdfs:seeAlso "https://en.wikipedia.org/wiki/Data_element_definition" ; rdfs:subClassOf [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Boolean ; @@ -3985,246 +3994,261 @@ linkml:Definition a owl:Class, owl:onProperty linkml:abstract ], [ a owl:Restriction ; owl:allValuesFrom linkml:Definition ; - owl:onProperty linkml:apply_to ], + owl:onProperty linkml:mixins ], [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty linkml:string_serialization ], + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty linkml:values_from ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Definition ; + owl:onProperty linkml:apply_to ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Definition ; owl:onProperty linkml:is_a ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty linkml:values_from ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Definition ; - owl:onProperty linkml:mixins ], + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:String ; + owl:onProperty linkml:string_serialization ], linkml:Element ; - skos:definition "abstract base class for core metaclasses" . + skos:definition "abstract base class for core metaclasses" ; + linkml:is_a linkml:Element . linkml:Element a owl:Class, linkml:ClassDefinition ; rdfs:label "element" ; - rdfs:seeAlso "https://en.wikipedia.org/wiki/Data_element" ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Datetime ; - owl:onProperty pav:createdOn ], - [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:mappingRelation ], + owl:onProperty linkml:implements ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:LocalName ; + owl:onProperty linkml:local_names ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty linkml:implements ], + owl:onProperty linkml:instantiates ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:todos ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:broadMatch ], + owl:onProperty skos:closeMatch ], [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty skos:definition ], + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty skos:mappingRelation ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Annotation ; - owl:onProperty linkml:annotations ], + owl:allValuesFrom linkml:Extension ; + owl:onProperty linkml:extensions ], [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uriorcurie ; - owl:onProperty bibo:status ], + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty skos:narrowMatch ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty skos:editorialNote ], + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty rdfs:seeAlso ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty linkml:imported_from ], + owl:onProperty linkml:deprecated ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:closeMatch ], + owl:allValuesFrom linkml:String ; + owl:onProperty skos:altLabel ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uriorcurie ; - owl:onProperty linkml:deprecated_element_has_exact_replacement ], + owl:onClass linkml:Datetime ; + owl:onProperty pav:createdOn ], [ a owl:Restriction ; owl:allValuesFrom linkml:StructuredAlias ; owl:onProperty skosxl:altLabel ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty skos:note ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:todos ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uriorcurie ; - owl:onProperty dcterms:source ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:narrowMatch ], - [ a owl:Restriction ; - owl:onClass linkml:String ; - owl:onProperty rdfs:label ; - owl:qualifiedCardinality 1 ], + owl:onProperty skos:relatedMatch ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Integer ; - owl:onProperty sh:order ], + owl:onClass linkml:String ; + owl:onProperty linkml:imported_from ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Uriorcurie ; - owl:onProperty oslc:modifiedBy ], + owl:onProperty pav:createdBy ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty linkml:deprecated ], + owl:onProperty dcterms:conformsTo ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uri ; - owl:onProperty skos:inScheme ], + owl:onClass linkml:String ; + owl:onProperty schema1:inLanguage ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Uriorcurie ; owl:onProperty linkml:deprecated_element_has_possible_replacement ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:AltDescription ; - owl:onProperty linkml:alt_descriptions ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Extension ; - owl:onProperty linkml:extensions ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty schema:inLanguage ], + owl:onClass linkml:Uriorcurie ; + owl:onProperty bibo:status ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; owl:onProperty skos:exactMatch ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Ncname ; - owl:onProperty linkml:id_prefixes ], + owl:allValuesFrom linkml:String ; + owl:onProperty schema1:keywords ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Example ; - owl:onProperty linkml:examples ], + owl:allValuesFrom linkml:SubsetDefinition ; + owl:onProperty OIO:inSubset ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty dcterms:title ], + owl:onProperty skos:definition ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty dcterms:conformsTo ], + owl:onClass linkml:Uriorcurie ; + owl:onProperty dcterms:source ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Uriorcurie ; + owl:onProperty oslc:modifiedBy ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Uriorcurie ; + owl:onProperty linkml:deprecated_element_has_exact_replacement ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Datetime ; owl:onProperty pav:lastUpdatedOn ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:String ; + owl:onProperty dcterms:title ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty dcterms:contributor ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Example ; + owl:onProperty linkml:examples ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Uriorcurie ; - owl:onProperty pav:createdBy ], + owl:onProperty linkml:definition_uri ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; - owl:onProperty skos:altLabel ], + owl:onProperty skos:editorialNote ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty skos:relatedMatch ], + owl:allValuesFrom linkml:Annotation ; + owl:onProperty linkml:annotations ], [ a owl:Restriction ; - owl:allValuesFrom linkml:LocalName ; - owl:onProperty linkml:local_names ], + owl:onClass linkml:String ; + owl:onProperty rdfs:label ; + owl:qualifiedCardinality 1 ], [ a owl:Restriction ; - owl:allValuesFrom linkml:SubsetDefinition ; - owl:onProperty OIO:inSubset ], + owl:allValuesFrom linkml:AltDescription ; + owl:onProperty linkml:alt_descriptions ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Uriorcurie ; + owl:onProperty dcterms:subject ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uriorcurie ; - owl:onProperty linkml:definition_uri ], + owl:onClass linkml:Uri ; + owl:onProperty skos:inScheme ], [ a owl:Restriction ; owl:allValuesFrom linkml:Uriorcurie ; - owl:onProperty rdfs:seeAlso ], + owl:onProperty skos:broadMatch ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Integer ; + owl:onProperty sh:order ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Ncname ; + owl:onProperty linkml:id_prefixes ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty skos:note ], linkml:Annotatable, linkml:CommonMetadata, linkml:Extensible ; skos:altLabel "data element", "object" ; - skos:definition "A named element in the model" . + skos:definition "A named element in the model" ; + linkml:mixins linkml:Annotatable, + linkml:CommonMetadata, + linkml:Extensible . linkml:ClassDefinition a owl:Class, linkml:ClassDefinition ; rdfs:label "class_definition" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom linkml:AnonymousClassExpression ; - owl:onProperty linkml:exactly_one_of ], + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Uriorcurie ; + owl:onProperty linkml:subclass_of ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Uriorcurie ; + owl:onProperty linkml:class_uri ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Boolean ; + owl:onProperty linkml:slot_names_unique ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:ClassDefinition ; + owl:onProperty linkml:is_a ], [ a owl:Restriction ; owl:allValuesFrom linkml:ClassDefinition ; - owl:onProperty linkml:mixins ], + owl:onProperty linkml:union_of ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Boolean ; + owl:onProperty linkml:tree_root ], [ a owl:Restriction ; owl:allValuesFrom linkml:SlotDefinition ; - owl:onProperty linkml:slots ], + owl:onProperty linkml:defining_slots ], [ a owl:Restriction ; - owl:allValuesFrom linkml:UniqueKey ; - owl:onProperty linkml:unique_keys ], + owl:allValuesFrom linkml:SlotDefinition ; + owl:onProperty linkml:slot_usage ], [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uriorcurie ; - owl:onProperty linkml:subclass_of ], + owl:allValuesFrom linkml:ClassDefinition ; + owl:onProperty linkml:mixins ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:AnonymousClassExpression ; + owl:onProperty linkml:exactly_one_of ], [ a owl:Restriction ; owl:allValuesFrom linkml:SlotDefinition ; owl:onProperty linkml:slot_conditions ], [ a owl:Restriction ; - owl:allValuesFrom linkml:AnonymousClassExpression ; - owl:onProperty linkml:classification_rules ], + owl:allValuesFrom linkml:ClassDefinition ; + owl:onProperty linkml:disjoint_with ], [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Boolean ; - owl:onProperty linkml:tree_root ], + owl:allValuesFrom linkml:SlotDefinition ; + owl:onProperty linkml:slots ], [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Boolean ; - owl:onProperty linkml:children_are_mutually_disjoint ], + owl:allValuesFrom linkml:ClassDefinition ; + owl:onProperty linkml:apply_to ], [ a owl:Restriction ; owl:allValuesFrom linkml:AnonymousClassExpression ; - owl:onProperty linkml:any_of ], + owl:onProperty linkml:none_of ], [ a owl:Restriction ; owl:allValuesFrom linkml:AnonymousClassExpression ; owl:onProperty linkml:all_of ], [ a owl:Restriction ; - owl:allValuesFrom linkml:ClassDefinition ; - owl:onProperty linkml:union_of ], + owl:allValuesFrom linkml:UniqueKey ; + owl:onProperty linkml:unique_keys ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:AnonymousClassExpression ; + owl:onProperty linkml:classification_rules ], [ a owl:Restriction ; owl:allValuesFrom linkml:AnonymousClassExpression ; - owl:onProperty linkml:none_of ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:SlotDefinition ; - owl:onProperty linkml:slot_usage ], + owl:onProperty linkml:any_of ], [ a owl:Restriction ; owl:allValuesFrom linkml:SlotDefinition ; - owl:onProperty linkml:defining_slots ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:ClassDefinition ; - owl:onProperty linkml:disjoint_with ], + owl:onProperty linkml:attributes ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Boolean ; - owl:onProperty linkml:represents_relationship ], + owl:onProperty linkml:children_are_mutually_disjoint ], [ a owl:Restriction ; owl:allValuesFrom linkml:ClassRule ; owl:onProperty sh:rule ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:SlotDefinition ; - owl:onProperty linkml:attributes ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:ClassDefinition ; - owl:onProperty linkml:apply_to ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uriorcurie ; - owl:onProperty linkml:class_uri ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:ClassDefinition ; - owl:onProperty linkml:is_a ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Boolean ; - owl:onProperty linkml:slot_names_unique ], + owl:onProperty linkml:represents_relationship ], linkml:ClassExpression, linkml:Definition ; skos:altLabel "message", @@ -4233,265 +4257,267 @@ linkml:ClassDefinition a owl:Class, "table", "template" ; skos:closeMatch owl:Class ; - skos:definition "an element whose instances are complex objects that may have slot-value assignments" . + skos:definition "an element whose instances are complex objects that may have slot-value assignments" ; + linkml:is_a linkml:Definition ; + linkml:mixins linkml:ClassExpression . linkml:SlotDefinition a owl:Class, linkml:ClassDefinition ; rdfs:label "slot_definition" ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:ClassDefinition ; - owl:onProperty linkml:domain ], - [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty linkml:pattern ], + owl:onProperty linkml:equals_expression ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Boolean ; - owl:onProperty linkml:inherited ], + owl:onClass linkml:UnitOfMeasure ; + owl:onProperty qudt:unit ], [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Boolean ; - owl:onProperty linkml:recommended ], + owl:allValuesFrom linkml:SlotDefinition ; + owl:onProperty linkml:disjoint_with ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Integer ; - owl:onProperty linkml:maximum_cardinality ], + owl:onClass linkml:AnonymousSlotExpression ; + owl:onProperty linkml:has_member ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Boolean ; - owl:onProperty linkml:required ], + owl:onProperty linkml:is_class_field ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Boolean ; - owl:onProperty linkml:is_grouping_slot ], + owl:onClass linkml:PresenceEnum ; + owl:onProperty linkml:value_presence ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Boolean ; - owl:onProperty linkml:inlined_as_list ], + owl:onClass linkml:RelationalRoleEnum ; + owl:onProperty linkml:relational_role ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Integer ; - owl:onProperty linkml:equals_number ], + owl:onClass linkml:SlotDefinition ; + owl:onProperty sh:group ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Boolean ; - owl:onProperty linkml:symmetric ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:AnonymousSlotExpression ; - owl:onProperty linkml:all_of ], + owl:onProperty linkml:reflexive ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:PathExpression ; - owl:onProperty linkml:path_rule ], + owl:onClass linkml:String ; + owl:onProperty linkml:singular_name ], [ a owl:Restriction ; owl:allValuesFrom linkml:SlotDefinition ; owl:onProperty linkml:mixins ], [ a owl:Restriction ; - owl:allValuesFrom linkml:SlotDefinition ; - owl:onProperty linkml:disjoint_with ], + owl:allValuesFrom linkml:AnonymousSlotExpression ; + owl:onProperty linkml:all_of ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Boolean ; - owl:onProperty linkml:children_are_mutually_disjoint ], + owl:onProperty linkml:inlined ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Integer ; owl:onProperty linkml:minimum_value ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:RelationalRoleEnum ; - owl:onProperty linkml:relational_role ], + owl:onClass linkml:SlotDefinition ; + owl:onProperty linkml:is_a ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:SlotDefinition ; - owl:onProperty owl:inverseOf ], + owl:onClass linkml:Integer ; + owl:onProperty linkml:maximum_cardinality ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty linkml:usage_slot_name ], + owl:onClass linkml:Boolean ; + owl:onProperty linkml:children_are_mutually_disjoint ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty linkml:ifabsent ], + owl:onClass linkml:Element ; + owl:onProperty linkml:range ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:PresenceEnum ; - owl:onProperty linkml:value_presence ], + owl:onClass linkml:Boolean ; + owl:onProperty linkml:shared ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:AnonymousSlotExpression ; + owl:onProperty linkml:exactly_one_of ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Integer ; - owl:onProperty linkml:minimum_cardinality ], + owl:onClass linkml:Boolean ; + owl:onProperty linkml:key ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty linkml:equals_expression ], + owl:onClass linkml:Boolean ; + owl:onProperty linkml:transitive ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Boolean ; - owl:onProperty linkml:is_usage_slot ], + owl:onProperty linkml:asymmetric ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Boolean ; - owl:onProperty linkml:designates_type ], + owl:onProperty linkml:list_elements_ordered ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:AnonymousSlotExpression ; - owl:onProperty linkml:has_member ], + owl:onClass linkml:Uriorcurie ; + owl:onProperty linkml:slot_uri ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty linkml:implicit_prefix ], + owl:onClass linkml:Integer ; + owl:onProperty linkml:maximum_value ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Boolean ; - owl:onProperty linkml:inlined ], + owl:onClass linkml:String ; + owl:onProperty linkml:implicit_prefix ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:SlotDefinition ; - owl:onProperty linkml:reflexive_transitive_form_of ], + owl:onClass linkml:AnonymousClassExpression ; + owl:onProperty linkml:range_expression ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Boolean ; - owl:onProperty linkml:reflexive ], + owl:onClass linkml:Definition ; + owl:onProperty linkml:owner ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty linkml:singular_name ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:AnonymousSlotExpression ; - owl:onProperty linkml:any_of ], + owl:onProperty linkml:readonly ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:SlotDefinition ; - owl:onProperty linkml:is_a ], + owl:onClass linkml:Boolean ; + owl:onProperty linkml:required ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Boolean ; - owl:onProperty linkml:locally_reflexive ], + owl:onProperty linkml:irreflexive ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Boolean ; - owl:onProperty linkml:shared ], + owl:onProperty linkml:multivalued ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:AnonymousSlotExpression ; - owl:onProperty linkml:all_members ], + owl:onClass linkml:SlotDefinition ; + owl:onProperty owl:inverseOf ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Boolean ; - owl:onProperty linkml:multivalued ], + owl:onClass linkml:SlotDefinition ; + owl:onProperty linkml:reflexive_transitive_form_of ], [ a owl:Restriction ; - owl:allValuesFrom linkml:SlotDefinition ; - owl:onProperty linkml:union_of ], + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Integer ; + owl:onProperty linkml:minimum_cardinality ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Boolean ; - owl:onProperty linkml:key ], + owl:onClass linkml:Integer ; + owl:onProperty linkml:equals_number ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty linkml:role ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:AnonymousSlotExpression ; - owl:onProperty linkml:none_of ], + owl:onProperty linkml:ifabsent ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; owl:onProperty linkml:equals_string ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:AnonymousClassExpression ; - owl:onProperty linkml:range_expression ], + owl:onClass linkml:Boolean ; + owl:onProperty linkml:is_grouping_slot ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Integer ; - owl:onProperty linkml:maximum_value ], + owl:onClass linkml:Boolean ; + owl:onProperty linkml:recommended ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:SlotDefinition ; - owl:onProperty linkml:transitive_form_of ], + owl:onClass linkml:Boolean ; + owl:onProperty linkml:inherited ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Boolean ; - owl:onProperty linkml:asymmetric ], + owl:onClass linkml:String ; + owl:onProperty linkml:role ], [ a owl:Restriction ; - owl:allValuesFrom linkml:ClassDefinition ; - owl:onProperty linkml:domain_of ], + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:AnonymousSlotExpression ; + owl:onProperty linkml:all_members ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Boolean ; - owl:onProperty linkml:list_elements_ordered ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty linkml:equals_string_in ], + owl:onProperty linkml:identifier ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; owl:onProperty skos:prefLabel ], [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Element ; - owl:onProperty linkml:range ], + owl:allValuesFrom linkml:AnonymousSlotExpression ; + owl:onProperty linkml:any_of ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:SlotDefinition ; - owl:onProperty rdfs:subPropertyOf ], + owl:onClass linkml:EnumExpression ; + owl:onProperty linkml:enum_range ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty linkml:equals_string_in ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:ClassDefinition ; + owl:onProperty linkml:domain_of ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:SlotDefinition ; + owl:onProperty linkml:apply_to ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Boolean ; - owl:onProperty linkml:identifier ], + owl:onProperty linkml:locally_reflexive ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:UnitOfMeasure ; - owl:onProperty qudt:unit ], + owl:onClass linkml:PathExpression ; + owl:onProperty linkml:path_rule ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:EnumExpression ; - owl:onProperty linkml:enum_range ], + owl:onClass linkml:Boolean ; + owl:onProperty linkml:inlined_as_list ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Boolean ; - owl:onProperty linkml:transitive ], + owl:onProperty linkml:is_usage_slot ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Boolean ; - owl:onProperty linkml:is_class_field ], + owl:onProperty linkml:symmetric ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Boolean ; - owl:onProperty linkml:irreflexive ], + owl:onProperty linkml:list_elements_unique ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Definition ; - owl:onProperty linkml:owner ], + owl:onClass linkml:PatternExpression ; + owl:onProperty linkml:structured_pattern ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Uriorcurie ; - owl:onProperty linkml:slot_uri ], + owl:onClass linkml:SlotDefinition ; + owl:onProperty rdfs:subPropertyOf ], [ a owl:Restriction ; owl:allValuesFrom linkml:SlotDefinition ; - owl:onProperty linkml:apply_to ], + owl:onProperty linkml:union_of ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:PatternExpression ; - owl:onProperty linkml:structured_pattern ], + owl:onClass linkml:String ; + owl:onProperty linkml:pattern ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:ClassDefinition ; + owl:onProperty linkml:domain ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:SlotDefinition ; - owl:onProperty sh:group ], + owl:onProperty linkml:transitive_form_of ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:AnonymousSlotExpression ; + owl:onProperty linkml:none_of ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Boolean ; - owl:onProperty linkml:list_elements_unique ], + owl:onProperty linkml:designates_type ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty linkml:readonly ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:AnonymousSlotExpression ; - owl:onProperty linkml:exactly_one_of ], + owl:onProperty linkml:usage_slot_name ], linkml:Definition, linkml:SlotExpression ; skos:altLabel "attribute", @@ -4502,6 +4528,8 @@ linkml:SlotDefinition a owl:Class, "variable" ; skos:closeMatch qb:ComponentProperty, rdf:Property ; - skos:definition "an element that describes how instances are related to other instances" . + skos:definition "an element that describes how instances are related to other instances" ; + linkml:is_a linkml:Definition ; + linkml:mixins linkml:SlotExpression . diff --git a/linkml_runtime/linkml_model/prefixmap/meta.yaml b/linkml_runtime/linkml_model/prefixmap/meta.yaml new file mode 100644 index 00000000..6d00d5ef --- /dev/null +++ b/linkml_runtime/linkml_model/prefixmap/meta.yaml @@ -0,0 +1,30 @@ +{ + "IAO": "http://purl.obolibrary.org/obo/IAO_", + "NCIT": "http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#", + "OIO": "http://www.geneontology.org/formats/oboInOwl#", + "bibo": "http://purl.org/ontology/bibo/", + "cdisc": "http://rdf.cdisc.org/mms#", + "dcterms": "http://purl.org/dc/terms/", + "linkml": "https://w3id.org/linkml/", + "oslc": "http://open-services.net/ns/core#", + "owl": "http://www.w3.org/2002/07/owl#", + "pav": "http://purl.org/pav/", + "prov": "http://www.w3.org/ns/prov#", + "qb": "http://purl.org/linked-data/cube#", + "qudt": "http://qudt.org/schema/qudt/", + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "schema": "http://schema.org/", + "sh": "http://www.w3.org/ns/shacl#", + "skos": "http://www.w3.org/2004/02/skos/core#", + "skosxl": "http://www.w3.org/2008/05/skos-xl#", + "swrl": "http://www.w3.org/2003/11/swrl#", + "vann": "https://vocab.org/vann/", + "xsd": "http://www.w3.org/2001/XMLSchema#", + "StructuredAlias": { + "@id": "skosxl:Label" + }, + "UnitOfMeasure": { + "@id": "qudt:Unit" + } +} diff --git a/linkml_runtime/linkml_model/protobuf/meta.proto b/linkml_runtime/linkml_model/protobuf/meta.proto new file mode 100644 index 00000000..6a3da75d --- /dev/null +++ b/linkml_runtime/linkml_model/protobuf/meta.proto @@ -0,0 +1,963 @@ +// an attributed description +message AltDescription + { + string source = 0 + string description = 0 + } +// a tag/value pair with the semantics of OWL Annotation +message Annotation + { + uriorcurie tag = 0 + anyValue value = 0 + repeated extension extensions = 0 + repeated annotation annotations = 0 + } +message AnonymousClassExpression + { + repeated extension extensions = 0 + repeated annotation annotations = 0 + string description = 5 + repeated altDescription altDescriptions = 0 + string title = 3 + string deprecated = 0 + repeated string todos = 0 + repeated string notes = 0 + repeated string comments = 0 + repeated example examples = 0 + repeated subsetDefinition inSubset = 0 + uri fromSchema = 0 + string importedFrom = 0 + uriorcurie source = 0 + string inLanguage = 0 + repeated uriorcurie seeAlso = 0 + uriorcurie deprecatedElementHasExactReplacement = 0 + uriorcurie deprecatedElementHasPossibleReplacement = 0 + repeated string aliases = 0 + repeated structuredAlias structuredAliases = 0 + repeated uriorcurie mappings = 0 + repeated uriorcurie exactMappings = 0 + repeated uriorcurie closeMappings = 0 + repeated uriorcurie relatedMappings = 0 + repeated uriorcurie narrowMappings = 0 + repeated uriorcurie broadMappings = 0 + uriorcurie createdBy = 0 + repeated uriorcurie contributors = 0 + datetime createdOn = 0 + datetime lastUpdatedOn = 0 + uriorcurie modifiedBy = 0 + uriorcurie status = 0 + integer rank = 51 + repeated uriorcurie categories = 0 + repeated string keywords = 0 + definition isA = 11 + repeated anonymousClassExpression anyOf = 101 + repeated anonymousClassExpression exactlyOneOf = 103 + repeated anonymousClassExpression noneOf = 105 + repeated anonymousClassExpression allOf = 107 + repeated slotDefinition slotConditions = 0 + } +// An enum_expression that is not named +message AnonymousEnumExpression + { + uriorcurie codeSet = 0 + string codeSetTag = 0 + string codeSetVersion = 0 + pvFormulaOptions pvFormula = 0 + repeated permissibleValue permissibleValues = 0 + repeated anonymousEnumExpression include = 0 + repeated anonymousEnumExpression minus = 0 + repeated enumDefinition inherits = 0 + reachabilityQuery reachableFrom = 0 + matchQuery matches = 0 + repeated uriorcurie concepts = 0 + } +message AnonymousSlotExpression + { + repeated extension extensions = 0 + repeated annotation annotations = 0 + string description = 5 + repeated altDescription altDescriptions = 0 + string title = 3 + string deprecated = 0 + repeated string todos = 0 + repeated string notes = 0 + repeated string comments = 0 + repeated example examples = 0 + repeated subsetDefinition inSubset = 0 + uri fromSchema = 0 + string importedFrom = 0 + uriorcurie source = 0 + string inLanguage = 0 + repeated uriorcurie seeAlso = 0 + uriorcurie deprecatedElementHasExactReplacement = 0 + uriorcurie deprecatedElementHasPossibleReplacement = 0 + repeated string aliases = 0 + repeated structuredAlias structuredAliases = 0 + repeated uriorcurie mappings = 0 + repeated uriorcurie exactMappings = 0 + repeated uriorcurie closeMappings = 0 + repeated uriorcurie relatedMappings = 0 + repeated uriorcurie narrowMappings = 0 + repeated uriorcurie broadMappings = 0 + uriorcurie createdBy = 0 + repeated uriorcurie contributors = 0 + datetime createdOn = 0 + datetime lastUpdatedOn = 0 + uriorcurie modifiedBy = 0 + uriorcurie status = 0 + integer rank = 51 + repeated uriorcurie categories = 0 + repeated string keywords = 0 + element range = 0 + anonymousClassExpression rangeExpression = 0 + enumExpression enumRange = 0 + boolean required = 8 + boolean recommended = 9 + boolean inlined = 25 + boolean inlinedAsList = 27 + integer minimumValue = 0 + integer maximumValue = 0 + string pattern = 35 + patternExpression structuredPattern = 0 + unitOfMeasure unit = 0 + string implicitPrefix = 0 + presenceEnum valuePresence = 0 + string equalsString = 0 + repeated string equalsStringIn = 0 + integer equalsNumber = 0 + string equalsExpression = 0 + integer minimumCardinality = 0 + integer maximumCardinality = 0 + anonymousSlotExpression hasMember = 0 + anonymousSlotExpression allMembers = 0 + repeated anonymousSlotExpression noneOf = 105 + repeated anonymousSlotExpression exactlyOneOf = 103 + repeated anonymousSlotExpression anyOf = 101 + repeated anonymousSlotExpression allOf = 107 + } +// A type expression that is not a top-level named type definition. Used for nesting. +message AnonymousTypeExpression + { + string pattern = 35 + patternExpression structuredPattern = 0 + unitOfMeasure unit = 0 + string implicitPrefix = 0 + string equalsString = 0 + repeated string equalsStringIn = 0 + integer equalsNumber = 0 + integer minimumValue = 0 + integer maximumValue = 0 + repeated anonymousTypeExpression noneOf = 105 + repeated anonymousTypeExpression exactlyOneOf = 103 + repeated anonymousTypeExpression anyOf = 101 + repeated anonymousTypeExpression allOf = 107 + } +// an element whose instances are complex objects that may have slot-value assignments +message ClassDefinition + { + string name = 1 + repeated ncname idPrefixes = 0 + uriorcurie definitionUri = 0 + repeated localName localNames = 0 + string conformsTo = 0 + repeated uriorcurie implements = 0 + repeated uriorcurie instantiates = 0 + repeated extension extensions = 0 + repeated annotation annotations = 0 + string description = 5 + repeated altDescription altDescriptions = 0 + string title = 3 + string deprecated = 0 + repeated string todos = 0 + repeated string notes = 0 + repeated string comments = 0 + repeated example examples = 0 + repeated subsetDefinition inSubset = 0 + uri fromSchema = 0 + string importedFrom = 0 + uriorcurie source = 0 + string inLanguage = 0 + repeated uriorcurie seeAlso = 0 + uriorcurie deprecatedElementHasExactReplacement = 0 + uriorcurie deprecatedElementHasPossibleReplacement = 0 + repeated string aliases = 0 + repeated structuredAlias structuredAliases = 0 + repeated uriorcurie mappings = 0 + repeated uriorcurie exactMappings = 0 + repeated uriorcurie closeMappings = 0 + repeated uriorcurie relatedMappings = 0 + repeated uriorcurie narrowMappings = 0 + repeated uriorcurie broadMappings = 0 + uriorcurie createdBy = 0 + repeated uriorcurie contributors = 0 + datetime createdOn = 0 + datetime lastUpdatedOn = 0 + uriorcurie modifiedBy = 0 + uriorcurie status = 0 + integer rank = 51 + repeated uriorcurie categories = 0 + repeated string keywords = 0 + boolean abstract = 0 + boolean mixin = 0 + repeated uriorcurie valuesFrom = 0 + string stringSerialization = 0 + repeated slotDefinition slots = 19 + repeated slotDefinition slotUsage = 23 + repeated slotDefinition attributes = 29 + uriorcurie classUri = 2 + uriorcurie subclassOf = 0 + repeated classDefinition unionOf = 0 + repeated slotDefinition definingSlots = 0 + boolean treeRoot = 31 + repeated uniqueKey uniqueKeys = 0 + repeated classRule rules = 0 + repeated anonymousClassExpression classificationRules = 0 + boolean slotNamesUnique = 0 + boolean representsRelationship = 0 + repeated classDefinition disjointWith = 0 + boolean childrenAreMutuallyDisjoint = 0 + classDefinition isA = 11 + repeated classDefinition mixins = 13 + repeated classDefinition applyTo = 0 + repeated anonymousClassExpression anyOf = 101 + repeated anonymousClassExpression exactlyOneOf = 103 + repeated anonymousClassExpression noneOf = 105 + repeated anonymousClassExpression allOf = 107 + repeated slotDefinition slotConditions = 0 + } +// A rule that applies to instances of a class +message ClassRule + { + anonymousClassExpression preconditions = 111 + anonymousClassExpression postconditions = 113 + anonymousClassExpression elseconditions = 115 + boolean bidirectional = 0 + boolean openWorld = 0 + integer rank = 51 + boolean deactivated = 0 + repeated extension extensions = 0 + repeated annotation annotations = 0 + string description = 5 + repeated altDescription altDescriptions = 0 + string title = 3 + string deprecated = 0 + repeated string todos = 0 + repeated string notes = 0 + repeated string comments = 0 + repeated example examples = 0 + repeated subsetDefinition inSubset = 0 + uri fromSchema = 0 + string importedFrom = 0 + uriorcurie source = 0 + string inLanguage = 0 + repeated uriorcurie seeAlso = 0 + uriorcurie deprecatedElementHasExactReplacement = 0 + uriorcurie deprecatedElementHasPossibleReplacement = 0 + repeated string aliases = 0 + repeated structuredAlias structuredAliases = 0 + repeated uriorcurie mappings = 0 + repeated uriorcurie exactMappings = 0 + repeated uriorcurie closeMappings = 0 + repeated uriorcurie relatedMappings = 0 + repeated uriorcurie narrowMappings = 0 + repeated uriorcurie broadMappings = 0 + uriorcurie createdBy = 0 + repeated uriorcurie contributors = 0 + datetime createdOn = 0 + datetime lastUpdatedOn = 0 + uriorcurie modifiedBy = 0 + uriorcurie status = 0 + repeated uriorcurie categories = 0 + repeated string keywords = 0 + } +// an element whose instances must be drawn from a specified set of permissible values +message EnumDefinition + { + string name = 1 + repeated ncname idPrefixes = 0 + uriorcurie definitionUri = 0 + repeated localName localNames = 0 + string conformsTo = 0 + repeated uriorcurie implements = 0 + repeated uriorcurie instantiates = 0 + repeated extension extensions = 0 + repeated annotation annotations = 0 + string description = 5 + repeated altDescription altDescriptions = 0 + string title = 3 + string deprecated = 0 + repeated string todos = 0 + repeated string notes = 0 + repeated string comments = 0 + repeated example examples = 0 + repeated subsetDefinition inSubset = 0 + uri fromSchema = 0 + string importedFrom = 0 + uriorcurie source = 0 + string inLanguage = 0 + repeated uriorcurie seeAlso = 0 + uriorcurie deprecatedElementHasExactReplacement = 0 + uriorcurie deprecatedElementHasPossibleReplacement = 0 + repeated string aliases = 0 + repeated structuredAlias structuredAliases = 0 + repeated uriorcurie mappings = 0 + repeated uriorcurie exactMappings = 0 + repeated uriorcurie closeMappings = 0 + repeated uriorcurie relatedMappings = 0 + repeated uriorcurie narrowMappings = 0 + repeated uriorcurie broadMappings = 0 + uriorcurie createdBy = 0 + repeated uriorcurie contributors = 0 + datetime createdOn = 0 + datetime lastUpdatedOn = 0 + uriorcurie modifiedBy = 0 + uriorcurie status = 0 + integer rank = 51 + repeated uriorcurie categories = 0 + repeated string keywords = 0 + definition isA = 11 + boolean abstract = 0 + boolean mixin = 0 + repeated definition mixins = 13 + repeated definition applyTo = 0 + repeated uriorcurie valuesFrom = 0 + string stringSerialization = 0 + uriorcurie enumUri = 0 + uriorcurie codeSet = 0 + string codeSetTag = 0 + string codeSetVersion = 0 + pvFormulaOptions pvFormula = 0 + repeated permissibleValue permissibleValues = 0 + repeated anonymousEnumExpression include = 0 + repeated anonymousEnumExpression minus = 0 + repeated enumDefinition inherits = 0 + reachabilityQuery reachableFrom = 0 + matchQuery matches = 0 + repeated uriorcurie concepts = 0 + } +// An expression that constrains the range of a slot +message EnumExpression + { + uriorcurie codeSet = 0 + string codeSetTag = 0 + string codeSetVersion = 0 + pvFormulaOptions pvFormula = 0 + repeated permissibleValue permissibleValues = 0 + repeated anonymousEnumExpression include = 0 + repeated anonymousEnumExpression minus = 0 + repeated enumDefinition inherits = 0 + reachabilityQuery reachableFrom = 0 + matchQuery matches = 0 + repeated uriorcurie concepts = 0 + } +// usage example and description +message Example + { + string value = 0 + string description = 0 + anything object = 0 + } +// a tag/value pair used to add non-model information to an entry +message Extension + { + uriorcurie tag = 0 + anyValue value = 0 + repeated extension extensions = 0 + } +// an expression describing an import +message ImportExpression + { + uriorcurie importFrom = 0 + ncname importAs = 0 + repeated setting importMap = 0 + repeated extension extensions = 0 + repeated annotation annotations = 0 + string description = 5 + repeated altDescription altDescriptions = 0 + string title = 3 + string deprecated = 0 + repeated string todos = 0 + repeated string notes = 0 + repeated string comments = 0 + repeated example examples = 0 + repeated subsetDefinition inSubset = 0 + uri fromSchema = 0 + string importedFrom = 0 + uriorcurie source = 0 + string inLanguage = 0 + repeated uriorcurie seeAlso = 0 + uriorcurie deprecatedElementHasExactReplacement = 0 + uriorcurie deprecatedElementHasPossibleReplacement = 0 + repeated string aliases = 0 + repeated structuredAlias structuredAliases = 0 + repeated uriorcurie mappings = 0 + repeated uriorcurie exactMappings = 0 + repeated uriorcurie closeMappings = 0 + repeated uriorcurie relatedMappings = 0 + repeated uriorcurie narrowMappings = 0 + repeated uriorcurie broadMappings = 0 + uriorcurie createdBy = 0 + repeated uriorcurie contributors = 0 + datetime createdOn = 0 + datetime lastUpdatedOn = 0 + uriorcurie modifiedBy = 0 + uriorcurie status = 0 + integer rank = 51 + repeated uriorcurie categories = 0 + repeated string keywords = 0 + } +// an attributed label +message LocalName + { + ncname localNameSource = 0 + string localNameValue = 0 + } +// A query that is used on an enum expression to dynamically obtain a set of permissivle values via a query that matches on properties of the external concepts. +message MatchQuery + { + string identifierPattern = 0 + uriorcurie sourceOntology = 0 + } +// An expression that describes an abstract path from an object to another through a sequence of slot lookups +message PathExpression + { + pathExpression followedBy = 0 + repeated pathExpression noneOf = 105 + repeated pathExpression anyOf = 101 + repeated pathExpression allOf = 107 + repeated pathExpression exactlyOneOf = 103 + boolean reversed = 0 + slotDefinition traverse = 0 + anonymousClassExpression rangeExpression = 0 + repeated extension extensions = 0 + repeated annotation annotations = 0 + string description = 5 + repeated altDescription altDescriptions = 0 + string title = 3 + string deprecated = 0 + repeated string todos = 0 + repeated string notes = 0 + repeated string comments = 0 + repeated example examples = 0 + repeated subsetDefinition inSubset = 0 + uri fromSchema = 0 + string importedFrom = 0 + uriorcurie source = 0 + string inLanguage = 0 + repeated uriorcurie seeAlso = 0 + uriorcurie deprecatedElementHasExactReplacement = 0 + uriorcurie deprecatedElementHasPossibleReplacement = 0 + repeated string aliases = 0 + repeated structuredAlias structuredAliases = 0 + repeated uriorcurie mappings = 0 + repeated uriorcurie exactMappings = 0 + repeated uriorcurie closeMappings = 0 + repeated uriorcurie relatedMappings = 0 + repeated uriorcurie narrowMappings = 0 + repeated uriorcurie broadMappings = 0 + uriorcurie createdBy = 0 + repeated uriorcurie contributors = 0 + datetime createdOn = 0 + datetime lastUpdatedOn = 0 + uriorcurie modifiedBy = 0 + uriorcurie status = 0 + integer rank = 51 + repeated uriorcurie categories = 0 + repeated string keywords = 0 + } +// a regular expression pattern used to evaluate conformance of a string +message PatternExpression + { + string syntax = 0 + boolean interpolated = 0 + boolean partialMatch = 0 + repeated extension extensions = 0 + repeated annotation annotations = 0 + string description = 5 + repeated altDescription altDescriptions = 0 + string title = 3 + string deprecated = 0 + repeated string todos = 0 + repeated string notes = 0 + repeated string comments = 0 + repeated example examples = 0 + repeated subsetDefinition inSubset = 0 + uri fromSchema = 0 + string importedFrom = 0 + uriorcurie source = 0 + string inLanguage = 0 + repeated uriorcurie seeAlso = 0 + uriorcurie deprecatedElementHasExactReplacement = 0 + uriorcurie deprecatedElementHasPossibleReplacement = 0 + repeated string aliases = 0 + repeated structuredAlias structuredAliases = 0 + repeated uriorcurie mappings = 0 + repeated uriorcurie exactMappings = 0 + repeated uriorcurie closeMappings = 0 + repeated uriorcurie relatedMappings = 0 + repeated uriorcurie narrowMappings = 0 + repeated uriorcurie broadMappings = 0 + uriorcurie createdBy = 0 + repeated uriorcurie contributors = 0 + datetime createdOn = 0 + datetime lastUpdatedOn = 0 + uriorcurie modifiedBy = 0 + uriorcurie status = 0 + integer rank = 51 + repeated uriorcurie categories = 0 + repeated string keywords = 0 + } +// a permissible value, accompanied by intended text and an optional mapping to a concept URI +message PermissibleValue + { + string text = 21 + string description = 5 + uriorcurie meaning = 23 + unitOfMeasure unit = 0 + permissibleValue isA = 11 + repeated permissibleValue mixins = 13 + repeated extension extensions = 0 + repeated annotation annotations = 0 + repeated altDescription altDescriptions = 0 + string title = 3 + string deprecated = 0 + repeated string todos = 0 + repeated string notes = 0 + repeated string comments = 0 + repeated example examples = 0 + repeated subsetDefinition inSubset = 0 + uri fromSchema = 0 + string importedFrom = 0 + uriorcurie source = 0 + string inLanguage = 0 + repeated uriorcurie seeAlso = 0 + uriorcurie deprecatedElementHasExactReplacement = 0 + uriorcurie deprecatedElementHasPossibleReplacement = 0 + repeated string aliases = 0 + repeated structuredAlias structuredAliases = 0 + repeated uriorcurie mappings = 0 + repeated uriorcurie exactMappings = 0 + repeated uriorcurie closeMappings = 0 + repeated uriorcurie relatedMappings = 0 + repeated uriorcurie narrowMappings = 0 + repeated uriorcurie broadMappings = 0 + uriorcurie createdBy = 0 + repeated uriorcurie contributors = 0 + datetime createdOn = 0 + datetime lastUpdatedOn = 0 + uriorcurie modifiedBy = 0 + uriorcurie status = 0 + integer rank = 51 + repeated uriorcurie categories = 0 + repeated string keywords = 0 + } +// prefix URI tuple +message Prefix + { + ncname prefixPrefix = 1 + uri prefixReference = 2 + } +// A query that is used on an enum expression to dynamically obtain a set of permissible values via walking from a set of source nodes to a set of descendants or ancestors over a set of relationship types. +message ReachabilityQuery + { + uriorcurie sourceOntology = 0 + repeated uriorcurie sourceNodes = 0 + repeated uriorcurie relationshipTypes = 0 + boolean isDirect = 0 + boolean includeSelf = 0 + boolean traverseUp = 0 + } +// A collection of definitions that make up a schema or a data model. +message SchemaDefinition + { + repeated ncname idPrefixes = 0 + uriorcurie definitionUri = 0 + repeated localName localNames = 0 + string conformsTo = 0 + repeated uriorcurie implements = 0 + repeated uriorcurie instantiates = 0 + repeated extension extensions = 0 + repeated annotation annotations = 0 + string description = 5 + repeated altDescription altDescriptions = 0 + string title = 3 + string deprecated = 0 + repeated string todos = 0 + repeated string notes = 0 + repeated string comments = 0 + repeated example examples = 0 + repeated subsetDefinition inSubset = 0 + uri fromSchema = 0 + string importedFrom = 0 + uriorcurie source = 0 + string inLanguage = 0 + repeated uriorcurie seeAlso = 0 + uriorcurie deprecatedElementHasExactReplacement = 0 + uriorcurie deprecatedElementHasPossibleReplacement = 0 + repeated string aliases = 0 + repeated structuredAlias structuredAliases = 0 + repeated uriorcurie mappings = 0 + repeated uriorcurie exactMappings = 0 + repeated uriorcurie closeMappings = 0 + repeated uriorcurie relatedMappings = 0 + repeated uriorcurie narrowMappings = 0 + repeated uriorcurie broadMappings = 0 + uriorcurie createdBy = 0 + repeated uriorcurie contributors = 0 + datetime createdOn = 0 + datetime lastUpdatedOn = 0 + uriorcurie modifiedBy = 0 + uriorcurie status = 0 + integer rank = 51 + repeated uriorcurie categories = 0 + repeated string keywords = 0 + uri id = 0 + string version = 0 + repeated uriorcurie imports = 21 + string license = 31 + repeated prefix prefixes = 10 + repeated ncname emitPrefixes = 0 + repeated string defaultCuriMaps = 0 + string defaultPrefix = 11 + typeDefinition defaultRange = 13 + repeated subsetDefinition subsets = 8 + repeated typeDefinition types = 6 + repeated enumDefinition enums = 5 + repeated slotDefinition slots = 4 + repeated classDefinition classes = 3 + string metamodelVersion = 0 + string sourceFile = 0 + datetime sourceFileDate = 0 + integer sourceFileSize = 0 + datetime generationDate = 0 + boolean slotNamesUnique = 0 + repeated setting settings = 20 + ncname name = 1 + } +// assignment of a key to a value +message Setting + { + ncname settingKey = 0 + string settingValue = 0 + } +// an element that describes how instances are related to other instances +message SlotDefinition + { + string name = 1 + repeated ncname idPrefixes = 0 + uriorcurie definitionUri = 0 + repeated localName localNames = 0 + string conformsTo = 0 + repeated uriorcurie implements = 0 + repeated uriorcurie instantiates = 0 + repeated extension extensions = 0 + repeated annotation annotations = 0 + string description = 5 + repeated altDescription altDescriptions = 0 + string title = 3 + string deprecated = 0 + repeated string todos = 0 + repeated string notes = 0 + repeated string comments = 0 + repeated example examples = 0 + repeated subsetDefinition inSubset = 0 + uri fromSchema = 0 + string importedFrom = 0 + uriorcurie source = 0 + string inLanguage = 0 + repeated uriorcurie seeAlso = 0 + uriorcurie deprecatedElementHasExactReplacement = 0 + uriorcurie deprecatedElementHasPossibleReplacement = 0 + repeated string aliases = 0 + repeated structuredAlias structuredAliases = 0 + repeated uriorcurie mappings = 0 + repeated uriorcurie exactMappings = 0 + repeated uriorcurie closeMappings = 0 + repeated uriorcurie relatedMappings = 0 + repeated uriorcurie narrowMappings = 0 + repeated uriorcurie broadMappings = 0 + uriorcurie createdBy = 0 + repeated uriorcurie contributors = 0 + datetime createdOn = 0 + datetime lastUpdatedOn = 0 + uriorcurie modifiedBy = 0 + uriorcurie status = 0 + integer rank = 51 + repeated uriorcurie categories = 0 + repeated string keywords = 0 + boolean abstract = 0 + boolean mixin = 0 + repeated uriorcurie valuesFrom = 0 + string stringSerialization = 0 + string singularName = 0 + classDefinition domain = 0 + uriorcurie slotUri = 2 + boolean multivalued = 7 + boolean inherited = 0 + string readonly = 0 + string ifabsent = 0 + boolean listElementsUnique = 0 + boolean listElementsOrdered = 0 + boolean shared = 0 + boolean key = 0 + boolean identifier = 5 + boolean designatesType = 0 + string alias = 6 + definition owner = 0 + repeated classDefinition domainOf = 0 + slotDefinition subpropertyOf = 0 + boolean symmetric = 0 + boolean reflexive = 0 + boolean locallyReflexive = 0 + boolean irreflexive = 0 + boolean asymmetric = 0 + boolean transitive = 0 + slotDefinition inverse = 0 + boolean isClassField = 0 + slotDefinition transitiveFormOf = 0 + slotDefinition reflexiveTransitiveFormOf = 0 + string role = 0 + boolean isUsageSlot = 0 + string usageSlotName = 0 + relationalRoleEnum relationalRole = 0 + slotDefinition slotGroup = 0 + boolean isGroupingSlot = 0 + pathExpression pathRule = 0 + repeated slotDefinition disjointWith = 0 + boolean childrenAreMutuallyDisjoint = 0 + repeated slotDefinition unionOf = 0 + slotDefinition isA = 11 + repeated slotDefinition mixins = 13 + repeated slotDefinition applyTo = 0 + element range = 0 + anonymousClassExpression rangeExpression = 0 + enumExpression enumRange = 0 + boolean required = 8 + boolean recommended = 9 + boolean inlined = 25 + boolean inlinedAsList = 27 + integer minimumValue = 0 + integer maximumValue = 0 + string pattern = 35 + patternExpression structuredPattern = 0 + unitOfMeasure unit = 0 + string implicitPrefix = 0 + presenceEnum valuePresence = 0 + string equalsString = 0 + repeated string equalsStringIn = 0 + integer equalsNumber = 0 + string equalsExpression = 0 + integer minimumCardinality = 0 + integer maximumCardinality = 0 + anonymousSlotExpression hasMember = 0 + anonymousSlotExpression allMembers = 0 + repeated anonymousSlotExpression noneOf = 105 + repeated anonymousSlotExpression exactlyOneOf = 103 + repeated anonymousSlotExpression anyOf = 101 + repeated anonymousSlotExpression allOf = 107 + } +// object that contains meta data about a synonym or alias including where it came from (source) and its scope (narrow, broad, etc.) +message StructuredAlias + { + string literalForm = 0 + aliasPredicateEnum predicate = 0 + repeated uriorcurie categories = 0 + repeated extension extensions = 0 + repeated annotation annotations = 0 + string description = 5 + repeated altDescription altDescriptions = 0 + string title = 3 + string deprecated = 0 + repeated string todos = 0 + repeated string notes = 0 + repeated string comments = 0 + repeated example examples = 0 + repeated subsetDefinition inSubset = 0 + uri fromSchema = 0 + string importedFrom = 0 + uriorcurie source = 0 + string inLanguage = 0 + repeated uriorcurie seeAlso = 0 + uriorcurie deprecatedElementHasExactReplacement = 0 + uriorcurie deprecatedElementHasPossibleReplacement = 0 + repeated string aliases = 0 + repeated structuredAlias structuredAliases = 0 + repeated uriorcurie mappings = 0 + repeated uriorcurie exactMappings = 0 + repeated uriorcurie closeMappings = 0 + repeated uriorcurie relatedMappings = 0 + repeated uriorcurie narrowMappings = 0 + repeated uriorcurie broadMappings = 0 + uriorcurie createdBy = 0 + repeated uriorcurie contributors = 0 + datetime createdOn = 0 + datetime lastUpdatedOn = 0 + uriorcurie modifiedBy = 0 + uriorcurie status = 0 + integer rank = 51 + repeated string keywords = 0 + } +// an element that can be used to group other metamodel elements +message SubsetDefinition + { + string name = 1 + repeated ncname idPrefixes = 0 + uriorcurie definitionUri = 0 + repeated localName localNames = 0 + string conformsTo = 0 + repeated uriorcurie implements = 0 + repeated uriorcurie instantiates = 0 + repeated extension extensions = 0 + repeated annotation annotations = 0 + string description = 5 + repeated altDescription altDescriptions = 0 + string title = 3 + string deprecated = 0 + repeated string todos = 0 + repeated string notes = 0 + repeated string comments = 0 + repeated example examples = 0 + repeated subsetDefinition inSubset = 0 + uri fromSchema = 0 + string importedFrom = 0 + uriorcurie source = 0 + string inLanguage = 0 + repeated uriorcurie seeAlso = 0 + uriorcurie deprecatedElementHasExactReplacement = 0 + uriorcurie deprecatedElementHasPossibleReplacement = 0 + repeated string aliases = 0 + repeated structuredAlias structuredAliases = 0 + repeated uriorcurie mappings = 0 + repeated uriorcurie exactMappings = 0 + repeated uriorcurie closeMappings = 0 + repeated uriorcurie relatedMappings = 0 + repeated uriorcurie narrowMappings = 0 + repeated uriorcurie broadMappings = 0 + uriorcurie createdBy = 0 + repeated uriorcurie contributors = 0 + datetime createdOn = 0 + datetime lastUpdatedOn = 0 + uriorcurie modifiedBy = 0 + uriorcurie status = 0 + integer rank = 51 + repeated uriorcurie categories = 0 + repeated string keywords = 0 + } +// an element that whose instances are atomic scalar values that can be mapped to primitive types +message TypeDefinition + { + string name = 1 + repeated ncname idPrefixes = 0 + uriorcurie definitionUri = 0 + repeated localName localNames = 0 + string conformsTo = 0 + repeated uriorcurie implements = 0 + repeated uriorcurie instantiates = 0 + repeated extension extensions = 0 + repeated annotation annotations = 0 + string description = 5 + repeated altDescription altDescriptions = 0 + string title = 3 + string deprecated = 0 + repeated string todos = 0 + repeated string notes = 0 + repeated string comments = 0 + repeated example examples = 0 + repeated subsetDefinition inSubset = 0 + uri fromSchema = 0 + string importedFrom = 0 + uriorcurie source = 0 + string inLanguage = 0 + repeated uriorcurie seeAlso = 0 + uriorcurie deprecatedElementHasExactReplacement = 0 + uriorcurie deprecatedElementHasPossibleReplacement = 0 + repeated string aliases = 0 + repeated structuredAlias structuredAliases = 0 + repeated uriorcurie mappings = 0 + repeated uriorcurie exactMappings = 0 + repeated uriorcurie closeMappings = 0 + repeated uriorcurie relatedMappings = 0 + repeated uriorcurie narrowMappings = 0 + repeated uriorcurie broadMappings = 0 + uriorcurie createdBy = 0 + repeated uriorcurie contributors = 0 + datetime createdOn = 0 + datetime lastUpdatedOn = 0 + uriorcurie modifiedBy = 0 + uriorcurie status = 0 + integer rank = 51 + repeated uriorcurie categories = 0 + repeated string keywords = 0 + typeDefinition typeof = 7 + string base = 8 + uriorcurie uri = 2 + string repr = 10 + repeated typeDefinition unionOf = 0 + string pattern = 35 + patternExpression structuredPattern = 0 + unitOfMeasure unit = 0 + string implicitPrefix = 0 + string equalsString = 0 + repeated string equalsStringIn = 0 + integer equalsNumber = 0 + integer minimumValue = 0 + integer maximumValue = 0 + repeated anonymousTypeExpression noneOf = 105 + repeated anonymousTypeExpression exactlyOneOf = 103 + repeated anonymousTypeExpression anyOf = 101 + repeated anonymousTypeExpression allOf = 107 + } +// a collection of slots whose values uniquely identify an instance of a class +message UniqueKey + { + string uniqueKeyName = 0 + repeated slotDefinition uniqueKeySlots = 0 + boolean considerNullsInequal = 0 + repeated extension extensions = 0 + repeated annotation annotations = 0 + string description = 5 + repeated altDescription altDescriptions = 0 + string title = 3 + string deprecated = 0 + repeated string todos = 0 + repeated string notes = 0 + repeated string comments = 0 + repeated example examples = 0 + repeated subsetDefinition inSubset = 0 + uri fromSchema = 0 + string importedFrom = 0 + uriorcurie source = 0 + string inLanguage = 0 + repeated uriorcurie seeAlso = 0 + uriorcurie deprecatedElementHasExactReplacement = 0 + uriorcurie deprecatedElementHasPossibleReplacement = 0 + repeated string aliases = 0 + repeated structuredAlias structuredAliases = 0 + repeated uriorcurie mappings = 0 + repeated uriorcurie exactMappings = 0 + repeated uriorcurie closeMappings = 0 + repeated uriorcurie relatedMappings = 0 + repeated uriorcurie narrowMappings = 0 + repeated uriorcurie broadMappings = 0 + uriorcurie createdBy = 0 + repeated uriorcurie contributors = 0 + datetime createdOn = 0 + datetime lastUpdatedOn = 0 + uriorcurie modifiedBy = 0 + uriorcurie status = 0 + integer rank = 51 + repeated uriorcurie categories = 0 + repeated string keywords = 0 + } +// A unit of measure, or unit, is a particular quantity value that has been chosen as a scale for measuring other quantities the same kind (more generally of equivalent dimension). +message UnitOfMeasure + { + string symbol = 0 + string abbreviation = 0 + string descriptiveName = 0 + repeated uriorcurie exactMappings = 0 + string ucumCode = 0 + string derivation = 0 + uriorcurie hasQuantityKind = 0 + string iec61360code = 0 + } diff --git a/linkml_runtime/linkml_model/rdf/annotations.model.ttl b/linkml_runtime/linkml_model/rdf/annotations.model.ttl index 74c92716..228b18b3 100644 --- a/linkml_runtime/linkml_model/rdf/annotations.model.ttl +++ b/linkml_runtime/linkml_model/rdf/annotations.model.ttl @@ -214,7 +214,7 @@ linkml:uri "http://www.w3.org/2001/XMLSchema#string" ], [ a linkml:TypeDefinition ; linkml:base "ElementIdentifier" ; - linkml:comments "Used for inheritence and type checking" ; + linkml:comments "Used for inheritance and type checking" ; linkml:definition_uri "https://w3id.org/linkml/Objectidentifier" ; linkml:description "A URI or CURIE that represents an object in the model." ; linkml:from_schema "https://w3id.org/linkml/types" ; diff --git a/linkml_runtime/linkml_model/rdf/annotations.ttl b/linkml_runtime/linkml_model/rdf/annotations.ttl index c775194f..c3dbc015 100644 --- a/linkml_runtime/linkml_model/rdf/annotations.ttl +++ b/linkml_runtime/linkml_model/rdf/annotations.ttl @@ -148,7 +148,7 @@ linkml:uri "http://www.w3.org/2001/XMLSchema#dateTime" ], [ a linkml:TypeDefinition ; linkml:base "ElementIdentifier" ; - linkml:comments "Used for inheritence and type checking" ; + linkml:comments "Used for inheritance and type checking" ; linkml:definition_uri "https://w3id.org/linkml/Objectidentifier" ; linkml:description "A URI or CURIE that represents an object in the model." ; linkml:from_schema "https://w3id.org/linkml/types" ; diff --git a/linkml_runtime/linkml_model/rdf/datasets.model.ttl b/linkml_runtime/linkml_model/rdf/datasets.model.ttl new file mode 100644 index 00000000..766f2709 --- /dev/null +++ b/linkml_runtime/linkml_model/rdf/datasets.model.ttl @@ -0,0 +1,747 @@ +@prefix : . +@prefix dcterms: . +@prefix linkml: . +@prefix xsd: . + +linkml:datasets a linkml:SchemaDefinition ; + dcterms:description "A datamodel for datasets" ; + dcterms:license "https://creativecommons.org/publicdomain/zero/1.0/" ; + dcterms:title "LinkML Datasets Datamodel" ; + linkml:classes [ a linkml:ClassDefinition ; + dcterms:description "Grouping for datasets and data files" ; + linkml:abstract true ; + linkml:class_uri "https://w3id.org/linkml/reportInformation" ; + linkml:close_mappings "schema:CreativeWork" ; + linkml:definition_uri "https://w3id.org/linkml/reportInformation" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:name "Information" ; + linkml:slot_usage [ ] ; + linkml:slots "compression", + "conforms_to", + "conforms_to_class", + "conforms_to_schema", + "created_by", + "created_on", + "description", + "download_url", + "id", + "issued", + "keywords", + "language", + "license", + "page", + "publisher", + "test_roles", + "title", + "version", + "was_derived_from" ], + [ a linkml:ClassDefinition ; + dcterms:description "A collection of data resources" ; + linkml:aliases "data resource collection", + "dataset", + "file collection" ; + linkml:class_uri "http://rdfs.org/ns/void#Dataset" ; + linkml:close_mappings "dcat:Catalog" ; + linkml:definition_uri "https://w3id.org/linkml/reportDataPackage" ; + linkml:exact_mappings "dcat:Dataset" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:is_a "Information" ; + linkml:mappings "void:Dataset" ; + linkml:name "DataPackage" ; + linkml:see_also "https://specs.frictionlessdata.io/data-package" ; + linkml:slot_usage [ ] ; + linkml:slots "compression", + "conforms_to", + "conforms_to_class", + "conforms_to_schema", + "created_by", + "created_on", + "description", + "download_url", + "id", + "issued", + "keywords", + "language", + "license", + "page", + "publisher", + "resources", + "test_roles", + "title", + "version", + "was_derived_from" ], + [ a linkml:ClassDefinition ; + dcterms:description "Additional format information for a file" ; + linkml:attributes [ a linkml:SlotDefinition ; + linkml:name "header" ], + [ a linkml:SlotDefinition ; + linkml:name "delimiter" ], + [ a linkml:SlotDefinition ; + linkml:name "quote_char" ], + [ a linkml:SlotDefinition ; + linkml:name "comment_prefix" ], + [ a linkml:SlotDefinition ; + linkml:name "double_quote" ] ; + linkml:class_uri "https://w3id.org/linkml/reportFormatDialect" ; + linkml:definition_uri "https://w3id.org/linkml/reportFormatDialect" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:name "FormatDialect" ; + linkml:slot_usage [ ] ; + linkml:slots "formatDialect__comment_prefix", + "formatDialect__delimiter", + "formatDialect__double_quote", + "formatDialect__header", + "formatDialect__quote_char" ], + [ a linkml:ClassDefinition ; + dcterms:description "An individual file or table" ; + linkml:class_uri "http://www.w3.org/ns/dcat#Distribution" ; + linkml:definition_uri "https://w3id.org/linkml/reportDataResource" ; + linkml:exact_mappings "schema:DataDownload" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:is_a "Information" ; + linkml:mappings "dcat:Distribution" ; + linkml:name "DataResource" ; + linkml:see_also "https://specs.frictionlessdata.io/data-resource" ; + linkml:slot_usage [ ] ; + linkml:slots "bytes", + "compression", + "conforms_to", + "conforms_to_class", + "conforms_to_schema", + "created_by", + "created_on", + "description", + "dialect", + "download_url", + "encoding", + "format", + "hash", + "id", + "issued", + "keywords", + "language", + "license", + "md5", + "media_type", + "page", + "path", + "publisher", + "sha256", + "test_roles", + "title", + "version", + "was_derived_from" ] ; + linkml:default_curi_maps "semweb_context" ; + linkml:default_prefix "datasets" ; + linkml:default_range "string" ; + linkml:emit_prefixes "linkml", + "owl", + "rdf", + "rdfs", + "xsd" ; + linkml:enums [ linkml:definition_uri "https://w3id.org/linkml/reportFormatEnum" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:name "FormatEnum" ; + linkml:permissible_values [ linkml:meaning "formats:JSON-LD" ; + linkml:text "JSON-LD" ], + [ linkml:meaning "formats:N-Triples" ; + linkml:text "N-Triples" ], + [ linkml:meaning "formats:Turtle" ; + linkml:text "Turtle" ], + [ linkml:meaning "formats:RDF_JSON" ; + linkml:text "RDF/JSON" ], + [ linkml:meaning "formats:RDFa" ; + linkml:text "RDFa" ], + [ linkml:meaning "formats:SPARQL_Results_CSV" ; + linkml:text "SPARQL%20Results%20in%20CSV" ], + [ linkml:meaning "formats:RIF_XML" ; + linkml:text "RIF%20XML%20Syntax" ], + [ linkml:meaning "formats:SPARQL_Results_TSV" ; + linkml:text "SPARQL%20Results%20in%20TSV" ], + [ linkml:meaning "formats:microdata" ; + linkml:text "Microdata" ], + [ linkml:meaning "formats:POWDER-S" ; + linkml:text "POWDER-S" ], + [ linkml:meaning "formats:OWL_Manchester" ; + linkml:text "OWL%20Manchester%20Syntax" ], + [ linkml:meaning "formats:PROV-N" ; + linkml:text "PROV-N" ], + [ linkml:meaning "formats:POWDER" ; + linkml:text "POWDER" ], + [ linkml:meaning "formats:SPARQL_Results_JSON" ; + linkml:text "SPARQL%20Results%20in%20JSON" ], + [ linkml:meaning "formats:N-Quads" ; + linkml:text "N-Quads" ], + [ linkml:meaning "formats:TriG" ; + linkml:text "TriG" ], + [ linkml:meaning "formats:OWL_Functional" ; + linkml:text "OWL%20Functional%20Syntax" ], + [ linkml:meaning "formats:N3" ; + linkml:text "N3" ], + [ linkml:meaning "formats:LD_Patch" ; + linkml:text "LD%20Patch" ], + [ linkml:text "YAML" ], + [ linkml:meaning "formats:OWL_XML" ; + linkml:text "OWL%20XML%20Serialization" ], + [ linkml:text "JSON" ], + [ linkml:meaning "formats:RDF_XML" ; + linkml:text "RDF/XML" ], + [ linkml:meaning "formats:PROV-XML" ; + linkml:text "PROV-XML" ], + [ linkml:meaning "formats:SPARQL_Results_XML" ; + linkml:text "SPARQL%20Results%20in%20XML" ] ], + [ linkml:definition_uri "https://w3id.org/linkml/reportTestRole" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:name "TestRole" ; + linkml:permissible_values [ linkml:text "CounterExample" ], + [ linkml:text "Example" ] ], + [ linkml:definition_uri "https://w3id.org/linkml/reportMediaTypeEnum" ; + linkml:exact_mappings "dcterms:MediaType" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:name "MediaTypeEnum" ; + linkml:permissible_values [ linkml:meaning "mediatypes:application/rdf+xml" ; + linkml:text "rdf-xml" ], + [ linkml:meaning "mediatypes:text/csv" ; + linkml:text "csv" ] ] ; + linkml:generation_date "2022-07-14T00:57:10" ; + linkml:imports "linkml:types" ; + linkml:metamodel_version "1.7.0" ; + linkml:name "datasets" ; + linkml:prefixes [ linkml:prefix_prefix "schema" ; + linkml:prefix_reference "http://schema.org/" ], + [ linkml:prefix_prefix "datasets" ; + linkml:prefix_reference "https://w3id.org/linkml/report" ], + [ linkml:prefix_prefix "void" ; + linkml:prefix_reference "http://rdfs.org/ns/void#" ], + [ linkml:prefix_prefix "csvw" ; + linkml:prefix_reference "http://www.w3.org/ns/csvw#" ], + [ linkml:prefix_prefix "frictionless" ; + linkml:prefix_reference "https://specs.frictionlessdata.io/" ], + [ linkml:prefix_prefix "skos" ; + linkml:prefix_reference "http://www.w3.org/2004/02/skos/core#" ], + [ linkml:prefix_prefix "sh" ; + linkml:prefix_reference "https://w3id.org/shacl/" ], + [ linkml:prefix_prefix "linkml" ; + linkml:prefix_reference "https://w3id.org/linkml/" ], + [ linkml:prefix_prefix "formats" ; + linkml:prefix_reference "http://www.w3.org/ns/formats/" ], + [ linkml:prefix_prefix "dcat" ; + linkml:prefix_reference "http://www.w3.org/ns/dcat#" ], + [ linkml:prefix_prefix "mediatypes" ; + linkml:prefix_reference "https://www.iana.org/assignments/media-types/" ], + [ linkml:prefix_prefix "pav" ; + linkml:prefix_reference "http://purl.org/pav/" ] ; + linkml:see_also "https://specs.frictionlessdata.io/data-resource", + "https://www.w3.org/TR/hcls-dataset/", + "https://www.w3.org/TR/void/" ; + linkml:slots [ a linkml:SlotDefinition ; + dcterms:description "language in which the information is expressed" ; + linkml:definition_uri "https://w3id.org/linkml/reportlanguage" ; + linkml:domain_of "Information" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:name "language" ; + linkml:owner "Information" ; + linkml:range "string" ; + linkml:slot_uri "https://w3id.org/linkml/reportlanguage" ], + [ a linkml:SlotDefinition ; + linkml:definition_uri "https://w3id.org/linkml/reportdialect" ; + linkml:domain_of "DataResource" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:mappings "http://www.w3.org/ns/csvw#dialect" ; + linkml:name "dialect" ; + linkml:owner "DataResource" ; + linkml:range "string" ; + linkml:slot_uri "http://www.w3.org/ns/csvw#dialect" ], + [ a linkml:SlotDefinition ; + linkml:definition_uri "https://w3id.org/linkml/reportbytes" ; + linkml:domain_of "DataResource" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:mappings "http://www.w3.org/ns/dcat#byteSize" ; + linkml:name "bytes" ; + linkml:owner "DataResource" ; + linkml:range "integer" ; + linkml:slot_uri "http://www.w3.org/ns/dcat#byteSize" ], + [ a linkml:SlotDefinition ; + linkml:definition_uri "https://w3id.org/linkml/reportresources" ; + linkml:domain_of "DataPackage" ; + linkml:exact_mappings "http://schema.org/distribution" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:mappings "http://www.w3.org/ns/dcat#distribution" ; + linkml:multivalued true ; + linkml:name "resources" ; + linkml:owner "DataPackage" ; + linkml:range "DataResource" ; + linkml:slot_uri "http://www.w3.org/ns/dcat#distribution" ], + [ a linkml:SlotDefinition ; + dcterms:description "particular version of schema" ; + linkml:definition_uri "https://w3id.org/linkml/reportversion" ; + linkml:domain_of "Information" ; + linkml:exact_mappings "http://purl.org/dc/terms/hasVersion", + "http://schema.org/version" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:mappings "http://purl.org/pav/version" ; + linkml:name "version" ; + linkml:owner "Information" ; + linkml:range "string" ; + linkml:slot_uri "http://purl.org/pav/version" ], + [ a linkml:SlotDefinition ; + linkml:alias "quote_char" ; + linkml:domain_of "FormatDialect" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:name "formatDialect__quote_char" ; + linkml:owner "FormatDialect" ; + linkml:range "string" ; + linkml:slot_uri "https://w3id.org/linkml/reportquote_char" ], + [ a linkml:SlotDefinition ; + linkml:alias "comment_prefix" ; + linkml:domain_of "FormatDialect" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:name "formatDialect__comment_prefix" ; + linkml:owner "FormatDialect" ; + linkml:range "string" ; + linkml:slot_uri "https://w3id.org/linkml/reportcomment_prefix" ], + [ a linkml:SlotDefinition ; + linkml:definition_uri "https://w3id.org/linkml/reportpublisher" ; + linkml:domain_of "Information" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:mappings "http://purl.org/dc/terms/publisher" ; + linkml:name "publisher" ; + linkml:owner "Information" ; + linkml:range "uriorcurie" ; + linkml:slot_uri "http://purl.org/dc/terms/publisher" ], + [ a linkml:SlotDefinition ; + dcterms:description "human readable description of the information" ; + linkml:definition_uri "https://w3id.org/linkml/reportdescription" ; + linkml:domain_of "DataResource", + "Information" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:mappings "http://purl.org/dc/terms/description" ; + linkml:name "description" ; + linkml:owner "DataResource" ; + linkml:range "string" ; + linkml:slot_uri "http://purl.org/dc/terms/description" ], + [ a linkml:SlotDefinition ; + dcterms:description "agent that created the element" ; + linkml:definition_uri "https://w3id.org/linkml/reportcreated_by" ; + linkml:domain_of "Information" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:mappings "http://purl.org/pav/createdBy" ; + linkml:name "created_by" ; + linkml:owner "Information" ; + linkml:range "uriorcurie" ; + linkml:slot_uri "http://purl.org/pav/createdBy" ], + [ a linkml:SlotDefinition ; + linkml:definition_uri "https://w3id.org/linkml/reportformat" ; + linkml:domain_of "DataResource" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:mappings "http://purl.org/dc/terms/format" ; + linkml:name "format" ; + linkml:owner "DataResource" ; + linkml:range "FormatEnum" ; + linkml:slot_uri "http://purl.org/dc/terms/format" ], + [ a linkml:SlotDefinition ; + linkml:alias "header" ; + linkml:domain_of "FormatDialect" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:name "formatDialect__header" ; + linkml:owner "FormatDialect" ; + linkml:range "string" ; + linkml:slot_uri "https://w3id.org/linkml/reportheader" ], + [ a linkml:SlotDefinition ; + linkml:definition_uri "https://w3id.org/linkml/reportprofile" ; + linkml:exact_mappings "https://specs.frictionlessdata.io/profiles" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:name "profile" ; + linkml:range "uriorcurie" ; + linkml:slot_uri "https://w3id.org/linkml/reportprofile" ], + [ a linkml:SlotDefinition ; + linkml:definition_uri "https://w3id.org/linkml/reportcompression" ; + linkml:domain_of "Information" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:name "compression" ; + linkml:owner "Information" ; + linkml:range "string" ; + linkml:slot_uri "https://w3id.org/linkml/reportcompression" ], + [ a linkml:SlotDefinition ; + linkml:definition_uri "https://w3id.org/linkml/reportsha256" ; + linkml:domain_of "DataResource" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:is_a "hash" ; + linkml:name "sha256" ; + linkml:owner "DataResource" ; + linkml:range "string" ; + linkml:slot_uri "https://w3id.org/linkml/reportsha256" ], + [ a linkml:SlotDefinition ; + linkml:definition_uri "https://w3id.org/linkml/reporttest_roles" ; + linkml:domain_of "Information" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:multivalued true ; + linkml:name "test_roles" ; + linkml:owner "Information" ; + linkml:range "TestRole" ; + linkml:slot_uri "https://w3id.org/linkml/reporttest_roles" ], + [ a linkml:SlotDefinition ; + linkml:definition_uri "https://w3id.org/linkml/reportthemes" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:mappings "http://www.w3.org/ns/dcat#theme" ; + linkml:multivalued true ; + linkml:name "themes" ; + linkml:range "uriorcurie" ; + linkml:singular_name "theme" ; + linkml:slot_uri "http://www.w3.org/ns/dcat#theme" ], + [ a linkml:SlotDefinition ; + dcterms:description "agent that modified the element" ; + linkml:definition_uri "https://w3id.org/linkml/reportmodified_by" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:mappings "http://example.org/UNKNOWN/oslc/modifiedBy" ; + linkml:name "modified_by" ; + linkml:range "uriorcurie" ; + linkml:slot_uri "http://example.org/UNKNOWN/oslc/modifiedBy" ], + [ a linkml:SlotDefinition ; + linkml:alias "double_quote" ; + linkml:domain_of "FormatDialect" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:name "formatDialect__double_quote" ; + linkml:owner "FormatDialect" ; + linkml:range "string" ; + linkml:slot_uri "https://w3id.org/linkml/reportdouble_quote" ], + [ a linkml:SlotDefinition ; + linkml:definition_uri "https://w3id.org/linkml/reportmedia_type" ; + linkml:domain_of "DataResource" ; + linkml:exact_mappings "http://schema.org/encodingFormat", + "https://specs.frictionlessdata.io/mediatype" ; + linkml:examples [ a linkml:Example ; + linkml:value "application/json" ], + [ a linkml:Example ; + linkml:value "text/csv" ] ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:mappings "http://www.w3.org/ns/dcat#mediaType" ; + linkml:name "media_type" ; + linkml:owner "DataResource" ; + linkml:range "string" ; + linkml:slot_uri "http://www.w3.org/ns/dcat#mediaType" ], + [ a linkml:SlotDefinition ; + linkml:definition_uri "https://w3id.org/linkml/reportencoding" ; + linkml:domain_of "DataResource" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:name "encoding" ; + linkml:owner "DataResource" ; + linkml:range "string" ; + linkml:slot_uri "https://w3id.org/linkml/reportencoding" ], + [ a linkml:SlotDefinition ; + dcterms:description "A derivation is a transformation of an entity into another, an update of an entity resulting in a new one, or the construction of a new entity based on a pre-existing entity.@en" ; + linkml:definition_uri "https://w3id.org/linkml/reportwas_derived_from" ; + linkml:domain_of "Information" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:mappings "http://www.w3.org/ns/prov#wasDerivedFrom" ; + linkml:name "was_derived_from" ; + linkml:owner "Information" ; + linkml:range "string" ; + linkml:slot_uri "http://www.w3.org/ns/prov#wasDerivedFrom" ], + [ a linkml:SlotDefinition ; + linkml:definition_uri "https://w3id.org/linkml/reporthash" ; + linkml:domain_of "DataResource" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:name "hash" ; + linkml:notes "we recommend using a more specific slot such as sha256 or md5" ; + linkml:owner "DataResource" ; + linkml:range "string" ; + linkml:slot_uri "https://w3id.org/linkml/reporthash" ], + [ a linkml:SlotDefinition ; + dcterms:description "time at which the element was created" ; + linkml:definition_uri "https://w3id.org/linkml/reportcreated_on" ; + linkml:domain_of "Information" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:mappings "http://purl.org/pav/createdOn" ; + linkml:name "created_on" ; + linkml:owner "Information" ; + linkml:range "datetime" ; + linkml:slot_uri "http://purl.org/pav/createdOn" ], + [ a linkml:SlotDefinition ; + linkml:definition_uri "https://w3id.org/linkml/reportkeywords" ; + linkml:domain_of "Information" ; + linkml:exact_mappings "http://schema.org/keywords" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:mappings "http://www.w3.org/ns/dcat#keyword" ; + linkml:multivalued true ; + linkml:name "keywords" ; + linkml:owner "Information" ; + linkml:range "string" ; + linkml:singular_name "keyword" ; + linkml:slot_uri "http://www.w3.org/ns/dcat#keyword" ], + [ a linkml:SlotDefinition ; + linkml:definition_uri "https://w3id.org/linkml/reportpage" ; + linkml:domain_of "Information" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:mappings "http://www.w3.org/ns/dcat#landingPage" ; + linkml:name "page" ; + linkml:owner "Information" ; + linkml:range "string" ; + linkml:slot_uri "http://www.w3.org/ns/dcat#landingPage" ], + [ a linkml:SlotDefinition ; + dcterms:description "the official title of the element" ; + linkml:definition_uri "https://w3id.org/linkml/reporttitle" ; + linkml:domain_of "DataResource", + "Information" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:mappings "http://purl.org/dc/terms/title" ; + linkml:name "title" ; + linkml:owner "DataResource" ; + linkml:range "string" ; + linkml:slot_uri "http://purl.org/dc/terms/title" ], + [ a linkml:SlotDefinition ; + linkml:close_mappings "https://specs.frictionlessdata.io/path" ; + linkml:definition_uri "https://w3id.org/linkml/reportpath" ; + linkml:domain_of "DataResource" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:name "path" ; + linkml:owner "DataResource" ; + linkml:range "string" ; + linkml:slot_uri "https://w3id.org/linkml/reportpath" ], + [ a linkml:SlotDefinition ; + linkml:definition_uri "https://w3id.org/linkml/reportissued" ; + linkml:domain_of "Information" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:mappings "http://purl.org/dc/terms/issued" ; + linkml:name "issued" ; + linkml:owner "Information" ; + linkml:range "datetime" ; + linkml:slot_uri "http://purl.org/dc/terms/issued" ], + [ a linkml:SlotDefinition ; + linkml:definition_uri "https://w3id.org/linkml/reportconforms_to_schema" ; + linkml:domain_of "Information" ; + linkml:exact_mappings "https://specs.frictionlessdata.io/schema" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:is_a "conforms_to" ; + linkml:name "conforms_to_schema" ; + linkml:owner "Information" ; + linkml:range "uriorcurie" ; + linkml:slot_uri "https://w3id.org/linkml/reportconforms_to_schema" ], + [ a linkml:SlotDefinition ; + dcterms:description "time at which the element was last updated" ; + linkml:definition_uri "https://w3id.org/linkml/reportlast_updated_on" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:mappings "http://purl.org/pav/lastUpdatedOn" ; + linkml:name "last_updated_on" ; + linkml:range "datetime" ; + linkml:slot_uri "http://purl.org/pav/lastUpdatedOn" ], + [ a linkml:SlotDefinition ; + linkml:definition_uri "https://w3id.org/linkml/reportmd5" ; + linkml:domain_of "DataResource" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:is_a "hash" ; + linkml:name "md5" ; + linkml:owner "DataResource" ; + linkml:range "string" ; + linkml:slot_uri "https://w3id.org/linkml/reportmd5" ], + [ a linkml:SlotDefinition ; + linkml:close_mappings "https://specs.frictionlessdata.io/path" ; + linkml:definition_uri "https://w3id.org/linkml/reportdownload_url" ; + linkml:domain_of "Information" ; + linkml:exact_mappings "http://schema.org/url" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:mappings "http://www.w3.org/ns/dcat#downloadURL" ; + linkml:name "download_url" ; + linkml:owner "Information" ; + linkml:range "uri" ; + linkml:slot_uri "http://www.w3.org/ns/dcat#downloadURL" ], + [ a linkml:SlotDefinition ; + dcterms:description "status of the element" ; + linkml:definition_uri "https://w3id.org/linkml/reportstatus" ; + linkml:examples [ a linkml:Example ; + linkml:value "bibo:draft" ] ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:mappings "http://example.org/UNKNOWN/bibo/status" ; + linkml:name "status" ; + linkml:range "uriorcurie" ; + linkml:slot_uri "http://example.org/UNKNOWN/bibo/status" ], + [ a linkml:SlotDefinition ; + linkml:definition_uri "https://w3id.org/linkml/reportconforms_to" ; + linkml:domain_of "Information" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:mappings "http://purl.org/dc/terms/conformsTo" ; + linkml:name "conforms_to" ; + linkml:owner "Information" ; + linkml:range "uriorcurie" ; + linkml:slot_uri "http://purl.org/dc/terms/conformsTo" ], + [ a linkml:SlotDefinition ; + linkml:alias "delimiter" ; + linkml:domain_of "FormatDialect" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:name "formatDialect__delimiter" ; + linkml:owner "FormatDialect" ; + linkml:range "string" ; + linkml:slot_uri "https://w3id.org/linkml/reportdelimiter" ], + [ a linkml:SlotDefinition ; + dcterms:description "class in schema which the data object instantiates" ; + linkml:definition_uri "https://w3id.org/linkml/reportconforms_to_class" ; + linkml:domain_of "Information" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:is_a "conforms_to" ; + linkml:name "conforms_to_class" ; + linkml:owner "Information" ; + linkml:range "uriorcurie" ; + linkml:slot_uri "https://w3id.org/linkml/reportconforms_to_class" ], + [ a linkml:SlotDefinition ; + dcterms:description "the unique name of th dataset" ; + linkml:definition_uri "https://w3id.org/linkml/reportid" ; + linkml:domain_of "Information" ; + linkml:exact_mappings "http://schema.org/name" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:identifier true ; + linkml:mappings "http://purl.org/dc/terms/identifier" ; + linkml:name "id" ; + linkml:owner "Information" ; + linkml:range "string" ; + linkml:required true ; + linkml:slot_uri "http://purl.org/dc/terms/identifier" ], + [ a linkml:SlotDefinition ; + dcterms:description "license for the data" ; + linkml:definition_uri "https://w3id.org/linkml/reportlicense" ; + linkml:domain_of "Information" ; + linkml:exact_mappings "https://specs.frictionlessdata.io/licenses" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:mappings "http://purl.org/dc/terms/license" ; + linkml:name "license" ; + linkml:owner "Information" ; + linkml:range "string" ; + linkml:slot_uri "http://purl.org/dc/terms/license" ] ; + linkml:source_file "datasets.yaml" ; + linkml:source_file_date "2022-07-14T00:55:10" ; + linkml:source_file_size 7804 ; + linkml:types [ a linkml:TypeDefinition ; + dcterms:description "a complete URI" ; + linkml:base "URI" ; + linkml:definition_uri "https://w3id.org/linkml/Uri" ; + linkml:from_schema "https://w3id.org/linkml/types" ; + linkml:imported_from "linkml:types" ; + linkml:name "uri" ; + linkml:repr "str" ; + linkml:uri "http://www.w3.org/2001/XMLSchema#anyURI" ], + [ a linkml:TypeDefinition ; + dcterms:description "A real number that conforms to the xsd:float specification" ; + linkml:base "float" ; + linkml:definition_uri "https://w3id.org/linkml/Float" ; + linkml:from_schema "https://w3id.org/linkml/types" ; + linkml:imported_from "linkml:types" ; + linkml:name "float" ; + linkml:uri "http://www.w3.org/2001/XMLSchema#float" ], + [ a linkml:TypeDefinition ; + dcterms:description "A time object represents a (local) time of day, independent of any particular day" ; + linkml:base "XSDTime" ; + linkml:definition_uri "https://w3id.org/linkml/Time" ; + linkml:from_schema "https://w3id.org/linkml/types" ; + linkml:imported_from "linkml:types" ; + linkml:name "time" ; + linkml:notes "URI is dateTime because OWL reasoners don't work with straight date or time" ; + linkml:repr "str" ; + linkml:uri "http://www.w3.org/2001/XMLSchema#dateTime" ], + [ a linkml:TypeDefinition ; + dcterms:description "A real number that conforms to the xsd:double specification" ; + linkml:base "float" ; + linkml:definition_uri "https://w3id.org/linkml/Double" ; + linkml:from_schema "https://w3id.org/linkml/types" ; + linkml:imported_from "linkml:types" ; + linkml:name "double" ; + linkml:uri "http://www.w3.org/2001/XMLSchema#double" ], + [ a linkml:TypeDefinition ; + dcterms:description "A URI or CURIE that represents an object in the model." ; + linkml:base "ElementIdentifier" ; + linkml:comments "Used for inheritance and type checking" ; + linkml:definition_uri "https://w3id.org/linkml/Objectidentifier" ; + linkml:from_schema "https://w3id.org/linkml/types" ; + linkml:imported_from "linkml:types" ; + linkml:name "objectidentifier" ; + linkml:repr "str" ; + linkml:uri "http://www.w3.org/ns/shex#iri" ], + [ a linkml:TypeDefinition ; + dcterms:description "Prefix part of CURIE" ; + linkml:base "NCName" ; + linkml:definition_uri "https://w3id.org/linkml/Ncname" ; + linkml:from_schema "https://w3id.org/linkml/types" ; + linkml:imported_from "linkml:types" ; + linkml:name "ncname" ; + linkml:repr "str" ; + linkml:uri "http://www.w3.org/2001/XMLSchema#string" ], + [ a linkml:TypeDefinition ; + dcterms:description "A URI, CURIE or BNODE that represents a node in a model." ; + linkml:base "NodeIdentifier" ; + linkml:definition_uri "https://w3id.org/linkml/Nodeidentifier" ; + linkml:from_schema "https://w3id.org/linkml/types" ; + linkml:imported_from "linkml:types" ; + linkml:name "nodeidentifier" ; + linkml:repr "str" ; + linkml:uri "http://www.w3.org/ns/shex#nonLiteral" ], + [ a linkml:TypeDefinition ; + dcterms:description "A real number with arbitrary precision that conforms to the xsd:decimal specification" ; + linkml:base "Decimal" ; + linkml:definition_uri "https://w3id.org/linkml/Decimal" ; + linkml:from_schema "https://w3id.org/linkml/types" ; + linkml:imported_from "linkml:types" ; + linkml:name "decimal" ; + linkml:uri "http://www.w3.org/2001/XMLSchema#decimal" ], + [ a linkml:TypeDefinition ; + dcterms:description "a URI or a CURIE" ; + linkml:base "URIorCURIE" ; + linkml:definition_uri "https://w3id.org/linkml/Uriorcurie" ; + linkml:from_schema "https://w3id.org/linkml/types" ; + linkml:imported_from "linkml:types" ; + linkml:name "uriorcurie" ; + linkml:repr "str" ; + linkml:uri "http://www.w3.org/2001/XMLSchema#anyURI" ], + [ a linkml:TypeDefinition ; + dcterms:description "Either a date or a datetime" ; + linkml:base "str" ; + linkml:definition_uri "https://w3id.org/linkml/DateOrDatetime" ; + linkml:from_schema "https://w3id.org/linkml/types" ; + linkml:imported_from "linkml:types" ; + linkml:name "date_or_datetime" ; + linkml:repr "str" ; + linkml:uri "https://w3id.org/linkml/DateOrDatetime" ], + [ a linkml:TypeDefinition ; + dcterms:description "An integer" ; + linkml:base "int" ; + linkml:definition_uri "https://w3id.org/linkml/Integer" ; + linkml:from_schema "https://w3id.org/linkml/types" ; + linkml:imported_from "linkml:types" ; + linkml:name "integer" ; + linkml:uri "http://www.w3.org/2001/XMLSchema#integer" ], + [ a linkml:TypeDefinition ; + dcterms:description "A character string" ; + linkml:base "str" ; + linkml:definition_uri "https://w3id.org/linkml/String" ; + linkml:from_schema "https://w3id.org/linkml/types" ; + linkml:imported_from "linkml:types" ; + linkml:name "string" ; + linkml:uri "http://www.w3.org/2001/XMLSchema#string" ], + [ a linkml:TypeDefinition ; + dcterms:description "A binary (true or false) value" ; + linkml:base "Bool" ; + linkml:definition_uri "https://w3id.org/linkml/Boolean" ; + linkml:from_schema "https://w3id.org/linkml/types" ; + linkml:imported_from "linkml:types" ; + linkml:name "boolean" ; + linkml:repr "bool" ; + linkml:uri "http://www.w3.org/2001/XMLSchema#boolean" ], + [ a linkml:TypeDefinition ; + dcterms:description "The combination of a date and time" ; + linkml:base "XSDDateTime" ; + linkml:definition_uri "https://w3id.org/linkml/Datetime" ; + linkml:from_schema "https://w3id.org/linkml/types" ; + linkml:imported_from "linkml:types" ; + linkml:name "datetime" ; + linkml:repr "str" ; + linkml:uri "http://www.w3.org/2001/XMLSchema#dateTime" ], + [ a linkml:TypeDefinition ; + dcterms:description "a date (year, month and day) in an idealized calendar" ; + linkml:base "XSDDate" ; + linkml:definition_uri "https://w3id.org/linkml/Date" ; + linkml:from_schema "https://w3id.org/linkml/types" ; + linkml:imported_from "linkml:types" ; + linkml:name "date" ; + linkml:notes "URI is dateTime because OWL reasoners don't work with straight date or time" ; + linkml:repr "str" ; + linkml:uri "http://www.w3.org/2001/XMLSchema#date" ] . + + + diff --git a/linkml_runtime/linkml_model/rdf/datasets.ttl b/linkml_runtime/linkml_model/rdf/datasets.ttl new file mode 100644 index 00000000..c470783d --- /dev/null +++ b/linkml_runtime/linkml_model/rdf/datasets.ttl @@ -0,0 +1,747 @@ +@prefix : . +@prefix dcterms: . +@prefix linkml: . +@prefix xsd: . + +linkml:datasets a linkml:SchemaDefinition ; + dcterms:description "A datamodel for datasets" ; + dcterms:license "https://creativecommons.org/publicdomain/zero/1.0/" ; + dcterms:title "LinkML Datasets Datamodel" ; + linkml:classes [ a linkml:ClassDefinition ; + dcterms:description "A collection of data resources" ; + linkml:aliases "data resource collection", + "dataset", + "file collection" ; + linkml:class_uri "http://rdfs.org/ns/void#Dataset" ; + linkml:close_mappings "dcat:Catalog" ; + linkml:definition_uri "https://w3id.org/linkml/reportDataPackage" ; + linkml:exact_mappings "dcat:Dataset" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:is_a "Information" ; + linkml:mappings "void:Dataset" ; + linkml:name "DataPackage" ; + linkml:see_also "https://specs.frictionlessdata.io/data-package" ; + linkml:slot_usage [ ] ; + linkml:slots "compression", + "conforms_to", + "conforms_to_class", + "conforms_to_schema", + "created_by", + "created_on", + "description", + "download_url", + "id", + "issued", + "keywords", + "language", + "license", + "page", + "publisher", + "resources", + "test_roles", + "title", + "version", + "was_derived_from" ], + [ a linkml:ClassDefinition ; + dcterms:description "Additional format information for a file" ; + linkml:attributes [ a linkml:SlotDefinition ; + linkml:name "quote_char" ], + [ a linkml:SlotDefinition ; + linkml:name "delimiter" ], + [ a linkml:SlotDefinition ; + linkml:name "comment_prefix" ], + [ a linkml:SlotDefinition ; + linkml:name "header" ], + [ a linkml:SlotDefinition ; + linkml:name "double_quote" ] ; + linkml:class_uri "https://w3id.org/linkml/reportFormatDialect" ; + linkml:definition_uri "https://w3id.org/linkml/reportFormatDialect" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:name "FormatDialect" ; + linkml:slot_usage [ ] ; + linkml:slots "formatDialect__comment_prefix", + "formatDialect__delimiter", + "formatDialect__double_quote", + "formatDialect__header", + "formatDialect__quote_char" ], + [ a linkml:ClassDefinition ; + dcterms:description "Grouping for datasets and data files" ; + linkml:abstract true ; + linkml:class_uri "https://w3id.org/linkml/reportInformation" ; + linkml:close_mappings "schema:CreativeWork" ; + linkml:definition_uri "https://w3id.org/linkml/reportInformation" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:name "Information" ; + linkml:slot_usage [ ] ; + linkml:slots "compression", + "conforms_to", + "conforms_to_class", + "conforms_to_schema", + "created_by", + "created_on", + "description", + "download_url", + "id", + "issued", + "keywords", + "language", + "license", + "page", + "publisher", + "test_roles", + "title", + "version", + "was_derived_from" ], + [ a linkml:ClassDefinition ; + dcterms:description "An individual file or table" ; + linkml:class_uri "http://www.w3.org/ns/dcat#Distribution" ; + linkml:definition_uri "https://w3id.org/linkml/reportDataResource" ; + linkml:exact_mappings "schema:DataDownload" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:is_a "Information" ; + linkml:mappings "dcat:Distribution" ; + linkml:name "DataResource" ; + linkml:see_also "https://specs.frictionlessdata.io/data-resource" ; + linkml:slot_usage [ ] ; + linkml:slots "bytes", + "compression", + "conforms_to", + "conforms_to_class", + "conforms_to_schema", + "created_by", + "created_on", + "description", + "dialect", + "download_url", + "encoding", + "format", + "hash", + "id", + "issued", + "keywords", + "language", + "license", + "md5", + "media_type", + "page", + "path", + "publisher", + "sha256", + "test_roles", + "title", + "version", + "was_derived_from" ] ; + linkml:default_curi_maps "semweb_context" ; + linkml:default_prefix "datasets" ; + linkml:default_range "string" ; + linkml:emit_prefixes "linkml", + "owl", + "rdf", + "rdfs", + "xsd" ; + linkml:enums [ linkml:definition_uri "https://w3id.org/linkml/reportFormatEnum" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:name "FormatEnum" ; + linkml:permissible_values [ linkml:meaning "formats:SPARQL_Results_TSV" ; + linkml:text "SPARQL%20Results%20in%20TSV" ], + [ linkml:meaning "formats:microdata" ; + linkml:text "Microdata" ], + [ linkml:text "YAML" ], + [ linkml:meaning "formats:TriG" ; + linkml:text "TriG" ], + [ linkml:meaning "formats:OWL_XML" ; + linkml:text "OWL%20XML%20Serialization" ], + [ linkml:meaning "formats:OWL_Manchester" ; + linkml:text "OWL%20Manchester%20Syntax" ], + [ linkml:meaning "formats:OWL_Functional" ; + linkml:text "OWL%20Functional%20Syntax" ], + [ linkml:meaning "formats:SPARQL_Results_CSV" ; + linkml:text "SPARQL%20Results%20in%20CSV" ], + [ linkml:meaning "formats:POWDER-S" ; + linkml:text "POWDER-S" ], + [ linkml:text "JSON" ], + [ linkml:meaning "formats:RDFa" ; + linkml:text "RDFa" ], + [ linkml:meaning "formats:N-Triples" ; + linkml:text "N-Triples" ], + [ linkml:meaning "formats:RDF_XML" ; + linkml:text "RDF/XML" ], + [ linkml:meaning "formats:LD_Patch" ; + linkml:text "LD%20Patch" ], + [ linkml:meaning "formats:PROV-N" ; + linkml:text "PROV-N" ], + [ linkml:meaning "formats:PROV-XML" ; + linkml:text "PROV-XML" ], + [ linkml:meaning "formats:POWDER" ; + linkml:text "POWDER" ], + [ linkml:meaning "formats:N3" ; + linkml:text "N3" ], + [ linkml:meaning "formats:Turtle" ; + linkml:text "Turtle" ], + [ linkml:meaning "formats:N-Quads" ; + linkml:text "N-Quads" ], + [ linkml:meaning "formats:SPARQL_Results_JSON" ; + linkml:text "SPARQL%20Results%20in%20JSON" ], + [ linkml:meaning "formats:RDF_JSON" ; + linkml:text "RDF/JSON" ], + [ linkml:meaning "formats:JSON-LD" ; + linkml:text "JSON-LD" ], + [ linkml:meaning "formats:RIF_XML" ; + linkml:text "RIF%20XML%20Syntax" ], + [ linkml:meaning "formats:SPARQL_Results_XML" ; + linkml:text "SPARQL%20Results%20in%20XML" ] ], + [ linkml:definition_uri "https://w3id.org/linkml/reportTestRole" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:name "TestRole" ; + linkml:permissible_values [ linkml:text "CounterExample" ], + [ linkml:text "Example" ] ], + [ linkml:definition_uri "https://w3id.org/linkml/reportMediaTypeEnum" ; + linkml:exact_mappings "dcterms:MediaType" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:name "MediaTypeEnum" ; + linkml:permissible_values [ linkml:meaning "mediatypes:application/rdf+xml" ; + linkml:text "rdf-xml" ], + [ linkml:meaning "mediatypes:text/csv" ; + linkml:text "csv" ] ] ; + linkml:generation_date "2022-07-14T00:56:56" ; + linkml:imports "linkml:types" ; + linkml:metamodel_version "1.7.0" ; + linkml:name "datasets" ; + linkml:prefixes [ linkml:prefix_prefix "formats" ; + linkml:prefix_reference "http://www.w3.org/ns/formats/" ], + [ linkml:prefix_prefix "dcat" ; + linkml:prefix_reference "http://www.w3.org/ns/dcat#" ], + [ linkml:prefix_prefix "mediatypes" ; + linkml:prefix_reference "https://www.iana.org/assignments/media-types/" ], + [ linkml:prefix_prefix "linkml" ; + linkml:prefix_reference "https://w3id.org/linkml/" ], + [ linkml:prefix_prefix "frictionless" ; + linkml:prefix_reference "https://specs.frictionlessdata.io/" ], + [ linkml:prefix_prefix "sh" ; + linkml:prefix_reference "https://w3id.org/shacl/" ], + [ linkml:prefix_prefix "csvw" ; + linkml:prefix_reference "http://www.w3.org/ns/csvw#" ], + [ linkml:prefix_prefix "pav" ; + linkml:prefix_reference "http://purl.org/pav/" ], + [ linkml:prefix_prefix "void" ; + linkml:prefix_reference "http://rdfs.org/ns/void#" ], + [ linkml:prefix_prefix "skos" ; + linkml:prefix_reference "http://www.w3.org/2004/02/skos/core#" ], + [ linkml:prefix_prefix "datasets" ; + linkml:prefix_reference "https://w3id.org/linkml/report" ], + [ linkml:prefix_prefix "schema" ; + linkml:prefix_reference "http://schema.org/" ] ; + linkml:see_also "https://specs.frictionlessdata.io/data-resource", + "https://www.w3.org/TR/hcls-dataset/", + "https://www.w3.org/TR/void/" ; + linkml:slots [ a linkml:SlotDefinition ; + linkml:definition_uri "https://w3id.org/linkml/reportconforms_to_schema" ; + linkml:domain_of "Information" ; + linkml:exact_mappings "https://specs.frictionlessdata.io/schema" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:is_a "conforms_to" ; + linkml:name "conforms_to_schema" ; + linkml:owner "Information" ; + linkml:range "uriorcurie" ; + linkml:slot_uri "https://w3id.org/linkml/reportconforms_to_schema" ], + [ a linkml:SlotDefinition ; + linkml:definition_uri "https://w3id.org/linkml/reportkeywords" ; + linkml:domain_of "Information" ; + linkml:exact_mappings "http://schema.org/keywords" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:mappings "http://www.w3.org/ns/dcat#keyword" ; + linkml:multivalued true ; + linkml:name "keywords" ; + linkml:owner "Information" ; + linkml:range "string" ; + linkml:singular_name "keyword" ; + linkml:slot_uri "http://www.w3.org/ns/dcat#keyword" ], + [ a linkml:SlotDefinition ; + linkml:definition_uri "https://w3id.org/linkml/reportpublisher" ; + linkml:domain_of "Information" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:mappings "http://purl.org/dc/terms/publisher" ; + linkml:name "publisher" ; + linkml:owner "Information" ; + linkml:range "uriorcurie" ; + linkml:slot_uri "http://purl.org/dc/terms/publisher" ], + [ a linkml:SlotDefinition ; + linkml:alias "double_quote" ; + linkml:domain_of "FormatDialect" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:name "formatDialect__double_quote" ; + linkml:owner "FormatDialect" ; + linkml:range "string" ; + linkml:slot_uri "https://w3id.org/linkml/reportdouble_quote" ], + [ a linkml:SlotDefinition ; + dcterms:description "time at which the element was last updated" ; + linkml:definition_uri "https://w3id.org/linkml/reportlast_updated_on" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:mappings "http://purl.org/pav/lastUpdatedOn" ; + linkml:name "last_updated_on" ; + linkml:range "datetime" ; + linkml:slot_uri "http://purl.org/pav/lastUpdatedOn" ], + [ a linkml:SlotDefinition ; + linkml:definition_uri "https://w3id.org/linkml/reportsha256" ; + linkml:domain_of "DataResource" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:is_a "hash" ; + linkml:name "sha256" ; + linkml:owner "DataResource" ; + linkml:range "string" ; + linkml:slot_uri "https://w3id.org/linkml/reportsha256" ], + [ a linkml:SlotDefinition ; + dcterms:description "status of the element" ; + linkml:definition_uri "https://w3id.org/linkml/reportstatus" ; + linkml:examples [ a linkml:Example ; + linkml:value "bibo:draft" ] ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:mappings "http://example.org/UNKNOWN/bibo/status" ; + linkml:name "status" ; + linkml:range "uriorcurie" ; + linkml:slot_uri "http://example.org/UNKNOWN/bibo/status" ], + [ a linkml:SlotDefinition ; + dcterms:description "time at which the element was created" ; + linkml:definition_uri "https://w3id.org/linkml/reportcreated_on" ; + linkml:domain_of "Information" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:mappings "http://purl.org/pav/createdOn" ; + linkml:name "created_on" ; + linkml:owner "Information" ; + linkml:range "datetime" ; + linkml:slot_uri "http://purl.org/pav/createdOn" ], + [ a linkml:SlotDefinition ; + linkml:definition_uri "https://w3id.org/linkml/reportprofile" ; + linkml:exact_mappings "https://specs.frictionlessdata.io/profiles" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:name "profile" ; + linkml:range "uriorcurie" ; + linkml:slot_uri "https://w3id.org/linkml/reportprofile" ], + [ a linkml:SlotDefinition ; + linkml:close_mappings "https://specs.frictionlessdata.io/path" ; + linkml:definition_uri "https://w3id.org/linkml/reportdownload_url" ; + linkml:domain_of "Information" ; + linkml:exact_mappings "http://schema.org/url" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:mappings "http://www.w3.org/ns/dcat#downloadURL" ; + linkml:name "download_url" ; + linkml:owner "Information" ; + linkml:range "uri" ; + linkml:slot_uri "http://www.w3.org/ns/dcat#downloadURL" ], + [ a linkml:SlotDefinition ; + linkml:definition_uri "https://w3id.org/linkml/reportmd5" ; + linkml:domain_of "DataResource" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:is_a "hash" ; + linkml:name "md5" ; + linkml:owner "DataResource" ; + linkml:range "string" ; + linkml:slot_uri "https://w3id.org/linkml/reportmd5" ], + [ a linkml:SlotDefinition ; + dcterms:description "license for the data" ; + linkml:definition_uri "https://w3id.org/linkml/reportlicense" ; + linkml:domain_of "Information" ; + linkml:exact_mappings "https://specs.frictionlessdata.io/licenses" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:mappings "http://purl.org/dc/terms/license" ; + linkml:name "license" ; + linkml:owner "Information" ; + linkml:range "string" ; + linkml:slot_uri "http://purl.org/dc/terms/license" ], + [ a linkml:SlotDefinition ; + dcterms:description "the official title of the element" ; + linkml:definition_uri "https://w3id.org/linkml/reporttitle" ; + linkml:domain_of "DataResource", + "Information" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:mappings "http://purl.org/dc/terms/title" ; + linkml:name "title" ; + linkml:owner "DataResource" ; + linkml:range "string" ; + linkml:slot_uri "http://purl.org/dc/terms/title" ], + [ a linkml:SlotDefinition ; + linkml:alias "header" ; + linkml:domain_of "FormatDialect" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:name "formatDialect__header" ; + linkml:owner "FormatDialect" ; + linkml:range "string" ; + linkml:slot_uri "https://w3id.org/linkml/reportheader" ], + [ a linkml:SlotDefinition ; + linkml:definition_uri "https://w3id.org/linkml/reporthash" ; + linkml:domain_of "DataResource" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:name "hash" ; + linkml:notes "we recommend using a more specific slot such as sha256 or md5" ; + linkml:owner "DataResource" ; + linkml:range "string" ; + linkml:slot_uri "https://w3id.org/linkml/reporthash" ], + [ a linkml:SlotDefinition ; + dcterms:description "language in which the information is expressed" ; + linkml:definition_uri "https://w3id.org/linkml/reportlanguage" ; + linkml:domain_of "Information" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:name "language" ; + linkml:owner "Information" ; + linkml:range "string" ; + linkml:slot_uri "https://w3id.org/linkml/reportlanguage" ], + [ a linkml:SlotDefinition ; + dcterms:description "human readable description of the information" ; + linkml:definition_uri "https://w3id.org/linkml/reportdescription" ; + linkml:domain_of "DataResource", + "Information" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:mappings "http://purl.org/dc/terms/description" ; + linkml:name "description" ; + linkml:owner "DataResource" ; + linkml:range "string" ; + linkml:slot_uri "http://purl.org/dc/terms/description" ], + [ a linkml:SlotDefinition ; + dcterms:description "the unique name of th dataset" ; + linkml:definition_uri "https://w3id.org/linkml/reportid" ; + linkml:domain_of "Information" ; + linkml:exact_mappings "http://schema.org/name" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:identifier true ; + linkml:mappings "http://purl.org/dc/terms/identifier" ; + linkml:name "id" ; + linkml:owner "Information" ; + linkml:range "string" ; + linkml:required true ; + linkml:slot_uri "http://purl.org/dc/terms/identifier" ], + [ a linkml:SlotDefinition ; + linkml:definition_uri "https://w3id.org/linkml/reportencoding" ; + linkml:domain_of "DataResource" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:name "encoding" ; + linkml:owner "DataResource" ; + linkml:range "string" ; + linkml:slot_uri "https://w3id.org/linkml/reportencoding" ], + [ a linkml:SlotDefinition ; + dcterms:description "A derivation is a transformation of an entity into another, an update of an entity resulting in a new one, or the construction of a new entity based on a pre-existing entity.@en" ; + linkml:definition_uri "https://w3id.org/linkml/reportwas_derived_from" ; + linkml:domain_of "Information" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:mappings "http://www.w3.org/ns/prov#wasDerivedFrom" ; + linkml:name "was_derived_from" ; + linkml:owner "Information" ; + linkml:range "string" ; + linkml:slot_uri "http://www.w3.org/ns/prov#wasDerivedFrom" ], + [ a linkml:SlotDefinition ; + linkml:definition_uri "https://w3id.org/linkml/reportthemes" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:mappings "http://www.w3.org/ns/dcat#theme" ; + linkml:multivalued true ; + linkml:name "themes" ; + linkml:range "uriorcurie" ; + linkml:singular_name "theme" ; + linkml:slot_uri "http://www.w3.org/ns/dcat#theme" ], + [ a linkml:SlotDefinition ; + linkml:definition_uri "https://w3id.org/linkml/reportcompression" ; + linkml:domain_of "Information" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:name "compression" ; + linkml:owner "Information" ; + linkml:range "string" ; + linkml:slot_uri "https://w3id.org/linkml/reportcompression" ], + [ a linkml:SlotDefinition ; + linkml:definition_uri "https://w3id.org/linkml/reportconforms_to" ; + linkml:domain_of "Information" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:mappings "http://purl.org/dc/terms/conformsTo" ; + linkml:name "conforms_to" ; + linkml:owner "Information" ; + linkml:range "uriorcurie" ; + linkml:slot_uri "http://purl.org/dc/terms/conformsTo" ], + [ a linkml:SlotDefinition ; + linkml:definition_uri "https://w3id.org/linkml/reporttest_roles" ; + linkml:domain_of "Information" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:multivalued true ; + linkml:name "test_roles" ; + linkml:owner "Information" ; + linkml:range "TestRole" ; + linkml:slot_uri "https://w3id.org/linkml/reporttest_roles" ], + [ a linkml:SlotDefinition ; + linkml:definition_uri "https://w3id.org/linkml/reportmedia_type" ; + linkml:domain_of "DataResource" ; + linkml:exact_mappings "http://schema.org/encodingFormat", + "https://specs.frictionlessdata.io/mediatype" ; + linkml:examples [ a linkml:Example ; + linkml:value "text/csv" ], + [ a linkml:Example ; + linkml:value "application/json" ] ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:mappings "http://www.w3.org/ns/dcat#mediaType" ; + linkml:name "media_type" ; + linkml:owner "DataResource" ; + linkml:range "string" ; + linkml:slot_uri "http://www.w3.org/ns/dcat#mediaType" ], + [ a linkml:SlotDefinition ; + linkml:definition_uri "https://w3id.org/linkml/reportissued" ; + linkml:domain_of "Information" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:mappings "http://purl.org/dc/terms/issued" ; + linkml:name "issued" ; + linkml:owner "Information" ; + linkml:range "datetime" ; + linkml:slot_uri "http://purl.org/dc/terms/issued" ], + [ a linkml:SlotDefinition ; + dcterms:description "class in schema which the data object instantiates" ; + linkml:definition_uri "https://w3id.org/linkml/reportconforms_to_class" ; + linkml:domain_of "Information" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:is_a "conforms_to" ; + linkml:name "conforms_to_class" ; + linkml:owner "Information" ; + linkml:range "uriorcurie" ; + linkml:slot_uri "https://w3id.org/linkml/reportconforms_to_class" ], + [ a linkml:SlotDefinition ; + linkml:close_mappings "https://specs.frictionlessdata.io/path" ; + linkml:definition_uri "https://w3id.org/linkml/reportpath" ; + linkml:domain_of "DataResource" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:name "path" ; + linkml:owner "DataResource" ; + linkml:range "string" ; + linkml:slot_uri "https://w3id.org/linkml/reportpath" ], + [ a linkml:SlotDefinition ; + linkml:definition_uri "https://w3id.org/linkml/reportpage" ; + linkml:domain_of "Information" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:mappings "http://www.w3.org/ns/dcat#landingPage" ; + linkml:name "page" ; + linkml:owner "Information" ; + linkml:range "string" ; + linkml:slot_uri "http://www.w3.org/ns/dcat#landingPage" ], + [ a linkml:SlotDefinition ; + linkml:alias "delimiter" ; + linkml:domain_of "FormatDialect" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:name "formatDialect__delimiter" ; + linkml:owner "FormatDialect" ; + linkml:range "string" ; + linkml:slot_uri "https://w3id.org/linkml/reportdelimiter" ], + [ a linkml:SlotDefinition ; + linkml:definition_uri "https://w3id.org/linkml/reportdialect" ; + linkml:domain_of "DataResource" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:mappings "http://www.w3.org/ns/csvw#dialect" ; + linkml:name "dialect" ; + linkml:owner "DataResource" ; + linkml:range "string" ; + linkml:slot_uri "http://www.w3.org/ns/csvw#dialect" ], + [ a linkml:SlotDefinition ; + linkml:definition_uri "https://w3id.org/linkml/reportresources" ; + linkml:domain_of "DataPackage" ; + linkml:exact_mappings "http://schema.org/distribution" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:mappings "http://www.w3.org/ns/dcat#distribution" ; + linkml:multivalued true ; + linkml:name "resources" ; + linkml:owner "DataPackage" ; + linkml:range "DataResource" ; + linkml:slot_uri "http://www.w3.org/ns/dcat#distribution" ], + [ a linkml:SlotDefinition ; + linkml:definition_uri "https://w3id.org/linkml/reportbytes" ; + linkml:domain_of "DataResource" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:mappings "http://www.w3.org/ns/dcat#byteSize" ; + linkml:name "bytes" ; + linkml:owner "DataResource" ; + linkml:range "integer" ; + linkml:slot_uri "http://www.w3.org/ns/dcat#byteSize" ], + [ a linkml:SlotDefinition ; + linkml:alias "quote_char" ; + linkml:domain_of "FormatDialect" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:name "formatDialect__quote_char" ; + linkml:owner "FormatDialect" ; + linkml:range "string" ; + linkml:slot_uri "https://w3id.org/linkml/reportquote_char" ], + [ a linkml:SlotDefinition ; + dcterms:description "agent that created the element" ; + linkml:definition_uri "https://w3id.org/linkml/reportcreated_by" ; + linkml:domain_of "Information" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:mappings "http://purl.org/pav/createdBy" ; + linkml:name "created_by" ; + linkml:owner "Information" ; + linkml:range "uriorcurie" ; + linkml:slot_uri "http://purl.org/pav/createdBy" ], + [ a linkml:SlotDefinition ; + linkml:definition_uri "https://w3id.org/linkml/reportformat" ; + linkml:domain_of "DataResource" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:mappings "http://purl.org/dc/terms/format" ; + linkml:name "format" ; + linkml:owner "DataResource" ; + linkml:range "FormatEnum" ; + linkml:slot_uri "http://purl.org/dc/terms/format" ], + [ a linkml:SlotDefinition ; + linkml:alias "comment_prefix" ; + linkml:domain_of "FormatDialect" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:name "formatDialect__comment_prefix" ; + linkml:owner "FormatDialect" ; + linkml:range "string" ; + linkml:slot_uri "https://w3id.org/linkml/reportcomment_prefix" ], + [ a linkml:SlotDefinition ; + dcterms:description "agent that modified the element" ; + linkml:definition_uri "https://w3id.org/linkml/reportmodified_by" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:mappings "http://example.org/UNKNOWN/oslc/modifiedBy" ; + linkml:name "modified_by" ; + linkml:range "uriorcurie" ; + linkml:slot_uri "http://example.org/UNKNOWN/oslc/modifiedBy" ], + [ a linkml:SlotDefinition ; + dcterms:description "particular version of schema" ; + linkml:definition_uri "https://w3id.org/linkml/reportversion" ; + linkml:domain_of "Information" ; + linkml:exact_mappings "http://purl.org/dc/terms/hasVersion", + "http://schema.org/version" ; + linkml:from_schema "https://w3id.org/linkml/datasets" ; + linkml:mappings "http://purl.org/pav/version" ; + linkml:name "version" ; + linkml:owner "Information" ; + linkml:range "string" ; + linkml:slot_uri "http://purl.org/pav/version" ] ; + linkml:source_file "datasets.yaml" ; + linkml:source_file_date "2022-07-14T00:55:10" ; + linkml:source_file_size 7804 ; + linkml:types [ a linkml:TypeDefinition ; + dcterms:description "A URI, CURIE or BNODE that represents a node in a model." ; + linkml:base "NodeIdentifier" ; + linkml:definition_uri "https://w3id.org/linkml/Nodeidentifier" ; + linkml:from_schema "https://w3id.org/linkml/types" ; + linkml:imported_from "linkml:types" ; + linkml:name "nodeidentifier" ; + linkml:repr "str" ; + linkml:uri "http://www.w3.org/ns/shex#nonLiteral" ], + [ a linkml:TypeDefinition ; + dcterms:description "A binary (true or false) value" ; + linkml:base "Bool" ; + linkml:definition_uri "https://w3id.org/linkml/Boolean" ; + linkml:from_schema "https://w3id.org/linkml/types" ; + linkml:imported_from "linkml:types" ; + linkml:name "boolean" ; + linkml:repr "bool" ; + linkml:uri "http://www.w3.org/2001/XMLSchema#boolean" ], + [ a linkml:TypeDefinition ; + dcterms:description "a date (year, month and day) in an idealized calendar" ; + linkml:base "XSDDate" ; + linkml:definition_uri "https://w3id.org/linkml/Date" ; + linkml:from_schema "https://w3id.org/linkml/types" ; + linkml:imported_from "linkml:types" ; + linkml:name "date" ; + linkml:notes "URI is dateTime because OWL reasoners don't work with straight date or time" ; + linkml:repr "str" ; + linkml:uri "http://www.w3.org/2001/XMLSchema#date" ], + [ a linkml:TypeDefinition ; + dcterms:description "a complete URI" ; + linkml:base "URI" ; + linkml:definition_uri "https://w3id.org/linkml/Uri" ; + linkml:from_schema "https://w3id.org/linkml/types" ; + linkml:imported_from "linkml:types" ; + linkml:name "uri" ; + linkml:repr "str" ; + linkml:uri "http://www.w3.org/2001/XMLSchema#anyURI" ], + [ a linkml:TypeDefinition ; + dcterms:description "A real number that conforms to the xsd:double specification" ; + linkml:base "float" ; + linkml:definition_uri "https://w3id.org/linkml/Double" ; + linkml:from_schema "https://w3id.org/linkml/types" ; + linkml:imported_from "linkml:types" ; + linkml:name "double" ; + linkml:uri "http://www.w3.org/2001/XMLSchema#double" ], + [ a linkml:TypeDefinition ; + dcterms:description "Either a date or a datetime" ; + linkml:base "str" ; + linkml:definition_uri "https://w3id.org/linkml/DateOrDatetime" ; + linkml:from_schema "https://w3id.org/linkml/types" ; + linkml:imported_from "linkml:types" ; + linkml:name "date_or_datetime" ; + linkml:repr "str" ; + linkml:uri "https://w3id.org/linkml/DateOrDatetime" ], + [ a linkml:TypeDefinition ; + dcterms:description "A character string" ; + linkml:base "str" ; + linkml:definition_uri "https://w3id.org/linkml/String" ; + linkml:from_schema "https://w3id.org/linkml/types" ; + linkml:imported_from "linkml:types" ; + linkml:name "string" ; + linkml:uri "http://www.w3.org/2001/XMLSchema#string" ], + [ a linkml:TypeDefinition ; + dcterms:description "Prefix part of CURIE" ; + linkml:base "NCName" ; + linkml:definition_uri "https://w3id.org/linkml/Ncname" ; + linkml:from_schema "https://w3id.org/linkml/types" ; + linkml:imported_from "linkml:types" ; + linkml:name "ncname" ; + linkml:repr "str" ; + linkml:uri "http://www.w3.org/2001/XMLSchema#string" ], + [ a linkml:TypeDefinition ; + dcterms:description "A URI or CURIE that represents an object in the model." ; + linkml:base "ElementIdentifier" ; + linkml:comments "Used for inheritance and type checking" ; + linkml:definition_uri "https://w3id.org/linkml/Objectidentifier" ; + linkml:from_schema "https://w3id.org/linkml/types" ; + linkml:imported_from "linkml:types" ; + linkml:name "objectidentifier" ; + linkml:repr "str" ; + linkml:uri "http://www.w3.org/ns/shex#iri" ], + [ a linkml:TypeDefinition ; + dcterms:description "a URI or a CURIE" ; + linkml:base "URIorCURIE" ; + linkml:definition_uri "https://w3id.org/linkml/Uriorcurie" ; + linkml:from_schema "https://w3id.org/linkml/types" ; + linkml:imported_from "linkml:types" ; + linkml:name "uriorcurie" ; + linkml:repr "str" ; + linkml:uri "http://www.w3.org/2001/XMLSchema#anyURI" ], + [ a linkml:TypeDefinition ; + dcterms:description "An integer" ; + linkml:base "int" ; + linkml:definition_uri "https://w3id.org/linkml/Integer" ; + linkml:from_schema "https://w3id.org/linkml/types" ; + linkml:imported_from "linkml:types" ; + linkml:name "integer" ; + linkml:uri "http://www.w3.org/2001/XMLSchema#integer" ], + [ a linkml:TypeDefinition ; + dcterms:description "A real number with arbitrary precision that conforms to the xsd:decimal specification" ; + linkml:base "Decimal" ; + linkml:definition_uri "https://w3id.org/linkml/Decimal" ; + linkml:from_schema "https://w3id.org/linkml/types" ; + linkml:imported_from "linkml:types" ; + linkml:name "decimal" ; + linkml:uri "http://www.w3.org/2001/XMLSchema#decimal" ], + [ a linkml:TypeDefinition ; + dcterms:description "The combination of a date and time" ; + linkml:base "XSDDateTime" ; + linkml:definition_uri "https://w3id.org/linkml/Datetime" ; + linkml:from_schema "https://w3id.org/linkml/types" ; + linkml:imported_from "linkml:types" ; + linkml:name "datetime" ; + linkml:repr "str" ; + linkml:uri "http://www.w3.org/2001/XMLSchema#dateTime" ], + [ a linkml:TypeDefinition ; + dcterms:description "A real number that conforms to the xsd:float specification" ; + linkml:base "float" ; + linkml:definition_uri "https://w3id.org/linkml/Float" ; + linkml:from_schema "https://w3id.org/linkml/types" ; + linkml:imported_from "linkml:types" ; + linkml:name "float" ; + linkml:uri "http://www.w3.org/2001/XMLSchema#float" ], + [ a linkml:TypeDefinition ; + dcterms:description "A time object represents a (local) time of day, independent of any particular day" ; + linkml:base "XSDTime" ; + linkml:definition_uri "https://w3id.org/linkml/Time" ; + linkml:from_schema "https://w3id.org/linkml/types" ; + linkml:imported_from "linkml:types" ; + linkml:name "time" ; + linkml:notes "URI is dateTime because OWL reasoners don't work with straight date or time" ; + linkml:repr "str" ; + linkml:uri "http://www.w3.org/2001/XMLSchema#dateTime" ] . + + + diff --git a/linkml_runtime/linkml_model/rdf/extensions.model.ttl b/linkml_runtime/linkml_model/rdf/extensions.model.ttl index b5b68a67..e1b38825 100644 --- a/linkml_runtime/linkml_model/rdf/extensions.model.ttl +++ b/linkml_runtime/linkml_model/rdf/extensions.model.ttl @@ -77,7 +77,7 @@ linkml:source_file_size 1057 ; linkml:types [ a linkml:TypeDefinition ; linkml:base "ElementIdentifier" ; - linkml:comments "Used for inheritence and type checking" ; + linkml:comments "Used for inheritance and type checking" ; linkml:definition_uri "https://w3id.org/linkml/Objectidentifier" ; linkml:description "A URI or CURIE that represents an object in the model." ; linkml:from_schema "https://w3id.org/linkml/types" ; diff --git a/linkml_runtime/linkml_model/rdf/extensions.ttl b/linkml_runtime/linkml_model/rdf/extensions.ttl index 43906ee9..fc9f0676 100644 --- a/linkml_runtime/linkml_model/rdf/extensions.ttl +++ b/linkml_runtime/linkml_model/rdf/extensions.ttl @@ -115,7 +115,7 @@ linkml:uri "http://www.w3.org/2001/XMLSchema#anyURI" ], [ a linkml:TypeDefinition ; linkml:base "ElementIdentifier" ; - linkml:comments "Used for inheritence and type checking" ; + linkml:comments "Used for inheritance and type checking" ; linkml:definition_uri "https://w3id.org/linkml/Objectidentifier" ; linkml:description "A URI or CURIE that represents an object in the model." ; linkml:from_schema "https://w3id.org/linkml/types" ; diff --git a/linkml_runtime/linkml_model/rdf/mappings.model.ttl b/linkml_runtime/linkml_model/rdf/mappings.model.ttl index 555388eb..3feb87e4 100644 --- a/linkml_runtime/linkml_model/rdf/mappings.model.ttl +++ b/linkml_runtime/linkml_model/rdf/mappings.model.ttl @@ -192,7 +192,7 @@ linkml:uri "http://www.w3.org/ns/shex#nonLiteral" ], [ a linkml:TypeDefinition ; linkml:base "ElementIdentifier" ; - linkml:comments "Used for inheritence and type checking" ; + linkml:comments "Used for inheritance and type checking" ; linkml:definition_uri "https://w3id.org/linkml/Objectidentifier" ; linkml:description "A URI or CURIE that represents an object in the model." ; linkml:from_schema "https://w3id.org/linkml/types" ; diff --git a/linkml_runtime/linkml_model/rdf/mappings.ttl b/linkml_runtime/linkml_model/rdf/mappings.ttl index 763794e0..6d35078d 100644 --- a/linkml_runtime/linkml_model/rdf/mappings.ttl +++ b/linkml_runtime/linkml_model/rdf/mappings.ttl @@ -203,7 +203,7 @@ linkml:uri "http://www.w3.org/2001/XMLSchema#boolean" ], [ a linkml:TypeDefinition ; linkml:base "ElementIdentifier" ; - linkml:comments "Used for inheritence and type checking" ; + linkml:comments "Used for inheritance and type checking" ; linkml:definition_uri "https://w3id.org/linkml/Objectidentifier" ; linkml:description "A URI or CURIE that represents an object in the model." ; linkml:from_schema "https://w3id.org/linkml/types" ; diff --git a/linkml_runtime/linkml_model/rdf/meta.model.ttl b/linkml_runtime/linkml_model/rdf/meta.model.ttl index 27072bc4..e6983074 100644 --- a/linkml_runtime/linkml_model/rdf/meta.model.ttl +++ b/linkml_runtime/linkml_model/rdf/meta.model.ttl @@ -105,7 +105,7 @@ linkml:nodeidentifier a linkml:TypeDefinition ; linkml:objectidentifier a linkml:TypeDefinition ; skos:definition "A URI or CURIE that represents an object in the model." ; skos:inScheme linkml:types ; - skos:note "Used for inheritence and type checking" ; + skos:note "Used for inheritance and type checking" ; linkml:base "ElementIdentifier" ; linkml:definition_uri linkml:Objectidentifier ; linkml:imported_from "linkml:types" ; @@ -201,7 +201,7 @@ linkml:class_definition_mixins a linkml:SlotDefinition ; skos:altLabel "traits" ; skos:definition "List of definitions to be mixed in. Targets may be any definition of the same type" ; skos:inScheme linkml:meta ; - skos:note "mixins act in the same way as parents (is_a). They allow a model to have a primary strict hierachy, while keeping the benefits of multiple inheritance" ; + skos:note "mixins act in the same way as parents (is_a). They allow a model to have a primary strict hierarchy, while keeping the benefits of multiple inheritance" ; skos:prefLabel "mixins" ; linkml:definition_uri linkml:mixins ; linkml:domain linkml:ClassDefinition ; @@ -354,7 +354,7 @@ linkml:permissible_value_mixins a linkml:SlotDefinition ; skos:altLabel "traits" ; skos:definition "List of definitions to be mixed in. Targets may be any definition of the same type" ; skos:inScheme linkml:meta ; - skos:note "mixins act in the same way as parents (is_a). They allow a model to have a primary strict hierachy, while keeping the benefits of multiple inheritance" ; + skos:note "mixins act in the same way as parents (is_a). They allow a model to have a primary strict hierarchy, while keeping the benefits of multiple inheritance" ; skos:prefLabel "mixins" ; linkml:definition_uri linkml:mixins ; linkml:domain linkml:PermissibleValue ; @@ -472,7 +472,7 @@ linkml:slot_definition_mixins a linkml:SlotDefinition ; skos:altLabel "traits" ; skos:definition "List of definitions to be mixed in. Targets may be any definition of the same type" ; skos:inScheme linkml:meta ; - skos:note "mixins act in the same way as parents (is_a). They allow a model to have a primary strict hierachy, while keeping the benefits of multiple inheritance" ; + skos:note "mixins act in the same way as parents (is_a). They allow a model to have a primary strict hierarchy, while keeping the benefits of multiple inheritance" ; skos:prefLabel "mixins" ; linkml:definition_uri linkml:mixins ; linkml:domain linkml:SlotDefinition ; @@ -611,7 +611,7 @@ linkml:equals_number_in a linkml:SlotDefinition ; linkml:slot_uri linkml:equals_number_in . linkml:has_quantity_kind a linkml:SlotDefinition ; - skos:definition "Concept in a vocabulary or ontology that denotes the kind of quanity being measured, e.g. length" ; + skos:definition "Concept in a vocabulary or ontology that denotes the kind of quantity being measured, e.g. length" ; skos:inScheme linkml:units ; skos:mappingRelation qudt:hasQuantityKind ; skos:note "Potential ontologies include but are not limited to PATO, NCIT, OBOE, qudt.quantityKind" ; @@ -740,7 +740,7 @@ linkml:subclass_of a linkml:SlotDefinition ; linkml:slot_uri rdfs:subClassOf . linkml:subproperty_of a linkml:SlotDefinition ; - skos:definition "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." ; + skos:definition "Ontology property which this slot is a subproperty of. Note: setting this property on a slot does not guarantee an expansion of the ontological hierarchy into an enumerated list of possible values in every serialization of the model." ; skos:inScheme linkml:meta ; skos:mappingRelation rdfs:subPropertyOf ; linkml:definition_uri linkml:subproperty_of ; @@ -847,7 +847,7 @@ linkml:base a linkml:SlotDefinition ; skos:definition "python base type that implements this type definition" ; skos:inScheme linkml:meta ; skos:note "every root type must have a base", - "the base is inherited by child types but may be overriden. Base compatibility is not checked." ; + "the base is inherited by child types but may be overridden. Base compatibility is not checked." ; linkml:definition_uri linkml:base ; linkml:domain linkml:TypeDefinition ; linkml:domain_of linkml:TypeDefinition ; @@ -1544,7 +1544,7 @@ linkml:partial_match a linkml:SlotDefinition ; linkml:slot_uri linkml:partial_match . linkml:path_rule a linkml:SlotDefinition ; - skos:definition "a rule for inferring a slot assignment based on evaluating a path through a sequence of slot assignemnts" ; + skos:definition "a rule for inferring a slot assignment based on evaluating a path through a sequence of slot assignments" ; skos:inScheme linkml:meta ; linkml:definition_uri linkml:path_rule ; linkml:domain linkml:SlotDefinition ; @@ -1886,7 +1886,7 @@ linkml:source_file a linkml:SlotDefinition ; linkml:domain_of linkml:SchemaDefinition ; linkml:owner linkml:SchemaDefinition ; linkml:range linkml:string ; - linkml:readonly "suppplied by the schema loader" ; + linkml:readonly "supplied by the schema loader" ; linkml:slot_uri linkml:source_file . linkml:source_file_date a linkml:SlotDefinition ; @@ -2372,7 +2372,7 @@ linkml:Annotation a linkml:ClassDefinition ; linkml:all_members a linkml:SlotDefinition ; bibo:status linkml:testing ; - skos:definition """the value of the multiavlued slot is a list where all elements conform to the specified values. + skos:definition """the value of the multivalued 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 @@ -2865,7 +2865,7 @@ For example, a Measurement class may have 3 fields: unit, value, and string_valu linkml:slot_uri linkml:string_serialization . linkml:values_from a linkml:SlotDefinition ; - skos:definition "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." ; + skos:definition "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 hierarchy into an enumerated list of possible values in every serialization of the model." ; skos:inScheme linkml:meta ; linkml:definition_uri linkml:values_from ; linkml:domain linkml:Definition ; @@ -3562,7 +3562,7 @@ linkml:mixins a linkml:SlotDefinition ; skos:altLabel "traits" ; skos:definition "List of definitions to be mixed in. Targets may be any definition of the same type" ; skos:inScheme linkml:meta ; - skos:note "mixins act in the same way as parents (is_a). They allow a model to have a primary strict hierachy, while keeping the benefits of multiple inheritance" ; + skos:note "mixins act in the same way as parents (is_a). They allow a model to have a primary strict hierarchy, while keeping the benefits of multiple inheritance" ; linkml:definition_uri linkml:mixins ; linkml:domain linkml:Definition ; linkml:domain_of linkml:Definition ; diff --git a/linkml_runtime/linkml_model/rdf/meta.ttl b/linkml_runtime/linkml_model/rdf/meta.ttl index 245be952..9bfc0e56 100644 --- a/linkml_runtime/linkml_model/rdf/meta.ttl +++ b/linkml_runtime/linkml_model/rdf/meta.ttl @@ -105,7 +105,7 @@ linkml:nodeidentifier a linkml:TypeDefinition ; linkml:objectidentifier a linkml:TypeDefinition ; skos:definition "A URI or CURIE that represents an object in the model." ; skos:inScheme linkml:types ; - skos:note "Used for inheritence and type checking" ; + skos:note "Used for inheritance and type checking" ; linkml:base "ElementIdentifier" ; linkml:definition_uri linkml:Objectidentifier ; linkml:imported_from "linkml:types" ; @@ -201,7 +201,7 @@ linkml:class_definition_mixins a linkml:SlotDefinition ; skos:altLabel "traits" ; skos:definition "List of definitions to be mixed in. Targets may be any definition of the same type" ; skos:inScheme linkml:meta ; - skos:note "mixins act in the same way as parents (is_a). They allow a model to have a primary strict hierachy, while keeping the benefits of multiple inheritance" ; + skos:note "mixins act in the same way as parents (is_a). They allow a model to have a primary strict hierarchy, while keeping the benefits of multiple inheritance" ; skos:prefLabel "mixins" ; linkml:definition_uri linkml:mixins ; linkml:domain linkml:ClassDefinition ; @@ -354,7 +354,7 @@ linkml:permissible_value_mixins a linkml:SlotDefinition ; skos:altLabel "traits" ; skos:definition "List of definitions to be mixed in. Targets may be any definition of the same type" ; skos:inScheme linkml:meta ; - skos:note "mixins act in the same way as parents (is_a). They allow a model to have a primary strict hierachy, while keeping the benefits of multiple inheritance" ; + skos:note "mixins act in the same way as parents (is_a). They allow a model to have a primary strict hierarchy, while keeping the benefits of multiple inheritance" ; skos:prefLabel "mixins" ; linkml:definition_uri linkml:mixins ; linkml:domain linkml:PermissibleValue ; @@ -472,7 +472,7 @@ linkml:slot_definition_mixins a linkml:SlotDefinition ; skos:altLabel "traits" ; skos:definition "List of definitions to be mixed in. Targets may be any definition of the same type" ; skos:inScheme linkml:meta ; - skos:note "mixins act in the same way as parents (is_a). They allow a model to have a primary strict hierachy, while keeping the benefits of multiple inheritance" ; + skos:note "mixins act in the same way as parents (is_a). They allow a model to have a primary strict hierarchy, while keeping the benefits of multiple inheritance" ; skos:prefLabel "mixins" ; linkml:definition_uri linkml:mixins ; linkml:domain linkml:SlotDefinition ; @@ -611,7 +611,7 @@ linkml:equals_number_in a linkml:SlotDefinition ; linkml:slot_uri linkml:equals_number_in . linkml:has_quantity_kind a linkml:SlotDefinition ; - skos:definition "Concept in a vocabulary or ontology that denotes the kind of quanity being measured, e.g. length" ; + skos:definition "Concept in a vocabulary or ontology that denotes the kind of quantity being measured, e.g. length" ; skos:inScheme linkml:units ; skos:mappingRelation qudt:hasQuantityKind ; skos:note "Potential ontologies include but are not limited to PATO, NCIT, OBOE, qudt.quantityKind" ; @@ -740,7 +740,7 @@ linkml:subclass_of a linkml:SlotDefinition ; linkml:slot_uri rdfs:subClassOf . linkml:subproperty_of a linkml:SlotDefinition ; - skos:definition "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." ; + skos:definition "Ontology property which this slot is a subproperty of. Note: setting this property on a slot does not guarantee an expansion of the ontological hierarchy into an enumerated list of possible values in every serialization of the model." ; skos:inScheme linkml:meta ; skos:mappingRelation rdfs:subPropertyOf ; linkml:definition_uri linkml:subproperty_of ; @@ -847,7 +847,7 @@ linkml:base a linkml:SlotDefinition ; skos:definition "python base type that implements this type definition" ; skos:inScheme linkml:meta ; skos:note "every root type must have a base", - "the base is inherited by child types but may be overriden. Base compatibility is not checked." ; + "the base is inherited by child types but may be overridden. Base compatibility is not checked." ; linkml:definition_uri linkml:base ; linkml:domain linkml:TypeDefinition ; linkml:domain_of linkml:TypeDefinition ; @@ -1544,7 +1544,7 @@ linkml:partial_match a linkml:SlotDefinition ; linkml:slot_uri linkml:partial_match . linkml:path_rule a linkml:SlotDefinition ; - skos:definition "a rule for inferring a slot assignment based on evaluating a path through a sequence of slot assignemnts" ; + skos:definition "a rule for inferring a slot assignment based on evaluating a path through a sequence of slot assignments" ; skos:inScheme linkml:meta ; linkml:definition_uri linkml:path_rule ; linkml:domain linkml:SlotDefinition ; @@ -1886,7 +1886,7 @@ linkml:source_file a linkml:SlotDefinition ; linkml:domain_of linkml:SchemaDefinition ; linkml:owner linkml:SchemaDefinition ; linkml:range linkml:string ; - linkml:readonly "suppplied by the schema loader" ; + linkml:readonly "supplied by the schema loader" ; linkml:slot_uri linkml:source_file . linkml:source_file_date a linkml:SlotDefinition ; @@ -2372,7 +2372,7 @@ linkml:Annotation a linkml:ClassDefinition ; linkml:all_members a linkml:SlotDefinition ; bibo:status linkml:testing ; - skos:definition """the value of the multiavlued slot is a list where all elements conform to the specified values. + skos:definition """the value of the multivalued 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 @@ -2865,7 +2865,7 @@ For example, a Measurement class may have 3 fields: unit, value, and string_valu linkml:slot_uri linkml:string_serialization . linkml:values_from a linkml:SlotDefinition ; - skos:definition "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." ; + skos:definition "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 hierarchy into an enumerated list of possible values in every serialization of the model." ; skos:inScheme linkml:meta ; linkml:definition_uri linkml:values_from ; linkml:domain linkml:Definition ; @@ -3562,7 +3562,7 @@ linkml:mixins a linkml:SlotDefinition ; skos:altLabel "traits" ; skos:definition "List of definitions to be mixed in. Targets may be any definition of the same type" ; skos:inScheme linkml:meta ; - skos:note "mixins act in the same way as parents (is_a). They allow a model to have a primary strict hierachy, while keeping the benefits of multiple inheritance" ; + skos:note "mixins act in the same way as parents (is_a). They allow a model to have a primary strict hierarchy, while keeping the benefits of multiple inheritance" ; linkml:definition_uri linkml:mixins ; linkml:domain linkml:Definition ; linkml:domain_of linkml:Definition ; diff --git a/linkml_runtime/linkml_model/rdf/types.model.ttl b/linkml_runtime/linkml_model/rdf/types.model.ttl index 38738073..bb3aa534 100644 --- a/linkml_runtime/linkml_model/rdf/types.model.ttl +++ b/linkml_runtime/linkml_model/rdf/types.model.ttl @@ -102,7 +102,7 @@ linkml:uri "http://www.w3.org/2001/XMLSchema#decimal" ], [ a linkml:TypeDefinition ; linkml:base "ElementIdentifier" ; - linkml:comments "Used for inheritence and type checking" ; + linkml:comments "Used for inheritance and type checking" ; linkml:definition_uri "https://w3id.org/linkml/Objectidentifier" ; linkml:description "A URI or CURIE that represents an object in the model." ; linkml:from_schema "https://w3id.org/linkml/types" ; diff --git a/linkml_runtime/linkml_model/rdf/types.ttl b/linkml_runtime/linkml_model/rdf/types.ttl index 6a53619d..fb643839 100644 --- a/linkml_runtime/linkml_model/rdf/types.ttl +++ b/linkml_runtime/linkml_model/rdf/types.ttl @@ -77,7 +77,7 @@ linkml:uri "http://www.w3.org/2001/XMLSchema#string" ], [ a linkml:TypeDefinition ; linkml:base "ElementIdentifier" ; - linkml:comments "Used for inheritence and type checking" ; + linkml:comments "Used for inheritance and type checking" ; linkml:definition_uri "https://w3id.org/linkml/Objectidentifier" ; linkml:description "A URI or CURIE that represents an object in the model." ; linkml:from_schema "https://w3id.org/linkml/types" ; diff --git a/linkml_runtime/linkml_model/rdf/units.model.ttl b/linkml_runtime/linkml_model/rdf/units.model.ttl index febf6c64..a11063b2 100644 --- a/linkml_runtime/linkml_model/rdf/units.model.ttl +++ b/linkml_runtime/linkml_model/rdf/units.model.ttl @@ -117,7 +117,7 @@ skos:mappingRelation qudt:hasQuantityKind ; linkml:comments "Potential ontologies include but are not limited to PATO, NCIT, OBOE, qudt.quantityKind" ; linkml:definition_uri "https://w3id.org/linkml/has_quantity_kind" ; - linkml:description "Concept in a vocabulary or ontology that denotes the kind of quanity being measured, e.g. length" ; + linkml:description "Concept in a vocabulary or ontology that denotes the kind of quantity being measured, e.g. length" ; linkml:domain_of "UnitOfMeasure" ; linkml:from_schema "https://w3id.org/linkml/units" ; linkml:name "has_quantity_kind" ; @@ -358,7 +358,7 @@ linkml:uri "http://www.w3.org/2001/XMLSchema#dateTime" ], [ a linkml:TypeDefinition ; linkml:base "ElementIdentifier" ; - linkml:comments "Used for inheritence and type checking" ; + linkml:comments "Used for inheritance and type checking" ; linkml:definition_uri "https://w3id.org/linkml/Objectidentifier" ; linkml:description "A URI or CURIE that represents an object in the model." ; linkml:from_schema "https://w3id.org/linkml/types" ; diff --git a/linkml_runtime/linkml_model/rdf/units.ttl b/linkml_runtime/linkml_model/rdf/units.ttl index c51cda54..b659f43e 100644 --- a/linkml_runtime/linkml_model/rdf/units.ttl +++ b/linkml_runtime/linkml_model/rdf/units.ttl @@ -142,7 +142,7 @@ skos:mappingRelation qudt:hasQuantityKind ; linkml:comments "Potential ontologies include but are not limited to PATO, NCIT, OBOE, qudt.quantityKind" ; linkml:definition_uri "https://w3id.org/linkml/has_quantity_kind" ; - linkml:description "Concept in a vocabulary or ontology that denotes the kind of quanity being measured, e.g. length" ; + linkml:description "Concept in a vocabulary or ontology that denotes the kind of quantity being measured, e.g. length" ; linkml:domain_of "UnitOfMeasure" ; linkml:from_schema "https://w3id.org/linkml/units" ; linkml:name "has_quantity_kind" ; @@ -410,7 +410,7 @@ linkml:uri "http://www.w3.org/2001/XMLSchema#anyURI" ], [ a linkml:TypeDefinition ; linkml:base "ElementIdentifier" ; - linkml:comments "Used for inheritence and type checking" ; + linkml:comments "Used for inheritance and type checking" ; linkml:definition_uri "https://w3id.org/linkml/Objectidentifier" ; linkml:description "A URI or CURIE that represents an object in the model." ; linkml:from_schema "https://w3id.org/linkml/types" ; diff --git a/linkml_runtime/linkml_model/rdf/validation.model.ttl b/linkml_runtime/linkml_model/rdf/validation.model.ttl index 47971c51..c63c94ec 100644 --- a/linkml_runtime/linkml_model/rdf/validation.model.ttl +++ b/linkml_runtime/linkml_model/rdf/validation.model.ttl @@ -303,7 +303,7 @@ linkml:uri "http://www.w3.org/2001/XMLSchema#anyURI" ], [ a linkml:TypeDefinition ; linkml:base "ElementIdentifier" ; - linkml:comments "Used for inheritence and type checking" ; + linkml:comments "Used for inheritance and type checking" ; linkml:definition_uri "https://w3id.org/linkml/Objectidentifier" ; linkml:description "A URI or CURIE that represents an object in the model." ; linkml:from_schema "https://w3id.org/linkml/types" ; diff --git a/linkml_runtime/linkml_model/rdf/validation.ttl b/linkml_runtime/linkml_model/rdf/validation.ttl index 30161ae7..ebc2ed35 100644 --- a/linkml_runtime/linkml_model/rdf/validation.ttl +++ b/linkml_runtime/linkml_model/rdf/validation.ttl @@ -216,7 +216,7 @@ linkml:uri "http://www.w3.org/2001/XMLSchema#string" ], [ a linkml:TypeDefinition ; linkml:base "ElementIdentifier" ; - linkml:comments "Used for inheritence and type checking" ; + linkml:comments "Used for inheritance and type checking" ; linkml:definition_uri "https://w3id.org/linkml/Objectidentifier" ; linkml:description "A URI or CURIE that represents an object in the model." ; linkml:from_schema "https://w3id.org/linkml/types" ; diff --git a/linkml_runtime/linkml_model/shacl/meta.shacl.ttl b/linkml_runtime/linkml_model/shacl/meta.shacl.ttl new file mode 100644 index 00000000..2b61594d --- /dev/null +++ b/linkml_runtime/linkml_model/shacl/meta.shacl.ttl @@ -0,0 +1,4571 @@ +@prefix OIO: . +@prefix bibo: . +@prefix dcterms: . +@prefix linkml: . +@prefix oslc: . +@prefix owl: . +@prefix pav: . +@prefix qudt: . +@prefix rdf: . +@prefix rdfs: . +@prefix schema1: . +@prefix sh: . +@prefix skos: . +@prefix skosxl: . +@prefix xsd: . + +linkml:Annotatable a sh:NodeShape ; + sh:closed false ; + sh:description "mixin for classes that support annotations" ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:class linkml:Annotation ; + sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; + sh:nodeKind sh:BlankNode ; + sh:order 0 ; + sh:path linkml:annotations ] ; + sh:targetClass linkml:Annotatable . + +linkml:AnonymousExpression a sh:NodeShape ; + sh:closed false ; + sh:description "An abstract parent class for any nested expression" ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:description "the primary language used in the sources" ; + sh:maxCount 1 ; + sh:order 14 ; + sh:path schema1:inLanguage ], + [ sh:description "time at which the element was last updated" ; + sh:maxCount 1 ; + sh:order 29 ; + sh:path pav:lastUpdatedOn ], + [ sh:description "Keywords or tags used to describe the element" ; + sh:order 34 ; + sh:path schema1:keywords ], + [ sh:description "agent that modified the element" ; + sh:maxCount 1 ; + sh:order 30 ; + sh:path oslc:modifiedBy ], + [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 16 ; + sh:path linkml:deprecated_element_has_exact_replacement ], + [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; + sh:order 20 ; + sh:path skos:mappingRelation ], + [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; + sh:order 24 ; + sh:path skos:narrowMatch ], + [ sh:class linkml:Extension ; + sh:description "a tag/text tuple attached to an arbitrary element" ; + sh:nodeKind sh:BlankNode ; + sh:order 0 ; + sh:path linkml:extensions ], + [ sh:class linkml:AltDescription ; + sh:description "A sourced alternative description for an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 3 ; + sh:path linkml:alt_descriptions ], + [ sh:description "agent that created the element" ; + sh:maxCount 1 ; + sh:order 26 ; + sh:path pav:createdBy ], + [ sh:description "Description of why and when this element will no longer be used" ; + sh:maxCount 1 ; + sh:order 5 ; + sh:path linkml:deprecated ], + [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; + sh:order 23 ; + sh:path skos:relatedMatch ], + [ sh:description "status of the element" ; + sh:maxCount 1 ; + sh:order 31 ; + sh:path bibo:status ], + [ sh:description "editorial notes about an element intended primarily for internal consumption" ; + sh:order 7 ; + sh:path skos:editorialNote ], + [ sh:description "A list of related entities or URLs that may be of relevance" ; + sh:order 15 ; + sh:path rdfs:seeAlso ], + [ sh:description "notes and comments about an element intended primarily for external consumption" ; + sh:order 8 ; + sh:path skos:note ], + [ sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; + sh:maxCount 1 ; + sh:order 4 ; + sh:path dcterms:title ], + [ sh:class linkml:Annotation ; + sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; + sh:nodeKind sh:BlankNode ; + sh:order 1 ; + sh:path linkml:annotations ], + [ sh:description "the relative order in which the element occurs, lower values are given precedence" ; + sh:maxCount 1 ; + sh:order 32 ; + sh:path sh:order ], + [ sh:description "time at which the element was created" ; + sh:maxCount 1 ; + sh:order 28 ; + sh:path pav:createdOn ], + [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 17 ; + sh:path linkml:deprecated_element_has_possible_replacement ], + [ sh:description "the imports entry that this element was derived from. Empty means primary source" ; + sh:maxCount 1 ; + sh:order 12 ; + sh:path linkml:imported_from ], + [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; + sh:order 25 ; + sh:path skos:broadMatch ], + [ sh:description "id of the schema that defined the element" ; + sh:maxCount 1 ; + sh:order 11 ; + sh:path skos:inScheme ], + [ sh:description "agent that contributed to the element" ; + sh:order 27 ; + sh:path dcterms:contributor ], + [ sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; + sh:order 18 ; + sh:path skos:altLabel ], + [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; + sh:order 21 ; + sh:path skos:exactMatch ], + [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; + sh:order 22 ; + sh:path skos:closeMatch ], + [ sh:description "a textual description of the element's purpose and use" ; + sh:maxCount 1 ; + sh:order 2 ; + sh:path skos:definition ], + [ sh:class skosxl:Label ; + sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; + sh:nodeKind sh:BlankNode ; + sh:order 19 ; + sh:path skosxl:altLabel ], + [ sh:class linkml:SubsetDefinition ; + sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; + sh:nodeKind sh:IRI ; + sh:order 10 ; + sh:path OIO:inSubset ], + [ sh:class linkml:Example ; + sh:description "example usages of an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 9 ; + sh:path linkml:examples ], + [ sh:description "Controlled terms used to categorize an element." ; + sh:order 33 ; + sh:path dcterms:subject ], + [ sh:description "A related resource from which the element is derived." ; + sh:maxCount 1 ; + sh:order 13 ; + sh:path dcterms:source ], + [ sh:description "Outstanding issues that needs resolution" ; + sh:order 6 ; + sh:path linkml:todos ] ; + sh:targetClass linkml:AnonymousExpression . + +linkml:ClassExpression a sh:NodeShape ; + sh:closed false ; + sh:description "A boolean expression that can be used to dynamically determine membership of a class" ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:class linkml:AnonymousClassExpression ; + sh:description "holds if none of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 2 ; + sh:path linkml:none_of ], + [ sh:class linkml:AnonymousClassExpression ; + sh:description "holds if at least one of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 0 ; + sh:path linkml:any_of ], + [ sh:class linkml:AnonymousClassExpression ; + sh:description "holds if only one of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 1 ; + sh:path linkml:exactly_one_of ], + [ sh:class linkml:SlotDefinition ; + sh:description "expresses constraints on a group of slots for a class expression" ; + sh:nodeKind sh:IRI ; + sh:order 4 ; + sh:path linkml:slot_conditions ], + [ sh:class linkml:AnonymousClassExpression ; + sh:description "holds if all of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 3 ; + sh:path linkml:all_of ] ; + sh:targetClass linkml:ClassExpression . + +linkml:ClassLevelRule a sh:NodeShape ; + sh:closed false ; + sh:description "A rule that is applied to classes" ; + sh:ignoredProperties ( rdf:type ) ; + sh:targetClass linkml:ClassLevelRule . + +linkml:CommonMetadata a sh:NodeShape ; + sh:closed false ; + sh:description "Generic metadata shared across definitions" ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:description "A list of related entities or URLs that may be of relevance" ; + sh:order 13 ; + sh:path rdfs:seeAlso ], + [ sh:description "id of the schema that defined the element" ; + sh:maxCount 1 ; + sh:order 9 ; + sh:path skos:inScheme ], + [ sh:description "status of the element" ; + sh:maxCount 1 ; + sh:order 29 ; + sh:path bibo:status ], + [ sh:description "time at which the element was last updated" ; + sh:maxCount 1 ; + sh:order 27 ; + sh:path pav:lastUpdatedOn ], + [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; + sh:order 18 ; + sh:path skos:mappingRelation ], + [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; + sh:order 21 ; + sh:path skos:relatedMatch ], + [ sh:description "Keywords or tags used to describe the element" ; + sh:order 32 ; + sh:path schema1:keywords ], + [ sh:description "agent that modified the element" ; + sh:maxCount 1 ; + sh:order 28 ; + sh:path oslc:modifiedBy ], + [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; + sh:order 23 ; + sh:path skos:broadMatch ], + [ sh:description "A related resource from which the element is derived." ; + sh:maxCount 1 ; + sh:order 11 ; + sh:path dcterms:source ], + [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; + sh:order 20 ; + sh:path skos:closeMatch ], + [ sh:description "Controlled terms used to categorize an element." ; + sh:order 31 ; + sh:path dcterms:subject ], + [ sh:description "time at which the element was created" ; + sh:maxCount 1 ; + sh:order 26 ; + sh:path pav:createdOn ], + [ sh:description "editorial notes about an element intended primarily for internal consumption" ; + sh:order 5 ; + sh:path skos:editorialNote ], + [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; + sh:order 19 ; + sh:path skos:exactMatch ], + [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; + sh:order 22 ; + sh:path skos:narrowMatch ], + [ sh:description "a textual description of the element's purpose and use" ; + sh:maxCount 1 ; + sh:order 0 ; + sh:path skos:definition ], + [ sh:class linkml:SubsetDefinition ; + sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; + sh:nodeKind sh:IRI ; + sh:order 8 ; + sh:path OIO:inSubset ], + [ sh:description "agent that created the element" ; + sh:maxCount 1 ; + sh:order 24 ; + sh:path pav:createdBy ], + [ sh:description "the relative order in which the element occurs, lower values are given precedence" ; + sh:maxCount 1 ; + sh:order 30 ; + sh:path sh:order ], + [ sh:class linkml:AltDescription ; + sh:description "A sourced alternative description for an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 1 ; + sh:path linkml:alt_descriptions ], + [ sh:class linkml:Example ; + sh:description "example usages of an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 7 ; + sh:path linkml:examples ], + [ sh:description "notes and comments about an element intended primarily for external consumption" ; + sh:order 6 ; + sh:path skos:note ], + [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 15 ; + sh:path linkml:deprecated_element_has_possible_replacement ], + [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 14 ; + sh:path linkml:deprecated_element_has_exact_replacement ], + [ sh:class skosxl:Label ; + sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; + sh:nodeKind sh:BlankNode ; + sh:order 17 ; + sh:path skosxl:altLabel ], + [ sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; + sh:order 16 ; + sh:path skos:altLabel ], + [ sh:description "the imports entry that this element was derived from. Empty means primary source" ; + sh:maxCount 1 ; + sh:order 10 ; + sh:path linkml:imported_from ], + [ sh:description "Outstanding issues that needs resolution" ; + sh:order 4 ; + sh:path linkml:todos ], + [ sh:description "the primary language used in the sources" ; + sh:maxCount 1 ; + sh:order 12 ; + sh:path schema1:inLanguage ], + [ sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; + sh:maxCount 1 ; + sh:order 2 ; + sh:path dcterms:title ], + [ sh:description "Description of why and when this element will no longer be used" ; + sh:maxCount 1 ; + sh:order 3 ; + sh:path linkml:deprecated ], + [ sh:description "agent that contributed to the element" ; + sh:order 25 ; + sh:path dcterms:contributor ] ; + sh:targetClass linkml:CommonMetadata . + +linkml:Expression a sh:NodeShape ; + sh:closed false ; + sh:description "general mixin for any class that can represent some form of expression" ; + sh:ignoredProperties ( rdf:type ) ; + sh:targetClass linkml:Expression . + +linkml:Extensible a sh:NodeShape ; + sh:closed false ; + sh:description "mixin for classes that support extension" ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:class linkml:Extension ; + sh:description "a tag/text tuple attached to an arbitrary element" ; + sh:nodeKind sh:BlankNode ; + sh:order 0 ; + sh:path linkml:extensions ] ; + sh:targetClass linkml:Extensible . + +linkml:ImportExpression a sh:NodeShape ; + sh:closed true ; + sh:description "an expression describing an import" ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; + sh:order 21 ; + sh:path skos:altLabel ], + [ sh:description "editorial notes about an element intended primarily for internal consumption" ; + sh:order 10 ; + sh:path skos:editorialNote ], + [ sh:class linkml:Setting ; + sh:nodeKind sh:BlankNode ; + sh:order 2 ; + sh:path linkml:import_map ], + [ sh:description "agent that contributed to the element" ; + sh:order 30 ; + sh:path dcterms:contributor ], + [ sh:description "Keywords or tags used to describe the element" ; + sh:order 37 ; + sh:path schema1:keywords ], + [ sh:description "id of the schema that defined the element" ; + sh:maxCount 1 ; + sh:order 14 ; + sh:path skos:inScheme ], + [ sh:description "a textual description of the element's purpose and use" ; + sh:maxCount 1 ; + sh:order 5 ; + sh:path skos:definition ], + [ sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; + sh:maxCount 1 ; + sh:order 7 ; + sh:path dcterms:title ], + [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; + sh:order 23 ; + sh:path skos:mappingRelation ], + [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; + sh:order 28 ; + sh:path skos:broadMatch ], + [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; + sh:order 25 ; + sh:path skos:closeMatch ], + [ sh:description "time at which the element was created" ; + sh:maxCount 1 ; + sh:order 31 ; + sh:path pav:createdOn ], + [ sh:description "A related resource from which the element is derived." ; + sh:maxCount 1 ; + sh:order 16 ; + sh:path dcterms:source ], + [ sh:class linkml:AltDescription ; + sh:description "A sourced alternative description for an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 6 ; + sh:path linkml:alt_descriptions ], + [ sh:class linkml:Annotation ; + sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; + sh:nodeKind sh:BlankNode ; + sh:order 4 ; + sh:path linkml:annotations ], + [ sh:class linkml:Example ; + sh:description "example usages of an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 12 ; + sh:path linkml:examples ], + [ sh:description "A list of related entities or URLs that may be of relevance" ; + sh:order 18 ; + sh:path rdfs:seeAlso ], + [ sh:description "the imports entry that this element was derived from. Empty means primary source" ; + sh:maxCount 1 ; + sh:order 15 ; + sh:path linkml:imported_from ], + [ sh:class linkml:Extension ; + sh:description "a tag/text tuple attached to an arbitrary element" ; + sh:nodeKind sh:BlankNode ; + sh:order 3 ; + sh:path linkml:extensions ], + [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; + sh:order 27 ; + sh:path skos:narrowMatch ], + [ sh:description "Outstanding issues that needs resolution" ; + sh:order 9 ; + sh:path linkml:todos ], + [ sh:description "agent that created the element" ; + sh:maxCount 1 ; + sh:order 29 ; + sh:path pav:createdBy ], + [ sh:description "agent that modified the element" ; + sh:maxCount 1 ; + sh:order 33 ; + sh:path oslc:modifiedBy ], + [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; + sh:order 24 ; + sh:path skos:exactMatch ], + [ sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 0 ; + sh:path linkml:import_from ], + [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; + sh:order 26 ; + sh:path skos:relatedMatch ], + [ sh:maxCount 1 ; + sh:order 1 ; + sh:path linkml:import_as ], + [ sh:class linkml:SubsetDefinition ; + sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; + sh:nodeKind sh:IRI ; + sh:order 13 ; + sh:path OIO:inSubset ], + [ sh:description "Description of why and when this element will no longer be used" ; + sh:maxCount 1 ; + sh:order 8 ; + sh:path linkml:deprecated ], + [ sh:description "Controlled terms used to categorize an element." ; + sh:order 36 ; + sh:path dcterms:subject ], + [ sh:description "status of the element" ; + sh:maxCount 1 ; + sh:order 34 ; + sh:path bibo:status ], + [ sh:description "time at which the element was last updated" ; + sh:maxCount 1 ; + sh:order 32 ; + sh:path pav:lastUpdatedOn ], + [ sh:class skosxl:Label ; + sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; + sh:nodeKind sh:BlankNode ; + sh:order 22 ; + sh:path skosxl:altLabel ], + [ sh:description "notes and comments about an element intended primarily for external consumption" ; + sh:order 11 ; + sh:path skos:note ], + [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 19 ; + sh:path linkml:deprecated_element_has_exact_replacement ], + [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 20 ; + sh:path linkml:deprecated_element_has_possible_replacement ], + [ sh:description "the primary language used in the sources" ; + sh:maxCount 1 ; + sh:order 17 ; + sh:path schema1:inLanguage ], + [ sh:description "the relative order in which the element occurs, lower values are given precedence" ; + sh:maxCount 1 ; + sh:order 35 ; + sh:path sh:order ] ; + sh:targetClass linkml:ImportExpression . + +linkml:SchemaDefinition a sh:NodeShape ; + sh:closed true ; + sh:description "A collection of definitions that make up a schema or a data model." ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:description "Description of why and when this element will no longer be used" ; + sh:maxCount 1 ; + sh:order 33 ; + sh:path linkml:deprecated ], + [ sh:class linkml:Setting ; + sh:description "A collection of global variable settings" ; + sh:nodeKind sh:BlankNode ; + sh:order 20 ; + sh:path linkml:settings ], + [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; + sh:order 49 ; + sh:path skos:exactMatch ], + [ sh:description "A list of schemas that are to be included in this schema" ; + sh:order 2 ; + sh:path linkml:imports ], + [ sh:class linkml:Extension ; + sh:description "a tag/text tuple attached to an arbitrary element" ; + sh:nodeKind sh:BlankNode ; + sh:order 28 ; + sh:path linkml:extensions ], + [ sh:description "a list of Curie prefixes that are used in the representation of instances of the model. All prefixes in this list are added to the prefix sections of the target models." ; + sh:order 5 ; + sh:path linkml:emit_prefixes ], + [ sh:description "the relative order in which the element occurs, lower values are given precedence" ; + sh:maxCount 1 ; + sh:order 60 ; + sh:path sh:order ], + [ sh:description "license for the schema" ; + sh:maxCount 1 ; + sh:order 3 ; + sh:path dcterms:license ], + [ sh:class linkml:TypeDefinition ; + sh:description "An index to the collection of all type definitions in the schema" ; + sh:nodeKind sh:IRI ; + sh:order 10 ; + sh:path linkml:types ], + [ sh:class skosxl:Label ; + sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; + sh:nodeKind sh:BlankNode ; + sh:order 47 ; + sh:path skosxl:altLabel ], + [ sh:class linkml:Prefix ; + sh:description "A collection of prefix expansions that specify how CURIEs can be expanded to URIs" ; + sh:nodeKind sh:BlankNode ; + sh:order 4 ; + sh:path sh:declare ], + [ sh:description "A related resource from which the element is derived." ; + sh:maxCount 1 ; + sh:order 41 ; + sh:path dcterms:source ], + [ sh:description "a unique name for the schema that is both human-readable and consists of only characters from the NCName set" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 21 ; + sh:path rdfs:label ], + [ sh:description "the primary language used in the sources" ; + sh:maxCount 1 ; + sh:order 42 ; + sh:path schema1:inLanguage ], + [ sh:description "agent that created the element" ; + sh:maxCount 1 ; + sh:order 54 ; + sh:path pav:createdBy ], + [ sh:class linkml:AltDescription ; + sh:description "A sourced alternative description for an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 31 ; + sh:path linkml:alt_descriptions ], + [ sh:description "status of the element" ; + sh:maxCount 1 ; + sh:order 59 ; + sh:path bibo:status ], + [ sh:description "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element." ; + sh:order 26 ; + sh:path linkml:implements ], + [ sh:class linkml:EnumDefinition ; + sh:description "An index to the collection of all enum definitions in the schema" ; + sh:nodeKind sh:IRI ; + sh:order 11 ; + sh:path linkml:enums ], + [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 44 ; + sh:path linkml:deprecated_element_has_exact_replacement ], + [ sh:description "ordered list of prefixcommon biocontexts to be fetched to resolve id prefixes and inline prefix variables" ; + sh:order 6 ; + sh:path linkml:default_curi_maps ], + [ sh:description "a textual description of the element's purpose and use" ; + sh:maxCount 1 ; + sh:order 30 ; + sh:path skos:definition ], + [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; + sh:order 52 ; + sh:path skos:narrowMatch ], + [ sh:description "Outstanding issues that needs resolution" ; + sh:order 34 ; + sh:path linkml:todos ], + [ sh:description "notes and comments about an element intended primarily for external consumption" ; + sh:order 36 ; + sh:path skos:note ], + [ sh:description "date and time that the schema was loaded/generated" ; + sh:maxCount 1 ; + sh:order 18 ; + sh:path linkml:generation_date ], + [ sh:class linkml:Example ; + sh:description "example usages of an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 37 ; + sh:path linkml:examples ], + [ sh:description "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix" ; + sh:order 22 ; + sh:path linkml:id_prefixes ], + [ sh:description "Controlled terms used to categorize an element." ; + sh:order 61 ; + sh:path dcterms:subject ], + [ sh:description "modification date of the source of the schema" ; + sh:maxCount 1 ; + sh:order 16 ; + sh:path linkml:source_file_date ], + [ sh:description "Version of the metamodel used to load the schema" ; + sh:maxCount 1 ; + sh:order 14 ; + sh:path linkml:metamodel_version ], + [ sh:description "time at which the element was created" ; + sh:maxCount 1 ; + sh:order 56 ; + sh:path pav:createdOn ], + [ sh:description "An established standard to which the element conforms." ; + sh:maxCount 1 ; + sh:order 25 ; + sh:path dcterms:conformsTo ], + [ sh:description "The prefix that is used for all elements within a schema" ; + sh:maxCount 1 ; + sh:order 7 ; + sh:path linkml:default_prefix ], + [ sh:description "the imports entry that this element was derived from. Empty means primary source" ; + sh:maxCount 1 ; + sh:order 40 ; + sh:path linkml:imported_from ], + [ sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; + sh:maxCount 1 ; + sh:order 32 ; + sh:path dcterms:title ], + [ sh:class linkml:SlotDefinition ; + sh:description "An index to the collection of all slot definitions in the schema" ; + sh:nodeKind sh:IRI ; + sh:order 12 ; + sh:path linkml:slot_definitions ], + [ sh:class linkml:SubsetDefinition ; + sh:description "An index to the collection of all subset definitions in the schema" ; + sh:nodeKind sh:IRI ; + sh:order 9 ; + sh:path linkml:subsets ], + [ sh:class linkml:Annotation ; + sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; + sh:nodeKind sh:BlankNode ; + sh:order 29 ; + sh:path linkml:annotations ], + [ sh:description "size in bytes of the source of the schema" ; + sh:maxCount 1 ; + sh:order 17 ; + sh:path linkml:source_file_size ], + [ sh:description "An element in another schema which this element instantiates." ; + sh:order 27 ; + sh:path linkml:instantiates ], + [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 45 ; + sh:path linkml:deprecated_element_has_possible_replacement ], + [ sh:class linkml:ClassDefinition ; + sh:description "An index to the collection of all class definitions in the schema" ; + sh:nodeKind sh:IRI ; + sh:order 13 ; + sh:path linkml:classes ], + [ sh:class linkml:LocalName ; + sh:nodeKind sh:BlankNode ; + sh:order 24 ; + sh:path linkml:local_names ], + [ sh:description "Keywords or tags used to describe the element" ; + sh:order 62 ; + sh:path schema1:keywords ], + [ sh:description "id of the schema that defined the element" ; + sh:maxCount 1 ; + sh:order 39 ; + sh:path skos:inScheme ], + [ sh:description "agent that contributed to the element" ; + sh:order 55 ; + sh:path dcterms:contributor ], + [ sh:description "particular version of schema" ; + sh:maxCount 1 ; + sh:order 1 ; + sh:path pav:version ], + [ sh:description "time at which the element was last updated" ; + sh:maxCount 1 ; + sh:order 57 ; + sh:path pav:lastUpdatedOn ], + [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; + sh:order 53 ; + sh:path skos:broadMatch ], + [ sh:description "agent that modified the element" ; + sh:maxCount 1 ; + sh:order 58 ; + sh:path oslc:modifiedBy ], + [ sh:class linkml:SubsetDefinition ; + sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; + sh:nodeKind sh:IRI ; + sh:order 38 ; + sh:path OIO:inSubset ], + [ sh:description "A list of related entities or URLs that may be of relevance" ; + sh:order 43 ; + sh:path rdfs:seeAlso ], + [ sh:class linkml:TypeDefinition ; + sh:description "default slot range to be used if range element is omitted from a slot definition" ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 8 ; + sh:path linkml:default_range ], + [ sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; + sh:order 46 ; + sh:path skos:altLabel ], + [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; + sh:order 51 ; + sh:path skos:relatedMatch ], + [ sh:description "name, uri or description of the source of the schema" ; + sh:maxCount 1 ; + sh:order 15 ; + sh:path linkml:source_file ], + [ sh:description "if true then induced/mangled slot names are not created for class_usage and attributes" ; + sh:maxCount 1 ; + sh:order 19 ; + sh:path linkml:slot_names_unique ], + [ sh:description "The official schema URI" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 0 ; + sh:path linkml:id ], + [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; + sh:order 50 ; + sh:path skos:closeMatch ], + [ sh:description "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri" ; + sh:maxCount 1 ; + sh:order 23 ; + sh:path linkml:definition_uri ], + [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; + sh:order 48 ; + sh:path skos:mappingRelation ], + [ sh:description "editorial notes about an element intended primarily for internal consumption" ; + sh:order 35 ; + sh:path skos:editorialNote ] ; + sh:targetClass linkml:SchemaDefinition . + +linkml:SlotExpression a sh:NodeShape ; + sh:closed false ; + sh:description "an expression that constrains the range of values a slot can take" ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:description "the slot must have range string and the value of the slot must equal the specified value" ; + sh:maxCount 1 ; + sh:order 14 ; + sh:path linkml:equals_string ], + [ sh:description "the minimum number of entries for a multivalued slot" ; + sh:maxCount 1 ; + sh:order 18 ; + sh:path linkml:minimum_cardinality ], + [ sh: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." ; + sh:maxCount 1 ; + sh:order 5 ; + sh:path linkml:inlined ], + [ sh:description "for slots with ranges of type number, the value must be equal to or higher than this" ; + sh:maxCount 1 ; + sh:order 7 ; + sh:path linkml:minimum_value ], + [ sh:description "the string value of the slot must conform to this regular expression expressed in the string" ; + sh:maxCount 1 ; + sh:order 9 ; + sh:path linkml:pattern ], + [ sh:description "the maximum number of entries for a multivalued slot" ; + sh:maxCount 1 ; + sh:order 19 ; + sh:path linkml:maximum_cardinality ], + [ sh:description "for slots with ranges of type number, the value must be equal to or lowe than this" ; + sh:maxCount 1 ; + sh:order 8 ; + sh:path linkml:maximum_value ], + [ sh:description "Causes the slot value to be interpreted as a uriorcurie after prefixing with this string" ; + sh:maxCount 1 ; + sh:order 12 ; + sh:path linkml:implicit_prefix ], + [ sh:class linkml:AnonymousSlotExpression ; + sh:description "holds if only one of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 23 ; + sh:path linkml:exactly_one_of ], + [ sh:class linkml:AnonymousSlotExpression ; + sh:description "holds if all of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 25 ; + sh:path linkml:all_of ], + [ sh:description "true means that the slot must be present in instances of the class definition" ; + sh:maxCount 1 ; + sh:order 3 ; + sh:path linkml:required ], + [ sh:class linkml:Element ; + sh: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 +""" ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path linkml:range ], + [ sh:class linkml:AnonymousSlotExpression ; + sh:description "holds if at least one of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 24 ; + sh:path linkml:any_of ], + [ sh:class qudt:Unit ; + sh:description "an encoding of a unit" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 11 ; + sh:path qudt:unit ], + [ sh:class linkml:AnonymousSlotExpression ; + sh:description "the value of the slot is multivalued with at least one member satisfying the condition" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 20 ; + sh:path linkml:has_member ], + [ sh:description "the slot must have range string and the value of the slot must equal one of the specified values" ; + sh:order 15 ; + sh:path linkml:equals_string_in ], + [ sh:description "true means that the slot should be present in instances of the class definition, but this is not required" ; + sh:maxCount 1 ; + sh:order 4 ; + sh:path linkml:recommended ], + [ sh:class linkml:AnonymousSlotExpression ; + sh:description "the value of the slot is multivalued with all members satisfying the condition" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 21 ; + sh:path linkml:all_members ], + [ sh:class linkml:EnumExpression ; + sh:description "An inlined enumeration" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 2 ; + sh:path linkml:enum_range ], + [ sh:description "the slot must have range of a number and the value of the slot must equal the specified value" ; + sh:maxCount 1 ; + sh:order 16 ; + sh:path linkml:equals_number ], + [ sh:class linkml:AnonymousClassExpression ; + sh:description "A range that is described as a boolean expression combining existing ranges" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 1 ; + sh:path linkml:range_expression ], + [ sh: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." ; + sh:maxCount 1 ; + sh:order 6 ; + sh:path linkml:inlined_as_list ], + [ sh:description "the value of the slot must equal the value of the evaluated expression" ; + sh:maxCount 1 ; + sh:order 17 ; + sh:path linkml:equals_expression ], + [ sh:description "if true then a value must be present (for lists there must be at least one value). If false then a value must be absent (for lists, must be empty)" ; + sh:in ( "UNCOMMITTED" "PRESENT" "ABSENT" ) ; + sh:maxCount 1 ; + sh:order 13 ; + sh:path linkml:value_presence ], + [ sh:class linkml:PatternExpression ; + sh:description "the string value of the slot must conform to the regular expression in the pattern expression" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 10 ; + sh:path linkml:structured_pattern ], + [ sh:class linkml:AnonymousSlotExpression ; + sh:description "holds if none of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 22 ; + sh:path linkml:none_of ] ; + sh:targetClass linkml:SlotExpression . + +linkml:TypeExpression a sh:NodeShape ; + sh:closed false ; + sh:description "An abstract class grouping named types and anonymous type expressions" ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:class linkml:PatternExpression ; + sh:description "the string value of the slot must conform to the regular expression in the pattern expression" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 1 ; + sh:path linkml:structured_pattern ], + [ sh:description "for slots with ranges of type number, the value must be equal to or higher than this" ; + sh:maxCount 1 ; + sh:order 7 ; + sh:path linkml:minimum_value ], + [ sh:description "the string value of the slot must conform to this regular expression expressed in the string" ; + sh:maxCount 1 ; + sh:order 0 ; + sh:path linkml:pattern ], + [ sh:description "the slot must have range string and the value of the slot must equal the specified value" ; + sh:maxCount 1 ; + sh:order 4 ; + sh:path linkml:equals_string ], + [ sh:class linkml:AnonymousTypeExpression ; + sh:description "holds if none of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 9 ; + sh:path linkml:none_of ], + [ sh:description "for slots with ranges of type number, the value must be equal to or lowe than this" ; + sh:maxCount 1 ; + sh:order 8 ; + sh:path linkml:maximum_value ], + [ sh:description "Causes the slot value to be interpreted as a uriorcurie after prefixing with this string" ; + sh:maxCount 1 ; + sh:order 3 ; + sh:path linkml:implicit_prefix ], + [ sh:description "the slot must have range string and the value of the slot must equal one of the specified values" ; + sh:order 5 ; + sh:path linkml:equals_string_in ], + [ sh:class linkml:AnonymousTypeExpression ; + sh:description "holds if at least one of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 11 ; + sh:path linkml:any_of ], + [ sh:description "the slot must have range of a number and the value of the slot must equal the specified value" ; + sh:maxCount 1 ; + sh:order 6 ; + sh:path linkml:equals_number ], + [ sh:class linkml:AnonymousTypeExpression ; + sh:description "holds if only one of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 10 ; + sh:path linkml:exactly_one_of ], + [ sh:class qudt:Unit ; + sh:description "an encoding of a unit" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 2 ; + sh:path qudt:unit ], + [ sh:class linkml:AnonymousTypeExpression ; + sh:description "holds if all of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 12 ; + sh:path linkml:all_of ] ; + sh:targetClass linkml:TypeExpression . + +linkml:Any a sh:NodeShape ; + sh:closed true ; + sh:ignoredProperties ( rdf:type ) ; + sh:targetClass linkml:Any . + +linkml:ClassRule a sh:NodeShape ; + sh:closed true ; + sh:description "A rule that applies to instances of a class" ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; + sh:order 30 ; + sh:path skos:relatedMatch ], + [ sh:class linkml:AnonymousClassExpression ; + sh:description "an expression that must hold for an instance of the class, if the preconditions no not hold" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 2 ; + sh:path linkml:elseconditions ], + [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; + sh:order 29 ; + sh:path skos:closeMatch ], + [ sh:description "agent that modified the element" ; + sh:maxCount 1 ; + sh:order 37 ; + sh:path oslc:modifiedBy ], + [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; + sh:order 27 ; + sh:path skos:mappingRelation ], + [ sh:description "time at which the element was created" ; + sh:maxCount 1 ; + sh:order 35 ; + sh:path pav:createdOn ], + [ sh:description "agent that created the element" ; + sh:maxCount 1 ; + sh:order 33 ; + sh:path pav:createdBy ], + [ sh:description "A list of related entities or URLs that may be of relevance" ; + sh:order 22 ; + sh:path rdfs:seeAlso ], + [ sh:class linkml:SubsetDefinition ; + sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; + sh:nodeKind sh:IRI ; + sh:order 17 ; + sh:path OIO:inSubset ], + [ sh:class linkml:Example ; + sh:description "example usages of an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 16 ; + sh:path linkml:examples ], + [ sh:description "Keywords or tags used to describe the element" ; + sh:order 40 ; + sh:path schema1:keywords ], + [ sh:description "notes and comments about an element intended primarily for external consumption" ; + sh:order 15 ; + sh:path skos:note ], + [ sh:description "status of the element" ; + sh:maxCount 1 ; + sh:order 38 ; + sh:path bibo:status ], + [ sh:description "in addition to preconditions entailing postconditions, the postconditions entail the preconditions" ; + sh:maxCount 1 ; + sh:order 3 ; + sh:path linkml:bidirectional ], + [ sh:description "time at which the element was last updated" ; + sh:maxCount 1 ; + sh:order 36 ; + sh:path pav:lastUpdatedOn ], + [ sh:description "a deactivated rule is not executed by the rules engine" ; + sh:maxCount 1 ; + sh:order 6 ; + sh:path sh:deactivated ], + [ sh:class linkml:Annotation ; + sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; + sh:nodeKind sh:BlankNode ; + sh:order 8 ; + sh:path linkml:annotations ], + [ sh:description "Controlled terms used to categorize an element." ; + sh:order 39 ; + sh:path dcterms:subject ], + [ sh:description "the relative order in which the element occurs, lower values are given precedence" ; + sh:maxCount 1 ; + sh:order 5 ; + sh:path sh:order ], + [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; + sh:order 32 ; + sh:path skos:broadMatch ], + [ sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; + sh:maxCount 1 ; + sh:order 11 ; + sh:path dcterms:title ], + [ sh:description "Description of why and when this element will no longer be used" ; + sh:maxCount 1 ; + sh:order 12 ; + sh:path linkml:deprecated ], + [ sh:description "id of the schema that defined the element" ; + sh:maxCount 1 ; + sh:order 18 ; + sh:path skos:inScheme ], + [ sh:description "the imports entry that this element was derived from. Empty means primary source" ; + sh:maxCount 1 ; + sh:order 19 ; + sh:path linkml:imported_from ], + [ sh:description "if true, the the postconditions may be omitted in instance data, but it is valid for an inference engine to add these" ; + sh:maxCount 1 ; + sh:order 4 ; + sh:path linkml:open_world ], + [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; + sh:order 28 ; + sh:path skos:exactMatch ], + [ sh:class linkml:AltDescription ; + sh:description "A sourced alternative description for an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 10 ; + sh:path linkml:alt_descriptions ], + [ sh:description "A related resource from which the element is derived." ; + sh:maxCount 1 ; + sh:order 20 ; + sh:path dcterms:source ], + [ sh:class skosxl:Label ; + sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; + sh:nodeKind sh:BlankNode ; + sh:order 26 ; + sh:path skosxl:altLabel ], + [ sh:description "editorial notes about an element intended primarily for internal consumption" ; + sh:order 14 ; + sh:path skos:editorialNote ], + [ sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; + sh:order 25 ; + sh:path skos:altLabel ], + [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 23 ; + sh:path linkml:deprecated_element_has_exact_replacement ], + [ sh:description "a textual description of the element's purpose and use" ; + sh:maxCount 1 ; + sh:order 9 ; + sh:path skos:definition ], + [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; + sh:order 31 ; + sh:path skos:narrowMatch ], + [ sh:description "agent that contributed to the element" ; + sh:order 34 ; + sh:path dcterms:contributor ], + [ sh:description "Outstanding issues that needs resolution" ; + sh:order 13 ; + sh:path linkml:todos ], + [ sh:class linkml:AnonymousClassExpression ; + sh:description "an expression that must hold for an instance of the class, if the preconditions hold" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 1 ; + sh:path linkml:postconditions ], + [ sh:class linkml:AnonymousClassExpression ; + sh:description "an expression that must hold in order for the rule to be applicable to an instance" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 0 ; + sh:path sh:condition ], + [ sh:description "the primary language used in the sources" ; + sh:maxCount 1 ; + sh:order 21 ; + sh:path schema1:inLanguage ], + [ sh:class linkml:Extension ; + sh:description "a tag/text tuple attached to an arbitrary element" ; + sh:nodeKind sh:BlankNode ; + sh:order 7 ; + sh:path linkml:extensions ], + [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 24 ; + sh:path linkml:deprecated_element_has_possible_replacement ] ; + sh:targetClass linkml:ClassRule . + +linkml:Prefix a sh:NodeShape ; + sh:closed true ; + sh:description "prefix URI tuple" ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:description "The namespace to which a prefix expands to." ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 1 ; + sh:path sh:namespace ], + [ sh:description "The prefix components of a prefix expansions. This is the part that appears before the colon in a CURIE." ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 0 ; + sh:path sh:prefix ] ; + sh:targetClass linkml:Prefix . + +linkml:UniqueKey a sh:NodeShape ; + sh:closed true ; + sh:description "a collection of slots whose values uniquely identify an instance of a class" ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:class linkml:SubsetDefinition ; + sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; + sh:nodeKind sh:IRI ; + sh:order 13 ; + sh:path OIO:inSubset ], + [ sh:description "Keywords or tags used to describe the element" ; + sh:order 37 ; + sh:path schema1:keywords ], + [ sh:description "A list of related entities or URLs that may be of relevance" ; + sh:order 18 ; + sh:path rdfs:seeAlso ], + [ sh:description "time at which the element was created" ; + sh:maxCount 1 ; + sh:order 31 ; + sh:path pav:createdOn ], + [ sh:description "the imports entry that this element was derived from. Empty means primary source" ; + sh:maxCount 1 ; + sh:order 15 ; + sh:path linkml:imported_from ], + [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 19 ; + sh:path linkml:deprecated_element_has_exact_replacement ], + [ sh:description "the primary language used in the sources" ; + sh:maxCount 1 ; + sh:order 17 ; + sh:path schema1:inLanguage ], + [ sh:description "A related resource from which the element is derived." ; + sh:maxCount 1 ; + sh:order 16 ; + sh:path dcterms:source ], + [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; + sh:order 24 ; + sh:path skos:exactMatch ], + [ sh:class linkml:AltDescription ; + sh:description "A sourced alternative description for an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 6 ; + sh:path linkml:alt_descriptions ], + [ sh:description "By default, None values are considered equal for the purposes of comparisons in determining uniqueness. Set this to true to treat missing values as per ANSI-SQL NULLs, i.e NULL=NULL is always False." ; + sh:maxCount 1 ; + sh:order 2 ; + sh:path linkml:consider_nulls_inequal ], + [ sh:description "name of the unique key" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 0 ; + sh:path linkml:unique_key_name ], + [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; + sh:order 26 ; + sh:path skos:relatedMatch ], + [ sh:class linkml:Extension ; + sh:description "a tag/text tuple attached to an arbitrary element" ; + sh:nodeKind sh:BlankNode ; + sh:order 3 ; + sh:path linkml:extensions ], + [ sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; + sh:order 21 ; + sh:path skos:altLabel ], + [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; + sh:order 28 ; + sh:path skos:broadMatch ], + [ sh:class skosxl:Label ; + sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; + sh:nodeKind sh:BlankNode ; + sh:order 22 ; + sh:path skosxl:altLabel ], + [ sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; + sh:maxCount 1 ; + sh:order 7 ; + sh:path dcterms:title ], + [ sh:description "Description of why and when this element will no longer be used" ; + sh:maxCount 1 ; + sh:order 8 ; + sh:path linkml:deprecated ], + [ sh:description "agent that modified the element" ; + sh:maxCount 1 ; + sh:order 33 ; + sh:path oslc:modifiedBy ], + [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 20 ; + sh:path linkml:deprecated_element_has_possible_replacement ], + [ sh:description "editorial notes about an element intended primarily for internal consumption" ; + sh:order 10 ; + sh:path skos:editorialNote ], + [ sh:description "time at which the element was last updated" ; + sh:maxCount 1 ; + sh:order 32 ; + sh:path pav:lastUpdatedOn ], + [ sh:description "a textual description of the element's purpose and use" ; + sh:maxCount 1 ; + sh:order 5 ; + sh:path skos:definition ], + [ sh:class linkml:Annotation ; + sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; + sh:nodeKind sh:BlankNode ; + sh:order 4 ; + sh:path linkml:annotations ], + [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; + sh:order 25 ; + sh:path skos:closeMatch ], + [ sh:description "agent that created the element" ; + sh:maxCount 1 ; + sh:order 29 ; + sh:path pav:createdBy ], + [ sh:description "agent that contributed to the element" ; + sh:order 30 ; + sh:path dcterms:contributor ], + [ sh:description "notes and comments about an element intended primarily for external consumption" ; + sh:order 11 ; + sh:path skos:note ], + [ sh:description "Controlled terms used to categorize an element." ; + sh:order 36 ; + sh:path dcterms:subject ], + [ sh:class linkml:Example ; + sh:description "example usages of an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 12 ; + sh:path linkml:examples ], + [ sh:description "Outstanding issues that needs resolution" ; + sh:order 9 ; + sh:path linkml:todos ], + [ sh:description "status of the element" ; + sh:maxCount 1 ; + sh:order 34 ; + sh:path bibo:status ], + [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; + sh:order 23 ; + sh:path skos:mappingRelation ], + [ sh:description "the relative order in which the element occurs, lower values are given precedence" ; + sh:maxCount 1 ; + sh:order 35 ; + sh:path sh:order ], + [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; + sh:order 27 ; + sh:path skos:narrowMatch ], + [ sh:class linkml:SlotDefinition ; + sh:description "list of slot names that form a key. The tuple formed from the values of all these slots should be unique." ; + sh:minCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path linkml:unique_key_slots ], + [ sh:description "id of the schema that defined the element" ; + sh:maxCount 1 ; + sh:order 14 ; + sh:path skos:inScheme ] ; + sh:targetClass linkml:UniqueKey . + +linkml:Setting a sh:NodeShape ; + sh:closed true ; + sh:description "assignment of a key to a value" ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:description "The value assigned for a setting" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 1 ; + sh:path linkml:setting_value ], + [ sh:description "the variable name for a setting" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 0 ; + sh:path linkml:setting_key ] ; + sh:targetClass linkml:Setting . + +linkml:Element a sh:NodeShape ; + sh:closed false ; + sh:description "A named element in the model" ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:description "Controlled terms used to categorize an element." ; + sh:order 40 ; + sh:path dcterms:subject ], + [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; + sh:order 31 ; + sh:path skos:narrowMatch ], + [ sh:class linkml:LocalName ; + sh:nodeKind sh:BlankNode ; + sh:order 3 ; + sh:path linkml:local_names ], + [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; + sh:order 32 ; + sh:path skos:broadMatch ], + [ sh:description "An established standard to which the element conforms." ; + sh:maxCount 1 ; + sh:order 4 ; + sh:path dcterms:conformsTo ], + [ sh:description "time at which the element was last updated" ; + sh:maxCount 1 ; + sh:order 36 ; + sh:path pav:lastUpdatedOn ], + [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; + sh:order 27 ; + sh:path skos:mappingRelation ], + [ sh:description "the imports entry that this element was derived from. Empty means primary source" ; + sh:maxCount 1 ; + sh:order 19 ; + sh:path linkml:imported_from ], + [ sh:class linkml:Example ; + sh:description "example usages of an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 16 ; + sh:path linkml:examples ], + [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; + sh:order 29 ; + sh:path skos:closeMatch ], + [ sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; + sh:maxCount 1 ; + sh:order 11 ; + sh:path dcterms:title ], + [ sh:description "agent that created the element" ; + sh:maxCount 1 ; + sh:order 33 ; + sh:path pav:createdBy ], + [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; + sh:order 30 ; + sh:path skos:relatedMatch ], + [ sh:description "An element in another schema which this element instantiates." ; + sh:order 6 ; + sh:path linkml:instantiates ], + [ sh:description "A related resource from which the element is derived." ; + sh:maxCount 1 ; + sh:order 20 ; + sh:path dcterms:source ], + [ sh:description "Outstanding issues that needs resolution" ; + sh:order 13 ; + sh:path linkml:todos ], + [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; + sh:order 28 ; + sh:path skos:exactMatch ], + [ sh:description "the relative order in which the element occurs, lower values are given precedence" ; + sh:maxCount 1 ; + sh:order 39 ; + sh:path sh:order ], + [ sh:description "the primary language used in the sources" ; + sh:maxCount 1 ; + sh:order 21 ; + sh:path schema1:inLanguage ], + [ sh:description "a textual description of the element's purpose and use" ; + sh:maxCount 1 ; + sh:order 9 ; + sh:path skos:definition ], + [ sh:class skosxl:Label ; + sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; + sh:nodeKind sh:BlankNode ; + sh:order 26 ; + sh:path skosxl:altLabel ], + [ sh:description "status of the element" ; + sh:maxCount 1 ; + sh:order 38 ; + sh:path bibo:status ], + [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 23 ; + sh:path linkml:deprecated_element_has_exact_replacement ], + [ sh:description "agent that modified the element" ; + sh:maxCount 1 ; + sh:order 37 ; + sh:path oslc:modifiedBy ], + [ sh:description "Keywords or tags used to describe the element" ; + sh:order 41 ; + sh:path schema1:keywords ], + [ sh:class linkml:Extension ; + sh:description "a tag/text tuple attached to an arbitrary element" ; + sh:nodeKind sh:BlankNode ; + sh:order 7 ; + sh:path linkml:extensions ], + [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 24 ; + sh:path linkml:deprecated_element_has_possible_replacement ], + [ sh:description "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix" ; + sh:order 1 ; + sh:path linkml:id_prefixes ], + [ sh:description "notes and comments about an element intended primarily for external consumption" ; + sh:order 15 ; + sh:path skos:note ], + [ sh:description "time at which the element was created" ; + sh:maxCount 1 ; + sh:order 35 ; + sh:path pav:createdOn ], + [ sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; + sh:order 25 ; + sh:path skos:altLabel ], + [ sh:class linkml:SubsetDefinition ; + sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; + sh:nodeKind sh:IRI ; + sh:order 17 ; + sh:path OIO:inSubset ], + [ sh:class linkml:AltDescription ; + sh:description "A sourced alternative description for an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 10 ; + sh:path linkml:alt_descriptions ], + [ sh:description "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element." ; + sh:order 5 ; + sh:path linkml:implements ], + [ sh: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." ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 0 ; + sh:path rdfs:label ], + [ sh:description "agent that contributed to the element" ; + sh:order 34 ; + sh:path dcterms:contributor ], + [ sh:description "A list of related entities or URLs that may be of relevance" ; + sh:order 22 ; + sh:path rdfs:seeAlso ], + [ sh:description "Description of why and when this element will no longer be used" ; + sh:maxCount 1 ; + sh:order 12 ; + sh:path linkml:deprecated ], + [ sh:description "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri" ; + sh:maxCount 1 ; + sh:order 2 ; + sh:path linkml:definition_uri ], + [ sh:description "editorial notes about an element intended primarily for internal consumption" ; + sh:order 14 ; + sh:path skos:editorialNote ], + [ sh:description "id of the schema that defined the element" ; + sh:maxCount 1 ; + sh:order 18 ; + sh:path skos:inScheme ], + [ sh:class linkml:Annotation ; + sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; + sh:nodeKind sh:BlankNode ; + sh:order 8 ; + sh:path linkml:annotations ] ; + sh:targetClass linkml:Element . + +linkml:EnumExpression a sh:NodeShape ; + sh:closed true ; + sh:description "An expression that constrains the range of a slot" ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:class linkml:AnonymousEnumExpression ; + sh:description "An enum expression that yields a list of permissible values that are to be subtracted from the enum" ; + sh:nodeKind sh:BlankNode ; + sh:order 6 ; + sh:path linkml:minus ], + [ sh:description "Defines the specific formula to be used to generate the permissible values." ; + sh:in ( "CODE" "CURIE" "URI" "FHIR_CODING" ) ; + sh:maxCount 1 ; + sh:order 3 ; + sh:path linkml:pv_formula ], + [ sh:class linkml:PermissibleValue ; + sh:description "A list of possible values for a slot range" ; + sh:nodeKind sh:IRI ; + sh:order 4 ; + sh:path linkml:permissible_values ], + [ sh:description "the identifier of an enumeration code set." ; + sh:maxCount 1 ; + sh:order 0 ; + sh:path linkml:code_set ], + [ sh:class linkml:ReachabilityQuery ; + sh:description "Specifies a query for obtaining a list of permissible values based on graph reachability" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 8 ; + sh:path linkml:reachable_from ], + [ sh:description "the version tag of the enumeration code set" ; + sh:maxCount 1 ; + sh:order 1 ; + sh:path linkml:code_set_tag ], + [ sh:class linkml:MatchQuery ; + sh:description "Specifies a match query that is used to calculate the list of permissible values" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 9 ; + sh:path linkml:matches ], + [ sh:class linkml:EnumDefinition ; + sh:description "An enum definition that is used as the basis to create a new enum" ; + sh:nodeKind sh:IRI ; + sh:order 7 ; + sh:path linkml:inherits ], + [ sh:description "the version identifier of the enumeration code set" ; + sh:maxCount 1 ; + sh:order 2 ; + sh:path linkml:code_set_version ], + [ sh:description "A list of identifiers that are used to construct a set of permissible values" ; + sh:order 10 ; + sh:path linkml:concepts ], + [ sh:class linkml:AnonymousEnumExpression ; + sh:description "An enum expression that yields a list of permissible values that are to be included, after subtracting the minus set" ; + sh:nodeKind sh:BlankNode ; + sh:order 5 ; + sh:path linkml:include ] ; + sh:targetClass linkml:EnumExpression . + +linkml:MatchQuery a sh:NodeShape ; + sh:closed true ; + sh:description "A query that is used on an enum expression to dynamically obtain a set of permissivle values via a query that matches on properties of the external concepts." ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:description "An ontology or vocabulary or terminology that is used in a query to obtain a set of permissible values" ; + sh:maxCount 1 ; + sh:order 1 ; + sh:path linkml:source_ontology ], + [ sh:description "A regular expression that is used to obtain a set of identifiers from a source_ontology to construct a set of permissible values" ; + sh:maxCount 1 ; + sh:order 0 ; + sh:path linkml:identifier_pattern ] ; + sh:targetClass linkml:MatchQuery . + +linkml:PermissibleValue a sh:NodeShape ; + sh:closed true ; + sh:description "a permissible value, accompanied by intended text and an optional mapping to a concept URI" ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:description "Controlled terms used to categorize an element." ; + sh:order 36 ; + sh:path dcterms:subject ], + [ sh:description "agent that modified the element" ; + sh:maxCount 1 ; + sh:order 33 ; + sh:path oslc:modifiedBy ], + [ sh:description "agent that contributed to the element" ; + sh:order 30 ; + sh:path dcterms:contributor ], + [ sh:description "A related resource from which the element is derived." ; + sh:maxCount 1 ; + sh:order 16 ; + sh:path dcterms:source ], + [ sh:description "the value meaning of a permissible value" ; + sh:maxCount 1 ; + sh:order 2 ; + sh:path linkml:meaning ], + [ sh:class linkml:AltDescription ; + sh:description "A sourced alternative description for an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 6 ; + sh:path linkml:alt_descriptions ], + [ sh:class skosxl:Label ; + sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; + sh:nodeKind sh:BlankNode ; + sh:order 22 ; + sh:path skosxl:altLabel ], + [ sh:description "time at which the element was last updated" ; + sh:maxCount 1 ; + sh:order 32 ; + sh:path pav:lastUpdatedOn ], + [ sh:description "agent that created the element" ; + sh:maxCount 1 ; + sh:order 29 ; + sh:path pav:createdBy ], + [ sh:description "notes and comments about an element intended primarily for external consumption" ; + sh:order 11 ; + sh:path skos:note ], + [ sh:description "a textual description of the element's purpose and use" ; + sh:maxCount 1 ; + sh:order 1 ; + sh:path skos:definition ], + [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; + sh:order 28 ; + sh:path skos:broadMatch ], + [ sh:description "the imports entry that this element was derived from. Empty means primary source" ; + sh:maxCount 1 ; + sh:order 15 ; + sh:path linkml:imported_from ], + [ sh:description "The actual permissible value itself" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 0 ; + sh:path linkml:text ], + [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; + sh:order 24 ; + sh:path skos:exactMatch ], + [ sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; + sh:maxCount 1 ; + sh:order 7 ; + sh:path dcterms:title ], + [ sh:class linkml:Example ; + sh:description "example usages of an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 12 ; + sh:path linkml:examples ], + [ sh:class qudt:Unit ; + sh:description "an encoding of a unit" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 3 ; + sh:path qudt:unit ], + [ sh:description "Description of why and when this element will no longer be used" ; + sh:maxCount 1 ; + sh:order 8 ; + sh:path linkml:deprecated ], + [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; + sh:order 25 ; + sh:path skos:closeMatch ], + [ sh:description "A list of related entities or URLs that may be of relevance" ; + sh:order 18 ; + sh:path rdfs:seeAlso ], + [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 19 ; + sh:path linkml:deprecated_element_has_exact_replacement ], + [ sh:description "Outstanding issues that needs resolution" ; + sh:order 9 ; + sh:path linkml:todos ], + [ sh:description "the relative order in which the element occurs, lower values are given precedence" ; + sh:maxCount 1 ; + sh:order 35 ; + sh:path sh:order ], + [ sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; + sh:order 21 ; + sh:path skos:altLabel ], + [ sh:description "time at which the element was created" ; + sh:maxCount 1 ; + sh:order 31 ; + sh:path pav:createdOn ], + [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 20 ; + sh:path linkml:deprecated_element_has_possible_replacement ], + [ sh:class linkml:Extension ; + sh:description "a tag/text tuple attached to an arbitrary element" ; + sh:nodeKind sh:BlankNode ; + sh:order 4 ; + sh:path linkml:extensions ], + [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; + sh:order 26 ; + sh:path skos:relatedMatch ], + [ sh:class linkml:Annotation ; + sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; + sh:nodeKind sh:BlankNode ; + sh:order 5 ; + sh:path linkml:annotations ], + [ sh:class linkml:SubsetDefinition ; + sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; + sh:nodeKind sh:IRI ; + sh:order 13 ; + sh:path OIO:inSubset ], + [ sh:description "editorial notes about an element intended primarily for internal consumption" ; + sh:order 10 ; + sh:path skos:editorialNote ], + [ sh:description "Keywords or tags used to describe the element" ; + sh:order 37 ; + sh:path schema1:keywords ], + [ sh:description "the primary language used in the sources" ; + sh:maxCount 1 ; + sh:order 17 ; + sh:path schema1:inLanguage ], + [ sh:description "id of the schema that defined the element" ; + sh:maxCount 1 ; + sh:order 14 ; + sh:path skos:inScheme ], + [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; + sh:order 23 ; + sh:path skos:mappingRelation ], + [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; + sh:order 27 ; + sh:path skos:narrowMatch ], + [ sh:description "status of the element" ; + sh:maxCount 1 ; + sh:order 34 ; + sh:path bibo:status ] ; + sh:targetClass linkml:PermissibleValue . + +linkml:ReachabilityQuery a sh:NodeShape ; + sh:closed true ; + sh:description "A query that is used on an enum expression to dynamically obtain a set of permissible values via walking from a set of source nodes to a set of descendants or ancestors over a set of relationship types." ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:description "A list of relationship types (properties) that are used in a reachability query" ; + sh:order 2 ; + sh:path linkml:relationship_types ], + [ sh:description "True if the reachability query should only include directly related nodes, if False then include also transitively connected" ; + sh:maxCount 1 ; + sh:order 3 ; + sh:path linkml:is_direct ], + [ sh:description "An ontology or vocabulary or terminology that is used in a query to obtain a set of permissible values" ; + sh:maxCount 1 ; + sh:order 0 ; + sh:path linkml:source_ontology ], + [ sh:description "True if the query is reflexive" ; + sh:maxCount 1 ; + sh:order 4 ; + sh:path linkml:include_self ], + [ sh:description "True if the direction of the reachability query is reversed and ancestors are retrieved" ; + sh:maxCount 1 ; + sh:order 5 ; + sh:path linkml:traverse_up ], + [ sh:description "A list of nodes that are used in the reachability query" ; + sh:order 1 ; + sh:path linkml:source_nodes ] ; + sh:targetClass linkml:ReachabilityQuery . + +linkml:EnumDefinition a sh:NodeShape ; + sh:closed true ; + sh:description "an element whose instances must be drawn from a specified set of permissible values" ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:description "Keywords or tags used to describe the element" ; + sh:order 60 ; + sh:path schema1:keywords ], + [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; + sh:order 49 ; + sh:path skos:relatedMatch ], + [ sh: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 hierarchy into an enumerated list of possible values in every serialization of the model." ; + sh:order 17 ; + sh:path linkml:values_from ], + [ sh:description "time at which the element was last updated" ; + sh:maxCount 1 ; + sh:order 55 ; + sh:path pav:lastUpdatedOn ], + [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; + sh:order 47 ; + sh:path skos:exactMatch ], + [ sh:description "the imports entry that this element was derived from. Empty means primary source" ; + sh:maxCount 1 ; + sh:order 38 ; + sh:path linkml:imported_from ], + [ sh:class linkml:AltDescription ; + sh:description "A sourced alternative description for an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 29 ; + sh:path linkml:alt_descriptions ], + [ sh:description "the identifier of an enumeration code set." ; + sh:maxCount 1 ; + sh:order 1 ; + sh:path linkml:code_set ], + [ sh:description "An element in another schema which this element instantiates." ; + sh:order 25 ; + sh:path linkml:instantiates ], + [ sh:class linkml:AnonymousEnumExpression ; + sh:description "An enum expression that yields a list of permissible values that are to be subtracted from the enum" ; + sh:nodeKind sh:BlankNode ; + sh:order 7 ; + sh:path linkml:minus ], + [ sh:description "the relative order in which the element occurs, lower values are given precedence" ; + sh:maxCount 1 ; + sh:order 58 ; + sh:path sh:order ], + [ sh:description "the primary language used in the sources" ; + sh:maxCount 1 ; + sh:order 40 ; + sh:path schema1:inLanguage ], + [ sh:description "URI of the enum that provides a semantic interpretation of the element in a linked data context. The URI may come from any namespace and may be shared between schemas" ; + sh:maxCount 1 ; + sh:order 0 ; + sh:path linkml:enum_uri ], + [ sh:class linkml:Annotation ; + sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; + sh:nodeKind sh:BlankNode ; + sh:order 27 ; + sh:path linkml:annotations ], + [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 43 ; + sh:path linkml:deprecated_element_has_possible_replacement ], + [ sh:description "the version tag of the enumeration code set" ; + sh:maxCount 1 ; + sh:order 2 ; + sh:path linkml:code_set_tag ], + [ sh:description "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element." ; + sh:order 24 ; + sh:path linkml:implements ], + [ sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; + sh:order 44 ; + sh:path skos:altLabel ], + [ sh: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." ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 19 ; + sh:path rdfs:label ], + [ sh:class linkml:EnumDefinition ; + sh:description "An enum definition that is used as the basis to create a new enum" ; + sh:nodeKind sh:IRI ; + sh:order 8 ; + sh:path linkml:inherits ], + [ sh:description "Controlled terms used to categorize an element." ; + sh:order 59 ; + sh:path dcterms:subject ], + [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; + sh:order 51 ; + sh:path skos:broadMatch ], + [ sh:class linkml:ReachabilityQuery ; + sh:description "Specifies a query for obtaining a list of permissible values based on graph reachability" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 9 ; + sh:path linkml:reachable_from ], + [ sh:class linkml:Example ; + sh:description "example usages of an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 35 ; + sh:path linkml:examples ], + [ sh:description "notes and comments about an element intended primarily for external consumption" ; + sh:order 34 ; + sh:path skos:note ], + [ sh:description "A list of related entities or URLs that may be of relevance" ; + sh:order 41 ; + sh:path rdfs:seeAlso ], + [ sh:description "A related resource from which the element is derived." ; + sh:maxCount 1 ; + sh:order 39 ; + sh:path dcterms:source ], + [ sh:description "editorial notes about an element intended primarily for internal consumption" ; + sh:order 33 ; + sh:path skos:editorialNote ], + [ sh:description "the version identifier of the enumeration code set" ; + sh:maxCount 1 ; + sh:order 3 ; + sh:path linkml:code_set_version ], + [ sh:description "id of the schema that defined the element" ; + sh:maxCount 1 ; + sh:order 37 ; + sh:path skos:inScheme ], + [ sh:class linkml:Extension ; + sh:description "a tag/text tuple attached to an arbitrary element" ; + sh:nodeKind sh:BlankNode ; + sh:order 26 ; + sh:path linkml:extensions ], + [ sh:class linkml:LocalName ; + sh:nodeKind sh:BlankNode ; + sh:order 22 ; + sh:path linkml:local_names ], + [ sh:description "Defines the specific formula to be used to generate the permissible values." ; + sh:in ( "CODE" "CURIE" "URI" "FHIR_CODING" ) ; + sh:maxCount 1 ; + sh:order 4 ; + sh:path linkml:pv_formula ], + [ sh:description "a textual description of the element's purpose and use" ; + sh:maxCount 1 ; + sh:order 28 ; + sh:path skos:definition ], + [ sh:description "Outstanding issues that needs resolution" ; + sh:order 32 ; + sh:path linkml:todos ], + [ sh: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""" ; + sh:maxCount 1 ; + sh:order 18 ; + sh:path linkml:string_serialization ], + [ sh:class linkml:Definition ; + sh: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." ; + sh:nodeKind sh:IRI ; + sh:order 16 ; + sh:path linkml:apply_to ], + [ sh:description "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri" ; + sh:maxCount 1 ; + sh:order 21 ; + sh:path linkml:definition_uri ], + [ sh:class linkml:Definition ; + sh:description "A primary parent class or slot from which inheritable metaslots are propagated from. 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" ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 12 ; + sh:path linkml:is_a ], + [ sh:description "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix" ; + sh:order 20 ; + sh:path linkml:id_prefixes ], + [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 42 ; + sh:path linkml:deprecated_element_has_exact_replacement ], + [ sh:class linkml:Definition ; + sh:description "A collection of secondary parent classes or slots from which inheritable metaslots are propagated from." ; + sh:nodeKind sh:IRI ; + sh:order 15 ; + sh:path linkml:mixins ], + [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; + sh:order 50 ; + sh:path skos:narrowMatch ], + [ sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; + sh:maxCount 1 ; + sh:order 30 ; + sh:path dcterms:title ], + [ sh:class linkml:PermissibleValue ; + sh:description "A list of possible values for a slot range" ; + sh:nodeKind sh:IRI ; + sh:order 5 ; + sh:path linkml:permissible_values ], + [ sh:class skosxl:Label ; + sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; + sh:nodeKind sh:BlankNode ; + sh:order 45 ; + sh:path skosxl:altLabel ], + [ sh:description "status of the element" ; + sh:maxCount 1 ; + sh:order 57 ; + sh:path bibo:status ], + [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; + sh:order 46 ; + sh:path skos:mappingRelation ], + [ sh:description "time at which the element was created" ; + sh:maxCount 1 ; + sh:order 54 ; + sh:path pav:createdOn ], + [ sh:class linkml:MatchQuery ; + sh:description "Specifies a match query that is used to calculate the list of permissible values" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 10 ; + sh:path linkml:matches ], + [ sh:class linkml:AnonymousEnumExpression ; + sh:description "An enum expression that yields a list of permissible values that are to be included, after subtracting the minus set" ; + sh:nodeKind sh:BlankNode ; + sh:order 6 ; + sh:path linkml:include ], + [ sh:description "Indicates the class or slot is intended to be inherited from without being an is_a parent. mixins should not be inherited from using is_a, except by other mixins." ; + sh:maxCount 1 ; + sh:order 14 ; + sh:path linkml:mixin ], + [ sh:description "A list of identifiers that are used to construct a set of permissible values" ; + sh:order 11 ; + sh:path linkml:concepts ], + [ sh:description "An established standard to which the element conforms." ; + sh:maxCount 1 ; + sh:order 23 ; + sh:path dcterms:conformsTo ], + [ sh:class linkml:SubsetDefinition ; + sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; + sh:nodeKind sh:IRI ; + sh:order 36 ; + sh:path OIO:inSubset ], + [ sh:description "agent that created the element" ; + sh:maxCount 1 ; + sh:order 52 ; + sh:path pav:createdBy ], + [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; + sh:order 48 ; + sh:path skos:closeMatch ], + [ sh:description "agent that contributed to the element" ; + sh:order 53 ; + sh:path dcterms:contributor ], + [ sh:description "Indicates the class or slot cannot be directly instantiated and is intended for grouping purposes." ; + sh:maxCount 1 ; + sh:order 13 ; + sh:path linkml:abstract ], + [ sh:description "Description of why and when this element will no longer be used" ; + sh:maxCount 1 ; + sh:order 31 ; + sh:path linkml:deprecated ], + [ sh:description "agent that modified the element" ; + sh:maxCount 1 ; + sh:order 56 ; + sh:path oslc:modifiedBy ] ; + sh:targetClass linkml:EnumDefinition . + +linkml:TypeDefinition a sh:NodeShape ; + sh:closed true ; + sh:description "an element that whose instances are atomic scalar values that can be mapped to primitive types" ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:description "id of the schema that defined the element" ; + sh:maxCount 1 ; + sh:order 36 ; + sh:path skos:inScheme ], + [ sh:description "A related resource from which the element is derived." ; + sh:maxCount 1 ; + sh:order 38 ; + sh:path dcterms:source ], + [ sh:description "the name of the python object that implements this type definition" ; + sh:maxCount 1 ; + sh:order 3 ; + sh:path linkml:repr ], + [ sh:class linkml:Extension ; + sh:description "a tag/text tuple attached to an arbitrary element" ; + sh:nodeKind sh:BlankNode ; + sh:order 25 ; + sh:path linkml:extensions ], + [ sh:description "agent that modified the element" ; + sh:maxCount 1 ; + sh:order 55 ; + sh:path oslc:modifiedBy ], + [ sh:class qudt:Unit ; + sh:description "an encoding of a unit" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 7 ; + sh:path qudt:unit ], + [ sh:class linkml:TypeDefinition ; + sh:description "indicates that the domain element consists exactly of the members of the element in the range." ; + sh:nodeKind sh:IRI ; + sh:order 4 ; + sh:path linkml:union_of ], + [ sh:description "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri" ; + sh:maxCount 1 ; + sh:order 20 ; + sh:path linkml:definition_uri ], + [ sh:class linkml:Annotation ; + sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; + sh:nodeKind sh:BlankNode ; + sh:order 26 ; + sh:path linkml:annotations ], + [ sh:description "editorial notes about an element intended primarily for internal consumption" ; + sh:order 32 ; + sh:path skos:editorialNote ], + [ sh:description "status of the element" ; + sh:maxCount 1 ; + sh:order 56 ; + sh:path bibo:status ], + [ sh:class linkml:AnonymousTypeExpression ; + sh:description "holds if none of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 14 ; + sh:path linkml:none_of ], + [ sh:description "Description of why and when this element will no longer be used" ; + sh:maxCount 1 ; + sh:order 30 ; + sh:path linkml:deprecated ], + [ sh:description "An established standard to which the element conforms." ; + sh:maxCount 1 ; + sh:order 22 ; + sh:path dcterms:conformsTo ], + [ sh:description "the slot must have range string and the value of the slot must equal one of the specified values" ; + sh:order 10 ; + sh:path linkml:equals_string_in ], + [ sh:description "the string value of the slot must conform to this regular expression expressed in the string" ; + sh:maxCount 1 ; + sh:order 5 ; + sh:path linkml:pattern ], + [ sh:description "notes and comments about an element intended primarily for external consumption" ; + sh:order 33 ; + sh:path skos:note ], + [ sh:description "for slots with ranges of type number, the value must be equal to or lowe than this" ; + sh:maxCount 1 ; + sh:order 13 ; + sh:path linkml:maximum_value ], + [ sh:class linkml:SubsetDefinition ; + sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; + sh:nodeKind sh:IRI ; + sh:order 35 ; + sh:path OIO:inSubset ], + [ sh:description "the slot must have range of a number and the value of the slot must equal the specified value" ; + sh:maxCount 1 ; + sh:order 11 ; + sh:path linkml:equals_number ], + [ sh:class skosxl:Label ; + sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; + sh:nodeKind sh:BlankNode ; + sh:order 44 ; + sh:path skosxl:altLabel ], + [ sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; + sh:maxCount 1 ; + sh:order 29 ; + sh:path dcterms:title ], + [ sh:description "the imports entry that this element was derived from. Empty means primary source" ; + sh:maxCount 1 ; + sh:order 37 ; + sh:path linkml:imported_from ], + [ sh:class linkml:AnonymousTypeExpression ; + sh:description "holds if only one of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 15 ; + sh:path linkml:exactly_one_of ], + [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; + sh:order 49 ; + sh:path skos:narrowMatch ], + [ sh:description "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element." ; + sh:order 23 ; + sh:path linkml:implements ], + [ sh:description "time at which the element was last updated" ; + sh:maxCount 1 ; + sh:order 54 ; + sh:path pav:lastUpdatedOn ], + [ sh:class linkml:AnonymousTypeExpression ; + sh:description "holds if at least one of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 16 ; + sh:path linkml:any_of ], + [ sh:class linkml:TypeDefinition ; + sh:description "A parent type from which type properties are inherited" ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path linkml:typeof ], + [ sh:description "The uri that defines the possible values for the type definition" ; + sh:maxCount 1 ; + sh:order 2 ; + sh:path linkml:type_uri ], + [ sh:description "the slot must have range string and the value of the slot must equal the specified value" ; + sh:maxCount 1 ; + sh:order 9 ; + sh:path linkml:equals_string ], + [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; + sh:order 47 ; + sh:path skos:closeMatch ], + [ sh:class linkml:AltDescription ; + sh:description "A sourced alternative description for an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 28 ; + sh:path linkml:alt_descriptions ], + [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; + sh:order 46 ; + sh:path skos:exactMatch ], + [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; + sh:order 50 ; + sh:path skos:broadMatch ], + [ sh:description "the primary language used in the sources" ; + sh:maxCount 1 ; + sh:order 39 ; + sh:path schema1:inLanguage ], + [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; + sh:order 45 ; + sh:path skos:mappingRelation ], + [ sh:description "python base type in the LinkML runtime that implements this type definition" ; + sh:maxCount 1 ; + sh:order 1 ; + sh:path linkml:base ], + [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 42 ; + sh:path linkml:deprecated_element_has_possible_replacement ], + [ sh:description "Keywords or tags used to describe the element" ; + sh:order 59 ; + sh:path schema1:keywords ], + [ sh:description "agent that created the element" ; + sh:maxCount 1 ; + sh:order 51 ; + sh:path pav:createdBy ], + [ sh:description "the relative order in which the element occurs, lower values are given precedence" ; + sh:maxCount 1 ; + sh:order 57 ; + sh:path sh:order ], + [ sh:description "An element in another schema which this element instantiates." ; + sh:order 24 ; + sh:path linkml:instantiates ], + [ sh:class linkml:Example ; + sh:description "example usages of an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 34 ; + sh:path linkml:examples ], + [ sh:description "time at which the element was created" ; + sh:maxCount 1 ; + sh:order 53 ; + sh:path pav:createdOn ], + [ sh: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." ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 18 ; + sh:path rdfs:label ], + [ sh:description "Outstanding issues that needs resolution" ; + sh:order 31 ; + sh:path linkml:todos ], + [ sh:description "A list of related entities or URLs that may be of relevance" ; + sh:order 40 ; + sh:path rdfs:seeAlso ], + [ sh:description "for slots with ranges of type number, the value must be equal to or higher than this" ; + sh:maxCount 1 ; + sh:order 12 ; + sh:path linkml:minimum_value ], + [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 41 ; + sh:path linkml:deprecated_element_has_exact_replacement ], + [ sh:description "Causes the slot value to be interpreted as a uriorcurie after prefixing with this string" ; + sh:maxCount 1 ; + sh:order 8 ; + sh:path linkml:implicit_prefix ], + [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; + sh:order 48 ; + sh:path skos:relatedMatch ], + [ sh:description "a textual description of the element's purpose and use" ; + sh:maxCount 1 ; + sh:order 27 ; + sh:path skos:definition ], + [ sh:description "agent that contributed to the element" ; + sh:order 52 ; + sh:path dcterms:contributor ], + [ sh:class linkml:PatternExpression ; + sh:description "the string value of the slot must conform to the regular expression in the pattern expression" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 6 ; + sh:path linkml:structured_pattern ], + [ sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; + sh:order 43 ; + sh:path skos:altLabel ], + [ sh:description "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix" ; + sh:order 19 ; + sh:path linkml:id_prefixes ], + [ sh:description "Controlled terms used to categorize an element." ; + sh:order 58 ; + sh:path dcterms:subject ], + [ sh:class linkml:AnonymousTypeExpression ; + sh:description "holds if all of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 17 ; + sh:path linkml:all_of ], + [ sh:class linkml:LocalName ; + sh:nodeKind sh:BlankNode ; + sh:order 21 ; + sh:path linkml:local_names ] ; + sh:targetClass linkml:TypeDefinition . + +linkml:AnonymousEnumExpression a sh:NodeShape ; + sh:closed true ; + sh:description "An enum_expression that is not named" ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:description "the identifier of an enumeration code set." ; + sh:maxCount 1 ; + sh:order 0 ; + sh:path linkml:code_set ], + [ sh:class linkml:EnumDefinition ; + sh:description "An enum definition that is used as the basis to create a new enum" ; + sh:nodeKind sh:IRI ; + sh:order 7 ; + sh:path linkml:inherits ], + [ sh:description "the version identifier of the enumeration code set" ; + sh:maxCount 1 ; + sh:order 2 ; + sh:path linkml:code_set_version ], + [ sh:class linkml:ReachabilityQuery ; + sh:description "Specifies a query for obtaining a list of permissible values based on graph reachability" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 8 ; + sh:path linkml:reachable_from ], + [ sh:class linkml:AnonymousEnumExpression ; + sh:description "An enum expression that yields a list of permissible values that are to be included, after subtracting the minus set" ; + sh:nodeKind sh:BlankNode ; + sh:order 5 ; + sh:path linkml:include ], + [ sh:class linkml:AnonymousEnumExpression ; + sh:description "An enum expression that yields a list of permissible values that are to be subtracted from the enum" ; + sh:nodeKind sh:BlankNode ; + sh:order 6 ; + sh:path linkml:minus ], + [ sh:description "A list of identifiers that are used to construct a set of permissible values" ; + sh:order 10 ; + sh:path linkml:concepts ], + [ sh:class linkml:MatchQuery ; + sh:description "Specifies a match query that is used to calculate the list of permissible values" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 9 ; + sh:path linkml:matches ], + [ sh:class linkml:PermissibleValue ; + sh:description "A list of possible values for a slot range" ; + sh:nodeKind sh:IRI ; + sh:order 4 ; + sh:path linkml:permissible_values ], + [ sh:description "the version tag of the enumeration code set" ; + sh:maxCount 1 ; + sh:order 1 ; + sh:path linkml:code_set_tag ], + [ sh:description "Defines the specific formula to be used to generate the permissible values." ; + sh:in ( "CODE" "CURIE" "URI" "FHIR_CODING" ) ; + sh:maxCount 1 ; + sh:order 3 ; + sh:path linkml:pv_formula ] ; + sh:targetClass linkml:AnonymousEnumExpression . + +linkml:PathExpression a sh:NodeShape ; + sh:closed true ; + sh:description "An expression that describes an abstract path from an object to another through a sequence of slot lookups" ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:description "id of the schema that defined the element" ; + sh:maxCount 1 ; + sh:order 19 ; + sh:path skos:inScheme ], + [ sh:description "notes and comments about an element intended primarily for external consumption" ; + sh:order 16 ; + sh:path skos:note ], + [ sh:class linkml:Extension ; + sh:description "a tag/text tuple attached to an arbitrary element" ; + sh:nodeKind sh:BlankNode ; + sh:order 8 ; + sh:path linkml:extensions ], + [ sh:description "a textual description of the element's purpose and use" ; + sh:maxCount 1 ; + sh:order 10 ; + sh:path skos:definition ], + [ sh:description "time at which the element was last updated" ; + sh:maxCount 1 ; + sh:order 37 ; + sh:path pav:lastUpdatedOn ], + [ sh:description "Description of why and when this element will no longer be used" ; + sh:maxCount 1 ; + sh:order 13 ; + sh:path linkml:deprecated ], + [ sh:description "true if the slot is to be inversed" ; + sh:maxCount 1 ; + sh:order 5 ; + sh:path linkml:reversed ], + [ sh:description "agent that contributed to the element" ; + sh:order 35 ; + sh:path dcterms:contributor ], + [ sh:class linkml:SlotDefinition ; + sh:description "the slot to traverse" ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 6 ; + sh:path linkml:traverse ], + [ sh:description "time at which the element was created" ; + sh:maxCount 1 ; + sh:order 36 ; + sh:path pav:createdOn ], + [ sh:class linkml:Example ; + sh:description "example usages of an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 17 ; + sh:path linkml:examples ], + [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; + sh:order 29 ; + sh:path skos:exactMatch ], + [ sh:class skosxl:Label ; + sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; + sh:nodeKind sh:BlankNode ; + sh:order 27 ; + sh:path skosxl:altLabel ], + [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 25 ; + sh:path linkml:deprecated_element_has_possible_replacement ], + [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; + sh:order 32 ; + sh:path skos:narrowMatch ], + [ sh:description "Keywords or tags used to describe the element" ; + sh:order 42 ; + sh:path schema1:keywords ], + [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; + sh:order 31 ; + sh:path skos:relatedMatch ], + [ sh:description "editorial notes about an element intended primarily for internal consumption" ; + sh:order 15 ; + sh:path skos:editorialNote ], + [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; + sh:order 28 ; + sh:path skos:mappingRelation ], + [ sh:class linkml:PathExpression ; + sh:description "holds if all of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 3 ; + sh:path linkml:all_of ], + [ sh:description "the relative order in which the element occurs, lower values are given precedence" ; + sh:maxCount 1 ; + sh:order 40 ; + sh:path sh:order ], + [ sh:description "agent that modified the element" ; + sh:maxCount 1 ; + sh:order 38 ; + sh:path oslc:modifiedBy ], + [ sh:description "Controlled terms used to categorize an element." ; + sh:order 41 ; + sh:path dcterms:subject ], + [ sh:class linkml:AltDescription ; + sh:description "A sourced alternative description for an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 11 ; + sh:path linkml:alt_descriptions ], + [ sh:description "the imports entry that this element was derived from. Empty means primary source" ; + sh:maxCount 1 ; + sh:order 20 ; + sh:path linkml:imported_from ], + [ sh:description "status of the element" ; + sh:maxCount 1 ; + sh:order 39 ; + sh:path bibo:status ], + [ sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; + sh:order 26 ; + sh:path skos:altLabel ], + [ sh:class linkml:PathExpression ; + sh:description "holds if at least one of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 2 ; + sh:path linkml:any_of ], + [ sh:description "the primary language used in the sources" ; + sh:maxCount 1 ; + sh:order 22 ; + sh:path schema1:inLanguage ], + [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; + sh:order 33 ; + sh:path skos:broadMatch ], + [ sh:class linkml:AnonymousClassExpression ; + sh:description "A range that is described as a boolean expression combining existing ranges" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 7 ; + sh:path linkml:range_expression ], + [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 24 ; + sh:path linkml:deprecated_element_has_exact_replacement ], + [ sh:class linkml:Annotation ; + sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; + sh:nodeKind sh:BlankNode ; + sh:order 9 ; + sh:path linkml:annotations ], + [ sh:class linkml:PathExpression ; + sh:description "holds if only one of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 4 ; + sh:path linkml:exactly_one_of ], + [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; + sh:order 30 ; + sh:path skos:closeMatch ], + [ sh:description "A list of related entities or URLs that may be of relevance" ; + sh:order 23 ; + sh:path rdfs:seeAlso ], + [ sh:description "agent that created the element" ; + sh:maxCount 1 ; + sh:order 34 ; + sh:path pav:createdBy ], + [ sh:class linkml:PathExpression ; + sh:description "holds if none of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 1 ; + sh:path linkml:none_of ], + [ sh:class linkml:PathExpression ; + sh:description "in a sequential list, this indicates the next member" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 0 ; + sh:path linkml:followed_by ], + [ sh:description "A related resource from which the element is derived." ; + sh:maxCount 1 ; + sh:order 21 ; + sh:path dcterms:source ], + [ sh:class linkml:SubsetDefinition ; + sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; + sh:nodeKind sh:IRI ; + sh:order 18 ; + sh:path OIO:inSubset ], + [ sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; + sh:maxCount 1 ; + sh:order 12 ; + sh:path dcterms:title ], + [ sh:description "Outstanding issues that needs resolution" ; + sh:order 14 ; + sh:path linkml:todos ] ; + sh:targetClass linkml:PathExpression . + +linkml:PatternExpression a sh:NodeShape ; + sh:closed true ; + sh:description "a regular expression pattern used to evaluate conformance of a string" ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; + sh:order 25 ; + sh:path skos:closeMatch ], + [ sh:description "A related resource from which the element is derived." ; + sh:maxCount 1 ; + sh:order 16 ; + sh:path dcterms:source ], + [ sh:class linkml:SubsetDefinition ; + sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; + sh:nodeKind sh:IRI ; + sh:order 13 ; + sh:path OIO:inSubset ], + [ sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; + sh:order 21 ; + sh:path skos:altLabel ], + [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; + sh:order 24 ; + sh:path skos:exactMatch ], + [ sh:class linkml:Annotation ; + sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; + sh:nodeKind sh:BlankNode ; + sh:order 4 ; + sh:path linkml:annotations ], + [ sh:description "Outstanding issues that needs resolution" ; + sh:order 9 ; + sh:path linkml:todos ], + [ sh:description "the string value of the slot must conform to this regular expression expressed in the string. May be interpolated." ; + sh:maxCount 1 ; + sh:order 0 ; + sh:path linkml:syntax ], + [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 20 ; + sh:path linkml:deprecated_element_has_possible_replacement ], + [ sh:description "the primary language used in the sources" ; + sh:maxCount 1 ; + sh:order 17 ; + sh:path schema1:inLanguage ], + [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; + sh:order 28 ; + sh:path skos:broadMatch ], + [ sh:description "Controlled terms used to categorize an element." ; + sh:order 36 ; + sh:path dcterms:subject ], + [ sh:description "editorial notes about an element intended primarily for internal consumption" ; + sh:order 10 ; + sh:path skos:editorialNote ], + [ sh:description "agent that created the element" ; + sh:maxCount 1 ; + sh:order 29 ; + sh:path pav:createdBy ], + [ sh:description "agent that modified the element" ; + sh:maxCount 1 ; + sh:order 33 ; + sh:path oslc:modifiedBy ], + [ sh:description "id of the schema that defined the element" ; + sh:maxCount 1 ; + sh:order 14 ; + sh:path skos:inScheme ], + [ sh:description "status of the element" ; + sh:maxCount 1 ; + sh:order 34 ; + sh:path bibo:status ], + [ sh:description "time at which the element was last updated" ; + sh:maxCount 1 ; + sh:order 32 ; + sh:path pav:lastUpdatedOn ], + [ sh:description "notes and comments about an element intended primarily for external consumption" ; + sh:order 11 ; + sh:path skos:note ], + [ sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; + sh:maxCount 1 ; + sh:order 7 ; + sh:path dcterms:title ], + [ sh:description "if true then the pattern is first string interpolated" ; + sh:maxCount 1 ; + sh:order 1 ; + sh:path linkml:interpolated ], + [ sh:description "time at which the element was created" ; + sh:maxCount 1 ; + sh:order 31 ; + sh:path pav:createdOn ], + [ sh:class skosxl:Label ; + sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; + sh:nodeKind sh:BlankNode ; + sh:order 22 ; + sh:path skosxl:altLabel ], + [ sh:description "agent that contributed to the element" ; + sh:order 30 ; + sh:path dcterms:contributor ], + [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 19 ; + sh:path linkml:deprecated_element_has_exact_replacement ], + [ sh:description "the relative order in which the element occurs, lower values are given precedence" ; + sh:maxCount 1 ; + sh:order 35 ; + sh:path sh:order ], + [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; + sh:order 26 ; + sh:path skos:relatedMatch ], + [ sh:description "a textual description of the element's purpose and use" ; + sh:maxCount 1 ; + sh:order 5 ; + sh:path skos:definition ], + [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; + sh:order 27 ; + sh:path skos:narrowMatch ], + [ sh:description "if not true then the pattern must match the whole string, as if enclosed in ^...$" ; + sh:maxCount 1 ; + sh:order 2 ; + sh:path linkml:partial_match ], + [ sh:class linkml:Extension ; + sh:description "a tag/text tuple attached to an arbitrary element" ; + sh:nodeKind sh:BlankNode ; + sh:order 3 ; + sh:path linkml:extensions ], + [ sh:class linkml:AltDescription ; + sh:description "A sourced alternative description for an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 6 ; + sh:path linkml:alt_descriptions ], + [ sh:class linkml:Example ; + sh:description "example usages of an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 12 ; + sh:path linkml:examples ], + [ sh:description "Description of why and when this element will no longer be used" ; + sh:maxCount 1 ; + sh:order 8 ; + sh:path linkml:deprecated ], + [ sh:description "the imports entry that this element was derived from. Empty means primary source" ; + sh:maxCount 1 ; + sh:order 15 ; + sh:path linkml:imported_from ], + [ sh:description "A list of related entities or URLs that may be of relevance" ; + sh:order 18 ; + sh:path rdfs:seeAlso ], + [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; + sh:order 23 ; + sh:path skos:mappingRelation ], + [ sh:description "Keywords or tags used to describe the element" ; + sh:order 37 ; + sh:path schema1:keywords ] ; + sh:targetClass linkml:PatternExpression . + +qudt:Unit a sh:NodeShape ; + sh:closed true ; + sh:description "A unit of measure, or unit, is a particular quantity value that has been chosen as a scale for measuring other quantities the same kind (more generally of equivalent dimension)." ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:description "Expression for deriving this unit from other units" ; + sh:maxCount 1 ; + sh:order 5 ; + sh:path linkml:derivation ], + [ sh:description "the spelled out name of the unit, for example, meter" ; + sh:maxCount 1 ; + sh:order 2 ; + sh:path rdfs:label ], + [ sh:description "An abbreviation for a unit is a short ASCII string that is used in place of the full name for the unit in contexts where non-ASCII characters would be problematic, or where using the abbreviation will enhance readability. When a power of a base unit needs to be expressed, such as squares this can be done using abbreviations rather than symbols (source: qudt)" ; + sh:maxCount 1 ; + sh:order 1 ; + sh:path qudt:abbreviation ], + [ sh:description "name of the unit encoded as a symbol" ; + sh:maxCount 1 ; + sh:order 0 ; + sh:path qudt:symbol ], + [ sh:description "Concept in a vocabulary or ontology that denotes the kind of quanity being measured, e.g. length" ; + sh:maxCount 1 ; + sh:order 6 ; + sh:path qudt:hasQuantityKind ], + [ sh:description "associates a QUDT unit with its UCUM code (case-sensitive)." ; + sh:maxCount 1 ; + sh:order 4 ; + sh:path qudt:ucumCode ], + [ sh:description "Used to link a unit to equivalent concepts in ontologies such as UO, SNOMED, OEM, OBOE, NCIT" ; + sh:order 3 ; + sh:path skos:exactMatch ], + [ sh:maxCount 1 ; + sh:order 7 ; + sh:path qudt:iec61360Code ] ; + sh:targetClass qudt:Unit . + +linkml:ClassDefinition a sh:NodeShape ; + sh:closed true ; + sh:description "an element whose instances are complex objects that may have slot-value assignments" ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:description "true if this class represents a relationship rather than an entity" ; + sh:maxCount 1 ; + sh:order 12 ; + sh:path linkml:represents_relationship ], + [ sh:class linkml:UniqueKey ; + sh:description "A collection of named unique keys for this class. Unique keys may be singular or compound." ; + sh:nodeKind sh:BlankNode ; + sh:order 8 ; + sh:path linkml:unique_keys ], + [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; + sh:order 57 ; + sh:path skos:relatedMatch ], + [ sh:class linkml:ClassDefinition ; + sh:description "indicates that the domain element consists exactly of the members of the element in the range." ; + sh:nodeKind sh:IRI ; + sh:order 5 ; + sh:path linkml:union_of ], + [ sh:description "agent that contributed to the element" ; + sh:order 61 ; + sh:path dcterms:contributor ], + [ sh:class linkml:SlotDefinition ; + sh:description "expresses constraints on a group of slots for a class expression" ; + sh:nodeKind sh:IRI ; + sh:order 19 ; + sh:path linkml:slot_conditions ], + [ sh:description "A list of related entities or URLs that may be of relevance" ; + sh:order 49 ; + sh:path rdfs:seeAlso ], + [ sh:description "Outstanding issues that needs resolution" ; + sh:order 40 ; + sh:path linkml:todos ], + [ sh:description "DEPRECATED -- rdfs:subClassOf to be emitted in OWL generation" ; + sh:maxCount 1 ; + sh:order 4 ; + sh:path linkml:subclass_of ], + [ sh:description "Keywords or tags used to describe the element" ; + sh:order 68 ; + sh:path schema1:keywords ], + [ sh:description "the primary language used in the sources" ; + sh:maxCount 1 ; + sh:order 48 ; + sh:path schema1:inLanguage ], + [ sh:description "A related resource from which the element is derived." ; + sh:maxCount 1 ; + sh:order 47 ; + sh:path dcterms:source ], + [ sh:description "Controlled terms used to categorize an element." ; + sh:order 67 ; + sh:path dcterms:subject ], + [ sh:class linkml:Extension ; + sh:description "a tag/text tuple attached to an arbitrary element" ; + sh:nodeKind sh:BlankNode ; + sh:order 34 ; + sh:path linkml:extensions ], + [ sh:class linkml:ClassDefinition ; + sh: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" ; + sh:nodeKind sh:IRI ; + sh:order 13 ; + sh:path linkml:disjoint_with ], + [ sh: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." ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 27 ; + sh:path rdfs:label ], + [ sh:class linkml:AnonymousClassExpression ; + sh:description "holds if all of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 18 ; + sh:path linkml:all_of ], + [ sh:class linkml:AltDescription ; + sh:description "A sourced alternative description for an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 37 ; + sh:path linkml:alt_descriptions ], + [ sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; + sh:maxCount 1 ; + sh:order 38 ; + sh:path dcterms:title ], + [ sh:class linkml:AnonymousClassExpression ; + sh:description "The collection of classification rules that apply to all members of this class. Classification rules allow for automatically assigning the instantiated type of an instance." ; + sh:nodeKind sh:BlankNode ; + sh:order 10 ; + sh:path linkml:classification_rules ], + [ sh:class skosxl:Label ; + sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; + sh:nodeKind sh:BlankNode ; + sh:order 53 ; + sh:path skosxl:altLabel ], + [ sh:class linkml:LocalName ; + sh:nodeKind sh:BlankNode ; + sh:order 30 ; + sh:path linkml:local_names ], + [ sh:description "If true then all direct is_a children are mutually disjoint and share no instances in common" ; + sh:maxCount 1 ; + sh:order 14 ; + sh:path linkml:children_are_mutually_disjoint ], + [ sh:class linkml:Annotation ; + sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; + sh:nodeKind sh:BlankNode ; + sh:order 35 ; + sh:path linkml:annotations ], + [ sh:class linkml:AnonymousClassExpression ; + sh:description "holds if none of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 17 ; + sh:path linkml:none_of ], + [ sh:class linkml:SlotDefinition ; + sh:description "The combination of is a plus defining slots form a genus-differentia definition, or the set of necessary and sufficient conditions that can be transformed into an OWL equivalence axiom" ; + sh:nodeKind sh:IRI ; + sh:order 6 ; + sh:path linkml:defining_slots ], + [ sh:description "the imports entry that this element was derived from. Empty means primary source" ; + sh:maxCount 1 ; + sh:order 46 ; + sh:path linkml:imported_from ], + [ sh:description "Description of why and when this element will no longer be used" ; + sh:maxCount 1 ; + sh:order 39 ; + sh:path linkml:deprecated ], + [ sh:class linkml:SlotDefinition ; + sh:description "Inline definition of slots" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path linkml:attributes ], + [ sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; + sh:order 52 ; + sh:path skos:altLabel ], + [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; + sh:order 54 ; + sh:path skos:mappingRelation ], + [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; + sh:order 58 ; + sh:path skos:narrowMatch ], + [ sh:class linkml:SubsetDefinition ; + sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; + sh:nodeKind sh:IRI ; + sh:order 44 ; + sh:path OIO:inSubset ], + [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; + sh:order 56 ; + sh:path skos:closeMatch ], + [ sh:description "if true then induced/mangled slot names are not created for class_usage and attributes" ; + sh:maxCount 1 ; + sh:order 11 ; + sh:path linkml:slot_names_unique ], + [ sh:class linkml:ClassRule ; + sh:description "the collection of rules that apply to all members of this class" ; + sh:nodeKind sh:BlankNode ; + sh:order 9 ; + sh:path sh:rule ], + [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; + sh:order 59 ; + sh:path skos:broadMatch ], + [ sh:class linkml:AnonymousClassExpression ; + sh:description "holds if only one of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 16 ; + sh:path linkml:exactly_one_of ], + [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 50 ; + sh:path linkml:deprecated_element_has_exact_replacement ], + [ sh: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""" ; + sh:maxCount 1 ; + sh:order 26 ; + sh:path linkml:string_serialization ], + [ sh:description "agent that created the element" ; + sh:maxCount 1 ; + sh:order 60 ; + sh:path pav:createdBy ], + [ sh:description "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element." ; + sh:order 32 ; + sh:path linkml:implements ], + [ sh:class linkml:Example ; + sh:description "example usages of an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 43 ; + sh:path linkml:examples ], + [ sh:description "An established standard to which the element conforms." ; + sh:maxCount 1 ; + sh:order 31 ; + sh:path dcterms:conformsTo ], + [ sh:description "editorial notes about an element intended primarily for internal consumption" ; + sh:order 41 ; + sh:path skos:editorialNote ], + [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 51 ; + sh:path linkml:deprecated_element_has_possible_replacement ], + [ sh:description "the relative order in which the element occurs, lower values are given precedence" ; + sh:maxCount 1 ; + sh:order 66 ; + sh:path sh:order ], + [ sh:description "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri" ; + sh:maxCount 1 ; + sh:order 29 ; + sh:path linkml:definition_uri ], + [ sh:class linkml:ClassDefinition ; + sh: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." ; + sh:nodeKind sh:IRI ; + sh:order 24 ; + sh:path linkml:apply_to ], + [ sh:description "Indicates the class or slot is intended to be inherited from without being an is_a parent. mixins should not be inherited from using is_a, except by other mixins." ; + sh:maxCount 1 ; + sh:order 22 ; + sh:path linkml:mixin ], + [ sh:description "a textual description of the element's purpose and use" ; + sh:maxCount 1 ; + sh:order 36 ; + sh:path skos:definition ], + [ sh:description "agent that modified the element" ; + sh:maxCount 1 ; + sh:order 64 ; + sh:path oslc:modifiedBy ], + [ sh:description "Indicates that this is the Container class which forms the root of the serialized document structure in tree serializations" ; + sh:maxCount 1 ; + sh:order 7 ; + sh:path linkml:tree_root ], + [ sh:description "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix" ; + sh:order 28 ; + sh:path linkml:id_prefixes ], + [ sh:class linkml:ClassDefinition ; + sh:description "A collection of secondary parent mixin classes from which inheritable metaslots are propagated" ; + sh:nodeKind sh:IRI ; + sh:order 23 ; + sh:path linkml:mixins ], + [ sh:class linkml:ClassDefinition ; + sh:description "A primary parent class from which inheritable metaslots are propagated" ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 20 ; + sh:path linkml:is_a ], + [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; + sh:order 55 ; + sh:path skos:exactMatch ], + [ sh:class linkml:SlotDefinition ; + sh:description "collection of slot names that are applicable to a class" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path linkml:slots ], + [ sh:description "time at which the element was last updated" ; + sh:maxCount 1 ; + sh:order 63 ; + sh:path pav:lastUpdatedOn ], + [ sh:description "time at which the element was created" ; + sh:maxCount 1 ; + sh:order 62 ; + sh:path pav:createdOn ], + [ sh:description "notes and comments about an element intended primarily for external consumption" ; + sh:order 42 ; + sh:path skos:note ], + [ sh:description "status of the element" ; + sh:maxCount 1 ; + sh:order 65 ; + sh:path bibo:status ], + [ sh:description "An element in another schema which this element instantiates." ; + sh:order 33 ; + sh:path linkml:instantiates ], + [ sh:description "id of the schema that defined the element" ; + sh:maxCount 1 ; + sh:order 45 ; + sh:path skos:inScheme ], + [ sh: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 hierarchy into an enumerated list of possible values in every serialization of the model." ; + sh:order 25 ; + sh:path linkml:values_from ], + [ sh:class linkml:SlotDefinition ; + sh:description "the refinement of a slot in the context of the containing class definition." ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path linkml:slot_usage ], + [ sh:description "URI of the class that provides a semantic interpretation of the element in a linked data context. The URI may come from any namespace and may be shared between schemas" ; + sh:maxCount 1 ; + sh:order 3 ; + sh:path linkml:class_uri ], + [ sh:description "Indicates the class or slot cannot be directly instantiated and is intended for grouping purposes." ; + sh:maxCount 1 ; + sh:order 21 ; + sh:path linkml:abstract ], + [ sh:class linkml:AnonymousClassExpression ; + sh:description "holds if at least one of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 15 ; + sh:path linkml:any_of ] ; + sh:targetClass linkml:ClassDefinition . + +linkml:Definition a sh:NodeShape ; + sh:closed false ; + sh:description "abstract base class for core metaclasses" ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; + sh:order 35 ; + sh:path skos:exactMatch ], + [ sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; + sh:maxCount 1 ; + sh:order 18 ; + sh:path dcterms:title ], + [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; + sh:order 37 ; + sh:path skos:relatedMatch ], + [ sh:class linkml:LocalName ; + sh:nodeKind sh:BlankNode ; + sh:order 10 ; + sh:path linkml:local_names ], + [ sh:class linkml:AltDescription ; + sh:description "A sourced alternative description for an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 17 ; + sh:path linkml:alt_descriptions ], + [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 31 ; + sh:path linkml:deprecated_element_has_possible_replacement ], + [ sh:description "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri" ; + sh:maxCount 1 ; + sh:order 9 ; + sh:path linkml:definition_uri ], + [ sh:description "A related resource from which the element is derived." ; + sh:maxCount 1 ; + sh:order 27 ; + sh:path dcterms:source ], + [ sh:class linkml:Extension ; + sh:description "a tag/text tuple attached to an arbitrary element" ; + sh:nodeKind sh:BlankNode ; + sh:order 14 ; + sh:path linkml:extensions ], + [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; + sh:order 36 ; + sh:path skos:closeMatch ], + [ sh:description "time at which the element was last updated" ; + sh:maxCount 1 ; + sh:order 43 ; + sh:path pav:lastUpdatedOn ], + [ sh:description "Controlled terms used to categorize an element." ; + sh:order 47 ; + sh:path dcterms:subject ], + [ sh:description "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix" ; + sh:order 8 ; + sh:path linkml:id_prefixes ], + [ sh:description "the primary language used in the sources" ; + sh:maxCount 1 ; + sh:order 28 ; + sh:path schema1:inLanguage ], + [ sh: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." ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 7 ; + sh:path rdfs:label ], + [ sh:description "status of the element" ; + sh:maxCount 1 ; + sh:order 45 ; + sh:path bibo:status ], + [ sh:description "An element in another schema which this element instantiates." ; + sh:order 13 ; + sh:path linkml:instantiates ], + [ sh:class linkml:SubsetDefinition ; + sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; + sh:nodeKind sh:IRI ; + sh:order 24 ; + sh:path OIO:inSubset ], + [ sh:description "Indicates the class or slot is intended to be inherited from without being an is_a parent. mixins should not be inherited from using is_a, except by other mixins." ; + sh:maxCount 1 ; + sh:order 2 ; + sh:path linkml:mixin ], + [ sh:class linkml:Definition ; + sh:description "A primary parent class or slot from which inheritable metaslots are propagated from. 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" ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path linkml:is_a ], + [ sh:description "A list of related entities or URLs that may be of relevance" ; + sh:order 29 ; + sh:path rdfs:seeAlso ], + [ sh:description "the relative order in which the element occurs, lower values are given precedence" ; + sh:maxCount 1 ; + sh:order 46 ; + sh:path sh:order ], + [ sh:class linkml:Example ; + sh:description "example usages of an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 23 ; + sh:path linkml:examples ], + [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; + sh:order 39 ; + sh:path skos:broadMatch ], + [ sh:description "time at which the element was created" ; + sh:maxCount 1 ; + sh:order 42 ; + sh:path pav:createdOn ], + [ sh:class linkml:Definition ; + sh:description "A collection of secondary parent classes or slots from which inheritable metaslots are propagated from." ; + sh:nodeKind sh:IRI ; + sh:order 3 ; + sh:path linkml:mixins ], + [ sh:description "editorial notes about an element intended primarily for internal consumption" ; + sh:order 21 ; + sh:path skos:editorialNote ], + [ sh:description "Indicates the class or slot cannot be directly instantiated and is intended for grouping purposes." ; + sh:maxCount 1 ; + sh:order 1 ; + sh:path linkml:abstract ], + [ sh:description "notes and comments about an element intended primarily for external consumption" ; + sh:order 22 ; + sh:path skos:note ], + [ sh:description "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element." ; + sh:order 12 ; + sh:path linkml:implements ], + [ sh: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""" ; + sh:maxCount 1 ; + sh:order 6 ; + sh:path linkml:string_serialization ], + [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; + sh:order 38 ; + sh:path skos:narrowMatch ], + [ sh:description "agent that created the element" ; + sh:maxCount 1 ; + sh:order 40 ; + sh:path pav:createdBy ], + [ sh:description "Keywords or tags used to describe the element" ; + sh:order 48 ; + sh:path schema1:keywords ], + [ sh:description "a textual description of the element's purpose and use" ; + sh:maxCount 1 ; + sh:order 16 ; + sh:path skos:definition ], + [ sh:class skosxl:Label ; + sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; + sh:nodeKind sh:BlankNode ; + sh:order 33 ; + sh:path skosxl:altLabel ], + [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; + sh:order 34 ; + sh:path skos:mappingRelation ], + [ sh:description "Outstanding issues that needs resolution" ; + sh:order 20 ; + sh:path linkml:todos ], + [ sh: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 hierarchy into an enumerated list of possible values in every serialization of the model." ; + sh:order 5 ; + sh:path linkml:values_from ], + [ sh:description "agent that modified the element" ; + sh:maxCount 1 ; + sh:order 44 ; + sh:path oslc:modifiedBy ], + [ sh:description "An established standard to which the element conforms." ; + sh:maxCount 1 ; + sh:order 11 ; + sh:path dcterms:conformsTo ], + [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 30 ; + sh:path linkml:deprecated_element_has_exact_replacement ], + [ sh:class linkml:Definition ; + sh: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." ; + sh:nodeKind sh:IRI ; + sh:order 4 ; + sh:path linkml:apply_to ], + [ sh:description "Description of why and when this element will no longer be used" ; + sh:maxCount 1 ; + sh:order 19 ; + sh:path linkml:deprecated ], + [ sh:description "the imports entry that this element was derived from. Empty means primary source" ; + sh:maxCount 1 ; + sh:order 26 ; + sh:path linkml:imported_from ], + [ sh:description "id of the schema that defined the element" ; + sh:maxCount 1 ; + sh:order 25 ; + sh:path skos:inScheme ], + [ sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; + sh:order 32 ; + sh:path skos:altLabel ], + [ sh:description "agent that contributed to the element" ; + sh:order 41 ; + sh:path dcterms:contributor ], + [ sh:class linkml:Annotation ; + sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; + sh:nodeKind sh:BlankNode ; + sh:order 15 ; + sh:path linkml:annotations ] ; + sh:targetClass linkml:Definition . + +linkml:LocalName a sh:NodeShape ; + sh:closed true ; + sh:description "an attributed label" ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:description "the ncname of the source of the name" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 0 ; + sh:path linkml:local_name_source ], + [ sh:description "a name assigned to an element in a given ontology" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 1 ; + sh:path skos:altLabel ] ; + sh:targetClass linkml:LocalName . + +linkml:AnonymousTypeExpression a sh:NodeShape ; + sh:closed true ; + sh:description "A type expression that is not a top-level named type definition. Used for nesting." ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:class linkml:AnonymousTypeExpression ; + sh:description "holds if all of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 12 ; + sh:path linkml:all_of ], + [ sh:class linkml:PatternExpression ; + sh:description "the string value of the slot must conform to the regular expression in the pattern expression" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 1 ; + sh:path linkml:structured_pattern ], + [ sh:class linkml:AnonymousTypeExpression ; + sh:description "holds if at least one of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 11 ; + sh:path linkml:any_of ], + [ sh:description "the slot must have range string and the value of the slot must equal the specified value" ; + sh:maxCount 1 ; + sh:order 4 ; + sh:path linkml:equals_string ], + [ sh:class qudt:Unit ; + sh:description "an encoding of a unit" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 2 ; + sh:path qudt:unit ], + [ sh:description "Causes the slot value to be interpreted as a uriorcurie after prefixing with this string" ; + sh:maxCount 1 ; + sh:order 3 ; + sh:path linkml:implicit_prefix ], + [ sh:description "the slot must have range string and the value of the slot must equal one of the specified values" ; + sh:order 5 ; + sh:path linkml:equals_string_in ], + [ sh:description "for slots with ranges of type number, the value must be equal to or lowe than this" ; + sh:maxCount 1 ; + sh:order 8 ; + sh:path linkml:maximum_value ], + [ sh:description "for slots with ranges of type number, the value must be equal to or higher than this" ; + sh:maxCount 1 ; + sh:order 7 ; + sh:path linkml:minimum_value ], + [ sh:class linkml:AnonymousTypeExpression ; + sh:description "holds if only one of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 10 ; + sh:path linkml:exactly_one_of ], + [ sh:class linkml:AnonymousTypeExpression ; + sh:description "holds if none of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 9 ; + sh:path linkml:none_of ], + [ sh:description "the string value of the slot must conform to this regular expression expressed in the string" ; + sh:maxCount 1 ; + sh:order 0 ; + sh:path linkml:pattern ], + [ sh:description "the slot must have range of a number and the value of the slot must equal the specified value" ; + sh:maxCount 1 ; + sh:order 6 ; + sh:path linkml:equals_number ] ; + sh:targetClass linkml:AnonymousTypeExpression . + +linkml:AnonymousSlotExpression a sh:NodeShape ; + sh:closed true ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:description "A related resource from which the element is derived." ; + sh:maxCount 1 ; + sh:order 39 ; + sh:path dcterms:source ], + [ sh:description "the value of the slot must equal the value of the evaluated expression" ; + sh:maxCount 1 ; + sh:order 17 ; + sh:path linkml:equals_expression ], + [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; + sh:order 51 ; + sh:path skos:broadMatch ], + [ sh:class linkml:AnonymousClassExpression ; + sh:description "A range that is described as a boolean expression combining existing ranges" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 1 ; + sh:path linkml:range_expression ], + [ sh:class linkml:Annotation ; + sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; + sh:nodeKind sh:BlankNode ; + sh:order 27 ; + sh:path linkml:annotations ], + [ sh:class linkml:EnumExpression ; + sh:description "An inlined enumeration" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 2 ; + sh:path linkml:enum_range ], + [ sh:description "the relative order in which the element occurs, lower values are given precedence" ; + sh:maxCount 1 ; + sh:order 58 ; + sh:path sh:order ], + [ sh:description "the maximum number of entries for a multivalued slot" ; + sh:maxCount 1 ; + sh:order 19 ; + sh:path linkml:maximum_cardinality ], + [ sh:class linkml:AnonymousSlotExpression ; + sh:description "holds if all of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 25 ; + sh:path linkml:all_of ], + [ sh:description "agent that modified the element" ; + sh:maxCount 1 ; + sh:order 56 ; + sh:path oslc:modifiedBy ], + [ sh: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." ; + sh:maxCount 1 ; + sh:order 5 ; + sh:path linkml:inlined ], + [ sh:description "the slot must have range of a number and the value of the slot must equal the specified value" ; + sh:maxCount 1 ; + sh:order 16 ; + sh:path linkml:equals_number ], + [ sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; + sh:order 44 ; + sh:path skos:altLabel ], + [ sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; + sh:maxCount 1 ; + sh:order 30 ; + sh:path dcterms:title ], + [ sh:class linkml:AnonymousSlotExpression ; + sh:description "the value of the slot is multivalued with all members satisfying the condition" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 21 ; + sh:path linkml:all_members ], + [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; + sh:order 50 ; + sh:path skos:narrowMatch ], + [ sh:class linkml:AnonymousSlotExpression ; + sh:description "the value of the slot is multivalued with at least one member satisfying the condition" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 20 ; + sh:path linkml:has_member ], + [ sh:description "if true then a value must be present (for lists there must be at least one value). If false then a value must be absent (for lists, must be empty)" ; + sh:in ( "UNCOMMITTED" "PRESENT" "ABSENT" ) ; + sh:maxCount 1 ; + sh:order 13 ; + sh:path linkml:value_presence ], + [ sh:description "notes and comments about an element intended primarily for external consumption" ; + sh:order 34 ; + sh:path skos:note ], + [ sh:description "the slot must have range string and the value of the slot must equal one of the specified values" ; + sh:order 15 ; + sh:path linkml:equals_string_in ], + [ sh:class linkml:PatternExpression ; + sh:description "the string value of the slot must conform to the regular expression in the pattern expression" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 10 ; + sh:path linkml:structured_pattern ], + [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; + sh:order 46 ; + sh:path skos:mappingRelation ], + [ sh:description "Outstanding issues that needs resolution" ; + sh:order 32 ; + sh:path linkml:todos ], + [ sh:description "the imports entry that this element was derived from. Empty means primary source" ; + sh:maxCount 1 ; + sh:order 38 ; + sh:path linkml:imported_from ], + [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; + sh:order 47 ; + sh:path skos:exactMatch ], + [ sh:description "the string value of the slot must conform to this regular expression expressed in the string" ; + sh:maxCount 1 ; + sh:order 9 ; + sh:path linkml:pattern ], + [ sh:description "A list of related entities or URLs that may be of relevance" ; + sh:order 41 ; + sh:path rdfs:seeAlso ], + [ sh:class linkml:AnonymousSlotExpression ; + sh:description "holds if none of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 22 ; + sh:path linkml:none_of ], + [ sh:description "agent that contributed to the element" ; + sh:order 53 ; + sh:path dcterms:contributor ], + [ sh:class linkml:Example ; + sh:description "example usages of an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 35 ; + sh:path linkml:examples ], + [ sh:description "for slots with ranges of type number, the value must be equal to or higher than this" ; + sh:maxCount 1 ; + sh:order 7 ; + sh:path linkml:minimum_value ], + [ sh:description "editorial notes about an element intended primarily for internal consumption" ; + sh:order 33 ; + sh:path skos:editorialNote ], + [ sh:description "time at which the element was last updated" ; + sh:maxCount 1 ; + sh:order 55 ; + sh:path pav:lastUpdatedOn ], + [ sh:class qudt:Unit ; + sh:description "an encoding of a unit" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 11 ; + sh:path qudt:unit ], + [ sh:description "Description of why and when this element will no longer be used" ; + sh:maxCount 1 ; + sh:order 31 ; + sh:path linkml:deprecated ], + [ sh:description "Keywords or tags used to describe the element" ; + sh:order 60 ; + sh:path schema1:keywords ], + [ sh:description "true means that the slot should be present in instances of the class definition, but this is not required" ; + sh:maxCount 1 ; + sh:order 4 ; + sh:path linkml:recommended ], + [ sh:class linkml:Extension ; + sh:description "a tag/text tuple attached to an arbitrary element" ; + sh:nodeKind sh:BlankNode ; + sh:order 26 ; + sh:path linkml:extensions ], + [ sh:description "Controlled terms used to categorize an element." ; + sh:order 59 ; + sh:path dcterms:subject ], + [ sh:description "time at which the element was created" ; + sh:maxCount 1 ; + sh:order 54 ; + sh:path pav:createdOn ], + [ sh:description "agent that created the element" ; + sh:maxCount 1 ; + sh:order 52 ; + sh:path pav:createdBy ], + [ sh:class linkml:SubsetDefinition ; + sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; + sh:nodeKind sh:IRI ; + sh:order 36 ; + sh:path OIO:inSubset ], + [ sh:description "Causes the slot value to be interpreted as a uriorcurie after prefixing with this string" ; + sh:maxCount 1 ; + sh:order 12 ; + sh:path linkml:implicit_prefix ], + [ sh: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." ; + sh:maxCount 1 ; + sh:order 6 ; + sh:path linkml:inlined_as_list ], + [ sh:class linkml:Element ; + sh: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 +""" ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path linkml:range ], + [ sh:class skosxl:Label ; + sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; + sh:nodeKind sh:BlankNode ; + sh:order 45 ; + sh:path skosxl:altLabel ], + [ sh:description "a textual description of the element's purpose and use" ; + sh:maxCount 1 ; + sh:order 28 ; + sh:path skos:definition ], + [ sh:description "true means that the slot must be present in instances of the class definition" ; + sh:maxCount 1 ; + sh:order 3 ; + sh:path linkml:required ], + [ sh:description "the primary language used in the sources" ; + sh:maxCount 1 ; + sh:order 40 ; + sh:path schema1:inLanguage ], + [ sh:description "id of the schema that defined the element" ; + sh:maxCount 1 ; + sh:order 37 ; + sh:path skos:inScheme ], + [ sh:class linkml:AltDescription ; + sh:description "A sourced alternative description for an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 29 ; + sh:path linkml:alt_descriptions ], + [ sh:description "the slot must have range string and the value of the slot must equal the specified value" ; + sh:maxCount 1 ; + sh:order 14 ; + sh:path linkml:equals_string ], + [ sh:class linkml:AnonymousSlotExpression ; + sh:description "holds if at least one of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 24 ; + sh:path linkml:any_of ], + [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; + sh:order 48 ; + sh:path skos:closeMatch ], + [ sh:class linkml:AnonymousSlotExpression ; + sh:description "holds if only one of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 23 ; + sh:path linkml:exactly_one_of ], + [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 42 ; + sh:path linkml:deprecated_element_has_exact_replacement ], + [ sh:description "for slots with ranges of type number, the value must be equal to or lowe than this" ; + sh:maxCount 1 ; + sh:order 8 ; + sh:path linkml:maximum_value ], + [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; + sh:order 49 ; + sh:path skos:relatedMatch ], + [ sh:description "the minimum number of entries for a multivalued slot" ; + sh:maxCount 1 ; + sh:order 18 ; + sh:path linkml:minimum_cardinality ], + [ sh:description "status of the element" ; + sh:maxCount 1 ; + sh:order 57 ; + sh:path bibo:status ], + [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 43 ; + sh:path linkml:deprecated_element_has_possible_replacement ] ; + sh:targetClass linkml:AnonymousSlotExpression . + +skosxl:Label a sh:NodeShape ; + sh:closed true ; + sh:description "object that contains meta data about a synonym or alias including where it came from (source) and its scope (narrow, broad, etc.)" ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 19 ; + sh:path linkml:deprecated_element_has_exact_replacement ], + [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; + sh:order 25 ; + sh:path skos:closeMatch ], + [ sh:description "time at which the element was last updated" ; + sh:maxCount 1 ; + sh:order 32 ; + sh:path pav:lastUpdatedOn ], + [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; + sh:order 23 ; + sh:path skos:mappingRelation ], + [ sh:description "the imports entry that this element was derived from. Empty means primary source" ; + sh:maxCount 1 ; + sh:order 15 ; + sh:path linkml:imported_from ], + [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; + sh:order 24 ; + sh:path skos:exactMatch ], + [ sh:description "The category or categories of an alias. This can be drawn from any relevant vocabulary" ; + sh:order 2 ; + sh:path dcterms:subject ], + [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 20 ; + sh:path linkml:deprecated_element_has_possible_replacement ], + [ sh:description "time at which the element was created" ; + sh:maxCount 1 ; + sh:order 31 ; + sh:path pav:createdOn ], + [ sh:description "The literal lexical form of a structured alias; i.e the actual alias value." ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 0 ; + sh:path skosxl:literalForm ], + [ sh:description "notes and comments about an element intended primarily for external consumption" ; + sh:order 11 ; + sh:path skos:note ], + [ sh:description "agent that created the element" ; + sh:maxCount 1 ; + sh:order 29 ; + sh:path pav:createdBy ], + [ sh:class skosxl:Label ; + sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; + sh:nodeKind sh:BlankNode ; + sh:order 22 ; + sh:path skosxl:altLabel ], + [ sh:description "Description of why and when this element will no longer be used" ; + sh:maxCount 1 ; + sh:order 8 ; + sh:path linkml:deprecated ], + [ sh:description "status of the element" ; + sh:maxCount 1 ; + sh:order 34 ; + sh:path bibo:status ], + [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; + sh:order 27 ; + sh:path skos:narrowMatch ], + [ sh:description "Keywords or tags used to describe the element" ; + sh:order 36 ; + sh:path schema1:keywords ], + [ sh:description "editorial notes about an element intended primarily for internal consumption" ; + sh:order 10 ; + sh:path skos:editorialNote ], + [ sh:description "Outstanding issues that needs resolution" ; + sh:order 9 ; + sh:path linkml:todos ], + [ sh:description "a textual description of the element's purpose and use" ; + sh:maxCount 1 ; + sh:order 5 ; + sh:path skos:definition ], + [ sh:class linkml:Annotation ; + sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; + sh:nodeKind sh:BlankNode ; + sh:order 4 ; + sh:path linkml:annotations ], + [ sh:description "the primary language used in the sources" ; + sh:maxCount 1 ; + sh:order 17 ; + sh:path schema1:inLanguage ], + [ sh:class linkml:AltDescription ; + sh:description "A sourced alternative description for an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 6 ; + sh:path linkml:alt_descriptions ], + [ sh:description "id of the schema that defined the element" ; + sh:maxCount 1 ; + sh:order 14 ; + sh:path skos:inScheme ], + [ sh:class linkml:Extension ; + sh:description "a tag/text tuple attached to an arbitrary element" ; + sh:nodeKind sh:BlankNode ; + sh:order 3 ; + sh:path linkml:extensions ], + [ sh:description "A related resource from which the element is derived." ; + sh:maxCount 1 ; + sh:order 16 ; + sh:path dcterms:source ], + [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; + sh:order 26 ; + sh:path skos:relatedMatch ], + [ sh:description "A list of related entities or URLs that may be of relevance" ; + sh:order 18 ; + sh:path rdfs:seeAlso ], + [ sh:description "agent that contributed to the element" ; + sh:order 30 ; + sh:path dcterms:contributor ], + [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; + sh:order 28 ; + sh:path skos:broadMatch ], + [ sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; + sh:maxCount 1 ; + sh:order 7 ; + sh:path dcterms:title ], + [ sh:class linkml:Example ; + sh:description "example usages of an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 12 ; + sh:path linkml:examples ], + [ sh:class linkml:SubsetDefinition ; + sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; + sh:nodeKind sh:IRI ; + sh:order 13 ; + sh:path OIO:inSubset ], + [ sh:description "The relationship between an element and its alias." ; + sh:in ( skos:exactMatch skos:relatedMatch skos:broaderMatch skos:narrowerMatch ) ; + sh:maxCount 1 ; + sh:order 1 ; + sh:path rdf:predicate ], + [ sh:description "the relative order in which the element occurs, lower values are given precedence" ; + sh:maxCount 1 ; + sh:order 35 ; + sh:path sh:order ], + [ sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; + sh:order 21 ; + sh:path skos:altLabel ], + [ sh:description "agent that modified the element" ; + sh:maxCount 1 ; + sh:order 33 ; + sh:path oslc:modifiedBy ] ; + sh:targetClass skosxl:Label . + +linkml:AltDescription a sh:NodeShape ; + sh:closed true ; + sh:description "an attributed description" ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:description "text of an attributed description" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 1 ; + sh:path linkml:alt_description_text ], + [ sh:description "the source of an attributed description" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 0 ; + sh:path linkml:alt_description_source ] ; + sh:targetClass linkml:AltDescription . + +linkml:Example a sh:NodeShape ; + sh:closed true ; + sh:description "usage example and description" ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:class linkml:Any ; + sh:description "direct object representation of the example" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 2 ; + sh:path linkml:value_object ], + [ sh:description "example value" ; + sh:maxCount 1 ; + sh:order 0 ; + sh:path skos:example ], + [ sh:description "description of what the value is doing" ; + sh:maxCount 1 ; + sh:order 1 ; + sh:path linkml:value_description ] ; + sh:targetClass linkml:Example . + +linkml:Annotation a sh:NodeShape ; + sh:closed true ; + sh:description "a tag/value pair with the semantics of OWL Annotation" ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:class linkml:Extension ; + sh:description "a tag/text tuple attached to an arbitrary element" ; + sh:nodeKind sh:BlankNode ; + sh:order 3 ; + sh:path linkml:extensions ], + [ sh:class linkml:Annotation ; + sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; + sh:nodeKind sh:BlankNode ; + sh:order 0 ; + sh:path linkml:annotations ], + [ sh:description "a tag associated with an extension" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 1 ; + sh:path linkml:extension_tag ], + [ sh:description "the actual annotation" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 2 ; + sh:path linkml:extension_value ] ; + sh:targetClass linkml:Annotation . + +linkml:AnonymousClassExpression a sh:NodeShape ; + sh:closed true ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:class skosxl:Label ; + sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; + sh:nodeKind sh:BlankNode ; + sh:order 25 ; + sh:path skosxl:altLabel ], + [ sh:description "the primary language used in the sources" ; + sh:maxCount 1 ; + sh:order 20 ; + sh:path schema1:inLanguage ], + [ sh:description "editorial notes about an element intended primarily for internal consumption" ; + sh:order 13 ; + sh:path skos:editorialNote ], + [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; + sh:order 30 ; + sh:path skos:narrowMatch ], + [ sh:description "Outstanding issues that needs resolution" ; + sh:order 12 ; + sh:path linkml:todos ], + [ sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; + sh:order 24 ; + sh:path skos:altLabel ], + [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; + sh:order 29 ; + sh:path skos:relatedMatch ], + [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; + sh:order 31 ; + sh:path skos:broadMatch ], + [ sh:description "notes and comments about an element intended primarily for external consumption" ; + sh:order 14 ; + sh:path skos:note ], + [ sh:description "A related resource from which the element is derived." ; + sh:maxCount 1 ; + sh:order 19 ; + sh:path dcterms:source ], + [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; + sh:order 26 ; + sh:path skos:mappingRelation ], + [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 23 ; + sh:path linkml:deprecated_element_has_possible_replacement ], + [ sh:description "time at which the element was created" ; + sh:maxCount 1 ; + sh:order 34 ; + sh:path pav:createdOn ], + [ sh:description "time at which the element was last updated" ; + sh:maxCount 1 ; + sh:order 35 ; + sh:path pav:lastUpdatedOn ], + [ sh:class linkml:AnonymousClassExpression ; + sh:description "holds if all of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 4 ; + sh:path linkml:all_of ], + [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; + sh:order 27 ; + sh:path skos:exactMatch ], + [ sh:class linkml:SlotDefinition ; + sh:description "expresses constraints on a group of slots for a class expression" ; + sh:nodeKind sh:IRI ; + sh:order 5 ; + sh:path linkml:slot_conditions ], + [ sh:description "Description of why and when this element will no longer be used" ; + sh:maxCount 1 ; + sh:order 11 ; + sh:path linkml:deprecated ], + [ sh:description "a textual description of the element's purpose and use" ; + sh:maxCount 1 ; + sh:order 8 ; + sh:path skos:definition ], + [ sh:description "Keywords or tags used to describe the element" ; + sh:order 40 ; + sh:path schema1:keywords ], + [ sh:class linkml:AltDescription ; + sh:description "A sourced alternative description for an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 9 ; + sh:path linkml:alt_descriptions ], + [ sh:class linkml:Extension ; + sh:description "a tag/text tuple attached to an arbitrary element" ; + sh:nodeKind sh:BlankNode ; + sh:order 6 ; + sh:path linkml:extensions ], + [ sh:description "agent that created the element" ; + sh:maxCount 1 ; + sh:order 32 ; + sh:path pav:createdBy ], + [ sh:class linkml:Definition ; + sh:description "A primary parent class or slot from which inheritable metaslots are propagated from. 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" ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path linkml:is_a ], + [ sh:description "Controlled terms used to categorize an element." ; + sh:order 39 ; + sh:path dcterms:subject ], + [ sh:class linkml:AnonymousClassExpression ; + sh:description "holds if only one of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 2 ; + sh:path linkml:exactly_one_of ], + [ sh:class linkml:AnonymousClassExpression ; + sh:description "holds if none of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 3 ; + sh:path linkml:none_of ], + [ sh:class linkml:Annotation ; + sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; + sh:nodeKind sh:BlankNode ; + sh:order 7 ; + sh:path linkml:annotations ], + [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 22 ; + sh:path linkml:deprecated_element_has_exact_replacement ], + [ sh:class linkml:SubsetDefinition ; + sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; + sh:nodeKind sh:IRI ; + sh:order 16 ; + sh:path OIO:inSubset ], + [ sh:description "agent that modified the element" ; + sh:maxCount 1 ; + sh:order 36 ; + sh:path oslc:modifiedBy ], + [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; + sh:order 28 ; + sh:path skos:closeMatch ], + [ sh:description "the relative order in which the element occurs, lower values are given precedence" ; + sh:maxCount 1 ; + sh:order 38 ; + sh:path sh:order ], + [ sh:class linkml:Example ; + sh:description "example usages of an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 15 ; + sh:path linkml:examples ], + [ sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; + sh:maxCount 1 ; + sh:order 10 ; + sh:path dcterms:title ], + [ sh:description "A list of related entities or URLs that may be of relevance" ; + sh:order 21 ; + sh:path rdfs:seeAlso ], + [ sh:description "agent that contributed to the element" ; + sh:order 33 ; + sh:path dcterms:contributor ], + [ sh:description "status of the element" ; + sh:maxCount 1 ; + sh:order 37 ; + sh:path bibo:status ], + [ sh:description "the imports entry that this element was derived from. Empty means primary source" ; + sh:maxCount 1 ; + sh:order 18 ; + sh:path linkml:imported_from ], + [ sh:class linkml:AnonymousClassExpression ; + sh:description "holds if at least one of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 1 ; + sh:path linkml:any_of ], + [ sh:description "id of the schema that defined the element" ; + sh:maxCount 1 ; + sh:order 17 ; + sh:path skos:inScheme ] ; + sh:targetClass linkml:AnonymousClassExpression . + +linkml:SlotDefinition a sh:NodeShape ; + sh:closed true ; + sh:description "an element that describes how instances are related to other instances" ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:class linkml:SlotDefinition ; + sh: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." ; + sh:nodeKind sh:IRI ; + sh:order 67 ; + sh:path linkml:apply_to ], + [ sh: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." ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 70 ; + sh:path rdfs:label ], + [ sh:class linkml:AltDescription ; + sh:description "A sourced alternative description for an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 80 ; + sh:path linkml:alt_descriptions ], + [ sh:description "a textual descriptor that indicates the role played by the slot range" ; + sh:maxCount 1 ; + sh:order 27 ; + sh:path linkml:role ], + [ sh:description "the slot must have range of a number and the value of the slot must equal the specified value" ; + sh:maxCount 1 ; + sh:order 53 ; + sh:path linkml:equals_number ], + [ sh:class linkml:LocalName ; + sh:nodeKind sh:BlankNode ; + sh:order 73 ; + sh:path linkml:local_names ], + [ sh:class linkml:ClassDefinition ; + sh: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 +""" ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path linkml:domain ], + [ sh:description "the imports entry that this element was derived from. Empty means primary source" ; + sh:maxCount 1 ; + sh:order 89 ; + sh:path linkml:imported_from ], + [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; + sh:order 101 ; + sh:path skos:narrowMatch ], + [ sh:description "True means that the key slot(s) uniquely identifies the elements. There can be at most one identifier or key per container" ; + sh:maxCount 1 ; + sh:order 11 ; + sh:path linkml:identifier ], + [ sh:description "the value of the slot must equal the value of the evaluated expression" ; + sh:maxCount 1 ; + sh:order 54 ; + sh:path linkml:equals_expression ], + [ sh:description "If True, then the relationship between the slot domain and range is many to one or many to many" ; + sh:maxCount 1 ; + sh:order 9 ; + sh:path linkml:shared ], + [ sh:description "If True, then there must be no duplicates in the elements of a multivalued slot" ; + sh:maxCount 1 ; + sh:order 7 ; + sh:path linkml:list_elements_unique ], + [ sh:class linkml:Example ; + sh:description "example usages of an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 86 ; + sh:path linkml:examples ], + [ sh:description "editorial notes about an element intended primarily for internal consumption" ; + sh:order 84 ; + sh:path skos:editorialNote ], + [ sh:class linkml:AnonymousSlotExpression ; + sh:description "holds if at least one of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 61 ; + sh:path linkml:any_of ], + [ sh:description "A list of related entities or URLs that may be of relevance" ; + sh:order 92 ; + sh:path rdfs:seeAlso ], + [ sh:class linkml:AnonymousSlotExpression ; + sh:description "the value of the slot is multivalued with at least one member satisfying the condition" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 57 ; + sh:path linkml:has_member ], + [ sh:description "a name that is used in the singular form" ; + sh:maxCount 1 ; + sh:order 0 ; + sh:path linkml:singular_name ], + [ sh:class linkml:PatternExpression ; + sh:description "the string value of the slot must conform to the regular expression in the pattern expression" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 47 ; + sh:path linkml:structured_pattern ], + [ sh: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""" ; + sh:maxCount 1 ; + sh:order 69 ; + sh:path linkml:string_serialization ], + [ sh:class linkml:SubsetDefinition ; + sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; + sh:nodeKind sh:IRI ; + sh:order 87 ; + sh:path OIO:inSubset ], + [ sh:class linkml:AnonymousSlotExpression ; + sh:description "the value of the slot is multivalued with all members satisfying the condition" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 58 ; + sh:path linkml:all_members ], + [ sh:class linkml:SlotDefinition ; + sh: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" ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 25 ; + sh:path linkml:transitive_form_of ], + [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; + sh:order 97 ; + sh:path skos:mappingRelation ], + [ sh:description "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element." ; + sh:order 75 ; + sh:path linkml:implements ], + [ sh: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" ; + sh:maxCount 1 ; + sh:order 8 ; + sh:path linkml:list_elements_ordered ], + [ sh:description "If s is locally_reflexive, then i.s=i for all instances i where s is a class slot for the type of i" ; + sh:maxCount 1 ; + sh:order 19 ; + sh:path linkml:locally_reflexive ], + [ sh:description "true means that the *value* of a slot is inherited by subclasses" ; + sh:maxCount 1 ; + sh:order 4 ; + sh:path linkml:inherited ], + [ sh:description "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix" ; + sh:order 71 ; + sh:path linkml:id_prefixes ], + [ sh:description "Description of why and when this element will no longer be used" ; + sh:maxCount 1 ; + sh:order 82 ; + sh:path linkml:deprecated ], + [ sh:description "for slots with ranges of type number, the value must be equal to or lowe than this" ; + sh:maxCount 1 ; + sh:order 45 ; + sh:path linkml:maximum_value ], + [ sh:class linkml:SlotDefinition ; + sh:description "transitive_form_of including the reflexive case" ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 26 ; + sh:path linkml:reflexive_transitive_form_of ], + [ sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; + sh:order 95 ; + sh:path skos:altLabel ], + [ sh:description "agent that created the element" ; + sh:maxCount 1 ; + sh:order 103 ; + sh:path pav:createdBy ], + [ sh:description "Controlled terms used to categorize an element." ; + sh:order 110 ; + sh:path dcterms:subject ], + [ sh:description "URI of the class that provides a semantic interpretation of the slot in a linked data context. The URI may come from any namespace and may be shared between schemas." ; + sh:maxCount 1 ; + sh:order 2 ; + sh:path linkml:slot_uri ], + [ sh:description "the minimum number of entries for a multivalued slot" ; + sh:maxCount 1 ; + sh:order 55 ; + sh:path linkml:minimum_cardinality ], + [ sh:description "An element in another schema which this element instantiates." ; + sh:order 76 ; + sh:path linkml:instantiates ], + [ sh:description "time at which the element was last updated" ; + sh:maxCount 1 ; + sh:order 106 ; + sh:path pav:lastUpdatedOn ], + [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; + sh:order 100 ; + sh:path skos:relatedMatch ], + [ sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; + sh:maxCount 1 ; + sh:order 81 ; + sh:path dcterms:title ], + [ sh:description "a textual description of the element's purpose and use" ; + sh:maxCount 1 ; + sh:order 79 ; + sh:path skos:definition ], + [ sh:description "True means that the key slot(s) is used to determine the instantiation (types) relation between objects and a ClassDefinition" ; + sh:maxCount 1 ; + sh:order 12 ; + sh:path linkml:designates_type ], + [ sh:description "indicates that for any instance, i, the domain of this slot will include an assertion of i s range" ; + sh:maxCount 1 ; + sh:order 24 ; + sh:path linkml:is_class_field ], + [ sh:description "Outstanding issues that needs resolution" ; + sh:order 83 ; + sh:path linkml:todos ], + [ sh:description "Causes the slot value to be interpreted as a uriorcurie after prefixing with this string" ; + sh:maxCount 1 ; + sh:order 49 ; + sh:path linkml:implicit_prefix ], + [ sh:description """function that provides a default value for the slot. Possible values for this slot are defined in linkml.utils.ifabsent_functions.default_library: + * [Tt]rue -- boolean True + * [Ff]alse -- boolean False + * bnode -- blank node identifier + * class_curie -- CURIE for the containing class + * class_uri -- URI for the containing class + * default_ns -- schema default namespace + * default_range -- schema default range + * int(value) -- integer value + * slot_uri -- URI for the slot + * slot_curie -- CURIE for the slot + * string(value) -- string value""" ; + sh:maxCount 1 ; + sh:order 6 ; + sh:path linkml:ifabsent ], + [ sh:description "The name of the slot referenced in the slot_usage" ; + sh:maxCount 1 ; + sh:order 29 ; + sh:path linkml:usage_slot_name ], + [ sh:description "the relative order in which the element occurs, lower values are given precedence" ; + sh:maxCount 1 ; + sh:order 109 ; + sh:path sh:order ], + [ sh:description "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri" ; + sh:maxCount 1 ; + sh:order 72 ; + sh:path linkml:definition_uri ], + [ sh:description "time at which the element was created" ; + sh:maxCount 1 ; + sh:order 105 ; + sh:path pav:createdOn ], + [ sh:description "the maximum number of entries for a multivalued slot" ; + sh:maxCount 1 ; + sh:order 56 ; + sh:path linkml:maximum_cardinality ], + [ sh:description "If s is antisymmetric, and i.s=v where i is different from v, v.s cannot have value i" ; + sh:maxCount 1 ; + sh:order 21 ; + sh:path linkml:asymmetric ], + [ sh: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 hierarchy into an enumerated list of possible values in every serialization of the model." ; + sh:order 68 ; + sh:path linkml:values_from ], + [ sh:class linkml:SlotDefinition ; + sh: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 hierarchy into an enumerated list of possible values in every serialization of the model." ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 16 ; + sh:path rdfs:subPropertyOf ], + [ sh:description "notes and comments about an element intended primarily for external consumption" ; + sh:order 85 ; + sh:path skos:note ], + [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 94 ; + sh:path linkml:deprecated_element_has_possible_replacement ], + [ sh:class qudt:Unit ; + sh:description "an encoding of a unit" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 48 ; + sh:path qudt:unit ], + [ sh:description "agent that contributed to the element" ; + sh:order 104 ; + sh:path dcterms:contributor ], + [ sh:description "If s is irreflexive, then there exists no i such i.s=i" ; + sh:maxCount 1 ; + sh:order 20 ; + sh:path linkml:irreflexive ], + [ sh: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." ; + sh:maxCount 1 ; + sh:order 42 ; + sh:path linkml:inlined ], + [ sh:class linkml:AnonymousSlotExpression ; + sh:description "holds if none of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 59 ; + sh:path linkml:none_of ], + [ sh:class skosxl:Label ; + sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; + sh:nodeKind sh:BlankNode ; + sh:order 96 ; + sh:path skosxl:altLabel ], + [ sh:class linkml:Definition ; + sh:description "the \"owner\" of the slot. It is the class if it appears in the slots list, otherwise the declaring slot" ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 14 ; + sh:path linkml:owner ], + [ sh:class linkml:SlotDefinition ; + sh:description "indicates that the domain element consists exactly of the members of the element in the range." ; + sh:nodeKind sh:IRI ; + sh:order 36 ; + sh:path linkml:union_of ], + [ sh:description "A related resource from which the element is derived." ; + sh:maxCount 1 ; + sh:order 90 ; + sh:path dcterms:source ], + [ sh:description "If s is symmetric, and i.s=v, then v.s=i" ; + sh:maxCount 1 ; + sh:order 17 ; + sh:path linkml:symmetric ], + [ sh:description "the role a slot on a relationship class plays, for example, the subject, object or predicate roles" ; + sh:in ( rdf:subject rdf:object rdf:predicate "NODE" "OTHER_ROLE" ) ; + sh:maxCount 1 ; + sh:order 30 ; + sh:path linkml:relational_role ], + [ sh:class linkml:SlotDefinition ; + sh:description "A collection of secondary parent mixin slots from which inheritable metaslots are propagated" ; + sh:nodeKind sh:IRI ; + sh:order 66 ; + sh:path linkml:mixins ], + [ sh:class linkml:AnonymousSlotExpression ; + sh:description "holds if only one of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 60 ; + sh:path linkml:exactly_one_of ], + [ sh:description "Indicates the class or slot cannot be directly instantiated and is intended for grouping purposes." ; + sh:maxCount 1 ; + sh:order 64 ; + sh:path linkml:abstract ], + [ sh:class linkml:AnonymousSlotExpression ; + sh:description "holds if all of the expressions hold" ; + sh:nodeKind sh:BlankNode ; + sh:order 62 ; + sh:path linkml:all_of ], + [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; + sh:order 102 ; + sh:path skos:broadMatch ], + [ sh:class linkml:Annotation ; + sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; + sh:nodeKind sh:BlankNode ; + sh:order 78 ; + sh:path linkml:annotations ], + [ sh:description "true if this slot is a grouping slot" ; + sh:maxCount 1 ; + sh:order 32 ; + sh:path linkml:is_grouping_slot ], + [ sh:class linkml:ClassDefinition ; + sh:description "the class(es) that reference the slot in a \"slots\" or \"slot_usage\" context" ; + sh:nodeKind sh:IRI ; + sh:order 15 ; + sh:path linkml:domain_of ], + [ sh:description "the slot must have range string and the value of the slot must equal one of the specified values" ; + sh:order 52 ; + sh:path linkml:equals_string_in ], + [ sh:description "id of the schema that defined the element" ; + sh:maxCount 1 ; + sh:order 88 ; + sh:path skos:inScheme ], + [ sh:description "the slot must have range string and the value of the slot must equal the specified value" ; + sh:maxCount 1 ; + sh:order 51 ; + sh:path linkml:equals_string ], + [ sh:description "Indicates the class or slot is intended to be inherited from without being an is_a parent. mixins should not be inherited from using is_a, except by other mixins." ; + sh:maxCount 1 ; + sh:order 65 ; + sh:path linkml:mixin ], + [ sh:class linkml:Extension ; + sh:description "a tag/text tuple attached to an arbitrary element" ; + sh:nodeKind sh:BlankNode ; + sh:order 77 ; + sh:path linkml:extensions ], + [ sh:class linkml:Element ; + sh: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 +""" ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 37 ; + sh:path linkml:range ], + [ sh:class linkml:PathExpression ; + sh:description "a rule for inferring a slot assignment based on evaluating a path through a sequence of slot assignments" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 33 ; + sh:path linkml:path_rule ], + [ sh:description "agent that modified the element" ; + sh:maxCount 1 ; + sh:order 107 ; + sh:path oslc:modifiedBy ], + [ sh:class linkml:SlotDefinition ; + sh:description "A primary parent slot from which inheritable metaslots are propagated" ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 63 ; + sh:path linkml:is_a ], + [ sh:description "true means that the slot should be present in instances of the class definition, but this is not required" ; + sh:maxCount 1 ; + sh:order 41 ; + sh:path linkml:recommended ], + [ sh:description "Keywords or tags used to describe the element" ; + sh:order 111 ; + sh:path schema1:keywords ], + [ sh: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." ; + sh:maxCount 1 ; + sh:order 13 ; + sh:path skos:prefLabel ], + [ sh:description "true means that the slot must be present in instances of the class definition" ; + sh:maxCount 1 ; + sh:order 40 ; + sh:path linkml:required ], + [ sh:description "for slots with ranges of type number, the value must be equal to or higher than this" ; + sh:maxCount 1 ; + sh:order 44 ; + sh:path linkml:minimum_value ], + [ sh:description "If present, slot is read only. Text explains why" ; + sh:maxCount 1 ; + sh:order 5 ; + sh:path linkml:readonly ], + [ sh:description "if true then a value must be present (for lists there must be at least one value). If false then a value must be absent (for lists, must be empty)" ; + sh:in ( "UNCOMMITTED" "PRESENT" "ABSENT" ) ; + sh:maxCount 1 ; + sh:order 50 ; + sh:path linkml:value_presence ], + [ sh:description "true means that slot can have more than one value and should be represented using a list or collection structure." ; + sh:maxCount 1 ; + sh:order 3 ; + sh:path linkml:multivalued ], + [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; + sh:order 99 ; + sh:path skos:closeMatch ], + [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 93 ; + sh:path linkml:deprecated_element_has_exact_replacement ], + [ sh:description "If s is reflexive, then i.s=i for all instances i" ; + sh:maxCount 1 ; + sh:order 18 ; + sh:path linkml:reflexive ], + [ sh:description "status of the element" ; + sh:maxCount 1 ; + sh:order 108 ; + sh:path bibo:status ], + [ sh:class linkml:SlotDefinition ; + sh: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" ; + sh:nodeKind sh:IRI ; + sh:order 34 ; + sh:path linkml:disjoint_with ], + [ sh:class linkml:EnumExpression ; + sh:description "An inlined enumeration" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 39 ; + sh:path linkml:enum_range ], + [ sh:description "True means that this slot was defined in a slot_usage situation" ; + sh:maxCount 1 ; + sh:order 28 ; + sh:path linkml:is_usage_slot ], + [ sh:class linkml:AnonymousClassExpression ; + sh:description "A range that is described as a boolean expression combining existing ranges" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNode ; + sh:order 38 ; + sh:path linkml:range_expression ], + [ sh:class linkml:SlotDefinition ; + sh:description "indicates that any instance of d s r implies that there is also an instance of r s' d" ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 23 ; + sh:path owl:inverseOf ], + [ sh:class linkml:SlotDefinition ; + sh:description "allows for grouping of related slots into a grouping slot that serves the role of a group" ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 31 ; + sh:path sh:group ], + [ sh:description "True means that the key slot(s) uniquely identify the elements within a single container" ; + sh:maxCount 1 ; + sh:order 10 ; + sh:path linkml:key ], + [ sh:description "the primary language used in the sources" ; + sh:maxCount 1 ; + sh:order 91 ; + sh:path schema1:inLanguage ], + [ sh:description "If true then all direct is_a children are mutually disjoint and share no instances in common" ; + sh:maxCount 1 ; + sh:order 35 ; + sh:path linkml:children_are_mutually_disjoint ], + [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; + sh:order 98 ; + sh:path skos:exactMatch ], + [ sh:description "the string value of the slot must conform to this regular expression expressed in the string" ; + sh:maxCount 1 ; + sh:order 46 ; + sh:path linkml:pattern ], + [ sh:description "An established standard to which the element conforms." ; + sh:maxCount 1 ; + sh:order 74 ; + sh:path dcterms:conformsTo ], + [ sh:description "If s is transitive, and i.s=z, and s.s=j, then i.s=j" ; + sh:maxCount 1 ; + sh:order 22 ; + sh:path linkml:transitive ], + [ sh: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." ; + sh:maxCount 1 ; + sh:order 43 ; + sh:path linkml:inlined_as_list ] ; + sh:targetClass linkml:SlotDefinition . + +linkml:SubsetDefinition a sh:NodeShape ; + sh:closed true ; + sh:description "an element that can be used to group other metamodel elements" ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:class linkml:Example ; + sh:description "example usages of an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 16 ; + sh:path linkml:examples ], + [ sh:description "Outstanding issues that needs resolution" ; + sh:order 13 ; + sh:path linkml:todos ], + [ sh: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." ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 0 ; + sh:path rdfs:label ], + [ sh:description "When an element is deprecated, it can be automatically replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 23 ; + sh:path linkml:deprecated_element_has_exact_replacement ], + [ sh:description "A list of terms from different schemas or terminology systems that have close meaning." ; + sh:order 29 ; + sh:path skos:closeMatch ], + [ sh:description "An element in another schema which this element instantiates." ; + sh:order 6 ; + sh:path linkml:instantiates ], + [ sh:description "A list of terms from different schemas or terminology systems that have broader meaning." ; + sh:order 32 ; + sh:path skos:broadMatch ], + [ sh:description "A concise human-readable display label for the element. The title should mirror the name, and should use ordinary textual punctuation." ; + sh:maxCount 1 ; + sh:order 11 ; + sh:path dcterms:title ], + [ sh:description "A list of terms from different schemas or terminology systems that have comparable meaning. These may include terms that are precisely equivalent, broader or narrower in meaning, or otherwise semantically related but not equivalent from a strict ontological perspective." ; + sh:order 27 ; + sh:path skos:mappingRelation ], + [ sh:description "status of the element" ; + sh:maxCount 1 ; + sh:order 38 ; + sh:path bibo:status ], + [ sh:description "notes and comments about an element intended primarily for external consumption" ; + sh:order 15 ; + sh:path skos:note ], + [ sh:class linkml:Annotation ; + sh:description "a collection of tag/text tuples with the semantics of OWL Annotation" ; + sh:nodeKind sh:BlankNode ; + sh:order 8 ; + sh:path linkml:annotations ], + [ sh:description "An established standard to which the element conforms." ; + sh:maxCount 1 ; + sh:order 4 ; + sh:path dcterms:conformsTo ], + [ sh:description "Keywords or tags used to describe the element" ; + sh:order 41 ; + sh:path schema1:keywords ], + [ sh:description "the primary language used in the sources" ; + sh:maxCount 1 ; + sh:order 21 ; + sh:path schema1:inLanguage ], + [ sh:description "editorial notes about an element intended primarily for internal consumption" ; + sh:order 14 ; + sh:path skos:editorialNote ], + [ sh:description "An allowed list of prefixes for which identifiers must conform. The identifier of this class or slot must begin with the URIs referenced by this prefix" ; + sh:order 1 ; + sh:path linkml:id_prefixes ], + [ sh:description "the relative order in which the element occurs, lower values are given precedence" ; + sh:maxCount 1 ; + sh:order 39 ; + sh:path sh:order ], + [ sh:description "a textual description of the element's purpose and use" ; + sh:maxCount 1 ; + sh:order 9 ; + sh:path skos:definition ], + [ sh:description "agent that modified the element" ; + sh:maxCount 1 ; + sh:order 37 ; + sh:path oslc:modifiedBy ], + [ sh:description "The native URI of the element. This is always within the namespace of the containing schema. Contrast with the assigned URI, via class_uri or slot_uri" ; + sh:maxCount 1 ; + sh:order 2 ; + sh:path linkml:definition_uri ], + [ sh:description "Description of why and when this element will no longer be used" ; + sh:maxCount 1 ; + sh:order 12 ; + sh:path linkml:deprecated ], + [ sh:class linkml:AltDescription ; + sh:description "A sourced alternative description for an element" ; + sh:nodeKind sh:BlankNode ; + sh:order 10 ; + sh:path linkml:alt_descriptions ], + [ sh:description "time at which the element was last updated" ; + sh:maxCount 1 ; + sh:order 36 ; + sh:path pav:lastUpdatedOn ], + [ sh:class skosxl:Label ; + sh:description "A list of structured_alias objects, used to provide aliases in conjunction with additional metadata." ; + sh:nodeKind sh:BlankNode ; + sh:order 26 ; + sh:path skosxl:altLabel ], + [ sh:description "Alternate names/labels for the element. These do not alter the semantics of the schema, but may be useful to support search and alignment." ; + sh:order 25 ; + sh:path skos:altLabel ], + [ sh:description "A related resource from which the element is derived." ; + sh:maxCount 1 ; + sh:order 20 ; + sh:path dcterms:source ], + [ sh:description "agent that contributed to the element" ; + sh:order 34 ; + sh:path dcterms:contributor ], + [ sh:description "When an element is deprecated, it can be potentially replaced by this uri or curie" ; + sh:maxCount 1 ; + sh:order 24 ; + sh:path linkml:deprecated_element_has_possible_replacement ], + [ sh:description "A list of terms from different schemas or terminology systems that have related meaning." ; + sh:order 30 ; + sh:path skos:relatedMatch ], + [ sh:class linkml:SubsetDefinition ; + sh:description "used to indicate membership of a term in a defined subset of terms used for a particular domain or application." ; + sh:nodeKind sh:IRI ; + sh:order 17 ; + sh:path OIO:inSubset ], + [ sh:description "the imports entry that this element was derived from. Empty means primary source" ; + sh:maxCount 1 ; + sh:order 19 ; + sh:path linkml:imported_from ], + [ sh:description "An element in another schema which this element conforms to. The referenced element is not imported into the schema for the implementing element. However, the referenced schema may be used to check conformance of the implementing element." ; + sh:order 5 ; + sh:path linkml:implements ], + [ sh:description "A list of terms from different schemas or terminology systems that have narrower meaning." ; + sh:order 31 ; + sh:path skos:narrowMatch ], + [ sh:description "Controlled terms used to categorize an element." ; + sh:order 40 ; + sh:path dcterms:subject ], + [ sh:description "id of the schema that defined the element" ; + sh:maxCount 1 ; + sh:order 18 ; + sh:path skos:inScheme ], + [ sh:description "A list of related entities or URLs that may be of relevance" ; + sh:order 22 ; + sh:path rdfs:seeAlso ], + [ sh:description "agent that created the element" ; + sh:maxCount 1 ; + sh:order 33 ; + sh:path pav:createdBy ], + [ sh:class linkml:Extension ; + sh:description "a tag/text tuple attached to an arbitrary element" ; + sh:nodeKind sh:BlankNode ; + sh:order 7 ; + sh:path linkml:extensions ], + [ sh:description "A list of terms from different schemas or terminology systems that have identical meaning." ; + sh:order 28 ; + sh:path skos:exactMatch ], + [ sh:class linkml:LocalName ; + sh:nodeKind sh:BlankNode ; + sh:order 3 ; + sh:path linkml:local_names ], + [ sh:description "time at which the element was created" ; + sh:maxCount 1 ; + sh:order 35 ; + sh:path pav:createdOn ] ; + sh:targetClass linkml:SubsetDefinition . + +linkml:Extension a sh:NodeShape ; + sh:closed true ; + sh:description "a tag/value pair used to add non-model information to an entry" ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:description "the actual annotation" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 1 ; + sh:path linkml:extension_value ], + [ sh:class linkml:Extension ; + sh:description "a tag/text tuple attached to an arbitrary element" ; + sh:nodeKind sh:BlankNode ; + sh:order 2 ; + sh:path linkml:extensions ], + [ sh:description "a tag associated with an extension" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 0 ; + sh:path linkml:extension_tag ] ; + sh:targetClass linkml:Extension . + diff --git a/linkml_runtime/linkml_model/shex/datasets.shex b/linkml_runtime/linkml_model/shex/datasets.shex new file mode 100644 index 00000000..c1b42f76 --- /dev/null +++ b/linkml_runtime/linkml_model/shex/datasets.shex @@ -0,0 +1,111 @@ +# metamodel_version: 1.7.0 +BASE +PREFIX csvw: +PREFIX dcat: +PREFIX dcterms: +PREFIX prov: +PREFIX rdf: +PREFIX void: +PREFIX xsd: +PREFIX linkml: +PREFIX datasets: +PREFIX pav: + + +linkml:String xsd:string + +linkml:Integer xsd:integer + +linkml:Boolean xsd:boolean + +linkml:Float xsd:float + +linkml:Double xsd:double + +linkml:Decimal xsd:decimal + +linkml:Time xsd:dateTime + +linkml:Date xsd:date + +linkml:Datetime xsd:dateTime + +linkml:DateOrDatetime linkml:DateOrDatetime + +linkml:Uriorcurie IRI + +linkml:Uri IRI + +linkml:Ncname xsd:string + +linkml:Objectidentifier IRI + +linkml:Nodeidentifier NONLITERAL + +datasets:DataPackage CLOSED { + ( $datasets:DataPackage_tes ( &datasets:Information_tes ; + rdf:type [ datasets:Information ] ? ; + dcat:distribution @datasets:DataResource * + ) ; + rdf:type [ void:Dataset ] + ) +} + +datasets:DataResource CLOSED { + ( $datasets:DataResource_tes ( &datasets:Information_tes ; + rdf:type [ datasets:Information ] ? ; + datasets:path @linkml:String ? ; + dcterms:format @datasets:FormatEnum ? ; + dcat:mediaType @linkml:String ? ; + datasets:encoding @linkml:String ? ; + dcat:byteSize @linkml:Integer ? ; + datasets:hash @linkml:String ? ; + datasets:md5 @linkml:String ? ; + datasets:sha256 @linkml:String ? ; + csvw:dialect @linkml:String ? + ) ; + rdf:type [ dcat:Distribution ] + ) +} + +datasets:FormatDialect CLOSED { + ( $datasets:FormatDialect_tes ( datasets:comment_prefix @linkml:String ? ; + datasets:delimiter @linkml:String ? ; + datasets:double_quote @linkml:String ? ; + datasets:header @linkml:String ? ; + datasets:quote_char @linkml:String ? + ) ; + rdf:type [ datasets:FormatDialect ] ? + ) +} + +datasets:Information ( + @datasets:DataPackage OR @datasets:DataResource +) + +datasets:Information_struct { + ( $datasets:Information_tes ( dcat:downloadURL @linkml:Uri ? ; + dcterms:license @linkml:String ? ; + dcterms:title @linkml:String ? ; + dcterms:description @linkml:String ? ; + dcterms:conformsTo @linkml:Uriorcurie ? ; + datasets:conforms_to_schema @linkml:Uriorcurie ? ; + datasets:conforms_to_class @linkml:Uriorcurie ? ; + pav:version @linkml:String ? ; + datasets:language @linkml:String ? ; + dcterms:publisher @linkml:Uriorcurie ? ; + dcat:keyword @linkml:String * ; + dcterms:issued @linkml:Datetime ? ; + pav:createdBy @linkml:Uriorcurie ? ; + pav:createdOn @linkml:Datetime ? ; + datasets:compression @linkml:String ? ; + prov:wasDerivedFrom @linkml:String ? ; + dcat:landingPage @linkml:String ? ; + datasets:test_roles @datasets:TestRole * + ) ; + rdf:type [ datasets:Information ] + ) +} + + + diff --git a/linkml_runtime/linkml_model/shex/datasets.shexj b/linkml_runtime/linkml_model/shex/datasets.shexj new file mode 100644 index 00000000..400721aa --- /dev/null +++ b/linkml_runtime/linkml_model/shex/datasets.shexj @@ -0,0 +1,459 @@ +# metamodel_version: 1.7.0 +{ + "type": "Schema", + "@context": [ + "http://www.w3.org/ns/shex.jsonld", + { + "@base": "https://w3id.org/linkml/report" + } + ], + "shapes": [ + { + "type": "NodeConstraint", + "id": "https://w3id.org/linkml/String", + "datatype": "http://www.w3.org/2001/XMLSchema#string" + }, + { + "type": "NodeConstraint", + "id": "https://w3id.org/linkml/Integer", + "datatype": "http://www.w3.org/2001/XMLSchema#integer" + }, + { + "type": "NodeConstraint", + "id": "https://w3id.org/linkml/Boolean", + "datatype": "http://www.w3.org/2001/XMLSchema#boolean" + }, + { + "type": "NodeConstraint", + "id": "https://w3id.org/linkml/Float", + "datatype": "http://www.w3.org/2001/XMLSchema#float" + }, + { + "type": "NodeConstraint", + "id": "https://w3id.org/linkml/Double", + "datatype": "http://www.w3.org/2001/XMLSchema#double" + }, + { + "type": "NodeConstraint", + "id": "https://w3id.org/linkml/Decimal", + "datatype": "http://www.w3.org/2001/XMLSchema#decimal" + }, + { + "type": "NodeConstraint", + "id": "https://w3id.org/linkml/Time", + "datatype": "http://www.w3.org/2001/XMLSchema#dateTime" + }, + { + "type": "NodeConstraint", + "id": "https://w3id.org/linkml/Date", + "datatype": "http://www.w3.org/2001/XMLSchema#date" + }, + { + "type": "NodeConstraint", + "id": "https://w3id.org/linkml/Datetime", + "datatype": "http://www.w3.org/2001/XMLSchema#dateTime" + }, + { + "type": "NodeConstraint", + "id": "https://w3id.org/linkml/DateOrDatetime", + "datatype": "https://w3id.org/linkml/DateOrDatetime" + }, + { + "type": "NodeConstraint", + "id": "https://w3id.org/linkml/Uriorcurie", + "nodeKind": "iri" + }, + { + "type": "NodeConstraint", + "id": "https://w3id.org/linkml/Uri", + "nodeKind": "iri" + }, + { + "type": "NodeConstraint", + "id": "https://w3id.org/linkml/Ncname", + "datatype": "http://www.w3.org/2001/XMLSchema#string" + }, + { + "type": "NodeConstraint", + "id": "https://w3id.org/linkml/Objectidentifier", + "nodeKind": "iri" + }, + { + "type": "NodeConstraint", + "id": "https://w3id.org/linkml/Nodeidentifier", + "nodeKind": "nonliteral" + }, + { + "type": "Shape", + "id": "https://w3id.org/linkml/reportDataPackage", + "closed": true, + "expression": { + "type": "EachOf", + "expressions": [ + { + "type": "EachOf", + "id": "https://w3id.org/linkml/reportDataPackage_tes", + "expressions": [ + "https://w3id.org/linkml/reportInformation_tes", + { + "type": "TripleConstraint", + "predicate": "http://www.w3.org/1999/02/22-rdf-syntax-ns#type", + "valueExpr": { + "type": "NodeConstraint", + "values": [ + "https://w3id.org/linkml/reportInformation" + ] + }, + "min": 0 + }, + { + "type": "TripleConstraint", + "predicate": "http://www.w3.org/ns/dcat#distribution", + "valueExpr": "https://w3id.org/linkml/reportDataResource", + "min": 0, + "max": -1 + } + ] + }, + { + "type": "TripleConstraint", + "predicate": "http://www.w3.org/1999/02/22-rdf-syntax-ns#type", + "valueExpr": { + "type": "NodeConstraint", + "values": [ + "http://rdfs.org/ns/void#Dataset" + ] + }, + "min": 1 + } + ] + } + }, + { + "type": "Shape", + "id": "https://w3id.org/linkml/reportDataResource", + "closed": true, + "expression": { + "type": "EachOf", + "expressions": [ + { + "type": "EachOf", + "id": "https://w3id.org/linkml/reportDataResource_tes", + "expressions": [ + "https://w3id.org/linkml/reportInformation_tes", + { + "type": "TripleConstraint", + "predicate": "http://www.w3.org/1999/02/22-rdf-syntax-ns#type", + "valueExpr": { + "type": "NodeConstraint", + "values": [ + "https://w3id.org/linkml/reportInformation" + ] + }, + "min": 0 + }, + { + "type": "TripleConstraint", + "predicate": "https://w3id.org/linkml/reportpath", + "valueExpr": "https://w3id.org/linkml/String", + "min": 0, + "max": 1 + }, + { + "type": "TripleConstraint", + "predicate": "http://purl.org/dc/terms/format", + "valueExpr": "https://w3id.org/linkml/reportFormatEnum", + "min": 0, + "max": 1 + }, + { + "type": "TripleConstraint", + "predicate": "http://www.w3.org/ns/dcat#mediaType", + "valueExpr": "https://w3id.org/linkml/String", + "min": 0, + "max": 1 + }, + { + "type": "TripleConstraint", + "predicate": "https://w3id.org/linkml/reportencoding", + "valueExpr": "https://w3id.org/linkml/String", + "min": 0, + "max": 1 + }, + { + "type": "TripleConstraint", + "predicate": "http://www.w3.org/ns/dcat#byteSize", + "valueExpr": "https://w3id.org/linkml/Integer", + "min": 0, + "max": 1 + }, + { + "type": "TripleConstraint", + "predicate": "https://w3id.org/linkml/reporthash", + "valueExpr": "https://w3id.org/linkml/String", + "min": 0, + "max": 1 + }, + { + "type": "TripleConstraint", + "predicate": "https://w3id.org/linkml/reportmd5", + "valueExpr": "https://w3id.org/linkml/String", + "min": 0, + "max": 1 + }, + { + "type": "TripleConstraint", + "predicate": "https://w3id.org/linkml/reportsha256", + "valueExpr": "https://w3id.org/linkml/String", + "min": 0, + "max": 1 + }, + { + "type": "TripleConstraint", + "predicate": "http://www.w3.org/ns/csvw#dialect", + "valueExpr": "https://w3id.org/linkml/String", + "min": 0, + "max": 1 + } + ] + }, + { + "type": "TripleConstraint", + "predicate": "http://www.w3.org/1999/02/22-rdf-syntax-ns#type", + "valueExpr": { + "type": "NodeConstraint", + "values": [ + "http://www.w3.org/ns/dcat#Distribution" + ] + }, + "min": 1 + } + ] + } + }, + { + "type": "Shape", + "id": "https://w3id.org/linkml/reportFormatDialect", + "closed": true, + "expression": { + "type": "EachOf", + "expressions": [ + { + "type": "EachOf", + "id": "https://w3id.org/linkml/reportFormatDialect_tes", + "expressions": [ + { + "type": "TripleConstraint", + "predicate": "https://w3id.org/linkml/reportcomment_prefix", + "valueExpr": "https://w3id.org/linkml/String", + "min": 0, + "max": 1 + }, + { + "type": "TripleConstraint", + "predicate": "https://w3id.org/linkml/reportdelimiter", + "valueExpr": "https://w3id.org/linkml/String", + "min": 0, + "max": 1 + }, + { + "type": "TripleConstraint", + "predicate": "https://w3id.org/linkml/reportdouble_quote", + "valueExpr": "https://w3id.org/linkml/String", + "min": 0, + "max": 1 + }, + { + "type": "TripleConstraint", + "predicate": "https://w3id.org/linkml/reportheader", + "valueExpr": "https://w3id.org/linkml/String", + "min": 0, + "max": 1 + }, + { + "type": "TripleConstraint", + "predicate": "https://w3id.org/linkml/reportquote_char", + "valueExpr": "https://w3id.org/linkml/String", + "min": 0, + "max": 1 + } + ] + }, + { + "type": "TripleConstraint", + "predicate": "http://www.w3.org/1999/02/22-rdf-syntax-ns#type", + "valueExpr": { + "type": "NodeConstraint", + "values": [ + "https://w3id.org/linkml/reportFormatDialect" + ] + }, + "min": 0 + } + ] + } + }, + { + "type": "ShapeOr", + "id": "https://w3id.org/linkml/reportInformation", + "shapeExprs": [ + "https://w3id.org/linkml/reportDataPackage", + "https://w3id.org/linkml/reportDataResource" + ] + }, + { + "type": "Shape", + "id": "https://w3id.org/linkml/reportInformation_struct", + "closed": false, + "expression": { + "type": "EachOf", + "expressions": [ + { + "type": "EachOf", + "id": "https://w3id.org/linkml/reportInformation_tes", + "expressions": [ + { + "type": "TripleConstraint", + "predicate": "http://www.w3.org/ns/dcat#downloadURL", + "valueExpr": "https://w3id.org/linkml/Uri", + "min": 0, + "max": 1 + }, + { + "type": "TripleConstraint", + "predicate": "http://purl.org/dc/terms/license", + "valueExpr": "https://w3id.org/linkml/String", + "min": 0, + "max": 1 + }, + { + "type": "TripleConstraint", + "predicate": "http://purl.org/dc/terms/title", + "valueExpr": "https://w3id.org/linkml/String", + "min": 0, + "max": 1 + }, + { + "type": "TripleConstraint", + "predicate": "http://purl.org/dc/terms/description", + "valueExpr": "https://w3id.org/linkml/String", + "min": 0, + "max": 1 + }, + { + "type": "TripleConstraint", + "predicate": "http://purl.org/dc/terms/conformsTo", + "valueExpr": "https://w3id.org/linkml/Uriorcurie", + "min": 0, + "max": 1 + }, + { + "type": "TripleConstraint", + "predicate": "https://w3id.org/linkml/reportconforms_to_schema", + "valueExpr": "https://w3id.org/linkml/Uriorcurie", + "min": 0, + "max": 1 + }, + { + "type": "TripleConstraint", + "predicate": "https://w3id.org/linkml/reportconforms_to_class", + "valueExpr": "https://w3id.org/linkml/Uriorcurie", + "min": 0, + "max": 1 + }, + { + "type": "TripleConstraint", + "predicate": "http://purl.org/pav/version", + "valueExpr": "https://w3id.org/linkml/String", + "min": 0, + "max": 1 + }, + { + "type": "TripleConstraint", + "predicate": "https://w3id.org/linkml/reportlanguage", + "valueExpr": "https://w3id.org/linkml/String", + "min": 0, + "max": 1 + }, + { + "type": "TripleConstraint", + "predicate": "http://purl.org/dc/terms/publisher", + "valueExpr": "https://w3id.org/linkml/Uriorcurie", + "min": 0, + "max": 1 + }, + { + "type": "TripleConstraint", + "predicate": "http://www.w3.org/ns/dcat#keyword", + "valueExpr": "https://w3id.org/linkml/String", + "min": 0, + "max": -1 + }, + { + "type": "TripleConstraint", + "predicate": "http://purl.org/dc/terms/issued", + "valueExpr": "https://w3id.org/linkml/Datetime", + "min": 0, + "max": 1 + }, + { + "type": "TripleConstraint", + "predicate": "http://purl.org/pav/createdBy", + "valueExpr": "https://w3id.org/linkml/Uriorcurie", + "min": 0, + "max": 1 + }, + { + "type": "TripleConstraint", + "predicate": "http://purl.org/pav/createdOn", + "valueExpr": "https://w3id.org/linkml/Datetime", + "min": 0, + "max": 1 + }, + { + "type": "TripleConstraint", + "predicate": "https://w3id.org/linkml/reportcompression", + "valueExpr": "https://w3id.org/linkml/String", + "min": 0, + "max": 1 + }, + { + "type": "TripleConstraint", + "predicate": "http://www.w3.org/ns/prov#wasDerivedFrom", + "valueExpr": "https://w3id.org/linkml/String", + "min": 0, + "max": 1 + }, + { + "type": "TripleConstraint", + "predicate": "http://www.w3.org/ns/dcat#landingPage", + "valueExpr": "https://w3id.org/linkml/String", + "min": 0, + "max": 1 + }, + { + "type": "TripleConstraint", + "predicate": "https://w3id.org/linkml/reporttest_roles", + "valueExpr": "https://w3id.org/linkml/reportTestRole", + "min": 0, + "max": -1 + } + ] + }, + { + "type": "TripleConstraint", + "predicate": "http://www.w3.org/1999/02/22-rdf-syntax-ns#type", + "valueExpr": { + "type": "NodeConstraint", + "values": [ + "https://w3id.org/linkml/reportInformation" + ] + }, + "min": 1 + } + ] + } + } + ] +} + diff --git a/linkml_runtime/linkml_model/shex/meta.shex b/linkml_runtime/linkml_model/shex/meta.shex index bd00ae3f..4c5a60dc 100644 --- a/linkml_runtime/linkml_model/shex/meta.shex +++ b/linkml_runtime/linkml_model/shex/meta.shex @@ -1,15 +1,15 @@ BASE +PREFIX sh: +PREFIX skos: PREFIX owl: PREFIX rdf: PREFIX rdfs: PREFIX xsd: -PREFIX skos: PREFIX skosxl: PREFIX pav: PREFIX oslc: -PREFIX schema: +PREFIX schema1: PREFIX bibo: -PREFIX sh: PREFIX qudt: PREFIX dcterms: PREFIX oboInOwl: @@ -27,7 +27,7 @@ PREFIX oboInOwl: xsd:decimal -