HED ontology development guide¶
Overview¶
Naming conventions¶
HED classes¶
All hed classes have names starting with Hed.
HED classes use upper camel case (all words start with a capital letter).
Class names should be singular.
HED properties¶
HED properties use lower camel case (all words except first start with a capital letter).
HED instances of classes¶
In the HED schema HED tags start with a capital letter and individual words are hyphenated. These are converted upper camel case with underscores and hyphens removed:
Example: The HED tag Sensory-event is converted to SensoryEvent.
Annotation properties¶
Property |
Range |
Target |
Description |
---|---|---|---|
library |
xsd:string |
HedHeader |
The name of the library schema if applicable. |
unmerged |
xsd:boolean |
HedHeader |
If true, schema is not merged with partner schema. |
version |
xsd:boolean |
HedHeader |
The semantic version of this schema. |
wikiSchemaSection |
xsd:string |
HedElement |
The name in Mediawiki format of the schema section this element belongs to. |
withStandard |
xsd:boolean |
HedHeader |
The version of the schema’s standard schema partner. |
xmlSchemaSection |
xsd:string |
HedElement |
The name in XML format of the schema section this element belongs to. |
Mapping rules¶
The element (whether class, property, or instance) description (that appears in square brackets in the schema) is mapped to rdfs:comment.
The name the element uses in the HED schema is mapped to rdfs:label.
Schema attributes¶
Rules:
Schema attributes have either owl:DatatypeProperty or owl:ObjectProperty.
owl:DatatypeProperty are recognized by having rdfs:subPropertyOf value of either hed:schemaAttributeDatatypeProperty or hed:schemaAttributeObjectProperty,
Schema attributes are mapped to owl:DatatypeProperty with if
Schema sections¶
hed:HedSection The sections of the schema are specified by instances of the hed:HedSchemaSection class.
Main classes¶
Name |
subclass |
Description |
---|---|---|
owl:Class |
Superclass for specifying the structure of a HED schema. |
|
owl:Class |
Specifies the schema header. |
|
owl:Class |
Specifies HED term or node elements. |
|
owl:Class |
Specifies HED node placeholders. |
|
owl:Class |
Defines attribute modifiers of other sections of the schema. |
|
owl:Class |
Specifies a HED unit . |
|
owl:Class |
Specifies HED units and unit modifiers. |
|
owl:Class |
Subclass of HedUnitClass defining unit modifiers. |
|
owl:Class |
Defines the types of value classes. |
HedElement¶
HedElement is the superclass for all structure of the HED schema.
HedHeader¶
HedNode¶
HedNode is a class representing a HED tag or term. It is a subclass of HedElement.
Rules for instances:
each HED tag or term is an instance of HedNode.
every instance of HedNode has either the hasHedParent or the isTopLevelTag property.
HedPlaceholder¶
HedPlaceholder is a class representing the #
nodes in the HED schema.
Each #
in the schema corresponds to an instance of HedPlaceholder.
Rules for instances of HedPlaceholder:
must have a isTakesValue property of true.
may have one or more hasValueClass property items.
may have one or more UnitClass instances.
must have isExtensionAllowed property of False.
must have isTopLevelTag property of False.
must have a hasHedParent property.
HedSchemaAttribute¶
HedUnit¶
HedUnit specifies units.
Rules for instances of HedUnit:
Must be an instance of HedUnit.
Must have a hasUnitClassType property
May have the isSIUnit property.
May have a isUnitSymbol property.
May have a hasConversionFactorValue property.
HedUnitClass¶
HedUnitClass specifies the types of HED units and unit modifiers.
Rules for instances of HedUnitClass:
Each type of units such as accelerationUnits is an instance of HedUnitClass.
An instance of HedUnitClass may have a hasDefaultUnits property.
HedUnitModifier¶
HedUnitModifier is a subclass of HedUnitClass that specifies unit modifiers.
Rules for instances of HedUnitModifier:
Must be an instance of HedUnitModifier.
Has either the isSIUnitModifier or isSIUnitSymbolModifier property.
Must have the hasConversionFactor property.