Data models for generic empirical data
Demo schema for a generic data annotation use case. This schema
is deliberately not using the many schema building block available
for building submission-focused (FLAT) schemas. Instead it shows
how to build something custom solely based on the fundational
flat.
All class names are prefixed with XYZ to label them as use-case
specific.
More information may be available on the schema's about page.
The schema definition is available as
URI: https://concepts.datalad.org/s/demo-empirical-data/unreleased
Name: demo-empirical-data-schema
Schema Diagram
erDiagram
Annotation {
string annotation_value
}
AnnotationTag {
string display_label
string display_note
stringList editorial_note
uriorcurie pid
uriorcurieList broad_mappings
uriorcurieList close_mappings
string description
uriorcurieList exact_mappings
uriorcurieList narrow_mappings
uriorcurieList related_mappings
NodeUriOrCurie schema_type
}
AttributeSpecification {
uriorcurieList broad_mappings
uriorcurieList close_mappings
string description
uriorcurieList exact_mappings
uriorcurieList narrow_mappings
uriorcurieList related_mappings
NodeUriOrCurie schema_type
uriorcurie range
string value
}
Checksum {
uriorcurie creator
HexBinary notation
NodeUriOrCurie schema_type
}
ComputedIdentifier {
uriorcurie creator
string notation
NodeUriOrCurie schema_type
}
DOI {
string schema_agency
uriorcurie creator
string notation
NodeUriOrCurie schema_type
}
FlatAnnotation {
string annotation_value
}
FlatAttributeSpecification {
uriorcurieList broad_mappings
uriorcurieList close_mappings
string description
uriorcurieList exact_mappings
uriorcurieList narrow_mappings
uriorcurieList related_mappings
NodeUriOrCurie schema_type
uriorcurie range
string value
}
FlatProperty {
string display_label
string display_note
stringList editorial_note
uriorcurie pid
uriorcurieList broad_mappings
uriorcurieList close_mappings
string description
uriorcurieList exact_mappings
uriorcurieList narrow_mappings
uriorcurieList related_mappings
NodeUriOrCurie schema_type
}
FlatStatement {
}
FlatThing {
string display_label
string display_note
stringList editorial_note
uriorcurie pid
uriorcurieList broad_mappings
uriorcurieList close_mappings
string description
uriorcurieList exact_mappings
uriorcurieList narrow_mappings
uriorcurieList related_mappings
NodeUriOrCurie schema_type
}
Identifier {
uriorcurie creator
string notation
NodeUriOrCurie schema_type
}
IssuedIdentifier {
string schema_agency
uriorcurie creator
string notation
NodeUriOrCurie schema_type
}
Property {
uriorcurie pid
uriorcurieList broad_mappings
uriorcurieList close_mappings
string description
uriorcurieList exact_mappings
uriorcurieList narrow_mappings
uriorcurieList related_mappings
NodeUriOrCurie schema_type
}
Statement {
}
Thing {
uriorcurie pid
uriorcurieList broad_mappings
uriorcurieList close_mappings
string description
uriorcurieList exact_mappings
uriorcurieList narrow_mappings
uriorcurieList related_mappings
NodeUriOrCurie schema_type
}
ThingMixin {
uriorcurieList broad_mappings
uriorcurieList close_mappings
string description
uriorcurieList exact_mappings
uriorcurieList narrow_mappings
uriorcurieList related_mappings
NodeUriOrCurie schema_type
}
ValueSpecification {
uriorcurie range
string value
uriorcurie pid
uriorcurieList broad_mappings
uriorcurieList close_mappings
string description
uriorcurieList exact_mappings
uriorcurieList narrow_mappings
uriorcurieList related_mappings
NodeUriOrCurie schema_type
}
ValueSpecificationMixin {
uriorcurie range
string value
}
XYZDataItem {
string value
string display_label
string display_note
stringList editorial_note
uriorcurie pid
uriorcurieList broad_mappings
uriorcurieList close_mappings
string description
uriorcurieList exact_mappings
uriorcurieList narrow_mappings
uriorcurieList related_mappings
NodeUriOrCurie schema_type
}
XYZDataset {
string name
string short_name
string display_label
string display_note
stringList editorial_note
uriorcurie pid
uriorcurieList broad_mappings
uriorcurieList close_mappings
string description
uriorcurieList exact_mappings
uriorcurieList narrow_mappings
uriorcurieList related_mappings
NodeUriOrCurie schema_type
}
XYZDimension {
string name
string short_name
string display_label
string display_note
stringList editorial_note
uriorcurie pid
uriorcurieList broad_mappings
uriorcurieList close_mappings
string description
uriorcurieList exact_mappings
uriorcurieList narrow_mappings
uriorcurieList related_mappings
NodeUriOrCurie schema_type
}
XYZDistribution {
NonNegativeInteger byte_size
string media_type
string name
string display_label
string display_note
stringList editorial_note
uriorcurie pid
uriorcurieList broad_mappings
uriorcurieList close_mappings
string description
uriorcurieList exact_mappings
uriorcurieList narrow_mappings
uriorcurieList related_mappings
NodeUriOrCurie schema_type
}
XYZFactor {
string name
string short_name
string display_label
string display_note
stringList editorial_note
uriorcurie pid
uriorcurieList broad_mappings
uriorcurieList close_mappings
string description
uriorcurieList exact_mappings
uriorcurieList narrow_mappings
uriorcurieList related_mappings
NodeUriOrCurie schema_type
}
XYZFileFormat {
string name
string short_name
string display_label
string display_note
stringList editorial_note
uriorcurie pid
uriorcurieList broad_mappings
uriorcurieList close_mappings
string description
uriorcurieList exact_mappings
uriorcurieList narrow_mappings
uriorcurieList related_mappings
NodeUriOrCurie schema_type
}
XYZInstrument {
string name
string short_name
string display_label
string display_note
stringList editorial_note
uriorcurie pid
uriorcurieList broad_mappings
uriorcurieList close_mappings
string description
uriorcurieList exact_mappings
uriorcurieList narrow_mappings
uriorcurieList related_mappings
NodeUriOrCurie schema_type
}
XYZOrganization {
string name
string short_name
XYZOrganizationType organization_type
string display_label
string display_note
stringList editorial_note
uriorcurie pid
uriorcurieList broad_mappings
uriorcurieList close_mappings
string description
uriorcurieList exact_mappings
uriorcurieList narrow_mappings
uriorcurieList related_mappings
NodeUriOrCurie schema_type
}
XYZPerson {
stringList additional_names
string family_name
string given_name
string honorific_name_prefix
string honorific_name_suffix
EmailAddressList emails
string orcid
string display_label
string display_note
stringList editorial_note
uriorcurie pid
uriorcurieList broad_mappings
uriorcurieList close_mappings
string description
uriorcurieList exact_mappings
uriorcurieList narrow_mappings
uriorcurieList related_mappings
NodeUriOrCurie schema_type
}
XYZProtocol {
string name
string short_name
string display_label
string display_note
stringList editorial_note
uriorcurie pid
uriorcurieList broad_mappings
uriorcurieList close_mappings
string description
uriorcurieList exact_mappings
uriorcurieList narrow_mappings
uriorcurieList related_mappings
NodeUriOrCurie schema_type
}
XYZStudy {
string name
string short_name
string display_label
string display_note
stringList editorial_note
uriorcurie pid
uriorcurieList broad_mappings
uriorcurieList close_mappings
string description
uriorcurieList exact_mappings
uriorcurieList narrow_mappings
uriorcurieList related_mappings
NodeUriOrCurie schema_type
}
XYZStudyActivity {
string display_label
string display_note
stringList editorial_note
uriorcurie pid
uriorcurieList broad_mappings
uriorcurieList close_mappings
string description
uriorcurieList exact_mappings
uriorcurieList narrow_mappings
uriorcurieList related_mappings
NodeUriOrCurie schema_type
}
XYZSubject {
string name
string display_label
string display_note
stringList editorial_note
uriorcurie pid
uriorcurieList broad_mappings
uriorcurieList close_mappings
string description
uriorcurieList exact_mappings
uriorcurieList narrow_mappings
uriorcurieList related_mappings
NodeUriOrCurie schema_type
}
XYZSubjectType {
string name
string display_label
string display_note
stringList editorial_note
uriorcurie pid
uriorcurieList broad_mappings
uriorcurieList close_mappings
string description
uriorcurieList exact_mappings
uriorcurieList narrow_mappings
uriorcurieList related_mappings
NodeUriOrCurie schema_type
}
XYZUnit {
string name
string short_name
string display_label
string display_note
stringList editorial_note
uriorcurie pid
uriorcurieList broad_mappings
uriorcurieList close_mappings
string description
uriorcurieList exact_mappings
uriorcurieList narrow_mappings
uriorcurieList related_mappings
NodeUriOrCurie schema_type
}
Annotation ||--|o Thing : "annotation_tag"
AnnotationTag ||--}o FlatAnnotation : "annotations"
AnnotationTag ||--}o FlatAttributeSpecification : "attributes"
AnnotationTag ||--}o FlatStatement : "characterized_by"
AnnotationTag ||--}o Identifier : "identifiers"
AnnotationTag ||--}o Thing : "relations"
AttributeSpecification ||--|| Property : "predicate"
AttributeSpecification ||--}o Annotation : "annotations"
AttributeSpecification ||--}o AttributeSpecification : "attributes"
AttributeSpecification ||--}o Statement : "characterized_by"
FlatAnnotation ||--|o AnnotationTag : "annotation_tag"
FlatAttributeSpecification ||--|| FlatProperty : "predicate"
FlatAttributeSpecification ||--}o Annotation : "annotations"
FlatAttributeSpecification ||--}o AttributeSpecification : "attributes"
FlatAttributeSpecification ||--}o Statement : "characterized_by"
FlatProperty ||--}o Annotation : "annotations"
FlatProperty ||--}o AttributeSpecification : "attributes"
FlatProperty ||--}o Statement : "characterized_by"
FlatProperty ||--}o Thing : "relations"
FlatStatement ||--|| FlatProperty : "predicate"
FlatStatement ||--|| Thing : "object"
FlatThing ||--}o FlatAnnotation : "annotations"
FlatThing ||--}o FlatAttributeSpecification : "attributes"
FlatThing ||--}o FlatStatement : "characterized_by"
FlatThing ||--}o Identifier : "identifiers"
FlatThing ||--}o Thing : "relations"
Property ||--}o Annotation : "annotations"
Property ||--}o AttributeSpecification : "attributes"
Property ||--}o Statement : "characterized_by"
Property ||--}o Thing : "relations"
Statement ||--|| Property : "predicate"
Statement ||--|| Thing : "object"
Thing ||--}o Annotation : "annotations"
Thing ||--}o AttributeSpecification : "attributes"
Thing ||--}o Statement : "characterized_by"
Thing ||--}o Thing : "relations"
ThingMixin ||--}o Annotation : "annotations"
ThingMixin ||--}o AttributeSpecification : "attributes"
ThingMixin ||--}o Statement : "characterized_by"
ValueSpecification ||--}o Annotation : "annotations"
ValueSpecification ||--}o AttributeSpecification : "attributes"
ValueSpecification ||--}o Statement : "characterized_by"
ValueSpecification ||--}o Thing : "relations"
XYZDataItem ||--|o XYZSubject : "derived_from"
XYZDataItem ||--|o XYZUnit : "unit"
XYZDataItem ||--|| XYZDataset : "part_of"
XYZDataItem ||--|| XYZStudyActivity : "generated_by"
XYZDataItem ||--}o FlatAnnotation : "annotations"
XYZDataItem ||--}o FlatAttributeSpecification : "attributes"
XYZDataItem ||--}o FlatStatement : "characterized_by"
XYZDataItem ||--}o Identifier : "identifiers"
XYZDataItem ||--}o Thing : "relations"
XYZDataItem ||--}o XYZDimension : "dimensions"
XYZDataset ||--|o XYZDataset : "part_of"
XYZDataset ||--|o XYZStudyActivity : "generated_by"
XYZDataset ||--}o FlatAnnotation : "annotations"
XYZDataset ||--}o FlatAttributeSpecification : "attributes"
XYZDataset ||--}o FlatStatement : "characterized_by"
XYZDataset ||--}o Identifier : "identifiers"
XYZDataset ||--}o Thing : "relations"
XYZDataset ||--}o XYZDimension : "dimensions"
XYZDimension ||--}o FlatAnnotation : "annotations"
XYZDimension ||--}o FlatAttributeSpecification : "attributes"
XYZDimension ||--}o FlatStatement : "characterized_by"
XYZDimension ||--}o Identifier : "identifiers"
XYZDimension ||--}o Thing : "relations"
XYZDistribution ||--|o XYZDistribution : "part_of"
XYZDistribution ||--|o XYZFileFormat : "format"
XYZDistribution ||--|| XYZDataItem : "distribution_of"
XYZDistribution ||--}o Checksum : "checksums"
XYZDistribution ||--}o FlatAnnotation : "annotations"
XYZDistribution ||--}o FlatAttributeSpecification : "attributes"
XYZDistribution ||--}o FlatStatement : "characterized_by"
XYZDistribution ||--}o Identifier : "identifiers"
XYZDistribution ||--}o Thing : "relations"
XYZFactor ||--|o XYZFactor : "factor_level_of"
XYZFactor ||--}o FlatAnnotation : "annotations"
XYZFactor ||--}o FlatAttributeSpecification : "attributes"
XYZFactor ||--}o FlatStatement : "characterized_by"
XYZFactor ||--}o Identifier : "identifiers"
XYZFactor ||--}o Thing : "relations"
XYZFileFormat ||--}o FlatAnnotation : "annotations"
XYZFileFormat ||--}o FlatAttributeSpecification : "attributes"
XYZFileFormat ||--}o FlatStatement : "characterized_by"
XYZFileFormat ||--}o Identifier : "identifiers"
XYZFileFormat ||--}o Thing : "relations"
XYZInstrument ||--}o FlatAnnotation : "annotations"
XYZInstrument ||--}o FlatAttributeSpecification : "attributes"
XYZInstrument ||--}o FlatStatement : "characterized_by"
XYZInstrument ||--}o Identifier : "identifiers"
XYZInstrument ||--}o Thing : "relations"
XYZOrganization ||--|o XYZOrganization : "parent_organization"
XYZOrganization ||--}o FlatAnnotation : "annotations"
XYZOrganization ||--}o FlatAttributeSpecification : "attributes"
XYZOrganization ||--}o FlatStatement : "characterized_by"
XYZOrganization ||--}o Identifier : "identifiers"
XYZOrganization ||--}o Thing : "relations"
XYZOrganization ||--}o XYZPerson : "leaders"
XYZPerson ||--}o FlatAnnotation : "annotations"
XYZPerson ||--}o FlatAttributeSpecification : "attributes"
XYZPerson ||--}o FlatStatement : "characterized_by"
XYZPerson ||--}o Identifier : "identifiers"
XYZPerson ||--}o Thing : "relations"
XYZPerson ||--}o XYZOrganization : "member_of"
XYZProtocol ||--}o FlatAnnotation : "annotations"
XYZProtocol ||--}o FlatAttributeSpecification : "attributes"
XYZProtocol ||--}o FlatStatement : "characterized_by"
XYZProtocol ||--}o Identifier : "identifiers"
XYZProtocol ||--}o Thing : "relations"
XYZStudy ||--}o FlatAnnotation : "annotations"
XYZStudy ||--}o FlatAttributeSpecification : "attributes"
XYZStudy ||--}o FlatStatement : "characterized_by"
XYZStudy ||--}o Identifier : "identifiers"
XYZStudy ||--}o Thing : "relations"
XYZStudy ||--}o XYZDimension : "dimensions"
XYZStudy ||--}o XYZFactor : "factors"
XYZStudy ||--}o XYZInstrument : "instruments"
XYZStudy ||--}o XYZProtocol : "implements"
XYZStudyActivity ||--|o XYZStudyActivity : "part_of"
XYZStudyActivity ||--|| XYZStudy : "study"
XYZStudyActivity ||--}o FlatAnnotation : "annotations"
XYZStudyActivity ||--}o FlatAttributeSpecification : "attributes"
XYZStudyActivity ||--}o FlatStatement : "characterized_by"
XYZStudyActivity ||--}o Identifier : "identifiers"
XYZStudyActivity ||--}o Thing : "relations"
XYZStudyActivity ||--}o XYZFactor : "factors"
XYZStudyActivity ||--}o XYZInstrument : "instruments"
XYZStudyActivity ||--}o XYZProtocol : "implements"
XYZStudyActivity ||--}o XYZSubject : "subjects"
XYZSubject ||--|o XYZSubject : "derived_from"
XYZSubject ||--|o XYZSubjectType : "subject_type"
XYZSubject ||--|| XYZStudy : "study"
XYZSubject ||--}o FlatAnnotation : "annotations"
XYZSubject ||--}o FlatAttributeSpecification : "attributes"
XYZSubject ||--}o FlatStatement : "characterized_by"
XYZSubject ||--}o Identifier : "identifiers"
XYZSubject ||--}o Thing : "relations"
XYZSubjectType ||--}o FlatAnnotation : "annotations"
XYZSubjectType ||--}o FlatAttributeSpecification : "attributes"
XYZSubjectType ||--}o FlatStatement : "characterized_by"
XYZSubjectType ||--}o Identifier : "identifiers"
XYZSubjectType ||--}o Thing : "relations"
XYZUnit ||--}o FlatAnnotation : "annotations"
XYZUnit ||--}o FlatAttributeSpecification : "attributes"
XYZUnit ||--}o FlatStatement : "characterized_by"
XYZUnit ||--}o Identifier : "identifiers"
XYZUnit ||--}o Thing : "relations"
Classes
| Class | Description |
|---|---|
| Annotation | A tag/value pair with the semantics of OWL Annotation |
| FlatAnnotation | A tag/value pair with the semantics of OWL Annotation |
| AttributeSpecification | An attribute is conceptually a thing, but it requires no dedicated identifier... |
| FlatAttributeSpecification | An attribute is conceptually a thing, but it requires no dedicated identifier... |
| Identifier | An identifier is a label that uniquely identifies an item in a particular con... |
| ComputedIdentifier | An identifier that has been derived from information on the identified entity |
| Checksum | A Checksum is a value that allows to check the integrity of the contents of a... |
| IssuedIdentifier | An identifier that was issued by a particular agent with a notation that has ... |
| DOI | Digital Object Identifier (DOI; ISO 26324), an identifier system governed by ... |
| Statement | An RDF statement that links a predicate (a Property) with an object (a ... |
| FlatStatement | An RDF statement that links a predicate (a Property) with an object (a ... |
| Thing | The most basic, identifiable item |
| FlatThing | Thing variant that provides a basis for the annotation and curation of more... |
| AnnotationTag | A tag identifying an annotation |
| XYZDataItem | A single data item, the building block of Datasets |
| XYZDataset | A collection of data, published or curated by a single agent |
| XYZDimension | A dependent or outcome variable |
| XYZDistribution | A specific representation of a data item, which may come in the form of an el... |
| XYZFactor | A tag associated with a categorical, independent variable in a study design |
| XYZFileFormat | The file format of a distribution |
| XYZInstrument | A material entity that is designed to perform a function in a scientific inve... |
| XYZOrganization | A social or legal institution such as a company, a society, or a university |
| XYZPerson | A person |
| XYZProtocol | A plan specification which has sufficient level of detail and quantitative in... |
| XYZStudy | A planned process that consists of parts: planning, study design execution, d... |
| XYZStudyActivity | An activity in the context of a study, where one or more subjects are studied... |
| XYZSubject | A subject is an entity being investigated in a study |
| XYZSubjectType | Classifier for the nature of a subject |
| XYZUnit | Standardized quantity of a physical quality |
| Property | An RDF property, a Thing used to define a predicate, for example in a `St... |
| FlatProperty | An RDF property, a Thing used to define a predicate, for example in a `St... |
| ValueSpecification | A Thing that is a value of some kind |
| ThingMixin | Mix-in with the common interface of Thing and AttributeSpecification |
| ValueSpecificationMixin | Mix-in for a (structured) value specification |
Slots
| Slot | Description |
|---|---|
| additional_names | Additional name(s) associated with the subject, such as one or more middle na... |
| annotation_tag | A tag identifying an annotation |
| annotation_value | The actual annotation |
| annotations | A record of properties of the metadata record on a subject, a collection of t... |
| attributes | Declares a relation that associates a Thing (or another attribute) with an ... |
| broad_mappings | A list of terms from different schemas or terminology systems that have broad... |
| byte_size | The size of the subject in bytes |
| characterized_by | Qualifies relationships between a subject Thing and an object Thing with ... |
| checksums | The checksum property provides a mechanism that can be used to verify that th... |
| close_mappings | A list of terms from different schemas or terminology systems that have close... |
| creator | An agent responsible for making an entity |
| curation_comments | A comment about a metadata record either providing additional information for... |
| derived_from | A entity from which the subject was created through some kind of process |
| description | A free-text account of the subject |
| dimensions | Associated outcome variables |
| display_label | Label that can be shown when the metadata record is displayed as an item |
| display_note | Note that can be shown when the record is displayed as an item |
| distribution_of | The resource that the subject is a distribution of |
| editorial_note | A comment about a metadata record either providing additional information for... |
| emails | Associated email address |
| exact_mappings | A list of terms from different schemas or terminology systems that have ident... |
| factor_level_of | A factor the subject is a (sub)level of |
| factors | Factors that influence the subject matter |
| family_name | The (inherited) family name of the subject |
| format | The file format of a distribution |
| generated_by | Identification of the process that led to the production of the subject entit... |
| given_name | The given (non-inherited) name of the subject |
| honorific_name_prefix | The honorific prefix(es) of the subject's name |
| honorific_name_suffix | The honorific suffix(es) of the subject's name |
| identifiers | An unambiguous reference to the subject within a given context |
| implements | Protocols or standards that are relevant for the subject |
| instruments | Instruments employed in a study activity |
| leaders | Person(s) that are formal or informal leaders of the subject |
| mappings | A list of terms from different schemas or terminology systems that have compa... |
| media_type | The media type of a distribution as defined by IANA |
| member_of | The subject is a member of an organization |
| name | Name of the subject |
| narrow_mappings | A list of terms from different schemas or terminology systems that have narro... |
| notation | String of characters such as "T58:5" or "30:4833" used to uniquely identify a... |
| object | Reference to a Thing within a Statement |
| orcid | Associated ORCID identifier (see https://orcid |
| organization_type | Type of an organization |
| parent_organization | An organization the subject is a part of |
| part_of | The entity that the subject is a part of |
| pid | Persistent and globally unique identifier of a Thing |
| predicate | Reference to a Property within a Statement |
| range | Declares that the value of a Thing or AttributeSpecification are instance... |
| record_contact | Person to contact regarding questions about information in this metadata reco... |
| related_mappings | A list of terms from different schemas or terminology systems that have relat... |
| relations | Declares an unqualified relation of the subject Thing to another Thing |
| schema_agency | Name of the agency that issued an identifier |
| schema_type | State that the subject is an instance of a particular schema class |
| short_name | A shortened name for the subject |
| study | The study in which the subject took place or existed |
| subject_type | A classifier that identifies the nature/type of a subject |
| subjects | Studied subjects |
| unit | Unit of the quantitative value associated with the subject entity |
| value | Value that is a direct representation of a thing |
Enumerations
| Enumeration | Description |
|---|---|
| XYZOrganizationType | Classification of organizations |
Types
| Type | Description |
|---|---|
| Boolean | A binary (true or false) value |
| Curie | a compact URI |
| Date | a date (year, month and day) in an idealized calendar |
| DateOrDatetime | Either a date or a datetime |
| Datetime | The combination of a date and time |
| Decimal | A real number with arbitrary precision that conforms to the xsd:decimal speci... |
| Double | A real number that conforms to the xsd:double specification |
| EmailAddress | RFC 5322 compliant email address |
| Float | A real number that conforms to the xsd:float specification |
| HexBinary | hex-encoded binary data |
| Integer | An integer |
| Jsonpath | A string encoding a JSON Path |
| Jsonpointer | A string encoding a JSON Pointer |
| Ncname | Prefix part of CURIE |
| Nodeidentifier | A URI, CURIE or BNODE that represents a node in a model |
| NodeUriOrCurie | A type referencing an graph node |
| NonNegativeInteger | An integer |
| Objectidentifier | A URI or CURIE that represents an object in the model |
| Sparqlpath | A string encoding a SPARQL Property Path |
| String | A character string |
| Time | A time object represents a (local) time of day, independent of any particular... |
| Uri | a complete URI |
| Uriorcurie | a URI or a CURIE |
Subsets
| Subset | Description |
|---|---|