diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
index 0c7d2d647..3bf4bb72b 100644
--- a/.github/workflows/ci.yaml
+++ b/.github/workflows/ci.yaml
@@ -104,7 +104,7 @@ jobs:
with:
coverageCommand: coverage xml
debug: true
- uses: paambaati/codeclimate-action@v4.0.0
+ uses: paambaati/codeclimate-action@v5.0.0
env:
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
diff --git a/docs/source/conf.py b/docs/source/conf.py
index fbc4813b3..1e5bf07d1 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -87,7 +87,7 @@
'vcs_pageview_mode': '',
'style_nav_header_background': 'LightSlateGray',
# Toc options
- 'collapse_navigation': True,
+ 'collapse_navigation': False,
'sticky_navigation': True,
'navigation_depth': 4,
'includehidden': True,
diff --git a/docs/source/index.rst b/docs/source/index.rst
index ee0b056e8..924fb2b7e 100644
--- a/docs/source/index.rst
+++ b/docs/source/index.rst
@@ -21,7 +21,7 @@ Note: this is a work in progress. More information is coming.
user_guide.rst
.. toctree::
- :maxdepth: 3
+ :maxdepth: 4
:caption: HED Python API:
api2.rst
diff --git a/hed/__init__.py b/hed/__init__.py
index e9026996d..ec0c2c83b 100644
--- a/hed/__init__.py
+++ b/hed/__init__.py
@@ -12,7 +12,7 @@
from hed.schema.hed_schema import HedSchema
from hed.schema.hed_schema_group import HedSchemaGroup
-from hed.schema.hed_schema_io import get_schema, load_schema, load_schema_version
+from hed.schema.hed_schema_io import load_schema, load_schema_version
# from hed import errors, models, schema, tools, validator
diff --git a/hed/errors/__init__.py b/hed/errors/__init__.py
index 8bbe1f662..d68ba3e08 100644
--- a/hed/errors/__init__.py
+++ b/hed/errors/__init__.py
@@ -1,4 +1,4 @@
-from .error_reporter import ErrorHandler, get_printable_issue_string, sort_issues
+from .error_reporter import ErrorHandler, get_printable_issue_string, sort_issues, replace_tag_references
from .error_types import DefinitionErrors, OnsetErrors, SchemaErrors, SchemaWarnings, SidecarErrors, \
ValidationErrors, ColumnErrors
from .error_types import ErrorContext, ErrorSeverity
diff --git a/hed/errors/error_messages.py b/hed/errors/error_messages.py
index 3591bae83..da5c06b3d 100644
--- a/hed/errors/error_messages.py
+++ b/hed/errors/error_messages.py
@@ -5,8 +5,7 @@
"""
from hed.errors.error_reporter import hed_error, hed_tag_error
-from hed.errors.error_types import ValidationErrors, SchemaErrors, \
- SidecarErrors, SchemaWarnings, ErrorSeverity, DefinitionErrors, OnsetErrors, ColumnErrors
+from hed.errors.error_types import ValidationErrors, SidecarErrors, ErrorSeverity, DefinitionErrors, OnsetErrors, ColumnErrors
@hed_tag_error(ValidationErrors.UNITS_INVALID)
@@ -165,13 +164,13 @@ def val_error_sidecar_key_missing(invalid_key, category_keys):
@hed_tag_error(ValidationErrors.HED_DEF_EXPAND_INVALID, actual_code=ValidationErrors.DEF_EXPAND_INVALID)
def val_error_bad_def_expand(tag, actual_def, found_def):
- return f"A data-recording’s Def-expand tag does not match the given definition." + \
+ return f"A data-recording's Def-expand tag does not match the given definition." + \
f"Tag: '{tag}'. Actual Def: {actual_def}. Found Def: {found_def}"
@hed_tag_error(ValidationErrors.HED_DEF_UNMATCHED, actual_code=ValidationErrors.DEF_INVALID)
def val_error_def_unmatched(tag):
- return f"A data-recording’s Def tag cannot be matched to definition. Tag: '{tag}'"
+ return f"A data-recording's Def tag cannot be matched to definition. Tag: '{tag}'"
@hed_tag_error(ValidationErrors.HED_DEF_VALUE_MISSING, actual_code=ValidationErrors.DEF_INVALID)
@@ -186,7 +185,7 @@ def val_error_def_value_extra(tag):
@hed_tag_error(ValidationErrors.HED_DEF_EXPAND_UNMATCHED, actual_code=ValidationErrors.DEF_EXPAND_INVALID)
def val_error_def_expand_unmatched(tag):
- return f"A data-recording’s Def-expand tag cannot be matched to definition. Tag: '{tag}'"
+ return f"A data-recording's Def-expand tag cannot be matched to definition. Tag: '{tag}'"
@hed_tag_error(ValidationErrors.HED_DEF_EXPAND_VALUE_MISSING, actual_code=ValidationErrors.DEF_EXPAND_INVALID)
@@ -228,60 +227,11 @@ def val_warning_capitalization(tag):
@hed_tag_error(ValidationErrors.UNITS_MISSING, default_severity=ErrorSeverity.WARNING)
def val_warning_default_units_used(tag, default_unit):
+ if default_unit is None:
+ return f"No unit specified on - '{tag}'. Multiple default values exist and cannot be inferred"
return f"No unit specified. Using '{default_unit}' as the default - '{tag}'"
-@hed_error(SchemaErrors.HED_SCHEMA_DUPLICATE_NODE)
-def schema_error_hed_duplicate_node(tag, duplicate_tag_list, section):
- tag_join_delimiter = "\n\t"
- return f"Duplicate term '{str(tag)}' used {len(duplicate_tag_list)} places in '{section}' section schema as:" + \
- f"{tag_join_delimiter}{tag_join_delimiter.join(duplicate_tag_list)}"
-
-
-@hed_error(SchemaErrors.HED_SCHEMA_DUPLICATE_FROM_LIBRARY)
-def schema_error_hed_duplicate_node(tag, duplicate_tag_list, section):
- tag_join_delimiter = "\n\t"
- return f"Duplicate term '{str(tag)}' was found in the library and in the standard schema in '{section}' section schema as:" + \
- f"{tag_join_delimiter}{tag_join_delimiter.join(duplicate_tag_list)}"
-
-
-@hed_error(SchemaErrors.SCHEMA_ATTRIBUTE_INVALID)
-def schema_error_unknown_attribute(attribute_name, source_tag):
- return f"Attribute '{attribute_name}' used by '{source_tag}' was not defined in the schema, " \
- f"or was used outside of it's defined class."
-
-
-@hed_error(SchemaWarnings.INVALID_CHARACTERS_IN_DESC, default_severity=ErrorSeverity.WARNING,
- actual_code=SchemaWarnings.HED_SCHEMA_CHARACTER_INVALID)
-def schema_warning_invalid_chars_desc(desc_string, tag_name, problem_char, char_index):
- return f"Invalid character '{problem_char}' in desc for '{tag_name}' at position {char_index}. '{desc_string}"
-
-
-@hed_error(SchemaWarnings.INVALID_CHARACTERS_IN_TAG, default_severity=ErrorSeverity.WARNING,
- actual_code=SchemaWarnings.HED_SCHEMA_CHARACTER_INVALID)
-def schema_warning_invalid_chars_tag(tag_name, problem_char, char_index):
- return f"Invalid character '{problem_char}' in tag '{tag_name}' at position {char_index}."
-
-
-@hed_error(SchemaWarnings.INVALID_CAPITALIZATION, default_severity=ErrorSeverity.WARNING)
-def schema_warning_invalid_capitalization(tag_name, problem_char, char_index):
- return "First character must be a capital letter or number. " + \
- f"Found character '{problem_char}' in tag '{tag_name}' at position {char_index}."
-
-
-@hed_error(SchemaWarnings.NON_PLACEHOLDER_HAS_CLASS, default_severity=ErrorSeverity.WARNING)
-def schema_warning_non_placeholder_class(tag_name, invalid_attribute_name):
- return "Only placeholder nodes('#') can have a unit or value class." + \
- f"Found {invalid_attribute_name} on {tag_name}"
-
-
-@hed_error(SchemaWarnings.INVALID_ATTRIBUTE, default_severity=ErrorSeverity.ERROR)
-def schema_error_invalid_attribute(tag_name, invalid_attribute_name):
- return f"'{invalid_attribute_name}' should not be present in a loaded schema, found on '{tag_name}'." \
- f"Something went very wrong."
-
-
-
@hed_error(SidecarErrors.BLANK_HED_STRING)
def sidecar_error_blank_hed_string():
return "No HED string found for Value or Category column."
@@ -389,6 +339,11 @@ def onset_error_offset_before_onset(tag):
return f"Offset tag '{tag}' does not have a matching onset."
+@hed_tag_error(OnsetErrors.ONSET_SAME_DEFS_ONE_ROW, actual_code=ValidationErrors.ONSET_OFFSET_INSET_ERROR)
+def onset_error_same_defs_one_row(tag, def_name):
+ return f"'{tag}' uses name '{def_name}', which was already used at this onset time."
+
+
@hed_tag_error(OnsetErrors.INSET_BEFORE_ONSET, actual_code=ValidationErrors.ONSET_OFFSET_INSET_ERROR)
def onset_error_inset_before_onset(tag):
return f"Inset tag '{tag}' does not have a matching onset."
diff --git a/hed/errors/error_reporter.py b/hed/errors/error_reporter.py
index 2a8d0353c..409656235 100644
--- a/hed/errors/error_reporter.py
+++ b/hed/errors/error_reporter.py
@@ -5,8 +5,10 @@
"""
from functools import wraps
+import xml.etree.ElementTree as ET
import copy
from hed.errors.error_types import ErrorContext, ErrorSeverity
+from hed.errors.known_error_codes import known_error_codes
error_functions = {}
@@ -32,6 +34,7 @@
ErrorContext.ROW
]
+
def _register_error_function(error_type, wrapper_func):
if error_type in error_functions:
raise KeyError(f"{error_type} defined more than once.")
@@ -96,7 +99,7 @@ def wrapper(tag, index_in_tag, index_in_tag_end, *args, severity=default_severit
Parameters:
tag (HedTag): The hed tag object with the problem,
index_in_tag (int): The index into the tag with a problem(usually 0),
- index_in_tag_end (int): The last index into the tag with a problem(usually len(tag),
+ index_in_tag_end (int): The last index into the tag with a problem - usually len(tag),
args (args): Any other non keyword args.
severity (ErrorSeverity): Used to include warnings as well as errors.
kwargs (**kwargs): Any keyword args to be passed down to error message function.
@@ -164,8 +167,11 @@ def wrapper(tag, *args, severity=default_severity, **kwargs):
# Import after hed_error decorators are defined.
from hed.errors import error_messages
+from hed.errors import schema_error_messages
+
# Intentional to make sure tools don't think the import is unused
error_messages.mark_as_used = True
+schema_error_messages.mark_as_used = True
class ErrorHandler:
@@ -324,13 +330,8 @@ def _add_context_to_errors(error_object, error_context_to_add):
@staticmethod
def _create_error_object(error_type, base_message, severity, **kwargs):
- if severity == ErrorSeverity.ERROR:
- error_prefix = "ERROR: "
- else:
- error_prefix = "WARNING: "
- error_message = error_prefix + base_message
error_object = {'code': error_type,
- 'message': error_message,
+ 'message': base_message,
'severity': severity
}
@@ -417,7 +418,6 @@ def sort_issues(issues, reverse=False):
Returns:
list: The sorted list of issues."""
def _get_keys(d):
- from hed import HedString
result = []
for key in default_sort_list:
if key in int_sort_list:
@@ -431,7 +431,16 @@ def _get_keys(d):
return issues
-def get_printable_issue_string(issues, title=None, severity=None, skip_filename=True):
+def check_for_any_errors(issues_list):
+ """Returns True if there are any errors with a severity of warning"""
+ for issue in issues_list:
+ if issue['severity'] < ErrorSeverity.WARNING:
+ return True
+
+ return False
+
+
+def get_printable_issue_string(issues, title=None, severity=None, skip_filename=True, add_link=False):
""" Return a string with issues list flatted into single string, one per line.
Parameters:
@@ -439,41 +448,124 @@ def get_printable_issue_string(issues, title=None, severity=None, skip_filename=
title (str): Optional title that will always show up first if present(even if there are no validation issues).
severity (int): Return only warnings >= severity.
skip_filename (bool): If true, don't add the filename context to the printable string.
-
+ add_link (bool): Add a link at the end of message to the appropriate error if True
Returns:
str: A string containing printable version of the issues or ''.
"""
- last_used_error_context = []
+ if severity is not None:
+ issues = ErrorHandler.filter_issues_by_severity(issues, severity)
+
+ output_dict = _build_error_context_dict(issues, skip_filename)
+ issue_string = _error_dict_to_string(output_dict, add_link=add_link)
+
+ if title:
+ issue_string = title + '\n' + issue_string
+ return issue_string
+
+
+def get_printable_issue_string_html(issues, title=None, severity=None, skip_filename=True):
+ """ Return a string with issues list as an HTML tree.
+ Parameters:
+ issues (list): Issues to print.
+ title (str): Optional title that will always show up first if present.
+ severity (int): Return only warnings >= severity.
+ skip_filename (bool): If true, don't add the filename context to the printable string.
+
+ Returns:
+ str: An HTML string containing the issues or ''.
+ """
if severity is not None:
issues = ErrorHandler.filter_issues_by_severity(issues, severity)
- issue_string = ""
+ output_dict = _build_error_context_dict(issues, skip_filename)
+
+ root_element = _create_error_tree(output_dict)
+ if title:
+ title_element = ET.Element("h1")
+ title_element.text = title
+ root_element.insert(0, title_element)
+ return ET.tostring(root_element, encoding='unicode')
+
+
+def create_doc_link(error_code):
+ """If error code is a known code, return a documentation url for it
+
+ Parameters:
+ error_code(str): A HED error code
+
+ Returns:
+ url(str or None): The URL if it's a valid code
+ """
+ if error_code in known_error_codes["hed_validation_errors"] \
+ or error_code in known_error_codes["schema_validation_errors"]:
+ modified_error_code = error_code.replace("_", "-").lower()
+ return f"https://hed-specification.readthedocs.io/en/latest/Appendix_B.html#{modified_error_code}"
+ return None
+
+
+def _build_error_context_dict(issues, skip_filename):
+ """Builds the context -> error dictionary for an entire list of issues
+
+ Returns:
+ dict: A nested dictionary structure with a "children" key at each level for unrelated children.
+ """
+ output_dict = None
for single_issue in issues:
single_issue_context = _get_context_from_issue(single_issue, skip_filename)
- context_string, tab_string = _get_context_string(single_issue_context, last_used_error_context)
+ output_dict = _add_single_error_to_dict(single_issue_context, output_dict, single_issue)
- issue_string += context_string
- single_issue_message = tab_string + single_issue['message']
- if "\n" in single_issue_message:
- single_issue_message = single_issue_message.replace("\n", "\n" + tab_string)
- issue_string += f"{single_issue_message}\n"
- last_used_error_context = single_issue_context.copy()
+ return output_dict
- if issue_string:
- issue_string += "\n"
- if title:
- issue_string = title + '\n' + issue_string
- return issue_string
+def _add_single_error_to_dict(items, root=None, issue_to_add=None):
+ """ Build a nested dictionary out of the context lists
-def check_for_any_errors(issues_list):
- for issue in issues_list:
- if issue['severity'] < ErrorSeverity.WARNING:
- return True
+ Parameters:
+ items (list): A list of error contexts
+ root (dict, optional): An existing nested dictionary structure to update.
+ issue_to_add (dict, optional): The issue to add at this level of context
- return False
+ Returns:
+ dict: A nested dictionary structure with a "children" key at each level for unrelated children.
+ """
+ if root is None:
+ root = {"children": []}
+
+ current_dict = root
+ for item in items:
+ # Navigate to the next level if the item already exists, or create a new level
+ next_dict = current_dict.get(item, {"children": []})
+ current_dict[item] = next_dict
+ current_dict = next_dict
+
+ if issue_to_add:
+ current_dict["children"].append(issue_to_add)
+
+ return root
+
+
+def _error_dict_to_string(print_dict, add_link=True, level=0):
+ output = ""
+ if print_dict is None:
+ return output
+ for context, value in print_dict.items():
+ if context == "children":
+ for child in value:
+ single_issue_message = child["message"]
+ issue_string = level * "\t" + _get_error_prefix(child)
+ issue_string += f"{single_issue_message}\n"
+ if add_link:
+ link_url = create_doc_link(child['code'])
+ if link_url:
+ single_issue_message += f" See... {link_url}"
+ output += issue_string
+ continue
+ output += _format_single_context_string(context[0], context[1], level)
+ output += _error_dict_to_string(value, add_link, level + 1)
+
+ return output
def _get_context_from_issue(val_issue, skip_filename=True):
@@ -488,17 +580,38 @@ def _get_context_from_issue(val_issue, skip_filename=True):
"""
single_issue_context = []
- for key in val_issue:
+ for key, value in val_issue.items():
if skip_filename and key == ErrorContext.FILE_NAME:
continue
+ if key == ErrorContext.HED_STRING:
+ value = value.get_original_hed_string()
if key.startswith("ec_"):
- single_issue_context.append((key, val_issue[key]))
+ single_issue_context.append((key, str(value)))
return single_issue_context
+def _get_error_prefix(single_issue):
+ """Returns the prefix for the error message based on severity and error code.
+
+ Parameters:
+ single_issue(dict): A single issue object
+
+ Returns:
+ error_prefix(str): the prefix to use
+ """
+ severity = single_issue.get('severity', ErrorSeverity.ERROR)
+ error_code = single_issue['code']
+
+ if severity == ErrorSeverity.ERROR:
+ error_prefix = f"{error_code}: "
+ else:
+ error_prefix = f"{error_code}: (Warning) "
+ return error_prefix
+
+
def _format_single_context_string(context_type, context, tab_count=0):
- """ Return the human readable form of a single context tuple.
+ """ Return the human-readable form of a single context tuple.
Parameters:
context_type (str): The context type of this entry.
@@ -510,8 +623,6 @@ def _format_single_context_string(context_type, context, tab_count=0):
"""
tab_string = tab_count * '\t'
- if context_type == ErrorContext.HED_STRING:
- context = context.get_original_hed_string()
error_types = {
ErrorContext.FILE_NAME: f"\nErrors in file '{context}'",
ErrorContext.SIDECAR_COLUMN_NAME: f"Column '{context}':",
@@ -530,39 +641,61 @@ def _format_single_context_string(context_type, context, tab_count=0):
return context_string
-def _get_context_string(single_issue_context, last_used_context):
- """ Convert a single context list into the final human readable output form.
+def _create_error_tree(error_dict, parent_element=None, add_link=True):
+ if parent_element is None:
+ parent_element = ET.Element("ul")
+
+ for context, value in error_dict.items():
+ if context == "children":
+ for child in value:
+ child_li = ET.SubElement(parent_element, "li")
+ error_prefix = _get_error_prefix(child)
+ single_issue_message = child["message"]
+
+ # Create a link for the error prefix if add_link is True
+ if add_link:
+ link_url = create_doc_link(child['code'])
+ if link_url:
+ a_element = ET.SubElement(child_li, "a", href=link_url)
+ a_element.text = error_prefix
+ a_element.tail = " " + single_issue_message
+ else:
+ child_li.text = error_prefix + " " + single_issue_message
+ else:
+ child_li.text = error_prefix + " " + single_issue_message
+ continue
- Parameters:
- single_issue_context (list): A list of tuples containing the context(context_type, context)
- last_used_context (list): A list of tuples containing the last drawn context.
+ context_li = ET.SubElement(parent_element, "li")
+ context_li.text = _format_single_context_string(context[0], context[1])
+ context_ul = ET.SubElement(context_li, "ul")
+ _create_error_tree(value, context_ul, add_link)
- Returns:
- str: The full string of context(potentially multiline) to add before the error.
- str: The tab string to add to the front of any message line with this context.
+ return parent_element
+
+
+def replace_tag_references(list_or_dict):
+ """Utility function to remove any references to tags, strings, etc from any type of nested list or dict
- Notes:
- The last used context is always the same format as single_issue_context and used
- so that the error handling can only add the parts that have changed.
+ Use this if you want to save out issues to a file.
+ If you'd prefer a copy returned, use replace_tag_references(list_or_dict.copy())
+
+ Parameters:
+ list_or_dict(list or dict): An arbitrarily nested list/dict structure
"""
- context_string = ""
- tab_count = 0
- found_difference = False
- for i, context_tuple in enumerate(single_issue_context):
- (context_type, context) = context_tuple
- if len(last_used_context) > i and not found_difference:
- last_drawn = last_used_context[i]
- # Was drawn, and hasn't changed.
- if last_drawn == context_tuple:
- if context_type not in no_tab_context:
- tab_count += 1
- continue
-
- context_string += _format_single_context_string(context_type, context, tab_count)
- found_difference = True
- if context_type not in no_tab_context:
- tab_count += 1
-
- tab_string = '\t' * tab_count
- return context_string, tab_string
+ if isinstance(list_or_dict, dict):
+ for key, value in list_or_dict.items():
+ if isinstance(value, (dict, list)):
+ replace_tag_references(value)
+ elif isinstance(value, (bool, float, int)):
+ list_or_dict[key] = value
+ else:
+ list_or_dict[key] = str(value)
+ elif isinstance(list_or_dict, list):
+ for key, value in enumerate(list_or_dict):
+ if isinstance(value, (dict, list)):
+ replace_tag_references(value)
+ elif isinstance(value, (bool, float, int)):
+ list_or_dict[key] = value
+ else:
+ list_or_dict[key] = str(value)
diff --git a/hed/errors/error_types.py b/hed/errors/error_types.py
index 18418a4f2..7305e7c6c 100644
--- a/hed/errors/error_types.py
+++ b/hed/errors/error_types.py
@@ -106,19 +106,32 @@ class SidecarErrors:
class SchemaErrors:
- HED_SCHEMA_DUPLICATE_NODE = 'HED_SCHEMA_DUPLICATE_NODE'
+ SCHEMA_DUPLICATE_NODE = 'SCHEMA_DUPLICATE_NODE'
SCHEMA_ATTRIBUTE_INVALID = 'SCHEMA_ATTRIBUTE_INVALID'
- HED_SCHEMA_DUPLICATE_FROM_LIBRARY = "SCHEMA_LIBRARY_INVALID"
+ SCHEMA_DUPLICATE_FROM_LIBRARY = "SCHEMA_LIBRARY_INVALID"
class SchemaWarnings:
- INVALID_CHARACTERS_IN_DESC = "INVALID_CHARACTERS_IN_DESC"
- INVALID_CHARACTERS_IN_TAG = "INVALID_CHARACTERS_IN_TAG"
+ SCHEMA_INVALID_CHARACTERS_IN_DESC = "SCHEMA_INVALID_CHARACTERS_IN_DESC"
+ SCHEMA_INVALID_CHARACTERS_IN_TAG = "SCHEMA_INVALID_CHARACTERS_IN_TAG"
+
# The actual reported error for the above two
- HED_SCHEMA_CHARACTER_INVALID = "HED_SCHEMA_CHARACTER_INVALID"
- INVALID_CAPITALIZATION = 'invalidCaps'
- NON_PLACEHOLDER_HAS_CLASS = 'NON_PLACEHOLDER_HAS_CLASS'
- INVALID_ATTRIBUTE = "INVALID_ATTRIBUTE"
+ SCHEMA_CHARACTER_INVALID = "SCHEMA_CHARACTER_INVALID"
+ SCHEMA_INVALID_CAPITALIZATION = 'invalidCaps'
+ SCHEMA_NON_PLACEHOLDER_HAS_CLASS = 'SCHEMA_NON_PLACEHOLDER_HAS_CLASS'
+ SCHEMA_INVALID_ATTRIBUTE = "SCHEMA_INVALID_ATTRIBUTE"
+
+
+class SchemaAttributeErrors:
+ SCHEMA_DEPRECATED_INVALID = "SCHEMA_DEPRECATED_INVALID"
+ SCHEMA_SUGGESTED_TAG_INVALID = "SCHEMA_SUGGESTED_TAG_INVALID"
+ SCHEMA_RELATED_TAG_INVALID = "SCHEMA_RELATED_TAG_INVALID"
+
+ SCHEMA_UNIT_CLASS_INVALID = "SCHEMA_UNIT_CLASS_INVALID"
+ SCHEMA_VALUE_CLASS_INVALID = "SCHEMA_VALUE_CLASS_INVALID"
+
+ SCHEMA_DEFAULT_UNITS_INVALID = "SCHEMA_DEFAULT_UNITS_INVALID"
+ SCHEMA_CHILD_OF_DEPRECATED = "SCHEMA_CHILD_OF_DEPRECATED" # Reported as SCHEMA_DEPRECATED_INVALID
class DefinitionErrors:
@@ -147,6 +160,8 @@ class OnsetErrors:
ONSET_TOO_MANY_DEFS = "ONSET_TOO_MANY_DEFS"
ONSET_TAG_OUTSIDE_OF_GROUP = "ONSET_TAG_OUTSIDE_OF_GROUP"
INSET_BEFORE_ONSET = "INSET_BEFORE_ONSET"
+ ONSET_SAME_DEFS_ONE_ROW = "ONSET_SAME_DEFS_ONE_ROW"
+
class ColumnErrors:
INVALID_COLUMN_REF = "INVALID_COLUMN_REF"
diff --git a/hed/errors/exceptions.py b/hed/errors/exceptions.py
index a1def1caf..e7ee857b9 100644
--- a/hed/errors/exceptions.py
+++ b/hed/errors/exceptions.py
@@ -9,6 +9,7 @@ class HedExceptions:
CANNOT_PARSE_XML = 'cannotParseXML'
CANNOT_PARSE_JSON = 'cannotParseJson'
INVALID_EXTENSION = 'invalidExtension'
+ INVALID_HED_FORMAT = 'INVALID_HED_FORMAT'
INVALID_DATAFRAME = 'INVALID_DATAFRAME'
INVALID_FILE_FORMAT = 'INVALID_FILE_FORMAT'
diff --git a/hed/errors/known_error_codes.py b/hed/errors/known_error_codes.py
new file mode 100644
index 000000000..b72e84708
--- /dev/null
+++ b/hed/errors/known_error_codes.py
@@ -0,0 +1,45 @@
+known_error_codes = {
+ "hed_validation_errors": [
+ "CHARACTER_INVALID",
+ "COMMA_MISSING",
+ "DEF_EXPAND_INVALID",
+ "DEF_INVALID",
+ "DEFINITION_INVALID",
+ "NODE_NAME_EMPTY",
+ "ONSET_OFFSET_INSET_ERROR",
+ "PARENTHESES_MISMATCH",
+ "PLACEHOLDER_INVALID",
+ "REQUIRED_TAG_MISSING",
+ "SIDECAR_BRACES_INVALID",
+ "SIDECAR_INVALID",
+ "SIDECAR_KEY_MISSING",
+ "STYLE_WARNING",
+ "TAG_EMPTY",
+ "TAG_EXPRESSION_REPEATED",
+ "TAG_EXTENDED",
+ "TAG_EXTENSION_INVALID",
+ "TAG_GROUP_ERROR",
+ "TAG_INVALID",
+ "TAG_NAMESPACE_PREFIX_INVALID",
+ "TAG_NOT_UNIQUE",
+ "TAG_REQUIRES_CHILD",
+ "TILDES_UNSUPPORTED",
+ "UNITS_INVALID",
+ "UNITS_MISSING",
+ "VALUE_INVALID",
+ "VERSION_DEPRECATED"
+ ],
+ "schema_validation_errors": [
+ "SCHEMA_ATTRIBUTE_INVALID",
+ "SCHEMA_CHARACTER_INVALID",
+ "SCHEMA_DUPLICATE_NODE",
+ "SCHEMA_HEADER_INVALID",
+ "SCHEMA_LIBRARY_INVALID",
+ "SCHEMA_SECTION_MISSING",
+ "SCHEMA_VERSION_INVALID",
+ "WIKI_DELIMITERS_INVALID",
+ "WIKI_LINE_START_INVALID",
+ "WIKI_SEPARATOR_INVALID",
+ "XML_SYNTAX_INVALID"
+ ]
+}
\ No newline at end of file
diff --git a/hed/errors/schema_error_messages.py b/hed/errors/schema_error_messages.py
new file mode 100644
index 000000000..b7fda9d50
--- /dev/null
+++ b/hed/errors/schema_error_messages.py
@@ -0,0 +1,84 @@
+from hed.errors.error_types import SchemaErrors, SchemaWarnings, ErrorSeverity, SchemaAttributeErrors
+from hed.errors.error_reporter import hed_error
+
+
+@hed_error(SchemaErrors.SCHEMA_DUPLICATE_NODE)
+def schema_error_hed_duplicate_node(tag, duplicate_tag_list, section):
+ tag_join_delimiter = "\n\t"
+ return f"Duplicate term '{str(tag)}' used {len(duplicate_tag_list)} places in '{section}' section schema as:" + \
+ f"{tag_join_delimiter}{tag_join_delimiter.join(duplicate_tag_list)}"
+
+
+@hed_error(SchemaErrors.SCHEMA_DUPLICATE_FROM_LIBRARY)
+def schema_error_hed_duplicate_from_library(tag, duplicate_tag_list, section):
+ tag_join_delimiter = "\n\t"
+ return f"Duplicate term '{str(tag)}' was found in the library and in the standard schema in '{section}' section schema as:" + \
+ f"{tag_join_delimiter}{tag_join_delimiter.join(duplicate_tag_list)}"
+
+
+@hed_error(SchemaErrors.SCHEMA_ATTRIBUTE_INVALID)
+def schema_error_unknown_attribute(attribute_name, source_tag):
+ return f"Attribute '{attribute_name}' used by '{source_tag}' was not defined in the schema, " \
+ f"or was used outside of it's defined class."
+
+
+@hed_error(SchemaWarnings.SCHEMA_INVALID_CHARACTERS_IN_DESC, default_severity=ErrorSeverity.WARNING,
+ actual_code=SchemaWarnings.SCHEMA_CHARACTER_INVALID)
+def schema_warning_invalid_chars_desc(desc_string, tag_name, problem_char, char_index):
+ return f"Invalid character '{problem_char}' in desc for '{tag_name}' at position {char_index}. '{desc_string}"
+
+
+@hed_error(SchemaWarnings.SCHEMA_INVALID_CHARACTERS_IN_TAG, default_severity=ErrorSeverity.WARNING,
+ actual_code=SchemaWarnings.SCHEMA_CHARACTER_INVALID)
+def schema_warning_invalid_chars_tag(tag_name, problem_char, char_index):
+ return f"Invalid character '{problem_char}' in tag '{tag_name}' at position {char_index}."
+
+
+@hed_error(SchemaWarnings.SCHEMA_INVALID_CAPITALIZATION, default_severity=ErrorSeverity.WARNING)
+def schema_warning_SCHEMA_INVALID_CAPITALIZATION(tag_name, problem_char, char_index):
+ return "First character must be a capital letter or number. " + \
+ f"Found character '{problem_char}' in tag '{tag_name}' at position {char_index}."
+
+
+@hed_error(SchemaWarnings.SCHEMA_NON_PLACEHOLDER_HAS_CLASS, default_severity=ErrorSeverity.WARNING)
+def schema_warning_non_placeholder_class(tag_name, invalid_attribute_name):
+ return "Only placeholder nodes('#') can have a unit class, value class, or takes value." + \
+ f"Found {invalid_attribute_name} on {tag_name}"
+
+
+@hed_error(SchemaWarnings.SCHEMA_INVALID_ATTRIBUTE, default_severity=ErrorSeverity.ERROR)
+def schema_error_SCHEMA_INVALID_ATTRIBUTE(tag_name, invalid_attribute_name):
+ return f"'{invalid_attribute_name}' should not be present in a loaded schema, found on '{tag_name}'." \
+ f"Something went very wrong."
+
+
+@hed_error(SchemaAttributeErrors.SCHEMA_DEPRECATED_INVALID)
+def schema_error_SCHEMA_DEPRECATED_INVALID(tag_name, invalid_deprecated_version):
+ return f"'{tag_name}' has invalid or unknown value in attribute deprecatedFrom: '{invalid_deprecated_version}'."
+
+
+@hed_error(SchemaAttributeErrors.SCHEMA_CHILD_OF_DEPRECATED,
+ actual_code=SchemaAttributeErrors.SCHEMA_DEPRECATED_INVALID)
+def schema_error_SCHEMA_CHILD_OF_DEPRECATED(deprecated_tag, non_deprecated_child):
+ return f"Deprecated tag '{deprecated_tag}' has a child that is not deprecated: '{non_deprecated_child}'."
+
+
+@hed_error(SchemaAttributeErrors.SCHEMA_SUGGESTED_TAG_INVALID)
+def schema_error_SCHEMA_SUGGESTED_TAG_INVALID(suggestedTag, invalidSuggestedTag, attribute_name):
+ return f"Tag '{suggestedTag}' has an invalid {attribute_name}: '{invalidSuggestedTag}'."
+
+
+@hed_error(SchemaAttributeErrors.SCHEMA_UNIT_CLASS_INVALID)
+def schema_error_SCHEMA_UNIT_CLASS_INVALID(tag, unit_class, attribute_name):
+ return f"Tag '{tag}' has an invalid {attribute_name}: '{unit_class}'."
+
+
+@hed_error(SchemaAttributeErrors.SCHEMA_VALUE_CLASS_INVALID)
+def schema_error_SCHEMA_VALUE_CLASS_INVALID(tag, unit_class, attribute_name):
+ return f"Tag '{tag}' has an invalid {attribute_name}: '{unit_class}'."
+
+
+@hed_error(SchemaAttributeErrors.SCHEMA_DEFAULT_UNITS_INVALID)
+def schema_error_SCHEMA_DEFAULT_UNITS_INVALID(tag, bad_unit, valid_units):
+ valid_units = ",".join(valid_units)
+ return f"Tag '{tag}' has an invalid defaultUnit '{bad_unit}'. Valid units are: '{valid_units}'."
diff --git a/hed/models/base_input.py b/hed/models/base_input.py
index 4c2e3a7bb..12e2d8895 100644
--- a/hed/models/base_input.py
+++ b/hed/models/base_input.py
@@ -56,9 +56,7 @@ def __init__(self, file, file_type=None, worksheet_name=None, has_column_names=T
# This is the loaded workbook if we loaded originally from an Excel file.
self._loaded_workbook = None
self._worksheet_name = worksheet_name
- pandas_header = 0
- if not self._has_column_names:
- pandas_header = None
+ self._dataframe = None
input_type = file_type
if isinstance(file, str):
@@ -67,35 +65,8 @@ def __init__(self, file, file_type=None, worksheet_name=None, has_column_names=T
if self.name is None:
self._name = file
- self._dataframe = None
+ self._open_dataframe_file(file, has_column_names, input_type)
- if isinstance(file, pandas.DataFrame):
- self._dataframe = file.astype(str)
- self._has_column_names = self._dataframe_has_names(self._dataframe)
- elif not file:
- raise HedFileError(HedExceptions.FILE_NOT_FOUND, "Empty file passed to BaseInput.", file)
- elif input_type in self.TEXT_EXTENSION:
- try:
- self._dataframe = pandas.read_csv(file, delimiter='\t', header=pandas_header,
- dtype=str, keep_default_na=True, na_values=["", "null"])
- except Exception as e:
- raise HedFileError(HedExceptions.INVALID_FILE_FORMAT, str(e), self.name) from e
- # Convert nan values to a known value
- self._dataframe = self._dataframe.fillna("n/a")
- elif input_type in self.EXCEL_EXTENSION:
- try:
- self._loaded_workbook = openpyxl.load_workbook(file)
- loaded_worksheet = self.get_worksheet(self._worksheet_name)
- self._dataframe = self._get_dataframe_from_worksheet(loaded_worksheet, has_column_names)
- except Exception as e:
- raise HedFileError(HedExceptions.GENERIC_ERROR, str(e), self.name) from e
- else:
- raise HedFileError(HedExceptions.INVALID_EXTENSION, "", file)
-
- if self._dataframe.size == 0:
- raise HedFileError(HedExceptions.INVALID_DATAFRAME, "Invalid dataframe(malformed datafile, etc)", file)
-
- # todo: Can we get rid of this behavior now that we're using pandas?
column_issues = ColumnMapper.check_for_blank_names(self.columns, allow_blank_names=allow_blank_names)
if column_issues:
raise HedFileError(HedExceptions.BAD_COLUMN_NAMES, "Duplicate or blank columns found. See issues.",
@@ -134,12 +105,54 @@ def dataframe_a(self):
@property
def series_a(self):
"""Return the assembled dataframe as a series
- Probably a placeholder name.
Returns:
- Series: the assembled dataframe with columns merged"""
+ Series: the assembled dataframe with columns merged
+ """
return self.combine_dataframe(self.assemble())
+ @property
+ def series_filtered(self):
+ """Return the assembled dataframe as a series, with rows that have the same onset combined
+
+ Returns:
+ Series: the assembled dataframe with columns merged, and the rows filtered together
+ """
+ if self.onsets is not None:
+ indexed_dict = self._indexed_dict_from_onsets(self.onsets.astype(float))
+ return self._filter_by_index_list(self.series_a, indexed_dict=indexed_dict)
+
+ @staticmethod
+ def _indexed_dict_from_onsets(onsets):
+ current_onset = -1000000.0
+ tol = 1e-9
+ from collections import defaultdict
+ indexed_dict = defaultdict(list)
+ for i, onset in enumerate(onsets):
+ if abs(onset - current_onset) > tol:
+ current_onset = onset
+ indexed_dict[current_onset].append(i)
+
+ return indexed_dict
+
+ @staticmethod
+ def _filter_by_index_list(original_series, indexed_dict):
+ new_series = ["n/a"] * len(original_series) # Initialize new_series with "n/a"
+
+ for onset, indices in indexed_dict.items():
+ if indices:
+ first_index = indices[0] # Take the first index of each onset group
+ # Join the corresponding original series entries and place them at the first index
+ new_series[first_index] = ",".join([str(original_series[i]) for i in indices])
+
+ return new_series
+
+ @property
+ def onsets(self):
+ """Returns the onset column if it exists"""
+ if "onset" in self.columns:
+ return self._dataframe["onset"]
+
@property
def name(self):
""" Name of the data. """
@@ -517,3 +530,34 @@ def get_column_refs(self):
column_refs(list): A list of unique column refs found
"""
return []
+
+ def _open_dataframe_file(self, file, has_column_names, input_type):
+ pandas_header = 0
+ if not has_column_names:
+ pandas_header = None
+
+ if isinstance(file, pandas.DataFrame):
+ self._dataframe = file.astype(str)
+ self._has_column_names = self._dataframe_has_names(self._dataframe)
+ elif not file:
+ raise HedFileError(HedExceptions.FILE_NOT_FOUND, "Empty file passed to BaseInput.", file)
+ elif input_type in self.TEXT_EXTENSION:
+ try:
+ self._dataframe = pandas.read_csv(file, delimiter='\t', header=pandas_header,
+ dtype=str, keep_default_na=True, na_values=["", "null"])
+ except Exception as e:
+ raise HedFileError(HedExceptions.INVALID_FILE_FORMAT, str(e), self.name) from e
+ # Convert nan values to a known value
+ self._dataframe = self._dataframe.fillna("n/a")
+ elif input_type in self.EXCEL_EXTENSION:
+ try:
+ self._loaded_workbook = openpyxl.load_workbook(file)
+ loaded_worksheet = self.get_worksheet(self._worksheet_name)
+ self._dataframe = self._get_dataframe_from_worksheet(loaded_worksheet, has_column_names)
+ except Exception as e:
+ raise HedFileError(HedExceptions.GENERIC_ERROR, str(e), self.name) from e
+ else:
+ raise HedFileError(HedExceptions.INVALID_EXTENSION, "", file)
+
+ if self._dataframe.size == 0:
+ raise HedFileError(HedExceptions.INVALID_DATAFRAME, "Invalid dataframe(malformed datafile, etc)", file)
diff --git a/hed/models/column_mapper.py b/hed/models/column_mapper.py
index 1321e9d6d..761ab81a9 100644
--- a/hed/models/column_mapper.py
+++ b/hed/models/column_mapper.py
@@ -134,6 +134,7 @@ def check_for_blank_names(column_map, allow_blank_names):
return []
issues = []
+
for column_number, name in enumerate(column_map):
if name is None or not name or name.startswith(PANDAS_COLUMN_PREFIX_TO_IGNORE):
issues += ErrorHandler.format_error(ValidationErrors.HED_BLANK_COLUMN, column_number)
diff --git a/hed/models/definition_dict.py b/hed/models/definition_dict.py
index dda340eb3..0d689510c 100644
--- a/hed/models/definition_dict.py
+++ b/hed/models/definition_dict.py
@@ -12,10 +12,10 @@ class DefinitionDict:
"""
def __init__(self, def_dicts=None, hed_schema=None):
- """ Definitions to be considered a single source.
-
+ """ Definitions to be considered a single source.
+
Parameters:
- def_dicts (str or list or DefinitionDict): DefDict or list of DefDicts/strings or
+ def_dicts (str or list or DefinitionDict): DefDict or list of DefDicts/strings or
a single string whose definitions should be added.
hed_schema(HedSchema or None): Required if passing strings or lists of strings, unused otherwise.
@@ -33,16 +33,18 @@ def add_definitions(self, def_dicts, hed_schema=None):
""" Add definitions from dict(s) to this dict.
Parameters:
- def_dicts (list or DefinitionDict): DefDict or list of DefDicts/strings whose definitions should be added.
+ def_dicts (list, DefinitionDict, or dict): DefinitionDict or list of DefinitionDicts/strings/dicts whose
+ definitions should be added.
+ Note dict form expects DefinitionEntries in the same form as a DefinitionDict
hed_schema(HedSchema or None): Required if passing strings or lists of strings, unused otherwise.
-
+
:raises TypeError:
- Bad type passed as def_dicts
"""
if not isinstance(def_dicts, list):
def_dicts = [def_dicts]
for def_dict in def_dicts:
- if isinstance(def_dict, DefinitionDict):
+ if isinstance(def_dict, (DefinitionDict, dict)):
self._add_definitions_from_dict(def_dict)
elif isinstance(def_dict, str) and hed_schema:
self.check_for_definitions(HedString(def_dict, hed_schema))
@@ -64,7 +66,7 @@ def _add_definitions_from_dict(self, def_dict):
""" Add the definitions found in the given definition dictionary to this mapper.
Parameters:
- def_dict (DefinitionDict): DefDict whose definitions should be added.
+ def_dict (DefinitionDict or dict): DefDict whose definitions should be added.
"""
for def_tag, def_value in def_dict.items():
@@ -117,14 +119,9 @@ def check_for_definitions(self, hed_string_obj, error_handler=None):
def_issues = []
for definition_tag, group in hed_string_obj.find_top_level_tags(anchor_tags={DefTagNames.DEFINITION_KEY}):
group_tag, new_def_issues = self._find_group(definition_tag, group, error_handler)
- def_tag_name = definition_tag.extension
+ def_tag_name, def_takes_value = self._strip_value_placeholder(definition_tag.extension)
- def_takes_value = def_tag_name.lower().endswith("/#")
- if def_takes_value:
- def_tag_name = def_tag_name[:-len("/#")]
-
- def_tag_lower = def_tag_name.lower()
- if "/" in def_tag_lower or "#" in def_tag_lower:
+ if "/" in def_tag_name or "#" in def_tag_name:
new_def_issues += ErrorHandler.format_error_with_context(error_handler,
DefinitionErrors.INVALID_DEFINITION_EXTENSION,
tag=definition_tag,
@@ -134,29 +131,42 @@ def check_for_definitions(self, hed_string_obj, error_handler=None):
def_issues += new_def_issues
continue
- new_def_issues += self._validate_contents(definition_tag, group_tag, error_handler)
+ new_def_issues = self._validate_contents(definition_tag, group_tag, error_handler)
new_def_issues += self._validate_placeholders(def_tag_name, group_tag, def_takes_value, error_handler)
if new_def_issues:
def_issues += new_def_issues
continue
- if error_handler:
- context = error_handler.get_error_context_copy()
- else:
- context = []
- if def_tag_lower in self.defs:
- new_def_issues += ErrorHandler.format_error_with_context(error_handler,
- DefinitionErrors.DUPLICATE_DEFINITION,
- def_name=def_tag_name)
+ new_def_issues, context = self._validate_name_and_context(def_tag_name, error_handler)
+ if new_def_issues:
def_issues += new_def_issues
continue
- self.defs[def_tag_lower] = DefinitionEntry(name=def_tag_name, contents=group_tag,
- takes_value=def_takes_value,
- source_context=context)
+
+ self.defs[def_tag_name.lower()] = DefinitionEntry(name=def_tag_name, contents=group_tag,
+ takes_value=def_takes_value,
+ source_context=context)
return def_issues
+ def _strip_value_placeholder(self, def_tag_name):
+ def_takes_value = def_tag_name.lower().endswith("/#")
+ if def_takes_value:
+ def_tag_name = def_tag_name[:-len("/#")]
+ return def_tag_name, def_takes_value
+
+ def _validate_name_and_context(self, def_tag_name, error_handler):
+ if error_handler:
+ context = error_handler.get_error_context_copy()
+ else:
+ context = []
+ new_def_issues = []
+ if def_tag_name.lower() in self.defs:
+ new_def_issues += ErrorHandler.format_error_with_context(error_handler,
+ DefinitionErrors.DUPLICATE_DEFINITION,
+ def_name=def_tag_name)
+ return new_def_issues, context
+
def _validate_placeholders(self, def_tag_name, group, def_takes_value, error_handler):
new_issues = []
placeholder_tags = []
@@ -245,11 +255,8 @@ def construct_def_tags(self, hed_string_obj):
Parameters:
hed_string_obj(HedString): The hed string to identify definition contents in
"""
- for def_tag, def_expand_group, def_group in hed_string_obj.find_def_tags(recursive=True):
- def_contents = self._get_definition_contents(def_tag)
- if def_contents is not None:
- def_tag._expandable = def_contents
- def_tag._expanded = def_tag != def_expand_group
+ for tag in hed_string_obj.get_all_tags():
+ self.construct_def_tag(tag)
def construct_def_tag(self, hed_tag):
""" Identify def/def-expand tag contents in the given HedTag.
@@ -257,6 +264,8 @@ def construct_def_tag(self, hed_tag):
Parameters:
hed_tag(HedTag): The hed tag to identify definition contents in
"""
+ # Finish tracking down why parent is set incorrectly on def tags sometimes
+ # It should be ALWAYS set
if hed_tag.short_base_tag in {DefTagNames.DEF_ORG_KEY, DefTagNames.DEF_EXPAND_ORG_KEY}:
save_parent = hed_tag._parent
def_contents = self._get_definition_contents(hed_tag)
@@ -277,24 +286,16 @@ def _get_definition_contents(self, def_tag):
def_contents: HedGroup
The contents to replace the previous def-tag with.
"""
- is_label_tag = def_tag.extension
- placeholder = None
- found_slash = is_label_tag.find("/")
- if found_slash != -1:
- placeholder = is_label_tag[found_slash + 1:]
- is_label_tag = is_label_tag[:found_slash]
-
- label_tag_lower = is_label_tag.lower()
+ tag_label, _, placeholder = def_tag.extension.partition('/')
+
+ label_tag_lower = tag_label.lower()
def_entry = self.defs.get(label_tag_lower)
if def_entry is None:
# Could raise an error here?
return None
- else:
- def_tag_name, def_contents = def_entry.get_definition(def_tag, placeholder_value=placeholder)
- if def_tag_name:
- return def_contents
- return None
+ def_contents = def_entry.get_definition(def_tag, placeholder_value=placeholder)
+ return def_contents
@staticmethod
def get_as_strings(def_dict):
diff --git a/hed/models/definition_entry.py b/hed/models/definition_entry.py
index 23845709a..1406f41d2 100644
--- a/hed/models/definition_entry.py
+++ b/hed/models/definition_entry.py
@@ -36,35 +36,30 @@ def get_definition(self, replace_tag, placeholder_value=None, return_copy_of_tag
return_copy_of_tag(bool): Set to true for validation
Returns:
- tuple:
- str: The expanded def tag name
- HedGroup: The contents of this definition(including the def tag itself)
+ HedGroup: The contents of this definition(including the def tag itself)
:raises ValueError:
- Something internally went wrong with finding the placeholder tag. This should not be possible.
"""
- if self.takes_value == (placeholder_value is None):
- return None, []
+ if self.takes_value == (not placeholder_value):
+ return None
if return_copy_of_tag:
replace_tag = replace_tag.copy()
output_contents = [replace_tag]
- name = self.name
if self.contents:
- output_group = self.contents
- if placeholder_value is not None:
- output_group = copy.deepcopy(self.contents)
+ output_group = copy.deepcopy(self.contents)
+ if placeholder_value:
placeholder_tag = output_group.find_placeholder_tag()
if not placeholder_tag:
raise ValueError("Internal error related to placeholders in definition mapping")
- name = f"{name}/{placeholder_value}"
placeholder_tag.replace_placeholder(placeholder_value)
output_contents = [replace_tag, output_group]
output_contents = HedGroup(replace_tag._hed_string,
startpos=replace_tag.span[0], endpos=replace_tag.span[1], contents=output_contents)
- return f"{DefTagNames.DEF_EXPAND_ORG_KEY}/{name}", output_contents
+ return output_contents
def __str__(self):
return str(self.contents)
diff --git a/hed/models/df_util.py b/hed/models/df_util.py
index 83184a4e9..0a9373d1e 100644
--- a/hed/models/df_util.py
+++ b/hed/models/df_util.py
@@ -21,7 +21,7 @@ def get_assembled(tabular_file, sidecar, hed_schema, extra_def_dicts=None, join_
extra_def_dicts: list of DefinitionDict, optional
Any extra DefinitionDict objects to use when parsing the HED tags.
join_columns: bool
- If true, join all hed columns into one.
+ If true, join all HED columns into one.
shrink_defs: bool
Shrink any def-expand tags found
expand_defs: bool
@@ -133,18 +133,20 @@ def _expand_defs(hed_string, hed_schema, def_dict):
def process_def_expands(hed_strings, hed_schema, known_defs=None, ambiguous_defs=None):
- """ Processes a list of HED strings according to a given HED schema,
- using known definitions and ambiguous definitions.
+ """ Gather def-expand tags in the strings/compare with known definitions to find any differences
Parameters:
hed_strings (list or pd.Series): A list of HED strings to process.
hed_schema (HedSchema): The schema to use
- known_defs (DefinitionDict or list or str), optional):
+ known_defs (DefinitionDict or list or str or None):
A DefinitionDict or anything its constructor takes. These are the known definitions going in, that must
match perfectly.
ambiguous_defs (dict): A dictionary containing ambiguous definitions
- format TBD. Currently def name key: list of lists of hed tags values
+ format TBD. Currently def name key: list of lists of HED tags values
+ Returns:
+ tuple: A tuple containing the DefinitionDict, ambiguous definitions, and errors.
"""
+
from hed.models.def_expand_gather import DefExpandGatherer
def_gatherer = DefExpandGatherer(hed_schema, known_defs, ambiguous_defs)
return def_gatherer.process_def_expands(hed_strings)
diff --git a/hed/models/expression_parser.py b/hed/models/expression_parser.py
index 8a9806d42..736ed625b 100644
--- a/hed/models/expression_parser.py
+++ b/hed/models/expression_parser.py
@@ -64,6 +64,7 @@ class Token:
Wildcard = 10
ExactMatch = 11
ExactMatchEnd = 12
+ ExactMatchOptional = 14
NotInLine = 13 # Not currently a token. In development and may become one.
def __init__(self, text):
@@ -78,11 +79,12 @@ def __init__(self, text):
"(": Token.LogicalGroup,
")": Token.LogicalGroupEnd,
"~": Token.LogicalNegation,
- "?": Token.Wildcard, # Any tag or group
- "??": Token.Wildcard, # Any tag
- "???": Token.Wildcard, # Any Group
- "{": Token.ExactMatch, # Nothing else
+ "?": Token.Wildcard, # Any tag or group
+ "??": Token.Wildcard, # Any tag
+ "???": Token.Wildcard, # Any Group
+ "{": Token.ExactMatch, # Nothing else
"}": Token.ExactMatchEnd, # Nothing else
+ ":": Token.ExactMatchOptional,
"@": Token.NotInLine
}
self.kind = tokens.get(text, Token.Tag)
@@ -158,7 +160,11 @@ def handle_expr(self, hed_group, exact=False):
if not groups1:
return groups1
groups2 = self.right.handle_expr(hed_group, exact=exact)
- # this is slow...
+
+ return self.merge_groups(groups1, groups2)
+
+ @staticmethod
+ def merge_groups(groups1, groups2):
return_list = []
for group in groups1:
for other_group in groups2:
@@ -218,6 +224,7 @@ def handle_expr(self, hed_group, exact=False):
all_found_groups = [search_result(group, tag) for tag, group in groups_found]
return all_found_groups
+
class ExpressionOr(Expression):
def handle_expr(self, hed_group, exact=False):
groups1 = self.left.handle_expr(hed_group, exact=exact)
@@ -229,7 +236,7 @@ def handle_expr(self, hed_group, exact=False):
for group in groups1:
for other_group in groups2:
if group.has_same_tags(other_group):
- duplicates.append(group)
+ duplicates.append(group)
groups1 = [group for group in groups1 if not any(other_group is group for other_group in duplicates)]
@@ -245,12 +252,13 @@ def __str__(self):
output_str += ")"
return output_str
+
class ExpressionNegation(Expression):
def handle_expr(self, hed_group, exact=False):
found_groups = self.right.handle_expr(hed_group, exact=exact)
# Todo: this may need more thought with respects to wildcards and negation
- #negated_groups = [group for group in hed_group.get_all_groups() if group not in groups]
+ # negated_groups = [group for group in hed_group.get_all_groups() if group not in groups]
# This simpler version works on python >= 3.9
# negated_groups = [search_result(group, []) for group in hed_group.get_all_groups() if group not in groups]
# Python 3.7/8 compatible version.
@@ -259,6 +267,7 @@ def handle_expr(self, hed_group, exact=False):
return negated_groups
+
class ExpressionContainingGroup(Expression):
def handle_expr(self, hed_group, exact=False):
result = self.right.handle_expr(hed_group, exact=True)
@@ -305,12 +314,56 @@ def handle_expr(self, hed_group, exact=False):
if return_list:
return return_list
+ # Basically if we don't have an exact match above, do the more complex matching including optional
+ if self.left:
+ optional_groups = self.left.handle_expr(hed_group, exact=True)
+ found_groups = ExpressionAnd.merge_groups(found_groups, optional_groups)
+
+ if found_groups:
+ return_list = []
+ for group in found_groups:
+ if len(group.group.children) == len(group.tags):
+ return_list.append(group)
+
+ if return_list:
+ return return_list
+
return []
class QueryParser:
"""Parse a search expression into a form than can be used to search a hed string."""
+
def __init__(self, expression_string):
+ """Compiles a QueryParser for a particular expression, so it can be used to search hed strings.
+
+
+ Basic Input Examples:
+
+ 'Event' - Finds any strings with Event, or a descendent tag of Event such as Sensory-event
+
+ 'Event and Action' - Find any strings with Event and Action, including descendant tags
+
+ 'Event or Action' - Same as above, but it has either
+
+ '"Event"' - Finds the Event tag, but not any descendent tags
+
+ 'Def/DefName/*' - Find Def/DefName instances with placeholders, regardless of the value of the placeholder
+
+ 'Eve*' - Find any short tags that begin with Eve*, such as Event, but not Sensory-event
+
+ '[Event and Action]' - Find a group that contains both Event and Action(at any level)
+
+ '[[Event and Action]]' - Find a group with Event And Action at the same level.
+
+ Practical Complex Example:
+
+ [[{(Onset or Offset), (Def or [[Def-expand]]): ???}]] - A group with an onset tag,
+ a def tag or def-expand group, and an optional wildcard group
+
+ Parameters:
+ expression_string(str): The query string
+ """
self.tokens = []
self.at_token = -1
self.tree = self._parse(expression_string.lower())
@@ -354,13 +407,17 @@ def _handle_negation(self):
next_token = self._next_token_is([Token.LogicalNegation])
if next_token == Token.LogicalNegation:
interior = self._handle_grouping_op()
+ if "?" in str(interior):
+ raise ValueError("Cannot negate wildcards, or expressions that contain wildcards."
+ "Use {required_expression : optional_expression}.")
expr = ExpressionNegation(next_token, right=interior)
return expr
else:
return self._handle_grouping_op()
def _handle_grouping_op(self):
- next_token = self._next_token_is([Token.ContainingGroup, Token.LogicalGroup, Token.DescendantGroup, Token.ExactMatch])
+ next_token = self._next_token_is(
+ [Token.ContainingGroup, Token.LogicalGroup, Token.DescendantGroup, Token.ExactMatch])
if next_token == Token.ContainingGroup:
interior = self._handle_and_op()
expr = ExpressionContainingGroup(next_token, right=interior)
@@ -382,8 +439,12 @@ def _handle_grouping_op(self):
elif next_token == Token.ExactMatch:
interior = self._handle_and_op()
expr = ExpressionExactMatch(next_token, right=interior)
- next_token = self._next_token_is([Token.ExactMatchEnd])
- if next_token != Token.ExactMatchEnd:
+ next_token = self._next_token_is([Token.ExactMatchEnd, Token.ExactMatchOptional])
+ if next_token == Token.ExactMatchOptional:
+ optional_portion = self._handle_and_op()
+ expr.left = optional_portion
+ next_token = self._next_token_is([Token.ExactMatchEnd])
+ if next_token is None:
raise ValueError("Parse error: Missing closing curly bracket")
else:
next_token = self._get_next_token()
@@ -405,7 +466,7 @@ def _parse(self, expression_string):
return expr
def _tokenize(self, expression_string):
- grouping_re = r"\[\[|\[|\]\]|\]|}|{"
+ grouping_re = r"\[\[|\[|\]\]|\]|}|{|:"
paren_re = r"\)|\(|~"
word_re = r"\?+|\band\b|\bor\b|,|[\"_\-a-zA-Z0-9/.^#\*@]+"
re_string = fr"({grouping_re}|{paren_re}|{word_re})"
diff --git a/hed/models/hed_group.py b/hed/models/hed_group.py
index ba3fc287c..ae28709fb 100644
--- a/hed/models/hed_group.py
+++ b/hed/models/hed_group.py
@@ -1,5 +1,6 @@
from hed.models.hed_tag import HedTag
import copy
+from typing import Iterable, Union
class HedGroup:
@@ -21,12 +22,12 @@ def __init__(self, hed_string="", startpos=None, endpos=None, contents=None):
self._parent = None
if contents:
- self._children = contents
- for child in self._children:
+ self.children = contents
+ for child in self.children:
child._parent = self
else:
- self._children = []
- self._original_children = self._children
+ self.children = []
+ self._original_children = self.children
def append(self, tag_or_group):
""" Add a tag or group to this group.
@@ -35,7 +36,7 @@ def append(self, tag_or_group):
tag_or_group (HedTag or HedGroup): The new object to add to this group.
"""
tag_or_group._parent = self
- self._children.append(tag_or_group)
+ self.children.append(tag_or_group)
def check_if_in_original(self, tag_or_group):
""" Check if the tag or group in original string.
@@ -58,28 +59,48 @@ def check_if_in_original(self, tag_or_group):
return self._check_in_group(tag_or_group, final_list)
- def replace(self, item_to_replace, new_contents):
+ @staticmethod
+ def replace(item_to_replace, new_contents):
""" Replace an existing tag or group.
+ Note: This is a static method that relies on the parent attribute of item_to_replace.
+
Parameters:
item_to_replace (HedTag or HedGroup): The item to replace must exist or this will raise an error.
new_contents (HedTag or HedGroup): Replacement contents.
:raises KeyError:
- item_to_replace does not exist
+
+ :raises AttributeError:
+ - item_to_replace has no parent set
"""
- if self._original_children is self._children:
- self._original_children = self._children.copy()
+ parent = item_to_replace._parent
+ parent._replace(item_to_replace=item_to_replace, new_contents=new_contents)
+
+ def _replace(self, item_to_replace, new_contents):
+ """ Replace an existing tag or group.
- replace_index = -1
- for i, child in enumerate(self._children):
+ Parameters:
+ item_to_replace (HedTag or HedGroup): The item to replace must exist and be a direct child,
+ or this will raise an error.
+ new_contents (HedTag or HedGroup): Replacement contents.
+
+ :raises KeyError:
+ - item_to_replace does not exist
+ """
+ if self._original_children is self.children:
+ self._original_children = self.children.copy()
+
+ for i, child in enumerate(self.children):
if item_to_replace is child:
- replace_index = i
- break
- self._children[replace_index] = new_contents
- new_contents._parent = self
+ self.children[i] = new_contents
+ new_contents._parent = self
+ return
+
+ raise KeyError(f"The tag {item_to_replace} not found in the group.")
- def remove(self, items_to_remove):
+ def remove(self, items_to_remove: Iterable[Union[HedTag, 'HedGroup']]):
""" Remove any tags/groups in items_to_remove.
Parameters:
@@ -87,28 +108,28 @@ def remove(self, items_to_remove):
Notes:
- Any groups that become empty will also be pruned.
+ - If you pass a child and parent group, the child will also be removed from the parent.
"""
- all_groups = self.get_all_groups()
- self._remove(items_to_remove, all_groups)
-
- def _remove(self, items_to_remove, all_groups):
empty_groups = []
- for remove_child in items_to_remove:
- for group in all_groups:
- # only proceed if we have an EXACT match for this child
- if any(remove_child is child for child in group._children):
- if group._original_children is group._children:
- group._original_children = group._children.copy()
-
- group._children = [child for child in group._children if child is not remove_child]
- # If this was the last child, flag this group to be removed on a second pass
- if not group._children and group is not self:
- empty_groups.append(group)
- break
+ # Filter out duplicates
+ items_to_remove = {id(item): item for item in items_to_remove}.values()
+
+ for item in items_to_remove:
+ group = item._parent
+ if group._original_children is group.children:
+ group._original_children = group.children.copy()
+
+ group.children.remove(item)
+ if not group.children and group is not self:
+ empty_groups.append(group)
if empty_groups:
self.remove(empty_groups)
+ # Do this last to avoid confusing typing
+ for item in items_to_remove:
+ item._parent = None
+
def __copy__(self):
raise ValueError("Cannot make shallow copies of HedGroups")
@@ -127,9 +148,19 @@ def copy(self):
def sort(self):
""" Sort the tags and groups in this HedString in a consistent order."""
- self.sorted(update_self=True)
+ self._sorted(update_self=True)
+
+ def sorted(self):
+ """ Returns a sorted copy of this hed group
+
+ Returns:
+ sorted_copy (HedGroup): The sorted copy
+ """
+ string_copy = self.copy()
+ string_copy._sorted(update_self=True)
+ return string_copy
- def sorted(self, update_self=False):
+ def _sorted(self, update_self=False):
""" Returns a sorted copy of this hed group as a list of it's children
Parameters:
@@ -145,20 +176,15 @@ def sorted(self, update_self=False):
if isinstance(child, HedTag):
tag_list.append((child, child))
else:
- group_list.append((child, child.sorted(update_self)))
+ group_list.append((child, child._sorted(update_self)))
tag_list.sort(key=lambda x: str(x[0]))
group_list.sort(key=lambda x: str(x[0]))
output_list = tag_list + group_list
if update_self:
- self._children = [x[0] for x in output_list]
+ self.children = [x[0] for x in output_list]
return [x[1] for x in output_list]
- @property
- def children(self):
- """ A list of the direct children. """
- return self._children
-
@property
def is_group(self):
""" True if this is a parenthesized group. """
@@ -325,6 +351,39 @@ def lower(self):
""" Convenience function, equivalent to str(self).lower() """
return str(self).lower()
+ def get_as_indented(self, tag_attribute="short_tag"):
+ """Returns the string as a multiline indented format
+
+ Parameters:
+ tag_attribute (str): The hed_tag property to use to construct the string (usually short_tag or long_tag).
+
+ Returns:
+ formatted_hed (str): the indented string
+ """
+ hed_string = self.sorted().get_as_form(tag_attribute)
+
+ level_open = []
+ level = 0
+ indented = ""
+ prev = ''
+ for c in hed_string:
+ if c == "(":
+ level_open.append(level)
+ indented += "\n" + "\t" * level + c
+ level += 1
+ elif c == ")":
+ level = level_open.pop()
+ if prev == ")":
+ indented += "\n" + "\t" * level + c
+ else:
+ indented += c
+
+ else:
+ indented += c
+ prev = c
+
+ return indented
+
def find_placeholder_tag(self):
""" Return a placeholder tag, if present in this group.
@@ -341,7 +400,7 @@ def find_placeholder_tag(self):
return None
def __bool__(self):
- return bool(self._children)
+ return bool(self.children)
def __eq__(self, other):
""" Test whether other is equal to this object.
@@ -362,34 +421,29 @@ def __eq__(self, other):
return True
def find_tags(self, search_tags, recursive=False, include_groups=2):
- """ Find the tags and their containing groups.
+ """ Find the base tags and their containing groups.
+ This searches by short_base_tag, ignoring any ancestors or extensions/values.
Parameters:
search_tags (container): A container of short_base_tags to locate
recursive (bool): If true, also check subgroups.
include_groups (0, 1 or 2): Specify return values.
+ If 0: return a list of the HedTags.
+ If 1: return a list of the HedGroups containing the HedTags.
+ If 2: return a list of tuples (HedTag, HedGroup) for the found tags.
Returns:
list: The contents of the list depends on the value of include_groups.
-
- Notes:
- - If include_groups is 0, return a list of the HedTags.
- - If include_groups is 1, return a list of the HedGroups containing the HedTags.
- - If include_groups is 2, return a list of tuples (HedTag, HedGroup) for the found tags.
- - This can only find identified tags.
- - By default, definition, def, def-expand, onset, and offset are identified, even without a schema.
-
"""
found_tags = []
if recursive:
- groups = self.get_all_groups()
+ tags = self.get_all_tags()
else:
- groups = (self, )
+ tags = self.tags()
- for sub_group in groups:
- for tag in sub_group.tags():
- if tag.short_base_tag.lower() in search_tags:
- found_tags.append((tag, sub_group))
+ for tag in tags:
+ if tag.short_base_tag.lower() in search_tags:
+ found_tags.append((tag, tag._parent))
if include_groups == 0 or include_groups == 1:
return [tag[include_groups] for tag in found_tags]
@@ -398,6 +452,10 @@ def find_tags(self, search_tags, recursive=False, include_groups=2):
def find_wildcard_tags(self, search_tags, recursive=False, include_groups=2):
""" Find the tags and their containing groups.
+ This searches tag.short_tag, with an implicit wildcard on the end.
+
+ e.g. "Eve" will find Event, but not Sensory-event
+
Parameters:
search_tags (container): A container of the starts of short tags to search.
recursive (bool): If true, also check subgroups.
@@ -408,62 +466,49 @@ def find_wildcard_tags(self, search_tags, recursive=False, include_groups=2):
Returns:
list: The contents of the list depends on the value of include_groups.
-
- Notes:
- - This can only find identified tags.
- - By default, definition, def, def-expand, onset, and offset are identified, even without a schema.
"""
found_tags = []
if recursive:
- groups = self.get_all_groups()
+ tags = self.get_all_tags()
else:
- groups = (self, )
+ tags = self.tags()
- for sub_group in groups:
- for tag in sub_group.tags():
- for search_tag in search_tags:
- if tag.short_tag.lower().startswith(search_tag):
- found_tags.append((tag, sub_group))
+ for tag in tags:
+ for search_tag in search_tags:
+ if tag.short_tag.lower().startswith(search_tag):
+ found_tags.append((tag, tag._parent))
+ # We can't find the same tag twice
+ break
if include_groups == 0 or include_groups == 1:
return [tag[include_groups] for tag in found_tags]
return found_tags
- def find_exact_tags(self, tags_or_groups, recursive=False, include_groups=1):
- """ Find the given tags or groups.
+ def find_exact_tags(self, exact_tags, recursive=False, include_groups=1):
+ """ Find the given tags. This will only find complete matches, any extension or value must also match.
Parameters:
- tags_or_groups (HedTag, HedGroup): A container of tags to locate.
+ exact_tags (list of HedTag): A container of tags to locate.
recursive (bool): If true, also check subgroups.
include_groups(bool): 0, 1 or 2
If 0: Return only tags
If 1: Return only groups
If 2 or any other value: Return both
Returns:
- list: A list of HedGroups the given tags/groups were found in.
-
- Notes:
- - If you pass in groups it will only find EXACT matches.
- - This can only find identified tags.
- - By default, definition, def, def-expand, onset, and offset are identified, even without a schema.
- - If this is a HedGroup, order matters. (b, a) != (a, b)
-
+ list: A list of tuples. The contents depend on the values of the include_group.
"""
found_tags = []
if recursive:
- groups = self.get_all_groups()
+ tags = self.get_all_tags()
else:
- groups = (self,)
+ tags = self.tags()
- for sub_group in groups:
- for search_tag in tags_or_groups:
- for tag in sub_group.children:
- if tag == search_tag:
- found_tags.append((tag, sub_group))
+ for tag in tags:
+ if tag in exact_tags:
+ found_tags.append((tag, tag._parent))
if include_groups == 0 or include_groups == 1:
return [tag[include_groups] for tag in found_tags]
-
return found_tags
def find_def_tags(self, recursive=False, include_groups=3):
@@ -479,27 +524,32 @@ def find_def_tags(self, recursive=False, include_groups=3):
Returns:
list: A list of tuples. The contents depend on the values of the include_group.
"""
- from hed.models.definition_dict import DefTagNames
if recursive:
groups = self.get_all_groups()
+ def_tags = []
+ for group in groups:
+ def_tags += self._get_def_tags_from_group(group)
else:
- groups = (self, )
-
- def_tags = []
- for group in groups:
- for child in group.children:
- if isinstance(child, HedTag):
- if child.short_base_tag == DefTagNames.DEF_ORG_KEY:
- def_tags.append((child, child, group))
- else:
- for tag in child.tags():
- if tag.short_base_tag == DefTagNames.DEF_EXPAND_ORG_KEY:
- def_tags.append((tag, child, group))
+ def_tags = self._get_def_tags_from_group(self)
if include_groups == 0 or include_groups == 1 or include_groups == 2:
return [tag[include_groups] for tag in def_tags]
return def_tags
+ @staticmethod
+ def _get_def_tags_from_group(group):
+ from hed.models.definition_dict import DefTagNames
+ def_tags = []
+ for child in group.children:
+ if isinstance(child, HedTag):
+ if child.short_base_tag == DefTagNames.DEF_ORG_KEY:
+ def_tags.append((child, child, group))
+ else:
+ for tag in child.tags():
+ if tag.short_base_tag == DefTagNames.DEF_EXPAND_ORG_KEY:
+ def_tags.append((tag, child, group))
+ return def_tags
+
def find_tags_with_term(self, term, recursive=False, include_groups=2):
""" Find any tags that contain the given term.
@@ -518,15 +568,14 @@ def find_tags_with_term(self, term, recursive=False, include_groups=2):
"""
found_tags = []
if recursive:
- groups = self.get_all_groups()
+ tags = self.get_all_tags()
else:
- groups = (self,)
+ tags = self.tags()
search_for = term.lower()
- for sub_group in groups:
- for tag in sub_group.tags():
- if search_for in tag.tag_terms:
- found_tags.append((tag, sub_group))
+ for tag in tags:
+ if search_for in tag.tag_terms:
+ found_tags.append((tag, tag._parent))
if include_groups == 0 or include_groups == 1:
return [tag[include_groups] for tag in found_tags]
diff --git a/hed/models/hed_string.py b/hed/models/hed_string.py
index 84af5e17b..eaeb48371 100644
--- a/hed/models/hed_string.py
+++ b/hed/models/hed_string.py
@@ -37,6 +37,7 @@ def __init__(self, hed_string, hed_schema, def_dict=None, _contents=None):
super().__init__(hed_string, contents=contents, startpos=0, endpos=len(hed_string))
self._schema = hed_schema
self._from_strings = None
+ self._def_dict = def_dict
@classmethod
def from_hed_strings(cls, hed_strings):
@@ -55,7 +56,8 @@ def from_hed_strings(cls, hed_strings):
hed_string = ",".join([group._hed_string for group in hed_strings])
contents = [child for sub_string in hed_strings for child in sub_string.children]
first_schema = hed_strings[0]._schema
- new_string.__init__(hed_string=hed_string, _contents=contents, hed_schema=first_schema)
+ first_dict = hed_strings[0]._def_dict
+ new_string.__init__(hed_string=hed_string, _contents=contents, hed_schema=first_schema, def_dict=first_dict)
new_string._from_strings = hed_strings
return new_string
@@ -95,7 +97,7 @@ def __deepcopy__(self, memo):
# Deep copy the attributes that need it(most notably, we don't copy schema/schema entry)
new_string._original_children = copy.deepcopy(self._original_children, memo)
new_string._from_strings = copy.deepcopy(self._from_strings, memo)
- new_string._children = copy.deepcopy(self._children, memo)
+ new_string.children = copy.deepcopy(self.children, memo)
return new_string
@@ -103,7 +105,7 @@ def copy(self):
""" Return a deep copy of this string.
Returns:
- HedGroup: The copied group.
+ HedString: The copied group.
"""
return_copy = copy.deepcopy(self)
@@ -332,12 +334,11 @@ def split_hed_string(hed_string):
return result_positions
- def validate(self, hed_schema, allow_placeholders=True, error_handler=None):
+ def validate(self, allow_placeholders=True, error_handler=None):
"""
Validate the string using the schema
Parameters:
- hed_schema(HedSchema): The schema to use to validate
allow_placeholders(bool): allow placeholders in the string
error_handler(ErrorHandler or None): the error handler to use, creates a default one if none passed
Returns:
@@ -345,7 +346,7 @@ def validate(self, hed_schema, allow_placeholders=True, error_handler=None):
"""
from hed.validator import HedValidator
- validator = HedValidator(hed_schema)
+ validator = HedValidator(self._schema, def_dicts=self._def_dict)
return validator.validate(self, allow_placeholders=allow_placeholders, error_handler=error_handler)
def find_top_level_tags(self, anchor_tags, include_groups=2):
diff --git a/hed/models/hed_tag.py b/hed/models/hed_tag.py
index 01cea0664..bf1f2f3b0 100644
--- a/hed/models/hed_tag.py
+++ b/hed/models/hed_tag.py
@@ -42,7 +42,9 @@ def __init__(self, hed_string, hed_schema, span=None, def_dict=None):
self._expandable = None
self._expanded = False
+ self.tag_terms = None # tuple of all the terms in this tag Lowercase.
self._calculate_to_canonical_forms(hed_schema)
+
if def_dict:
def_dict.construct_def_tag(self)
@@ -241,22 +243,6 @@ def org_tag(self):
"""
return self._hed_string[self.span[0]:self.span[1]]
- @property
- def tag_terms(self):
- """ Return a tuple of all the terms in this tag Lowercase.
-
- Returns:
- tag_terms (str): Tuple of terms or empty tuple for unidentified tag.
-
- Notes:
- - Does not include any extension.
-
- """
- if self._schema_entry:
- return self._schema_entry.tag_terms
-
- return tuple()
-
@property
def expanded(self):
"""Returns if this is currently expanded or not.
@@ -270,7 +256,7 @@ def expanded(self):
@property
def expandable(self):
- """Returns if this is expandable
+ """Returns what this expands to
This is primarily used for Def/Def-expand tags at present.
@@ -322,13 +308,16 @@ def _calculate_to_canonical_forms(self, hed_schema):
self._schema_entry = tag_entry
self._schema = hed_schema
if self._schema_entry:
+ self.tag_terms = self._schema_entry.tag_terms
if remainder:
self._extension_value = remainder
+ else:
+ self.tag_terms = tuple()
return tag_issues
def get_stripped_unit_value(self):
- """ Return the extension portion without units.
+ """ Return the extension divided into value and units, if the units are valid.
Returns:
stripped_unit_value (str): The extension portion with the units removed.
@@ -339,12 +328,38 @@ def get_stripped_unit_value(self):
"""
tag_unit_classes = self.unit_classes
- stripped_value, unit = self._get_tag_units_portion(tag_unit_classes)
+ stripped_value, unit, _ = self._get_tag_units_portion(tag_unit_classes)
if stripped_value:
return stripped_value, unit
return self.extension, None
+ def value_as_default_unit(self):
+ """ Returns the value converted to default units if possible.
+
+ Returns None if the units are invalid.(No default unit or invalid)
+
+ Returns:
+ value (float or None): The extension value as default units.
+ If there are not default units, returns None.
+
+ Examples:
+ 'Duration/300 ms' will return .3
+
+ """
+ tag_unit_classes = self.unit_classes
+ value, _, units = self.extension.rpartition(" ")
+ if not value:
+ stripped_value = units
+ unit_entry = self.default_unit
+ unit = unit_entry.name
+ else:
+ stripped_value, unit, unit_entry = self._get_tag_units_portion(tag_unit_classes)
+
+ if stripped_value:
+ if unit_entry.get_conversion_factor(unit) is not None:
+ return float(stripped_value) * unit_entry.get_conversion_factor(unit)
+
@property
def unit_classes(self):
""" Return a dict of all the unit classes this tag accepts.
@@ -462,22 +477,6 @@ def has_attribute(self, attribute):
return self._schema_entry.has_attribute(attribute)
return False
- def is_extension_allowed_tag(self):
- """ Check if tag has 'extensionAllowed' attribute.
-
- Recursively checks parent tag entries for the attribute as well.
-
- Returns:
- bool: True if the tag has the 'extensionAllowed' attribute. False, if otherwise.
-
- """
- if self.is_takes_value_tag():
- return False
-
- if self._schema_entry:
- return self._schema_entry.any_parent_has_attribute(HedKey.ExtensionAllowed)
- return False
-
def get_tag_unit_class_units(self):
""" Get the unit class units associated with a particular tag.
@@ -492,24 +491,25 @@ def get_tag_unit_class_units(self):
return units
- def get_unit_class_default_unit(self):
+ @property
+ def default_unit(self):
""" Get the default unit class unit for this tag.
+ Only a tag with a single unit class can have default units.
Returns:
- str: The default unit class unit associated with the specific tag or an empty string.
-
+ unit(UnitEntry or None): the default unit entry for this tag, or None
"""
- default_unit = ''
unit_classes = self.unit_classes.values()
- if unit_classes:
+ if len(unit_classes) == 1:
first_unit_class_entry = list(unit_classes)[0]
default_unit = first_unit_class_entry.has_attribute(HedKey.DefaultUnits, return_value=True)
-
- return default_unit
+ return first_unit_class_entry.units.get(default_unit, None)
def base_tag_has_attribute(self, tag_attribute):
""" Check to see if the tag has a specific attribute.
+ This is primarily used to check for things like TopLevelTag on Definitions and similar.
+
Parameters:
tag_attribute (str): A tag attribute.
@@ -522,19 +522,6 @@ def base_tag_has_attribute(self, tag_attribute):
return self._schema_entry.base_tag_has_attribute(tag_attribute)
- def any_parent_has_attribute(self, attribute):
- """ Check if the tag or any of its parents has the attribute.
-
- Parameters:
- attribute (str): The name of the attribute to check for.
-
- Returns:
- bool: True if the tag has the given attribute. False, if otherwise.
-
- """
- if self._schema_entry:
- return self._schema_entry.any_parent_has_attribute(attribute=attribute)
-
@staticmethod
def _get_schema_namespace(org_tag):
""" Finds the library namespace for the tag.
@@ -563,26 +550,27 @@ def _get_tag_units_portion(self, tag_unit_classes):
tag_unit_classes (dict): Dictionary of valid UnitClassEntry objects for this tag.
Returns:
- stripped_value (str): The value with the units removed.
-
+ stripped_value (str or None): The value with the units removed.
+ This is filled in if there are no units as well.
+ unit (UnitEntry or None): The matching unit entry if one is found
"""
value, _, units = self.extension.rpartition(" ")
if not units:
- return None, None
+ return None, None, None
for unit_class_entry in tag_unit_classes.values():
all_valid_unit_permutations = unit_class_entry.derivative_units
possible_match = self._find_modifier_unit_entry(units, all_valid_unit_permutations)
if possible_match and not possible_match.has_attribute(HedKey.UnitPrefix):
- return value, units
+ return value, units, possible_match
# Repeat the above, but as a prefix
possible_match = self._find_modifier_unit_entry(value, all_valid_unit_permutations)
if possible_match and possible_match.has_attribute(HedKey.UnitPrefix):
- return units, value
+ return units, value, possible_match
- return None, None
+ return None, None, None
@staticmethod
def _find_modifier_unit_entry(units, all_valid_unit_permutations):
diff --git a/hed/models/string_util.py b/hed/models/string_util.py
new file mode 100644
index 000000000..1f678b758
--- /dev/null
+++ b/hed/models/string_util.py
@@ -0,0 +1,80 @@
+from hed.models.hed_string import HedString
+
+
+def gather_descriptions(hed_string):
+ """Removes any description tags from the string and concatenates them
+
+ Parameters:
+ hed_string(HedString): To be modified
+
+ Returns: tuple
+ description(str): The concatenated values of all description tags.
+
+ Side-effect:
+ The input HedString has its Definition tags removed.
+
+ """
+ desc_tags = hed_string.find_tags("description", recursive=True, include_groups=0)
+ desc_string = " ".join([tag.extension if tag.extension.endswith(".") else tag.extension + "." for tag in desc_tags])
+
+ hed_string.remove(desc_tags)
+
+ return desc_string
+
+
+def split_base_tags(hed_string, base_tags, remove_group=False):
+ """ Splits a HedString object into two separate HedString objects based on the presence of base tags.
+
+ Args:
+ hed_string (HedString): The input HedString object to be split.
+ base_tags (list of str): A list of strings representing the base tags.
+ This is matching the base tag NOT all the terms above it.
+ remove_group (bool, optional): Flag indicating whether to remove the parent group. Defaults to False.
+
+ Returns:
+ tuple: A tuple containing two HedString objects:
+ - The first HedString object contains the remaining tags from hed_string.
+ - The second HedString object contains the tags from hed_string that match the base_tags.
+ """
+
+ base_tags = [tag.lower() for tag in base_tags]
+ include_groups = 0
+ if remove_group:
+ include_groups = 2
+ found_things = hed_string.find_tags(base_tags, recursive=True, include_groups=include_groups)
+ if remove_group:
+ found_things = [tag if isinstance(group, HedString) else group for tag, group in found_things]
+
+ if found_things:
+ hed_string.remove(found_things)
+
+ return hed_string, HedString("", hed_string._schema, _contents=found_things)
+
+
+def split_def_tags(hed_string, def_names, remove_group=False):
+ """ Splits a HedString object into two separate HedString objects based on the presence of wildcard tags.
+
+ This does NOT handle def-expand tags currently.
+
+ Args:
+ hed_string (HedString): The input HedString object to be split.
+ def_names (list of str): A list of def names to search for. Can optionally include a value.
+ remove_group (bool, optional): Flag indicating whether to remove the parent group. Defaults to False.
+
+ Returns:
+ tuple: A tuple containing two HedString objects:
+ - The first HedString object contains the remaining tags from hed_string.
+ - The second HedString object contains the tags from hed_string that match the def_names.
+ """
+ include_groups = 0
+ if remove_group:
+ include_groups = 2
+ wildcard_tags = [f"def/{def_name}".lower() for def_name in def_names]
+ found_things = hed_string.find_wildcard_tags(wildcard_tags, recursive=True, include_groups=include_groups)
+ if remove_group:
+ found_things = [tag if isinstance(group, HedString) else group for tag, group in found_things]
+
+ if found_things:
+ hed_string.remove(found_things)
+
+ return hed_string, HedString("", hed_string._schema, _contents=found_things)
diff --git a/hed/models/tabular_input.py b/hed/models/tabular_input.py
index cd3172126..92e63cdd5 100644
--- a/hed/models/tabular_input.py
+++ b/hed/models/tabular_input.py
@@ -67,7 +67,7 @@ def get_def_dict(self, hed_schema, extra_def_dicts=None):
if self._sidecar:
return self._sidecar.get_def_dict(hed_schema, extra_def_dicts)
else:
- super().get_def_dict(hed_schema, extra_def_dicts)
+ return super().get_def_dict(hed_schema, extra_def_dicts)
def get_column_refs(self):
""" Returns a list of column refs for this file.
diff --git a/hed/schema/__init__.py b/hed/schema/__init__.py
index 5db24d5ea..23902f0eb 100644
--- a/hed/schema/__init__.py
+++ b/hed/schema/__init__.py
@@ -3,7 +3,7 @@
from .hed_schema_entry import HedSchemaEntry, UnitClassEntry, UnitEntry, HedTagEntry
from .hed_schema_group import HedSchemaGroup
from .hed_schema_section import HedSchemaSection
-from .hed_schema_io import load_schema, load_schema_version, from_string, get_hed_xml_version, get_schema
+from .hed_schema_io import load_schema, load_schema_version, from_string, get_hed_xml_version
from .hed_schema_constants import HedKey, HedSectionKey
from .hed_cache import cache_xml_versions, get_hed_versions, \
get_path_from_hed_version, set_cache_directory, get_cache_directory
diff --git a/hed/schema/hed_cache.py b/hed/schema/hed_cache.py
index 793cd6d85..299af6f66 100644
--- a/hed/schema/hed_cache.py
+++ b/hed/schema/hed_cache.py
@@ -60,13 +60,14 @@ def get_cache_directory():
return HED_CACHE_DIRECTORY
-def get_hed_versions(local_hed_directory=None, library_name=None, get_libraries=False):
+def get_hed_versions(local_hed_directory=None, library_name=None):
""" Get the HED versions in the hed directory.
Parameters:
local_hed_directory (str): Directory to check for versions which defaults to hed_cache.
library_name (str or None): An optional schema library name.
- get_libraries (bool): If true, return a dictionary of version numbers, with an entry for each library name.
+ None retrieves the standard schema only.
+ Pass "all" to retrieve all standard and library schemas as a dict.
Returns:
list or dict: List of version numbers or dictionary {library_name: [versions]}.
@@ -89,18 +90,16 @@ def get_hed_versions(local_hed_directory=None, library_name=None, get_libraries=
if expression_match is not None:
version = expression_match.group(3)
found_library_name = expression_match.group(2)
- if not get_libraries and found_library_name != library_name:
+ if library_name != "all" and found_library_name != library_name:
continue
if found_library_name not in all_hed_versions:
all_hed_versions[found_library_name] = []
all_hed_versions[found_library_name].append(version)
for name, hed_versions in all_hed_versions.items():
all_hed_versions[name] = _sort_version_list(hed_versions)
- if get_libraries:
- return all_hed_versions
if library_name in all_hed_versions:
return all_hed_versions[library_name]
- return []
+ return all_hed_versions
def cache_specific_url(hed_xml_url, xml_version=None, library_name=None, cache_folder=None):
diff --git a/hed/schema/hed_schema.py b/hed/schema/hed_schema.py
index 91a73c8f0..4cb3729c0 100644
--- a/hed/schema/hed_schema.py
+++ b/hed/schema/hed_schema.py
@@ -1,12 +1,10 @@
-import os
-import shutil
import json
from hed.schema.hed_schema_constants import HedKey, HedSectionKey
from hed.schema import hed_schema_constants as constants
from hed.schema.schema_io import schema_util
-from hed.schema.schema_io.schema2xml import HedSchema2XML
-from hed.schema.schema_io.schema2wiki import HedSchema2Wiki
+from hed.schema.schema_io.schema2xml import Schema2XML
+from hed.schema.schema_io.schema2wiki import Schema2Wiki
from hed.schema.hed_schema_section import HedSchemaSection, HedSchemaTagSection, HedSchemaUnitClassSection
from hed.errors import ErrorHandler
from hed.errors.error_types import ValidationErrors
@@ -86,13 +84,13 @@ def merged(self):
return not self.header_attributes.get(constants.UNMERGED_ATTRIBUTE, "")
@property
- def all_tags(self):
+ def tags(self):
""" Return the tag schema section.
Returns:
HedSchemaTagSection: The tag section.
"""
- return self._sections[HedSectionKey.AllTags]
+ return self._sections[HedSectionKey.Tags]
@property
def unit_classes(self):
@@ -212,8 +210,7 @@ def get_as_mediawiki_string(self, save_merged=False):
str: The schema as a string in mediawiki format.
"""
- schema2wiki = HedSchema2Wiki()
- output_strings = schema2wiki.process_schema(self, save_merged)
+ output_strings = Schema2Wiki.process_schema(self, save_merged)
return '\n'.join(output_strings)
def get_as_xml_string(self, save_merged=True):
@@ -227,12 +224,11 @@ def get_as_xml_string(self, save_merged=True):
str: Return the schema as an XML string.
"""
- schema2xml = HedSchema2XML()
- xml_tree = schema2xml.process_schema(self, save_merged)
+ xml_tree = Schema2XML.process_schema(self, save_merged)
return schema_util._xml_element_2_str(xml_tree)
def save_as_mediawiki(self, filename=None, save_merged=False):
- """ Save as mediawiki to a temporary file.
+ """ Save as mediawiki to a file.
filename: str
If present, move the resulting file to this location.
@@ -243,19 +239,12 @@ def save_as_mediawiki(self, filename=None, save_merged=False):
Returns:
str: The newly created schema filename.
"""
- schema2wiki = HedSchema2Wiki()
- output_strings = schema2wiki.process_schema(self, save_merged)
+ output_strings = Schema2Wiki.process_schema(self, save_merged)
local_wiki_file = schema_util.write_strings_to_file(output_strings, ".mediawiki")
- if filename:
- directory = os.path.dirname(filename)
- if directory and not os.path.exists(directory):
- os.makedirs(directory)
- shutil.move(local_wiki_file, filename)
- return filename
- return local_wiki_file
+ return schema_util.move_file(local_wiki_file, filename)
def save_as_xml(self, filename=None, save_merged=True):
- """ Save as XML to a temporary file.
+ """ Save as XML to a file.
filename: str
If present, move the resulting file to this location.
@@ -266,16 +255,9 @@ def save_as_xml(self, filename=None, save_merged=True):
Returns:
str: The name of the newly created schema file.
"""
- schema2xml = HedSchema2XML()
- xml_tree = schema2xml.process_schema(self, save_merged)
+ xml_tree = Schema2XML.process_schema(self, save_merged)
local_xml_file = schema_util.write_xml_tree_2_xml_file(xml_tree, ".xml")
- if filename:
- directory = os.path.dirname(filename)
- if directory and not os.path.exists(directory):
- os.makedirs(directory)
- shutil.move(local_xml_file, filename)
- return filename
- return local_xml_file
+ return schema_util.move_file(local_xml_file, filename)
def set_schema_prefix(self, schema_namespace):
""" Set library namespace associated for this schema.
@@ -354,7 +336,7 @@ def check_compliance(self, check_for_warnings=True, name=None, error_handler=Non
from hed.schema import schema_compliance
return schema_compliance.check_compliance(self, check_for_warnings, name, error_handler)
- def get_tags_with_attribute(self, attribute, key_class=HedSectionKey.AllTags):
+ def get_tags_with_attribute(self, attribute, key_class=HedSectionKey.Tags):
""" Return tag entries with the given attribute.
Parameters:
@@ -370,7 +352,7 @@ def get_tags_with_attribute(self, attribute, key_class=HedSectionKey.AllTags):
return self._sections[key_class].get_entries_with_attribute(attribute, return_name_only=True,
schema_namespace=self._namespace)
- def get_tag_entry(self, name, key_class=HedSectionKey.AllTags, schema_namespace=""):
+ def get_tag_entry(self, name, key_class=HedSectionKey.Tags, schema_namespace=""):
""" Return the schema entry for this tag, if one exists.
Parameters:
@@ -378,12 +360,12 @@ def get_tag_entry(self, name, key_class=HedSectionKey.AllTags, schema_namespace=
This will not handle extensions or similar.
If this is a tag, it can have a schema namespace, but it's not required
key_class (HedSectionKey or str): The type of entry to return.
- schema_namespace (str): Only used on AllTags. If incorrect, will return None.
+ schema_namespace (str): Only used on Tags. If incorrect, will return None.
Returns:
HedSchemaEntry: The schema entry for the given tag.
"""
- if key_class == HedSectionKey.AllTags:
+ if key_class == HedSectionKey.Tags:
if schema_namespace != self._namespace:
return None
if name.startswith(self._namespace):
@@ -415,7 +397,7 @@ def find_tag_entry(self, tag, schema_namespace=""):
# ===============================================
# Private utility functions for getting/finding tags
# ===============================================
- def _get_tag_entry(self, name, key_class=HedSectionKey.AllTags):
+ def _get_tag_entry(self, name, key_class=HedSectionKey.Tags):
""" Return the schema entry for this tag, if one exists.
Parameters:
@@ -524,7 +506,7 @@ def _validate_remaining_terms(self, tag, working_tag, prefix_tag_adj, current_sl
tag,
index_in_tag=word_start_index,
index_in_tag_end=word_start_index + len(name),
- expected_parent_tag=self.all_tags[name].name)
+ expected_parent_tag=self.tags[name].name)
raise self._TagIdentifyError(error)
word_start_index += len(name) + 1
@@ -533,7 +515,7 @@ def _validate_remaining_terms(self, tag, working_tag, prefix_tag_adj, current_sl
# ===============================================
def finalize_dictionaries(self):
""" Call to finish loading. """
- self._has_duplicate_tags = bool(self.all_tags.duplicate_names)
+ self._has_duplicate_tags = bool(self.tags.duplicate_names)
self._update_all_entries()
def _update_all_entries(self):
@@ -568,13 +550,13 @@ def get_desc_iter(self):
if tag_entry.description:
yield tag_entry.name, tag_entry.description
- def get_tag_description(self, tag_name, key_class=HedSectionKey.AllTags):
+ def get_tag_description(self, tag_name, key_class=HedSectionKey.Tags):
""" Return the description associated with the tag.
Parameters:
tag_name (str): A hed tag name(or unit/unit modifier etc) with proper capitalization.
key_class (str): A string indicating type of description (e.g. All tags, Units, Unit modifier).
- The default is HedSectionKey.AllTags.
+ The default is HedSectionKey.Tags.
Returns:
str: A description of the specified tag.
@@ -595,7 +577,7 @@ def get_all_schema_tags(self, return_last_term=False):
"""
final_list = []
- for lower_tag, tag_entry in self.all_tags.items():
+ for lower_tag, tag_entry in self.tags.items():
if return_last_term:
final_list.append(tag_entry.name.split('/')[-1])
else:
@@ -636,7 +618,7 @@ def get_tag_attribute_names(self):
and not tag_entry.has_attribute(HedKey.UnitModifierProperty)
and not tag_entry.has_attribute(HedKey.ValueClassProperty)}
- def get_all_tag_attributes(self, tag_name, key_class=HedSectionKey.AllTags):
+ def get_all_tag_attributes(self, tag_name, key_class=HedSectionKey.Tags):
""" Gather all attributes for a given tag name.
Parameters:
@@ -670,7 +652,7 @@ def _create_empty_sections():
dictionaries[HedSectionKey.Units] = HedSchemaSection(HedSectionKey.Units)
dictionaries[HedSectionKey.UnitClasses] = HedSchemaUnitClassSection(HedSectionKey.UnitClasses)
dictionaries[HedSectionKey.ValueClasses] = HedSchemaSection(HedSectionKey.ValueClasses)
- dictionaries[HedSectionKey.AllTags] = HedSchemaTagSection(HedSectionKey.AllTags, case_sensitive=False)
+ dictionaries[HedSectionKey.Tags] = HedSchemaTagSection(HedSectionKey.Tags, case_sensitive=False)
return dictionaries
@@ -717,7 +699,7 @@ def _get_attributes_for_section(self, key_class):
dict or HedSchemaSection: A dict of all the attributes and this section.
"""
- if key_class == HedSectionKey.AllTags:
+ if key_class == HedSectionKey.Tags:
return self.get_tag_attribute_names()
elif key_class == HedSectionKey.Attributes:
prop_added_dict = {key: value for key, value in self._sections[HedSectionKey.Properties].items()}
@@ -746,9 +728,10 @@ def _get_attributes_for_section(self, key_class):
# Semi private function used to create a schema in memory(usually from a source file)
# ===============================================
def _add_tag_to_dict(self, long_tag_name, new_entry, key_class):
- # No reason we can't add this here always
- if self.library and not self.merged and self.with_standard:
- new_entry.set_attribute_value(HedKey.InLibrary, self.library)
+ # Add the InLibrary attribute to any library schemas as they are loaded
+ # These are later removed when they are saved out, if saving unmerged
+ if self.library and (not self.with_standard or (not self.merged and self.with_standard)):
+ new_entry._set_attribute_value(HedKey.InLibrary, self.library)
section = self._sections[key_class]
return section._add_to_dict(long_tag_name, new_entry)
diff --git a/hed/schema/hed_schema_base.py b/hed/schema/hed_schema_base.py
index b0e29ebcc..6651077e0 100644
--- a/hed/schema/hed_schema_base.py
+++ b/hed/schema/hed_schema_base.py
@@ -55,7 +55,7 @@ def valid_prefixes(self):
raise NotImplemented("This function must be implemented in the baseclass")
@abstractmethod
- def get_tags_with_attribute(self, attribute, key_class=HedSectionKey.AllTags):
+ def get_tags_with_attribute(self, attribute, key_class=HedSectionKey.Tags):
""" Return tag entries with the given attribute.
Parameters:
@@ -72,7 +72,7 @@ def get_tags_with_attribute(self, attribute, key_class=HedSectionKey.AllTags):
# todo: maybe tweak this API so you don't have to pass in library namespace?
@abstractmethod
- def get_tag_entry(self, name, key_class=HedSectionKey.AllTags, schema_namespace=""):
+ def get_tag_entry(self, name, key_class=HedSectionKey.Tags, schema_namespace=""):
""" Return the schema entry for this tag, if one exists.
Parameters:
@@ -80,7 +80,7 @@ def get_tag_entry(self, name, key_class=HedSectionKey.AllTags, schema_namespace=
This will not handle extensions or similar.
If this is a tag, it can have a schema namespace, but it's not required
key_class (HedSectionKey or str): The type of entry to return.
- schema_namespace (str): Only used on AllTags. If incorrect, will return None.
+ schema_namespace (str): Only used on Tags. If incorrect, will return None.
Returns:
HedSchemaEntry: The schema entry for the given tag.
diff --git a/hed/schema/hed_schema_constants.py b/hed/schema/hed_schema_constants.py
index d5c65a6d7..0cecc4ab6 100644
--- a/hed/schema/hed_schema_constants.py
+++ b/hed/schema/hed_schema_constants.py
@@ -1,10 +1,11 @@
from enum import Enum
+
class HedSectionKey(Enum):
""" Kegs designating specific sections in a HedSchema object.
"""
# overarching category listing all tags
- AllTags = 'tags'
+ Tags = 'tags'
# Overarching category listing all unit classes
UnitClasses = 'unitClasses'
# Overarching category listing all units(not divided by type)
@@ -40,6 +41,7 @@ class HedKey:
RelatedTag = "relatedTag"
SuggestedTag = "suggestedTag"
Rooted = "rooted"
+ DeprecatedFrom = "deprecatedFrom"
# All known properties
BoolProperty = 'boolProperty'
@@ -48,6 +50,7 @@ class HedKey:
UnitModifierProperty = 'unitModifierProperty'
ValueClassProperty = 'valueClassProperty'
ElementProperty = 'elementProperty'
+ IsInheritedProperty = 'isInheritedProperty'
SIUnit = 'SIUnit'
UnitSymbol = 'unitSymbol'
@@ -68,4 +71,16 @@ class HedKey:
VERSION_ATTRIBUTE = 'version'
LIBRARY_ATTRIBUTE = 'library'
WITH_STANDARD_ATTRIBUTE = "withStandard"
-UNMERGED_ATTRIBUTE = "unmerged"
\ No newline at end of file
+UNMERGED_ATTRIBUTE = "unmerged"
+NS_ATTRIB = "xmlns:xsi"
+NO_LOC_ATTRIB = "xsi:noNamespaceSchemaLocation"
+
+# A list of all attributes that can appear in the header line
+valid_header_attributes = {
+ VERSION_ATTRIBUTE,
+ LIBRARY_ATTRIBUTE,
+ WITH_STANDARD_ATTRIBUTE,
+ NS_ATTRIB,
+ NO_LOC_ATTRIB,
+ UNMERGED_ATTRIBUTE
+}
diff --git a/hed/schema/hed_schema_entry.py b/hed/schema/hed_schema_entry.py
index 18898ad34..102795d80 100644
--- a/hed/schema/hed_schema_entry.py
+++ b/hed/schema/hed_schema_entry.py
@@ -2,6 +2,8 @@
from hed.schema.hed_schema_constants import HedKey
import inflect
+import copy
+
pluralize = inflect.engine()
pluralize.defnoun("hertz", "hertz")
@@ -48,63 +50,64 @@ def finalize_entry(self, schema):
for item in to_remove:
self._unknown_attributes.pop(item)
- def set_attribute_value(self, attribute_name, attribute_value):
- """ Add attribute and set its value.
-
- Parameters:
- attribute_name (str): The name of the schema entry attribute.
- attribute_value (bool or str): The value of the attribute.
-
- Notes:
- - If this an invalid attribute name, it will be also added as an unknown attribute.
-
- """
- if not attribute_value:
- return
-
- # todo: remove this patch and redo the code
- # This check doesn't need to be done if the schema is valid.
- if attribute_name not in self._section.valid_attributes:
- # print(f"Unknown attribute {attribute_name}")
- if self._unknown_attributes is None:
- self._unknown_attributes = {}
- self._unknown_attributes[attribute_name] = attribute_value
- self.attributes[attribute_name] = attribute_value
-
- def has_attribute(self, attribute_name, return_value=False):
- """ Return True if this entry has the attribute.
+ def has_attribute(self, attribute, return_value=False):
+ """ Checks for the existence of an attribute in this entry.
Parameters:
- attribute_name (str): The attribute to check for.
- return_value (bool): If True return the actual attribute value rather than just indicate presence.
+ attribute (str): The attribute to check for.
+ return_value (bool): If True, returns the actual value of the attribute.
+ If False, returns a boolean indicating the presence of the attribute.
Returns:
- bool or str: If return_value is false, a boolean is returned rather than the actual value.
+ bool or any: If return_value is False, returns True if the attribute exists and False otherwise.
+ If return_value is True, returns the value of the attribute if it exists, else returns None.
Notes:
- - A return value of True does not indicate whether or not this attribute is valid
-
+ - The existence of an attribute does not guarantee its validity.
"""
if return_value:
- return self.attributes.get(attribute_name, None)
+ return self.attributes.get(attribute, None)
else:
- return attribute_name in self.attributes
+ return attribute in self.attributes
- def attribute_has_property(self, attribute_name, property_name):
+ def attribute_has_property(self, attribute, property_name):
""" Return True if attribute has property.
Parameters:
- attribute_name (str): Attribute name to check for property_name.
+ attribute (str): Attribute name to check for property_name.
property_name (str): The property value to return.
Returns:
bool: Returns True if this entry has the property.
"""
- attr_entry = self._section.valid_attributes.get(attribute_name)
+ attr_entry = self._section.valid_attributes.get(attribute)
if attr_entry and attr_entry.has_attribute(property_name):
return True
+ def _set_attribute_value(self, attribute, attribute_value):
+ """ Add attribute and set its value.
+
+ Parameters:
+ attribute (str): The name of the schema entry attribute.
+ attribute_value (bool or str): The value of the attribute.
+
+ Notes:
+ - If this an invalid attribute name, it will be also added as an unknown attribute.
+
+ """
+ if not attribute_value:
+ return
+
+ # todo: remove this patch and redo the code
+ # This check doesn't need to be done if the schema is valid.
+ if attribute not in self._section.valid_attributes:
+ # print(f"Unknown attribute {attribute}")
+ if self._unknown_attributes is None:
+ self._unknown_attributes = {}
+ self._unknown_attributes[attribute] = attribute_value
+ self.attributes[attribute] = attribute_value
+
@property
def section_key(self):
return self._section.section_key
@@ -114,10 +117,8 @@ def __eq__(self, other):
return False
if self.attributes != other.attributes:
# We only want to compare known attributes
- self_attr = {key: value for key, value in self.attributes.items()
- if not self._unknown_attributes or key not in self._unknown_attributes}
- other_attr = {key: value for key, value in other.attributes.items()
- if not other._unknown_attributes or key not in other._unknown_attributes}
+ self_attr = self.get_known_attributes()
+ other_attr = other.get_known_attributes()
if self_attr != other_attr:
return False
if self.description != other.description:
@@ -130,6 +131,10 @@ def __hash__(self):
def __str__(self):
return self.name
+ def get_known_attributes(self):
+ return {key: value for key, value in self.attributes.items()
+ if not self._unknown_attributes or key not in self._unknown_attributes}
+
class UnitClassEntry(HedSchemaEntry):
""" A single unit class entry in the HedSchema. """
@@ -138,7 +143,7 @@ def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self._units = []
self.units = []
- self.derivative_units = []
+ self.derivative_units = {}
def add_unit(self, unit_entry):
""" Add the given unit entry to this unit class.
@@ -156,17 +161,12 @@ def finalize_entry(self, schema):
schema (HedSchema): The object with the schema rules.
"""
- derivative_units = {}
+
self.units = {unit_entry.name: unit_entry for unit_entry in self._units}
- for unit_name, unit_entry in self.units.items():
- new_derivative_units = [unit_name]
- if not unit_entry.has_attribute(HedKey.UnitSymbol):
- new_derivative_units.append(pluralize.plural(unit_name))
-
- for derived_unit in new_derivative_units:
- derivative_units[derived_unit] = unit_entry
- for modifier in unit_entry.unit_modifiers:
- derivative_units[modifier.name + derived_unit] = unit_entry
+ derivative_units = {}
+ for unit_entry in self.units.values():
+ derivative_units.update({key:unit_entry for key in unit_entry.derivative_units.keys()})
+
self.derivative_units = derivative_units
def __eq__(self, other):
@@ -179,11 +179,11 @@ def __eq__(self, other):
class UnitEntry(HedSchemaEntry):
""" A single unit entry with modifiers in the HedSchema. """
-
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.unit_class_name = None
self.unit_modifiers = []
+ self.derivative_units = {}
def finalize_entry(self, schema):
""" Called once after loading to set internal state.
@@ -194,6 +194,38 @@ def finalize_entry(self, schema):
"""
self.unit_modifiers = schema._get_modifiers_for_unit(self.name)
+ derivative_units = {}
+ base_plural_units = {self.name}
+ if not self.has_attribute(HedKey.UnitSymbol):
+ base_plural_units.add(pluralize.plural(self.name))
+
+ for derived_unit in base_plural_units:
+ derivative_units[derived_unit] = self._get_conversion_factor(None)
+ for modifier in self.unit_modifiers:
+ derivative_units[modifier.name + derived_unit] = self._get_conversion_factor(modifier_entry=modifier)
+
+ self.derivative_units = derivative_units
+
+ def _get_conversion_factor(self, modifier_entry):
+
+ base_factor = float(self.attributes.get("conversionFactor", "1.0").replace("^", "e"))
+ if modifier_entry:
+ modifier_factor = float(modifier_entry.attributes.get("conversionFactor", "1.0").replace("^", "e"))
+ else:
+ modifier_factor = 1.0
+ return base_factor * modifier_factor
+
+ def get_conversion_factor(self, unit_name):
+ """Returns the conversion factor from combining this unit with the specified modifier
+
+ Parameters:
+ unit_name (str or None): the full name of the unit with modifier
+
+ Returns:
+ conversion_factor(float or None): Returns the conversion factor or None
+ """
+ if "conversionFactor" in self.attributes:
+ return float(self.derivative_units.get(unit_name))
class HedTagEntry(HedSchemaEntry):
""" A single tag entry in the HedSchema. """
@@ -207,26 +239,74 @@ def __init__(self, *args, **kwargs):
self.takes_value_child_entry = None # this is a child takes value tag, if one exists
self._parent_tag = None
self.tag_terms = tuple()
+ # During setup, it's better to have attributes shadow inherited before getting its own copy later.
+ self.inherited_attributes = self.attributes
+ # Descendent tags below this one
+ self.children = {}
+
+ def has_attribute(self, attribute, return_value=False):
+ """ Returns th existence or value of an attribute in this entry.
- def any_parent_has_attribute(self, attribute):
- """ Check if tag (or parents) has the attribute.
+ This also checks parent tags for inheritable attributes like ExtensionAllowed.
Parameters:
- attribute (str): The name of the attribute to check for.
+ attribute (str): The attribute to check for.
+ return_value (bool): If True, returns the actual value of the attribute.
+ If False, returns a boolean indicating the presence of the attribute.
Returns:
- bool: True if the tag has the given attribute. False, if otherwise.
+ bool or any: If return_value is False, returns True if the attribute exists and False otherwise.
+ If return_value is True, returns the value of the attribute if it exists, else returns None.
Notes:
- - This is mostly used to check extension allowed. Could be cached.
-
+ - The existence of an attribute does not guarantee its validity.
"""
+ val = self.inherited_attributes.get(attribute)
+ if not return_value:
+ val = val is not None
+ return val
+
+ def _check_inherited_attribute_internal(self, attribute):
+ """Gather up all instances of an attribute from this entry and any parent entries"""
+ attribute_values = []
+
iter_entry = self
while iter_entry is not None:
- if iter_entry.has_attribute(attribute):
- return True
+ if iter_entry.takes_value_child_entry:
+ break
+ if attribute in iter_entry.attributes:
+ attribute_values.append(iter_entry.attributes[attribute])
iter_entry = iter_entry._parent_tag
- return False
+
+ return attribute_values
+
+ def _check_inherited_attribute(self, attribute, return_value=False, return_union=False):
+ """
+ Checks for the existence of an attribute in this entry and its parents.
+
+ Parameters:
+ attribute (str): The attribute to check for.
+ return_value (bool): If True, returns the actual value of the attribute.
+ If False, returns a boolean indicating the presence of the attribute.
+ return_union(bool): If true, return a union of all parent values
+
+ Returns:
+ bool or any: Depending on the flag return_value,
+ returns either the presence of the attribute, or its value.
+
+ Notes:
+ - The existence of an attribute does not guarantee its validity.
+ - For string attributes, the values are joined with a comma as a delimiter from all ancestors.
+ """
+ attribute_values = self._check_inherited_attribute_internal(attribute)
+
+ if return_value:
+ if not attribute_values:
+ return None
+ if return_union:
+ return ",".join(attribute_values)
+ return attribute_values[0]
+ return bool(attribute_values)
def base_tag_has_attribute(self, tag_attribute):
""" Check if the base tag has a specific attribute.
@@ -260,6 +340,28 @@ def parent_name(self):
parent_name, _, child_name = self.name.rpartition("/")
return parent_name
+ def _finalize_classes(self, schema, attribute_key, section_key):
+ result = {}
+ if attribute_key in self.attributes:
+ for attribute_name in self.attributes[attribute_key].split(","):
+ entry = schema._get_tag_entry(attribute_name, section_key)
+ if entry:
+ result[attribute_name] = entry
+ return result
+
+ def _finalize_takes_value_tag(self, schema):
+ if self.name.endswith("/#"):
+ self.unit_classes = self._finalize_classes(schema, HedKey.UnitClass, HedSectionKey.UnitClasses)
+ self.value_classes = self._finalize_classes(schema, HedKey.ValueClass, HedSectionKey.ValueClasses)
+
+ def _finalize_inherited_attributes(self):
+ # Replace the list with a copy we can modify.
+ self.inherited_attributes = self.attributes.copy()
+ for attribute in self._section.inheritable_attributes:
+ if self._check_inherited_attribute(attribute):
+ treat_as_string = not self.attribute_has_property(attribute, HedKey.BoolProperty)
+ self.inherited_attributes[attribute] = self._check_inherited_attribute(attribute, True, treat_as_string)
+
def finalize_entry(self, schema):
""" Called once after schema loading to set state.
@@ -273,20 +375,10 @@ def finalize_entry(self, schema):
if parent_name:
parent_tag = schema._get_tag_entry(parent_name)
self._parent_tag = parent_tag
+ if self._parent_tag:
+ self._parent_tag.children[self.short_tag_name] = self
self.takes_value_child_entry = schema._get_tag_entry(self.name + "/#")
self.tag_terms = tuple(self.long_tag_name.lower().split("/"))
- if self.name.endswith("/#"):
- if HedKey.UnitClass in self.attributes:
- self.unit_classes = {}
- for unit_class_name in self.attributes[HedKey.UnitClass].split(","):
- entry = schema._get_tag_entry(unit_class_name, HedSectionKey.UnitClasses)
- if entry:
- self.unit_classes[unit_class_name] = entry
-
- if HedKey.ValueClass in self.attributes:
- self.value_classes = {}
- for value_class_name in self.attributes[HedKey.ValueClass].split(","):
- entry = schema._get_tag_entry(value_class_name, HedSectionKey.ValueClasses)
- if entry:
- self.value_classes[value_class_name] = entry
+ self._finalize_inherited_attributes()
+ self._finalize_takes_value_tag(schema)
diff --git a/hed/schema/hed_schema_group.py b/hed/schema/hed_schema_group.py
index 96187b73f..ae0ac2b81 100644
--- a/hed/schema/hed_schema_group.py
+++ b/hed/schema/hed_schema_group.py
@@ -101,7 +101,7 @@ def check_compliance(self, check_for_warnings=True, name=None, error_handler=Non
issues_list += schema.check_compliance(check_for_warnings, name, error_handler)
return issues_list
- def get_tags_with_attribute(self, attribute, key_class=HedSectionKey.AllTags):
+ def get_tags_with_attribute(self, attribute, key_class=HedSectionKey.Tags):
""" Return tag entries with the given attribute.
Parameters:
@@ -114,12 +114,12 @@ def get_tags_with_attribute(self, attribute, key_class=HedSectionKey.AllTags):
Notes:
- The result is cached so will be fast after first call.
"""
- all_tags = set()
+ tags = set()
for schema in self._schemas.values():
- all_tags.update(schema.get_tags_with_attribute(attribute, key_class))
- return list(all_tags)
+ tags.update(schema.get_tags_with_attribute(attribute, key_class))
+ return list(tags)
- def get_tag_entry(self, name, key_class=HedSectionKey.AllTags, schema_namespace=""):
+ def get_tag_entry(self, name, key_class=HedSectionKey.Tags, schema_namespace=""):
""" Return the schema entry for this tag, if one exists.
Parameters:
@@ -127,7 +127,7 @@ def get_tag_entry(self, name, key_class=HedSectionKey.AllTags, schema_namespace=
This will not handle extensions or similar.
If this is a tag, it can have a schema namespace, but it's not required
key_class (HedSectionKey or str): The type of entry to return.
- schema_namespace (str): Only used on AllTags. If incorrect, will return None.
+ schema_namespace (str): Only used on Tags. If incorrect, will return None.
Returns:
HedSchemaEntry: The schema entry for the given tag.
diff --git a/hed/schema/hed_schema_io.py b/hed/schema/hed_schema_io.py
index df5601305..600f1dbad 100644
--- a/hed/schema/hed_schema_io.py
+++ b/hed/schema/hed_schema_io.py
@@ -1,23 +1,26 @@
""" Utilities for loading and outputting HED schema. """
import os
import json
-from hed.schema.schema_io.xml2schema import HedSchemaXMLParser
-from hed.schema.schema_io.wiki2schema import HedSchemaWikiParser
-from hed.schema import hed_schema_constants, hed_cache
+import functools
+from hed.schema.schema_io.xml2schema import SchemaLoaderXML
+from hed.schema.schema_io.wiki2schema import SchemaLoaderWiki
+from hed.schema import hed_cache
from hed.errors.exceptions import HedFileError, HedExceptions
-from hed.schema.hed_schema import HedSchema
from hed.schema.schema_io import schema_util
from hed.schema.hed_schema_group import HedSchemaGroup
from hed.schema.schema_validation_util import validate_version_string
-def from_string(schema_string, file_type=".xml", schema_namespace=None):
+MAX_MEMORY_CACHE = 20
+
+
+def from_string(schema_string, schema_format=".xml", schema_namespace=None):
""" Create a schema from the given string.
Parameters:
schema_string (str): An XML or mediawiki file as a single long string.
- file_type (str): The extension(including the .) corresponding to a file source.
+ schema_format (str): The schema format of the source schema string.
schema_namespace (str, None): The name_prefix all tags in this schema will accept.
Returns:
@@ -35,12 +38,12 @@ def from_string(schema_string, file_type=".xml", schema_namespace=None):
raise HedFileError(HedExceptions.BAD_PARAMETERS, "Empty string passed to HedSchema.from_string",
filename=schema_string)
- if file_type.endswith(".xml"):
- hed_schema = HedSchemaXMLParser.load_xml(schema_as_string=schema_string)
- elif file_type.endswith(".mediawiki"):
- hed_schema = HedSchemaWikiParser.load_wiki(schema_as_string=schema_string)
+ if schema_format.endswith(".xml"):
+ hed_schema = SchemaLoaderXML.load(schema_as_string=schema_string)
+ elif schema_format.endswith(".mediawiki"):
+ hed_schema = SchemaLoaderWiki.load(schema_as_string=schema_string)
else:
- raise HedFileError(HedExceptions.INVALID_EXTENSION, "Unknown schema extension", filename=file_type)
+ raise HedFileError(HedExceptions.INVALID_EXTENSION, "Unknown schema extension", filename=schema_format)
if schema_namespace:
hed_schema.set_schema_prefix(schema_namespace=schema_namespace)
@@ -48,17 +51,6 @@ def from_string(schema_string, file_type=".xml", schema_namespace=None):
return hed_schema
-def get_schema(hed_versions):
- if not hed_versions:
- return None
- elif isinstance(hed_versions, str) or isinstance(hed_versions, list):
- return load_schema_version(hed_versions)
- elif isinstance(hed_versions, HedSchema) or isinstance(hed_versions, HedSchemaGroup):
- return hed_versions
- else:
- raise ValueError("InvalidHedSchemaOrSchemaVersion", "Expected schema or schema version")
-
-
def load_schema(hed_path=None, schema_namespace=None):
""" Load a schema from the given file or URL path.
@@ -83,11 +75,11 @@ def load_schema(hed_path=None, schema_namespace=None):
if is_url:
file_as_string = schema_util.url_to_string(hed_path)
- hed_schema = from_string(file_as_string, file_type=os.path.splitext(hed_path.lower())[1])
+ hed_schema = from_string(file_as_string, schema_format=os.path.splitext(hed_path.lower())[1])
elif hed_path.lower().endswith(".xml"):
- hed_schema = HedSchemaXMLParser.load_xml(hed_path)
+ hed_schema = SchemaLoaderXML.load(hed_path)
elif hed_path.lower().endswith(".mediawiki"):
- hed_schema = HedSchemaWikiParser.load_wiki(hed_path)
+ hed_schema = SchemaLoaderWiki.load(hed_path)
else:
raise HedFileError(HedExceptions.INVALID_EXTENSION, "Unknown schema extension", filename=hed_path)
@@ -97,7 +89,7 @@ def load_schema(hed_path=None, schema_namespace=None):
return hed_schema
-# todo: this could be updated to also support .mediawiki format.
+# If this is actually used, we could easily add other versions/update this one
def get_hed_xml_version(xml_file_path):
""" Get the version number from a HED XML file.
@@ -110,16 +102,17 @@ def get_hed_xml_version(xml_file_path):
:raises HedFileError:
- There is an issue loading the schema
"""
- root_node = HedSchemaXMLParser._parse_hed_xml(xml_file_path)
- return root_node.attrib[hed_schema_constants.VERSION_ATTRIBUTE]
+ parser = SchemaLoaderXML(xml_file_path)
+ return parser.schema.version
+@functools.lru_cache(maxsize=MAX_MEMORY_CACHE)
def _load_schema_version(xml_version=None, xml_folder=None):
""" Return specified version or latest if not specified.
Parameters:
xml_folder (str): Path to a folder containing schema.
- xml_version (str or list): HED version format string. Expected format: '[schema_namespace:][library_name_]X.Y.Z'.
+ xml_version (str): HED version format string. Expected format: '[schema_namespace:][library_name_]X.Y.Z'.
Returns:
HedSchema or HedSchemaGroup: The requested HedSchema object.
@@ -150,7 +143,9 @@ def _load_schema_version(xml_version=None, xml_folder=None):
hed_cache.cache_xml_versions(cache_folder=xml_folder)
final_hed_xml_file = hed_cache.get_hed_version_path(xml_version, library_name, xml_folder)
if not final_hed_xml_file:
- raise HedFileError(HedExceptions.FILE_NOT_FOUND, f"HED version '{xml_version}' not found in cache: {hed_cache.get_cache_directory()}", filename=xml_folder)
+ raise HedFileError(HedExceptions.FILE_NOT_FOUND,
+ f"HED version '{xml_version}' not found in cache: {hed_cache.get_cache_directory()}",
+ filename=xml_folder)
hed_schema = load_schema(final_hed_xml_file)
else:
raise e
@@ -178,9 +173,9 @@ def load_schema_version(xml_version=None, xml_folder=None):
- The xml_version is not valid.
- A fatal error was encountered in parsing
"""
+ # Check if we start and end with a square bracket, or double quote. This might be valid json
if xml_version and isinstance(xml_version, str) and \
- ((xml_version.startswith("[") and xml_version.endswith("]")) or
- (xml_version.startswith('"') and xml_version.endswith('"'))):
+ ((xml_version[0], xml_version[-1]) in [('[', ']'), ('"', '"')]):
try:
xml_version = json.loads(xml_version)
except json.decoder.JSONDecodeError as e:
diff --git a/hed/schema/hed_schema_section.py b/hed/schema/hed_schema_section.py
index f4c6d3954..7a866fc05 100644
--- a/hed/schema/hed_schema_section.py
+++ b/hed/schema/hed_schema_section.py
@@ -9,7 +9,7 @@
HedSectionKey.Units: UnitEntry,
HedSectionKey.UnitClasses: UnitClassEntry,
HedSectionKey.ValueClasses: HedSchemaEntry,
- HedSectionKey.AllTags: HedTagEntry,
+ HedSectionKey.Tags: HedTagEntry,
}
@@ -145,7 +145,7 @@ def __bool__(self):
return bool(self.all_names)
def _finalize_section(self, hed_schema):
- for entry in self.values():
+ for entry in self.all_entries:
entry.finalize_entry(hed_schema)
@@ -164,6 +164,8 @@ def __init__(self, *args, case_sensitive=False, **kwargs):
super().__init__(*args, **kwargs, case_sensitive=case_sensitive)
# This dict contains all forms of all tags. The .all_names variable has ONLY the long forms.
self.long_form_tags = {}
+ self.inheritable_attributes = {}
+ self.root_tags = {}
@staticmethod
def _get_tag_forms(name):
@@ -229,7 +231,7 @@ def __contains__(self, key):
return key in self.long_form_tags
@staticmethod
- def _divide_tags_into_dict(divide_list):
+ def _group_by_top_level_tag(divide_list):
result = {}
for item in divide_list:
key, _, value = item.long_tag_name.partition('/')
@@ -240,8 +242,16 @@ def _divide_tags_into_dict(divide_list):
return list(result.values())
def _finalize_section(self, hed_schema):
- split_list = self._divide_tags_into_dict(self.all_entries)
+ # Find the attributes with the inherited property
+ attribute_section = hed_schema.attributes
+ self.inheritable_attributes = [name for name, value in attribute_section.items()
+ if value.has_attribute(HedKey.IsInheritedProperty)]
+ # Hardcode in extension allowed as it is critical for validation in older schemas
+ if not self.inheritable_attributes:
+ self.inheritable_attributes = [HedKey.ExtensionAllowed]
+
+ split_list = self._group_by_top_level_tag(self.all_entries)
# Sort the extension allowed lists
extension_allowed_node = 0
for values in split_list:
@@ -258,5 +268,6 @@ def _finalize_section(self, hed_schema):
if extension_allowed_node:
split_list[extension_allowed_node:] = sorted(split_list[extension_allowed_node:], key=lambda x: x[0].long_tag_name)
self.all_entries = [subitem for tag_list in split_list for subitem in tag_list]
- super()._finalize_section(hed_schema)
+ super()._finalize_section(hed_schema)
+ self.root_tags = {tag.short_tag_name:tag for tag in self.all_entries if not tag._parent_tag}
diff --git a/hed/schema/schema_attribute_validators.py b/hed/schema/schema_attribute_validators.py
index 2fa23d1db..d1d7f5ecb 100644
--- a/hed/schema/schema_attribute_validators.py
+++ b/hed/schema/schema_attribute_validators.py
@@ -9,9 +9,11 @@
bool
"""
-from hed.errors.error_types import SchemaWarnings, ValidationErrors
+from hed.errors.error_types import SchemaWarnings, ValidationErrors, SchemaAttributeErrors
from hed.errors.error_reporter import ErrorHandler
from hed.schema.hed_schema import HedSchema
+from hed.schema.hed_cache import get_hed_versions
+from hed.schema.hed_schema_constants import HedKey
def tag_is_placeholder_check(hed_schema, tag_entry, attribute_name):
@@ -28,12 +30,13 @@ def tag_is_placeholder_check(hed_schema, tag_entry, attribute_name):
"""
issues = []
if not tag_entry.name.endswith("/#"):
- issues += ErrorHandler.format_error(SchemaWarnings.NON_PLACEHOLDER_HAS_CLASS, tag_entry.name,
+ issues += ErrorHandler.format_error(SchemaWarnings.SCHEMA_NON_PLACEHOLDER_HAS_CLASS, tag_entry.name,
attribute_name)
return issues
+# todo: This needs to be refactored, these next several functions are near identical
def tag_exists_check(hed_schema, tag_entry, attribute_name):
""" Check if the list of possible tags exists in the schema.
@@ -50,15 +53,56 @@ def tag_exists_check(hed_schema, tag_entry, attribute_name):
possible_tags = tag_entry.attributes.get(attribute_name, "")
split_tags = possible_tags.split(",")
for org_tag in split_tags:
- if org_tag and org_tag not in hed_schema.all_tags:
- issues += ErrorHandler.format_error(ValidationErrors.NO_VALID_TAG_FOUND,
+ if org_tag and org_tag not in hed_schema.tags:
+ issues += ErrorHandler.format_error(SchemaAttributeErrors.SCHEMA_SUGGESTED_TAG_INVALID,
+ tag_entry.name,
org_tag,
- index_in_tag=0,
- index_in_tag_end=len(org_tag))
+ attribute_name)
return issues
+def unit_class_exists(hed_schema, tag_entry, attribute_name):
+ issues = []
+ possible_unit_classes = tag_entry.attributes.get(attribute_name, "")
+ split_tags = possible_unit_classes.split(",")
+ for org_tag in split_tags:
+ if org_tag and org_tag not in hed_schema.unit_classes:
+ issues += ErrorHandler.format_error(SchemaAttributeErrors.SCHEMA_UNIT_CLASS_INVALID,
+ tag_entry.name,
+ org_tag,
+ attribute_name)
+
+ return issues
+
+
+def value_class_exists(hed_schema, tag_entry, attribute_name):
+ issues = []
+ possible_value_classes = tag_entry.attributes.get(attribute_name, "")
+ split_tags = possible_value_classes.split(",")
+ for org_tag in split_tags:
+ if org_tag and org_tag not in hed_schema.value_classes:
+ issues += ErrorHandler.format_error(SchemaAttributeErrors.SCHEMA_VALUE_CLASS_INVALID,
+ tag_entry.name,
+ org_tag,
+ attribute_name)
+
+ return issues
+
+
+def unit_exists(hed_schema, tag_entry, attribute_name):
+ issues = []
+ default_unit = tag_entry.attributes.get(attribute_name, "")
+ if default_unit and default_unit not in tag_entry.derivative_units:
+ issues += ErrorHandler.format_error(SchemaAttributeErrors.SCHEMA_DEFAULT_UNITS_INVALID,
+ tag_entry.name,
+ default_unit,
+ tag_entry.units)
+
+ return issues
+
+
+# This is effectively unused and can never fail - The schema would catch these errors and refuse to load
def tag_exists_base_schema_check(hed_schema, tag_entry, attribute_name):
""" Check if the single tag is a partnered schema tag
@@ -72,10 +116,38 @@ def tag_exists_base_schema_check(hed_schema, tag_entry, attribute_name):
"""
issues = []
rooted_tag = tag_entry.attributes.get(attribute_name, "")
- if rooted_tag and rooted_tag not in hed_schema.all_tags:
+ if rooted_tag and rooted_tag not in hed_schema.tags:
issues += ErrorHandler.format_error(ValidationErrors.NO_VALID_TAG_FOUND,
rooted_tag,
index_in_tag=0,
index_in_tag_end=len(rooted_tag))
+ return issues
+
+
+def tag_is_deprecated_check(hed_schema, tag_entry, attribute_name):
+ """ Check if the tag has a valid deprecatedFrom attribute, and that any children have it
+
+ Parameters:
+ hed_schema (HedSchema): The schema to use for validation
+ tag_entry (HedSchemaEntry): The schema entry for this tag.
+ attribute_name (str): The name of this attribute
+
+ Returns:
+ list: A list of issues. Each issue is a dictionary.
+ """
+ issues = []
+ deprecated_version = tag_entry.attributes.get(attribute_name, "")
+ library_name = tag_entry.has_attribute(HedKey.InLibrary, return_value=True)
+ all_versions = get_hed_versions(library_name=library_name)
+ if deprecated_version and deprecated_version not in all_versions:
+ issues += ErrorHandler.format_error(SchemaAttributeErrors.SCHEMA_DEPRECATED_INVALID,
+ tag_entry.name,
+ deprecated_version)
+
+ for child in tag_entry.children.values():
+ if not child.has_attribute(attribute_name):
+ issues += ErrorHandler.format_error(SchemaAttributeErrors.SCHEMA_CHILD_OF_DEPRECATED,
+ tag_entry.name,
+ child.name)
return issues
\ No newline at end of file
diff --git a/hed/schema/schema_compare.py b/hed/schema/schema_compare.py
new file mode 100644
index 000000000..1cd974c04
--- /dev/null
+++ b/hed/schema/schema_compare.py
@@ -0,0 +1,427 @@
+from hed.schema.hed_schema import HedSchema, HedKey
+from hed.schema.hed_schema_constants import HedSectionKey
+
+# This is still in design, means header attributes, epilogue, and prologue
+MiscSection = "misc"
+
+SectionEntryNames = {
+ HedSectionKey.Tags: "Tag",
+ HedSectionKey.Units: "Unit",
+ HedSectionKey.UnitClasses: "Unit Class",
+ HedSectionKey.ValueClasses: "Value Class",
+ HedSectionKey.UnitModifiers: "Unit Modifier",
+ HedSectionKey.Properties: "Property",
+ HedSectionKey.Attributes: "Attribute",
+}
+
+SectionEntryNamesPlural = {
+ HedSectionKey.Tags: "Tags",
+ HedSectionKey.Units: "Units",
+ HedSectionKey.UnitClasses: "Unit Classes",
+ HedSectionKey.ValueClasses: "Value Classes",
+ HedSectionKey.UnitModifiers: "Unit Modifiers",
+ HedSectionKey.Properties: "Properties",
+ HedSectionKey.Attributes: "Attributes",
+}
+
+
+def find_matching_tags(schema1, schema2, output='raw', sections=(HedSectionKey.Tags,),
+ include_summary=True):
+ """
+ Compare the tags in two library schemas. This finds tags with the same term.
+
+ Parameters:
+ schema1 (HedSchema): The first schema to be compared.
+ schema2 (HedSchema): The second schema to be compared.
+ output (str): Defaults to returning a python object dicts.
+ 'string' returns a single string
+ 'dict' returns a json style dictionary
+ sections(list): the list of sections to compare. By default, just the tags section.
+ If None, checks all sections including header, prologue, and epilogue.
+ include_summary(bool): If True, adds the 'summary' dict to the dict return option, and prints it with the
+ string option. Lists the names of all the nodes that are missing or different.
+ Returns:
+ dict, json style dict, or str: A dictionary containing matching entries in the Tags section of both schemas.
+ """
+ matches, _, _, unequal_entries = compare_schemas(schema1, schema2, sections=sections)
+
+ for section_key, section_dict in matches.items():
+ section_dict.update(unequal_entries[section_key])
+
+ header_summary = _get_tag_name_summary((matches, unequal_entries))
+
+ if output == 'string':
+ final_string = ""
+ if include_summary:
+ final_string += _pretty_print_header(header_summary)
+ if sections is None:
+ sections = HedSectionKey
+ for section_key in sections:
+ type_name = SectionEntryNames[section_key]
+ entries = matches[section_key]
+ if not entries:
+ continue
+ final_string += f"{type_name} differences:\n"
+ final_string += _pretty_print_diff_all(entries, type_name=type_name) + "\n"
+ return final_string
+ elif output == 'dict':
+ output_dict = {}
+ if include_summary:
+ output_dict["summary"] = {str(key): value for key, value in header_summary.items()}
+
+ for section_name, section_entries in matches.items():
+ output_dict[str(section_name)] = {}
+ for key, (entry1, entry2) in section_entries.items():
+ output_dict[str(section_name)][key] = _dict_diff_entries(entry1, entry2)
+ return output_dict
+ return matches
+
+
+def compare_differences(schema1, schema2, output='raw', attribute_filter=None, sections=(HedSectionKey.Tags,),
+ include_summary=True):
+ """
+ Compare the tags in two schemas, this finds any differences
+
+ Parameters:
+ schema1 (HedSchema): The first schema to be compared.
+ schema2 (HedSchema): The second schema to be compared.
+ output (str): 'raw' (default) returns a tuple of python object dicts with raw results.
+ 'string' returns a single string
+ 'dict' returns a json-style python dictionary that can be converted to JSON
+ attribute_filter (str, optional): The attribute to filter entries by.
+ Entries without this attribute are skipped.
+ The most common use would be HedKey.InLibrary
+ If it evaluates to False, no filtering is performed.
+ sections(list or None): the list of sections to compare. By default, just the tags section.
+ If None, checks all sections including header, prologue, and epilogue.
+ include_summary(bool): If True, adds the 'summary' dict to the dict return option, and prints it with the
+ string option. Lists the names of all the nodes that are missing or different.
+
+ Returns:
+ tuple, str or dict:
+ - Tuple with dict entries (not_in_schema1, not_in_schema1, unequal_entries).
+ - Formatted string with the output ready for printing.
+ - A Python dictionary with the output ready to be converted to JSON (for web output).
+
+ Notes: The underlying dictionaries are:
+ - not_in_schema1(dict): Entries present in schema2 but not in schema1.
+ - not_in_schema2(dict): Entries present in schema1 but not in schema2.
+ - unequal_entries(dict): Entries that differ between the two schemas.
+
+ """
+ _, not_in_1, not_in_2, unequal_entries = compare_schemas(schema1, schema2, attribute_filter=attribute_filter,
+ sections=sections)
+
+ if sections is None:
+ sections = HedSectionKey
+
+ header_summary = _get_tag_name_summary((not_in_1, not_in_2, unequal_entries))
+ if output == 'string':
+ final_string = ""
+ if include_summary:
+ final_string += _pretty_print_header(header_summary)
+ if not final_string:
+ return final_string
+ final_string = ("Overall summary:\n================\n" + final_string + \
+ "\n\n\nSummary details:\n================\n\n")
+ for section_key in sections:
+ val1, val2, val3 = unequal_entries[section_key], not_in_1[section_key], not_in_2[section_key]
+ type_name = SectionEntryNames[section_key]
+ if val1 or val2 or val3:
+ final_string += f"{type_name} differences:\n"
+ if val1:
+ final_string += _pretty_print_diff_all(val1, type_name=type_name) + "\n"
+ if val2:
+ final_string += _pretty_print_missing_all(val2, "Schema1", type_name) + "\n"
+ if val3:
+ final_string += _pretty_print_missing_all(val3, "Schema2", type_name) + "\n"
+ final_string += "\n\n"
+ return final_string
+ elif output == 'dict':
+ # todo: clean this part up
+ output_dict = {}
+ current_section = {}
+ if include_summary:
+ output_dict["summary"] = {str(key): value for key, value in header_summary.items()}
+
+ output_dict["unequal"] = current_section
+ for section_name, section_entries in unequal_entries.items():
+ current_section[str(section_name)] = {}
+ for key, (entry1, entry2) in section_entries.items():
+ current_section[str(section_name)][key] = _dict_diff_entries(entry1, entry2)
+
+ current_section = {}
+ output_dict["not_in_1"] = current_section
+ for section_name, section_entries in not_in_1.items():
+ current_section[str(section_name)] = {}
+ for key, entry in section_entries.items():
+ current_section[str(section_name)][key] = _entry_to_dict(entry)
+
+ current_section = {}
+ output_dict["not_in_2"] = current_section
+ for section_name, section_entries in not_in_2.items():
+ current_section[str(section_name)] = {}
+ for key, entry in section_entries.items():
+ current_section[str(section_name)][key] = _entry_to_dict(entry)
+ return output_dict
+ return not_in_1, not_in_2, unequal_entries
+
+
+def compare_schemas(schema1, schema2, attribute_filter=HedKey.InLibrary, sections=(HedSectionKey.Tags,)):
+ """
+ Compare two schemas section by section.
+ The function records matching entries, entries present in one schema but not in the other, and unequal entries.
+
+ Parameters:
+ schema1 (HedSchema): The first schema to be compared.
+ schema2 (HedSchema): The second schema to be compared.
+ attribute_filter (str, optional): The attribute to filter entries by.
+ Entries without this attribute are skipped.
+ The most common use would be HedKey.InLibrary
+ If it evaluates to False, no filtering is performed.
+ sections(list): the list of sections to compare. By default, just the tags section.
+ If None, checks all sections including header, prologue, and epilogue.
+
+ Returns:
+ tuple: A tuple containing four dictionaries:
+ - matches(dict): Entries present in both schemas and are equal.
+ - not_in_schema1(dict): Entries present in schema2 but not in schema1.
+ - not_in_schema2(dict): Entries present in schema1 but not in schema2.
+ - unequal_entries(dict): Entries present in both schemas but are not equal.
+ """
+ # Result dictionaries to hold matches, keys not in schema2, keys not in schema1, and unequal entries
+ matches = {}
+ not_in_schema2 = {}
+ not_in_schema1 = {}
+ unequal_entries = {}
+
+ if sections is None or MiscSection in sections:
+ unequal_entries[MiscSection] = {}
+ if schema1.get_save_header_attributes() != schema2.get_save_header_attributes():
+ unequal_entries[MiscSection]['header_attributes'] = \
+ (str(schema1.get_save_header_attributes()), str(schema2.get_save_header_attributes()))
+ if schema1.prologue != schema2.prologue:
+ unequal_entries[MiscSection]['prologue'] = (schema1.prologue, schema2.prologue)
+ if schema1.epilogue != schema2.epilogue:
+ unequal_entries[MiscSection]['epilogue'] = (schema1.epilogue, schema2.epilogue)
+
+ # Iterate over keys in HedSectionKey
+ for section_key in HedSectionKey:
+ if sections is not None and section_key not in sections:
+ continue
+ # Dictionaries to record (short_tag_name or name): entry pairs
+ dict1 = {}
+ dict2 = {}
+
+ section1 = schema1[section_key]
+ section2 = schema2[section_key]
+
+ attribute = 'short_tag_name' if section_key == HedSectionKey.Tags else 'name'
+
+ # Get the name we're comparing things by
+ for entry in section1.all_entries:
+ if not attribute_filter or entry.has_attribute(attribute_filter):
+ dict1[getattr(entry, attribute)] = entry
+
+ for entry in section2.all_entries:
+ if not attribute_filter or entry.has_attribute(attribute_filter):
+ dict2[getattr(entry, attribute)] = entry
+
+ # Find keys present in dict1 but not in dict2, and vice versa
+ not_in_schema2[section_key] = {key: dict1[key] for key in dict1 if key not in dict2}
+ not_in_schema1[section_key] = {key: dict2[key] for key in dict2 if key not in dict1}
+
+ # Find keys present in both but with unequal entries
+ unequal_entries[section_key] = {key: (dict1[key], dict2[key]) for key in dict1
+ if key in dict2 and dict1[key] != dict2[key]}
+
+ # Find matches
+ matches[section_key] = {key: (dict1[key], dict2[key]) for key in dict1
+ if key in dict2 and dict1[key] == dict2[key]}
+
+ return matches, not_in_schema1, not_in_schema2, unequal_entries
+
+
+def _get_tag_name_summary(tag_dicts):
+ out_dict = {section_key: [] for section_key in HedSectionKey}
+ for tag_dict in tag_dicts:
+ for section_key, section in tag_dict.items():
+ if section_key == MiscSection:
+ continue
+ out_dict[section_key].extend(section.keys())
+
+ return out_dict
+
+
+def _pretty_print_header(summary_dict):
+
+ output_string = ""
+ first_entry = True
+ for section_key, tag_names in summary_dict.items():
+ if not tag_names:
+ continue
+ type_name = SectionEntryNamesPlural[section_key]
+ if not first_entry:
+ output_string += "\n"
+ output_string += f"{type_name}: "
+
+ output_string += ", ".join(sorted(tag_names))
+
+ output_string += "\n"
+ first_entry = False
+ return output_string
+
+
+def _pretty_print_entry(entry):
+ """ Returns the contents of a HedSchemaEntry object as a list of strings.
+
+ Parameters:
+ entry (HedSchemaEntry): The HedSchemaEntry object to be displayed.
+
+ Returns:
+ List of strings representing the entry.
+ """
+ # Initialize the list with the name of the entry
+ output = [f"\tName: {entry.name}"]
+
+ # Add the description to the list if it exists
+ if entry.description is not None:
+ output.append(f"\tDescription: {entry.description}")
+
+ # Iterate over all attributes and add them to the list
+ for attr_key, attr_value in entry.attributes.items():
+ output.append(f"\tAttribute: {attr_key} - Value: {attr_value}")
+
+ return output
+
+
+def _entry_to_dict(entry):
+ """
+ Returns the contents of a HedSchemaEntry object as a dictionary.
+
+ Parameters:
+ entry (HedSchemaEntry): The HedSchemaEntry object to be displayed.
+
+ Returns:
+ Dictionary representing the entry.
+ """
+ output = {
+ "Name": entry.name,
+ "Description": entry.description,
+ "Attributes": entry.attributes
+ }
+ return output
+
+
+def _dict_diff_entries(entry1, entry2):
+ """
+ Returns the differences between two HedSchemaEntry objects as a dictionary.
+
+ Parameters:
+ entry1 (HedSchemaEntry or str): The first entry.
+ entry2 (HedSchemaEntry or str): The second entry.
+
+ Returns:
+ Dictionary representing the differences.
+ """
+ diff_dict = {}
+
+ if isinstance(entry1, str):
+ # Handle special case ones like prologue
+ if entry1 != entry2:
+ diff_dict["value"] = {
+ "Schema1": entry1,
+ "Schema2": entry2
+ }
+ else:
+ if entry1.name != entry2.name:
+ diff_dict["name"] = {
+ "Schema1": entry1.name,
+ "Schema2": entry2.name
+ }
+
+ # Checking if both entries have the same description
+ if entry1.description != entry2.description:
+ diff_dict["description"] = {
+ "Schema1": entry1.description,
+ "Schema2": entry2.description
+ }
+
+ # Comparing attributes
+ for attr in set(entry1.attributes.keys()).union(entry2.attributes.keys()):
+ if entry1.attributes.get(attr) != entry2.attributes.get(attr):
+ diff_dict[attr] = {
+ "Schema1": entry1.attributes.get(attr),
+ "Schema2": entry2.attributes.get(attr)
+ }
+
+ return diff_dict
+
+
+def _pretty_print_diff_entry(entry1, entry2):
+ """
+ Returns the differences between two HedSchemaEntry objects as a list of strings.
+
+ Parameters:
+ entry1 (HedSchemaEntry): The first entry.
+ entry2 (HedSchemaEntry): The second entry.
+
+ Returns:
+ List of strings representing the differences.
+ """
+ diff_dict = _dict_diff_entries(entry1, entry2)
+ diff_lines = []
+
+ for key, value in diff_dict.items():
+ diff_lines.append(f"\t{key}:")
+ for schema, val in value.items():
+ diff_lines.append(f"\t\t{schema}: {val}")
+
+ return diff_lines
+
+
+def _pretty_print_diff_all(entries, type_name=""):
+ """
+ Formats the differences between pairs of HedSchemaEntry objects.
+
+ Parameters:
+ entries (dict): A dictionary where each key maps to a pair of HedSchemaEntry objects.
+ type_name(str): The type to identify this as, such as Tag
+ Returns:
+ diff_string(str): The differences found in the dict
+ """
+ output = []
+ if not type_name.endswith(" "):
+ type_name += " "
+ if not entries:
+ return ""
+ for key, (entry1, entry2) in entries.items():
+ output.append(f"{type_name}'{key}':")
+ output += _pretty_print_diff_entry(entry1, entry2)
+ output.append("")
+
+ return "\n".join(output)
+
+
+def _pretty_print_missing_all(entries, schema_name, type_name):
+ """
+ Formats the missing entries from schema_name.
+
+ Parameters:
+ entries (dict): A dictionary where each key maps to a pair of HedSchemaEntry objects.
+ schema_name(str): The name these entries are missing from
+ type_name(str): The type to identify this as, such as Tag
+ Returns:
+ diff_string(str): The differences found in the dict
+ """
+ output = []
+ if not entries:
+ return ""
+ if not type_name.endswith(" "):
+ type_name += " "
+ for key, entry in entries.items():
+ output.append(f"{type_name}'{key}' not in '{schema_name}':")
+ output += _pretty_print_entry(entry)
+ output.append("")
+
+ return "\n".join(output)
diff --git a/hed/schema/schema_compliance.py b/hed/schema/schema_compliance.py
index 20db73376..c75c11de3 100644
--- a/hed/schema/schema_compliance.py
+++ b/hed/schema/schema_compliance.py
@@ -1,6 +1,6 @@
""" Utilities for HED schema checking. """
-from hed.errors.error_types import ErrorContext, SchemaErrors, ErrorSeverity
+from hed.errors.error_types import ErrorContext, SchemaErrors, ErrorSeverity, SchemaAttributeErrors, SchemaWarnings
from hed.errors.error_reporter import ErrorHandler
from hed.schema.hed_schema import HedSchema, HedKey
from hed.schema import schema_attribute_validators
@@ -45,12 +45,29 @@ def check_compliance(hed_schema, check_for_warnings=True, name=None, error_handl
class SchemaValidator:
"""Validator class to wrap some code. In general, just call check_compliance."""
attribute_validators = {
- HedKey.SuggestedTag: schema_attribute_validators.tag_exists_check,
- HedKey.RelatedTag: schema_attribute_validators.tag_exists_check,
- HedKey.UnitClass: schema_attribute_validators.tag_is_placeholder_check,
- HedKey.ValueClass: schema_attribute_validators.tag_is_placeholder_check,
- HedKey.Rooted: schema_attribute_validators.tag_exists_base_schema_check,
+ HedKey.SuggestedTag: [(schema_attribute_validators.tag_exists_check,
+ SchemaAttributeErrors.SCHEMA_SUGGESTED_TAG_INVALID)],
+ HedKey.RelatedTag: [(schema_attribute_validators.tag_exists_check,
+ SchemaAttributeErrors.SCHEMA_RELATED_TAG_INVALID)],
+ HedKey.UnitClass: [(schema_attribute_validators.tag_is_placeholder_check,
+ SchemaWarnings.SCHEMA_NON_PLACEHOLDER_HAS_CLASS),
+ (schema_attribute_validators.unit_class_exists,
+ SchemaAttributeErrors.SCHEMA_UNIT_CLASS_INVALID)],
+ HedKey.ValueClass: [(schema_attribute_validators.tag_is_placeholder_check,
+ SchemaWarnings.SCHEMA_NON_PLACEHOLDER_HAS_CLASS),
+ (schema_attribute_validators.value_class_exists,
+ SchemaAttributeErrors.SCHEMA_VALUE_CLASS_INVALID)],
+ # Rooted tag is implicitly verified on loading
+ # HedKey.Rooted: [(schema_attribute_validators.tag_exists_base_schema_check,
+ # SchemaAttributeErrors.SCHEMA_ROOTED_TAG_INVALID)],
+ HedKey.DeprecatedFrom: [(schema_attribute_validators.tag_is_deprecated_check,
+ SchemaAttributeErrors.SCHEMA_DEPRECATED_INVALID)],
+ HedKey.TakesValue: [(schema_attribute_validators.tag_is_placeholder_check,
+ SchemaWarnings.SCHEMA_NON_PLACEHOLDER_HAS_CLASS)],
+ HedKey.DefaultUnits: [(schema_attribute_validators.unit_exists,
+ SchemaAttributeErrors.SCHEMA_DEFAULT_UNITS_INVALID)]
}
+
def __init__(self, hed_schema, check_for_warnings=True, error_handler=None):
self.hed_schema = hed_schema
self._check_for_warnings = check_for_warnings
@@ -76,14 +93,16 @@ def check_attributes(self):
for tag_entry in self.hed_schema[section_key].values():
self.error_handler.push_error_context(ErrorContext.SCHEMA_TAG, tag_entry.name)
for attribute_name in tag_entry.attributes:
- validator = self.attribute_validators.get(attribute_name)
- if validator:
- self.error_handler.push_error_context(ErrorContext.SCHEMA_ATTRIBUTE, attribute_name)
- new_issues = validator(self.hed_schema, tag_entry, attribute_name)
- for issue in new_issues:
- issue['severity'] = ErrorSeverity.WARNING
- self.error_handler.add_context_and_filter(new_issues)
- issues_list += new_issues
+ validators = self.attribute_validators.get(attribute_name, None)
+ if validators:
+ for validator, error_code in validators:
+ self.error_handler.push_error_context(ErrorContext.SCHEMA_ATTRIBUTE, attribute_name)
+ new_issues = validator(self.hed_schema, tag_entry, attribute_name)
+ for issue in new_issues:
+ issue['code'] = error_code
+ issue['severity'] = ErrorSeverity.WARNING
+ self.error_handler.add_context_and_filter(new_issues)
+ issues_list += new_issues
self.error_handler.pop_error_context()
self.error_handler.pop_error_context()
self.error_handler.pop_error_context()
@@ -95,11 +114,12 @@ def check_duplicate_names(self):
for section_key in self.hed_schema._sections:
for name, duplicate_entries in self.hed_schema[section_key].duplicate_names.items():
values = set(entry.has_attribute(HedKey.InLibrary) for entry in duplicate_entries)
- error_code = SchemaErrors.HED_SCHEMA_DUPLICATE_NODE
+ error_code = SchemaErrors.SCHEMA_DUPLICATE_NODE
if len(values) == 2:
- error_code = SchemaErrors.HED_SCHEMA_DUPLICATE_FROM_LIBRARY
+ error_code = SchemaErrors.SCHEMA_DUPLICATE_FROM_LIBRARY
issues_list += self.error_handler.format_error_with_context(error_code, name,
- duplicate_tag_list=[entry.name for entry in duplicate_entries],
+ duplicate_tag_list=[entry.name for entry in
+ duplicate_entries],
section=section_key)
return issues_list
diff --git a/hed/schema/schema_data/HED_score_1.1.0.xml b/hed/schema/schema_data/HED_score_1.1.0.xml
new file mode 100644
index 000000000..52731f8ee
--- /dev/null
+++ b/hed/schema/schema_data/HED_score_1.1.0.xml
@@ -0,0 +1,17516 @@
+
+
+ This schema is a Hierarchical Event Descriptors (HED) Library Schema implementation of Standardized Computer-based Organized Reporting of EEG (SCORE)[1,2] for describing events occurring during neuroimaging time series recordings.
+The HED-SCORE library schema allows neurologists, neurophysiologists, and brain researchers to annotate electrophysiology recordings using terms from an internationally accepted set of defined terms (SCORE) compatible with the HED framework.
+The resulting annotations are understandable to clinicians and directly usable in computer analysis.
+
+Future extensions may be implemented in the HED-SCORE library schema.
+For more information see https://hed-schema-library.readthedocs.io/en/latest/index.html.
+
+
+ Event
+ Something that happens at a given time and (typically) place. Elements of this tag subtree designate the general category in which an event falls.
+
+ suggestedTag
+ Task-property
+
+
+ Sensory-event
+ Something perceivable by the participant. An event meant to be an experimental stimulus should include the tag Task-property/Task-event-role/Experimental-stimulus.
+
+ suggestedTag
+ Task-event-role
+ Sensory-presentation
+
+
+
+ Agent-action
+ Any action engaged in by an agent (see the Agent subtree for agent categories). A participant response to an experiment stimulus should include the tag Agent-property/Agent-task-role/Experiment-participant.
+
+ suggestedTag
+ Task-event-role
+ Agent
+
+
+
+ Data-feature
+ An event marking the occurrence of a data feature such as an interictal spike or alpha burst that is often added post hoc to the data record.
+
+ suggestedTag
+ Data-property
+
+
+
+ Experiment-control
+ An event pertaining to the physical control of the experiment during its operation.
+
+
+ Experiment-procedure
+ An event indicating an experimental procedure, as in performing a saliva swab during the experiment or administering a survey.
+
+
+ Experiment-structure
+ An event specifying a change-point of the structure of experiment. This event is typically used to indicate a change in experimental conditions or tasks.
+
+
+ Measurement-event
+ A discrete measure returned by an instrument.
+
+ suggestedTag
+ Data-property
+
+
+
+
+ Agent
+ Someone or something that takes an active role or produces a specified effect.The role or effect may be implicit. Being alive or performing an activity such as a computation may qualify something to be an agent. An agent may also be something that simulates something else.
+
+ suggestedTag
+ Agent-property
+
+
+ Animal-agent
+ An agent that is an animal.
+
+
+ Avatar-agent
+ An agent associated with an icon or avatar representing another agent.
+
+
+ Controller-agent
+ An agent experiment control software or hardware.
+
+
+ Human-agent
+ A person who takes an active role or produces a specified effect.
+
+
+ Robotic-agent
+ An agent mechanical device capable of performing a variety of often complex tasks on command or by being programmed in advance.
+
+
+ Software-agent
+ An agent computer program.
+
+
+
+ Modulator
+ External stimuli / interventions or changes in the alertness level (sleep) that modify: the background activity, or how often a graphoelement is occurring, or change other features of the graphoelement (like intra-burst frequency). For each observed finding, there is an option of specifying how they are influenced by the modulators and procedures that were done during the recording.
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Sleep-modulator
+
+ inLibrary
+ score
+
+
+ Sleep-deprivation
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Sleep-following-sleep-deprivation
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Natural-sleep
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Induced-sleep
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Drowsiness
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Awakening
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Medication-modulator
+
+ inLibrary
+ score
+
+
+ Medication-administered-during-recording
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Medication-withdrawal-or-reduction-during-recording
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Eye-modulator
+
+ inLibrary
+ score
+
+
+ Manual-eye-closure
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Manual-eye-opening
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Stimulation-modulator
+
+ inLibrary
+ score
+
+
+ Intermittent-photic-stimulation
+
+ requireChild
+
+
+ suggestedTag
+ Intermittent-photic-stimulation-effect
+
+
+ inLibrary
+ score
+
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ frequencyUnits
+
+
+ inLibrary
+ score
+
+
+
+
+ Auditory-stimulation
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Nociceptive-stimulation
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Hyperventilation
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Physical-effort
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Cognitive-task
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Other-modulator-or-procedure
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Background-activity
+ An EEG activity representing the setting in which a given normal or abnormal pattern appears and from which such pattern is distinguished.
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Posterior-dominant-rhythm
+ Rhythmic activity occurring during wakefulness over the posterior regions of the head, generally with maximum amplitudes over the occipital areas. Amplitude varies. Best seen with eyes closed and during physical relaxation and relative mental inactivity. Blocked or attenuated by attention, especially visual, and mental effort. In adults this is the alpha rhythm, and the frequency is 8 to 13 Hz. However the frequency can be higher or lower than this range (often a supra or sub harmonic of alpha frequency) and is called alpha variant rhythm (fast and slow alpha variant rhythm). In children, the normal range of the frequency of the posterior dominant rhythm is age-dependant.
+
+ suggestedTag
+ Finding-significance-to-recording
+ Finding-frequency
+ Finding-amplitude-asymmetry
+ Posterior-dominant-rhythm-property
+
+
+ inLibrary
+ score
+
+
+
+ Mu-rhythm
+ EEG rhythm at 7-11 Hz composed of arch-shaped waves occurring over the central or centro-parietal regions of the scalp during wakefulness. Amplitudes varies but is mostly below 50 microV. Blocked or attenuated most clearly by contralateral movement, thought of movement, readiness to move or tactile stimulation.
+
+ suggestedTag
+ Finding-frequency
+ Finding-significance-to-recording
+ Brain-laterality
+ Brain-region
+ Sensors
+
+
+ inLibrary
+ score
+
+
+
+ Other-organized-rhythm
+ EEG activity that consisting of waves of approximately constant period, which is considered as part of the background (ongoing) activity, but does not fulfill the criteria of the posterior dominant rhythm.
+
+ requireChild
+
+
+ suggestedTag
+ Rhythmic-activity-morphology
+ Finding-significance-to-recording
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Background-activity-special-feature
+ Special Features. Special features contains scoring options for the background activity of critically ill patients.
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Continuous-background-activity
+
+ suggestedTag
+ Rhythmic-activity-morphology
+ Brain-laterality
+ Brain-region
+ Sensors
+ Finding-extent
+
+
+ inLibrary
+ score
+
+
+
+ Nearly-continuous-background-activity
+
+ suggestedTag
+ Rhythmic-activity-morphology
+ Brain-laterality
+ Brain-region
+ Sensors
+ Finding-extent
+
+
+ inLibrary
+ score
+
+
+
+ Discontinuous-background-activity
+
+ suggestedTag
+ Rhythmic-activity-morphology
+ Brain-laterality
+ Brain-region
+ Sensors
+ Finding-extent
+
+
+ inLibrary
+ score
+
+
+
+ Background-burst-suppression
+ EEG pattern consisting of bursts (activity appearing and disappearing abruptly) interrupted by periods of low amplitude (below 20 microV) and which occurs simultaneously over all head regions.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Finding-extent
+
+
+ inLibrary
+ score
+
+
+
+ Background-burst-attenuation
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Finding-extent
+
+
+ inLibrary
+ score
+
+
+
+ Background-activity-suppression
+ Periods showing activity under 10 microV (referential montage) and interrupting the background (ongoing) activity.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Finding-extent
+ Appearance-mode
+
+
+ inLibrary
+ score
+
+
+
+ Electrocerebral-inactivity
+ Absence of any ongoing cortical electric activities; in all leads EEG is isoelectric or only contains artifacts. Sensitivity has to be increased up to 2 microV/mm; recording time: at least 30 minutes.
+
+ inLibrary
+ score
+
+
+
+
+
+ Action
+ Do something.
+
+ extensionAllowed
+
+
+ Communicate
+ Convey knowledge of or information about something.
+
+ Communicate-gesturally
+ Communicate nonverbally using visible bodily actions, either in place of speech or together and in parallel with spoken words. Gestures include movement of the hands, face, or other parts of the body.
+
+ relatedTag
+ Move-face
+ Move-upper-extremity
+
+
+ Clap-hands
+ Strike the palms of against one another resoundingly, and usually repeatedly, especially to express approval.
+
+
+ Clear-throat
+ Cough slightly so as to speak more clearly, attract attention, or to express hesitancy before saying something awkward.
+
+ relatedTag
+ Move-face
+ Move-head
+
+
+
+ Frown
+ Express disapproval, displeasure, or concentration, typically by turning down the corners of the mouth.
+
+ relatedTag
+ Move-face
+
+
+
+ Grimace
+ Make a twisted expression, typically expressing disgust, pain, or wry amusement.
+
+ relatedTag
+ Move-face
+
+
+
+ Nod-head
+ Tilt head in alternating up and down arcs along the sagittal plane. It is most commonly, but not universally, used to indicate agreement, acceptance, or acknowledgement.
+
+ relatedTag
+ Move-head
+
+
+
+ Pump-fist
+ Raise with fist clenched in triumph or affirmation.
+
+ relatedTag
+ Move-upper-extremity
+
+
+
+ Raise-eyebrows
+ Move eyebrows upward.
+
+ relatedTag
+ Move-face
+ Move-eyes
+
+
+
+ Shake-fist
+ Clench hand into a fist and shake to demonstrate anger.
+
+ relatedTag
+ Move-upper-extremity
+
+
+
+ Shake-head
+ Turn head from side to side as a way of showing disagreement or refusal.
+
+ relatedTag
+ Move-head
+
+
+
+ Shhh
+ Place finger over lips and possibly uttering the syllable shhh to indicate the need to be quiet.
+
+ relatedTag
+ Move-upper-extremity
+
+
+
+ Shrug
+ Lift shoulders up towards head to indicate a lack of knowledge about a particular topic.
+
+ relatedTag
+ Move-upper-extremity
+ Move-torso
+
+
+
+ Smile
+ Form facial features into a pleased, kind, or amused expression, typically with the corners of the mouth turned up and the front teeth exposed.
+
+ relatedTag
+ Move-face
+
+
+
+ Spread-hands
+ Spread hands apart to indicate ignorance.
+
+ relatedTag
+ Move-upper-extremity
+
+
+
+ Thumb-up
+ Extend the thumb upward to indicate approval.
+
+ relatedTag
+ Move-upper-extremity
+
+
+
+ Thumbs-down
+ Extend the thumb downward to indicate disapproval.
+
+ relatedTag
+ Move-upper-extremity
+
+
+
+ Wave
+ Raise hand and move left and right, as a greeting or sign of departure.
+
+ relatedTag
+ Move-upper-extremity
+
+
+
+ Widen-eyes
+ Open eyes and possibly with eyebrows lifted especially to express surprise or fear.
+
+ relatedTag
+ Move-face
+ Move-eyes
+
+
+
+ Wink
+ Close and open one eye quickly, typically to indicate that something is a joke or a secret or as a signal of affection or greeting.
+
+ relatedTag
+ Move-face
+ Move-eyes
+
+
+
+
+ Communicate-musically
+ Communicate using music.
+
+ Hum
+ Make a low, steady continuous sound like that of a bee. Sing with the lips closed and without uttering speech.
+
+
+ Play-instrument
+ Make musical sounds using an instrument.
+
+
+ Sing
+ Produce musical tones by means of the voice.
+
+
+ Vocalize
+ Utter vocal sounds.
+
+
+ Whistle
+ Produce a shrill clear sound by forcing breath out or air in through the puckered lips.
+
+
+
+ Communicate-vocally
+ Communicate using mouth or vocal cords.
+
+ Cry
+ Shed tears associated with emotions, usually sadness but also joy or frustration.
+
+
+ Groan
+ Make a deep inarticulate sound in response to pain or despair.
+
+
+ Laugh
+ Make the spontaneous sounds and movements of the face and body that are the instinctive expressions of lively amusement and sometimes also of contempt or derision.
+
+
+ Scream
+ Make loud, vociferous cries or yells to express pain, excitement, or fear.
+
+
+ Shout
+ Say something very loudly.
+
+
+ Sigh
+ Emit a long, deep, audible breath expressing sadness, relief, tiredness, or a similar feeling.
+
+
+ Speak
+ Communicate using spoken language.
+
+
+ Whisper
+ Speak very softly using breath without vocal cords.
+
+
+
+
+ Move
+ Move in a specified direction or manner. Change position or posture.
+
+ Breathe
+ Inhale or exhale during respiration.
+
+ Blow
+ Expel air through pursed lips.
+
+
+ Cough
+ Suddenly and audibly expel air from the lungs through a partially closed glottis, preceded by inhalation.
+
+
+ Exhale
+ Blow out or expel breath.
+
+
+ Hiccup
+ Involuntarily spasm the diaphragm and respiratory organs, with a sudden closure of the glottis and a characteristic sound like that of a cough.
+
+
+ Hold-breath
+ Interrupt normal breathing by ceasing to inhale or exhale.
+
+
+ Inhale
+ Draw in with the breath through the nose or mouth.
+
+
+ Sneeze
+ Suddenly and violently expel breath through the nose and mouth.
+
+
+ Sniff
+ Draw in air audibly through the nose to detect a smell, to stop it from running, or to express contempt.
+
+
+
+ Move-body
+ Move entire body.
+
+ Bend
+ Move body in a bowed or curved manner.
+
+
+ Dance
+ Perform a purposefully selected sequences of human movement often with aesthetic or symbolic value. Move rhythmically to music, typically following a set sequence of steps.
+
+
+ Fall-down
+ Lose balance and collapse.
+
+
+ Flex
+ Cause a muscle to stand out by contracting or tensing it. Bend a limb or joint.
+
+
+ Jerk
+ Make a quick, sharp, sudden movement.
+
+
+ Lie-down
+ Move to a horizontal or resting position.
+
+
+ Recover-balance
+ Return to a stable, upright body position.
+
+
+ Shudder
+ Tremble convulsively, sometimes as a result of fear or revulsion.
+
+
+ Sit-down
+ Move from a standing to a sitting position.
+
+
+ Sit-up
+ Move from lying down to a sitting position.
+
+
+ Stand-up
+ Move from a sitting to a standing position.
+
+
+ Stretch
+ Straighten or extend body or a part of body to its full length, typically so as to tighten muscles or in order to reach something.
+
+
+ Stumble
+ Trip or momentarily lose balance and almost fall.
+
+
+ Turn
+ Change or cause to change direction.
+
+
+
+ Move-body-part
+ Move one part of a body.
+
+ Move-eyes
+ Move eyes.
+
+ Blink
+ Shut and open the eyes quickly.
+
+
+ Close-eyes
+ Lower and keep eyelids in a closed position.
+
+
+ Fixate
+ Direct eyes to a specific point or target.
+
+
+ Inhibit-blinks
+ Purposely prevent blinking.
+
+
+ Open-eyes
+ Raise eyelids to expose pupil.
+
+
+ Saccade
+ Move eyes rapidly between fixation points.
+
+
+ Squint
+ Squeeze one or both eyes partly closed in an attempt to see more clearly or as a reaction to strong light.
+
+
+ Stare
+ Look fixedly or vacantly at someone or something with eyes wide open.
+
+
+
+ Move-face
+ Move the face or jaw.
+
+ Bite
+ Seize with teeth or jaws an object or organism so as to grip or break the surface covering.
+
+
+ Burp
+ Noisily release air from the stomach through the mouth. Belch.
+
+
+ Chew
+ Repeatedly grinding, tearing, and or crushing with teeth or jaws.
+
+
+ Gurgle
+ Make a hollow bubbling sound like that made by water running out of a bottle.
+
+
+ Swallow
+ Cause or allow something, especially food or drink to pass down the throat.
+
+ Gulp
+ Swallow quickly or in large mouthfuls, often audibly, sometimes to indicate apprehension.
+
+
+
+ Yawn
+ Take a deep involuntary inhalation with the mouth open often as a sign of drowsiness or boredom.
+
+
+
+ Move-head
+ Move head.
+
+ Lift-head
+ Tilt head back lifting chin.
+
+
+ Lower-head
+ Move head downward so that eyes are in a lower position.
+
+
+ Turn-head
+ Rotate head horizontally to look in a different direction.
+
+
+
+ Move-lower-extremity
+ Move leg and/or foot.
+
+ Curl-toes
+ Bend toes sometimes to grip.
+
+
+ Hop
+ Jump on one foot.
+
+
+ Jog
+ Run at a trot to exercise.
+
+
+ Jump
+ Move off the ground or other surface through sudden muscular effort in the legs.
+
+
+ Kick
+ Strike out or flail with the foot or feet. Strike using the leg, in unison usually with an area of the knee or lower using the foot.
+
+
+ Pedal
+ Move by working the pedals of a bicycle or other machine.
+
+
+ Press-foot
+ Move by pressing foot.
+
+
+ Run
+ Travel on foot at a fast pace.
+
+
+ Step
+ Put one leg in front of the other and shift weight onto it.
+
+ Heel-strike
+ Strike the ground with the heel during a step.
+
+
+ Toe-off
+ Push with toe as part of a stride.
+
+
+
+ Trot
+ Run at a moderate pace, typically with short steps.
+
+
+ Walk
+ Move at a regular pace by lifting and setting down each foot in turn never having both feet off the ground at once.
+
+
+
+ Move-torso
+ Move body trunk.
+
+
+ Move-upper-extremity
+ Move arm, shoulder, and/or hand.
+
+ Drop
+ Let or cause to fall vertically.
+
+
+ Grab
+ Seize suddenly or quickly. Snatch or clutch.
+
+
+ Grasp
+ Seize and hold firmly.
+
+
+ Hold-down
+ Prevent someone or something from moving by holding them firmly.
+
+
+ Lift
+ Raising something to higher position.
+
+
+ Make-fist
+ Close hand tightly with the fingers bent against the palm.
+
+
+ Point
+ Draw attention to something by extending a finger or arm.
+
+
+ Press
+ Apply pressure to something to flatten, shape, smooth or depress it. This action tag should be used to indicate key presses and mouse clicks.
+
+ relatedTag
+ Push
+
+
+
+ Push
+ Apply force in order to move something away. Use Press to indicate a key press or mouse click.
+
+ relatedTag
+ Press
+
+
+
+ Reach
+ Stretch out your arm in order to get or touch something.
+
+
+ Release
+ Make available or set free.
+
+
+ Retract
+ Draw or pull back.
+
+
+ Scratch
+ Drag claws or nails over a surface or on skin.
+
+
+ Snap-fingers
+ Make a noise by pushing second finger hard against thumb and then releasing it suddenly so that it hits the base of the thumb.
+
+
+ Touch
+ Come into or be in contact with.
+
+
+
+
+
+ Perceive
+ Produce an internal, conscious image through stimulating a sensory system.
+
+ Hear
+ Give attention to a sound.
+
+
+ See
+ Direct gaze toward someone or something or in a specified direction.
+
+
+ Sense-by-touch
+ Sense something through receptors in the skin.
+
+
+ Smell
+ Inhale in order to ascertain an odor or scent.
+
+
+ Taste
+ Sense a flavor in the mouth and throat on contact with a substance.
+
+
+
+ Perform
+ Carry out or accomplish an action, task, or function.
+
+ Close
+ Act as to blocked against entry or passage.
+
+
+ Collide-with
+ Hit with force when moving.
+
+
+ Halt
+ Bring or come to an abrupt stop.
+
+
+ Modify
+ Change something.
+
+
+ Open
+ Widen an aperture, door, or gap, especially one allowing access to something.
+
+
+ Operate
+ Control the functioning of a machine, process, or system.
+
+
+ Play
+ Engage in activity for enjoyment and recreation rather than a serious or practical purpose.
+
+
+ Read
+ Interpret something that is written or printed.
+
+
+ Repeat
+ Make do or perform again.
+
+
+ Rest
+ Be inactive in order to regain strength, health, or energy.
+
+
+ Write
+ Communicate or express by means of letters or symbols written or imprinted on a surface.
+
+
+
+ Think
+ Direct the mind toward someone or something or use the mind actively to form connected ideas.
+
+ Allow
+ Allow access to something such as allowing a car to pass.
+
+
+ Attend-to
+ Focus mental experience on specific targets.
+
+
+ Count
+ Tally items either silently or aloud.
+
+
+ Deny
+ Refuse to give or grant something requested or desired by someone.
+
+
+ Detect
+ Discover or identify the presence or existence of something.
+
+
+ Discriminate
+ Recognize a distinction.
+
+
+ Encode
+ Convert information or an instruction into a particular form.
+
+
+ Evade
+ Escape or avoid, especially by cleverness or trickery.
+
+
+ Generate
+ Cause something, especially an emotion or situation to arise or come about.
+
+
+ Identify
+ Establish or indicate who or what someone or something is.
+
+
+ Imagine
+ Form a mental image or concept of something.
+
+
+ Judge
+ Evaluate evidence to make a decision or form a belief.
+
+
+ Learn
+ Adaptively change behavior as the result of experience.
+
+
+ Memorize
+ Adaptively change behavior as the result of experience.
+
+
+ Plan
+ Think about the activities required to achieve a desired goal.
+
+
+ Predict
+ Say or estimate that something will happen or will be a consequence of something without having exact informaton.
+
+
+ Recall
+ Remember information by mental effort.
+
+
+ Recognize
+ Identify someone or something from having encountered them before.
+
+
+ Respond
+ React to something such as a treatment or a stimulus.
+
+
+ Switch-attention
+ Transfer attention from one focus to another.
+
+
+ Track
+ Follow a person, animal, or object through space or time.
+
+
+
+
+ Artifact
+ When relevant for the clinical interpretation, artifacts can be scored by specifying the type and the location.
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Biological-artifact
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Eye-blink-artifact
+ Example for EEG: Fp1/Fp2 become electropositive with eye closure because the cornea is positively charged causing a negative deflection in Fp1/Fp2. If the eye blink is unilateral, consider prosthetic eye. If it is in F8 rather than Fp2 then the electrodes are plugged in wrong.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Multifocal-finding
+ Artifact-significance-to-recording
+
+
+ inLibrary
+ score
+
+
+
+ Eye-movement-horizontal-artifact
+ Example for EEG: There is an upward deflection in the Fp2-F8 derivation, when the eyes move to the right side. In this case F8 becomes more positive and therefore. When the eyes move to the left, F7 becomes more positive and there is an upward deflection in the Fp1-F7 derivation.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Multifocal-finding
+ Artifact-significance-to-recording
+
+
+ inLibrary
+ score
+
+
+
+ Eye-movement-vertical-artifact
+ Example for EEG: The EEG shows positive potentials (50-100 micro V) with bi-frontal distribution, maximum at Fp1 and Fp2, when the eyeball rotated upward. The downward rotation of the eyeball was associated with the negative deflection. The time course of the deflections was similar to the time course of the eyeball movement.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Multifocal-finding
+ Artifact-significance-to-recording
+
+
+ inLibrary
+ score
+
+
+
+ Slow-eye-movement-artifact
+ Slow, rolling eye-movements, seen during drowsiness.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Multifocal-finding
+ Artifact-significance-to-recording
+
+
+ inLibrary
+ score
+
+
+
+ Nystagmus-artifact
+
+ suggestedTag
+ Artifact-significance-to-recording
+
+
+ inLibrary
+ score
+
+
+
+ Chewing-artifact
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Multifocal-finding
+ Artifact-significance-to-recording
+
+
+ inLibrary
+ score
+
+
+
+ Sucking-artifact
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Multifocal-finding
+ Artifact-significance-to-recording
+
+
+ inLibrary
+ score
+
+
+
+ Glossokinetic-artifact
+ The tongue functions as a dipole, with the tip negative with respect to the base. The artifact produced by the tongue has a broad potential field that drops from frontal to occipital areas, although it is less steep than that produced by eye movement artifacts. The amplitude of the potentials is greater inferiorly than in parasagittal regions; the frequency is variable but usually in the delta range. Chewing and sucking can produce similar artifacts.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Multifocal-finding
+ Artifact-significance-to-recording
+
+
+ inLibrary
+ score
+
+
+
+ Rocking-patting-artifact
+ Quasi-rhythmical artifacts in recordings from infants caused by rocking/patting.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Multifocal-finding
+ Artifact-significance-to-recording
+
+
+ inLibrary
+ score
+
+
+
+ Movement-artifact
+ Example for EEG: Large amplitude artifact, with irregular morphology (usually resembling a slow-wave or a wave with complex morphology) seen in one or several channels, due to movement. If the causing movement is repetitive, the artifact might resemble a rhythmic EEG activity.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Multifocal-finding
+ Artifact-significance-to-recording
+
+
+ inLibrary
+ score
+
+
+
+ Respiration-artifact
+ Respiration can produce 2 kinds of artifacts. One type is in the form of slow and rhythmic activity, synchronous with the body movements of respiration and mechanically affecting the impedance of (usually) one electrode. The other type can be slow or sharp waves that occur synchronously with inhalation or exhalation and involve those electrodes on which the patient is lying.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Multifocal-finding
+ Artifact-significance-to-recording
+
+
+ inLibrary
+ score
+
+
+
+ Pulse-artifact
+ Example for EEG: Occurs when an EEG electrode is placed over a pulsating vessel. The pulsation can cause slow waves that may simulate EEG activity. A direct relationship exists between ECG and the pulse waves (200-300 millisecond delay after ECG equals QRS complex).
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Multifocal-finding
+ Artifact-significance-to-recording
+
+
+ inLibrary
+ score
+
+
+
+ ECG-artifact
+ Example for EEG: Far-field potential generated in the heart. The voltage and apparent surface of the artifact vary from derivation to derivation and, consequently, from montage to montage. The artifact is observed best in referential montages using earlobe electrodes A1 and A2. ECG artifact is recognized easily by its rhythmicity/regularity and coincidence with the ECG tracing.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Multifocal-finding
+ Artifact-significance-to-recording
+
+
+ inLibrary
+ score
+
+
+
+ Sweat-artifact
+ Is a low amplitude undulating waveform that is usually greater than 2 seconds and may appear to be an unstable baseline.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Multifocal-finding
+ Artifact-significance-to-recording
+
+
+ inLibrary
+ score
+
+
+
+ EMG-artifact
+ Myogenic potentials are the most common artifacts. Frontalis and temporalis muscles (ex..: clenching of jaw muscles) are common causes. Generally, the potentials generated in the muscles are of shorter duration than those generated in the brain. The frequency components are usually beyond 30-50 Hz, and the bursts are arrhythmic.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Multifocal-finding
+ Artifact-significance-to-recording
+
+
+ inLibrary
+ score
+
+
+
+
+ Non-biological-artifact
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Power-supply-artifact
+ 50-60 Hz artifact. Monomorphic waveform due to 50 or 60 Hz A/C power supply.
+
+ suggestedTag
+ Artifact-significance-to-recording
+
+
+ inLibrary
+ score
+
+
+
+ Induction-artifact
+ Artifacts (usually of high frequency) induced by nearby equipment (like in the intensive care unit).
+
+ suggestedTag
+ Artifact-significance-to-recording
+
+
+ inLibrary
+ score
+
+
+
+ Dialysis-artifact
+
+ suggestedTag
+ Artifact-significance-to-recording
+
+
+ inLibrary
+ score
+
+
+
+ Artificial-ventilation-artifact
+
+ suggestedTag
+ Artifact-significance-to-recording
+
+
+ inLibrary
+ score
+
+
+
+ Electrode-pops-artifact
+ Are brief discharges with a very steep upslope and shallow fall that occur in all leads which include that electrode.
+
+ suggestedTag
+ Artifact-significance-to-recording
+
+
+ inLibrary
+ score
+
+
+
+ Salt-bridge-artifact
+ Typically occurs in 1 channel which may appear isoelectric. Only seen in bipolar montage.
+
+ suggestedTag
+ Artifact-significance-to-recording
+
+
+ inLibrary
+ score
+
+
+
+
+ Other-artifact
+
+ requireChild
+
+
+ suggestedTag
+ Artifact-significance-to-recording
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Critically-ill-patients-patterns
+ Rhythmic or periodic patterns in critically ill patients (RPPs) are scored according to the 2012 version of the American Clinical Neurophysiology Society Standardized Critical Care EEG Terminology (Hirsch et al., 2013).
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Critically-ill-patients-periodic-discharges
+ Periodic discharges (PDs).
+
+ suggestedTag
+ Periodic-discharge-morphology
+ Brain-laterality
+ Brain-region
+ Sensors
+ Finding-frequency
+ Periodic-discharge-time-related-features
+
+
+ inLibrary
+ score
+
+
+
+ Rhythmic-delta-activity
+ RDA
+
+ suggestedTag
+ Periodic-discharge-superimposed-activity
+ Periodic-discharge-absolute-amplitude
+ Brain-laterality
+ Brain-region
+ Sensors
+ Finding-frequency
+ Periodic-discharge-time-related-features
+
+
+ inLibrary
+ score
+
+
+
+ Spike-or-sharp-and-wave
+ SW
+
+ suggestedTag
+ Periodic-discharge-sharpness
+ Number-of-periodic-discharge-phases
+ Periodic-discharge-triphasic-morphology
+ Periodic-discharge-absolute-amplitude
+ Periodic-discharge-relative-amplitude
+ Periodic-discharge-polarity
+ Brain-laterality
+ Brain-region
+ Sensors
+ Multifocal-finding
+ Finding-frequency
+ Periodic-discharge-time-related-features
+
+
+ inLibrary
+ score
+
+
+
+
+ Episode
+ Clinical episode or electrographic seizure.
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Epileptic-seizure
+ The ILAE presented a revised seizure classification that divides seizures into focal, generalized onset, or unknown onset.
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Focal-onset-epileptic-seizure
+ Focal seizures can be divided into focal aware and impaired awareness seizures, with additional motor and nonmotor classifications.
+
+ suggestedTag
+ Episode-phase
+ Automatism-motor-seizure
+ Atonic-motor-seizure
+ Clonic-motor-seizure
+ Epileptic-spasm-episode
+ Hyperkinetic-motor-seizure
+ Myoclonic-motor-seizure
+ Tonic-motor-seizure
+ Autonomic-nonmotor-seizure
+ Behavior-arrest-nonmotor-seizure
+ Cognitive-nonmotor-seizure
+ Emotional-nonmotor-seizure
+ Sensory-nonmotor-seizure
+ Seizure-dynamics
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
+
+
+ inLibrary
+ score
+
+
+ Aware-focal-onset-epileptic-seizure
+
+ suggestedTag
+ Episode-phase
+ Seizure-dynamics
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
+
+
+ inLibrary
+ score
+
+
+
+ Impaired-awareness-focal-onset-epileptic-seizure
+
+ suggestedTag
+ Episode-phase
+ Seizure-dynamics
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
+
+
+ inLibrary
+ score
+
+
+
+ Awareness-unknown-focal-onset-epileptic-seizure
+
+ suggestedTag
+ Episode-phase
+ Seizure-dynamics
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
+
+
+ inLibrary
+ score
+
+
+
+ Focal-to-bilateral-tonic-clonic-focal-onset-epileptic-seizure
+ A seizure type with focal onset, with awareness or impaired awareness, either motor or non-motor, progressing to bilateral tonic clonic activity. The prior term was seizure with partial onset with secondary generalization. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+ suggestedTag
+ Episode-phase
+ Seizure-dynamics
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
+
+
+ inLibrary
+ score
+
+
+
+
+ Generalized-onset-epileptic-seizure
+ Generalized-onset seizures are classified as motor or nonmotor (absence), without using awareness level as a classifier, as most but not all of these seizures are linked with impaired awareness.
+
+ suggestedTag
+ Episode-phase
+ Tonic-clonic-motor-seizure
+ Clonic-motor-seizure
+ Tonic-motor-seizure
+ Myoclonic-motor-seizure
+ Myoclonic-tonic-clonic-motor-seizure
+ Myoclonic-atonic-motor-seizure
+ Atonic-motor-seizure
+ Epileptic-spasm-episode
+ Typical-absence-seizure
+ Atypical-absence-seizure
+ Myoclonic-absence-seizure
+ Eyelid-myoclonia-absence-seizure
+ Seizure-dynamics
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
+
+
+ inLibrary
+ score
+
+
+
+ Unknown-onset-epileptic-seizure
+ Even if the onset of seizures is unknown, they may exhibit characteristics that fall into categories such as motor, nonmotor, tonic-clonic, epileptic spasms, or behavior arrest.
+
+ suggestedTag
+ Episode-phase
+ Tonic-clonic-motor-seizure
+ Epileptic-spasm-episode
+ Behavior-arrest-nonmotor-seizure
+ Seizure-dynamics
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
+
+
+ inLibrary
+ score
+
+
+
+ Unclassified-epileptic-seizure
+ Referring to a seizure type that cannot be described by the ILAE 2017 classification either because of inadequate information or unusual clinical features.
+
+ suggestedTag
+ Episode-phase
+ Seizure-dynamics
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
+
+
+ inLibrary
+ score
+
+
+
+
+ Subtle-seizure
+ Seizure type frequent in neonates, sometimes referred to as motor automatisms; they may include random and roving eye movements, sucking, chewing motions, tongue protrusion, rowing or swimming or boxing movements of the arms, pedaling and bicycling movements of the lower limbs; apneic seizures are relatively common. Although some subtle seizures are associated with rhythmic ictal EEG discharges, and are clearly epileptic, ictal EEG often does not show typical epileptic activity.
+
+ suggestedTag
+ Episode-phase
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
+
+
+ inLibrary
+ score
+
+
+
+ Electrographic-seizure
+ Referred usually to non convulsive status. Ictal EEG: rhythmic discharge or spike and wave pattern with definite evolution in frequency, location, or morphology lasting at least 10 s; evolution in amplitude alone did not qualify.
+
+ suggestedTag
+ Episode-phase
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
+
+
+ inLibrary
+ score
+
+
+
+ Seizure-PNES
+ Psychogenic non-epileptic seizure.
+
+ suggestedTag
+ Episode-phase
+ Finding-significance-to-recording
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
+
+
+ inLibrary
+ score
+
+
+
+ Sleep-related-episode
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Sleep-related-arousal
+ Normal.
+
+ suggestedTag
+ Episode-phase
+ Finding-significance-to-recording
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
+
+
+ inLibrary
+ score
+
+
+
+ Benign-sleep-myoclonus
+ A distinctive disorder of sleep characterized by a) neonatal onset, b) rhythmic myoclonic jerks only during sleep and c) abrupt and consistent cessation with arousal, d) absence of concomitant electrographic changes suggestive of seizures, and e) good outcome.
+
+ suggestedTag
+ Episode-phase
+ Finding-significance-to-recording
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
+
+
+ inLibrary
+ score
+
+
+
+ Confusional-awakening
+ Episode of non epileptic nature included in NREM parasomnias, characterized by sudden arousal and complex behavior but without full alertness, usually lasting a few minutes and occurring almost in all children at least occasionally. Amnesia of the episode is the rule.
+
+ suggestedTag
+ Episode-phase
+ Finding-significance-to-recording
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
+
+
+ inLibrary
+ score
+
+
+
+ Sleep-periodic-limb-movement
+ PLMS. Periodic limb movement in sleep. Episodes are characterized by brief (0.5- to 5.0-second) lower-extremity movements during sleep, which typically occur at 20- to 40-second intervals, most commonly during the first 3 hours of sleep. The affected individual is usually not aware of the movements or of the transient partial arousals.
+
+ suggestedTag
+ Episode-phase
+ Finding-significance-to-recording
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
+
+
+ inLibrary
+ score
+
+
+
+ REM-sleep-behavioral-disorder
+ REM sleep behavioral disorder. Episodes characterized by: a) presence of REM sleep without atonia (RSWA) on polysomnography (PSG); b) presence of at least 1 of the following conditions - (1) Sleep-related behaviors, by history, that have been injurious, potentially injurious, or disruptive (example: dream enactment behavior); (2) abnormal REM sleep behavior documented during PSG monitoring; (3) absence of epileptiform activity on electroencephalogram (EEG) during REM sleep (unless RBD can be clearly distinguished from any concurrent REM sleep-related seizure disorder); (4) sleep disorder not better explained by another sleep disorder, a medical or neurologic disorder, a mental disorder, medication use, or a substance use disorder.
+
+ suggestedTag
+ Episode-phase
+ Finding-significance-to-recording
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
+
+
+ inLibrary
+ score
+
+
+
+ Sleep-walking
+ Episodes characterized by ambulation during sleep; the patient is difficult to arouse during an episode, and is usually amnesic following the episode. Episodes usually occur in the first third of the night during slow wave sleep. Polysomnographic recordings demonstrate 2 abnormalities during the first sleep cycle: frequent, brief, non-behavioral EEG-defined arousals prior to the somnambulistic episode and abnormally low gamma (0.75-2.0 Hz) EEG power on spectral analysis, correlating with high-voltage (hyper-synchronic gamma) waves lasting 10 to 15 s occurring just prior to the movement. This is followed by stage I NREM sleep, and there is no evidence of complete awakening.
+
+ suggestedTag
+ Episode-phase
+ Finding-significance-to-recording
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
+
+
+ inLibrary
+ score
+
+
+
+
+ Pediatric-episode
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Hyperekplexia
+ Disorder characterized by exaggerated startle response and hypertonicity that may occur during the first year of life and in severe cases during the neonatal period. Children usually present with marked irritability and recurrent startles in response to handling and sounds. Severely affected infants can have severe jerks and stiffening, sometimes with breath-holding spells.
+
+ suggestedTag
+ Episode-phase
+ Finding-significance-to-recording
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
+
+
+ inLibrary
+ score
+
+
+
+ Jactatio-capitis-nocturna
+ Relatively common in normal children at the time of going to bed, especially during the first year of life, the rhythmic head movements persist during sleep. Usually, these phenomena disappear before 3 years of age.
+
+ suggestedTag
+ Episode-phase
+ Finding-significance-to-recording
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
+
+
+ inLibrary
+ score
+
+
+
+ Pavor-nocturnus
+ A nocturnal episode characterized by age of onset of less than five years (mean age 18 months, with peak prevalence at five to seven years), appearance of signs of panic two hours after falling asleep with crying, screams, a fearful expression, inability to recognize other people including parents (for a duration of 5-15 minutes), amnesia upon awakening. Pavor nocturnus occurs in patients almost every night for months or years (but the frequency is highly variable and may be as low as once a month) and is likely to disappear spontaneously at the age of six to eight years.
+
+ suggestedTag
+ Episode-phase
+ Finding-significance-to-recording
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
+
+
+ inLibrary
+ score
+
+
+
+ Pediatric-stereotypical-behavior-episode
+ Repetitive motor behavior in children, typically rhythmic and persistent; usually not paroxysmal and rarely suggest epilepsy. They include headbanging, head-rolling, jactatio capitis nocturna, body rocking, buccal or lingual movements, hand flapping and related mannerisms, repetitive hand-waving (to self-induce photosensitive seizures).
+
+ suggestedTag
+ Episode-phase
+ Finding-significance-to-recording
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
+
+
+ inLibrary
+ score
+
+
+
+
+ Paroxysmal-motor-event
+ Paroxysmal phenomena during neonatal or childhood periods characterized by recurrent motor or behavioral signs or symptoms that must be distinguishes from epileptic disorders.
+
+ suggestedTag
+ Episode-phase
+ Finding-significance-to-recording
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
+
+
+ inLibrary
+ score
+
+
+
+ Syncope
+ Episode with loss of consciousness and muscle tone that is abrupt in onset, of short duration and followed by rapid recovery; it occurs in response to transient impairment of cerebral perfusion. Typical prodromal symptoms often herald onset of syncope and postictal symptoms are minimal. Syncopal convulsions resulting from cerebral anoxia are common but are not a form of epilepsy, nor are there any accompanying EEG ictal discharges.
+
+ suggestedTag
+ Episode-phase
+ Finding-significance-to-recording
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
+
+
+ inLibrary
+ score
+
+
+
+ Cataplexy
+ A sudden decrement in muscle tone and loss of deep tendon reflexes, leading to muscle weakness, paralysis, or postural collapse. Cataplexy usually is precipitated by an outburst of emotional expression-notably laughter, anger, or startle. It is one of the tetrad of symptoms of narcolepsy. During cataplexy, respiration and voluntary eye movements are not compromised. Consciousness is preserved.
+
+ suggestedTag
+ Episode-phase
+ Finding-significance-to-recording
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
+
+
+ inLibrary
+ score
+
+
+
+ Other-episode
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Finding-property
+ Descriptive element similar to main HED /Property. Something that pertains to a thing. A characteristic of some entity. A quality or feature regarded as a characteristic or inherent part of someone or something. HED attributes are adjectives or adverbs.
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Signal-morphology-property
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Rhythmic-activity-morphology
+ EEG activity consisting of a sequence of waves approximately constant period.
+
+ inLibrary
+ score
+
+
+ Delta-activity-morphology
+ EEG rhythm in the delta (under 4 Hz) range that does not belong to the posterior dominant rhythm (scored under other organized rhythms).
+
+ suggestedTag
+ Finding-frequency
+ Finding-amplitude
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Theta-activity-morphology
+ EEG rhythm in the theta (4-8 Hz) range that does not belong to the posterior dominant rhythm (scored under other organized rhythm).
+
+ suggestedTag
+ Finding-frequency
+ Finding-amplitude
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Alpha-activity-morphology
+ EEG rhythm in the alpha range (8-13 Hz) which is considered part of the background (ongoing) activity but does not fulfill the criteria of the posterior dominant rhythm (alpha rhythm).
+
+ suggestedTag
+ Finding-frequency
+ Finding-amplitude
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Beta-activity-morphology
+ EEG rhythm between 14 and 40 Hz, which is considered part of the background (ongoing) activity but does not fulfill the criteria of the posterior dominant rhythm. Most characteristically: a rhythm from 14 to 40 Hz recorded over the fronto-central regions of the head during wakefulness. Amplitude of the beta rhythm varies but is mostly below 30 microV. Other beta rhythms are most prominent in other locations or are diffuse.
+
+ suggestedTag
+ Finding-frequency
+ Finding-amplitude
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Gamma-activity-morphology
+
+ suggestedTag
+ Finding-frequency
+ Finding-amplitude
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Spike-morphology
+ A transient, clearly distinguished from background activity, with pointed peak at a conventional paper speed or time scale and duration from 20 to under 70 ms, i.e. 1/50-1/15 s approximately. Main component is generally negative relative to other areas. Amplitude varies.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Spike-and-slow-wave-morphology
+ A pattern consisting of a spike followed by a slow wave.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Runs-of-rapid-spikes-morphology
+ Bursts of spike discharges at a rate from 10 to 25/sec (in most cases somewhat irregular). The bursts last more than 2 seconds (usually 2 to 10 seconds) and it is typically seen in sleep. Synonyms: rhythmic spikes, generalized paroxysmal fast activity, fast paroxysmal rhythms, grand mal discharge, fast beta activity.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Polyspikes-morphology
+ Two or more consecutive spikes.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Polyspike-and-slow-wave-morphology
+ Two or more consecutive spikes associated with one or more slow waves.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Sharp-wave-morphology
+ A transient clearly distinguished from background activity, with pointed peak at a conventional paper speed or time scale, and duration of 70-200 ms, i.e. over 1/4-1/5 s approximately. Main component is generally negative relative to other areas. Amplitude varies.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Sharp-and-slow-wave-morphology
+ A sequence of a sharp wave and a slow wave.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Slow-sharp-wave-morphology
+ A transient that bears all the characteristics of a sharp-wave, but exceeds 200 ms. Synonym: blunted sharp wave.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ High-frequency-oscillation-morphology
+ HFO.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Hypsarrhythmia-classic-morphology
+ Abnormal interictal high amplitude waves and a background of irregular spikes.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Hypsarrhythmia-modified-morphology
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Fast-spike-activity-morphology
+ A burst consisting of a sequence of spikes. Duration greater than 1 s. Frequency at least in the alpha range.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Low-voltage-fast-activity-morphology
+ Refers to the fast, and often recruiting activity which can be recorded at the onset of an ictal discharge, particularly in invasive EEG recording of a seizure.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Polysharp-waves-morphology
+ A sequence of two or more sharp-waves.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Slow-wave-large-amplitude-morphology
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Irregular-delta-or-theta-activity-morphology
+ EEG activity consisting of repetitive waves of inconsistent wave-duration but in delta and/or theta rang (greater than 125 ms).
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Electrodecremental-change-morphology
+ Sudden desynchronization of electrical activity.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ DC-shift-morphology
+ Shift of negative polarity of the direct current recordings, during seizures.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Disappearance-of-ongoing-activity-morphology
+ Disappearance of the EEG activity that preceded the ictal event but still remnants of background activity (thus not enough to name it electrodecremental change).
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Polymorphic-delta-activity-morphology
+ EEG activity consisting of waves in the delta range (over 250 ms duration for each wave) but of different morphology.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Frontal-intermittent-rhythmic-delta-activity-morphology
+ Frontal intermittent rhythmic delta activity (FIRDA). Fairly regular or approximately sinusoidal waves, mostly occurring in bursts at 1.5-2.5 Hz over the frontal areas of one or both sides of the head. Comment: most commonly associated with unspecified encephalopathy, in adults.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Occipital-intermittent-rhythmic-delta-activity-morphology
+ Occipital intermittent rhythmic delta activity (OIRDA). Fairly regular or approximately sinusoidal waves, mostly occurring in bursts at 2-3 Hz over the occipital or posterior head regions of one or both sides of the head. Frequently blocked or attenuated by opening the eyes. Comment: most commonly associated with unspecified encephalopathy, in children.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Temporal-intermittent-rhythmic-delta-activity-morphology
+ Temporal intermittent rhythmic delta activity (TIRDA). Fairly regular or approximately sinusoidal waves, mostly occurring in bursts at over the temporal areas of one side of the head. Comment: most commonly associated with temporal lobe epilepsy.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Periodic-discharge-morphology
+ Periodic discharges not further specified (PDs).
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Periodic-discharge-superimposed-activity
+
+ requireChild
+
+
+ suggestedTag
+ Property-not-possible-to-determine
+
+
+ inLibrary
+ score
+
+
+ Periodic-discharge-fast-superimposed-activity
+
+ suggestedTag
+ Finding-frequency
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Periodic-discharge-rhythmic-superimposed-activity
+
+ suggestedTag
+ Finding-frequency
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Periodic-discharge-sharpness
+
+ requireChild
+
+
+ suggestedTag
+ Property-not-possible-to-determine
+
+
+ inLibrary
+ score
+
+
+ Spiky-periodic-discharge-sharpness
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Sharp-periodic-discharge-sharpness
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Sharply-contoured-periodic-discharge-sharpness
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Blunt-periodic-discharge-sharpness
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Number-of-periodic-discharge-phases
+
+ requireChild
+
+
+ suggestedTag
+ Property-not-possible-to-determine
+
+
+ inLibrary
+ score
+
+
+ 1-periodic-discharge-phase
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ 2-periodic-discharge-phases
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ 3-periodic-discharge-phases
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Greater-than-3-periodic-discharge-phases
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Periodic-discharge-triphasic-morphology
+
+ suggestedTag
+ Property-not-possible-to-determine
+ Property-exists
+ Property-absence
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Periodic-discharge-absolute-amplitude
+
+ requireChild
+
+
+ suggestedTag
+ Property-not-possible-to-determine
+
+
+ inLibrary
+ score
+
+
+ Periodic-discharge-absolute-amplitude-very-low
+ Lower than 20 microV.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Low-periodic-discharge-absolute-amplitude
+ 20 to 49 microV.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Medium-periodic-discharge-absolute-amplitude
+ 50 to 199 microV.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ High-periodic-discharge-absolute-amplitude
+ Greater than 200 microV.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Periodic-discharge-relative-amplitude
+
+ requireChild
+
+
+ suggestedTag
+ Property-not-possible-to-determine
+
+
+ inLibrary
+ score
+
+
+ Periodic-discharge-relative-amplitude-less-than-equal-2
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Periodic-discharge-relative-amplitude-greater-than-2
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Periodic-discharge-polarity
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Periodic-discharge-postitive-polarity
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Periodic-discharge-negative-polarity
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Periodic-discharge-unclear-polarity
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+
+
+ Source-analysis-property
+ How the current in the brain reaches the electrode sensors.
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Source-analysis-laterality
+
+ requireChild
+
+
+ suggestedTag
+ Brain-laterality
+
+
+ inLibrary
+ score
+
+
+
+ Source-analysis-brain-region
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Source-analysis-frontal-perisylvian-superior-surface
+
+ inLibrary
+ score
+
+
+
+ Source-analysis-frontal-lateral
+
+ inLibrary
+ score
+
+
+
+ Source-analysis-frontal-mesial
+
+ inLibrary
+ score
+
+
+
+ Source-analysis-frontal-polar
+
+ inLibrary
+ score
+
+
+
+ Source-analysis-frontal-orbitofrontal
+
+ inLibrary
+ score
+
+
+
+ Source-analysis-temporal-polar
+
+ inLibrary
+ score
+
+
+
+ Source-analysis-temporal-basal
+
+ inLibrary
+ score
+
+
+
+ Source-analysis-temporal-lateral-anterior
+
+ inLibrary
+ score
+
+
+
+ Source-analysis-temporal-lateral-posterior
+
+ inLibrary
+ score
+
+
+
+ Source-analysis-temporal-perisylvian-inferior-surface
+
+ inLibrary
+ score
+
+
+
+ Source-analysis-central-lateral-convexity
+
+ inLibrary
+ score
+
+
+
+ Source-analysis-central-mesial
+
+ inLibrary
+ score
+
+
+
+ Source-analysis-central-sulcus-anterior-surface
+
+ inLibrary
+ score
+
+
+
+ Source-analysis-central-sulcus-posterior-surface
+
+ inLibrary
+ score
+
+
+
+ Source-analysis-central-opercular
+
+ inLibrary
+ score
+
+
+
+ Source-analysis-parietal-lateral-convexity
+
+ inLibrary
+ score
+
+
+
+ Source-analysis-parietal-mesial
+
+ inLibrary
+ score
+
+
+
+ Source-analysis-parietal-opercular
+
+ inLibrary
+ score
+
+
+
+ Source-analysis-occipital-lateral
+
+ inLibrary
+ score
+
+
+
+ Source-analysis-occipital-mesial
+
+ inLibrary
+ score
+
+
+
+ Source-analysis-occipital-basal
+
+ inLibrary
+ score
+
+
+
+ Source-analysis-insula
+
+ inLibrary
+ score
+
+
+
+
+
+ Location-property
+ Location can be scored for findings. Semiologic finding can also be characterized by the somatotopic modifier (i.e. the part of the body where it occurs). In this respect, laterality (left, right, symmetric, asymmetric, left greater than right, right greater than left), body part (eyelid, face, arm, leg, trunk, visceral, hemi-) and centricity (axial, proximal limb, distal limb) can be scored.
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Brain-laterality
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Brain-laterality-left
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Brain-laterality-left-greater-right
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Brain-laterality-right
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Brain-laterality-right-greater-left
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Brain-laterality-midline
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Brain-laterality-diffuse-asynchronous
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Brain-region
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Brain-region-frontal
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Brain-region-temporal
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Brain-region-central
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Brain-region-parietal
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Brain-region-occipital
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Body-part-location
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Eyelid-location
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Face-location
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Arm-location
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Leg-location
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Trunk-location
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Visceral-location
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Hemi-location
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Brain-centricity
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Brain-centricity-axial
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Brain-centricity-proximal-limb
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Brain-centricity-distal-limb
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Sensors
+ Lists all corresponding sensors (electrodes/channels in montage). The sensor-group is selected from a list defined in the site-settings for each EEG-lab.
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Finding-propagation
+ When propagation within the graphoelement is observed, first the location of the onset region is scored. Then, the location of the propagation can be noted.
+
+ suggestedTag
+ Property-exists
+ Property-absence
+ Brain-laterality
+ Brain-region
+ Sensors
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Multifocal-finding
+ When the same interictal graphoelement is observed bilaterally and at least in three independent locations, can score them using one entry, and choosing multifocal as a descriptor of the locations of the given interictal graphoelements, optionally emphasizing the involved, and the most active sites.
+
+ suggestedTag
+ Property-not-possible-to-determine
+ Property-exists
+ Property-absence
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Modulators-property
+ For each described graphoelement, the influence of the modulators can be scored. Only modulators present in the recording are scored.
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Modulators-reactivity
+ Susceptibility of individual rhythms or the EEG as a whole to change following sensory stimulation or other physiologic actions.
+
+ requireChild
+
+
+ suggestedTag
+ Property-exists
+ Property-absence
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Eye-closure-sensitivity
+ Eye closure sensitivity.
+
+ suggestedTag
+ Property-exists
+ Property-absence
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Eye-opening-passive
+ Passive eye opening. Used with base schema Increasing/Decreasing.
+
+ suggestedTag
+ Property-not-possible-to-determine
+ Finding-stopped-by
+ Finding-unmodified
+ Finding-triggered-by
+
+
+ inLibrary
+ score
+
+
+
+ Medication-effect-EEG
+ Medications effect on EEG. Used with base schema Increasing/Decreasing.
+
+ suggestedTag
+ Property-not-possible-to-determine
+ Finding-stopped-by
+ Finding-unmodified
+
+
+ inLibrary
+ score
+
+
+
+ Medication-reduction-effect-EEG
+ Medications reduction or withdrawal effect on EEG. Used with base schema Increasing/Decreasing.
+
+ suggestedTag
+ Property-not-possible-to-determine
+ Finding-stopped-by
+ Finding-unmodified
+
+
+ inLibrary
+ score
+
+
+
+ Auditive-stimuli-effect
+ Used with base schema Increasing/Decreasing.
+
+ suggestedTag
+ Property-not-possible-to-determine
+ Finding-stopped-by
+ Finding-unmodified
+
+
+ inLibrary
+ score
+
+
+
+ Nociceptive-stimuli-effect
+ Used with base schema Increasing/Decreasing.
+
+ suggestedTag
+ Property-not-possible-to-determine
+ Finding-stopped-by
+ Finding-unmodified
+ Finding-triggered-by
+
+
+ inLibrary
+ score
+
+
+
+ Physical-effort-effect
+ Used with base schema Increasing/Decreasing
+
+ suggestedTag
+ Property-not-possible-to-determine
+ Finding-stopped-by
+ Finding-unmodified
+ Finding-triggered-by
+
+
+ inLibrary
+ score
+
+
+
+ Cognitive-task-effect
+ Used with base schema Increasing/Decreasing.
+
+ suggestedTag
+ Property-not-possible-to-determine
+ Finding-stopped-by
+ Finding-unmodified
+ Finding-triggered-by
+
+
+ inLibrary
+ score
+
+
+
+ Other-modulators-effect-EEG
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Facilitating-factor
+ Facilitating factors are defined as transient and sporadic endogenous or exogenous elements capable of augmenting seizure incidence (increasing the likelihood of seizure occurrence).
+
+ inLibrary
+ score
+
+
+ Facilitating-factor-alcohol
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Facilitating-factor-awake
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Facilitating-factor-catamenial
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Facilitating-factor-fever
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Facilitating-factor-sleep
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Facilitating-factor-sleep-deprived
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Facilitating-factor-other
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Provocative-factor
+ Provocative factors are defined as transient and sporadic endogenous or exogenous elements capable of evoking/triggering seizures immediately following the exposure to it.
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Hyperventilation-provoked
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Reflex-provoked
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Medication-effect-clinical
+ Medications clinical effect. Used with base schema Increasing/Decreasing.
+
+ suggestedTag
+ Finding-stopped-by
+ Finding-unmodified
+
+
+ inLibrary
+ score
+
+
+
+ Medication-reduction-effect-clinical
+ Medications reduction or withdrawal clinical effect. Used with base schema Increasing/Decreasing.
+
+ suggestedTag
+ Finding-stopped-by
+ Finding-unmodified
+
+
+ inLibrary
+ score
+
+
+
+ Other-modulators-effect-clinical
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Intermittent-photic-stimulation-effect
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Posterior-stimulus-dependent-intermittent-photic-stimulation-response
+
+ suggestedTag
+ Finding-frequency
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Posterior-stimulus-independent-intermittent-photic-stimulation-response-limited
+ limited to the stimulus-train
+
+ suggestedTag
+ Finding-frequency
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Posterior-stimulus-independent-intermittent-photic-stimulation-response-self-sustained
+
+ suggestedTag
+ Finding-frequency
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Generalized-photoparoxysmal-intermittent-photic-stimulation-response-limited
+ Limited to the stimulus-train.
+
+ suggestedTag
+ Finding-frequency
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Generalized-photoparoxysmal-intermittent-photic-stimulation-response-self-sustained
+
+ suggestedTag
+ Finding-frequency
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Activation-of-pre-existing-epileptogenic-area-intermittent-photic-stimulation-effect
+
+ suggestedTag
+ Finding-frequency
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Unmodified-intermittent-photic-stimulation-effect
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Quality-of-hyperventilation
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Hyperventilation-refused-procedure
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Hyperventilation-poor-effort
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Hyperventilation-good-effort
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Hyperventilation-excellent-effort
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Modulators-effect
+ Tags for describing the influence of the modulators
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Modulators-effect-continuous-during-NRS
+ Continuous during non-rapid-eye-movement-sleep (NRS)
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Modulators-effect-only-during
+
+ inLibrary
+ score
+
+
+ #
+ Only during Sleep/Awakening/Hyperventilation/Physical effort/Cognitive task. Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Modulators-effect-change-of-patterns
+ Change of patterns during sleep/awakening.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+
+ Time-related-property
+ Important to estimate how often an interictal abnormality is seen in the recording.
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Appearance-mode
+ Describes how the non-ictal EEG pattern/graphoelement is distributed through the recording.
+
+ requireChild
+
+
+ suggestedTag
+ Property-not-possible-to-determine
+
+
+ inLibrary
+ score
+
+
+ Random-appearance-mode
+ Occurrence of the non-ictal EEG pattern / graphoelement without any rhythmicity / periodicity.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Periodic-appearance-mode
+ Non-ictal EEG pattern / graphoelement occurring at an approximately regular rate / interval (generally of 1 to several seconds).
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Variable-appearance-mode
+ Occurrence of non-ictal EEG pattern / graphoelements, that is sometimes rhythmic or periodic, other times random, throughout the recording.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Intermittent-appearance-mode
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Continuous-appearance-mode
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Discharge-pattern
+ Describes the organization of the EEG signal within the discharge (distinguish between single and repetitive discharges)
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Single-discharge-pattern
+ Applies to the intra-burst pattern: a graphoelement that is not repetitive; before and after the graphoelement one can distinguish the background activity.
+
+ suggestedTag
+ Finding-incidence
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Rhythmic-trains-or-bursts-discharge-pattern
+ Applies to the intra-burst pattern: a non-ictal graphoelement that repeats itself without returning to the background activity between them. The graphoelements within this repetition occur at approximately constant period.
+
+ suggestedTag
+ Finding-prevalence
+ Finding-frequency
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Arrhythmic-trains-or-bursts-discharge-pattern
+ Applies to the intra-burst pattern: a non-ictal graphoelement that repeats itself without returning to the background activity between them. The graphoelements within this repetition occur at inconstant period.
+
+ suggestedTag
+ Finding-prevalence
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Fragmented-discharge-pattern
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Periodic-discharge-time-related-features
+ Periodic discharges not further specified (PDs) time-relayed features tags.
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Periodic-discharge-duration
+
+ requireChild
+
+
+ suggestedTag
+ Property-not-possible-to-determine
+
+
+ inLibrary
+ score
+
+
+ Very-brief-periodic-discharge-duration
+ Less than 10 sec.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Brief-periodic-discharge-duration
+ 10 to 59 sec.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Intermediate-periodic-discharge-duration
+ 1 to 4.9 min.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Long-periodic-discharge-duration
+ 5 to 59 min.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Very-long-periodic-discharge-duration
+ Greater than 1 hour.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Periodic-discharge-onset
+
+ requireChild
+
+
+ suggestedTag
+ Property-not-possible-to-determine
+
+
+ inLibrary
+ score
+
+
+ Sudden-periodic-discharge-onset
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Gradual-periodic-discharge-onset
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Periodic-discharge-dynamics
+
+ requireChild
+
+
+ suggestedTag
+ Property-not-possible-to-determine
+
+
+ inLibrary
+ score
+
+
+ Evolving-periodic-discharge-dynamics
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Fluctuating-periodic-discharge-dynamics
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Static-periodic-discharge-dynamics
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+
+ Finding-extent
+ Percentage of occurrence during the recording (background activity and interictal finding).
+
+ inLibrary
+ score
+
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Finding-incidence
+ How often it occurs/time-epoch.
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Only-once-finding-incidence
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Rare-finding-incidence
+ less than 1/h
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Uncommon-finding-incidence
+ 1/5 min to 1/h.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Occasional-finding-incidence
+ 1/min to 1/5min.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Frequent-finding-incidence
+ 1/10 s to 1/min.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Abundant-finding-incidence
+ Greater than 1/10 s).
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Finding-prevalence
+ The percentage of the recording covered by the train/burst.
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Rare-finding-prevalence
+ Less than 1 percent.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Occasional-finding-prevalence
+ 1 to 9 percent.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Frequent-finding-prevalence
+ 10 to 49 percent.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Abundant-finding-prevalence
+ 50 to 89 percent.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Continuous-finding-prevalence
+ Greater than 90 percent.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+
+ Posterior-dominant-rhythm-property
+ Posterior dominant rhythm is the most often scored EEG feature in clinical practice. Therefore, there are specific terms that can be chosen for characterizing the PDR.
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Posterior-dominant-rhythm-amplitude-range
+
+ requireChild
+
+
+ suggestedTag
+ Property-not-possible-to-determine
+
+
+ inLibrary
+ score
+
+
+ Low-posterior-dominant-rhythm-amplitude-range
+ Low (less than 20 microV).
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Medium-posterior-dominant-rhythm-amplitude-range
+ Medium (between 20 and 70 microV).
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ High-posterior-dominant-rhythm-amplitude-range
+ High (more than 70 microV).
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Posterior-dominant-rhythm-frequency-asymmetry
+ When symmetrical could be labeled with base schema Symmetrical tag.
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Posterior-dominant-rhythm-frequency-asymmetry-lower-left
+ Hz lower on the left side.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Posterior-dominant-rhythm-frequency-asymmetry-lower-right
+ Hz lower on the right side.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Posterior-dominant-rhythm-eye-opening-reactivity
+ Change (disappearance or measurable decrease in amplitude) of a posterior dominant rhythm following eye-opening. Eye closure has the opposite effect.
+
+ suggestedTag
+ Property-not-possible-to-determine
+
+
+ inLibrary
+ score
+
+
+ Posterior-dominant-rhythm-eye-opening-reactivity-reduced-left
+ Reduced left side reactivity.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Posterior-dominant-rhythm-eye-opening-reactivity-reduced-right
+ Reduced right side reactivity.
+
+ inLibrary
+ score
+
+
+ #
+ free text
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Posterior-dominant-rhythm-eye-opening-reactivity-reduced-both
+ Reduced reactivity on both sides.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Posterior-dominant-rhythm-organization
+ When normal could be labeled with base schema Normal tag.
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Posterior-dominant-rhythm-organization-poorly-organized
+ Poorly organized.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Posterior-dominant-rhythm-organization-disorganized
+ Disorganized.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Posterior-dominant-rhythm-organization-markedly-disorganized
+ Markedly disorganized.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Posterior-dominant-rhythm-caveat
+ Caveat to the annotation of PDR.
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ No-posterior-dominant-rhythm-caveat
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Posterior-dominant-rhythm-caveat-only-open-eyes-during-the-recording
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Posterior-dominant-rhythm-caveat-sleep-deprived-caveat
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Posterior-dominant-rhythm-caveat-drowsy
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Posterior-dominant-rhythm-caveat-only-following-hyperventilation
+
+ inLibrary
+ score
+
+
+
+
+ Absence-of-posterior-dominant-rhythm
+ Reason for absence of PDR.
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Absence-of-posterior-dominant-rhythm-artifacts
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Absence-of-posterior-dominant-rhythm-extreme-low-voltage
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Absence-of-posterior-dominant-rhythm-eye-closure-could-not-be-achieved
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Absence-of-posterior-dominant-rhythm-lack-of-awake-period
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Absence-of-posterior-dominant-rhythm-lack-of-compliance
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Absence-of-posterior-dominant-rhythm-other-causes
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+
+ Episode-property
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Seizure-classification
+ Seizure classification refers to the grouping of seizures based on their clinical features, EEG patterns, and other characteristics. Epileptic seizures are named using the current ILAE seizure classification (Fisher et al., 2017, Beniczky et al., 2017).
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Motor-seizure
+ Involves musculature in any form. The motor event could consist of an increase (positive) or decrease (negative) in muscle contraction to produce a movement. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+ inLibrary
+ score
+
+
+
+ Motor-onset-seizure
+
+ deprecatedFrom
+ 1.0.0
+
+
+ inLibrary
+ score
+
+
+ Myoclonic-motor-seizure
+ Sudden, brief ( lower than 100 msec) involuntary single or multiple contraction(s) of muscles(s) or muscle groups of variable topography (axial, proximal limb, distal). Myoclonus is less regularly repetitive and less sustained than is clonus. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+ inLibrary
+ score
+
+
+
+ Myoclonic-motor-onset-seizure
+
+ deprecatedFrom
+ 1.0.0
+
+
+ inLibrary
+ score
+
+
+
+ Negative-myoclonic-motor-seizure
+
+ inLibrary
+ score
+
+
+
+ Negative-myoclonic-motor-onset-seizure
+
+ deprecatedFrom
+ 1.0.0
+
+
+ inLibrary
+ score
+
+
+
+ Clonic-motor-seizure
+ Jerking, either symmetric or asymmetric, that is regularly repetitive and involves the same muscle groups. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+ inLibrary
+ score
+
+
+
+ Clonic-motor-onset-seizure
+
+ deprecatedFrom
+ 1.0.0
+
+
+ inLibrary
+ score
+
+
+
+ Tonic-motor-seizure
+ A sustained increase in muscle contraction lasting a few seconds to minutes. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+ inLibrary
+ score
+
+
+
+ Tonic-motor-onset-seizure
+
+ deprecatedFrom
+ 1.0.0
+
+
+ inLibrary
+ score
+
+
+
+ Atonic-motor-seizure
+ Sudden loss or diminution of muscle tone without apparent preceding myoclonic or tonic event lasting about 1 to 2 s, involving head, trunk, jaw, or limb musculature. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+ inLibrary
+ score
+
+
+
+ Atonic-motor-onset-seizure
+
+ deprecatedFrom
+ 1.0.0
+
+
+ inLibrary
+ score
+
+
+
+ Myoclonic-atonic-motor-seizure
+ A generalized seizure type with a myoclonic jerk leading to an atonic motor component. This type was previously called myoclonic astatic. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+ inLibrary
+ score
+
+
+
+ Myoclonic-atonic-motor-onset-seizure
+
+ deprecatedFrom
+ 1.0.0
+
+
+ inLibrary
+ score
+
+
+
+ Myoclonic-tonic-clonic-motor-seizure
+ One or a few jerks of limbs bilaterally, followed by a tonic clonic seizure. The initial jerks can be considered to be either a brief period of clonus or myoclonus. Seizures with this characteristic are common in juvenile myoclonic epilepsy. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+ inLibrary
+ score
+
+
+
+ Myoclonic-tonic-clonic-motor-onset-seizure
+
+ deprecatedFrom
+ 1.0.0
+
+
+ inLibrary
+ score
+
+
+
+ Tonic-clonic-motor-seizure
+ A sequence consisting of a tonic followed by a clonic phase. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+ inLibrary
+ score
+
+
+
+ Tonic-clonic-motor-onset-seizure
+
+ deprecatedFrom
+ 1.0.0
+
+
+ inLibrary
+ score
+
+
+
+ Automatism-motor-seizure
+ A more or less coordinated motor activity usually occurring when cognition is impaired and for which the subject is usually (but not always) amnesic afterward. This often resembles a voluntary movement and may consist of an inappropriate continuation of preictal motor activity. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+ inLibrary
+ score
+
+
+
+ Automatism-motor-onset-seizure
+
+ deprecatedFrom
+ 1.0.0
+
+
+ inLibrary
+ score
+
+
+
+ Hyperkinetic-motor-seizure
+
+ inLibrary
+ score
+
+
+
+ Hyperkinetic-motor-onset-seizure
+
+ deprecatedFrom
+ 1.0.0
+
+
+ inLibrary
+ score
+
+
+
+ Epileptic-spasm-episode
+ A sudden flexion, extension, or mixed extension flexion of predominantly proximal and truncal muscles that is usually more sustained than a myoclonic movement but not as sustained as a tonic seizure. Limited forms may occur: Grimacing, head nodding, or subtle eye movements. Epileptic spasms frequently occur in clusters. Infantile spasms are the best known form, but spasms can occur at all ages. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+ inLibrary
+ score
+
+
+
+
+ Nonmotor-seizure
+ Focal or generalized seizure types in which motor activity is not prominent. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+ inLibrary
+ score
+
+
+ Behavior-arrest-nonmotor-seizure
+ Arrest (pause) of activities, freezing, immobilization, as in behavior arrest seizure. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+ inLibrary
+ score
+
+
+
+ Sensory-nonmotor-seizure
+ A perceptual experience not caused by appropriate stimuli in the external world. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+ inLibrary
+ score
+
+
+
+ Emotional-nonmotor-seizure
+ Seizures presenting with an emotion or the appearance of having an emotion as an early prominent feature, such as fear, spontaneous joy or euphoria, laughing (gelastic), or crying (dacrystic). Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+ inLibrary
+ score
+
+
+
+ Cognitive-nonmotor-seizure
+ Pertaining to thinking and higher cortical functions, such as language, spatial perception, memory, and praxis. The previous term for similar usage as a seizure type was psychic. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+ inLibrary
+ score
+
+
+
+ Autonomic-nonmotor-seizure
+ A distinct alteration of autonomic nervous system function involving cardiovascular, pupillary, gastrointestinal, sudomotor, vasomotor, and thermoregulatory functions. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+ inLibrary
+ score
+
+
+
+
+ Absence-seizure
+ Absence seizures present with a sudden cessation of activity and awareness. Absence seizures tend to occur in younger age groups, have more sudden start and termination, and they usually display less complex automatisms than do focal seizures with impaired awareness, but the distinctions are not absolute. EEG information may be required for accurate classification. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+ inLibrary
+ score
+
+
+ Typical-absence-seizure
+ A sudden onset, interruption of ongoing activities, a blank stare, possibly a brief upward deviation of the eyes. Usually the patient will be unresponsive when spoken to. Duration is a few seconds to half a minute with very rapid recovery. Although not always available, an EEG would show generalized epileptiform discharges during the event. An absence seizure is by definition a seizure of generalized onset. The word is not synonymous with a blank stare, which also can be encountered with focal onset seizures. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+ inLibrary
+ score
+
+
+
+ Atypical-absence-seizure
+ An absence seizure with changes in tone that are more pronounced than in typical absence or the onset and/or cessation is not abrupt, often associated with slow, irregular, generalized spike-wave activity. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+ inLibrary
+ score
+
+
+
+ Myoclonic-absence-seizure
+ A myoclonic absence seizure refers to an absence seizure with rhythmic three-per-second myoclonic movements, causing ratcheting abduction of the upper limbs leading to progressive arm elevation, and associated with three-per-second generalized spike-wave discharges. Duration is typically 10 to 60 s. Impairment of consciousness may not be obvious. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+ inLibrary
+ score
+
+
+
+ Eyelid-myoclonia-absence-seizure
+ Eyelid myoclonia are myoclonic jerks of the eyelids and upward deviation of the eyes, often precipitated by closing the eyes or by light. Eyelid myoclonia can be associated with absences, but also can be motor seizures without a corresponding absence, making them difficult to categorize. The 2017 classification groups them with nonmotor (absence) seizures, which may seem counterintuitive, but the myoclonia in this instance is meant to link with absence, rather than with nonmotor. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+ inLibrary
+ score
+
+
+
+
+
+ Episode-phase
+ The electroclinical findings (i.e., the seizure semiology and the ictal EEG) are divided in three phases: onset, propagation, and postictal.
+
+ requireChild
+
+
+ suggestedTag
+ Seizure-semiology-manifestation
+ Postictal-semiology-manifestation
+ Ictal-EEG-patterns
+
+
+ inLibrary
+ score
+
+
+ Episode-phase-initial
+
+ inLibrary
+ score
+
+
+
+ Episode-phase-subsequent
+
+ inLibrary
+ score
+
+
+
+ Episode-phase-postictal
+
+ inLibrary
+ score
+
+
+
+
+ Seizure-semiology-manifestation
+ Seizure semiology refers to the clinical features or signs that are observed during a seizure, such as the type of movements or behaviors exhibited by the person having the seizure, the duration of the seizure, the level of consciousness, and any associated symptoms such as aura or postictal confusion. In other words, seizure semiology describes the physical manifestations of a seizure. Semiology is described according to the ILAE Glossary of Descriptive Terminology for Ictal Semiology (Blume et al., 2001). Besides the name, the semiologic finding can also be characterized by the somatotopic modifier, laterality, body part and centricity. Uses Location-property tags.
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Semiology-motor-manifestation
+
+ inLibrary
+ score
+
+
+ Semiology-elementary-motor
+
+ inLibrary
+ score
+
+
+ Semiology-motor-tonic
+ A sustained increase in muscle contraction lasting a few seconds to minutes.
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-dystonic
+ Sustained contractions of both agonist and antagonist muscles producing athetoid or twisting movements, which, when prolonged, may produce abnormal postures.
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-epileptic-spasm
+ A sudden flexion, extension, or mixed extension flexion of predominantly proximal and truncal muscles that is usually more sustained than a myoclonic movement but not so sustained as a tonic seizure (i.e., about 1 s). Limited forms may occur: grimacing, head nodding. Frequent occurrence in clusters.
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-postural
+ Adoption of a posture that may be bilaterally symmetric or asymmetric (as in a fencing posture).
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-versive
+ A sustained, forced conjugate ocular, cephalic, and/or truncal rotation or lateral deviation from the midline.
+
+ suggestedTag
+ Body-part-location
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-clonic
+ Myoclonus that is regularly repetitive, involves the same muscle groups, at a frequency of about 2 to 3 c/s, and is prolonged. Synonym: rhythmic myoclonus .
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-myoclonic
+ Characterized by myoclonus. MYOCLONUS : sudden, brief (lower than 100 ms) involuntary single or multiple contraction(s) of muscles(s) or muscle groups of variable topography (axial, proximal limb, distal).
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-jacksonian-march
+ Term indicating spread of clonic movements through contiguous body parts unilaterally.
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-negative-myoclonus
+ Characterized by negative myoclonus. NEGATIVE MYOCLONUS: interruption of tonic muscular activity for lower than 500 ms without evidence of preceding myoclonia.
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-tonic-clonic
+ A sequence consisting of a tonic followed by a clonic phase. Variants such as clonic-tonic-clonic may be seen. Asymmetry of limb posture during the tonic phase of a GTC: one arm is rigidly extended at the elbow (often with the fist clenched tightly and flexed at the wrist), whereas the opposite arm is flexed at the elbow.
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Semiology-motor-tonic-clonic-without-figure-of-four
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-tonic-clonic-with-figure-of-four-extension-left-elbow
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-tonic-clonic-with-figure-of-four-extension-right-elbow
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+
+ Semiology-motor-astatic
+ Loss of erect posture that results from an atonic, myoclonic, or tonic mechanism. Synonym: drop attack.
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-atonic
+ Sudden loss or diminution of muscle tone without apparent preceding myoclonic or tonic event lasting greater or equal to 1 to 2 s, involving head, trunk, jaw, or limb musculature.
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-eye-blinking
+
+ suggestedTag
+ Brain-laterality
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-other-elementary-motor
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Semiology-motor-automatisms
+
+ inLibrary
+ score
+
+
+ Semiology-motor-automatisms-mimetic
+ Facial expression suggesting an emotional state, often fear.
+
+ suggestedTag
+ Episode-responsiveness
+ Episode-appearance
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-automatisms-oroalimentary
+ Lip smacking, lip pursing, chewing, licking, tooth grinding, or swallowing.
+
+ suggestedTag
+ Episode-responsiveness
+ Episode-appearance
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-automatisms-dacrystic
+ Bursts of crying.
+
+ suggestedTag
+ Episode-responsiveness
+ Episode-appearance
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-automatisms-dyspraxic
+ Inability to perform learned movements spontaneously or on command or imitation despite intact relevant motor and sensory systems and adequate comprehension and cooperation.
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-responsiveness
+ Episode-appearance
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-automatisms-manual
+ 1. Indicates principally distal components, bilateral or unilateral. 2. Fumbling, tapping, manipulating movements.
+
+ suggestedTag
+ Brain-laterality
+ Brain-centricity
+ Episode-responsiveness
+ Episode-appearance
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-automatisms-gestural
+ Semipurposive, asynchronous hand movements. Often unilateral.
+
+ suggestedTag
+ Brain-laterality
+ Episode-responsiveness
+ Episode-appearance
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-automatisms-pedal
+ 1. Indicates principally distal components, bilateral or unilateral. 2. Fumbling, tapping, manipulating movements.
+
+ suggestedTag
+ Brain-laterality
+ Brain-centricity
+ Episode-responsiveness
+ Episode-appearance
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-automatisms-hypermotor
+ 1. Involves predominantly proximal limb or axial muscles producing irregular sequential ballistic movements, such as pedaling, pelvic thrusting, thrashing, rocking movements. 2. Increase in rate of ongoing movements or inappropriately rapid performance of a movement.
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-responsiveness
+ Episode-appearance
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-automatisms-hypokinetic
+ A decrease in amplitude and/or rate or arrest of ongoing motor activity.
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-responsiveness
+ Episode-appearance
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-automatisms-gelastic
+ Bursts of laughter or giggling, usually without an appropriate affective tone.
+
+ suggestedTag
+ Episode-responsiveness
+ Episode-appearance
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-other-automatisms
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Semiology-motor-behavioral-arrest
+ Interruption of ongoing motor activity or of ongoing behaviors with fixed gaze, without movement of the head or trunk (oro-alimentary and hand automatisms may continue).
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+
+ Semiology-non-motor-manifestation
+
+ inLibrary
+ score
+
+
+ Semiology-sensory
+
+ inLibrary
+ score
+
+
+ Semiology-sensory-headache
+ Headache occurring in close temporal proximity to the seizure or as the sole seizure manifestation.
+
+ suggestedTag
+ Brain-laterality
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-sensory-visual
+ Flashing or flickering lights, spots, simple patterns, scotomata, or amaurosis.
+
+ suggestedTag
+ Brain-laterality
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-sensory-auditory
+ Buzzing, drumming sounds or single tones.
+
+ suggestedTag
+ Brain-laterality
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-sensory-olfactory
+
+ suggestedTag
+ Body-part-location
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-sensory-gustatory
+ Taste sensations including acidic, bitter, salty, sweet, or metallic.
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-sensory-epigastric
+ Abdominal discomfort including nausea, emptiness, tightness, churning, butterflies, malaise, pain, and hunger; sensation may rise to chest or throat. Some phenomena may reflect ictal autonomic dysfunction.
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-sensory-somatosensory
+ Tingling, numbness, electric-shock sensation, sense of movement or desire to move.
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-sensory-painful
+ Peripheral (lateralized/bilateral), cephalic, abdominal.
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-sensory-autonomic-sensation
+ A sensation consistent with involvement of the autonomic nervous system, including cardiovascular, gastrointestinal, sudomotor, vasomotor, and thermoregulatory functions. (Thus autonomic aura; cf. autonomic events 3.0).
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-sensory-other
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Semiology-experiential
+
+ inLibrary
+ score
+
+
+ Semiology-experiential-affective-emotional
+ Components include fear, depression, joy, and (rarely) anger.
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-experiential-hallucinatory
+ Composite perceptions without corresponding external stimuli involving visual, auditory, somatosensory, olfactory, and/or gustatory phenomena. Example: hearing and seeing people talking.
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-experiential-illusory
+ An alteration of actual percepts involving the visual, auditory, somatosensory, olfactory, or gustatory systems.
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-experiential-mnemonic
+ Components that reflect ictal dysmnesia such as feelings of familiarity (deja-vu) and unfamiliarity (jamais-vu).
+
+ inLibrary
+ score
+
+
+ Semiology-experiential-mnemonic-Deja-vu
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-experiential-mnemonic-Jamais-vu
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+
+ Semiology-experiential-other
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Semiology-dyscognitive
+ The term describes events in which (1) disturbance of cognition is the predominant or most apparent feature, and (2a) two or more of the following components are involved, or (2b) involvement of such components remains undetermined. Otherwise, use the more specific term (e.g., mnemonic experiential seizure or hallucinatory experiential seizure). Components of cognition: ++ perception: symbolic conception of sensory information ++ attention: appropriate selection of a principal perception or task ++ emotion: appropriate affective significance of a perception ++ memory: ability to store and retrieve percepts or concepts ++ executive function: anticipation, selection, monitoring of consequences, and initiation of motor activity including praxis, speech.
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-language-related
+
+ inLibrary
+ score
+
+
+ Semiology-language-related-vocalization
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-language-related-verbalization
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-language-related-dysphasia
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-language-related-aphasia
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-language-related-other
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Semiology-autonomic
+
+ inLibrary
+ score
+
+
+ Semiology-autonomic-pupillary
+ Mydriasis, miosis (either bilateral or unilateral).
+
+ suggestedTag
+ Brain-laterality
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-autonomic-hypersalivation
+ Increase in production of saliva leading to uncontrollable drooling
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-autonomic-respiratory-apnoeic
+ subjective shortness of breath, hyperventilation, stridor, coughing, choking, apnea, oxygen desaturation, neurogenic pulmonary edema.
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-autonomic-cardiovascular
+ Modifications of heart rate (tachycardia, bradycardia), cardiac arrhythmias (such as sinus arrhythmia, sinus arrest, supraventricular tachycardia, atrial premature depolarizations, ventricular premature depolarizations, atrio-ventricular block, bundle branch block, atrioventricular nodal escape rhythm, asystole).
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-autonomic-gastrointestinal
+ Nausea, eructation, vomiting, retching, abdominal sensations, abdominal pain, flatulence, spitting, diarrhea.
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-autonomic-urinary-incontinence
+ urinary urge (intense urinary urge at the beginning of seizures), urinary incontinence, ictal urination (rare symptom of partial seizures without loss of consciousness).
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-autonomic-genital
+ Sexual auras (erotic thoughts and feelings, sexual arousal and orgasm). Genital auras (unpleasant, sometimes painful, frightening or emotionally neutral somatosensory sensations in the genitals that can be accompanied by ictal orgasm). Sexual automatisms (hypermotor movements consisting of writhing, thrusting, rhythmic movements of the pelvis, arms and legs, sometimes associated with picking and rhythmic manipulation of the groin or genitalia, exhibitionism and masturbation).
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-autonomic-vasomotor
+ Flushing or pallor (may be accompanied by feelings of warmth, cold and pain).
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-autonomic-sudomotor
+ Sweating and piloerection (may be accompanied by feelings of warmth, cold and pain).
+
+ suggestedTag
+ Brain-laterality
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-autonomic-thermoregulatory
+ Hyperthermia, fever.
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-autonomic-other
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+
+ Semiology-manifestation-other
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Postictal-semiology-manifestation
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Postictal-semiology-unconscious
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Postictal-semiology-quick-recovery-of-consciousness
+ Quick recovery of awareness and responsiveness.
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Postictal-semiology-aphasia-or-dysphasia
+ Impaired communication involving language without dysfunction of relevant primary motor or sensory pathways, manifested as impaired comprehension, anomia, parahasic errors or a combination of these.
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Postictal-semiology-behavioral-change
+ Occurring immediately after a aseizure. Including psychosis, hypomanina, obsessive-compulsive behavior.
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Postictal-semiology-hemianopia
+ Postictal visual loss in a a hemi field.
+
+ suggestedTag
+ Brain-laterality
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Postictal-semiology-impaired-cognition
+ Decreased Cognitive performance involving one or more of perception, attention, emotion, memory, execution, praxis, speech.
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Postictal-semiology-dysphoria
+ Depression, irritability, euphoric mood, fear, anxiety.
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Postictal-semiology-headache
+ Headache with features of tension-type or migraine headache that develops within 3 h following the seizure and resolves within 72 h after seizure.
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Postictal-semiology-nose-wiping
+ Noes-wiping usually within 60 sec of seizure offset, usually with the hand ipsilateral to the seizure onset.
+
+ suggestedTag
+ Brain-laterality
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Postictal-semiology-anterograde-amnesia
+ Impaired ability to remember new material.
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Postictal-semiology-retrograde-amnesia
+ Impaired ability to recall previously remember material.
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Postictal-semiology-paresis
+ Todds palsy. Any unilateral postictal dysfunction relating to motor, language, sensory and/or integrative functions.
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Postictal-semiology-sleep
+ Invincible need to sleep after a seizure.
+
+ inLibrary
+ score
+
+
+
+ Postictal-semiology-unilateral-myoclonic-jerks
+ unilateral motor phenomena, other then specified, occurring in postictal phase.
+
+ inLibrary
+ score
+
+
+
+ Postictal-semiology-other-unilateral-motor-phenomena
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Polygraphic-channel-relation-to-episode
+
+ requireChild
+
+
+ suggestedTag
+ Property-not-possible-to-determine
+
+
+ inLibrary
+ score
+
+
+ Polygraphic-channel-cause-to-episode
+
+ inLibrary
+ score
+
+
+
+ Polygraphic-channel-consequence-of-episode
+
+ inLibrary
+ score
+
+
+
+
+ Ictal-EEG-patterns
+
+ inLibrary
+ score
+
+
+ Ictal-EEG-patterns-obscured-by-artifacts
+ The interpretation of the EEG is not possible due to artifacts.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Ictal-EEG-activity
+
+ suggestedTag
+ Polyspikes-morphology
+ Fast-spike-activity-morphology
+ Low-voltage-fast-activity-morphology
+ Polysharp-waves-morphology
+ Spike-and-slow-wave-morphology
+ Polyspike-and-slow-wave-morphology
+ Sharp-and-slow-wave-morphology
+ Rhythmic-activity-morphology
+ Slow-wave-large-amplitude-morphology
+ Irregular-delta-or-theta-activity-morphology
+ Electrodecremental-change-morphology
+ DC-shift-morphology
+ Disappearance-of-ongoing-activity-morphology
+ Brain-laterality
+ Brain-region
+ Sensors
+ Source-analysis-laterality
+ Source-analysis-brain-region
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Postictal-EEG-activity
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+
+
+ inLibrary
+ score
+
+
+
+
+ Episode-time-context-property
+ Additional clinically relevant features related to episodes can be scored under timing and context. If needed, episode duration can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Temporal-value/Duration.
+
+ inLibrary
+ score
+
+
+ Episode-consciousness
+
+ requireChild
+
+
+ suggestedTag
+ Property-not-possible-to-determine
+
+
+ inLibrary
+ score
+
+
+ Episode-consciousness-not-tested
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Episode-consciousness-affected
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Episode-consciousness-mildly-affected
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Episode-consciousness-not-affected
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Episode-awareness
+
+ suggestedTag
+ Property-not-possible-to-determine
+ Property-exists
+ Property-absence
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Clinical-EEG-temporal-relationship
+
+ suggestedTag
+ Property-not-possible-to-determine
+
+
+ inLibrary
+ score
+
+
+ Clinical-start-followed-EEG
+ Clinical start, followed by EEG start by X seconds.
+
+ inLibrary
+ score
+
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ timeUnits
+
+
+ inLibrary
+ score
+
+
+
+
+ EEG-start-followed-clinical
+ EEG start, followed by clinical start by X seconds.
+
+ inLibrary
+ score
+
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ timeUnits
+
+
+ inLibrary
+ score
+
+
+
+
+ Simultaneous-start-clinical-EEG
+
+ inLibrary
+ score
+
+
+
+ Clinical-EEG-temporal-relationship-notes
+ Clinical notes to annotate the clinical-EEG temporal relationship.
+
+ inLibrary
+ score
+
+
+ #
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Episode-event-count
+ Number of stereotypical episodes during the recording.
+
+ suggestedTag
+ Property-not-possible-to-determine
+
+
+ inLibrary
+ score
+
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ inLibrary
+ score
+
+
+
+
+ State-episode-start
+ State at the start of the episode.
+
+ requireChild
+
+
+ suggestedTag
+ Property-not-possible-to-determine
+
+
+ inLibrary
+ score
+
+
+ Episode-start-from-sleep
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Episode-start-from-awake
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Episode-postictal-phase
+
+ suggestedTag
+ Property-not-possible-to-determine
+
+
+ inLibrary
+ score
+
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ timeUnits
+
+
+ inLibrary
+ score
+
+
+
+
+ Episode-prodrome
+ Prodrome is a preictal phenomenon, and it is defined as a subjective or objective clinical alteration (e.g., ill-localized sensation or agitation) that heralds the onset of an epileptic seizure but does not form part of it (Blume et al., 2001). Therefore, prodrome should be distinguished from aura (which is an ictal phenomenon).
+
+ suggestedTag
+ Property-exists
+ Property-absence
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Episode-tongue-biting
+
+ suggestedTag
+ Property-exists
+ Property-absence
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Episode-responsiveness
+
+ requireChild
+
+
+ suggestedTag
+ Property-not-possible-to-determine
+
+
+ inLibrary
+ score
+
+
+ Episode-responsiveness-preserved
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Episode-responsiveness-affected
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Episode-appearance
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Episode-appearance-interactive
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Episode-appearance-spontaneous
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Seizure-dynamics
+ Spatiotemporal dynamics can be scored (evolution in morphology; evolution in frequency; evolution in location).
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Seizure-dynamics-evolution-morphology
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Seizure-dynamics-evolution-frequency
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Seizure-dynamics-evolution-location
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Seizure-dynamics-not-possible-to-determine
+ Not possible to determine.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+
+
+ Other-finding-property
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Artifact-significance-to-recording
+ It is important to score the significance of the described artifacts: recording is not interpretable, recording of reduced diagnostic value, does not interfere with the interpretation of the recording.
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Recording-not-interpretable-due-to-artifact
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Recording-of-reduced-diagnostic-value-due-to-artifact
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Artifact-does-not-interfere-recording
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Finding-significance-to-recording
+ Significance of finding. When normal/abnormal could be labeled with base schema Normal/Abnormal tags.
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Finding-no-definite-abnormality
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Finding-significance-not-possible-to-determine
+ Not possible to determine.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Finding-frequency
+ Value in Hz (number) typed in.
+
+ inLibrary
+ score
+
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ frequencyUnits
+
+
+ inLibrary
+ score
+
+
+
+
+ Finding-amplitude
+ Value in microvolts (number) typed in.
+
+ inLibrary
+ score
+
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ electricPotentialUnits
+
+
+ inLibrary
+ score
+
+
+
+
+ Finding-amplitude-asymmetry
+ For posterior dominant rhythm: a difference in amplitude between the homologous area on opposite sides of the head that consistently exceeds 50 percent. When symmetrical could be labeled with base schema Symmetrical tag. For sleep: Absence or consistently marked amplitude asymmetry (greater than 50 percent) of a normal sleep graphoelement.
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Finding-amplitude-asymmetry-lower-left
+ Amplitude lower on the left side.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Finding-amplitude-asymmetry-lower-right
+ Amplitude lower on the right side.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Finding-amplitude-asymmetry-not-possible-to-determine
+ Not possible to determine.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Finding-stopped-by
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Finding-triggered-by
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Finding-unmodified
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Property-not-possible-to-determine
+ Not possible to determine.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Property-exists
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Property-absence
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+
+ Interictal-finding
+ EEG pattern / transient that is distinguished form the background activity, considered abnormal, but is not recorded during ictal period (seizure) or postictal period; the presence of an interictal finding does not necessarily imply that the patient has epilepsy.
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Epileptiform-interictal-activity
+
+ suggestedTag
+ Spike-morphology
+ Spike-and-slow-wave-morphology
+ Runs-of-rapid-spikes-morphology
+ Polyspikes-morphology
+ Polyspike-and-slow-wave-morphology
+ Sharp-wave-morphology
+ Sharp-and-slow-wave-morphology
+ Slow-sharp-wave-morphology
+ High-frequency-oscillation-morphology
+ Hypsarrhythmia-classic-morphology
+ Hypsarrhythmia-modified-morphology
+ Brain-laterality
+ Brain-region
+ Sensors
+ Finding-propagation
+ Multifocal-finding
+ Appearance-mode
+ Discharge-pattern
+ Finding-incidence
+
+
+ inLibrary
+ score
+
+
+
+ Abnormal-interictal-rhythmic-activity
+
+ suggestedTag
+ Rhythmic-activity-morphology
+ Polymorphic-delta-activity-morphology
+ Frontal-intermittent-rhythmic-delta-activity-morphology
+ Occipital-intermittent-rhythmic-delta-activity-morphology
+ Temporal-intermittent-rhythmic-delta-activity-morphology
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+ Finding-incidence
+
+
+ inLibrary
+ score
+
+
+
+ Interictal-special-patterns
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Interictal-periodic-discharges
+ Periodic discharge not further specified (PDs).
+
+ suggestedTag
+ Periodic-discharge-morphology
+ Brain-laterality
+ Brain-region
+ Sensors
+ Periodic-discharge-time-related-features
+
+
+ inLibrary
+ score
+
+
+ Generalized-periodic-discharges
+ GPDs.
+
+ inLibrary
+ score
+
+
+
+ Lateralized-periodic-discharges
+ LPDs.
+
+ inLibrary
+ score
+
+
+
+ Bilateral-independent-periodic-discharges
+ BIPDs.
+
+ inLibrary
+ score
+
+
+
+ Multifocal-periodic-discharges
+ MfPDs.
+
+ inLibrary
+ score
+
+
+
+
+ Extreme-delta-brush
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Item
+ An independently existing thing (living or nonliving).
+
+ extensionAllowed
+
+
+ Biological-item
+ An entity that is biological, that is related to living organisms.
+
+ Anatomical-item
+ A biological structure, system, fluid or other substance excluding single molecular entities.
+
+ Body
+ The biological structure representing an organism.
+
+
+ Body-part
+ Any part of an organism.
+
+ Head
+ The upper part of the human body, or the front or upper part of the body of an animal, typically separated from the rest of the body by a neck, and containing the brain, mouth, and sense organs.
+
+ Ear
+ A sense organ needed for the detection of sound and for establishing balance.
+
+
+ Face
+ The anterior portion of the head extending from the forehead to the chin and ear to ear. The facial structures contain the eyes, nose and mouth, cheeks and jaws.
+
+ Cheek
+ The fleshy part of the face bounded by the eyes, nose, ear, and jaw line.
+
+
+ Chin
+ The part of the face below the lower lip and including the protruding part of the lower jaw.
+
+
+ Eye
+ The organ of sight or vision.
+
+
+ Eyebrow
+ The arched strip of hair on the bony ridge above each eye socket.
+
+
+ Forehead
+ The part of the face between the eyebrows and the normal hairline.
+
+
+ Lip
+ Fleshy fold which surrounds the opening of the mouth.
+
+
+ Mouth
+ The proximal portion of the digestive tract, containing the oral cavity and bounded by the oral opening.
+
+
+ Nose
+ A structure of special sense serving as an organ of the sense of smell and as an entrance to the respiratory tract.
+
+
+ Teeth
+ The hard bonelike structures in the jaws. A collection of teeth arranged in some pattern in the mouth or other part of the body.
+
+
+
+ Hair
+ The filamentous outgrowth of the epidermis.
+
+
+
+ Lower-extremity
+ Refers to the whole inferior limb (leg and/or foot).
+
+ Ankle
+ A gliding joint between the distal ends of the tibia and fibula and the proximal end of the talus.
+
+
+ Calf
+ The fleshy part at the back of the leg below the knee.
+
+
+ Foot
+ The structure found below the ankle joint required for locomotion.
+
+ Big-toe
+ The largest toe on the inner side of the foot.
+
+
+ Heel
+ The back of the foot below the ankle.
+
+
+ Instep
+ The part of the foot between the ball and the heel on the inner side.
+
+
+ Little-toe
+ The smallest toe located on the outer side of the foot.
+
+
+ Toes
+ The terminal digits of the foot.
+
+
+
+ Knee
+ A joint connecting the lower part of the femur with the upper part of the tibia.
+
+
+ Shin
+ Front part of the leg below the knee.
+
+
+ Thigh
+ Upper part of the leg between hip and knee.
+
+
+
+ Torso
+ The body excluding the head and neck and limbs.
+
+ Buttocks
+ The round fleshy parts that form the lower rear area of a human trunk.
+
+
+ Gentalia
+ The external organs of reproduction.
+
+ deprecatedFrom
+ 8.1.0
+
+
+
+ Hip
+ The lateral prominence of the pelvis from the waist to the thigh.
+
+
+ Torso-back
+ The rear surface of the human body from the shoulders to the hips.
+
+
+ Torso-chest
+ The anterior side of the thorax from the neck to the abdomen.
+
+
+ Waist
+ The abdominal circumference at the navel.
+
+
+
+ Upper-extremity
+ Refers to the whole superior limb (shoulder, arm, elbow, wrist, hand).
+
+ Elbow
+ A type of hinge joint located between the forearm and upper arm.
+
+
+ Forearm
+ Lower part of the arm between the elbow and wrist.
+
+
+ Hand
+ The distal portion of the upper extremity. It consists of the carpus, metacarpus, and digits.
+
+ Finger
+ Any of the digits of the hand.
+
+ Index-finger
+ The second finger from the radial side of the hand, next to the thumb.
+
+
+ Little-finger
+ The fifth and smallest finger from the radial side of the hand.
+
+
+ Middle-finger
+ The middle or third finger from the radial side of the hand.
+
+
+ Ring-finger
+ The fourth finger from the radial side of the hand.
+
+
+ Thumb
+ The thick and short hand digit which is next to the index finger in humans.
+
+
+
+ Knuckles
+ A part of a finger at a joint where the bone is near the surface, especially where the finger joins the hand.
+
+
+ Palm
+ The part of the inner surface of the hand that extends from the wrist to the bases of the fingers.
+
+
+
+ Shoulder
+ Joint attaching upper arm to trunk.
+
+
+ Upper-arm
+ Portion of arm between shoulder and elbow.
+
+
+ Wrist
+ A joint between the distal end of the radius and the proximal row of carpal bones.
+
+
+
+
+
+ Organism
+ A living entity, more specifically a biological entity that consists of one or more cells and is capable of genomic replication (independently or not).
+
+ Animal
+ A living organism that has membranous cell walls, requires oxygen and organic foods, and is capable of voluntary movement.
+
+
+ Human
+ The bipedal primate mammal Homo sapiens.
+
+
+ Plant
+ Any living organism that typically synthesizes its food from inorganic substances and possesses cellulose cell walls.
+
+
+
+
+ Language-item
+ An entity related to a systematic means of communicating by the use of sounds, symbols, or gestures.
+
+ suggestedTag
+ Sensory-presentation
+
+
+ Character
+ A mark or symbol used in writing.
+
+
+ Clause
+ A unit of grammatical organization next below the sentence in rank, usually consisting of a subject and predicate.
+
+
+ Glyph
+ A hieroglyphic character, symbol, or pictograph.
+
+
+ Nonword
+ A group of letters or speech sounds that looks or sounds like a word but that is not accepted as such by native speakers.
+
+
+ Paragraph
+ A distinct section of a piece of writing, usually dealing with a single theme.
+
+
+ Phoneme
+ A speech sound that is distinguished by the speakers of a particular language.
+
+
+ Phrase
+ A phrase is a group of words functioning as a single unit in the syntax of a sentence.
+
+
+ Sentence
+ A set of words that is complete in itself, conveying a statement, question, exclamation, or command and typically containing an explicit or implied subject and a predicate containing a finite verb.
+
+
+ Syllable
+ A unit of spoken language larger than a phoneme.
+
+
+ Textblock
+ A block of text.
+
+
+ Word
+ A word is the smallest free form (an item that may be expressed in isolation with semantic or pragmatic content) in a language.
+
+
+
+ Object
+ Something perceptible by one or more of the senses, especially by vision or touch. A material thing.
+
+ suggestedTag
+ Sensory-presentation
+
+
+ Geometric-object
+ An object or a representation that has structure and topology in space.
+
+ 2D-shape
+ A planar, two-dimensional shape.
+
+ Arrow
+ A shape with a pointed end indicating direction.
+
+
+ Clockface
+ The dial face of a clock. A location identifier based on clockface numbering or anatomic subregion.
+
+
+ Cross
+ A figure or mark formed by two intersecting lines crossing at their midpoints.
+
+
+ Dash
+ A horizontal stroke in writing or printing to mark a pause or break in sense or to represent omitted letters or words.
+
+
+ Ellipse
+ A closed plane curve resulting from the intersection of a circular cone and a plane cutting completely through it, especially a plane not parallel to the base.
+
+ Circle
+ A ring-shaped structure with every point equidistant from the center.
+
+
+
+ Rectangle
+ A parallelogram with four right angles.
+
+ Square
+ A square is a special rectangle with four equal sides.
+
+
+
+ Single-point
+ A point is a geometric entity that is located in a zero-dimensional spatial region and whose position is defined by its coordinates in some coordinate system.
+
+
+ Star
+ A conventional or stylized representation of a star, typically one having five or more points.
+
+
+ Triangle
+ A three-sided polygon.
+
+
+
+ 3D-shape
+ A geometric three-dimensional shape.
+
+ Box
+ A square or rectangular vessel, usually made of cardboard or plastic.
+
+ Cube
+ A solid or semi-solid in the shape of a three dimensional square.
+
+
+
+ Cone
+ A shape whose base is a circle and whose sides taper up to a point.
+
+
+ Cylinder
+ A surface formed by circles of a given radius that are contained in a plane perpendicular to a given axis, whose centers align on the axis.
+
+
+ Ellipsoid
+ A closed plane curve resulting from the intersection of a circular cone and a plane cutting completely through it, especially a plane not parallel to the base.
+
+ Sphere
+ A solid or hollow three-dimensional object bounded by a closed surface such that every point on the surface is equidistant from the center.
+
+
+
+ Pyramid
+ A polyhedron of which one face is a polygon of any number of sides, and the other faces are triangles with a common vertex.
+
+
+
+ Pattern
+ An arrangement of objects, facts, behaviors, or other things which have scientific, mathematical, geometric, statistical, or other meaning.
+
+ Dots
+ A small round mark or spot.
+
+
+ LED-pattern
+ A pattern created by lighting selected members of a fixed light emitting diode array.
+
+
+
+
+ Ingestible-object
+ Something that can be taken into the body by the mouth for digestion or absorption.
+
+
+ Man-made-object
+ Something constructed by human means.
+
+ Building
+ A structure that has a roof and walls and stands more or less permanently in one place.
+
+ Attic
+ A room or a space immediately below the roof of a building.
+
+
+ Basement
+ The part of a building that is wholly or partly below ground level.
+
+
+ Entrance
+ The means or place of entry.
+
+
+ Roof
+ A roof is the covering on the uppermost part of a building which provides protection from animals and weather, notably rain, but also heat, wind and sunlight.
+
+
+ Room
+ An area within a building enclosed by walls and floor and ceiling.
+
+
+
+ Clothing
+ A covering designed to be worn on the body.
+
+
+ Device
+ An object contrived for a specific purpose.
+
+ Assistive-device
+ A device that help an individual accomplish a task.
+
+ Glasses
+ Frames with lenses worn in front of the eye for vision correction, eye protection, or protection from UV rays.
+
+
+ Writing-device
+ A device used for writing.
+
+ Pen
+ A common writing instrument used to apply ink to a surface for writing or drawing.
+
+
+ Pencil
+ An implement for writing or drawing that is constructed of a narrow solid pigment core in a protective casing that prevents the core from being broken or marking the hand.
+
+
+
+
+ Computing-device
+ An electronic device which take inputs and processes results from the inputs.
+
+ Cellphone
+ A telephone with access to a cellular radio system so it can be used over a wide area, without a physical connection to a network.
+
+
+ Desktop-computer
+ A computer suitable for use at an ordinary desk.
+
+
+ Laptop-computer
+ A computer that is portable and suitable for use while traveling.
+
+
+ Tablet-computer
+ A small portable computer that accepts input directly on to its screen rather than via a keyboard or mouse.
+
+
+
+ Engine
+ A motor is a machine designed to convert one or more forms of energy into mechanical energy.
+
+
+ IO-device
+ Hardware used by a human (or other system) to communicate with a computer.
+
+ Input-device
+ A piece of equipment used to provide data and control signals to an information processing system such as a computer or information appliance.
+
+ Computer-mouse
+ A hand-held pointing device that detects two-dimensional motion relative to a surface.
+
+ Mouse-button
+ An electric switch on a computer mouse which can be pressed or clicked to select or interact with an element of a graphical user interface.
+
+
+ Scroll-wheel
+ A scroll wheel or mouse wheel is a wheel used for scrolling made of hard plastic with a rubbery surface usually located between the left and right mouse buttons and is positioned perpendicular to the mouse surface.
+
+
+
+ Joystick
+ A control device that uses a movable handle to create two-axis input for a computer device.
+
+
+ Keyboard
+ A device consisting of mechanical keys that are pressed to create input to a computer.
+
+ Keyboard-key
+ A button on a keyboard usually representing letters, numbers, functions, or symbols.
+
+ #
+ Value of a keyboard key.
+
+ takesValue
+
+
+
+
+
+ Keypad
+ A device consisting of keys, usually in a block arrangement, that provides limited input to a system.
+
+ Keypad-key
+ A key on a separate section of a computer keyboard that groups together numeric keys and those for mathematical or other special functions in an arrangement like that of a calculator.
+
+ #
+ Value of keypad key.
+
+ takesValue
+
+
+
+
+
+ Microphone
+ A device designed to convert sound to an electrical signal.
+
+
+ Push-button
+ A switch designed to be operated by pressing a button.
+
+
+
+ Output-device
+ Any piece of computer hardware equipment which converts information into human understandable form.
+
+ Auditory-device
+ A device designed to produce sound.
+
+ Headphones
+ An instrument that consists of a pair of small loudspeakers, or less commonly a single speaker, held close to ears and connected to a signal source such as an audio amplifier, radio, CD player or portable media player.
+
+
+ Loudspeaker
+ A device designed to convert electrical signals to sounds that can be heard.
+
+
+
+ Display-device
+ An output device for presentation of information in visual or tactile form the latter used for example in tactile electronic displays for blind people.
+
+ Computer-screen
+ An electronic device designed as a display or a physical device designed to be a protective meshwork.
+
+ Screen-window
+ A part of a computer screen that contains a display different from the rest of the screen. A window is a graphical control element consisting of a visual area containing some of the graphical user interface of the program it belongs to and is framed by a window decoration.
+
+
+
+ Head-mounted-display
+ An instrument that functions as a display device, worn on the head or as part of a helmet, that has a small display optic in front of one (monocular HMD) or each eye (binocular HMD).
+
+
+ LED-display
+ A LED display is a flat panel display that uses an array of light-emitting diodes as pixels for a video display.
+
+
+
+
+ Recording-device
+ A device that copies information in a signal into a persistent information bearer.
+
+ EEG-recorder
+ A device for recording electric currents in the brain using electrodes applied to the scalp, to the surface of the brain, or placed within the substance of the brain.
+
+
+ File-storage
+ A device for recording digital information to a permanent media.
+
+
+ MEG-recorder
+ A device for measuring the magnetic fields produced by electrical activity in the brain, usually conducted externally.
+
+
+ Motion-capture
+ A device for recording the movement of objects or people.
+
+
+ Tape-recorder
+ A device for recording and reproduction usually using magnetic tape for storage that can be saved and played back.
+
+
+
+ Touchscreen
+ A control component that operates an electronic device by pressing the display on the screen.
+
+
+
+ Machine
+ A human-made device that uses power to apply forces and control movement to perform an action.
+
+
+ Measurement-device
+ A device in which a measure function inheres.
+
+ Clock
+ A device designed to indicate the time of day or to measure the time duration of an event or action.
+
+ Clock-face
+ A location identifier based on clockface numbering or anatomic subregion.
+
+
+
+
+ Robot
+ A mechanical device that sometimes resembles a living animal and is capable of performing a variety of often complex human tasks on command or by being programmed in advance.
+
+
+ Tool
+ A component that is not part of a device but is designed to support its assemby or operation.
+
+
+
+ Document
+ A physical object, or electronic counterpart, that is characterized by containing writing which is meant to be human-readable.
+
+ Book
+ A volume made up of pages fastened along one edge and enclosed between protective covers.
+
+
+ Letter
+ A written message addressed to a person or organization.
+
+
+ Note
+ A brief written record.
+
+
+ Notebook
+ A book for notes or memoranda.
+
+
+ Questionnaire
+ A document consisting of questions and possibly responses, depending on whether it has been filled out.
+
+
+
+ Furnishing
+ Furniture, fittings, and other decorative accessories, such as curtains and carpets, for a house or room.
+
+
+ Manufactured-material
+ Substances created or extracted from raw materials.
+
+ Ceramic
+ A hard, brittle, heat-resistant and corrosion-resistant material made by shaping and then firing a nonmetallic mineral, such as clay, at a high temperature.
+
+
+ Glass
+ A brittle transparent solid with irregular atomic structure.
+
+
+ Paper
+ A thin sheet material produced by mechanically or chemically processing cellulose fibres derived from wood, rags, grasses or other vegetable sources in water.
+
+
+ Plastic
+ Various high-molecular-weight thermoplastic or thermosetting polymers that are capable of being molded, extruded, drawn, or otherwise shaped and then hardened into a form.
+
+
+ Steel
+ An alloy made up of iron with typically a few tenths of a percent of carbon to improve its strength and fracture resistance compared to iron.
+
+
+
+ Media
+ Media are audo/visual/audiovisual modes of communicating information for mass consumption.
+
+ Media-clip
+ A short segment of media.
+
+ Audio-clip
+ A short segment of audio.
+
+
+ Audiovisual-clip
+ A short media segment containing both audio and video.
+
+
+ Video-clip
+ A short segment of video.
+
+
+
+ Visualization
+ An planned process that creates images, diagrams or animations from the input data.
+
+ Animation
+ A form of graphical illustration that changes with time to give a sense of motion or represent dynamic changes in the portrayal.
+
+
+ Art-installation
+ A large-scale, mixed-media constructions, often designed for a specific place or for a temporary period of time.
+
+
+ Braille
+ A display using a system of raised dots that can be read with the fingers by people who are blind.
+
+
+ Image
+ Any record of an imaging event whether physical or electronic.
+
+ Cartoon
+ A type of illustration, sometimes animated, typically in a non-realistic or semi-realistic style. The specific meaning has evolved over time, but the modern usage usually refers to either an image or series of images intended for satire, caricature, or humor. A motion picture that relies on a sequence of illustrations for its animation.
+
+
+ Drawing
+ A representation of an object or outlining a figure, plan, or sketch by means of lines.
+
+
+ Icon
+ A sign (such as a word or graphic symbol) whose form suggests its meaning.
+
+
+ Painting
+ A work produced through the art of painting.
+
+
+ Photograph
+ An image recorded by a camera.
+
+
+
+ Movie
+ A sequence of images displayed in succession giving the illusion of continuous movement.
+
+
+ Outline-visualization
+ A visualization consisting of a line or set of lines enclosing or indicating the shape of an object in a sketch or diagram.
+
+
+ Point-light-visualization
+ A display in which action is depicted using a few points of light, often generated from discrete sensors in motion capture.
+
+
+ Sculpture
+ A two- or three-dimensional representative or abstract forms, especially by carving stone or wood or by casting metal or plaster.
+
+
+ Stick-figure-visualization
+ A drawing showing the head of a human being or animal as a circle and all other parts as straight lines.
+
+
+
+
+ Navigational-object
+ An object whose purpose is to assist directed movement from one location to another.
+
+ Path
+ A trodden way. A way or track laid down for walking or made by continual treading.
+
+
+ Road
+ An open way for the passage of vehicles, persons, or animals on land.
+
+ Lane
+ A defined path with physical dimensions through which an object or substance may traverse.
+
+
+
+ Runway
+ A paved strip of ground on a landing field for the landing and takeoff of aircraft.
+
+
+
+ Vehicle
+ A mobile machine which transports people or cargo.
+
+ Aircraft
+ A vehicle which is able to travel through air in an atmosphere.
+
+
+ Bicycle
+ A human-powered, pedal-driven, single-track vehicle, having two wheels attached to a frame, one behind the other.
+
+
+ Boat
+ A watercraft of any size which is able to float or plane on water.
+
+
+ Car
+ A wheeled motor vehicle used primarily for the transportation of human passengers.
+
+
+ Cart
+ A cart is a vehicle which has two wheels and is designed to transport human passengers or cargo.
+
+
+ Tractor
+ A mobile machine specifically designed to deliver a high tractive effort at slow speeds, and mainly used for the purposes of hauling a trailer or machinery used in agriculture or construction.
+
+
+ Train
+ A connected line of railroad cars with or without a locomotive.
+
+
+ Truck
+ A motor vehicle which, as its primary funcion, transports cargo rather than human passangers.
+
+
+
+
+ Natural-object
+ Something that exists in or is produced by nature, and is not artificial or man-made.
+
+ Mineral
+ A solid, homogeneous, inorganic substance occurring in nature and having a definite chemical composition.
+
+
+ Natural-feature
+ A feature that occurs in nature. A prominent or identifiable aspect, region, or site of interest.
+
+ Field
+ An unbroken expanse as of ice or grassland.
+
+
+ Hill
+ A rounded elevation of limited extent rising above the surrounding land with local relief of less than 300m.
+
+
+ Mountain
+ A landform that extends above the surrounding terrain in a limited area.
+
+
+ River
+ A natural freshwater surface stream of considerable volume and a permanent or seasonal flow, moving in a definite channel toward a sea, lake, or another river.
+
+
+ Waterfall
+ A sudden descent of water over a step or ledge in the bed of a river.
+
+
+
+
+
+ Sound
+ Mechanical vibrations transmitted by an elastic medium. Something that can be heard.
+
+ Environmental-sound
+ Sounds occuring in the environment. An accumulation of noise pollution that occurs outside. This noise can be caused by transport, industrial, and recreational activities.
+
+ Crowd-sound
+ Noise produced by a mixture of sounds from a large group of people.
+
+
+ Signal-noise
+ Any part of a signal that is not the true or original signal but is introduced by the communication mechanism.
+
+
+
+ Musical-sound
+ Sound produced by continuous and regular vibrations, as opposed to noise.
+
+ Instrument-sound
+ Sound produced by a musical instrument.
+
+
+ Tone
+ A musical note, warble, or other sound used as a particular signal on a telephone or answering machine.
+
+
+ Vocalized-sound
+ Musical sound produced by vocal cords in a biological agent.
+
+
+
+ Named-animal-sound
+ A sound recognizable as being associated with particular animals.
+
+ Barking
+ Sharp explosive cries like sounds made by certain animals, especially a dog, fox, or seal.
+
+
+ Bleating
+ Wavering cries like sounds made by a sheep, goat, or calf.
+
+
+ Chirping
+ Short, sharp, high-pitched noises like sounds made by small birds or an insects.
+
+
+ Crowing
+ Loud shrill sounds characteristic of roosters.
+
+
+ Growling
+ Low guttural sounds like those that made in the throat by a hostile dog or other animal.
+
+
+ Meowing
+ Vocalizations like those made by as those cats. These sounds have diverse tones and are sometimes chattered, murmured or whispered. The purpose can be assertive.
+
+
+ Mooing
+ Deep vocal sounds like those made by a cow.
+
+
+ Purring
+ Low continuous vibratory sound such as those made by cats. The sound expresses contentment.
+
+
+ Roaring
+ Loud, deep, or harsh prolonged sounds such as those made by big cats and bears for long-distance communication and intimidation.
+
+
+ Squawking
+ Loud, harsh noises such as those made by geese.
+
+
+
+ Named-object-sound
+ A sound identifiable as coming from a particular type of object.
+
+ Alarm-sound
+ A loud signal often loud continuous ringing to alert people to a problem or condition that requires urgent attention.
+
+
+ Beep
+ A short, single tone, that is typically high-pitched and generally made by a computer or other machine.
+
+
+ Buzz
+ A persistent vibratory sound often made by a buzzer device and used to indicate something incorrect.
+
+
+ Click
+ The sound made by a mechanical cash register, often to designate a reward.
+
+
+ Ding
+ A short ringing sound such as that made by a bell, often to indicate a correct response or the expiration of time.
+
+
+ Horn-blow
+ A loud sound made by forcing air through a sound device that funnels air to create the sound, often used to sound an alert.
+
+
+ Ka-ching
+ The sound made by a mechanical cash register, often to designate a reward.
+
+
+ Siren
+ A loud, continuous sound often varying in frequency designed to indicate an emergency.
+
+
+
+
+
+ Physiologic-pattern
+ EEG graphoelements or rhythms that are considered normal. They only should be scored if the physician considers that they have a specific clinical significance for the recording.
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Rhythmic-activity-pattern
+ Not further specified.
+
+ suggestedTag
+ Rhythmic-activity-morphology
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+ inLibrary
+ score
+
+
+
+ Slow-alpha-variant-rhythm
+ Characteristic rhythms mostly at 4-5 Hz, recorded most prominently over the posterior regions of the head. Generally alternate, or are intermixed, with alpha rhythm to which they often are harmonically related. Amplitude varies but is frequently close to 50 micro V. Blocked or attenuated by attention, especially visual, and mental effort. Comment: slow alpha variant rhythms should be distinguished from posterior slow waves characteristic of children and adolescents and occasionally seen in young adults.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+ inLibrary
+ score
+
+
+
+ Fast-alpha-variant-rhythm
+ Characteristic rhythm at 14-20 Hz, detected most prominently over the posterior regions of the head. May alternate or be intermixed with alpha rhythm. Blocked or attenuated by attention, especially visual, and mental effort.
+
+ suggestedTag
+ Appearance-mode
+ Discharge-pattern
+
+
+ inLibrary
+ score
+
+
+
+ Ciganek-rhythm
+ Midline theta rhythm (Ciganek rhythm) may be observed during wakefulness or drowsiness. The frequency is 4-7 Hz, and the location is midline (ie, vertex). The morphology is rhythmic, smooth, sinusoidal, arciform, spiky, or mu-like.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+ inLibrary
+ score
+
+
+
+ Lambda-wave
+ Diphasic sharp transient occurring over occipital regions of the head of waking subjects during visual exploration. The main component is positive relative to other areas. Time-locked to saccadic eye movement. Amplitude varies but is generally below 50 micro V.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+ inLibrary
+ score
+
+
+
+ Posterior-slow-waves-youth
+ Waves in the delta and theta range, of variable form, lasting 0.35 to 0.5 s or longer without any consistent periodicity, found in the range of 6-12 years (occasionally seen in young adults). Alpha waves are almost always intermingled or superimposed. Reactive similar to alpha activity.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+ inLibrary
+ score
+
+
+
+ Diffuse-slowing-hyperventilation
+ Diffuse slowing induced by hyperventilation. Bilateral, diffuse slowing during hyperventilation. Recorded in 70 percent of normal children (3-5 years) and less then 10 percent of adults. Usually appear in the posterior regions and spread forward in younger age group, whereas they tend to appear in the frontal regions and spread backward in the older age group.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+ inLibrary
+ score
+
+
+
+ Photic-driving
+ Physiologic response consisting of rhythmic activity elicited over the posterior regions of the head by repetitive photic stimulation at frequencies of about 5-30 Hz. Comments: term should be limited to activity time-locked to the stimulus and of frequency identical or harmonically related to the stimulus frequency. Photic driving should be distinguished from the visual evoked potentials elicited by isolated flashes of light or flashes repeated at very low frequency.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+ inLibrary
+ score
+
+
+
+ Photomyogenic-response
+ A response to intermittent photic stimulation characterized by the appearance in the record of brief, repetitive muscular artifacts (spikes) over the anterior regions of the head. These often increase gradually in amplitude as stimuli are continued and cease promptly when the stimulus is withdrawn. Comment: this response is frequently associated with flutter of the eyelids and vertical oscillations of the eyeballs and sometimes with discrete jerking mostly involving the musculature of the face and head. (Preferred to synonym: photo-myoclonic response).
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+ inLibrary
+ score
+
+
+
+ Other-physiologic-pattern
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Polygraphic-channel-finding
+ Changes observed in polygraphic channels can be scored: EOG, Respiration, ECG, EMG, other polygraphic channel (+ free text), and their significance logged (normal, abnormal, no definite abnormality).
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ EOG-channel-finding
+ ElectroOculoGraphy.
+
+ suggestedTag
+ Finding-significance-to-recording
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Respiration-channel-finding
+
+ suggestedTag
+ Finding-significance-to-recording
+
+
+ inLibrary
+ score
+
+
+ Respiration-oxygen-saturation
+
+ inLibrary
+ score
+
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Respiration-feature
+
+ inLibrary
+ score
+
+
+ Apnoe-respiration
+ Add duration (range in seconds) and comments in free text.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Hypopnea-respiration
+ Add duration (range in seconds) and comments in free text
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Apnea-hypopnea-index-respiration
+ Events/h. Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Periodic-respiration
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Tachypnea-respiration
+ Cycles/min. Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Other-respiration-feature
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+
+ ECG-channel-finding
+ Electrocardiography.
+
+ suggestedTag
+ Finding-significance-to-recording
+
+
+ inLibrary
+ score
+
+
+ ECG-QT-period
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ ECG-feature
+
+ inLibrary
+ score
+
+
+ ECG-sinus-rhythm
+ Normal rhythm. Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ ECG-arrhythmia
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ ECG-asystolia
+ Add duration (range in seconds) and comments in free text.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ ECG-bradycardia
+ Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ ECG-extrasystole
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ ECG-ventricular-premature-depolarization
+ Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ ECG-tachycardia
+ Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Other-ECG-feature
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+
+ EMG-channel-finding
+ electromyography
+
+ suggestedTag
+ Finding-significance-to-recording
+
+
+ inLibrary
+ score
+
+
+ EMG-muscle-side
+
+ inLibrary
+ score
+
+
+ EMG-left-muscle
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ EMG-right-muscle
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ EMG-bilateral-muscle
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ EMG-muscle-name
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ EMG-feature
+
+ inLibrary
+ score
+
+
+ EMG-myoclonus
+
+ inLibrary
+ score
+
+
+ Negative-myoclonus
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ EMG-myoclonus-rhythmic
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ EMG-myoclonus-arrhythmic
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ EMG-myoclonus-synchronous
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ EMG-myoclonus-asynchronous
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ EMG-PLMS
+ Periodic limb movements in sleep.
+
+ inLibrary
+ score
+
+
+
+ EMG-spasm
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ EMG-tonic-contraction
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ EMG-asymmetric-activation
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ EMG-asymmetric-activation-left-first
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ EMG-asymmetric-activation-right-first
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Other-EMG-features
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+
+ Other-polygraphic-channel
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Property
+ Something that pertains to a thing. A characteristic of some entity. A quality or feature regarded as a characteristic or inherent part of someone or something. HED attributes are adjectives or adverbs.
+
+ extensionAllowed
+
+
+ Agent-property
+ Something that pertains to an agent.
+
+ extensionAllowed
+
+
+ Agent-state
+ The state of the agent.
+
+ Agent-cognitive-state
+ The state of the cognitive processes or state of mind of the agent.
+
+ Alert
+ Condition of heightened watchfulness or preparation for action.
+
+
+ Anesthetized
+ Having lost sensation to pain or having senses dulled due to the effects of an anesthetic.
+
+
+ Asleep
+ Having entered a periodic, readily reversible state of reduced awareness and metabolic activity, usually accompanied by physical relaxation and brain activity.
+
+
+ Attentive
+ Concentrating and focusing mental energy on the task or surroundings.
+
+
+ Awake
+ In a non sleeping state.
+
+
+ Brain-dead
+ Characterized by the irreversible absence of cortical and brain stem functioning.
+
+
+ Comatose
+ In a state of profound unconsciousness associated with markedly depressed cerebral activity.
+
+
+ Distracted
+ Lacking in concentration because of being preoccupied.
+
+
+ Drowsy
+ In a state of near-sleep, a strong desire for sleep, or sleeping for unusually long periods.
+
+
+ Intoxicated
+ In a state with disturbed psychophysiological functions and responses as a result of administration or ingestion of a psychoactive substance.
+
+
+ Locked-in
+ In a state of complete paralysis of all voluntary muscles except for the ones that control the movements of the eyes.
+
+
+ Passive
+ Not responding or initiating an action in response to a stimulus.
+
+
+ Resting
+ A state in which the agent is not exhibiting any physical exertion.
+
+
+ Vegetative
+ A state of wakefulness and conscience, but (in contrast to coma) with involuntary opening of the eyes and movements (such as teeth grinding, yawning, or thrashing of the extremities).
+
+
+
+ Agent-emotional-state
+ The status of the general temperament and outlook of an agent.
+
+ Angry
+ Experiencing emotions characterized by marked annoyance or hostility.
+
+
+ Aroused
+ In a state reactive to stimuli leading to increased heart rate and blood pressure, sensory alertness, mobility and readiness to respond.
+
+
+ Awed
+ Filled with wonder. Feeling grand, sublime or powerful emotions characterized by a combination of joy, fear, admiration, reverence, and/or respect.
+
+
+ Compassionate
+ Feeling or showing sympathy and concern for others often evoked for a person who is in distress and associated with altruistic motivation.
+
+
+ Content
+ Feeling satisfaction with things as they are.
+
+
+ Disgusted
+ Feeling revulsion or profound disapproval aroused by something unpleasant or offensive.
+
+
+ Emotionally-neutral
+ Feeling neither satisfied nor dissatisfied.
+
+
+ Empathetic
+ Understanding and sharing the feelings of another. Being aware of, being sensitive to, and vicariously experiencing the feelings, thoughts, and experience of another.
+
+
+ Excited
+ Feeling great enthusiasm and eagerness.
+
+
+ Fearful
+ Feeling apprehension that one may be in danger.
+
+
+ Frustrated
+ Feeling annoyed as a result of being blocked, thwarted, disappointed or defeated.
+
+
+ Grieving
+ Feeling sorrow in response to loss, whether physical or abstract.
+
+
+ Happy
+ Feeling pleased and content.
+
+
+ Jealous
+ Feeling threatened by a rival in a relationship with another individual, in particular an intimate partner, usually involves feelings of threat, fear, suspicion, distrust, anxiety, anger, betrayal, and rejection.
+
+
+ Joyful
+ Feeling delight or intense happiness.
+
+
+ Loving
+ Feeling a strong positive emotion of affection and attraction.
+
+
+ Relieved
+ No longer feeling pain, distress, anxiety, or reassured.
+
+
+ Sad
+ Feeling grief or unhappiness.
+
+
+ Stressed
+ Experiencing mental or emotional strain or tension.
+
+
+
+ Agent-physiological-state
+ Having to do with the mechanical, physical, or biochemical function of an agent.
+
+ Healthy
+ Having no significant health-related issues.
+
+ relatedTag
+ Sick
+
+
+
+ Hungry
+ Being in a state of craving or desiring food.
+
+ relatedTag
+ Sated
+ Thirsty
+
+
+
+ Rested
+ Feeling refreshed and relaxed.
+
+ relatedTag
+ Tired
+
+
+
+ Sated
+ Feeling full.
+
+ relatedTag
+ Hungry
+
+
+
+ Sick
+ Being in a state of ill health, bodily malfunction, or discomfort.
+
+ relatedTag
+ Healthy
+
+
+
+ Thirsty
+ Feeling a need to drink.
+
+ relatedTag
+ Hungry
+
+
+
+ Tired
+ Feeling in need of sleep or rest.
+
+ relatedTag
+ Rested
+
+
+
+
+ Agent-postural-state
+ Pertaining to the position in which agent holds their body.
+
+ Crouching
+ Adopting a position where the knees are bent and the upper body is brought forward and down, sometimes to avoid detection or to defend oneself.
+
+
+ Eyes-closed
+ Keeping eyes closed with no blinking.
+
+
+ Eyes-open
+ Keeping eyes open with occasional blinking.
+
+
+ Kneeling
+ Positioned where one or both knees are on the ground.
+
+
+ On-treadmill
+ Ambulation on an exercise apparatus with an endless moving belt to support moving in place.
+
+
+ Prone
+ Positioned in a recumbent body position whereby the person lies on its stomach and faces downward.
+
+
+ Seated-with-chin-rest
+ Using a device that supports the chin and head.
+
+
+ Sitting
+ In a seated position.
+
+
+ Standing
+ Assuming or maintaining an erect upright position.
+
+
+
+
+ Agent-task-role
+ The function or part that is ascribed to an agent in performing the task.
+
+ Experiment-actor
+ An agent who plays a predetermined role to create the experiment scenario.
+
+
+ Experiment-controller
+ An agent exerting control over some aspect of the experiment.
+
+
+ Experiment-participant
+ Someone who takes part in an activity related to an experiment.
+
+
+ Experimenter
+ Person who is the owner of the experiment and has its responsibility.
+
+
+
+ Agent-trait
+ A genetically, environmentally, or socially determined characteristic of an agent.
+
+ Age
+ Length of time elapsed time since birth of the agent.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+
+
+ Agent-experience-level
+ Amount of skill or knowledge that the agent has as pertains to the task.
+
+ Expert-level
+ Having comprehensive and authoritative knowledge of or skill in a particular area related to the task.
+
+ relatedTag
+ Intermediate-experience-level
+ Novice-level
+
+
+
+ Intermediate-experience-level
+ Having a moderate amount of knowledge or skill related to the task.
+
+ relatedTag
+ Expert-level
+ Novice-level
+
+
+
+ Novice-level
+ Being inexperienced in a field or situation related to the task.
+
+ relatedTag
+ Expert-level
+ Intermediate-experience-level
+
+
+
+
+ Ethnicity
+ Belong to a social group that has a common national or cultural tradition. Use with Label to avoid extension.
+
+
+ Gender
+ Characteristics that are socially constructed, including norms, behaviors, and roles based on sex.
+
+
+ Handedness
+ Individual preference for use of a hand, known as the dominant hand.
+
+ Ambidextrous
+ Having no overall dominance in the use of right or left hand or foot in the performance of tasks that require one hand or foot.
+
+
+ Left-handed
+ Preference for using the left hand or foot for tasks requiring the use of a single hand or foot.
+
+
+ Right-handed
+ Preference for using the right hand or foot for tasks requiring the use of a single hand or foot.
+
+
+
+ Race
+ Belonging to a group sharing physical or social qualities as defined within a specified society. Use with Label to avoid extension.
+
+
+ Sex
+ Physical properties or qualities by which male is distinguished from female.
+
+ Female
+ Biological sex of an individual with female sexual organs such ova.
+
+
+ Intersex
+ Having genitalia and/or secondary sexual characteristics of indeterminate sex.
+
+
+ Male
+ Biological sex of an individual with male sexual organs producing sperm.
+
+
+
+
+
+ Data-property
+ Something that pertains to data or information.
+
+ extensionAllowed
+
+
+ Data-marker
+ An indicator placed to mark something.
+
+ Data-break-marker
+ An indicator place to indicate a gap in the data.
+
+
+ Temporal-marker
+ An indicator placed at a particular time in the data.
+
+ Inset
+ Marks an intermediate point in an ongoing event of temporal extent.
+
+ topLevelTagGroup
+
+
+ reserved
+
+
+ relatedTag
+ Onset
+ Offset
+
+
+
+ Offset
+ Marks the end of an event of temporal extent.
+
+ topLevelTagGroup
+
+
+ reserved
+
+
+ relatedTag
+ Onset
+ Inset
+
+
+
+ Onset
+ Marks the start of an ongoing event of temporal extent.
+
+ topLevelTagGroup
+
+
+ reserved
+
+
+ relatedTag
+ Inset
+ Offset
+
+
+
+ Pause
+ Indicates the temporary interruption of the operation a process and subsequently wait for a signal to continue.
+
+
+ Time-out
+ A cancellation or cessation that automatically occurs when a predefined interval of time has passed without a certain event occurring.
+
+
+ Time-sync
+ A synchronization signal whose purpose to help synchronize different signals or processes. Often used to indicate a marker inserted into the recorded data to allow post hoc synchronization of concurrently recorded data streams.
+
+
+
+
+ Data-resolution
+ Smallest change in a quality being measured by an sensor that causes a perceptible change.
+
+ Printer-resolution
+ Resolution of a printer, usually expressed as the number of dots-per-inch for a printer.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+
+
+ Screen-resolution
+ Resolution of a screen, usually expressed as the of pixels in a dimension for a digital display device.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+
+
+ Sensory-resolution
+ Resolution of measurements by a sensing device.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+
+
+ Spatial-resolution
+ Linear spacing of a spatial measurement.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+
+
+ Spectral-resolution
+ Measures the ability of a sensor to resolve features in the electromagnetic spectrum.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+
+
+ Temporal-resolution
+ Measures the ability of a sensor to resolve features in time.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+
+
+
+ Data-source-type
+ The type of place, person, or thing from which the data comes or can be obtained.
+
+ Computed-feature
+ A feature computed from the data by a tool. This tag should be grouped with a label of the form Toolname_propertyName.
+
+
+ Computed-prediction
+ A computed extrapolation of known data.
+
+
+ Expert-annotation
+ An explanatory or critical comment or other in-context information provided by an authority.
+
+
+ Instrument-measurement
+ Information obtained from a device that is used to measure material properties or make other observations.
+
+
+ Observation
+ Active acquisition of information from a primary source. Should be grouped with a label of the form AgentID_featureName.
+
+
+
+ Data-value
+ Designation of the type of a data item.
+
+ Categorical-value
+ Indicates that something can take on a limited and usually fixed number of possible values.
+
+ Categorical-class-value
+ Categorical values that fall into discrete classes such as true or false. The grouping is absolute in the sense that it is the same for all participants.
+
+ All
+ To a complete degree or to the full or entire extent.
+
+ relatedTag
+ Some
+ None
+
+
+
+ Correct
+ Free from error. Especially conforming to fact or truth.
+
+ relatedTag
+ Wrong
+
+
+
+ Explicit
+ Stated clearly and in detail, leaving no room for confusion or doubt.
+
+ relatedTag
+ Implicit
+
+
+
+ False
+ Not in accordance with facts, reality or definitive criteria.
+
+ relatedTag
+ True
+
+
+
+ Implicit
+ Implied though not plainly expressed.
+
+ relatedTag
+ Explicit
+
+
+
+ Invalid
+ Not allowed or not conforming to the correct format or specifications.
+
+ relatedTag
+ Valid
+
+
+
+ None
+ No person or thing, nobody, not any.
+
+ relatedTag
+ All
+ Some
+
+
+
+ Some
+ At least a small amount or number of, but not a large amount of, or often.
+
+ relatedTag
+ All
+ None
+
+
+
+ True
+ Conforming to facts, reality or definitive criteria.
+
+ relatedTag
+ False
+
+
+
+ Valid
+ Allowable, usable, or acceptable.
+
+ relatedTag
+ Invalid
+
+
+
+ Wrong
+ Inaccurate or not correct.
+
+ relatedTag
+ Correct
+
+
+
+
+ Categorical-judgment-value
+ Categorical values that are based on the judgment or perception of the participant such familiar and famous.
+
+ Abnormal
+ Deviating in any way from the state, position, structure, condition, behavior, or rule which is considered a norm.
+
+ relatedTag
+ Normal
+
+
+
+ Asymmetrical
+ Lacking symmetry or having parts that fail to correspond to one another in shape, size, or arrangement.
+
+ relatedTag
+ Symmetrical
+
+
+
+ Audible
+ A sound that can be perceived by the participant.
+
+ relatedTag
+ Inaudible
+
+
+
+ Complex
+ Hard, involved or complicated, elaborate, having many parts.
+
+ relatedTag
+ Simple
+
+
+
+ Congruent
+ Concordance of multiple evidence lines. In agreement or harmony.
+
+ relatedTag
+ Incongruent
+
+
+
+ Constrained
+ Keeping something within particular limits or bounds.
+
+ relatedTag
+ Unconstrained
+
+
+
+ Disordered
+ Not neatly arranged. Confused and untidy. A structural quality in which the parts of an object are non-rigid.
+
+ relatedTag
+ Ordered
+
+
+
+ Familiar
+ Recognized, familiar, or within the scope of knowledge.
+
+ relatedTag
+ Unfamiliar
+ Famous
+
+
+
+ Famous
+ A person who has a high degree of recognition by the general population for his or her success or accomplishments. A famous person.
+
+ relatedTag
+ Familiar
+ Unfamiliar
+
+
+
+ Inaudible
+ A sound below the threshold of perception of the participant.
+
+ relatedTag
+ Audible
+
+
+
+ Incongruent
+ Not in agreement or harmony.
+
+ relatedTag
+ Congruent
+
+
+
+ Involuntary
+ An action that is not made by choice. In the body, involuntary actions (such as blushing) occur automatically, and cannot be controlled by choice.
+
+ relatedTag
+ Voluntary
+
+
+
+ Masked
+ Information exists but is not provided or is partially obscured due to security, privacy, or other concerns.
+
+ relatedTag
+ Unmasked
+
+
+
+ Normal
+ Being approximately average or within certain limits. Conforming with or constituting a norm or standard or level or type or social norm.
+
+ relatedTag
+ Abnormal
+
+
+
+ Ordered
+ Conforming to a logical or comprehensible arrangement of separate elements.
+
+ relatedTag
+ Disordered
+
+
+
+ Simple
+ Easily understood or presenting no difficulties.
+
+ relatedTag
+ Complex
+
+
+
+ Symmetrical
+ Made up of exactly similar parts facing each other or around an axis. Showing aspects of symmetry.
+
+ relatedTag
+ Asymmetrical
+
+
+
+ Unconstrained
+ Moving without restriction.
+
+ relatedTag
+ Constrained
+
+
+
+ Unfamiliar
+ Not having knowledge or experience of.
+
+ relatedTag
+ Familiar
+ Famous
+
+
+
+ Unmasked
+ Information is revealed.
+
+ relatedTag
+ Masked
+
+
+
+ Voluntary
+ Using free will or design; not forced or compelled; controlled by individual volition.
+
+ relatedTag
+ Involuntary
+
+
+
+
+ Categorical-level-value
+ Categorical values based on dividing a continuous variable into levels such as high and low.
+
+ Cold
+ Having an absence of heat.
+
+ relatedTag
+ Hot
+
+
+
+ Deep
+ Extending relatively far inward or downward.
+
+ relatedTag
+ Shallow
+
+
+
+ High
+ Having a greater than normal degree, intensity, or amount.
+
+ relatedTag
+ Low
+ Medium
+
+
+
+ Hot
+ Having an excess of heat.
+
+ relatedTag
+ Cold
+
+
+
+ Large
+ Having a great extent such as in physical dimensions, period of time, amplitude or frequency.
+
+ relatedTag
+ Small
+
+
+
+ Liminal
+ Situated at a sensory threshold that is barely perceptible or capable of eliciting a response.
+
+ relatedTag
+ Subliminal
+ Supraliminal
+
+
+
+ Loud
+ Having a perceived high intensity of sound.
+
+ relatedTag
+ Quiet
+
+
+
+ Low
+ Less than normal in degree, intensity or amount.
+
+ relatedTag
+ High
+
+
+
+ Medium
+ Mid-way between small and large in number, quantity, magnitude or extent.
+
+ relatedTag
+ Low
+ High
+
+
+
+ Negative
+ Involving disadvantage or harm.
+
+ relatedTag
+ Positive
+
+
+
+ Positive
+ Involving advantage or good.
+
+ relatedTag
+ Negative
+
+
+
+ Quiet
+ Characterizing a perceived low intensity of sound.
+
+ relatedTag
+ Loud
+
+
+
+ Rough
+ Having a surface with perceptible bumps, ridges, or irregularities.
+
+ relatedTag
+ Smooth
+
+
+
+ Shallow
+ Having a depth which is relatively low.
+
+ relatedTag
+ Deep
+
+
+
+ Small
+ Having a small extent such as in physical dimensions, period of time, amplitude or frequency.
+
+ relatedTag
+ Large
+
+
+
+ Smooth
+ Having a surface free from bumps, ridges, or irregularities.
+
+ relatedTag
+ Rough
+
+
+
+ Subliminal
+ Situated below a sensory threshold that is imperceptible or not capable of eliciting a response.
+
+ relatedTag
+ Liminal
+ Supraliminal
+
+
+
+ Supraliminal
+ Situated above a sensory threshold that is perceptible or capable of eliciting a response.
+
+ relatedTag
+ Liminal
+ Subliminal
+
+
+
+ Thick
+ Wide in width, extent or cross-section.
+
+ relatedTag
+ Thin
+
+
+
+ Thin
+ Narrow in width, extent or cross-section.
+
+ relatedTag
+ Thick
+
+
+
+
+ Categorical-orientation-value
+ Value indicating the orientation or direction of something.
+
+ Backward
+ Directed behind or to the rear.
+
+ relatedTag
+ Forward
+
+
+
+ Downward
+ Moving or leading toward a lower place or level.
+
+ relatedTag
+ Leftward
+ Rightward
+ Upward
+
+
+
+ Forward
+ At or near or directed toward the front.
+
+ relatedTag
+ Backward
+
+
+
+ Horizontally-oriented
+ Oriented parallel to or in the plane of the horizon.
+
+ relatedTag
+ Vertically-oriented
+
+
+
+ Leftward
+ Going toward or facing the left.
+
+ relatedTag
+ Downward
+ Rightward
+ Upward
+
+
+
+ Oblique
+ Slanting or inclined in direction, course, or position that is neither parallel nor perpendicular nor right-angular.
+
+ relatedTag
+ Rotated
+
+
+
+ Rightward
+ Going toward or situated on the right.
+
+ relatedTag
+ Downward
+ Leftward
+ Upward
+
+
+
+ Rotated
+ Positioned offset around an axis or center.
+
+
+ Upward
+ Moving, pointing, or leading to a higher place, point, or level.
+
+ relatedTag
+ Downward
+ Leftward
+ Rightward
+
+
+
+ Vertically-oriented
+ Oriented perpendicular to the plane of the horizon.
+
+ relatedTag
+ Horizontally-oriented
+
+
+
+
+
+ Physical-value
+ The value of some physical property of something.
+
+ Temperature
+ A measure of hot or cold based on the average kinetic energy of the atoms or molecules in the system.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ temperatureUnits
+
+
+
+
+ Weight
+ The relative mass or the quantity of matter contained by something.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ weightUnits
+
+
+
+
+
+ Quantitative-value
+ Something capable of being estimated or expressed with numeric values.
+
+ Fraction
+ A numerical value between 0 and 1.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+
+
+ Item-count
+ The integer count of something which is usually grouped with the entity it is counting. (Item-count/3, A) indicates that 3 of A have occurred up to this point.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+
+
+ Item-index
+ The index of an item in a collection, sequence or other structure. (A (Item-index/3, B)) means that A is item number 3 in B.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+
+
+ Item-interval
+ An integer indicating how many items or entities have passed since the last one of these. An item interval of 0 indicates the current item.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+
+
+ Percentage
+ A fraction or ratio with 100 understood as the denominator.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+
+
+ Ratio
+ A quotient of quantities of the same kind for different components within the same system.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+
+
+
+ Spatiotemporal-value
+ A property relating to space and/or time.
+
+ Rate-of-change
+ The amount of change accumulated per unit time.
+
+ Acceleration
+ Magnitude of the rate of change in either speed or direction. The direction of change should be given separately.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ accelerationUnits
+
+
+
+
+ Frequency
+ Frequency is the number of occurrences of a repeating event per unit time.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ frequencyUnits
+
+
+
+
+ Jerk-rate
+ Magnitude of the rate at which the acceleration of an object changes with respect to time. The direction of change should be given separately.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ jerkUnits
+
+
+
+
+ Refresh-rate
+ The frequency with which the image on a computer monitor or similar electronic display screen is refreshed, usually expressed in hertz.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+
+
+ Sampling-rate
+ The number of digital samples taken or recorded per unit of time.
+
+ #
+
+ takesValue
+
+
+ unitClass
+ frequencyUnits
+
+
+
+
+ Speed
+ A scalar measure of the rate of movement of the object expressed either as the distance travelled divided by the time taken (average speed) or the rate of change of position with respect to time at a particular point (instantaneous speed). The direction of change should be given separately.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ speedUnits
+
+
+
+
+ Temporal-rate
+ The number of items per unit of time.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ frequencyUnits
+
+
+
+
+
+ Spatial-value
+ Value of an item involving space.
+
+ Angle
+ The amount of inclination of one line to another or the plane of one object to another.
+
+ #
+
+ takesValue
+
+
+ unitClass
+ angleUnits
+
+
+ valueClass
+ numericClass
+
+
+
+
+ Distance
+ A measure of the space separating two objects or points.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ physicalLengthUnits
+
+
+
+
+ Position
+ A reference to the alignment of an object, a particular situation or view of a situation, or the location of an object. Coordinates with respect a specified frame of reference or the default Screen-frame if no frame is given.
+
+ X-position
+ The position along the x-axis of the frame of reference.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ physicalLengthUnits
+
+
+
+
+ Y-position
+ The position along the y-axis of the frame of reference.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ physicalLengthUnits
+
+
+
+
+ Z-position
+ The position along the z-axis of the frame of reference.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ physicalLengthUnits
+
+
+
+
+
+ Size
+ The physical magnitude of something.
+
+ Area
+ The extent of a 2-dimensional surface enclosed within a boundary.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ areaUnits
+
+
+
+
+ Depth
+ The distance from the surface of something especially from the perspective of looking from the front.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ physicalLengthUnits
+
+
+
+
+ Height
+ The vertical measurement or distance from the base to the top of an object.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ physicalLengthUnits
+
+
+
+
+ Length
+ The linear extent in space from one end of something to the other end, or the extent of something from beginning to end.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ physicalLengthUnits
+
+
+
+
+ Volume
+ The amount of three dimensional space occupied by an object or the capacity of a space or container.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ volumeUnits
+
+
+
+
+ Width
+ The extent or measurement of something from side to side.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ physicalLengthUnits
+
+
+
+
+
+
+ Temporal-value
+ A characteristic of or relating to time or limited by time.
+
+ Delay
+ The time at which an event start time is delayed from the current onset time. This tag defines the start time of an event of temporal extent and may be used with the Duration tag.
+
+ topLevelTagGroup
+
+
+ reserved
+
+
+ relatedTag
+ Duration
+
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ timeUnits
+
+
+
+
+ Duration
+ The period of time during which an event occurs. This tag defines the end time of an event of temporal extent and may be used with the Delay tag.
+
+ topLevelTagGroup
+
+
+ reserved
+
+
+ relatedTag
+ Delay
+
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ timeUnits
+
+
+
+
+ Time-interval
+ The period of time separating two instances, events, or occurrences.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ timeUnits
+
+
+
+
+ Time-value
+ A value with units of time. Usually grouped with tags identifying what the value represents.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ timeUnits
+
+
+
+
+
+
+ Statistical-value
+ A value based on or employing the principles of statistics.
+
+ extensionAllowed
+
+
+ Data-maximum
+ The largest possible quantity or degree.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+
+
+ Data-mean
+ The sum of a set of values divided by the number of values in the set.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+
+
+ Data-median
+ The value which has an equal number of values greater and less than it.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+
+
+ Data-minimum
+ The smallest possible quantity.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+
+
+ Probability
+ A measure of the expectation of the occurrence of a particular event.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+
+
+ Standard-deviation
+ A measure of the range of values in a set of numbers. Standard deviation is a statistic used as a measure of the dispersion or variation in a distribution, equal to the square root of the arithmetic mean of the squares of the deviations from the arithmetic mean.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+
+
+ Statistical-accuracy
+ A measure of closeness to true value expressed as a number between 0 and 1.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+
+
+ Statistical-precision
+ A quantitative representation of the degree of accuracy necessary for or associated with a particular action.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+
+
+ Statistical-recall
+ Sensitivity is a measurement datum qualifying a binary classification test and is computed by substracting the false negative rate to the integral numeral 1.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+
+
+ Statistical-uncertainty
+ A measure of the inherent variability of repeated observation measurements of a quantity including quantities evaluated by statistical methods and by other means.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+
+
+
+
+ Data-variability-attribute
+ An attribute describing how something changes or varies.
+
+ Abrupt
+ Marked by sudden change.
+
+
+ Constant
+ Continually recurring or continuing without interruption. Not changing in time or space.
+
+
+ Continuous
+ Uninterrupted in time, sequence, substance, or extent.
+
+ relatedTag
+ Discrete
+ Discontinuous
+
+
+
+ Decreasing
+ Becoming smaller or fewer in size, amount, intensity, or degree.
+
+ relatedTag
+ Increasing
+
+
+
+ Deterministic
+ No randomness is involved in the development of the future states of the element.
+
+ relatedTag
+ Random
+ Stochastic
+
+
+
+ Discontinuous
+ Having a gap in time, sequence, substance, or extent.
+
+ relatedTag
+ Continuous
+
+
+
+ Discrete
+ Constituting a separate entities or parts.
+
+ relatedTag
+ Continuous
+ Discontinuous
+
+
+
+ Estimated-value
+ Something that has been calculated or measured approximately.
+
+
+ Exact-value
+ A value that is viewed to the true value according to some standard.
+
+
+ Flickering
+ Moving irregularly or unsteadily or burning or shining fitfully or with a fluctuating light.
+
+
+ Fractal
+ Having extremely irregular curves or shapes for which any suitably chosen part is similar in shape to a given larger or smaller part when magnified or reduced to the same size.
+
+
+ Increasing
+ Becoming greater in size, amount, or degree.
+
+ relatedTag
+ Decreasing
+
+
+
+ Random
+ Governed by or depending on chance. Lacking any definite plan or order or purpose.
+
+ relatedTag
+ Deterministic
+ Stochastic
+
+
+
+ Repetitive
+ A recurring action that is often non-purposeful.
+
+
+ Stochastic
+ Uses a random probability distribution or pattern that may be analysed statistically but may not be predicted precisely to determine future states.
+
+ relatedTag
+ Deterministic
+ Random
+
+
+
+ Varying
+ Differing in size, amount, degree, or nature.
+
+
+
+
+ Environmental-property
+ Relating to or arising from the surroundings of an agent.
+
+ Augmented-reality
+ Using technology that enhances real-world experiences with computer-derived digital overlays to change some aspects of perception of the natural environment. The digital content is shown to the user through a smart device or glasses and responds to changes in the environment.
+
+
+ Indoors
+ Located inside a building or enclosure.
+
+
+ Motion-platform
+ A mechanism that creates the feelings of being in a real motion environment.
+
+
+ Outdoors
+ Any area outside a building or shelter.
+
+
+ Real-world
+ Located in a place that exists in real space and time under realistic conditions.
+
+
+ Rural
+ Of or pertaining to the country as opposed to the city.
+
+
+ Terrain
+ Characterization of the physical features of a tract of land.
+
+ Composite-terrain
+ Tracts of land characterized by a mixure of physical features.
+
+
+ Dirt-terrain
+ Tracts of land characterized by a soil surface and lack of vegetation.
+
+
+ Grassy-terrain
+ Tracts of land covered by grass.
+
+
+ Gravel-terrain
+ Tracts of land covered by a surface consisting a loose aggregation of small water-worn or pounded stones.
+
+
+ Leaf-covered-terrain
+ Tracts of land covered by leaves and composited organic material.
+
+
+ Muddy-terrain
+ Tracts of land covered by a liquid or semi-liquid mixture of water and some combination of soil, silt, and clay.
+
+
+ Paved-terrain
+ Tracts of land covered with concrete, asphalt, stones, or bricks.
+
+
+ Rocky-terrain
+ Tracts of land consisting or full of rock or rocks.
+
+
+ Sloped-terrain
+ Tracts of land arranged in a sloping or inclined position.
+
+
+ Uneven-terrain
+ Tracts of land that are not level, smooth, or regular.
+
+
+
+ Urban
+ Relating to, located in, or characteristic of a city or densely populated area.
+
+
+ Virtual-world
+ Using technology that creates immersive, computer-generated experiences that a person can interact with and navigate through. The digital content is generally delivered to the user through some type of headset and responds to changes in head position or through interaction with other types of sensors. Existing in a virtual setting such as a simulation or game environment.
+
+
+
+ Informational-property
+ Something that pertains to a task.
+
+ extensionAllowed
+
+
+ Description
+ An explanation of what the tag group it is in means. If the description is at the top-level of an event string, the description applies to the event.
+
+ requireChild
+
+
+ #
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+
+
+ ID
+ An alphanumeric name that identifies either a unique object or a unique class of objects. Here the object or class may be an idea, physical countable object (or class), or physical uncountable substance (or class).
+
+ requireChild
+
+
+ #
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+
+
+ Label
+ A string of 20 or fewer characters identifying something. Labels usually refer to general classes of things while IDs refer to specific instances. A term that is associated with some entity. A brief description given for purposes of identification. An identifying or descriptive marker that is attached to an object.
+
+ requireChild
+
+
+ #
+
+ takesValue
+
+
+ valueClass
+ nameClass
+
+
+
+
+ Metadata
+ Data about data. Information that describes another set of data.
+
+ CogAtlas
+ The Cognitive Atlas ID number of something.
+
+ #
+
+ takesValue
+
+
+
+
+ CogPo
+ The CogPO ID number of something.
+
+ #
+
+ takesValue
+
+
+
+
+ Creation-date
+ The date on which data creation of this element began.
+
+ requireChild
+
+
+ #
+
+ takesValue
+
+
+ valueClass
+ dateTimeClass
+
+
+
+
+ Experimental-note
+ A brief written record about the experiment.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+
+
+ Library-name
+ Official name of a HED library.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ nameClass
+
+
+
+
+ OBO-identifier
+ The identifier of a term in some Open Biology Ontology (OBO) ontology.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ nameClass
+
+
+
+
+ Pathname
+ The specification of a node (file or directory) in a hierarchical file system, usually specified by listing the nodes top-down.
+
+ #
+
+ takesValue
+
+
+
+
+ Subject-identifier
+ A sequence of characters used to identify, name, or characterize a trial or study subject.
+
+ #
+
+ takesValue
+
+
+
+
+ Version-identifier
+ An alphanumeric character string that identifies a form or variant of a type or original.
+
+ #
+ Usually is a semantic version.
+
+ takesValue
+
+
+
+
+
+ Parameter
+ Something user-defined for this experiment.
+
+ Parameter-label
+ The name of the parameter.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ nameClass
+
+
+
+
+ Parameter-value
+ The value of the parameter.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+
+
+
+
+ Organizational-property
+ Relating to an organization or the action of organizing something.
+
+ Collection
+ A tag designating a grouping of items such as in a set or list.
+
+ #
+ Name of the collection.
+
+ takesValue
+
+
+ valueClass
+ nameClass
+
+
+
+
+ Condition-variable
+ An aspect of the experiment or task that is to be varied during the experiment. Task-conditions are sometimes called independent variables or contrasts.
+
+ #
+ Name of the condition variable.
+
+ takesValue
+
+
+ valueClass
+ nameClass
+
+
+
+
+ Control-variable
+ An aspect of the experiment that is fixed throughout the study and usually is explicitly controlled.
+
+ #
+ Name of the control variable.
+
+ takesValue
+
+
+ valueClass
+ nameClass
+
+
+
+
+ Def
+ A HED-specific utility tag used with a defined name to represent the tags associated with that definition.
+
+ requireChild
+
+
+ reserved
+
+
+ #
+ Name of the definition.
+
+ takesValue
+
+
+ valueClass
+ nameClass
+
+
+
+
+ Def-expand
+ A HED specific utility tag that is grouped with an expanded definition. The child value of the Def-expand is the name of the expanded definition.
+
+ requireChild
+
+
+ reserved
+
+
+ tagGroup
+
+
+ #
+
+ takesValue
+
+
+ valueClass
+ nameClass
+
+
+
+
+ Definition
+ A HED-specific utility tag whose child value is the name of the concept and the tag group associated with the tag is an English language explanation of a concept.
+
+ requireChild
+
+
+ reserved
+
+
+ topLevelTagGroup
+
+
+ #
+ Name of the definition.
+
+ takesValue
+
+
+ valueClass
+ nameClass
+
+
+
+
+ Event-context
+ A special HED tag inserted as part of a top-level tag group to contain information about the interrelated conditions under which the event occurs. The event context includes information about other events that are ongoing when this event happens.
+
+ reserved
+
+
+ topLevelTagGroup
+
+
+ unique
+
+
+
+ Event-stream
+ A special HED tag indicating that this event is a member of an ordered succession of events.
+
+ #
+ Name of the event stream.
+
+ takesValue
+
+
+ valueClass
+ nameClass
+
+
+
+
+ Experimental-intertrial
+ A tag used to indicate a part of the experiment between trials usually where nothing is happening.
+
+ #
+ Optional label for the intertrial block.
+
+ takesValue
+
+
+ valueClass
+ nameClass
+
+
+
+
+ Experimental-trial
+ Designates a run or execution of an activity, for example, one execution of a script. A tag used to indicate a particular organizational part in the experimental design often containing a stimulus-response pair or stimulus-response-feedback triad.
+
+ #
+ Optional label for the trial (often a numerical string).
+
+ takesValue
+
+
+ valueClass
+ nameClass
+
+
+
+
+ Indicator-variable
+ An aspect of the experiment or task that is measured as task conditions are varied during the experiment. Experiment indicators are sometimes called dependent variables.
+
+ #
+ Name of the indicator variable.
+
+ takesValue
+
+
+ valueClass
+ nameClass
+
+
+
+
+ Recording
+ A tag designating the data recording. Recording tags are usually have temporal scope which is the entire recording.
+
+ #
+ Optional label for the recording.
+
+ takesValue
+
+
+ valueClass
+ nameClass
+
+
+
+
+ Task
+ An assigned piece of work, usually with a time allotment. A tag used to indicate a linkage the structured activities performed as part of the experiment.
+
+ #
+ Optional label for the task block.
+
+ takesValue
+
+
+ valueClass
+ nameClass
+
+
+
+
+ Time-block
+ A tag used to indicate a contiguous time block in the experiment during which something is fixed or noted.
+
+ #
+ Optional label for the task block.
+
+ takesValue
+
+
+ valueClass
+ nameClass
+
+
+
+
+
+ Sensory-property
+ Relating to sensation or the physical senses.
+
+ Sensory-attribute
+ A sensory characteristic associated with another entity.
+
+ Auditory-attribute
+ Pertaining to the sense of hearing.
+
+ Loudness
+ Perceived intensity of a sound.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+ nameClass
+
+
+
+
+ Pitch
+ A perceptual property that allows the user to order sounds on a frequency scale.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ frequencyUnits
+
+
+
+
+ Sound-envelope
+ Description of how a sound changes over time.
+
+ Sound-envelope-attack
+ The time taken for initial run-up of level from nil to peak usually beginning when the key on a musical instrument is pressed.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ timeUnits
+
+
+
+
+ Sound-envelope-decay
+ The time taken for the subsequent run down from the attack level to the designated sustain level.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ timeUnits
+
+
+
+
+ Sound-envelope-release
+ The time taken for the level to decay from the sustain level to zero after the key is released.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ timeUnits
+
+
+
+
+ Sound-envelope-sustain
+ The time taken for the main sequence of the sound duration, until the key is released.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ timeUnits
+
+
+
+
+
+ Sound-volume
+ The sound pressure level (SPL) usually the ratio to a reference signal estimated as the lower bound of hearing.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ intensityUnits
+
+
+
+
+ Timbre
+ The perceived sound quality of a singing voice or musical instrument.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ nameClass
+
+
+
+
+
+ Gustatory-attribute
+ Pertaining to the sense of taste.
+
+ Bitter
+ Having a sharp, pungent taste.
+
+
+ Salty
+ Tasting of or like salt.
+
+
+ Savory
+ Belonging to a taste that is salty or spicy rather than sweet.
+
+
+ Sour
+ Having a sharp, acidic taste.
+
+
+ Sweet
+ Having or resembling the taste of sugar.
+
+
+
+ Olfactory-attribute
+ Having a smell.
+
+
+ Somatic-attribute
+ Pertaining to the feelings in the body or of the nervous system.
+
+ Pain
+ The sensation of discomfort, distress, or agony, resulting from the stimulation of specialized nerve endings.
+
+
+ Stress
+ The negative mental, emotional, and physical reactions that occur when environmental stressors are perceived as exceeding the adaptive capacities of the individual.
+
+
+
+ Tactile-attribute
+ Pertaining to the sense of touch.
+
+ Tactile-pressure
+ Having a feeling of heaviness.
+
+
+ Tactile-temperature
+ Having a feeling of hotness or coldness.
+
+
+ Tactile-texture
+ Having a feeling of roughness.
+
+
+ Tactile-vibration
+ Having a feeling of mechanical oscillation.
+
+
+
+ Vestibular-attribute
+ Pertaining to the sense of balance or body position.
+
+
+ Visual-attribute
+ Pertaining to the sense of sight.
+
+ Color
+ The appearance of objects (or light sources) described in terms of perception of their hue and lightness (or brightness) and saturation.
+
+ CSS-color
+ One of 140 colors supported by all browsers. For more details such as the color RGB or HEX values, check: https://www.w3schools.com/colors/colors_groups.asp.
+
+ Blue-color
+ CSS color group.
+
+ Blue
+ CSS-color 0x0000FF.
+
+
+ CadetBlue
+ CSS-color 0x5F9EA0.
+
+
+ CornflowerBlue
+ CSS-color 0x6495ED.
+
+
+ DarkBlue
+ CSS-color 0x00008B.
+
+
+ DeepSkyBlue
+ CSS-color 0x00BFFF.
+
+
+ DodgerBlue
+ CSS-color 0x1E90FF.
+
+
+ LightBlue
+ CSS-color 0xADD8E6.
+
+
+ LightSkyBlue
+ CSS-color 0x87CEFA.
+
+
+ LightSteelBlue
+ CSS-color 0xB0C4DE.
+
+
+ MediumBlue
+ CSS-color 0x0000CD.
+
+
+ MidnightBlue
+ CSS-color 0x191970.
+
+
+ Navy
+ CSS-color 0x000080.
+
+
+ PowderBlue
+ CSS-color 0xB0E0E6.
+
+
+ RoyalBlue
+ CSS-color 0x4169E1.
+
+
+ SkyBlue
+ CSS-color 0x87CEEB.
+
+
+ SteelBlue
+ CSS-color 0x4682B4.
+
+
+
+ Brown-color
+ CSS color group.
+
+ Bisque
+ CSS-color 0xFFE4C4.
+
+
+ BlanchedAlmond
+ CSS-color 0xFFEBCD.
+
+
+ Brown
+ CSS-color 0xA52A2A.
+
+
+ BurlyWood
+ CSS-color 0xDEB887.
+
+
+ Chocolate
+ CSS-color 0xD2691E.
+
+
+ Cornsilk
+ CSS-color 0xFFF8DC.
+
+
+ DarkGoldenRod
+ CSS-color 0xB8860B.
+
+
+ GoldenRod
+ CSS-color 0xDAA520.
+
+
+ Maroon
+ CSS-color 0x800000.
+
+
+ NavajoWhite
+ CSS-color 0xFFDEAD.
+
+
+ Olive
+ CSS-color 0x808000.
+
+
+ Peru
+ CSS-color 0xCD853F.
+
+
+ RosyBrown
+ CSS-color 0xBC8F8F.
+
+
+ SaddleBrown
+ CSS-color 0x8B4513.
+
+
+ SandyBrown
+ CSS-color 0xF4A460.
+
+
+ Sienna
+ CSS-color 0xA0522D.
+
+
+ Tan
+ CSS-color 0xD2B48C.
+
+
+ Wheat
+ CSS-color 0xF5DEB3.
+
+
+
+ Cyan-color
+ CSS color group.
+
+ Aqua
+ CSS-color 0x00FFFF.
+
+
+ Aquamarine
+ CSS-color 0x7FFFD4.
+
+
+ Cyan
+ CSS-color 0x00FFFF.
+
+
+ DarkTurquoise
+ CSS-color 0x00CED1.
+
+
+ LightCyan
+ CSS-color 0xE0FFFF.
+
+
+ MediumTurquoise
+ CSS-color 0x48D1CC.
+
+
+ PaleTurquoise
+ CSS-color 0xAFEEEE.
+
+
+ Turquoise
+ CSS-color 0x40E0D0.
+
+
+
+ Gray-color
+ CSS color group.
+
+ Black
+ CSS-color 0x000000.
+
+
+ DarkGray
+ CSS-color 0xA9A9A9.
+
+
+ DarkSlateGray
+ CSS-color 0x2F4F4F.
+
+
+ DimGray
+ CSS-color 0x696969.
+
+
+ Gainsboro
+ CSS-color 0xDCDCDC.
+
+
+ Gray
+ CSS-color 0x808080.
+
+
+ LightGray
+ CSS-color 0xD3D3D3.
+
+
+ LightSlateGray
+ CSS-color 0x778899.
+
+
+ Silver
+ CSS-color 0xC0C0C0.
+
+
+ SlateGray
+ CSS-color 0x708090.
+
+
+
+ Green-color
+ CSS color group.
+
+ Chartreuse
+ CSS-color 0x7FFF00.
+
+
+ DarkCyan
+ CSS-color 0x008B8B.
+
+
+ DarkGreen
+ CSS-color 0x006400.
+
+
+ DarkOliveGreen
+ CSS-color 0x556B2F.
+
+
+ DarkSeaGreen
+ CSS-color 0x8FBC8F.
+
+
+ ForestGreen
+ CSS-color 0x228B22.
+
+
+ Green
+ CSS-color 0x008000.
+
+
+ GreenYellow
+ CSS-color 0xADFF2F.
+
+
+ LawnGreen
+ CSS-color 0x7CFC00.
+
+
+ LightGreen
+ CSS-color 0x90EE90.
+
+
+ LightSeaGreen
+ CSS-color 0x20B2AA.
+
+
+ Lime
+ CSS-color 0x00FF00.
+
+
+ LimeGreen
+ CSS-color 0x32CD32.
+
+
+ MediumAquaMarine
+ CSS-color 0x66CDAA.
+
+
+ MediumSeaGreen
+ CSS-color 0x3CB371.
+
+
+ MediumSpringGreen
+ CSS-color 0x00FA9A.
+
+
+ OliveDrab
+ CSS-color 0x6B8E23.
+
+
+ PaleGreen
+ CSS-color 0x98FB98.
+
+
+ SeaGreen
+ CSS-color 0x2E8B57.
+
+
+ SpringGreen
+ CSS-color 0x00FF7F.
+
+
+ Teal
+ CSS-color 0x008080.
+
+
+ YellowGreen
+ CSS-color 0x9ACD32.
+
+
+
+ Orange-color
+ CSS color group.
+
+ Coral
+ CSS-color 0xFF7F50.
+
+
+ DarkOrange
+ CSS-color 0xFF8C00.
+
+
+ Orange
+ CSS-color 0xFFA500.
+
+
+ OrangeRed
+ CSS-color 0xFF4500.
+
+
+ Tomato
+ CSS-color 0xFF6347.
+
+
+
+ Pink-color
+ CSS color group.
+
+ DeepPink
+ CSS-color 0xFF1493.
+
+
+ HotPink
+ CSS-color 0xFF69B4.
+
+
+ LightPink
+ CSS-color 0xFFB6C1.
+
+
+ MediumVioletRed
+ CSS-color 0xC71585.
+
+
+ PaleVioletRed
+ CSS-color 0xDB7093.
+
+
+ Pink
+ CSS-color 0xFFC0CB.
+
+
+
+ Purple-color
+ CSS color group.
+
+ BlueViolet
+ CSS-color 0x8A2BE2.
+
+
+ DarkMagenta
+ CSS-color 0x8B008B.
+
+
+ DarkOrchid
+ CSS-color 0x9932CC.
+
+
+ DarkSlateBlue
+ CSS-color 0x483D8B.
+
+
+ DarkViolet
+ CSS-color 0x9400D3.
+
+
+ Fuchsia
+ CSS-color 0xFF00FF.
+
+
+ Indigo
+ CSS-color 0x4B0082.
+
+
+ Lavender
+ CSS-color 0xE6E6FA.
+
+
+ Magenta
+ CSS-color 0xFF00FF.
+
+
+ MediumOrchid
+ CSS-color 0xBA55D3.
+
+
+ MediumPurple
+ CSS-color 0x9370DB.
+
+
+ MediumSlateBlue
+ CSS-color 0x7B68EE.
+
+
+ Orchid
+ CSS-color 0xDA70D6.
+
+
+ Plum
+ CSS-color 0xDDA0DD.
+
+
+ Purple
+ CSS-color 0x800080.
+
+
+ RebeccaPurple
+ CSS-color 0x663399.
+
+
+ SlateBlue
+ CSS-color 0x6A5ACD.
+
+
+ Thistle
+ CSS-color 0xD8BFD8.
+
+
+ Violet
+ CSS-color 0xEE82EE.
+
+
+
+ Red-color
+ CSS color group.
+
+ Crimson
+ CSS-color 0xDC143C.
+
+
+ DarkRed
+ CSS-color 0x8B0000.
+
+
+ DarkSalmon
+ CSS-color 0xE9967A.
+
+
+ FireBrick
+ CSS-color 0xB22222.
+
+
+ IndianRed
+ CSS-color 0xCD5C5C.
+
+
+ LightCoral
+ CSS-color 0xF08080.
+
+
+ LightSalmon
+ CSS-color 0xFFA07A.
+
+
+ Red
+ CSS-color 0xFF0000.
+
+
+ Salmon
+ CSS-color 0xFA8072.
+
+
+
+ White-color
+ CSS color group.
+
+ AliceBlue
+ CSS-color 0xF0F8FF.
+
+
+ AntiqueWhite
+ CSS-color 0xFAEBD7.
+
+
+ Azure
+ CSS-color 0xF0FFFF.
+
+
+ Beige
+ CSS-color 0xF5F5DC.
+
+
+ FloralWhite
+ CSS-color 0xFFFAF0.
+
+
+ GhostWhite
+ CSS-color 0xF8F8FF.
+
+
+ HoneyDew
+ CSS-color 0xF0FFF0.
+
+
+ Ivory
+ CSS-color 0xFFFFF0.
+
+
+ LavenderBlush
+ CSS-color 0xFFF0F5.
+
+
+ Linen
+ CSS-color 0xFAF0E6.
+
+
+ MintCream
+ CSS-color 0xF5FFFA.
+
+
+ MistyRose
+ CSS-color 0xFFE4E1.
+
+
+ OldLace
+ CSS-color 0xFDF5E6.
+
+
+ SeaShell
+ CSS-color 0xFFF5EE.
+
+
+ Snow
+ CSS-color 0xFFFAFA.
+
+
+ White
+ CSS-color 0xFFFFFF.
+
+
+ WhiteSmoke
+ CSS-color 0xF5F5F5.
+
+
+
+ Yellow-color
+ CSS color group.
+
+ DarkKhaki
+ CSS-color 0xBDB76B.
+
+
+ Gold
+ CSS-color 0xFFD700.
+
+
+ Khaki
+ CSS-color 0xF0E68C.
+
+
+ LemonChiffon
+ CSS-color 0xFFFACD.
+
+
+ LightGoldenRodYellow
+ CSS-color 0xFAFAD2.
+
+
+ LightYellow
+ CSS-color 0xFFFFE0.
+
+
+ Moccasin
+ CSS-color 0xFFE4B5.
+
+
+ PaleGoldenRod
+ CSS-color 0xEEE8AA.
+
+
+ PapayaWhip
+ CSS-color 0xFFEFD5.
+
+
+ PeachPuff
+ CSS-color 0xFFDAB9.
+
+
+ Yellow
+ CSS-color 0xFFFF00.
+
+
+
+
+ Color-shade
+ A slight degree of difference between colors, especially with regard to how light or dark it is or as distinguished from one nearly like it.
+
+ Dark-shade
+ A color tone not reflecting much light.
+
+
+ Light-shade
+ A color tone reflecting more light.
+
+
+
+ Grayscale
+ Using a color map composed of shades of gray, varying from black at the weakest intensity to white at the strongest.
+
+ #
+ White intensity between 0 and 1.
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+
+
+ HSV-color
+ A color representation that models how colors appear under light.
+
+ HSV-value
+ An attribute of a visual sensation according to which an area appears to emit more or less light.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+
+
+ Hue
+ Attribute of a visual sensation according to which an area appears to be similar to one of the perceived colors.
+
+ #
+ Angular value between 0 and 360.
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+
+
+ Saturation
+ Colorfulness of a stimulus relative to its own brightness.
+
+ #
+ B value of RGB between 0 and 1.
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+
+
+
+ RGB-color
+ A color from the RGB schema.
+
+ RGB-blue
+ The blue component.
+
+ #
+ B value of RGB between 0 and 1.
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+
+
+ RGB-green
+ The green component.
+
+ #
+ G value of RGB between 0 and 1.
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+
+
+ RGB-red
+ The red component.
+
+ #
+ R value of RGB between 0 and 1.
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+
+
+
+
+ Luminance
+ A quality that exists by virtue of the luminous intensity per unit area projected in a given direction.
+
+
+ Opacity
+ A measure of impenetrability to light.
+
+
+
+
+ Sensory-presentation
+ The entity has a sensory manifestation.
+
+ Auditory-presentation
+ The sense of hearing is used in the presentation to the user.
+
+ Loudspeaker-separation
+ The distance between two loudspeakers. Grouped with the Distance tag.
+
+ suggestedTag
+ Distance
+
+
+
+ Monophonic
+ Relating to sound transmission, recording, or reproduction involving a single transmission path.
+
+
+ Silent
+ The absence of ambient audible sound or the state of having ceased to produce sounds.
+
+
+ Stereophonic
+ Relating to, or constituting sound reproduction involving the use of separated microphones and two transmission channels to achieve the sound separation of a live hearing.
+
+
+
+ Gustatory-presentation
+ The sense of taste used in the presentation to the user.
+
+
+ Olfactory-presentation
+ The sense of smell used in the presentation to the user.
+
+
+ Somatic-presentation
+ The nervous system is used in the presentation to the user.
+
+
+ Tactile-presentation
+ The sense of touch used in the presentation to the user.
+
+
+ Vestibular-presentation
+ The sense balance used in the presentation to the user.
+
+
+ Visual-presentation
+ The sense of sight used in the presentation to the user.
+
+ 2D-view
+ A view showing only two dimensions.
+
+
+ 3D-view
+ A view showing three dimensions.
+
+
+ Background-view
+ Parts of the view that are farthest from the viewer and usually the not part of the visual focus.
+
+
+ Bistable-view
+ Something having two stable visual forms that have two distinguishable stable forms as in optical illusions.
+
+
+ Foreground-view
+ Parts of the view that are closest to the viewer and usually the most important part of the visual focus.
+
+
+ Foveal-view
+ Visual presentation directly on the fovea. A view projected on the small depression in the retina containing only cones and where vision is most acute.
+
+
+ Map-view
+ A diagrammatic representation of an area of land or sea showing physical features, cities, roads.
+
+ Aerial-view
+ Elevated view of an object from above, with a perspective as though the observer were a bird.
+
+
+ Satellite-view
+ A representation as captured by technology such as a satellite.
+
+
+ Street-view
+ A 360-degrees panoramic view from a position on the ground.
+
+
+
+ Peripheral-view
+ Indirect vision as it occurs outside the point of fixation.
+
+
+
+
+
+ Task-property
+ Something that pertains to a task.
+
+ extensionAllowed
+
+
+ Task-action-type
+ How an agent action should be interpreted in terms of the task specification.
+
+ Appropriate-action
+ An action suitable or proper in the circumstances.
+
+ relatedTag
+ Inappropriate-action
+
+
+
+ Correct-action
+ An action that was a correct response in the context of the task.
+
+ relatedTag
+ Incorrect-action
+ Indeterminate-action
+
+
+
+ Correction
+ An action offering an improvement to replace a mistake or error.
+
+
+ Done-indication
+ An action that indicates that the participant has completed this step in the task.
+
+ relatedTag
+ Ready-indication
+
+
+
+ Imagined-action
+ Form a mental image or concept of something. This is used to identity something that only happened in the imagination of the participant as in imagined movements in motor imagery paradigms.
+
+
+ Inappropriate-action
+ An action not in keeping with what is correct or proper for the task.
+
+ relatedTag
+ Appropriate-action
+
+
+
+ Incorrect-action
+ An action considered wrong or incorrect in the context of the task.
+
+ relatedTag
+ Correct-action
+ Indeterminate-action
+
+
+
+ Indeterminate-action
+ An action that cannot be distinguished between two or more possibibities in the current context. This tag might be applied when an outside evaluator or a classification algorithm cannot determine a definitive result.
+
+ relatedTag
+ Correct-action
+ Incorrect-action
+ Miss
+ Near-miss
+
+
+
+ Miss
+ An action considered to be a failure in the context of the task. For example, if the agent is supposed to try to hit a target and misses.
+
+ relatedTag
+ Near-miss
+
+
+
+ Near-miss
+ An action barely satisfied the requirements of the task. In a driving experiment for example this could pertain to a narrowly avoided collision or other accident.
+
+ relatedTag
+ Miss
+
+
+
+ Omitted-action
+ An expected response was skipped.
+
+
+ Ready-indication
+ An action that indicates that the participant is ready to perform the next step in the task.
+
+ relatedTag
+ Done-indication
+
+
+
+
+ Task-attentional-demand
+ Strategy for allocating attention toward goal-relevant information.
+
+ Bottom-up-attention
+ Attentional guidance purely by externally driven factors to stimuli that are salient because of their inherent properties relative to the background. Sometimes this is referred to as stimulus driven.
+
+ relatedTag
+ Top-down-attention
+
+
+
+ Covert-attention
+ Paying attention without moving the eyes.
+
+ relatedTag
+ Overt-attention
+
+
+
+ Divided-attention
+ Integrating parallel multiple stimuli. Behavior involving responding simultaneously to multiple tasks or multiple task demands.
+
+ relatedTag
+ Focused-attention
+
+
+
+ Focused-attention
+ Responding discretely to specific visual, auditory, or tactile stimuli.
+
+ relatedTag
+ Divided-attention
+
+
+
+ Orienting-attention
+ Directing attention to a target stimulus.
+
+
+ Overt-attention
+ Selectively processing one location over others by moving the eyes to point at that location.
+
+ relatedTag
+ Covert-attention
+
+
+
+ Selective-attention
+ Maintaining a behavioral or cognitive set in the face of distracting or competing stimuli. Ability to pay attention to a limited array of all available sensory information.
+
+
+ Sustained-attention
+ Maintaining a consistent behavioral response during continuous and repetitive activity.
+
+
+ Switched-attention
+ Having to switch attention between two or more modalities of presentation.
+
+
+ Top-down-attention
+ Voluntary allocation of attention to certain features. Sometimes this is referred to goal-oriented attention.
+
+ relatedTag
+ Bottom-up-attention
+
+
+
+
+ Task-effect-evidence
+ The evidence supporting the conclusion that the event had the specified effect.
+
+ Behavioral-evidence
+ An indication or conclusion based on the behavior of an agent.
+
+
+ Computational-evidence
+ A type of evidence in which data are produced, and/or generated, and/or analyzed on a computer.
+
+
+ External-evidence
+ A phenomenon that follows and is caused by some previous phenomenon.
+
+
+ Intended-effect
+ A phenomenon that is intended to follow and be caused by some previous phenomenon.
+
+
+
+ Task-event-role
+ The purpose of an event with respect to the task.
+
+ Experimental-stimulus
+ Part of something designed to elicit a response in the experiment.
+
+
+ Incidental
+ A sensory or other type of event that is unrelated to the task or experiment.
+
+
+ Instructional
+ Usually associated with a sensory event intended to give instructions to the participant about the task or behavior.
+
+
+ Mishap
+ Unplanned disruption such as an equipment or experiment control abnormality or experimenter error.
+
+
+ Participant-response
+ Something related to a participant actions in performing the task.
+
+
+ Task-activity
+ Something that is part of the overall task or is necessary to the overall experiment but is not directly part of a stimulus-response cycle. Examples would be taking a survey or provided providing a silva sample.
+
+
+ Warning
+ Something that should warn the participant that the parameters of the task have been or are about to be exceeded such as a warning message about getting too close to the shoulder of the road in a driving task.
+
+
+
+ Task-relationship
+ Specifying organizational importance of sub-tasks.
+
+ Background-subtask
+ A part of the task which should be performed in the background as for example inhibiting blinks due to instruction while performing the primary task.
+
+
+ Primary-subtask
+ A part of the task which should be the primary focus of the participant.
+
+
+
+ Task-stimulus-role
+ The role the stimulus plays in the task.
+
+ Cue
+ A signal for an action, a pattern of stimuli indicating a particular response.
+
+
+ Distractor
+ A person or thing that distracts or a plausible but incorrect option in a multiple-choice question. In pyschological studies this is sometimes referred to as a foil.
+
+
+ Expected
+ Considered likely, probable or anticipated. Something of low information value as in frequent non-targets in an RSVP paradigm.
+
+ relatedTag
+ Unexpected
+
+
+ suggestedTag
+ Target
+
+
+
+ Extraneous
+ Irrelevant or unrelated to the subject being dealt with.
+
+
+ Feedback
+ An evaluative response to an inquiry, process, event, or activity.
+
+
+ Go-signal
+ An indicator to proceed with a planned action.
+
+ relatedTag
+ Stop-signal
+
+
+
+ Meaningful
+ Conveying significant or relevant information.
+
+
+ Newly-learned
+ Representing recently acquired information or understanding.
+
+
+ Non-informative
+ Something that is not useful in forming an opinion or judging an outcome.
+
+
+ Non-target
+ Something other than that done or looked for. Also tag Expected if the Non-target is frequent.
+
+ relatedTag
+ Target
+
+
+
+ Not-meaningful
+ Not having a serious, important, or useful quality or purpose.
+
+
+ Novel
+ Having no previous example or precedent or parallel.
+
+
+ Oddball
+ Something unusual, or infrequent.
+
+ relatedTag
+ Unexpected
+
+
+ suggestedTag
+ Target
+
+
+
+ Penalty
+ A disadvantage, loss, or hardship due to some action.
+
+
+ Planned
+ Something that was decided on or arranged in advance.
+
+ relatedTag
+ Unplanned
+
+
+
+ Priming
+ An implicit memory effect in which exposure to a stimulus influences response to a later stimulus.
+
+
+ Query
+ A sentence of inquiry that asks for a reply.
+
+
+ Reward
+ A positive reinforcement for a desired action, behavior or response.
+
+
+ Stop-signal
+ An indicator that the agent should stop the current activity.
+
+ relatedTag
+ Go-signal
+
+
+
+ Target
+ Something fixed as a goal, destination, or point of examination.
+
+
+ Threat
+ An indicator that signifies hostility and predicts an increased probability of attack.
+
+
+ Timed
+ Something planned or scheduled to be done at a particular time or lasting for a specified amount of time.
+
+
+ Unexpected
+ Something that is not anticipated.
+
+ relatedTag
+ Expected
+
+
+
+ Unplanned
+ Something that has not been planned as part of the task.
+
+ relatedTag
+ Planned
+
+
+
+
+
+
+ Relation
+ Concerns the way in which two or more people or things are connected.
+
+ extensionAllowed
+
+
+ Comparative-relation
+ Something considered in comparison to something else. The first entity is the focus.
+
+ Approximately-equal-to
+ (A, (Approximately-equal-to, B)) indicates that A and B have almost the same value. Here A and B could refer to sizes, orders, positions or other quantities.
+
+
+ Equal-to
+ (A, (Equal-to, B)) indicates that the size or order of A is the same as that of B.
+
+
+ Greater-than
+ (A, (Greater-than, B)) indicates that the relative size or order of A is bigger than that of B.
+
+
+ Greater-than-or-equal-to
+ (A, (Greater-than-or-equal-to, B)) indicates that the relative size or order of A is bigger than or the same as that of B.
+
+
+ Less-than
+ (A, (Less-than, B)) indicates that A is smaller than B. Here A and B could refer to sizes, orders, positions or other quantities.
+
+
+ Less-than-or-equal-to
+ (A, (Less-than-or-equal-to, B)) indicates that the relative size or order of A is smaller than or equal to B.
+
+
+ Not-equal-to
+ (A, (Not-equal-to, B)) indicates that the size or order of A is not the same as that of B.
+
+
+
+ Connective-relation
+ Indicates two entities are related in some way. The first entity is the focus.
+
+ Belongs-to
+ (A, (Belongs-to, B)) indicates that A is a member of B.
+
+
+ Connected-to
+ (A, (Connected-to, B)) indicates that A is related to B in some respect, usually through a direct link.
+
+
+ Contained-in
+ (A, (Contained-in, B)) indicates that A is completely inside of B.
+
+
+ Described-by
+ (A, (Described-by, B)) indicates that B provides information about A.
+
+
+ From-to
+ (A, (From-to, B)) indicates a directional relation from A to B. A is considered the source.
+
+
+ Group-of
+ (A, (Group-of, B)) indicates A is a group of items of type B.
+
+
+ Implied-by
+ (A, (Implied-by, B)) indicates B is suggested by A.
+
+
+ Includes
+ (A, (Includes, B)) indicates that A has B as a member or part.
+
+
+ Interacts-with
+ (A, (Interacts-with, B)) indicates A and B interact, possibly reciprocally.
+
+
+ Member-of
+ (A, (Member-of, B)) indicates A is a member of group B.
+
+
+ Part-of
+ (A, (Part-of, B)) indicates A is a part of the whole B.
+
+
+ Performed-by
+ (A, (Performed-by, B)) indicates that the action or procedure A was carried out by agent B.
+
+
+ Performed-using
+ (A, (Performed-using, B)) indicates that the action or procedure A was accomplished using B.
+
+
+ Related-to
+ (A, (Related-to, B)) indicates A has some relationship to B.
+
+
+ Unrelated-to
+ (A, (Unrelated-to, B)) indicates that A is not related to B. For example, A is not related to Task.
+
+
+
+ Directional-relation
+ A relationship indicating direction of change of one entity relative to another. The first entity is the focus.
+
+ Away-from
+ (A, (Away-from, B)) indicates that A is going or has moved away from B. The meaning depends on A and B.
+
+
+ Towards
+ (A, (Towards, B)) indicates that A is going to or has moved to B. The meaning depends on A and B.
+
+
+
+ Logical-relation
+ Indicating a logical relationship between entities. The first entity is usually the focus.
+
+ And
+ (A, (And, B)) means A and B are both in effect.
+
+
+ Or
+ (A, (Or, B)) means at least one of A and B are in effect.
+
+
+
+ Spatial-relation
+ Indicating a relationship about position between entities.
+
+ Above
+ (A, (Above, B)) means A is in a place or position that is higher than B.
+
+
+ Across-from
+ (A, (Across-from, B)) means A is on the opposite side of something from B.
+
+
+ Adjacent-to
+ (A, (Adjacent-to, B)) indicates that A is next to B in time or space.
+
+
+ Ahead-of
+ (A, (Ahead-of, B)) indicates that A is further forward in time or space in B.
+
+
+ Around
+ (A, (Around, B)) means A is in or near the present place or situation of B.
+
+
+ Behind
+ (A, (Behind, B)) means A is at or to the far side of B, typically so as to be hidden by it.
+
+
+ Below
+ (A, (Below, B)) means A is in a place or position that is lower than the position of B.
+
+
+ Between
+ (A, (Between, (B, C))) means A is in the space or interval separating B and C.
+
+
+ Bilateral-to
+ (A, (Bilateral, B)) means A is on both sides of B or affects both sides of B.
+
+
+ Bottom-edge-of
+ (A, (Bottom-edge-of, B)) means A is on the bottom most part or or near the boundary of B.
+
+ relatedTag
+ Left-edge-of
+ Right-edge-of
+ Top-edge-of
+
+
+
+ Boundary-of
+ (A, (Boundary-of, B)) means A is on or part of the edge or boundary of B.
+
+
+ Center-of
+ (A, (Center-of, B)) means A is at a point or or in an area that is approximately central within B.
+
+
+ Close-to
+ (A, (Close-to, B)) means A is at a small distance from or is located near in space to B.
+
+
+ Far-from
+ (A, (Far-from, B)) means A is at a large distance from or is not located near in space to B.
+
+
+ In-front-of
+ (A, (In-front-of, B)) means A is in a position just ahead or at the front part of B, potentially partially blocking B from view.
+
+
+ Left-edge-of
+ (A, (Left-edge-of, B)) means A is located on the left side of B on or near the boundary of B.
+
+ relatedTag
+ Bottom-edge-of
+ Right-edge-of
+ Top-edge-of
+
+
+
+ Left-side-of
+ (A, (Left-side-of, B)) means A is located on the left side of B usually as part of B.
+
+ relatedTag
+ Right-side-of
+
+
+
+ Lower-center-of
+ (A, (Lower-center-of, B)) means A is situated on the lower center part of B (due south). This relation is often used to specify qualitative information about screen position.
+
+ relatedTag
+ Center-of
+ Lower-left-of
+ Lower-right-of
+ Upper-center-of
+ Upper-right-of
+
+
+
+ Lower-left-of
+ (A, (Lower-left-of, B)) means A is situated on the lower left part of B. This relation is often used to specify qualitative information about screen position.
+
+ relatedTag
+ Center-of
+ Lower-center-of
+ Lower-right-of
+ Upper-center-of
+ Upper-left-of
+ Upper-right-of
+
+
+
+ Lower-right-of
+ (A, (Lower-right-of, B)) means A is situated on the lower right part of B. This relation is often used to specify qualitative information about screen position.
+
+ relatedTag
+ Center-of
+ Lower-center-of
+ Lower-left-of
+ Upper-left-of
+ Upper-center-of
+ Upper-left-of
+ Lower-right-of
+
+
+
+ Outside-of
+ (A, (Outside-of, B)) means A is located in the space around but not including B.
+
+
+ Over
+ (A, (Over, B)) means A above is above B so as to cover or protect or A extends over the a general area as from a from a vantage point.
+
+
+ Right-edge-of
+ (A, (Right-edge-of, B)) means A is located on the right side of B on or near the boundary of B.
+
+ relatedTag
+ Bottom-edge-of
+ Left-edge-of
+ Top-edge-of
+
+
+
+ Right-side-of
+ (A, (Right-side-of, B)) means A is located on the right side of B usually as part of B.
+
+ relatedTag
+ Left-side-of
+
+
+
+ To-left-of
+ (A, (To-left-of, B)) means A is located on or directed toward the side to the west of B when B is facing north. This term is used when A is not part of B.
+
+
+ To-right-of
+ (A, (To-right-of, B)) means A is located on or directed toward the side to the east of B when B is facing north. This term is used when A is not part of B.
+
+
+ Top-edge-of
+ (A, (Top-edge-of, B)) means A is on the uppermost part or or near the boundary of B.
+
+ relatedTag
+ Left-edge-of
+ Right-edge-of
+ Bottom-edge-of
+
+
+
+ Top-of
+ (A, (Top-of, B)) means A is on the uppermost part, side, or surface of B.
+
+
+ Underneath
+ (A, (Underneath, B)) means A is situated directly below and may be concealed by B.
+
+
+ Upper-center-of
+ (A, (Upper-center-of, B)) means A is situated on the upper center part of B (due north). This relation is often used to specify qualitative information about screen position.
+
+ relatedTag
+ Center-of
+ Lower-center-of
+ Lower-left-of
+ Lower-right-of
+ Upper-center-of
+ Upper-right-of
+
+
+
+ Upper-left-of
+ (A, (Upper-left-of, B)) means A is situated on the upper left part of B. This relation is often used to specify qualitative information about screen position.
+
+ relatedTag
+ Center-of
+ Lower-center-of
+ Lower-left-of
+ Lower-right-of
+ Upper-center-of
+ Upper-right-of
+
+
+
+ Upper-right-of
+ (A, (Upper-right-of, B)) means A is situated on the upper right part of B. This relation is often used to specify qualitative information about screen position.
+
+ relatedTag
+ Center-of
+ Lower-center-of
+ Lower-left-of
+ Upper-left-of
+ Upper-center-of
+ Lower-right-of
+
+
+
+ Within
+ (A, (Within, B)) means A is on the inside of or contained in B.
+
+
+
+ Temporal-relation
+ A relationship that includes a temporal or time-based component.
+
+ After
+ (A, (After B)) means A happens at a time subsequent to a reference time related to B.
+
+
+ Asynchronous-with
+ (A, (Asynchronous-with, B)) means A happens at times not occurring at the same time or having the same period or phase as B.
+
+
+ Before
+ (A, (Before B)) means A happens at a time earlier in time or order than B.
+
+
+ During
+ (A, (During, B)) means A happens at some point in a given period of time in which B is ongoing.
+
+
+ Synchronous-with
+ (A, (Synchronous-with, B)) means A happens at occurs at the same time or rate as B.
+
+
+ Waiting-for
+ (A, (Waiting-for, B)) means A pauses for something to happen in B.
+
+
+
+
+ Sleep-and-drowsiness
+ The features of the ongoing activity during sleep are scored here. If abnormal graphoelements appear, disappear or change their morphology during sleep, that is not scored here but at the entry corresponding to that graphooelement (as a modulator).
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Sleep-architecture
+ For longer recordings. Only to be scored if whole-night sleep is part of the recording. It is a global descriptor of the structure and pattern of sleep: estimation of the amount of time spent in REM and NREM sleep, sleep duration, NREM-REM cycle.
+
+ suggestedTag
+ Property-not-possible-to-determine
+
+
+ inLibrary
+ score
+
+
+ Normal-sleep-architecture
+
+ inLibrary
+ score
+
+
+
+ Abnormal-sleep-architecture
+
+ inLibrary
+ score
+
+
+
+
+ Sleep-stage-reached
+ For normal sleep patterns the sleep stages reached during the recording can be specified
+
+ requireChild
+
+
+ suggestedTag
+ Property-not-possible-to-determine
+ Finding-significance-to-recording
+
+
+ inLibrary
+ score
+
+
+ Sleep-stage-N1
+ Sleep stage 1.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Sleep-stage-N2
+ Sleep stage 2.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Sleep-stage-N3
+ Sleep stage 3.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Sleep-stage-REM
+ Rapid eye movement.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Sleep-spindles
+ Burst at 11-15 Hz but mostly at 12-14 Hz generally diffuse but of higher voltage over the central regions of the head, occurring during sleep. Amplitude varies but is mostly below 50 microV in the adult.
+
+ suggestedTag
+ Finding-significance-to-recording
+ Brain-laterality
+ Brain-region
+ Sensors
+ Finding-amplitude-asymmetry
+
+
+ inLibrary
+ score
+
+
+
+ Arousal-pattern
+ Arousal pattern in children. Prolonged, marked high voltage 4-6/s activity in all leads with some intermixed slower frequencies, in children.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+ inLibrary
+ score
+
+
+
+ Frontal-arousal-rhythm
+ Prolonged (up to 20s) rhythmical sharp or spiky activity over the frontal areas (maximum over the frontal midline) seen at arousal from sleep in children with minimal cerebral dysfunction.
+
+ suggestedTag
+ Appearance-mode
+ Discharge-pattern
+
+
+ inLibrary
+ score
+
+
+
+ Vertex-wave
+ Sharp potential, maximal at the vertex, negative relative to other areas, apparently occurring spontaneously during sleep or in response to a sensory stimulus during sleep or wakefulness. May be single or repetitive. Amplitude varies but rarely exceeds 250 microV. Abbreviation: V wave. Synonym: vertex sharp wave.
+
+ suggestedTag
+ Finding-significance-to-recording
+ Brain-laterality
+ Brain-region
+ Sensors
+ Finding-amplitude-asymmetry
+
+
+ inLibrary
+ score
+
+
+
+ K-complex
+ A burst of somewhat variable appearance, consisting most commonly of a high voltage negative slow wave followed by a smaller positive slow wave frequently associated with a sleep spindle. Duration greater than 0.5 s. Amplitude is generally maximal in the frontal vertex. K complexes occur during nonREM sleep, apparently spontaneously, or in response to sudden sensory / auditory stimuli, and are not specific for any individual sensory modality.
+
+ suggestedTag
+ Finding-significance-to-recording
+ Brain-laterality
+ Brain-region
+ Sensors
+ Finding-amplitude-asymmetry
+
+
+ inLibrary
+ score
+
+
+
+ Saw-tooth-waves
+ Vertex negative 2-5 Hz waves occuring in series during REM sleep
+
+ suggestedTag
+ Finding-significance-to-recording
+ Brain-laterality
+ Brain-region
+ Sensors
+ Finding-amplitude-asymmetry
+
+
+ inLibrary
+ score
+
+
+
+ POSTS
+ Positive occipital sharp transients of sleep. Sharp transient maximal over the occipital regions, positive relative to other areas, apparently occurring spontaneously during sleep. May be single or repetitive. Amplitude varies but is generally bellow 50 microV.
+
+ suggestedTag
+ Finding-significance-to-recording
+ Brain-laterality
+ Brain-region
+ Sensors
+ Finding-amplitude-asymmetry
+
+
+ inLibrary
+ score
+
+
+
+ Hypnagogic-hypersynchrony
+ Bursts of bilateral, synchronous delta or theta activity of large amplitude, occasionally with superimposed faster components, occurring during falling asleep or during awakening, in children.
+
+ suggestedTag
+ Finding-significance-to-recording
+ Brain-laterality
+ Brain-region
+ Sensors
+ Finding-amplitude-asymmetry
+
+
+ inLibrary
+ score
+
+
+
+ Non-reactive-sleep
+ EEG activity consisting of normal sleep graphoelements, but which cannot be interrupted by external stimuli/ the patient cannot be waken.
+
+ inLibrary
+ score
+
+
+
+
+ Uncertain-significant-pattern
+ EEG graphoelements or rhythms that resemble abnormal patterns but that are not necessarily associated with a pathology, and the physician does not consider them abnormal in the context of the scored recording (like normal variants and patterns).
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Sharp-transient-pattern
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+ inLibrary
+ score
+
+
+
+ Wicket-spikes
+ Spike-like monophasic negative single waves or trains of waves occurring over the temporal regions during drowsiness that have an arcuate or mu-like appearance. These are mainly seen in older individuals and represent a benign variant that is of little clinical significance.
+
+ inLibrary
+ score
+
+
+
+ Small-sharp-spikes
+ Benign epileptiform Transients of Sleep (BETS). Small sharp spikes (SSS) of very short duration and low amplitude, often followed by a small theta wave, occurring in the temporal regions during drowsiness and light sleep. They occur on one or both sides (often asynchronously). The main negative and positive components are of about equally spiky character. Rarely seen in children, they are seen most often in adults and the elderly. Two thirds of the patients have a history of epileptic seizures.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+ inLibrary
+ score
+
+
+
+ Fourteen-six-Hz-positive-burst
+ Burst of arch-shaped waves at 13-17 Hz and/or 5-7-Hz but most commonly at 14 and or 6 Hz seen generally over the posterior temporal and adjacent areas of one or both sides of the head during sleep. The sharp peaks of its component waves are positive with respect to other regions. Amplitude varies but is generally below 75 micro V. Comments: (1) best demonstrated by referential recording using contralateral earlobe or other remote, reference electrodes. (2) This pattern has no established clinical significance.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+ inLibrary
+ score
+
+
+
+ Six-Hz-spike-slow-wave
+ Spike and slow wave complexes at 4-7Hz, but mostly at 6 Hz occurring generally in brief bursts bilaterally and synchronously, symmetrically or asymmetrically, and either confined to or of larger amplitude over the posterior or anterior regions of the head. The spike has a strong positive component. Amplitude varies but is generally smaller than that of spike-and slow-wave complexes repeating at slower rates. Comment: this pattern should be distinguished from epileptiform discharges. Synonym: wave and spike phantom.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+ inLibrary
+ score
+
+
+
+ Rudimentary-spike-wave-complex
+ Synonym: Pseudo petit mal discharge. Paroxysmal discharge that consists of generalized or nearly generalized high voltage 3 to 4/sec waves with poorly developed spike in the positive trough between the slow waves, occurring in drowsiness only. It is found only in infancy and early childhood when marked hypnagogic rhythmical theta activity is paramount in the drowsy state.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+ inLibrary
+ score
+
+
+
+ Slow-fused-transient
+ A posterior slow-wave preceded by a sharp-contoured potential that blends together with the ensuing slow wave, in children.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+ inLibrary
+ score
+
+
+
+ Needle-like-occipital-spikes-blind
+ Spike discharges of a particularly fast and needle-like character develop over the occipital region in most congenitally blind children. Completely disappear during childhood or adolescence.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+ inLibrary
+ score
+
+
+
+ Subclinical-rhythmic-EEG-discharge-adults
+ Subclinical rhythmic EEG discharge of adults (SERDA). A rhythmic pattern seen in the adult age group, mainly in the waking state or drowsiness. It consists of a mixture of frequencies, often predominant in the theta range. The onset may be fairly abrupt with widespread sharp rhythmical theta and occasionally with delta activity. As to the spatial distribution, a maximum of this discharge is usually found over the centroparietal region and especially over the vertex. It may resemble a seizure discharge but is not accompanied by any clinical signs or symptoms.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+ inLibrary
+ score
+
+
+
+ Rhythmic-temporal-theta-burst-drowsiness
+ Rhythmic temporal theta burst of drowsiness (RTTD). Characteristic burst of 4-7 Hz waves frequently notched by faster waves, occurring over the temporal regions of the head during drowsiness. Synonym: psychomotor variant pattern. Comment: this is a pattern of drowsiness that is of no clinical significance.
+
+ inLibrary
+ score
+
+
+
+ Temporal-slowing-elderly
+ Focal theta and/or delta activity over the temporal regions, especially the left, in persons over the age of 60. Amplitudes are low/similar to the background activity. Comment: focal temporal theta was found in 20 percent of people between the ages of 40-59 years, and 40 percent of people between 60 and 79 years. One third of people older than 60 years had focal temporal delta activity.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+ inLibrary
+ score
+
+
+
+ Breach-rhythm
+ Rhythmical activity recorded over cranial bone defects. Usually it is in the 6 to 11/sec range, does not respond to movements.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+ inLibrary
+ score
+
+
+
+ Other-uncertain-significant-pattern
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+
+
+ accelerationUnits
+
+ defaultUnits
+ m-per-s^2
+
+
+ m-per-s^2
+
+ SIUnit
+
+
+ unitSymbol
+
+
+ conversionFactor
+ 1.0
+
+
+
+
+ angleUnits
+
+ defaultUnits
+ radian
+
+
+ radian
+
+ SIUnit
+
+
+ conversionFactor
+ 1.0
+
+
+
+ rad
+
+ SIUnit
+
+
+ unitSymbol
+
+
+ conversionFactor
+ 1.0
+
+
+
+ degree
+
+ conversionFactor
+ 0.0174533
+
+
+
+
+ areaUnits
+
+ defaultUnits
+ m^2
+
+
+ m^2
+
+ SIUnit
+
+
+ unitSymbol
+
+
+ conversionFactor
+ 1.0
+
+
+
+
+ currencyUnits
+ Units indicating the worth of something.
+
+ defaultUnits
+ $
+
+
+ dollar
+
+ conversionFactor
+ 1.0
+
+
+
+ $
+
+ unitPrefix
+
+
+ unitSymbol
+
+
+ conversionFactor
+ 1.0
+
+
+
+ euro
+
+
+ point
+
+
+
+ electricPotentialUnits
+
+ defaultUnits
+ uv
+
+
+ v
+
+ SIUnit
+
+
+ unitSymbol
+
+
+ conversionFactor
+ 0.000001
+
+
+
+ Volt
+
+ SIUnit
+
+
+ conversionFactor
+ 0.000001
+
+
+
+
+ frequencyUnits
+
+ defaultUnits
+ Hz
+
+
+ hertz
+
+ SIUnit
+
+
+ conversionFactor
+ 1.0
+
+
+
+ Hz
+
+ SIUnit
+
+
+ unitSymbol
+
+
+ conversionFactor
+ 1.0
+
+
+
+
+ intensityUnits
+
+ defaultUnits
+ dB
+
+
+ dB
+ Intensity expressed as ratio to a threshold. May be used for sound intensity.
+
+ unitSymbol
+
+
+ conversionFactor
+ 1.0
+
+
+
+ candela
+ Units used to express light intensity.
+
+ SIUnit
+
+
+
+ cd
+ Units used to express light intensity.
+
+ SIUnit
+
+
+ unitSymbol
+
+
+
+
+ jerkUnits
+
+ defaultUnits
+ m-per-s^3
+
+
+ m-per-s^3
+
+ unitSymbol
+
+
+ conversionFactor
+ 1.0
+
+
+
+
+ magneticFieldUnits
+ Units used to magnetic field intensity.
+
+ defaultUnits
+ fT
+
+
+ tesla
+
+ SIUnit
+
+
+ conversionFactor
+ 10^-15
+
+
+
+ T
+
+ SIUnit
+
+
+ unitSymbol
+
+
+ conversionFactor
+ 10^-15
+
+
+
+
+ memorySizeUnits
+
+ defaultUnits
+ B
+
+
+ byte
+
+ SIUnit
+
+
+ conversionFactor
+ 1.0
+
+
+
+ B
+
+ SIUnit
+
+
+ unitSymbol
+
+
+ conversionFactor
+ 1.0
+
+
+
+
+ physicalLengthUnits
+
+ defaultUnits
+ m
+
+
+ foot
+
+ conversionFactor
+ 0.3048
+
+
+
+ inch
+
+ conversionFactor
+ 0.0254
+
+
+
+ meter
+
+ SIUnit
+
+
+ conversionFactor
+ 1.0
+
+
+
+ metre
+
+ SIUnit
+
+
+ conversionFactor
+ 1.0
+
+
+
+ m
+
+ SIUnit
+
+
+ unitSymbol
+
+
+ conversionFactor
+ 1.0
+
+
+
+ mile
+
+ conversionFactor
+ 1609.34
+
+
+
+
+ speedUnits
+
+ defaultUnits
+ m-per-s
+
+
+ m-per-s
+
+ SIUnit
+
+
+ unitSymbol
+
+
+ conversionFactor
+ 1.0
+
+
+
+ mph
+
+ unitSymbol
+
+
+ conversionFactor
+ 0.44704
+
+
+
+ kph
+
+ unitSymbol
+
+
+ conversionFactor
+ 0.277778
+
+
+
+
+ temperatureUnits
+
+ degree Celsius
+
+ SIUnit
+
+
+ conversionFactor
+ 1.0
+
+
+
+ oC
+
+ SIUnit
+
+
+ unitSymbol
+
+
+ conversionFactor
+ 1.0
+
+
+
+
+ timeUnits
+
+ defaultUnits
+ s
+
+
+ second
+
+ SIUnit
+
+
+ conversionFactor
+ 1.0
+
+
+
+ s
+
+ SIUnit
+
+
+ unitSymbol
+
+
+ conversionFactor
+ 1.0
+
+
+
+ day
+
+ conversionFactor
+ 86400
+
+
+
+ minute
+
+ conversionFactor
+ 60
+
+
+
+ hour
+ Should be in 24-hour format.
+
+ conversionFactor
+ 3600
+
+
+
+
+ volumeUnits
+
+ defaultUnits
+ m^3
+
+
+ m^3
+
+ SIUnit
+
+
+ unitSymbol
+
+
+ conversionFactor
+ 1.0
+
+
+
+
+ weightUnits
+
+ defaultUnits
+ g
+
+
+ g
+
+ SIUnit
+
+
+ unitSymbol
+
+
+ conversionFactor
+ 1.0
+
+
+
+ gram
+
+ SIUnit
+
+
+ conversionFactor
+ 1.0
+
+
+
+ pound
+
+ conversionFactor
+ 453.592
+
+
+
+ lb
+
+ conversionFactor
+ 453.592
+
+
+
+
+
+
+ deca
+ SI unit multiple representing 10^1.
+
+ SIUnitModifier
+
+
+ conversionFactor
+ 10.0
+
+
+
+ da
+ SI unit multiple representing 10^1.
+
+ SIUnitSymbolModifier
+
+
+ conversionFactor
+ 10.0
+
+
+
+ hecto
+ SI unit multiple representing 10^2.
+
+ SIUnitModifier
+
+
+ conversionFactor
+ 100.0
+
+
+
+ h
+ SI unit multiple representing 10^2.
+
+ SIUnitSymbolModifier
+
+
+ conversionFactor
+ 100.0
+
+
+
+ kilo
+ SI unit multiple representing 10^3.
+
+ SIUnitModifier
+
+
+ conversionFactor
+ 1000.0
+
+
+
+ k
+ SI unit multiple representing 10^3.
+
+ SIUnitSymbolModifier
+
+
+ conversionFactor
+ 1000.0
+
+
+
+ mega
+ SI unit multiple representing 10^6.
+
+ SIUnitModifier
+
+
+ conversionFactor
+ 10^6
+
+
+
+ M
+ SI unit multiple representing 10^6.
+
+ SIUnitSymbolModifier
+
+
+ conversionFactor
+ 10^6
+
+
+
+ giga
+ SI unit multiple representing 10^9.
+
+ SIUnitModifier
+
+
+ conversionFactor
+ 10^9
+
+
+
+ G
+ SI unit multiple representing 10^9.
+
+ SIUnitSymbolModifier
+
+
+ conversionFactor
+ 10^9
+
+
+
+ tera
+ SI unit multiple representing 10^12.
+
+ SIUnitModifier
+
+
+ conversionFactor
+ 10^12
+
+
+
+ T
+ SI unit multiple representing 10^12.
+
+ SIUnitSymbolModifier
+
+
+ conversionFactor
+ 10^12
+
+
+
+ peta
+ SI unit multiple representing 10^15.
+
+ SIUnitModifier
+
+
+ conversionFactor
+ 10^15
+
+
+
+ P
+ SI unit multiple representing 10^15.
+
+ SIUnitSymbolModifier
+
+
+ conversionFactor
+ 10^15
+
+
+
+ exa
+ SI unit multiple representing 10^18.
+
+ SIUnitModifier
+
+
+ conversionFactor
+ 10^18
+
+
+
+ E
+ SI unit multiple representing 10^18.
+
+ SIUnitSymbolModifier
+
+
+ conversionFactor
+ 10^18
+
+
+
+ zetta
+ SI unit multiple representing 10^21.
+
+ SIUnitModifier
+
+
+ conversionFactor
+ 10^21
+
+
+
+ Z
+ SI unit multiple representing 10^21.
+
+ SIUnitSymbolModifier
+
+
+ conversionFactor
+ 10^21
+
+
+
+ yotta
+ SI unit multiple representing 10^24.
+
+ SIUnitModifier
+
+
+ conversionFactor
+ 10^24
+
+
+
+ Y
+ SI unit multiple representing 10^24.
+
+ SIUnitSymbolModifier
+
+
+ conversionFactor
+ 10^24
+
+
+
+ deci
+ SI unit submultiple representing 10^-1.
+
+ SIUnitModifier
+
+
+ conversionFactor
+ 0.1
+
+
+
+ d
+ SI unit submultiple representing 10^-1.
+
+ SIUnitSymbolModifier
+
+
+ conversionFactor
+ 0.1
+
+
+
+ centi
+ SI unit submultiple representing 10^-2.
+
+ SIUnitModifier
+
+
+ conversionFactor
+ 0.01
+
+
+
+ c
+ SI unit submultiple representing 10^-2.
+
+ SIUnitSymbolModifier
+
+
+ conversionFactor
+ 0.01
+
+
+
+ milli
+ SI unit submultiple representing 10^-3.
+
+ SIUnitModifier
+
+
+ conversionFactor
+ 0.001
+
+
+
+ m
+ SI unit submultiple representing 10^-3.
+
+ SIUnitSymbolModifier
+
+
+ conversionFactor
+ 0.001
+
+
+
+ micro
+ SI unit submultiple representing 10^-6.
+
+ SIUnitModifier
+
+
+ conversionFactor
+ 10^-6
+
+
+
+ u
+ SI unit submultiple representing 10^-6.
+
+ SIUnitSymbolModifier
+
+
+ conversionFactor
+ 10^-6
+
+
+
+ nano
+ SI unit submultiple representing 10^-9.
+
+ SIUnitModifier
+
+
+ conversionFactor
+ 10^-9
+
+
+
+ n
+ SI unit submultiple representing 10^-9.
+
+ SIUnitSymbolModifier
+
+
+ conversionFactor
+ 10^-9
+
+
+
+ pico
+ SI unit submultiple representing 10^-12.
+
+ SIUnitModifier
+
+
+ conversionFactor
+ 10^-12
+
+
+
+ p
+ SI unit submultiple representing 10^-12.
+
+ SIUnitSymbolModifier
+
+
+ conversionFactor
+ 10^-12
+
+
+
+ femto
+ SI unit submultiple representing 10^-15.
+
+ SIUnitModifier
+
+
+ conversionFactor
+ 10^-15
+
+
+
+ f
+ SI unit submultiple representing 10^-15.
+
+ SIUnitSymbolModifier
+
+
+ conversionFactor
+ 10^-15
+
+
+
+ atto
+ SI unit submultiple representing 10^-18.
+
+ SIUnitModifier
+
+
+ conversionFactor
+ 10^-18
+
+
+
+ a
+ SI unit submultiple representing 10^-18.
+
+ SIUnitSymbolModifier
+
+
+ conversionFactor
+ 10^-18
+
+
+
+ zepto
+ SI unit submultiple representing 10^-21.
+
+ SIUnitModifier
+
+
+ conversionFactor
+ 10^-21
+
+
+
+ z
+ SI unit submultiple representing 10^-21.
+
+ SIUnitSymbolModifier
+
+
+ conversionFactor
+ 10^-21
+
+
+
+ yocto
+ SI unit submultiple representing 10^-24.
+
+ SIUnitModifier
+
+
+ conversionFactor
+ 10^-24
+
+
+
+ y
+ SI unit submultiple representing 10^-24.
+
+ SIUnitSymbolModifier
+
+
+ conversionFactor
+ 10^-24
+
+
+
+
+
+ dateTimeClass
+ Date-times should conform to ISO8601 date-time format YYYY-MM-DDThh:mm:ss. Any variation on the full form is allowed.
+
+ allowedCharacter
+ digits
+ T
+ -
+ :
+
+
+
+ nameClass
+ Value class designating values that have the characteristics of node names. The allowed characters are alphanumeric, hyphen, and underbar.
+
+ allowedCharacter
+ letters
+ digits
+ _
+ -
+
+
+
+ numericClass
+ Value must be a valid numerical value.
+
+ allowedCharacter
+ digits
+ E
+ e
+ +
+ -
+ .
+
+
+
+ posixPath
+ Posix path specification.
+
+ allowedCharacter
+ digits
+ letters
+ /
+ :
+
+
+
+ textClass
+ Value class designating values that have the characteristics of text such as in descriptions.
+
+ allowedCharacter
+ letters
+ digits
+ blank
+ +
+ -
+ :
+ ;
+ .
+ /
+ (
+ )
+ ?
+ *
+ %
+ $
+ @
+
+
+
+
+
+ allowedCharacter
+ A schema attribute of value classes specifying a special character that is allowed in expressing the value of a placeholder. Normally the allowed characters are listed individually. However, the word letters designates the upper and lower case alphabetic characters and the word digits designates the digits 0-9. The word blank designates the blank character.
+
+ valueClassProperty
+
+
+
+ conversionFactor
+ The multiplicative factor to multiply these units to convert to default units.
+
+ unitProperty
+
+
+ unitModifierProperty
+
+
+
+ deprecatedFrom
+ Indicates that this element is deprecated. The value of the attribute is the latest schema version in which the element appeared in undeprecated form.
+
+ elementProperty
+
+
+
+ defaultUnits
+ A schema attribute of unit classes specifying the default units to use if the placeholder has a unit class but the substituted value has no units.
+
+ unitClassProperty
+
+
+
+ extensionAllowed
+ A schema attribute indicating that users can add unlimited levels of child nodes under this tag. This tag is propagated to child nodes with the exception of the hashtag placeholders.
+
+ boolProperty
+
+
+ nodeProperty
+
+
+ isInheritedProperty
+
+
+
+ inLibrary
+ Indicates this schema element came from the named library schema, not the standard schema. This attribute is added by tools when a library schema is merged into its partnered standard schema.
+
+ elementProperty
+
+
+
+ recommended
+ A schema attribute indicating that the event-level HED string should include this tag.
+
+ boolProperty
+
+
+ nodeProperty
+
+
+
+ relatedTag
+ A schema attribute suggesting HED tags that are closely related to this tag. This attribute is used by tagging tools.
+
+ nodeProperty
+
+
+ isInheritedProperty
+
+
+
+ requireChild
+ A schema attribute indicating that one of the node elements descendants must be included when using this tag.
+
+ boolProperty
+
+
+ nodeProperty
+
+
+
+ required
+ A schema attribute indicating that every event-level HED string should include this tag.
+
+ boolProperty
+
+
+ nodeProperty
+
+
+
+ reserved
+ A schema attribute indicating that this tag has special meaning and requires special handling by tools.
+
+ boolProperty
+
+
+ nodeProperty
+
+
+
+ rooted
+ Indicates a top-level library schema node is identical to a node of the same name in the partnered standard schema. This attribute can only appear in nodes that have the inLibrary schema attribute.
+
+ nodeProperty
+
+
+
+ SIUnit
+ A schema attribute indicating that this unit element is an SI unit and can be modified by multiple and submultiple names. Note that some units such as byte are designated as SI units although they are not part of the standard.
+
+ boolProperty
+
+
+ unitProperty
+
+
+
+ SIUnitModifier
+ A schema attribute indicating that this SI unit modifier represents a multiple or submultiple of a base unit rather than a unit symbol.
+
+ boolProperty
+
+
+ unitModifierProperty
+
+
+
+ SIUnitSymbolModifier
+ A schema attribute indicating that this SI unit modifier represents a multiple or submultiple of a unit symbol rather than a base symbol.
+
+ boolProperty
+
+
+ unitModifierProperty
+
+
+
+ suggestedTag
+ A schema attribute that indicates another tag that is often associated with this tag. This attribute is used by tagging tools to provide tagging suggestions.
+
+ nodeProperty
+
+
+ isInheritedProperty
+
+
+
+ tagGroup
+ A schema attribute indicating the tag can only appear inside a tag group.
+
+ boolProperty
+
+
+ nodeProperty
+
+
+
+ takesValue
+ A schema attribute indicating the tag is a hashtag placeholder that is expected to be replaced with a user-defined value.
+
+ boolProperty
+
+
+ nodeProperty
+
+
+
+ topLevelTagGroup
+ A schema attribute indicating that this tag (or its descendants) can only appear in a top-level tag group. A tag group can have at most one tag with this attribute.
+
+ boolProperty
+
+
+ nodeProperty
+
+
+
+ unique
+ A schema attribute indicating that only one of this tag or its descendants can be used in the event-level HED string.
+
+ boolProperty
+
+
+ nodeProperty
+
+
+
+ unitClass
+ A schema attribute specifying which unit class this value tag belongs to.
+
+ nodeProperty
+
+
+
+ unitPrefix
+ A schema attribute applied specifically to unit elements to designate that the unit indicator is a prefix (e.g., dollar sign in the currency units).
+
+ boolProperty
+
+
+ unitProperty
+
+
+
+ unitSymbol
+ A schema attribute indicating this tag is an abbreviation or symbol representing a type of unit. Unit symbols represent both the singular and the plural and thus cannot be pluralized.
+
+ boolProperty
+
+
+ unitProperty
+
+
+
+ valueClass
+ A schema attribute specifying which value class this value tag belongs to.
+
+ nodeProperty
+
+
+
+
+
+ boolProperty
+ Indicates that the schema attribute represents something that is either true or false and does not have a value. Attributes without this value are assumed to have string values.
+
+
+ elementProperty
+ Indicates this schema attribute can apply to any type of element(tag term, unit class, etc).
+
+
+ isInheritedProperty
+ Indicates that this attribute is inherited by child nodes. This property only applies to schema attributes for nodes.
+
+
+ nodeProperty
+ Indicates this schema attribute applies to node (tag-term) elements. This was added to allow for an attribute to apply to multiple elements.
+
+
+ unitClassProperty
+ Indicates that the schema attribute is meant to be applied to unit classes.
+
+
+ unitModifierProperty
+ Indicates that the schema attribute is meant to be applied to unit modifier classes.
+
+
+ unitProperty
+ Indicates that the schema attribute is meant to be applied to units within a unit class.
+
+
+ valueClassProperty
+ Indicates that the schema attribute is meant to be applied to value classes.
+
+
+ The Standardized Computer-based Organized Reporting of EEG (SCORE) is a standard terminology for scalp EEG data assessment designed for use in clinical practice that may also be used for research purposes.
+The SCORE standard defines terms for describing phenomena observed in scalp EEG data. It is also potentially applicable (with some suitable extensions) to EEG recorded in critical care and neonatal settings.
+The SCORE standard received European consensus and has been endorsed by the European Chapter of the International Federation of Clinical Neurophysiology (IFCN) and the International League Against Epilepsy (ILAE) Commission on European Affairs.
+A second revised and extended version of SCORE achieved international consensus.
+
+[1] Beniczky, Sandor, et al. "Standardized computer based organized reporting of EEG: SCORE." Epilepsia 54.6 (2013).
+[2] Beniczky, Sandor, et al. "Standardized computer based organized reporting of EEG: SCORE second version." Clinical Neurophysiology 128.11 (2017).
+
+TPA, March 2023
+
diff --git a/hed/schema/schema_io/base2schema.py b/hed/schema/schema_io/base2schema.py
new file mode 100644
index 000000000..e3c4a351e
--- /dev/null
+++ b/hed/schema/schema_io/base2schema.py
@@ -0,0 +1,104 @@
+import copy
+from hed.errors.exceptions import HedFileError, HedExceptions
+from hed.schema import HedSchema
+from abc import abstractmethod, ABC
+from hed.schema import schema_validation_util
+
+
+class SchemaLoader(ABC):
+ """ Baseclass for schema loading, to handle basic errors and partnered schemas
+
+ Expected usage is SchemaLoaderXML.load(filename)
+
+ SchemaLoaderXML(filename) will load just the header_attributes
+ """
+ def __init__(self, filename, schema_as_string=None):
+ """Loads the given schema from one of the two parameters.
+
+ Parameters:
+ filename(str or None): A valid filepath or None
+ schema_as_string(str or None): A full schema as text or None
+ """
+ if schema_as_string and filename:
+ raise HedFileError(HedExceptions.BAD_PARAMETERS, "Invalid parameters to schema creation.",
+ filename)
+
+ self.filename = filename
+ self.schema_as_string = schema_as_string
+
+ try:
+ self.input_data = self._open_file()
+ except OSError as e:
+ raise HedFileError(HedExceptions.FILE_NOT_FOUND, e.strerror, filename)
+ except TypeError as e:
+ raise HedFileError(HedExceptions.FILE_NOT_FOUND, str(e), filename)
+ except ValueError as e:
+ raise HedFileError(HedExceptions.FILE_NOT_FOUND, str(e), filename)
+
+ self._schema = HedSchema()
+ self._schema.filename = filename
+ hed_attributes = self._get_header_attributes(self.input_data)
+ schema_validation_util.validate_attributes(hed_attributes, filename=self.filename)
+ self._schema.header_attributes = hed_attributes
+ self._loading_merged = False
+
+ @property
+ def schema(self):
+ """ The partially loaded schema if you are after just header attributes."""
+ return self._schema
+
+ @classmethod
+ def load(cls, filename=None, schema_as_string=None):
+ """ Loads and returns the schema, including partnered schema if applicable.
+
+ Parameters:
+ filename(str or None): A valid filepath or None
+ schema_as_string(str or None): A full schema as text or None
+ Returns:
+ schema(HedSchema): The new schema
+ """
+ loader = cls(filename, schema_as_string)
+ return loader._load()
+
+ def _load(self):
+ """ Parses the previously loaded data, including loading a partnered schema if needed.
+
+ Returns:
+ schema(HedSchema): The new schema
+ """
+ self._loading_merged = True
+ # Do a full load of the standard schema if this is a partnered schema
+ if self._schema.with_standard and not self._schema.merged:
+ from hed.schema.hed_schema_io import load_schema_version
+ saved_attr = self._schema.header_attributes
+ try:
+ base_version = load_schema_version(self._schema.with_standard)
+ except HedFileError as e:
+ raise HedFileError(HedExceptions.BAD_WITH_STANDARD_VERSION,
+ message=f"Cannot load withStandard schema '{self._schema.with_standard}'",
+ filename=e.filename)
+ # Copy the non-alterable cached schema
+ self._schema = copy.deepcopy(base_version)
+ self._schema.filename = self.filename
+ self._schema.header_attributes = saved_attr
+ self._loading_merged = False
+
+ self._parse_data()
+ self._schema.finalize_dictionaries()
+
+ return self._schema
+
+ @abstractmethod
+ def _open_file(self):
+ """Overloaded versions should retrieve the input from filename/schema_as_string"""
+ pass
+
+ @abstractmethod
+ def _get_header_attributes(self, input_data):
+ """Overloaded versions should return the header attributes from the input data."""
+ pass
+
+ @abstractmethod
+ def _parse_data(self):
+ """Puts the input data into the new schema"""
+ pass
diff --git a/hed/schema/schema_io/schema2base.py b/hed/schema/schema_io/schema2base.py
index 7ed8aceaf..e373cf1a1 100644
--- a/hed/schema/schema_io/schema2base.py
+++ b/hed/schema/schema_io/schema2base.py
@@ -1,15 +1,18 @@
"""Baseclass for mediawiki/xml writers"""
from hed.schema.hed_schema_constants import HedSectionKey, HedKey
-import copy
-class HedSchema2Base:
+class Schema2Base:
def __init__(self):
# Placeholder output variable
self.output = None
- pass
+ self._save_lib = False
+ self._save_base = False
+ self._save_merged = False
+ self._strip_out_in_library = False
- def process_schema(self, hed_schema, save_merged=False):
+ @classmethod
+ def process_schema(cls, hed_schema, save_merged=False):
"""
Takes a HedSchema object and returns a list of strings representing its .mediawiki version.
@@ -17,39 +20,42 @@ def process_schema(self, hed_schema, save_merged=False):
----------
hed_schema : HedSchema
save_merged: bool
- If true, this will save the schema as a merged schema if it is a "withStandard" schema.
+ If True, this will save the schema as a merged schema if it is a "withStandard" schema.
If it is not a "withStandard" schema, this setting has no effect.
Returns
-------
- mediawiki_strings: [str]
- A list of strings representing the .mediawiki version of this schema.
+ converted_output: Any
+ Varies based on inherited class
"""
- self._save_lib = False
- self._save_base = False
+ saver = cls()
+ saver._save_lib = False
+ saver._save_base = False
+ saver._strip_out_in_library = True
if hed_schema.with_standard:
- self._save_lib = True
+ saver._save_lib = True
if save_merged:
- self._save_base = True
+ saver._save_base = True
+ saver._strip_out_in_library = False
else:
# Saving a standard schema or a library schema without a standard schema
save_merged = True
- self._save_lib = True
- self._save_base = True
- self._save_merged = save_merged
+ saver._save_lib = True
+ saver._save_base = True
+ saver._save_merged = save_merged
- self._output_header(hed_schema.get_save_header_attributes(self._save_merged), hed_schema.prologue)
- self._output_tags(hed_schema.all_tags)
- self._output_units(hed_schema.unit_classes)
- self._output_section(hed_schema, HedSectionKey.UnitModifiers)
- self._output_section(hed_schema, HedSectionKey.ValueClasses)
- self._output_section(hed_schema, HedSectionKey.Attributes)
- self._output_section(hed_schema, HedSectionKey.Properties)
- self._output_footer(hed_schema.epilogue)
+ saver._output_header(hed_schema.get_save_header_attributes(saver._save_merged), hed_schema.prologue)
+ saver._output_tags(hed_schema.tags)
+ saver._output_units(hed_schema.unit_classes)
+ saver._output_section(hed_schema, HedSectionKey.UnitModifiers)
+ saver._output_section(hed_schema, HedSectionKey.ValueClasses)
+ saver._output_section(hed_schema, HedSectionKey.Attributes)
+ saver._output_section(hed_schema, HedSectionKey.Properties)
+ saver._output_footer(hed_schema.epilogue)
- return self.output
+ return saver.output
def _output_header(self, attributes, prologue):
raise NotImplementedError("This needs to be defined in the subclass")
@@ -69,13 +75,13 @@ def _write_tag_entry(self, tag_entry, parent=None, level=0):
def _write_entry(self, entry, parent_node, include_props=True):
raise NotImplementedError("This needs to be defined in the subclass")
- def _output_tags(self, all_tags):
- schema_node = self._start_section(HedSectionKey.AllTags)
+ def _output_tags(self, tags):
+ schema_node = self._start_section(HedSectionKey.Tags)
# This assumes .all_entries is sorted in a reasonable way for output.
level_adj = 0
- all_nodes = {} # List of all nodes we've written out.
- for tag_entry in all_tags.all_entries:
+ all_nodes = {} # List of all nodes we've written out.
+ for tag_entry in tags.all_entries:
if self._should_skip(tag_entry):
continue
tag = tag_entry.name
@@ -137,3 +143,6 @@ def _should_skip(self, entry):
if not self._save_lib and has_lib_attr:
return True
return False
+
+ def _attribute_disallowed(self, attribute):
+ return self._strip_out_in_library and attribute == HedKey.InLibrary
diff --git a/hed/schema/schema_io/schema2wiki.py b/hed/schema/schema_io/schema2wiki.py
index 1de5e9c1b..2a8a315b4 100644
--- a/hed/schema/schema_io/schema2wiki.py
+++ b/hed/schema/schema_io/schema2wiki.py
@@ -1,11 +1,11 @@
"""Allows output of HedSchema objects as .mediawiki format"""
-from hed.schema.hed_schema_constants import HedSectionKey, HedKey
+from hed.schema.hed_schema_constants import HedSectionKey
from hed.schema.schema_io import wiki_constants
-from hed.schema.schema_io.schema2base import HedSchema2Base
+from hed.schema.schema_io.schema2base import Schema2Base
-class HedSchema2Wiki(HedSchema2Base):
+class Schema2Wiki(Schema2Base):
def __init__(self):
super().__init__()
self.current_tag_string = ""
@@ -95,7 +95,7 @@ def _format_props_and_desc(self, schema_entry):
prop_string = ""
tag_props = schema_entry.attributes
if tag_props:
- prop_string += self._format_tag_props(tag_props)
+ prop_string += self._format_tag_attributes(tag_props)
desc = schema_entry.description
if desc:
if tag_props:
@@ -123,13 +123,13 @@ def _get_attribs_string_from_schema(header_attributes):
final_attrib_string = " ".join(attrib_values)
return final_attrib_string
- def _format_tag_props(self, tag_props):
+ def _format_tag_attributes(self, attributes):
"""
Takes a dictionary of tag attributes and returns a string with the .mediawiki representation
Parameters
----------
- tag_props : {str:str}
+ attributes : {str:str}
{attribute_name : attribute_value}
Returns
-------
@@ -138,11 +138,9 @@ def _format_tag_props(self, tag_props):
"""
prop_string = ""
final_props = []
- for prop, value in tag_props.items():
+ for prop, value in attributes.items():
# Never save InLibrary if saving merged.
- if not self._save_merged and prop == HedKey.InLibrary:
- continue
- if value is None or value is False:
+ if self._attribute_disallowed(prop):
continue
if value is True:
final_props.append(prop)
@@ -158,4 +156,4 @@ def _format_tag_props(self, tag_props):
interior = ", ".join(final_props)
prop_string = f"{{{interior}}}"
- return prop_string
\ No newline at end of file
+ return prop_string
diff --git a/hed/schema/schema_io/schema2xml.py b/hed/schema/schema_io/schema2xml.py
index 974480347..d18456459 100644
--- a/hed/schema/schema_io/schema2xml.py
+++ b/hed/schema/schema_io/schema2xml.py
@@ -1,12 +1,12 @@
"""Allows output of HedSchema objects as .xml format"""
from xml.etree.ElementTree import Element, SubElement
-from hed.schema.hed_schema_constants import HedSectionKey, HedKey
+from hed.schema.hed_schema_constants import HedSectionKey
from hed.schema.schema_io import xml_constants
-from hed.schema.schema_io.schema2base import HedSchema2Base
+from hed.schema.schema_io.schema2base import Schema2Base
-class HedSchema2XML(HedSchema2Base):
+class Schema2XML(Schema2Base):
def __init__(self):
super().__init__()
self.hed_node = Element('HED')
@@ -29,7 +29,7 @@ def _output_footer(self, epilogue):
prologue_node.text = epilogue
def _start_section(self, key_class):
- unit_modifier_node = SubElement(self.hed_node, xml_constants.SECTION_NAMES[key_class])
+ unit_modifier_node = SubElement(self.hed_node, xml_constants.SECTION_ELEMENTS[key_class])
return unit_modifier_node
def _end_tag_section(self):
@@ -52,7 +52,7 @@ def _write_tag_entry(self, tag_entry, parent_node=None, level=0):
SubElement
The added node
"""
- key_class = HedSectionKey.AllTags
+ key_class = HedSectionKey.Tags
tag_element = xml_constants.ELEMENT_NAMES[key_class]
tag_description = tag_entry.description
tag_attributes = tag_entry.attributes
@@ -65,7 +65,7 @@ def _write_tag_entry(self, tag_entry, parent_node=None, level=0):
if tag_attributes:
attribute_node_name = xml_constants.ATTRIBUTE_PROPERTY_ELEMENTS[key_class]
self._add_tag_node_attributes(tag_node, tag_attributes,
- attribute_node_name=attribute_node_name)
+ attribute_node_name=attribute_node_name)
return tag_node
@@ -100,7 +100,7 @@ def _write_entry(self, entry, parent_node=None, include_props=True):
if tag_attributes:
attribute_node_name = xml_constants.ATTRIBUTE_PROPERTY_ELEMENTS[key_class]
self._add_tag_node_attributes(tag_node, tag_attributes,
- attribute_node_name=attribute_node_name)
+ attribute_node_name=attribute_node_name)
return tag_node
@@ -122,9 +122,7 @@ def _add_tag_node_attributes(self, tag_node, tag_attributes, attribute_node_name
-------
"""
for attribute, value in tag_attributes.items():
- if value is False:
- continue
- if not self._save_merged and attribute == HedKey.InLibrary:
+ if self._attribute_disallowed(attribute):
continue
node_name = attribute_node_name
attribute_node = SubElement(tag_node, node_name)
diff --git a/hed/schema/schema_io/schema_util.py b/hed/schema/schema_io/schema_util.py
index 2135e0aa1..d2bf0721a 100644
--- a/hed/schema/schema_io/schema_util.py
+++ b/hed/schema/schema_io/schema_util.py
@@ -1,5 +1,6 @@
""" Utilities for writing content to files and for other file manipulation."""
+import shutil
import tempfile
import os
import urllib.request
@@ -12,10 +13,10 @@
def get_api_key():
"""
- Tries to get the Github access token from the environment. Defaults to above value if not found.
+ Tries to get the GitHub access token from the environment. Defaults to above value if not found.
Returns:
- A Github access key or an empty string.
+ A GitHub access key or an empty string.
"""
try:
return os.environ["HED_GITHUB_TOKEN"]
@@ -24,7 +25,7 @@ def get_api_key():
def make_url_request(resource_url, try_authenticate=True):
- """ Make a request and adds the above Github access credentials.
+ """ Make a request and adds the above GitHub access credentials.
Parameters:
resource_url (str): The url to retrieve.
@@ -91,8 +92,29 @@ def write_strings_to_file(output_strings, extension=None):
return opened_file.name
+def move_file(input_path, target_path):
+ """
+ If target_path is not empty, move input file to target file
+
+ Parameters:
+ input_path(str): Path to an existing file
+ target_path(str or None): Path to move this file to
+ If None, the function does nothing and returns input_path
+
+ Returns:
+ filepath(str): the original or moved filepath
+ """
+ if target_path:
+ directory = os.path.dirname(target_path)
+ if directory and not os.path.exists(directory):
+ os.makedirs(directory)
+ shutil.move(input_path, target_path)
+ return target_path
+ return input_path
+
+
def write_xml_tree_2_xml_file(xml_tree, extension=".xml"):
- """ Write an XML element tree object into a XML file.
+ """ Write an XML element tree object into an XML file.
Parameters:
xml_tree (Element): An element representing an XML file.
@@ -119,5 +141,5 @@ def _xml_element_2_str(elem):
"""
rough_string = ElementTree.tostring(elem, method='xml')
- reparsed = minidom.parseString(rough_string)
- return reparsed.toprettyxml(indent=" ")
+ parsed = minidom.parseString(rough_string)
+ return parsed.toprettyxml(indent=" ")
diff --git a/hed/schema/schema_io/wiki2schema.py b/hed/schema/schema_io/wiki2schema.py
index 645c412e1..a02f9ed6e 100644
--- a/hed/schema/schema_io/wiki2schema.py
+++ b/hed/schema/schema_io/wiki2schema.py
@@ -6,9 +6,10 @@
from hed.schema.hed_schema_constants import HedSectionKey, HedKey
from hed.errors.exceptions import HedFileError, HedExceptions
from hed.errors import ErrorContext, error_reporter
-from hed.schema import HedSchema
from hed.schema import schema_validation_util
from hed.schema.schema_io import wiki_constants
+from .base2schema import SchemaLoader
+from .wiki_constants import HedWikiSection, SectionStarts, SectionNames
header_attr_expression = "([^ ]+?)=\"(.*?)\""
attr_re = re.compile(header_attr_expression)
@@ -21,47 +22,6 @@
no_wiki_end_tag = ''
-# these must always be in order under the current spec.
-class HedWikiSection:
- HeaderLine = 2
- Prologue = 3
- Schema = 4
- EndSchema = 5
- UnitsClasses = 6
- UnitModifiers = 7
- ValueClasses = 8
- Attributes = 9
- Properties = 10
- Epilogue = 11
- EndHed = 12
-
-
-SectionStarts = {
- HedWikiSection.Prologue: wiki_constants.PROLOGUE_SECTION_ELEMENT,
- HedWikiSection.Schema: wiki_constants.START_HED_STRING,
- HedWikiSection.EndSchema: wiki_constants.END_SCHEMA_STRING,
- HedWikiSection.UnitsClasses: wiki_constants.UNIT_CLASS_STRING,
- HedWikiSection.UnitModifiers: wiki_constants.UNIT_MODIFIER_STRING,
- HedWikiSection.ValueClasses: wiki_constants.VALUE_CLASS_STRING,
- HedWikiSection.Attributes: wiki_constants.ATTRIBUTE_DEFINITION_STRING,
- HedWikiSection.Properties: wiki_constants.ATTRIBUTE_PROPERTY_STRING,
- HedWikiSection.Epilogue: wiki_constants.EPILOGUE_SECTION_ELEMENT,
- HedWikiSection.EndHed: wiki_constants.END_HED_STRING
-}
-
-SectionNames = {
- HedWikiSection.HeaderLine: "Header",
- HedWikiSection.Prologue: "Prologue",
- HedWikiSection.Schema: "Schema",
- HedWikiSection.EndSchema: "EndSchema",
- HedWikiSection.UnitsClasses: "Unit Classes",
- HedWikiSection.UnitModifiers: "Unit Modifiers",
- HedWikiSection.ValueClasses: "Value Classes",
- HedWikiSection.Attributes: "Attributes",
- HedWikiSection.Properties: "Properties",
- HedWikiSection.EndHed: "EndHed"
-}
-
ErrorsBySection = {
HedWikiSection.Schema: HedExceptions.SCHEMA_START_MISSING,
HedWikiSection.EndSchema: HedExceptions.SCHEMA_END_INVALID,
@@ -70,69 +30,39 @@ class HedWikiSection:
required_sections = [HedWikiSection.Schema, HedWikiSection.EndSchema, HedWikiSection.EndHed]
-class HedSchemaWikiParser:
- def __init__(self, wiki_file_path, schema_as_string):
- self.filename = wiki_file_path
- self.fatal_errors = []
- self._schema = HedSchema()
- self._schema.filename = wiki_file_path
- self._loading_merged = True
-
- try:
- if wiki_file_path and schema_as_string:
- raise HedFileError(HedExceptions.BAD_PARAMETERS, "Invalid parameters to schema creation.",
- wiki_file_path)
- if wiki_file_path:
- with open(wiki_file_path, 'r', encoding='utf-8', errors='replace') as wiki_file:
- wiki_lines = wiki_file.readlines()
- else:
- # Split this into lines, but keep linebreaks.
- wiki_lines = [line + "\n" for line in schema_as_string.split("\n")]
+class SchemaLoaderWiki(SchemaLoader):
+ """ Loads MediaWiki schemas from filenames or strings.
- self._read_wiki(wiki_lines)
- except FileNotFoundError as e:
- raise HedFileError(HedExceptions.FILE_NOT_FOUND, e.strerror, wiki_file_path)
+ Expected usage is SchemaLoaderWiki.load(filename)
- if self.fatal_errors:
- self.fatal_errors = error_reporter.sort_issues(self.fatal_errors)
- raise HedFileError(HedExceptions.HED_WIKI_DELIMITERS_INVALID,
- f"{len(self.fatal_errors)} issues found when parsing schema. See the .issues "
- f"parameter on this exception for more details.", self.filename,
- issues=self.fatal_errors)
- self._schema.finalize_dictionaries()
+ SchemaLoaderWiki(filename) will load just the header_attributes
+ """
+ def __init__(self, filename, schema_as_string=None):
+ super().__init__(filename, schema_as_string)
+ self.fatal_errors = []
- @staticmethod
- def load_wiki(wiki_file_path=None, schema_as_string=None):
- parser = HedSchemaWikiParser(wiki_file_path, schema_as_string)
- return parser._schema
+ def _open_file(self):
+ if self.filename:
+ with open(self.filename, 'r', encoding='utf-8', errors='replace') as wiki_file:
+ wiki_lines = wiki_file.readlines()
+ else:
+ # Split this into lines, but keep linebreaks.
+ wiki_lines = [line + "\n" for line in self.schema_as_string.split("\n")]
- def _read_wiki(self, wiki_lines):
- """
- Calls the parsers for each section as this goes through the file.
+ return wiki_lines
- Parameters
- ----------
- wiki_lines : iter(str)
- An opened .mediawiki file
- """
- # Read header line as we need it to determine if this is a hed3 schema or not before locating sections
- self._read_header_line(wiki_lines)
+ def _get_header_attributes(self, file_data):
+ line = ""
+ if file_data:
+ line = file_data[0]
+ if line.startswith(wiki_constants.HEADER_LINE_STRING):
+ hed_attributes = self._get_header_attributes_internal(line[len(wiki_constants.HEADER_LINE_STRING):])
+ return hed_attributes
+ msg = f"First line of file should be HED, instead found: {line}"
+ raise HedFileError(HedExceptions.SCHEMA_HEADER_MISSING, msg, filename=self.filename)
- if self._schema.with_standard and not self._schema.merged:
- from hed.schema.hed_schema_io import load_schema_version
- saved_attr = self._schema.header_attributes
- try:
- base_version = load_schema_version(self._schema.with_standard)
- except HedFileError as e:
- raise HedFileError(HedExceptions.BAD_WITH_STANDARD_VERSION,
- message=f"Cannot load withStandard schema '{self._schema.with_standard}'",
- filename=e.filename)
- self._schema = base_version
- self._schema.filename = self.filename
- self._schema.header_attributes = saved_attr
- self._loading_merged = False
-
- wiki_lines_by_section = self._split_lines_into_sections(wiki_lines)
+ def _parse_data(self):
+ wiki_lines_by_section = self._split_lines_into_sections(self.input_data)
parse_order = {
HedWikiSection.HeaderLine: self._read_header_section,
HedWikiSection.Prologue: self._read_prologue,
@@ -155,69 +85,12 @@ def _read_wiki(self, wiki_lines):
msg = f"Required section separator '{SectionNames[section]}' not found in file"
raise HedFileError(error_code, msg, filename=self.filename)
- def _check_for_new_section(self, line, strings_for_section, current_section):
- new_section = None
- for key, section_string in SectionStarts.items():
- if line.startswith(section_string):
- if key in strings_for_section:
- msg = f"Found section {SectionNames[key]} twice"
- raise HedFileError(HedExceptions.INVALID_SECTION_SEPARATOR,
- msg, filename=self.filename)
- if current_section < key:
- new_section = key
- else:
- error_code = HedExceptions.INVALID_SECTION_SEPARATOR
- if key in ErrorsBySection:
- error_code = ErrorsBySection[key]
- msg = f"Found section {SectionNames[key]} out of order in file"
- raise HedFileError(error_code, msg, filename=self.filename)
- break
- return new_section
-
- def _handle_bad_section_sep(self, line, current_section):
- if current_section != HedWikiSection.Schema and line.startswith(wiki_constants.ROOT_TAG):
- msg = f"Invalid section separator '{line.strip()}'"
- raise HedFileError(HedExceptions.INVALID_SECTION_SEPARATOR, msg, filename=self.filename)
-
- if line.startswith("!#"):
- msg = f"Invalid section separator '{line.strip()}'"
- raise HedFileError(HedExceptions.INVALID_SECTION_SEPARATOR, msg, filename=self.filename)
-
- def _split_lines_into_sections(self, wiki_lines):
- """ Takes a list of lines, and splits it into valid wiki sections.
-
- Parameters:
- wiki_lines : [str]
-
- Returns:
- sections: {str: [str]}
- A list of lines for each section of the schema(not including the identifying section line)
- """
- current_section = HedWikiSection.HeaderLine
- strings_for_section = {}
- strings_for_section[HedWikiSection.HeaderLine] = []
- for line_number, line in enumerate(wiki_lines):
- # Header is handled earlier
- if line_number == 0:
- continue
-
- new_section = self._check_for_new_section(line, strings_for_section, current_section)
-
- if new_section:
- strings_for_section[new_section] = []
- current_section = new_section
- continue
-
- self._handle_bad_section_sep(line, current_section)
-
- if current_section == HedWikiSection.Prologue or current_section == HedWikiSection.Epilogue:
- strings_for_section[current_section].append((line_number + 1, line))
- else:
- line = self._remove_nowiki_tag_from_line(line_number + 1, line.strip())
- if line:
- strings_for_section[current_section].append((line_number + 1, line))
-
- return strings_for_section
+ if self.fatal_errors:
+ self.fatal_errors = error_reporter.sort_issues(self.fatal_errors)
+ raise HedFileError(HedExceptions.HED_WIKI_DELIMITERS_INVALID,
+ f"{len(self.fatal_errors)} issues found when parsing schema. See the .issues "
+ f"parameter on this exception for more details.", self.filename,
+ issues=self.fatal_errors)
def _parse_sections(self, wiki_lines_by_section, parse_order):
for section in parse_order:
@@ -225,18 +98,6 @@ def _parse_sections(self, wiki_lines_by_section, parse_order):
parse_func = parse_order[section]
parse_func(lines_for_section)
- def _read_header_line(self, lines):
- line = ""
- if lines:
- line = lines[0]
- if line.startswith(wiki_constants.HEADER_LINE_STRING):
- hed_attributes = self._get_header_attributes(line[len(wiki_constants.HEADER_LINE_STRING):])
- schema_validation_util.validate_attributes(hed_attributes, filename=self.filename)
- self._schema.header_attributes = hed_attributes
- return
- msg = f"First line of file should be HED, instead found: {line}"
- raise HedFileError(HedExceptions.SCHEMA_HEADER_MISSING, msg, filename=self.filename)
-
def _read_header_section(self, lines):
"""Ensures the header has no content other than the initial line.
@@ -289,7 +150,7 @@ def _read_schema(self, lines):
lines: [(int, str)]
Lines for this section
"""
- self._schema._initialize_attributes(HedSectionKey.AllTags)
+ self._schema._initialize_attributes(HedSectionKey.Tags)
parent_tags = []
level_adj = 0
for line_number, line in lines:
@@ -301,7 +162,8 @@ def _read_schema(self, lines):
if level < len(parent_tags):
parent_tags = parent_tags[:level]
elif level > len(parent_tags):
- self._add_fatal_error(line_number, line, "Line has too many *'s at the front. You cannot skip a level.")
+ self._add_fatal_error(line_number, line,
+ "Line has too many *'s at the front. You cannot skip a level.")
continue
# Create the entry
tag_entry = self._add_tag_line(parent_tags, line_number, line)
@@ -321,7 +183,7 @@ def _read_schema(self, lines):
self._add_fatal_error(line_number, line, e.message, e.code)
continue
- tag_entry = self._add_to_dict(line_number, line, tag_entry, HedSectionKey.AllTags)
+ tag_entry = self._add_to_dict(line_number, line, tag_entry, HedSectionKey.Tags)
parent_tags.append(tag_entry.short_tag_name)
@@ -384,7 +246,7 @@ def _read_properties(self, lines):
def _read_attributes(self, lines):
self._read_section(lines, HedSectionKey.Attributes)
- def _get_header_attributes(self, version_line):
+ def _get_header_attributes_internal(self, version_line):
"""Extracts all valid attributes like version from the HED line in .mediawiki format.
Parameters
@@ -397,7 +259,7 @@ def _get_header_attributes(self, version_line):
{}: The key is the name of the attribute, value being the value. eg {'version':'v1.0.1'}
"""
if "=" not in version_line:
- return self._get_header_attributes_old(version_line)
+ return self._get_header_attributes_internal_old(version_line)
final_attributes = {}
@@ -408,8 +270,8 @@ def _get_header_attributes(self, version_line):
return final_attributes
- def _get_header_attributes_old(self, version_line):
- """Extracts all valid attributes like version from the HED line in .mediawiki format.
+ def _get_header_attributes_internal_old(self, version_line):
+ """ Extracts all valid attributes like version from the HED line in .mediawiki format.
Parameters
----------
@@ -477,9 +339,9 @@ def _remove_nowiki_tag_from_line(self, line_number, tag_line):
"""
index1 = tag_line.find(no_wiki_start_tag)
index2 = tag_line.find(no_wiki_end_tag)
- if (index1 == -1 and index2 != -1) or (index2 == -1 and index1 != -1):
+ if index1 == -1 ^ index2 == -1: # XOR operation, true if exactly one of the conditions is true
self._add_fatal_error(line_number, tag_line, "Invalid or non matching tags found")
- elif index1 != -1 and index2 != -1 and index2 <= index1:
+ elif index1 != -1 and index2 <= index1:
self._add_fatal_error(line_number, tag_line, " appears before on a line")
tag_line = re.sub(no_wiki_tag, '', tag_line)
return tag_line
@@ -519,7 +381,7 @@ def _get_tag_attributes(tag_line, starting_index):
int: The last index we found tag attributes at.
"""
- attr_string, starting_index = HedSchemaWikiParser._get_line_section(tag_line, starting_index, '{', '}')
+ attr_string, starting_index = SchemaLoaderWiki._get_line_section(tag_line, starting_index, '{', '}')
if attr_string is None:
return None, starting_index
if attr_string:
@@ -593,7 +455,7 @@ def _add_tag_line(self, parent_tags, line_number, tag_line):
long_tag_name = "/".join(parent_tags) + "/" + tag_name
else:
long_tag_name = tag_name
- return self._create_entry(line_number, tag_line, HedSectionKey.AllTags, long_tag_name)
+ return self._create_entry(line_number, tag_line, HedSectionKey.Tags, long_tag_name)
self._add_fatal_error(line_number, tag_line)
return None
@@ -622,7 +484,7 @@ def _create_entry(self, line_number, tag_line, key_class, element_name=None):
tag_entry.description = node_desc.strip()
for attribute_name, attribute_value in node_attributes.items():
- tag_entry.set_attribute_value(attribute_name, attribute_value)
+ tag_entry._set_attribute_value(attribute_name, attribute_value)
return tag_entry
@@ -632,6 +494,70 @@ def _add_fatal_error(self, line_number, line, warning_message="Schema term is em
{'code': error_code,
ErrorContext.ROW: line_number,
ErrorContext.LINE: line,
- "message": f"ERROR: {warning_message}"
+ "message": f"{warning_message}"
}
)
+
+ def _check_for_new_section(self, line, strings_for_section, current_section):
+ new_section = None
+ for key, section_string in SectionStarts.items():
+ if line.startswith(section_string):
+ if key in strings_for_section:
+ msg = f"Found section {SectionNames[key]} twice"
+ raise HedFileError(HedExceptions.INVALID_SECTION_SEPARATOR,
+ msg, filename=self.filename)
+ if current_section < key:
+ new_section = key
+ else:
+ error_code = HedExceptions.INVALID_SECTION_SEPARATOR
+ if key in ErrorsBySection:
+ error_code = ErrorsBySection[key]
+ msg = f"Found section {SectionNames[key]} out of order in file"
+ raise HedFileError(error_code, msg, filename=self.filename)
+ break
+ return new_section
+
+ def _handle_bad_section_sep(self, line, current_section):
+ if current_section != HedWikiSection.Schema and line.startswith(wiki_constants.ROOT_TAG):
+ msg = f"Invalid section separator '{line.strip()}'"
+ raise HedFileError(HedExceptions.INVALID_SECTION_SEPARATOR, msg, filename=self.filename)
+
+ if line.startswith("!#"):
+ msg = f"Invalid section separator '{line.strip()}'"
+ raise HedFileError(HedExceptions.INVALID_SECTION_SEPARATOR, msg, filename=self.filename)
+
+ def _split_lines_into_sections(self, wiki_lines):
+ """ Takes a list of lines, and splits it into valid wiki sections.
+
+ Parameters:
+ wiki_lines : [str]
+
+ Returns:
+ sections: {str: [str]}
+ A list of lines for each section of the schema(not including the identifying section line)
+ """
+ current_section = HedWikiSection.HeaderLine
+ strings_for_section = {}
+ strings_for_section[HedWikiSection.HeaderLine] = []
+ for line_number, line in enumerate(wiki_lines):
+ # Header is handled earlier
+ if line_number == 0:
+ continue
+
+ new_section = self._check_for_new_section(line, strings_for_section, current_section)
+
+ if new_section:
+ strings_for_section[new_section] = []
+ current_section = new_section
+ continue
+
+ self._handle_bad_section_sep(line, current_section)
+
+ if current_section == HedWikiSection.Prologue or current_section == HedWikiSection.Epilogue:
+ strings_for_section[current_section].append((line_number + 1, line))
+ else:
+ line = self._remove_nowiki_tag_from_line(line_number + 1, line.strip())
+ if line:
+ strings_for_section[current_section].append((line_number + 1, line))
+
+ return strings_for_section
diff --git a/hed/schema/schema_io/wiki_constants.py b/hed/schema/schema_io/wiki_constants.py
index 2f7020654..81912e10f 100644
--- a/hed/schema/schema_io/wiki_constants.py
+++ b/hed/schema/schema_io/wiki_constants.py
@@ -14,7 +14,7 @@
EPILOGUE_SECTION_ELEMENT = "'''Epilogue'''"
wiki_section_headers = {
- HedSectionKey.AllTags: START_HED_STRING,
+ HedSectionKey.Tags: START_HED_STRING,
HedSectionKey.UnitClasses: UNIT_CLASS_STRING,
HedSectionKey.Units: None,
HedSectionKey.UnitModifiers: UNIT_MODIFIER_STRING,
@@ -22,3 +22,45 @@
HedSectionKey.Attributes: ATTRIBUTE_DEFINITION_STRING,
HedSectionKey.Properties: ATTRIBUTE_PROPERTY_STRING,
}
+
+
+# these must always be in order under the current spec.
+class HedWikiSection:
+ HeaderLine = 2
+ Prologue = 3
+ Schema = 4
+ EndSchema = 5
+ UnitsClasses = 6
+ UnitModifiers = 7
+ ValueClasses = 8
+ Attributes = 9
+ Properties = 10
+ Epilogue = 11
+ EndHed = 12
+
+
+SectionStarts = {
+ HedWikiSection.Prologue: PROLOGUE_SECTION_ELEMENT,
+ HedWikiSection.Schema: START_HED_STRING,
+ HedWikiSection.EndSchema: END_SCHEMA_STRING,
+ HedWikiSection.UnitsClasses: UNIT_CLASS_STRING,
+ HedWikiSection.UnitModifiers: UNIT_MODIFIER_STRING,
+ HedWikiSection.ValueClasses: VALUE_CLASS_STRING,
+ HedWikiSection.Attributes: ATTRIBUTE_DEFINITION_STRING,
+ HedWikiSection.Properties: ATTRIBUTE_PROPERTY_STRING,
+ HedWikiSection.Epilogue: EPILOGUE_SECTION_ELEMENT,
+ HedWikiSection.EndHed: END_HED_STRING
+}
+
+SectionNames = {
+ HedWikiSection.HeaderLine: "Header",
+ HedWikiSection.Prologue: "Prologue",
+ HedWikiSection.Schema: "Schema",
+ HedWikiSection.EndSchema: "EndSchema",
+ HedWikiSection.UnitsClasses: "Unit Classes",
+ HedWikiSection.UnitModifiers: "Unit Modifiers",
+ HedWikiSection.ValueClasses: "Value Classes",
+ HedWikiSection.Attributes: "Attributes",
+ HedWikiSection.Properties: "Properties",
+ HedWikiSection.EndHed: "EndHed"
+}
diff --git a/hed/schema/schema_io/xml2schema.py b/hed/schema/schema_io/xml2schema.py
index 90d884848..c300439e3 100644
--- a/hed/schema/schema_io/xml2schema.py
+++ b/hed/schema/schema_io/xml2schema.py
@@ -4,103 +4,130 @@
from defusedxml import ElementTree
import xml
+
+import hed.schema.hed_schema_constants
from hed.errors.exceptions import HedFileError, HedExceptions
from hed.schema.hed_schema_constants import HedSectionKey, HedKey
-from hed.schema import HedSchema
from hed.schema import schema_validation_util
from hed.schema.schema_io import xml_constants
+from .base2schema import SchemaLoader
+from functools import partial
-class HedSchemaXMLParser:
- def __init__(self, hed_xml_file_path, schema_as_string=None):
- self._root_element = self._parse_hed_xml(hed_xml_file_path, schema_as_string)
- # Used to find parent elements of XML nodes during file parsing
- self._parent_map = {c: p for p in self._root_element.iter() for c in p}
+class SchemaLoaderXML(SchemaLoader):
+ """ Loads XML schemas from filenames or strings.
+
+ Expected usage is SchemaLoaderXML.load(filename)
- self._schema = HedSchema()
- self._schema.filename = hed_xml_file_path
- self._schema.header_attributes = self._get_header_attributes()
- self._loading_merged = True
- if self._schema.with_standard and not self._schema.merged:
- from hed.schema.hed_schema_io import load_schema_version
- saved_attr = self._schema.header_attributes
- try:
- base_version = load_schema_version(self._schema.with_standard)
- except HedFileError as e:
- raise HedFileError(HedExceptions.BAD_WITH_STANDARD_VERSION,
- message=f"Cannot load withStandard schema '{self._schema.with_standard}'",
- filename=e.filename)
- self._schema = base_version
- self._schema.filename = hed_xml_file_path
- self._schema.header_attributes = saved_attr
- self._loading_merged = False
-
- self._schema.prologue = self._get_prologue()
- self._schema.epilogue = self._get_epilogue()
-
- self._populate_section(HedSectionKey.Properties)
- self._populate_section(HedSectionKey.Attributes)
- self._populate_section(HedSectionKey.ValueClasses)
- self._populate_section(HedSectionKey.UnitModifiers)
-
- self._populate_unit_class_dictionaries()
- self._populate_tag_dictionaries()
- self._schema.finalize_dictionaries()
-
- @staticmethod
- def load_xml(xml_file_path=None, schema_as_string=None):
- parser = HedSchemaXMLParser(xml_file_path, schema_as_string)
- return parser._schema
-
- @staticmethod
- def _parse_hed_xml(hed_xml_file_path, schema_as_string=None):
+ SchemaLoaderXML(filename) will load just the header_attributes
+ """
+ def __init__(self, filename, schema_as_string=None):
+ super().__init__(filename, schema_as_string)
+ self._root_element = None
+ self._parent_map = {}
+
+ def _open_file(self):
"""Parses an XML file and returns the root element.
Parameters
----------
- hed_xml_file_path: str
- The path to a HED XML file.
- schema_as_string: str
- Alternate input, a full schema XML file as a string.
Returns
-------
RestrictedElement
The root element of the HED XML file.
"""
- if schema_as_string and hed_xml_file_path:
- raise HedFileError(HedExceptions.BAD_PARAMETERS, "Invalid parameters to schema creation.",
- hed_xml_file_path)
-
try:
- if hed_xml_file_path:
- hed_xml_tree = ElementTree.parse(hed_xml_file_path)
+ if self.filename:
+ hed_xml_tree = ElementTree.parse(self.filename)
root = hed_xml_tree.getroot()
else:
- root = ElementTree.fromstring(schema_as_string)
+ root = ElementTree.fromstring(self.schema_as_string)
except xml.etree.ElementTree.ParseError as e:
- raise HedFileError(HedExceptions.CANNOT_PARSE_XML, e.msg, hed_xml_file_path)
- except FileNotFoundError as e:
- raise HedFileError(HedExceptions.FILE_NOT_FOUND, e.strerror, hed_xml_file_path)
- except TypeError as e:
- raise HedFileError(HedExceptions.FILE_NOT_FOUND, str(e), hed_xml_file_path)
+ raise HedFileError(HedExceptions.CANNOT_PARSE_XML, e.msg, self.schema_as_string)
return root
- def _populate_section(self, key_class):
+ def _get_header_attributes(self, root_element):
+ """
+ Gets the schema attributes form the XML root node
+
+ Returns
+ -------
+ attribute_dict: {str: str}
+ """
+ return self._reformat_xsd_attrib(root_element.attrib)
+
+ def _parse_data(self):
+ self._root_element = self.input_data
+ self._parent_map = {c: p for p in self._root_element.iter() for c in p}
+
+ parse_order = {
+ HedSectionKey.Properties: partial(self._populate_section, HedSectionKey.Properties),
+ HedSectionKey.Attributes: partial(self._populate_section, HedSectionKey.Attributes),
+ HedSectionKey.UnitModifiers: partial(self._populate_section, HedSectionKey.UnitModifiers),
+ HedSectionKey.UnitClasses: self._populate_unit_class_dictionaries,
+ HedSectionKey.ValueClasses: partial(self._populate_section, HedSectionKey.ValueClasses),
+ HedSectionKey.Tags: self._populate_tag_dictionaries,
+ }
+ self._schema.prologue = self._read_prologue()
+ self._schema.epilogue = self._read_epilogue()
+ self._parse_sections(self._root_element, parse_order)
+
+ def _parse_sections(self, root_element, parse_order):
+ for section_key in parse_order:
+ section_name = xml_constants.SECTION_ELEMENTS[section_key]
+ section_element = self._get_elements_by_name(section_name, root_element)
+ if section_element:
+ section_element = section_element[0]
+ if isinstance(section_element, list):
+ raise HedFileError(HedExceptions.INVALID_HED_FORMAT,
+ "Attempting to load an outdated or invalid XML schema", self.filename)
+ parse_func = parse_order[section_key]
+ parse_func(section_element)
+
+ def _populate_section(self, key_class, section):
self._schema._initialize_attributes(key_class)
- section_name = xml_constants.SECTION_NAMES[key_class]
- section = self._get_elements_by_name(section_name)
- if section:
- section = section[0]
-
- def_element_name = xml_constants.ELEMENT_NAMES[key_class]
- attribute_elements = self._get_elements_by_name(def_element_name, section)
- for element in attribute_elements:
- new_entry = self._parse_node(element, key_class)
- self._add_to_dict(new_entry, key_class)
-
- def _populate_tag_dictionaries(self):
+ def_element_name = xml_constants.ELEMENT_NAMES[key_class]
+ attribute_elements = self._get_elements_by_name(def_element_name, section)
+ for element in attribute_elements:
+ new_entry = self._parse_node(element, key_class)
+ self._add_to_dict(new_entry, key_class)
+
+ def _read_prologue(self):
+ prologue_elements = self._get_elements_by_name(xml_constants.PROLOGUE_ELEMENT)
+ if len(prologue_elements) == 1:
+ return prologue_elements[0].text
+ return ""
+
+ def _read_epilogue(self):
+ epilogue_elements = self._get_elements_by_name(xml_constants.EPILOGUE_ELEMENT)
+ if len(epilogue_elements) == 1:
+ return epilogue_elements[0].text
+ return ""
+
+ def _add_tags_recursive(self, new_tags, parent_tags):
+ for tag_element in new_tags:
+ current_tag = self._get_element_tag_value(tag_element)
+ parents_and_child = parent_tags + [current_tag]
+ full_tag = "/".join(parents_and_child)
+
+ tag_entry = self._parse_node(tag_element, HedSectionKey.Tags, full_tag)
+
+ rooted_entry = schema_validation_util.find_rooted_entry(tag_entry, self._schema, self._loading_merged)
+ if rooted_entry:
+ loading_from_chain = rooted_entry.name + "/" + tag_entry.short_tag_name
+ loading_from_chain_short = tag_entry.short_tag_name
+
+ full_tag = full_tag.replace(loading_from_chain_short, loading_from_chain)
+ tag_entry = self._parse_node(tag_element, HedSectionKey.Tags, full_tag)
+ parents_and_child = full_tag.split("/")
+
+ self._add_to_dict(tag_entry, HedSectionKey.Tags)
+ child_tags = tag_element.findall("node")
+ self._add_tags_recursive(child_tags, parents_and_child)
+
+ def _populate_tag_dictionaries(self, tag_section):
"""Populates a dictionary of dictionaries associated with tags and their attributes.
Parameters
@@ -112,31 +139,12 @@ def _populate_tag_dictionaries(self):
A dictionary of dictionaries that has been populated with dictionaries associated with tag attributes.
"""
- self._schema._initialize_attributes(HedSectionKey.AllTags)
- tag_elements = self._get_elements_by_name("node")
- loading_from_chain = ""
- loading_from_chain_short = ""
- for tag_element in tag_elements:
- tag = self._get_tag_path_from_tag_element(tag_element)
- if loading_from_chain:
- if loading_from_chain_short == tag or not tag.startswith(loading_from_chain_short):
- loading_from_chain_short = ""
- loading_from_chain = ""
- else:
- tag = tag.replace(loading_from_chain_short, loading_from_chain)
- tag_entry = self._parse_node(tag_element, HedSectionKey.AllTags, tag)
+ self._schema._initialize_attributes(HedSectionKey.Tags)
+ root_tags = tag_section.findall("node")
- rooted_entry = schema_validation_util.find_rooted_entry(tag_entry, self._schema, self._loading_merged)
- if rooted_entry:
- loading_from_chain = rooted_entry.name + "/" + tag_entry.short_tag_name
- loading_from_chain_short = tag_entry.short_tag_name
+ self._add_tags_recursive(root_tags, [])
- tag = tag.replace(loading_from_chain_short, loading_from_chain)
- tag_entry = self._parse_node(tag_element, HedSectionKey.AllTags, tag)
-
- self._add_to_dict(tag_entry, HedSectionKey.AllTags)
-
- def _populate_unit_class_dictionaries(self):
+ def _populate_unit_class_dictionaries(self, unit_section):
"""Populates a dictionary of dictionaries associated with all the unit classes, unit class units, and unit
class default units.
@@ -152,14 +160,8 @@ class default units.
"""
self._schema._initialize_attributes(HedSectionKey.UnitClasses)
self._schema._initialize_attributes(HedSectionKey.Units)
- section_name = xml_constants.SECTION_NAMES[HedSectionKey.UnitClasses]
- units_section_nodes = self._get_elements_by_name(section_name)
- if len(units_section_nodes) == 0:
- return
- units_section = units_section_nodes[0]
-
def_element_name = xml_constants.ELEMENT_NAMES[HedSectionKey.UnitClasses]
- unit_class_elements = self._get_elements_by_name(def_element_name, units_section)
+ unit_class_elements = self._get_elements_by_name(def_element_name, unit_section)
for unit_class_element in unit_class_elements:
unit_class_entry = self._parse_node(unit_class_element, HedSectionKey.UnitClasses)
@@ -177,36 +179,13 @@ def _reformat_xsd_attrib(self, attrib_dict):
for attrib_name in attrib_dict:
if attrib_name == xml_constants.NO_NAMESPACE_XSD_KEY:
xsd_value = attrib_dict[attrib_name]
- final_attrib[xml_constants.NS_ATTRIB] = xml_constants.XSI_SOURCE
- final_attrib[xml_constants.NO_LOC_ATTRIB] = xsd_value
+ final_attrib[hed.schema.hed_schema_constants.NS_ATTRIB] = xml_constants.XSI_SOURCE
+ final_attrib[hed.schema.hed_schema_constants.NO_LOC_ATTRIB] = xsd_value
else:
final_attrib[attrib_name] = attrib_dict[attrib_name]
return final_attrib
- def _get_header_attributes(self):
- """
- Gets the schema attributes form the XML root node
-
- Returns
- -------
- attribute_dict: {str: str}
-
- """
- return self._reformat_xsd_attrib(self._root_element.attrib)
-
- def _get_prologue(self):
- prologue_elements = self._get_elements_by_name(xml_constants.PROLOGUE_ELEMENT)
- if len(prologue_elements) == 1:
- return prologue_elements[0].text
- return ""
-
- def _get_epilogue(self):
- epilogue_elements = self._get_elements_by_name(xml_constants.EPILOGUE_ELEMENT)
- if len(epilogue_elements) == 1:
- return epilogue_elements[0].text
- return ""
-
def _parse_node(self, node_element, key_class, element_name=None):
if element_name:
node_name = element_name
@@ -228,30 +207,10 @@ def _parse_node(self, node_element, key_class, element_name=None):
# Todo: do we need to validate this here?
if not attribute_value:
attribute_value = True
- tag_entry.set_attribute_value(attribute_name, attribute_value)
+ tag_entry._set_attribute_value(attribute_name, attribute_value)
return tag_entry
- def _get_ancestor_tag_names(self, tag_element):
- """ Get all ancestor tag names of a tag element.
-
- Parameters:
- tag_element (Element): A tag element in the HED XML file.
-
- Returns:
- list: Contains all the ancestor tag names of a given tag.
-
- """
- ancestor_tags = []
- parent_tag_name = self._get_parent_tag_name(tag_element)
- parent_element = self._parent_map[tag_element]
- while parent_tag_name:
- ancestor_tags.append(parent_tag_name)
- parent_tag_name = self._get_parent_tag_name(parent_element)
- if parent_tag_name:
- parent_element = self._parent_map[parent_element]
- return ancestor_tags
-
def _get_element_tag_value(self, element, tag_name=xml_constants.NAME_ELEMENT):
""" Get the value of the element's tag.
@@ -275,43 +234,6 @@ def _get_element_tag_value(self, element, tag_name=xml_constants.NAME_ELEMENT):
return element.text
return ""
- def _get_parent_tag_name(self, tag_element):
- """ Return the name of the tag parent element.
-
- Parameters:
- tag_element (Element): A tag element in the HED XML file.
-
- Returns:
- str: The name of the tag element's parent.
-
- Notes:
- If there is no parent tag then an empty string is returned.
-
- """
- parent_tag_element = self._parent_map[tag_element]
- if parent_tag_element is not None:
- return parent_tag_element.findtext(xml_constants.NAME_ELEMENT)
- else:
- return ''
-
- def _get_tag_path_from_tag_element(self, tag_element):
- """ Get the tag path from a given tag element.
-
- Parameters:
- tag_element (Element): A tag element in the HED XML file.
-
- Returns:
- str: A tag path which is typically referred to as a tag.
-
- Notes:
- The tag and it's ancestor tags will be separated by /'s.
-
- """
- ancestor_tag_names = self._get_ancestor_tag_names(tag_element)
- ancestor_tag_names.insert(0, self._get_element_tag_value(tag_element))
- ancestor_tag_names.reverse()
- return '/'.join(ancestor_tag_names)
-
def _get_elements_by_name(self, element_name='node', parent_element=None):
""" Get the elements that have a specific element name.
@@ -338,4 +260,4 @@ def _add_to_dict(self, entry, key_class):
raise HedFileError(HedExceptions.IN_LIBRARY_IN_UNMERGED,
f"Library tag in unmerged schema has InLibrary attribute",
self._schema.filename)
- return self._schema._add_tag_to_dict(entry.name, entry, key_class)
\ No newline at end of file
+ return self._schema._add_tag_to_dict(entry.name, entry, key_class)
diff --git a/hed/schema/schema_io/xml_constants.py b/hed/schema/schema_io/xml_constants.py
index 3dbd7e647..332b5edba 100644
--- a/hed/schema/schema_io/xml_constants.py
+++ b/hed/schema/schema_io/xml_constants.py
@@ -3,9 +3,6 @@
# These are only currently used by the XML reader/writer, but that may change.
XSI_SOURCE = "http://www.w3.org/2001/XMLSchema-instance"
NO_NAMESPACE_XSD_KEY = f"{{{XSI_SOURCE}}}noNamespaceSchemaLocation"
-NS_ATTRIB = "xmlns:xsi"
-NO_LOC_ATTRIB = "xsi:noNamespaceSchemaLocation"
-
NAME_ELEMENT = "name"
DESCRIPTION_ELEMENT = "description"
@@ -35,8 +32,8 @@
SCHEMA_VALUE_CLASSES_DEF_ELEMENT = "valueClassDefinition"
-SECTION_NAMES = {
- HedSectionKey.AllTags: SCHEMA_ELEMENT,
+SECTION_ELEMENTS = {
+ HedSectionKey.Tags: SCHEMA_ELEMENT,
HedSectionKey.UnitClasses: UNIT_CLASS_SECTION_ELEMENT,
HedSectionKey.UnitModifiers: UNIT_MODIFIER_SECTION_ELEMENT,
HedSectionKey.ValueClasses: SCHEMA_VALUE_CLASSES_SECTION_ELEMENT,
@@ -46,7 +43,7 @@
ELEMENT_NAMES = {
- HedSectionKey.AllTags: TAG_DEF_ELEMENT,
+ HedSectionKey.Tags: TAG_DEF_ELEMENT,
HedSectionKey.UnitClasses: UNIT_CLASS_DEF_ELEMENT,
HedSectionKey.Units: UNIT_CLASS_UNIT_ELEMENT,
HedSectionKey.UnitModifiers: UNIT_MODIFIER_DEF_ELEMENT,
@@ -57,7 +54,7 @@
ATTRIBUTE_PROPERTY_ELEMENTS = {
- HedSectionKey.AllTags: ATTRIBUTE_ELEMENT,
+ HedSectionKey.Tags: ATTRIBUTE_ELEMENT,
HedSectionKey.UnitClasses: ATTRIBUTE_ELEMENT,
HedSectionKey.Units: ATTRIBUTE_ELEMENT,
HedSectionKey.UnitModifiers: ATTRIBUTE_ELEMENT,
diff --git a/hed/schema/schema_validation_util.py b/hed/schema/schema_validation_util.py
index aaf7cccea..8404970e7 100644
--- a/hed/schema/schema_validation_util.py
+++ b/hed/schema/schema_validation_util.py
@@ -140,7 +140,7 @@ def find_rooted_entry(tag_entry, schema, loading_merged):
f'Found rooted tag \'{tag_entry.short_tag_name}\' as a root node in a merged schema.',
schema.filename)
- rooted_entry = schema.all_tags.get(rooted_tag)
+ rooted_entry = schema.tags.get(rooted_tag)
if not rooted_entry or rooted_entry.has_attribute(constants.HedKey.InLibrary):
raise HedFileError(HedExceptions.ROOTED_TAG_DOES_NOT_EXIST,
f"Rooted tag '{tag_entry.short_tag_name}' not found in paired standard schema",
@@ -169,12 +169,12 @@ def validate_schema_term(hed_term):
for i, char in enumerate(hed_term):
if i == 0 and not (char.isdigit() or char.isupper()):
- issues_list += ErrorHandler.format_error(SchemaWarnings.INVALID_CAPITALIZATION,
+ issues_list += ErrorHandler.format_error(SchemaWarnings.SCHEMA_INVALID_CAPITALIZATION,
hed_term, char_index=i, problem_char=char)
continue
if char in ALLOWED_TAG_CHARS or char.isalnum():
continue
- issues_list += ErrorHandler.format_error(SchemaWarnings.INVALID_CHARACTERS_IN_TAG,
+ issues_list += ErrorHandler.format_error(SchemaWarnings.SCHEMA_INVALID_CHARACTERS_IN_TAG,
hed_term, char_index=i, problem_char=char)
return issues_list
@@ -199,6 +199,6 @@ def validate_schema_description(tag_name, hed_description):
continue
if char in ALLOWED_DESC_CHARS:
continue
- issues_list += ErrorHandler.format_error(SchemaWarnings.INVALID_CHARACTERS_IN_DESC,
+ issues_list += ErrorHandler.format_error(SchemaWarnings.SCHEMA_INVALID_CHARACTERS_IN_DESC,
hed_description, tag_name, char_index=i, problem_char=char)
return issues_list
diff --git a/hed/tools/__init__.py b/hed/tools/__init__.py
index 4cfe71c4c..435af03eb 100644
--- a/hed/tools/__init__.py
+++ b/hed/tools/__init__.py
@@ -1,10 +1,10 @@
""" HED remodeling, analysis and summarization tools. """
from .analysis.file_dictionary import FileDictionary
-from .analysis.hed_context_manager import OnsetGroup, HedContextManager
-from .analysis.hed_type_definitions import HedTypeDefinitions
+# from .analysis.hed_context_manager import OnsetGroup, HedContextManager
+from .analysis.hed_type_defs import HedTypeDefs
from .analysis.hed_type_factors import HedTypeFactors
-from .analysis.hed_type_values import HedTypeValues
+from .analysis.hed_type import HedType
from .analysis.hed_type_manager import HedTypeManager
from .analysis.hed_type_counts import HedTypeCount
from .analysis.key_map import KeyMap
diff --git a/hed/tools/analysis/__init__.py b/hed/tools/analysis/__init__.py
index d0a02bbe5..82bf112d7 100644
--- a/hed/tools/analysis/__init__.py
+++ b/hed/tools/analysis/__init__.py
@@ -1,9 +1,9 @@
""" Basic analysis tools. """
from .file_dictionary import FileDictionary
-from .hed_context_manager import OnsetGroup, HedContextManager
-from .hed_type_definitions import HedTypeDefinitions
+# from .hed_context_manager import OnsetGroup, HedContextManager
+from .hed_type_defs import HedTypeDefs
from .hed_type_factors import HedTypeFactors
-from .hed_type_values import HedTypeValues
+from .hed_type import HedType
from .hed_type_manager import HedTypeManager
from .hed_type_counts import HedTypeCount
from .key_map import KeyMap
diff --git a/hed/tools/analysis/analysis_util.py b/hed/tools/analysis/analysis_util.py
index 37f2b9b9d..144c360de 100644
--- a/hed/tools/analysis/analysis_util.py
+++ b/hed/tools/analysis/analysis_util.py
@@ -41,7 +41,6 @@ def assemble_hed(data_input, sidecar, schema, columns_included=None, expand_defs
else:
df = data_input.dataframe[eligible_columns].copy(deep=True)
df['HED_assembled'] = hed_string_list
- # definitions = data_input.get_definitions().gathered_defs
return df, definitions
@@ -95,7 +94,7 @@ def search_strings(hed_strings, queries, query_names=None):
:raises ValueError:
- If query names are invalid or duplicated.
-
+
"""
expression_parsers, query_names = get_expression_parsers(queries, query_names=query_names)
diff --git a/hed/tools/analysis/annotation_util.py b/hed/tools/analysis/annotation_util.py
index 804a3e0cf..8de527f5a 100644
--- a/hed/tools/analysis/annotation_util.py
+++ b/hed/tools/analysis/annotation_util.py
@@ -32,17 +32,18 @@ def df_to_hed(dataframe, description_tag=True):
description_tag (bool): If True description tag is included.
Returns:
- dict: A dictionary compatible compatible with BIDS JSON tabular file that includes HED.
+ dict: A dictionary compatible with BIDS JSON tabular file that includes HED.
Notes:
- The DataFrame must have the columns with names: column_name, column_value, description, and HED.
"""
- missing_cols = check_df_columns(dataframe)
+ df = dataframe.fillna('n/a')
+ missing_cols = check_df_columns(df)
if missing_cols:
raise HedFileError("RequiredColumnsMissing", f"Columns {str(missing_cols)} are missing from dataframe", "")
hed_dict = {}
- for index, row in dataframe.iterrows():
+ for index, row in df.iterrows():
if row['HED'] == 'n/a' and row['description'] == 'n/a':
continue
if row['column_value'] == 'n/a':
@@ -164,6 +165,7 @@ def merge_hed_dict(sidecar_dict, hed_dict):
hed_dict(dict): Dictionary derived from a dataframe representation of HED in sidecar.
"""
+
for key, value_dict in hed_dict.items():
if key not in sidecar_dict:
sidecar_dict[key] = value_dict
@@ -318,7 +320,7 @@ def _flatten_val_col(col_key, col_dict):
#
# Returns:
# str: A HED string extracted from the row.
-# str: A string representing the description (without the Description tag.
+# str: A string representing the description (without the Description tag).
#
# Notes:
# If description_tag is True the entire tag string is included with description.
diff --git a/hed/tools/analysis/column_name_summary.py b/hed/tools/analysis/column_name_summary.py
index 5c7a710c9..90ed0ae88 100644
--- a/hed/tools/analysis/column_name_summary.py
+++ b/hed/tools/analysis/column_name_summary.py
@@ -26,7 +26,7 @@ def update_headers(self, column_names):
return len(self.unique_headers) - 1
def get_summary(self, as_json=False):
- patterns = [list() for element in self.unique_headers]
+ patterns = [list() for _ in self.unique_headers]
for key, value in self.file_dict.items():
patterns[value].append(key)
column_headers = []
diff --git a/hed/tools/analysis/event_manager.py b/hed/tools/analysis/event_manager.py
index 6062f85e8..c304cfacb 100644
--- a/hed/tools/analysis/event_manager.py
+++ b/hed/tools/analysis/event_manager.py
@@ -1,126 +1,191 @@
-""" Manages context and events of temporal extent. """
+""" Manages events of temporal extent. """
-from hed.schema import HedSchema, HedSchemaGroup
-from hed.tools.analysis.temporal_event import TemporalEvent
+from hed.models import HedString
from hed.models.model_constants import DefTagNames
from hed.models.df_util import get_assembled
+from hed.models.string_util import split_base_tags, split_def_tags
+from hed.tools.analysis.temporal_event import TemporalEvent
+from hed.tools.analysis.hed_type_defs import HedTypeDefs
class EventManager:
- def __init__(self, data, schema):
- """ Create an event manager for an events file.
+ def __init__(self, input_data, hed_schema, extra_defs=None):
+ """ Create an event manager for an events file. Manages events of temporal extent.
Parameters:
- data (TabularInput): A tabular input file.
- schema (HedSchema): A HED schema
+ input_data (TabularInput): Represents an events file with its sidecar.
+ hed_schema (HedSchema): HED schema used in this
+ extra_defs (DefinitionDict): Extra definitions not included in the input_data information.
:raises HedFileError:
- if there are any unmatched offsets.
+ Notes: Keeps the events of temporal extend by their starting index in events file. These events
+ are separated from the rest of the annotations.
+
"""
- if not isinstance(schema, HedSchema) and not isinstance(schema, HedSchemaGroup):
- raise ValueError("ContextRequiresSchema", f"Context manager must have a valid HedSchema of HedSchemaGroup")
- self.schema = schema
- self.data = data
- self.event_list = [[] for _ in range(len(self.data.dataframe))]
- self.hed_strings = [None for _ in range(len(self.data.dataframe))]
- self.onset_count = 0
- self.offset_count = 0
- self.contexts = []
- self._create_event_list()
+ self.event_list = [[] for _ in range(len(input_data.dataframe))]
+ self.hed_schema = hed_schema
+ self.input_data = input_data
+ self.def_dict = input_data.get_def_dict(hed_schema, extra_def_dicts=extra_defs)
+ self.onsets = input_data.dataframe['onset'].tolist()
+ self.hed_strings = None # Remaining HED strings copy.deepcopy(hed_strings)
+ self._create_event_list(input_data)
+
+ def _create_event_list(self, input_data):
+ """ Populate the event_list with the events with temporal extent indexed by event number.
+
+ Parameters:
+ input_data (TabularInput): A tabular input that includes its relevant sidecar.
- def iter_context(self):
- """ Iterate rows of context.
+ :raises HedFileError:
+ - If the hed_strings contain unmatched offsets.
- Yields:
- int: position in the dataFrame
- HedString: Context
+ Notes:
"""
+ hed_strings, def_dict = get_assembled(input_data, input_data._sidecar, self.hed_schema,
+ extra_def_dicts=None, join_columns=True,
+ shrink_defs=True, expand_defs=False)
+ onset_dict = {} # Temporary dictionary keeping track of temporal events that haven't ended yet.
+ for event_index, hed in enumerate(hed_strings):
+ self._extract_temporal_events(hed, event_index, onset_dict)
+ # Now handle the events that extend to end of list
+ for item in onset_dict.values():
+ item.set_end(len(self.onsets), None)
+ self.hed_strings = hed_strings
- for index in range(len(self.contexts)):
- yield index, self.contexts[index]
+ def _extract_temporal_events(self, hed, event_index, onset_dict):
+ """ Extract the temporal events and remove them from the other HED strings.
- def _create_event_list(self):
- """ Create a list of events of extended duration.
+ Parameters:
+ hed (HedString): The assembled HedString at position event_index in the data.
+ event_index (int): The position of this string in the data.
+ onset_dict (dict): Running dict that keeps track of temporal events that haven't yet ended.
+
+ Note:
+ This removes the events of temporal extent from hed.
+
+ """
+ if not hed:
+ return
+ group_tuples = hed.find_top_level_tags(anchor_tags={DefTagNames.ONSET_KEY, DefTagNames.OFFSET_KEY},
+ include_groups=2)
+ to_remove = []
+ for tup in group_tuples:
+ anchor_tag = tup[1].find_def_tags(recursive=False, include_groups=0)[0]
+ anchor = anchor_tag.extension.lower()
+ if anchor in onset_dict or tup[0].short_base_tag.lower() == DefTagNames.OFFSET_KEY:
+ temporal_event = onset_dict.pop(anchor)
+ temporal_event.set_end(event_index, self.onsets[event_index])
+ if tup[0] == DefTagNames.ONSET_KEY:
+ new_event = TemporalEvent(tup[1], event_index, self.onsets[event_index])
+ self.event_list[event_index].append(new_event)
+ onset_dict[anchor] = new_event
+ to_remove.append(tup[1])
+ hed.remove(to_remove)
+
+ def unfold_context(self, remove_types=[]):
+ """ Unfolds the event information into hed, base, and contexts either as arrays of str or of HedString.
- :raises HedFileError:
- - If the hed_strings contain unmatched offsets.
+ Parameters:
+ remove_types (list): List of types to remove.
+
+ Returns:
+ list of str or HedString representing the information without the events of temporal extent
+ list of str or HedString representing the onsets of the events of temporal extent
+ list of str or HedString representing the ongoing context information.
"""
- # self.hed_strings = [HedString(str(hed), hed_schema=hed_schema) for hed in hed_strings]
- # hed_list = list(self.data.iter_dataframe(hed_ops=[self.hed_schema], return_string_only=False,
- # expand_defs=False, remove_definitions=True))
-
- onset_dict = {}
- event_index = 0
- self.hed_strings, definitions = get_assembled(self.data, self.data._sidecar, self.schema, extra_def_dicts=None,
- join_columns=True, shrink_defs=True, expand_defs=False)
- for hed in self.hed_strings:
- # to_remove = [] # tag_tuples = hed.find_tags(['Onset'], recursive=False, include_groups=1)
- group_tuples = hed.find_top_level_tags(anchor_tags={DefTagNames.ONSET_KEY, DefTagNames.OFFSET_KEY},
- include_groups=2)
- for tup in group_tuples:
- group = tup[1]
- anchor_tag = group.find_def_tags(recursive=False, include_groups=0)[0]
- anchor = anchor_tag.extension.lower()
- if anchor in onset_dict or tup[0].short_base_tag.lower() == "offset":
- temporal_event = onset_dict.pop(anchor)
- temporal_event.set_end(event_index, self.data.dataframe.loc[event_index, "onset"])
- if tup[0] == DefTagNames.ONSET_KEY:
- new_event = TemporalEvent(tup[1], event_index, self.data.dataframe.loc[event_index, "onset"])
- self.event_list[event_index].append(new_event)
- onset_dict[anchor] = new_event
- # to_remove.append(tup[1])
- # hed.remove(to_remove)
- event_index = event_index + 1
+ placeholder = ""
+ remove_defs = self.get_type_defs(remove_types)
+ new_hed = [placeholder for _ in range(len(self.hed_strings))]
+ new_base = [placeholder for _ in range(len(self.hed_strings))]
+ new_contexts = [placeholder for _ in range(len(self.hed_strings))]
+ base, contexts = self._expand_context()
+ for index, item in enumerate(self.hed_strings):
+ new_hed[index] = self._process_hed(item, remove_types=remove_types,
+ remove_defs=remove_defs, remove_group=False)
+ new_base[index] = self._process_hed(base[index], remove_types=remove_types,
+ remove_defs=remove_defs, remove_group=True)
+ new_contexts[index] = self._process_hed(contexts[index], remove_types=remove_types,
+ remove_defs=remove_defs, remove_group=True)
+ return new_hed, new_base, new_contexts # these are each a list of strings
+
+ def _expand_context(self):
+ """ Expands the onset and the ongoing context for additional processing.
- # Now handle the events that extend to end of list
- for item in onset_dict.values():
- item.set_end(len(self.data.dataframe), None)
+ """
+ base = [[] for _ in range(len(self.hed_strings))]
+ contexts = [[] for _ in range(len(self.hed_strings))]
+ for events in self.event_list:
+ for event in events:
+ this_str = str(event.contents)
+ base[event.start_index].append(this_str)
+ for i in range(event.start_index + 1, event.end_index):
+ contexts[i].append(this_str)
+
+ return self.compress_strings(base), self.compress_strings(contexts)
+
+ def _process_hed(self, hed, remove_types=[], remove_defs=[], remove_group=False):
+ if not hed:
+ return ""
+ # Reconvert even if hed is already a HedString to make sure a copy and expandable.
+ hed_obj = HedString(str(hed), hed_schema=self.hed_schema, def_dict=self.def_dict)
+ hed_obj, temp1 = split_base_tags(hed_obj, remove_types, remove_group=remove_group)
+ if remove_defs:
+ hed_obj, temp2 = split_def_tags(hed_obj, remove_defs, remove_group=remove_group)
+ return str(hed_obj)
+
+ def str_list_to_hed(self, str_list):
+ """ Create a HedString object from a list of strings.
- def _set_event_contexts(self):
- """ Creates an event context for each hed string.
+ Parameters:
+ str_list (list): A list of strings to be concatenated with commas and then converted.
- Notes:
- The event context would be placed in a event context group, but is kept in a separate array without the
- event context group or tag.
+ Returns:
+ HedString or None: The converted list.
"""
- # contexts = [[] for _ in range(len(self.hed_strings))]
- # for onset in self.onset_list:
- # for i in range(onset.start_index+1, onset.end_index):
- # contexts[i].append(onset.contents)
- # for i in range(len(self.hed_strings)):
- # contexts[i] = HedString(",".join(contexts[i]), hed_schema=self.hed_schema)
- # self.contexts = contexts
- print("_set_event_contexts not implemented yet")
-
- def _update_onset_list(self, group, onset_dict, event_index):
- """ Process one onset or offset group to create onset_list.
+ filtered_list = [item for item in str_list if item != ''] # list of strings
+ if not filtered_list: # empty lists don't contribute
+ return None
+ return HedString(",".join(filtered_list), self.hed_schema, def_dict=self.def_dict)
+
+ @staticmethod
+ def compress_strings(list_to_compress):
+ result_list = ["" for _ in range(len(list_to_compress))]
+ for index, item in enumerate(list_to_compress):
+ if item:
+ result_list[index] = ",".join(item)
+ return result_list
+
+ def get_type_defs(self, types):
+ """ Return a list of definition names (lower case) that correspond to one of the specified types.
Parameters:
- group (HedGroup): The HedGroup containing the onset or offset.
- onset_dict (dict): A dictionary of OnsetGroup objects that keep track of span of an event.
- event_index (int): The event number in the list.
+ types (list): List of tags that are treated as types such as 'Condition-variable'
- :raises HedFileError:
- - if an unmatched offset is encountered.
+ Returns:
+ list: List of definition names (lower-case) that correspond to the specified types
- Notes:
- - Modifies onset_dict and onset_list.
"""
- # def_tags = group.find_def_tags(recursive=False, include_groups=0)
- # name = def_tags[0].extension
- # onset_element = onset_dict.pop(name, None)
- # if onset_element:
- # onset_element.end_index = event_index
- # self.onset_list.append(onset_element)
- # elif is_offset:
- # raise HedFileError("UnmatchedOffset", f"Unmatched {name} offset at event {event_index}", " ")
- # if not is_offset:
- # onset_element = TemporalEvent(name, group, event_index)
- # onset_dict[name] = onset_element
+ def_list = []
+ for this_type in types:
+ type_defs = HedTypeDefs(self.def_dict, type_tag=this_type)
+ def_list = def_list + list(type_defs.def_map.keys())
+ return def_list
+
+ # @staticmethod
+ # def fix_list(hed_list, hed_schema, as_string=False):
+ # for index, item in enumerate(hed_list):
+ # if not item:
+ # hed_list[index] = None
+ # elif as_string:
+ # hed_list[index] = ",".join(str(item))
+ # else:
+ # hed_list[index] = HedString(",".join(str(item)), hed_schema)
+ # return hed_list
diff --git a/hed/tools/analysis/hed_context_manager.py b/hed/tools/analysis/hed_context_manager.py
deleted file mode 100644
index 6cf26ed94..000000000
--- a/hed/tools/analysis/hed_context_manager.py
+++ /dev/null
@@ -1,142 +0,0 @@
-""" Manages context and events of temporal extent. """
-
-from hed.errors.exceptions import HedFileError
-from hed.models import HedGroup, HedString
-from hed.schema import HedSchema, HedSchemaGroup
-from hed.tools.analysis.analysis_util import hed_to_str
-
-# TODO: [Refactor] clean up distinction between hed as strings versus objects -- maybe replace by event manager.
-# TODO: Implement insets
-
-class OnsetGroup:
- def __init__(self, name, contents, start_index, end_index=None):
- self.name = name
- self.start_index = start_index
- self.end_index = end_index
- self.contents = hed_to_str(contents, remove_parentheses=True)
-
- def __str__(self):
- return f"{self.name}:[events {self.start_index}:{self.end_index} contents:{self.contents}]"
-
-
-class HedContextManager:
-
- def __init__(self, hed_strings, hed_schema):
- """ Create an context manager for an events file.
-
- Parameters:
- hed_strings (list): A list of HedString objects to be managed.
- hed_schema (HedSchema): A HedSchema
-
- :raises HedFileError:
- - If there are any unmatched offsets.
-
- Notes:
- The constructor has the side-effect of splitting each element of the hed_strings list into two
- by removing the Offset groups and the Onset tags. The context has the temporal extent information.
- For users wanting to use only Onset events, self.hed_strings contains the information.
-
- """
-
- self.hed_strings = hed_strings
- if not isinstance(hed_schema, HedSchema) and not isinstance(hed_schema, HedSchemaGroup):
- raise ValueError("ContextRequiresSchema", f"Context manager must have a valid HedSchema of HedSchemaGroup")
- self.hed_schema = hed_schema
- self.onset_list = []
- self.onset_count = 0
- self.offset_count = 0
- self.contexts = []
- self._create_onset_list()
- self._set_event_contexts()
-
- # def _extract_hed_objs(self, assembled):
- # hed_objs = [None for _ in range(len(assembled))]
- # for index, value in assembled["HED_assembled"].items():
- # hed_objs[index] = HedString(value, hed_schema=self.hed_schema)
- # return hed_objs
-
- def iter_context(self):
- """ Iterate rows of context.
-
- Yields:
- HedString: The HedString.
- HedString: Context
-
- """
-
- for index in range(len(self.hed_strings)):
- yield self.hed_strings[index], self.contexts[index]
-
- def _create_onset_list(self):
- """ Create a list of events of extended duration.
-
- :raises HedFileError:
- - If the hed_strings contain unmatched offsets.
-
- """
-
- self.onset_list = []
- onset_dict = {}
- for event_index, hed in enumerate(self.hed_strings):
- to_remove = [] # tag_tuples = hed.find_tags(['Onset'], recursive=False, include_groups=1)
- onset_tuples = hed.find_top_level_tags(["onset"], include_groups=2)
- self.onset_count += len(onset_tuples)
- for tup in onset_tuples:
- group = tup[1]
- group.remove([tup[0]])
- self._update_onset_list(group, onset_dict, event_index, is_offset=False)
- offset_tuples = hed.find_top_level_tags(["offset"], include_groups=2)
- self.offset_count += len(offset_tuples)
- for tup in offset_tuples:
- group = tup[1]
- to_remove.append(group)
- self._update_onset_list(group, onset_dict, event_index, is_offset=True)
- hed.remove(to_remove)
-
- # Now handle the events that extend to end of list
- for key, value in onset_dict.items():
- value.end_index = len(self.hed_strings)
- self.onset_list.append(value)
-
- def _set_event_contexts(self):
- """ Creates an event context for each hed string.
-
- Notes:
- The event context would be placed in a event context group, but is kept in a separate array without the
- event context group or tag.
-
- """
- contexts = [[] for _ in range(len(self.hed_strings))]
- for onset in self.onset_list:
- for i in range(onset.start_index+1, onset.end_index):
- contexts[i].append(onset.contents)
- for i in range(len(self.hed_strings)):
- contexts[i] = HedString(",".join(contexts[i]), hed_schema=self.hed_schema)
- self.contexts = contexts
-
- def _update_onset_list(self, group, onset_dict, event_index, is_offset=False):
- """ Process one onset or offset group to create onset_list.
-
- Parameters:
- group (HedGroup): The HedGroup containing the onset or offset.
- onset_dict (dict): A dictionary of OnsetGroup objects that keep track of span of an event.
- event_index (int): The event number in the list.
- is_offset (bool): True if processing an offset.
-
- :raises HedFileError:
- - If an unmatched offset is encountered.
-
- Notes:
- - Modifies onset_dict and onset_list.
- """
- def_tags = group.find_def_tags(recursive=False, include_groups=0)
- name = def_tags[0].extension
- onset_element = onset_dict.pop(name, None)
- if onset_element:
- onset_element.end_index = event_index
- self.onset_list.append(onset_element)
- elif is_offset:
- raise HedFileError("UnmatchedOffset", f"Unmatched {name} offset at event {event_index}", " ")
- if not is_offset:
- onset_element = OnsetGroup(name, group, event_index)
- onset_dict[name] = onset_element
diff --git a/hed/tools/analysis/hed_tag_counts.py b/hed/tools/analysis/hed_tag_counts.py
index 300319820..1dd86d899 100644
--- a/hed/tools/analysis/hed_tag_counts.py
+++ b/hed/tools/analysis/hed_tag_counts.py
@@ -76,13 +76,12 @@ def __init__(self, name, total_events=0):
self.files = {}
self.total_events = total_events
- def update_event_counts(self, hed_string_obj, file_name, definitions=None):
+ def update_event_counts(self, hed_string_obj, file_name):
""" Update the tag counts based on a hed string object.
Parameters:
hed_string_obj (HedString): The HED string whose tags should be counted.
file_name (str): The name of the file corresponding to these counts.
- definitions (dict): The definitions associated with the HED string.
"""
if file_name not in self.files:
@@ -151,7 +150,8 @@ def _update_template(tag_count, template, unmatched):
Parameters:
tag_count (HedTagCount): Information for a particular tag.
- template (dict): The
+ template (dict): The dictionary to match.
+ unmatched (list): List of tag counts not matched so far.
"""
tag_list = reversed(list(tag_count.tag_terms))
diff --git a/hed/tools/analysis/hed_tag_manager.py b/hed/tools/analysis/hed_tag_manager.py
new file mode 100644
index 000000000..e5bdb78af
--- /dev/null
+++ b/hed/tools/analysis/hed_tag_manager.py
@@ -0,0 +1,57 @@
+""" Manager for the HED tags in a tabular file. """
+
+from hed.models import HedString
+from hed.models.string_util import split_base_tags
+
+
+class HedTagManager:
+
+ def __init__(self, event_manager, remove_types=[]):
+ """ Create a tag manager for one tabular file.
+
+ Parameters:
+ event_manager (EventManager): an event manager for the tabular file.
+ remove_types (list or None): List of type tags (such as condition-variable) to remove.
+
+ """
+
+ self.event_manager = event_manager
+ self.remove_types = remove_types
+ self.hed_strings, self.base_strings, self.context_strings = (
+ self.event_manager.unfold_context(remove_types=remove_types))
+ self.type_def_names = self.event_manager.get_type_defs(remove_types)
+
+ # def get_hed_objs1(self, include_context=True):
+ # hed_objs = [None for _ in range(len(self.event_manager.onsets))]
+ # for index in range(len(hed_objs)):
+ # hed_list = [self.hed_strings[index], self.base_strings[index]]
+ # if include_context and self.context_strings[index]:
+ # hed_list.append('(Event-context, (' + self.context_strings[index] + "))")
+ # hed_objs[index] = self.event_manager.str_list_to_hed(hed_list)
+ # return hed_objs
+
+ def get_hed_objs(self, include_context=True, replace_defs=False):
+ hed_objs = [None for _ in range(len(self.event_manager.onsets))]
+ for index in range(len(hed_objs)):
+ hed_list = [self.hed_strings[index], self.base_strings[index]]
+ if include_context and self.context_strings[index]:
+ hed_list.append("(Event-context, (" + self.context_strings[index] + "))")
+ hed_objs[index] = self.event_manager.str_list_to_hed(hed_list)
+ if replace_defs and hed_objs[index]:
+ for def_tag in hed_objs[index].find_def_tags(recursive=True, include_groups=0):
+ hed_objs[index].replace(def_tag, def_tag.expandable.get_first_group())
+ return hed_objs
+
+ def get_hed_obj(self, hed_str, remove_types=False, remove_group=False):
+ if not hed_str:
+ return None
+ hed_obj = HedString(hed_str, self.event_manager.hed_schema, def_dict=self.event_manager.def_dict)
+ if remove_types:
+ hed_obj, temp = split_base_tags(hed_obj, self.remove_types, remove_group=remove_group)
+ return hed_obj
+
+ # def get_hed_string_obj(self, hed_str, filter_types=False):
+ # hed_obj = HedString(hed_str, self.event_manager.hed_schema, def_dict=self.event_manager.def_dict)
+ # # if filter_types:
+ # # hed_obj = hed_obj
+ # return hed_obj
diff --git a/hed/tools/analysis/hed_type.py b/hed/tools/analysis/hed_type.py
new file mode 100644
index 000000000..fdd4abd96
--- /dev/null
+++ b/hed/tools/analysis/hed_type.py
@@ -0,0 +1,199 @@
+""" Manages a type variable and its associated context. """
+import pandas as pd
+from hed.models import HedGroup, HedTag
+from hed.tools.analysis.hed_type_defs import HedTypeDefs
+from hed.tools.analysis.hed_type_factors import HedTypeFactors
+
+
+class HedType:
+
+ def __init__(self, event_manager, name, type_tag="condition-variable"):
+ """ Create a variable manager for one type-variable for one tabular file.
+
+ Parameters:
+ event_manager (EventManager): An event manager for the tabular file.
+ name (str): Name of the tabular file as a unique identifier.
+ type_tag (str): Lowercase short form of the tag to be managed.
+
+ :raises HedFileError:
+ - On errors such as unmatched onsets or missing definitions.
+
+ """
+ self.name = name
+ self.type_tag = type_tag.lower()
+ self.event_manager = event_manager
+ self.type_defs = HedTypeDefs(event_manager.def_dict, type_tag=type_tag)
+ self._type_map = {} # Dictionary of type tags versus dictionary with keys being definition names.
+ self._extract_variables()
+
+ @property
+ def total_events(self):
+ return len(self.event_manager.event_list)
+
+ def get_type_value_factors(self, type_value):
+ """ Return the HedTypeFactors associated with type_name or None.
+
+ Parameters:
+ type_value (str): The tag corresponding to the type's value (such as the name of the condition variable).
+
+ Returns:
+ HedTypeFactors or None
+
+ """
+ return self._type_map.get(type_value.lower(), None)
+
+ def get_type_value_level_info(self, type_value):
+ """ Return type variable corresponding to type_value.
+
+ Parameters:
+ type_value (str) - name of the type variable
+
+ Returns:
+
+
+ """
+ return self._type_map.get(type_value, None)
+
+ @property
+ def type_variables(self):
+ return set(self._type_map.keys())
+
+ def get_type_def_names(self):
+ """ Return the type defs names """
+ tag_list = []
+ for variable, factor in self._type_map.items():
+ tag_list = tag_list + [key for key in factor.levels.keys()]
+ return list(set(tag_list))
+
+ def get_type_value_names(self):
+ return list(self._type_map.keys())
+
+ def get_summary(self):
+ var_summary = self._type_map.copy()
+ summary = {}
+ for var_name, var_sum in var_summary.items():
+ summary[var_name] = var_sum.get_summary()
+ return summary
+
+ def get_type_factors(self, type_values=None, factor_encoding="one-hot"):
+ """ Create a dataframe with the indicated type tag values as factors.
+
+ Parameters:
+ type_values (list or None): A list of values of type tags for which to generate factors.
+ factor_encoding (str): Type of factor encoding (one-hot or categorical).
+
+ Returns:
+ DataFrame: Contains the specified factors associated with this type tag.
+
+
+ """
+ if type_values is None:
+ type_values = self.get_type_value_names()
+ df_list = []
+ for index, type_value in enumerate(type_values):
+ var_sum = self._type_map.get(type_value, None)
+ if not var_sum:
+ continue
+ df_list.append(var_sum.get_factors(factor_encoding=factor_encoding))
+ if not df_list:
+ return None
+ else:
+ return pd.concat(df_list, axis=1)
+
+ def __str__(self):
+ return f"{self.type_tag} type_variables: {str(list(self._type_map.keys()))}"
+
+ def _extract_definition_variables(self, item, index):
+ """ Extract the definition uses from a HedTag, HedGroup, or HedString.
+
+ Parameters:
+ item (HedTag, HedGroup, or HedString): The item to extract variable information from.
+ index (int): Position of this item in the object's hed_strings.
+
+ Notes:
+ This updates the HedTypeFactors information.
+
+ """
+
+ if isinstance(item, HedTag):
+ tags = [item]
+ else:
+ tags = item.get_all_tags()
+ for tag in tags:
+ if tag.short_base_tag.lower() != "def":
+ continue
+ hed_vars = self.type_defs.get_type_values(tag)
+ if not hed_vars:
+ continue
+ self._update_definition_variables(tag, hed_vars, index)
+
+ def _update_definition_variables(self, tag, hed_vars, index):
+ """Update the HedTypeFactors map with information from Def tag.
+
+ Parameters:
+ tag (HedTag): A HedTag that is a Def tag.
+ hed_vars (list): A list of names of the hed type_variables
+ index (ind): The event number associated with this.
+
+ Notes:
+ This modifies the HedTypeFactors map.
+
+ """
+ level = tag.extension.lower()
+ for var_name in hed_vars:
+ hed_var = self._type_map.get(var_name, None)
+ if hed_var is None:
+ hed_var = HedTypeFactors(self.type_tag, var_name, self.total_events)
+ self._type_map[var_name] = hed_var
+ var_levels = hed_var.levels.get(level, {index: 0})
+ var_levels[index] = 0
+ hed_var.levels[level] = var_levels
+
+ def _extract_variables(self):
+ """ Extract all type_variables from hed_strings and event_contexts. """
+
+ hed, base, context = self.event_manager.unfold_context()
+ for index in range(len(hed)):
+ this_hed = self.event_manager.str_list_to_hed([hed[index], base[index], context[index]])
+ if this_hed:
+ tag_list = self.get_type_list(self.type_tag, this_hed)
+ self._update_variables(tag_list, index)
+ self._extract_definition_variables(this_hed, index)
+
+ @staticmethod
+ def get_type_list(type_tag, item):
+ """ Find a list of the given type tag from a HedTag, HedGroup, or HedString.
+
+ Parameters:
+ type_tag (str): a tag whose direct items you wish to remove
+ item (HedTag or HedGroup): The item from which to extract condition type_variables.
+
+ Returns:
+ list: List of the items with this type_tag
+
+ """
+ if isinstance(item, HedTag) and item.short_base_tag.lower() == type_tag:
+ tag_list = [item]
+ elif isinstance(item, HedGroup) and item.children:
+ tag_list = item.find_tags_with_term(type_tag, recursive=True, include_groups=0)
+ else:
+ tag_list = []
+ return tag_list
+
+ def _update_variables(self, tag_list, index):
+ """ Update the HedTypeFactors based on tags in the list.
+
+ Parameters:
+ tag_list (list): A list of Condition-variable HedTags.
+ index (int): An integer representing the position in an array
+
+ """
+ for tag in tag_list:
+ tag_value = tag.extension.lower()
+ if not tag_value:
+ tag_value = self.type_tag
+ hed_var = self._type_map.get(tag_value, None)
+ if hed_var is None:
+ hed_var = HedTypeFactors(self.type_tag, tag_value, self.total_events)
+ self._type_map[tag_value] = hed_var
+ hed_var.direct_indices[index] = ''
diff --git a/hed/tools/analysis/hed_type_counts.py b/hed/tools/analysis/hed_type_counts.py
index e68f2064e..289c64013 100644
--- a/hed/tools/analysis/hed_type_counts.py
+++ b/hed/tools/analysis/hed_type_counts.py
@@ -118,7 +118,7 @@ def add_descriptions(self, type_defs):
""" Update this summary based on the type variable map.
Parameters:
- type_defs (HedTypeDefinitions): Contains the information about the value of a type.
+ type_defs (HedTypeDefs): Contains the information about the value of a type.
"""
@@ -147,4 +147,4 @@ def get_summary(self):
for type_value, count in self.type_dict.items():
details[type_value] = count.get_summary()
return {'name': str(self.name), 'type_tag': self.type_tag, 'files': list(self.files.keys()),
- 'total_events': self.total_events, 'details': details}
\ No newline at end of file
+ 'total_events': self.total_events, 'details': details}
diff --git a/hed/tools/analysis/hed_type_definitions.py b/hed/tools/analysis/hed_type_defs.py
similarity index 59%
rename from hed/tools/analysis/hed_type_definitions.py
rename to hed/tools/analysis/hed_type_defs.py
index fdc87b454..988b4bdae 100644
--- a/hed/tools/analysis/hed_type_definitions.py
+++ b/hed/tools/analysis/hed_type_defs.py
@@ -4,30 +4,36 @@
from hed.models.definition_dict import DefinitionDict
-class HedTypeDefinitions:
+class HedTypeDefs:
+ """
- def __init__(self, definitions, hed_schema, type_tag='condition-variable'):
+ Properties:
+ def_map (dict): keys are definition names, values are dict {type_values, description, tags}
+ Example: A definition 'famous-face-cond' with contents
+ `(Condition-variable/Face-type,Description/A face that should be recognized by the
+ participants,(Image,(Face,Famous)))`
+ would have type_values ['face_type']. All items are strings not objects.
+
+
+ """
+ def __init__(self, definitions, type_tag='condition-variable'):
""" Create a definition manager for a type of variable.
Parameters:
definitions (dict or DefinitionDict): A dictionary of DefinitionEntry objects.
- hed_schema (Hedschema or HedSchemaGroup): The schema used for parsing.
type_tag (str): Lower-case HED tag string representing the type managed.
- # TODO: [Refactor] - should dict be allowed for definitions.
-
"""
self.type_tag = type_tag.lower()
- self.hed_schema = hed_schema
if isinstance(definitions, DefinitionDict):
self.definitions = definitions.defs
elif isinstance(definitions, dict):
self.definitions = definitions
else:
self.definitions = {}
- self.def_map = self._extract_def_map() # maps def names to conditions.
- self.type_map = self._extract_type_map()
+ self.def_map = self._extract_def_map() # dict def names vs {description, tags, type_values}
+ self.type_map = self._extract_type_map() # Dictionary of type_values vs dict definition names
def get_type_values(self, item):
""" Return a list of type_tag values in item.
@@ -39,25 +45,46 @@ def get_type_values(self, item):
list: A list of the unique values associated with this type
"""
- def_names = self.get_def_names(item, no_value=True)
- type_tag_values = []
+ def_names = self.extract_def_names(item, no_value=True)
+ type_values = []
for def_name in def_names:
- values = self.def_map.get(def_name.lower(), None)
- if values and values["type_values"]:
- type_tag_values = type_tag_values + values["type_values"]
- return type_tag_values
+ values = self.def_map.get(def_name.lower(), {})
+ if "type_values" in values:
+ type_values = type_values + values["type_values"]
+ return type_values
+
+ @property
+ def type_def_names(self):
+ """ List of names of definition that have this type-variable.
+
+ Returns:
+ list: definition names that have this type.
+
+ """
+ return list(self.def_map.keys())
+
+ @property
+ def type_names(self):
+ """ List of names of the type-variables associated with type definitions.
+
+ Returns:
+ list: type names associated with the type definitions
+
+ """
+ return list(self.type_map.keys())
def _extract_def_map(self):
- """ Extract all of the type_variables associated with each definition and add them to def_map. """
+ """ Extract type_variables associated with each definition and add them to def_map. """
def_map = {}
for entry in self.definitions.values():
- type_values, description, other_tags = self._extract_entry_values(entry)
- def_map[entry.name.lower()] = \
- {'type_values': type_values, 'description': description, 'tags': other_tags}
+ type_def, type_values, description, other_tags = self._extract_entry_values(entry)
+ if type_def:
+ def_map[type_def.lower()] = \
+ {'def_name': type_def, 'type_values': type_values, 'description': description, 'tags': other_tags}
return def_map
def _extract_type_map(self):
- """ Extract all of the definitions associated with each type value and add them to the dictionary. """
+ """ Extract the definitions associated with each type value and add them to the dictionary. """
type_map = {}
for def_name, def_values in self.def_map.items():
@@ -79,11 +106,10 @@ def _extract_entry_values(self, entry):
list: A list of type_variables associated with this definition.
str: The contents of a description tag if any.
-
-
"""
tag_list = entry.contents.get_all_tags()
- type_tag_values = []
+ type_values = []
+ type_def = ""
description = ''
other_tags = []
for hed_tag in tag_list:
@@ -92,15 +118,12 @@ def _extract_entry_values(self, entry):
elif hed_tag.short_base_tag.lower() != self.type_tag:
other_tags.append(hed_tag.short_base_tag)
else:
- value = hed_tag.extension.lower()
- if value:
- type_tag_values.append(value)
- else:
- type_tag_values.append(entry.name)
- return type_tag_values, description, other_tags
+ type_values.append(hed_tag.extension.lower())
+ type_def = entry.name
+ return type_def, type_values, description, other_tags
@staticmethod
- def get_def_names(item, no_value=True):
+ def extract_def_names(item, no_value=True):
""" Return a list of Def values in item.
Parameters:
@@ -117,7 +140,7 @@ def get_def_names(item, no_value=True):
names = [tag.extension.lower() for tag in item.get_all_tags() if 'def' in tag.tag_terms]
if no_value:
for index, name in enumerate(names):
- name, name_value = HedTypeDefinitions.split_name(name)
+ name, name_value = HedTypeDefs.split_name(name)
names[index] = name
return names
diff --git a/hed/tools/analysis/hed_type_factors.py b/hed/tools/analysis/hed_type_factors.py
index b4cc92af4..5af03c9b3 100644
--- a/hed/tools/analysis/hed_type_factors.py
+++ b/hed/tools/analysis/hed_type_factors.py
@@ -13,9 +13,9 @@ def __init__(self, type_tag, type_value, number_elements):
""" Constructor for HedTypeFactors.
Parameters:
+ type_tag (str): Lowercase string corresponding to a HED tag which has a takes value child.
type_value (str): The value of the type summarized by this class.
number_elements (int): Number of elements in the data column
- type_tag (str): Lowercase string corresponding to a HED tag which has a takes value child.
"""
diff --git a/hed/tools/analysis/hed_type_manager.py b/hed/tools/analysis/hed_type_manager.py
index 3abe427ff..5c42c9539 100644
--- a/hed/tools/analysis/hed_type_manager.py
+++ b/hed/tools/analysis/hed_type_manager.py
@@ -2,38 +2,34 @@
import pandas as pd
import json
-from hed.tools.analysis.hed_type_values import HedTypeValues
-from hed.tools.analysis.hed_context_manager import HedContextManager
+from hed.tools.analysis.hed_type import HedType
class HedTypeManager:
- def __init__(self, hed_strings, hed_schema, definitions):
+ def __init__(self, event_manager):
""" Create a variable manager for one tabular file for all type variables.
Parameters:
- hed_strings (list): A list of HED strings.
- hed_schema (HedSchema or HedSchemaGroup): The HED schema to use for processing.
- definitions (dict): A dictionary of DefinitionEntry objects.
+ event_manager (EventManager): an event manager for the tabular file.
:raises HedFileError:
- On errors such as unmatched onsets or missing definitions.
"""
- self.definitions = definitions
- self.context_manager = HedContextManager(hed_strings, hed_schema)
- self._type_tag_map = {} # a map of type tag into HedTypeValues objects
+ self.event_manager = event_manager
+ self._type_map = {} # a map of type tag into HedType objects
@property
- def type_variables(self):
- return list(self._type_tag_map.keys())
+ def types(self):
+ return list(self._type_map.keys())
- def add_type_variable(self, type_name):
- if type_name.lower() in self._type_tag_map:
+ def add_type(self, type_name):
+ if type_name.lower() in self._type_map:
return
- self._type_tag_map[type_name.lower()] = \
- HedTypeValues(self.context_manager, self.definitions, 'run-01', type_tag=type_name)
+ self._type_map[type_name.lower()] = \
+ HedType(self.event_manager, 'run-01', type_tag=type_name)
def get_factor_vectors(self, type_tag, type_values=None, factor_encoding="one-hot"):
""" Return a DataFrame of factor vectors for the indicated HED tag and values
@@ -47,7 +43,7 @@ def get_factor_vectors(self, type_tag, type_values=None, factor_encoding="one-ho
DataFrame or None: DataFrame containing the factor vectors as the columns.
"""
- this_var = self.get_type_variable(type_tag.lower())
+ this_var = self.get_type(type_tag.lower())
if this_var is None:
return None
variables = this_var.get_type_value_names()
@@ -55,23 +51,23 @@ def get_factor_vectors(self, type_tag, type_values=None, factor_encoding="one-ho
type_values = variables
df_list = [0]*len(type_values)
for index, variable in enumerate(type_values):
- var_sum = this_var._type_value_map[variable]
+ var_sum = this_var._type_map[variable]
df_list[index] = var_sum.get_factors(factor_encoding=factor_encoding)
if not df_list:
return None
return pd.concat(df_list, axis=1)
- def get_type_variable(self, type_tag):
+ def get_type(self, type_tag):
"""
Parameters:
- type_tag (str): Hed tag to retrieve the type for
+ type_tag (str): HED tag to retrieve the type for
Returns:
- HedTypeValues or None: the values associated with this type tag
+ HedType or None: the values associated with this type tag
"""
- return self._type_tag_map.get(type_tag.lower(), None)
+ return self._type_map.get(type_tag.lower(), None)
def get_type_tag_factor(self, type_tag, type_value):
""" Return the HedTypeFactors a specified value and extension.
@@ -81,20 +77,20 @@ def get_type_tag_factor(self, type_tag, type_value):
type_value (str or None): Value of this tag to return the factors for.
"""
- this_map = self._type_tag_map.get(type_tag.lower(), None)
+ this_map = self._type_map.get(type_tag.lower(), None)
if this_map:
- return this_map._type_value_map.get(type_value.lower(), None)
+ return this_map._type_map.get(type_value.lower(), None)
return None
- def get_type_tag_def_names(self, type_var):
- this_map = self._type_tag_map.get(type_var, None)
+ def get_type_def_names(self, type_var):
+ this_map = self._type_map.get(type_var, None)
if not this_map:
return []
return this_map.get_type_def_names()
def summarize_all(self, as_json=False):
summary = {}
- for type_tag, type_tag_var in self._type_tag_map.items():
+ for type_tag, type_tag_var in self._type_map.items():
summary[type_tag] = type_tag_var.get_summary()
if as_json:
return json.dumps(summary, indent=4)
@@ -102,26 +98,4 @@ def summarize_all(self, as_json=False):
return summary
def __str__(self):
- return f"Type_variables: {str(list(self._type_tag_map.keys()))}"
-
-
-# if __name__ == '__main__':
-# import os
-# from hed import Sidecar, TabularInput
-# from hed.tools.analysis.analysis_util import get_assembled_strings
-# schema = load_schema_version(xml_version="8.1.0")
-#
-# bids_root_path = os.path.realpath(os.path.join(os.path.dirname(os.path.realpath(__file__)),
-# '../../../tests/data/bids_tests/eeg_ds003645s_hed'))
-# events_path = os.path.realpath(os.path.join(bids_root_path,
-# 'sub-002/eeg/sub-002_task-FacePerception_run-1_events.tsv'))
-# sidecar_path = os.path.realpath(os.path.join(bids_root_path, 'task-FacePerception_events.json'))
-# sidecar1 = Sidecar(sidecar_path, name='face_sub1_json')
-# input_data = TabularInput(events_path, sidecar=sidecar1, name="face_sub1_events")
-# assembled_strings = get_assembled_strings(input_data, hed_schema=schema, expand_defs=False)
-# definitions = input_data.get_definitions()
-# var_manager = HedTypeManager(assembled_strings, schema, definitions)
-# var_manager.add_type_variable("condition-variable")
-# var_cond = var_manager.get_type_variable("condition-variable")
-# var_summary = var_cond.get_summary()
-# summary_total = var_manager.summarize_all()
+ return f"Type_variables: {str(list(self._type_map.keys()))}"
diff --git a/hed/tools/analysis/hed_type_values.py b/hed/tools/analysis/hed_type_values.py
deleted file mode 100644
index 3190d0bf4..000000000
--- a/hed/tools/analysis/hed_type_values.py
+++ /dev/null
@@ -1,262 +0,0 @@
-""" Manages a type variable and its associated context. """
-
-import pandas as pd
-from hed.models.hed_tag import HedTag
-from hed.models.hed_group import HedGroup
-from hed.tools.analysis.hed_type_definitions import HedTypeDefinitions
-from hed.tools.analysis.hed_context_manager import HedContextManager
-from hed.tools.analysis.hed_type_factors import HedTypeFactors
-
-
-class HedTypeValues:
-
- def __init__(self, context_manager, definitions, name, type_tag="condition-variable"):
- """ Create a variable manager for one type-variable for one tabular file.
-
- Parameters:
- context_manager (HedContextManager): A list of HED strings.
- definitions (dict): A dictionary of DefinitionEntry objects.
- name (str): Name of the tabular file as a unique identifier.
- type_tag (str): Lowercase short form of the tag to be managed.
-
- :raises HedFileError:
- - On errors such as unmatched onsets or missing definitions.
-
- """
- self.name = name
- self.type_tag = type_tag.lower()
- self.definitions = HedTypeDefinitions(definitions, context_manager.hed_schema, type_tag=type_tag)
- hed_strings = context_manager.hed_strings
- hed_contexts = context_manager.contexts
- self.total_events = len(hed_strings)
- self._type_value_map = {}
- self._extract_variables(hed_strings, hed_contexts)
-
- def get_type_value_factors(self, type_value):
- """ Return the HedTypeFactors associated with type_name or None.
-
- Parameters:
- type_value (str): The tag corresponding to the type's value (such as the name of the condition variable).
-
- Returns:
- HedTypeFactors or None
-
- """
- return self._type_value_map.get(type_value.lower(), None)
-
- def get_type_value_level_info(self, type_value):
- """ Return type variable corresponding to type_value.
-
- Parameters:
- type_value (str) - name of the type variable
-
- Returns:
-
-
- """
- return self._type_value_map.get(type_value, None)
-
- @property
- def type_variables(self):
- return set(self._type_value_map.keys())
-
- def get_type_def_names(self):
- """ Return the definitions """
- tag_list = []
- for variable, factor in self._type_value_map.items():
- tag_list = tag_list + [key for key in factor.levels.keys()]
- return list(set(tag_list))
-
- def get_type_value_names(self):
- return list(self._type_value_map.keys())
-
- def get_summary(self):
- var_summary = self._type_value_map.copy()
- summary = {}
- for var_name, var_sum in var_summary.items():
- summary[var_name] = var_sum.get_summary()
- return summary
-
- def get_type_factors(self, type_values=None, factor_encoding="one-hot"):
- """ Create a dataframe with the indicated type tag values as factors.
-
- Parameters:
- type_values (list or None): A list of values of type tags for which to generate factors.
- factor_encoding (str): Type of factor encoding (one-hot or categorical).
-
- Returns:
- DataFrame: Contains the specified factors associated with this type tag.
-
-
- """
- if type_values is None:
- type_values = self.get_type_value_names()
- df_list = []
- for index, type_value in enumerate(type_values):
- var_sum = self._type_value_map.get(type_value, None)
- if not var_sum:
- continue
- df_list.append(var_sum.get_factors(factor_encoding=factor_encoding))
- if not df_list:
- return None
- else:
- return pd.concat(df_list, axis=1)
-
- def __str__(self):
- return f"{self.type_tag} type_variables: {str(list(self._type_value_map.keys()))}"
-
- def _extract_definition_variables(self, item, index):
- """ Extract the definition uses from a HedTag, HedGroup, or HedString.
-
- Parameters:
- item (HedTag, HedGroup, or HedString): The item to extract variable information from.
- index (int): Position of this item in the object's hed_strings.
-
- Notes:
- This updates the HedTypeFactors information.
-
- """
-
- if isinstance(item, HedTag):
- tags = [item]
- else:
- tags = item.get_all_tags()
- for tag in tags:
- if tag.short_base_tag.lower() != "def":
- continue
- hed_vars = self.definitions.get_type_values(tag)
- if not hed_vars:
- continue
- self._update_definition_variables(tag, hed_vars, index)
-
- def _update_definition_variables(self, tag, hed_vars, index):
- """Update the HedTypeFactors map with information from Def tag.
-
- Parameters:
- tag (HedTag): A HedTag that is a Def tag.
- hed_vars (list): A list of names of the hed type_variables
- index (ind): The event number associated with this.
-
- Notes:
- This modifies the HedTypeFactors map.
-
- """
- level = tag.extension.lower()
- for var_name in hed_vars:
- hed_var = self._type_value_map.get(var_name, None)
- if hed_var is None:
- hed_var = HedTypeFactors(self.type_tag, var_name, self.total_events)
- self._type_value_map[var_name] = hed_var
- var_levels = hed_var.levels.get(level, {index: 0})
- var_levels[index] = 0
- hed_var.levels[level] = var_levels
-
- def _extract_variables(self, hed_strings, hed_contexts):
- """ Extract all type_variables from hed_strings and event_contexts. """
- for index, hed in enumerate(hed_strings):
- self._extract_direct_variables(hed, index)
- self._extract_definition_variables(hed, index)
-
- self._extract_direct_variables(hed_contexts[index], index)
- self._extract_definition_variables(hed_contexts[index], index)
-
- def _extract_direct_variables(self, item, index):
- """ Extract the condition type_variables from a HedTag, HedGroup, or HedString.
-
- Parameters:
- item (HedTag or HedGroup): The item from which to extract condition type_variables.
- index (int): Position in the array.
-
- """
- if isinstance(item, HedTag) and item.short_base_tag.lower() == self.type_tag:
- tag_list = [item]
- elif isinstance(item, HedGroup) and item.children:
- tag_list = item.find_tags_with_term(self.type_tag, recursive=True, include_groups=0)
- else:
- tag_list = []
- self._update_variables(tag_list, index)
-
- def _update_variables(self, tag_list, index):
- """ Update the HedTypeFactors based on tags in the list.
-
- Parameters:
- tag_list (list): A list of Condition-variable HedTags.
- index (int): An integer representing the position in an array
-
- """
- for tag in tag_list:
- tag_value = tag.extension.lower()
- if not tag_value:
- tag_value = self.type_tag
- hed_var = self._type_value_map.get(tag_value, None)
- if hed_var is None:
- hed_var = HedTypeFactors(self.type_tag, tag_value, self.total_events)
- self._type_value_map[tag_value] = hed_var
- hed_var.direct_indices[index] = ''
-
-
-# if __name__ == '__main__':
-# import os
-# from hed import Sidecar, TabularInput, HedString
-# from hed.models import DefinitionEntry
-# from hed.tools.analysis.analysis_util import get_assembled_strings
-# hed_schema = load_schema_version(xml_version="8.1.0")
-# test_strings1 = [HedString(f"Sensory-event,(Def/Cond1,(Red, Blue, Condition-variable/Trouble),Onset),"
-# f"(Def/Cond2,Onset),Green,Yellow, Def/Cond5, Def/Cond6/4", hed_schema=hed_schema),
-# HedString('(Def/Cond1, Offset)', hed_schema=hed_schema),
-# HedString('White, Black, Condition-variable/Wonder, Condition-variable/Fast',
-# hed_schema=hed_schema),
-# HedString('', hed_schema=hed_schema),
-# HedString('(Def/Cond2, Onset)', hed_schema=hed_schema),
-# HedString('(Def/Cond3/4.3, Onset)', hed_schema=hed_schema),
-# HedString('Arm, Leg, Condition-variable/Fast, Def/Cond6/7.2', hed_schema=hed_schema)]
-#
-# test_strings2 = [HedString(f"Def/Cond2, Def/Cond6/4, Def/Cond6/7.8, Def/Cond6/Alpha", hed_schema=hed_schema),
-# HedString("Yellow", hed_schema=hed_schema),
-# HedString("Def/Cond2", hed_schema=hed_schema),
-# HedString("Def/Cond2, Def/Cond6/5.2", hed_schema=hed_schema)]
-# test_strings3 = [HedString(f"Def/Cond2, (Def/Cond6/4, Onset), (Def/Cond6/7.8, Onset), Def/Cond6/Alpha",
-# hed_schema=hed_schema),
-# HedString("Yellow", hed_schema=hed_schema),
-# HedString("Def/Cond2, (Def/Cond6/4, Onset)", hed_schema=hed_schema),
-# HedString("Def/Cond2, Def/Cond6/5.2 (Def/Cond6/7.8, Offset)", hed_schema=hed_schema),
-# HedString("Def/Cond2, Def/Cond6/4", hed_schema=hed_schema)]
-# def1 = HedString('(Condition-variable/Var1, Circle, Square)', hed_schema=hed_schema)
-# def2 = HedString('(condition-variable/Var2, Condition-variable/Apple, Triangle, Sphere)', hed_schema=hed_schema)
-# def3 = HedString('(Organizational-property/Condition-variable/Var3, Physical-length/#, Ellipse, Cross)',
-# hed_schema=hed_schema)
-# def4 = HedString('(Condition-variable, Apple, Banana)', hed_schema=hed_schema)
-# def5 = HedString('(Condition-variable/Lumber, Apple, Banana)', hed_schema=hed_schema)
-# def6 = HedString('(Condition-variable/Lumber, Label/#, Apple, Banana)', hed_schema=hed_schema)
-# defs = {'Cond1': DefinitionEntry('Cond1', def1, False, None),
-# 'Cond2': DefinitionEntry('Cond2', def2, False, None),
-# 'Cond3': DefinitionEntry('Cond3', def3, True, None),
-# 'Cond4': DefinitionEntry('Cond4', def4, False, None),
-# 'Cond5': DefinitionEntry('Cond5', def5, False, None),
-# 'Cond6': DefinitionEntry('Cond6', def6, True, None)
-# }
-#
-# conditions1 = HedTypeValues(HedContextManager(test_strings1), hed_schema, defs)
-# conditions2 = HedTypeValues(HedContextManager(test_strings2), hed_schema, defs)
-# conditions3 = HedTypeValues(HedContextManager(test_strings3), hed_schema, defs)
-# bids_root_path = os.path.realpath(os.path.join(os.path.dirname(os.path.realpath(__file__)),
-# '../../../tests/data/bids_tests/eeg_ds003645s_hed'))
-# events_path = os.path.realpath(os.path.join(bids_root_path,
-# 'sub-002/eeg/sub-002_task-FacePerception_run-1_events.tsv'))
-# sidecar_path = os.path.realpath(os.path.join(bids_root_path, 'task-FacePerception_events.json'))
-# sidecar1 = Sidecar(sidecar_path, name='face_sub1_json')
-# input_data = TabularInput(events_path, sidecar=sidecar1, name="face_sub1_events")
-# hed_strings = get_assembled_strings(input_data, hed_schema=hed_schema, expand_defs=False)
-# onset_man = HedContextManager(hed_strings)
-# definitions = input_data.get_definitions().gathered_defs
-# var_type = HedTypeValues(onset_man, hed_schema, definitions)
-# df = var_type.get_type_factors()
-# summary = var_type.get_summary()
-# df.to_csv("D:/wh_conditionslong.csv", sep='\t', index=False)
-# with open('d:/wh_summary.json', 'w') as f:
-# json.dump(summary, f, indent=4)
-#
-# df_no_hot = var_type.get_type_factors(factor_encoding="categorical")
-# df_no_hot.to_csv("D:/wh_conditions_no_hot.csv", sep='\t', index=False)
-# with open('d:/wh_summarylong.json', 'w') as f:
-# json.dump(summary, f, indent=4)
diff --git a/hed/tools/analysis/key_map.py b/hed/tools/analysis/key_map.py
index 72822add0..e2f7f535b 100644
--- a/hed/tools/analysis/key_map.py
+++ b/hed/tools/analysis/key_map.py
@@ -40,8 +40,8 @@ def __init__(self, key_cols, target_cols=None, name=''):
f"Key cols {str(key_cols)} and target cols {str(target_cols)} must be disjoint", "")
self.name = name
self.col_map = pd.DataFrame(columns=self.key_cols + self.target_cols)
- self.map_dict = {}
- self.count_dict = {}
+ self.map_dict = {} # Index of key to position in the col_map DataFrame
+ self.count_dict = {} # Keeps a running count of the number of times a key appears in the data
@property
def columns(self):
@@ -51,15 +51,15 @@ def __str__(self):
temp_list = [f"{self.name} counts for key [{str(self.key_cols)}]:"]
for index, row in self.col_map.iterrows():
key_hash = get_row_hash(row, self.columns)
- temp_list.append(f"{str(list(row.values))}\t{self.count_dict[key_hash]}")
+ temp_list.append(f"{str(list(row.values))}:\t{self.count_dict[key_hash]}")
return "\n".join(temp_list)
- def make_template(self, additional_cols=None):
+ def make_template(self, additional_cols=None, show_counts=True):
""" Return a dataframe template.
Parameters:
additional_cols (list or None): Optional list of additional columns to append to the returned dataframe.
-
+ show_counts (bool): If true, number of times each key combination appears is in first column
Returns:
DataFrame: A dataframe containing the template.
@@ -77,8 +77,17 @@ def make_template(self, additional_cols=None):
df = self.col_map[self.key_cols].copy()
if additional_cols:
df[additional_cols] = 'n/a'
+ if show_counts:
+ df.insert(0, 'key_counts', self._get_counts())
return df
+ def _get_counts(self):
+ counts = [0 for _ in range(len(self.col_map))]
+ for index, row in self.col_map.iterrows():
+ key_hash = get_row_hash(row, self.key_cols)
+ counts[index] = self.count_dict[key_hash]
+ return counts
+
def remap(self, data):
""" Remap the columns of a dataframe or columnar file.
@@ -134,16 +143,12 @@ def resort(self):
key_hash = get_row_hash(row, self.key_cols)
self.map_dict[key_hash] = index
- def update(self, data, allow_missing=True, keep_counts=True):
+ def update(self, data, allow_missing=True):
""" Update the existing map with information from data.
Parameters:
data (DataFrame or str): DataFrame or filename of an events file or event map.
allow_missing (bool): If true allow missing keys and add as n/a columns.
- keep_counts (bool): If true keep a count of the times each key is present.
-
- Returns:
- list: The indices of duplicates.
:raises HedFileError:
- If there are missing keys and allow_missing is False.
@@ -165,35 +170,26 @@ def update(self, data, allow_missing=True, keep_counts=True):
targets_present, targets_missing = separate_values(col_list, self.target_cols)
if targets_present:
base_df[targets_present] = df[targets_present].values
- return self._update(base_df, track_duplicates=keep_counts)
+ self._update(base_df)
- def _update(self, base_df, track_duplicates=True):
+ def _update(self, base_df):
""" Update the dictionary of key values based on information in the dataframe.
Parameters:
base_df (DataFrame): DataFrame of consisting of the columns in the KeyMap
- track_duplicates (bool): If true, keep counts of the indices.
-
- Returns:
- list: List of key positions that appeared more than once or an empty list of no duplicates or
- track_duplicates was false.
"""
- duplicate_indices = []
row_list = []
next_pos = len(self.col_map)
for index, row in base_df.iterrows():
- key, pos_update = self._handle_update(row, row_list, next_pos, track_duplicates)
+ key, pos_update = self._handle_update(row, row_list, next_pos)
next_pos += pos_update
- if not track_duplicates and not pos_update:
- duplicate_indices.append(index)
if row_list:
df = pd.DataFrame(row_list)
self.col_map = pd.concat([self.col_map, df], axis=0, ignore_index=True)
- return duplicate_indices
- def _handle_update(self, row, row_list, next_pos, keep_counts):
+ def _handle_update(self, row, row_list, next_pos):
""" Update the dictionary and counts of the number of times this combination of key columns appears.
Parameters:
@@ -201,6 +197,9 @@ def _handle_update(self, row, row_list, next_pos, keep_counts):
row_list (list): A list of rows to be appended to hold the unique rows
next_pos (int): Index into the
+ Returns:
+ tuple: (key, pos_update) key is the row hash and pos_update is 1 if new row or 0 otherwise.
+
"""
key = get_row_hash(row, self.key_cols)
pos_update = 0
@@ -208,10 +207,8 @@ def _handle_update(self, row, row_list, next_pos, keep_counts):
self.map_dict[key] = next_pos
row_list.append(row)
pos_update = 1
- if keep_counts:
- self.count_dict[key] = 0
- if keep_counts:
- self.count_dict[key] += 1
+ self.count_dict[key] = 0
+ self.count_dict[key] = self.count_dict[key] + 1
return key, pos_update
@staticmethod
diff --git a/hed/tools/analysis/tabular_summary.py b/hed/tools/analysis/tabular_summary.py
index 1262f368b..860487db1 100644
--- a/hed/tools/analysis/tabular_summary.py
+++ b/hed/tools/analysis/tabular_summary.py
@@ -1,4 +1,4 @@
-""" Summarizes the contents of tabular files. """
+""" Summarize the contents of tabular files. """
import json
@@ -134,7 +134,7 @@ def update_summary(self, tab_sum):
Notes:
- The value_cols and skip_cols are updated as long as they are not contradictory.
- - A new skip column cannot used.
+ - A new skip column cannot be used.
"""
self.total_files = self.total_files + tab_sum.total_files
@@ -222,7 +222,7 @@ def extract_summary(summary_info):
Parameters:
summary_info (dict or str): A JSON string or a dictionary containing contents of a TabularSummary.
-
+
Returns:
TabularSummary: contains the information in summary_info as a TabularSummary object.
"""
diff --git a/hed/tools/analysis/temporal_event.py b/hed/tools/analysis/temporal_event.py
index a60243a8e..7a689609d 100644
--- a/hed/tools/analysis/temporal_event.py
+++ b/hed/tools/analysis/temporal_event.py
@@ -1,30 +1,45 @@
-from hed.models import HedTag, HedGroup, HedString
+from hed.models import HedGroup
class TemporalEvent:
- def __init__(self, event_group, start_index, start_time):
- self.event_group = event_group
+ """ Represents an event process with starting and ending.
+
+ Note: the contents have the Onset and duration removed.
+ """
+ def __init__(self, contents, start_index, start_time):
+ if not contents:
+ raise(ValueError, "A temporal event must have contents")
+ self.contents = None # Must not have definition expanded if there is a definition.
self.start_index = start_index
- self.start_time = start_time
- self.duration = None
+ self.start_time = float(start_time)
self.end_index = None
self.end_time = None
- self.anchor = None
+ self.anchor = None # Lowercase def name with value
self.internal_group = None
- self._split_group()
-
+ self.insets = []
+ self._split_group(contents)
+
def set_end(self, end_index, end_time):
self.end_index = end_index
self.end_time = end_time
- def _split_group(self):
- for item in self.event_group.children:
- if isinstance(item, HedTag) and (item.short_tag.lower() != "onset"):
- self.anchor = item.extension.lower()
- elif isinstance(item, HedTag):
- continue
- elif isinstance(item, HedGroup):
+ def _split_group(self, contents):
+ to_remove = []
+ for item in contents.children:
+ if isinstance(item, HedGroup):
self.internal_group = item
+ elif item.short_base_tag.lower() == "onset":
+ to_remove.append(item)
+ elif item.short_base_tag.lower() == "duration":
+ to_remove.append(item)
+ self.end_time = self.short_time + float(item.extension.lower()) # Will need to be fixed for units
+ elif item.short_base_tag.lower() == "def":
+ self.anchor = item.short_tag
+ contents.remove(to_remove)
+ if self.internal_group:
+ self.contents = contents
+ else:
+ self.contents = self.anchor
def __str__(self):
- return f"{self.name}:[event markers {self.start_index}:{self.end_index} contents:{self.contents}]"
+ return f"[{self.start_index}:{self.end_index}] anchor:{self.anchor} contents:{self.contents}"
diff --git a/hed/tools/bids/bids_dataset.py b/hed/tools/bids/bids_dataset.py
index fc4aa89f4..d6cd4592c 100644
--- a/hed/tools/bids/bids_dataset.py
+++ b/hed/tools/bids/bids_dataset.py
@@ -2,12 +2,10 @@
import os
import json
-from hed.errors.error_reporter import ErrorHandler
from hed.schema.hed_schema import HedSchema
from hed.schema.hed_schema_io import load_schema_version
from hed.schema.hed_schema_group import HedSchemaGroup
from hed.tools.bids.bids_file_group import BidsFileGroup
-from hed.validator.hed_validator import HedValidator
LIBRARY_URL_BASE = "https://raw.githubusercontent.com/hed-standard/hed-schemas/main/library_schemas/"
@@ -32,7 +30,7 @@ def __init__(self, root_path, schema=None, tabular_types=None,
schema (HedSchema or HedSchemaGroup): A schema that overrides the one specified in dataset.
tabular_types (list or None): List of strings specifying types of tabular types to include.
If None or empty, then ['events'] is assumed.
- exclude_dirs=['sourcedata', 'derivatives', 'code']):
+ exclude_dirs=['sourcedata', 'derivatives', 'code']:
"""
self.root_path = os.path.realpath(root_path)
diff --git a/hed/tools/bids/bids_file_group.py b/hed/tools/bids/bids_file_group.py
index 44f3f1a21..f14733776 100644
--- a/hed/tools/bids/bids_file_group.py
+++ b/hed/tools/bids/bids_file_group.py
@@ -1,9 +1,8 @@
""" A group of BIDS files with specified suffix name. """
import os
-from hed.errors.error_reporter import ErrorContext, ErrorHandler
+from hed.errors.error_reporter import ErrorHandler
from hed.validator.sidecar_validator import SidecarValidator
-from hed.validator.spreadsheet_validator import SpreadsheetValidator
from hed.tools.analysis.tabular_summary import TabularSummary
from hed.tools.bids.bids_tabular_file import BidsTabularFile
from hed.tools.bids.bids_sidecar_file import BidsSidecarFile
@@ -129,10 +128,10 @@ def validate_sidecars(self, hed_schema, extra_def_dicts=None, check_for_warnings
error_handler = ErrorHandler(check_for_warnings)
issues = []
validator = SidecarValidator(hed_schema)
-
+
for sidecar in self.sidecar_dict.values():
name = os.path.basename(sidecar.file_path)
- issues += validator.validate(sidecar.contents, extra_def_dicts=extra_def_dicts, name=name,
+ issues += validator.validate(sidecar.contents, extra_def_dicts=extra_def_dicts, name=name,
error_handler=error_handler)
return issues
@@ -155,7 +154,7 @@ def validate_datafiles(self, hed_schema, extra_def_dicts=None, check_for_warning
for data_obj in self.datafile_dict.values():
data_obj.set_contents(overwrite=False)
name = os.path.basename(data_obj.file_path)
- issues += data_obj.contents.validate(hed_schema, extra_def_dicts=None, name=name,
+ issues += data_obj.contents.validate(hed_schema, extra_def_dicts=extra_def_dicts, name=name,
error_handler=error_handler)
if not keep_contents:
data_obj.clear_contents()
@@ -185,7 +184,7 @@ def _make_sidecar_dict(self):
dict: a dictionary of BidsSidecarFile objects keyed by real path for the specified suffix type
Notes:
- - This function creates the sidecars and but does not set their contents.
+ - This function creates the sidecars, but does not set their contents.
"""
files = get_file_list(self.root_path, name_suffix=self.suffix,
diff --git a/hed/tools/bids/bids_tabular_file.py b/hed/tools/bids/bids_tabular_file.py
index 13a46e353..f419075d7 100644
--- a/hed/tools/bids/bids_tabular_file.py
+++ b/hed/tools/bids/bids_tabular_file.py
@@ -1,4 +1,4 @@
-""" A BIDS tabular file including its associatedd sidecar. """
+""" A BIDS tabular file including its associated sidecar. """
import os
from hed.models.tabular_input import TabularInput
diff --git a/hed/tools/remodeling/backup_manager.py b/hed/tools/remodeling/backup_manager.py
index e06922a32..ac18f2f0b 100644
--- a/hed/tools/remodeling/backup_manager.py
+++ b/hed/tools/remodeling/backup_manager.py
@@ -164,7 +164,7 @@ def _get_backups(self):
:raises HedFileError:
- If a backup is inconsistent for any reason.
-
+
"""
backups = {}
for backup in os.listdir(self.backups_path):
diff --git a/hed/tools/remodeling/cli/run_remodel.py b/hed/tools/remodeling/cli/run_remodel.py
index 9f8a6bde3..eb29576f9 100644
--- a/hed/tools/remodeling/cli/run_remodel.py
+++ b/hed/tools/remodeling/cli/run_remodel.py
@@ -4,7 +4,7 @@
import json
import argparse
from hed.errors.exceptions import HedFileError
-from hed.tools.util.io_util import get_file_list
+from hed.tools.util.io_util import get_file_list, get_task_from_file
from hed.tools.bids.bids_dataset import BidsDataset
from hed.tools.remodeling.dispatcher import Dispatcher
from hed.tools.remodeling.backup_manager import BackupManager
@@ -19,7 +19,7 @@ def get_parser():
"""
parser = argparse.ArgumentParser(description="Converts event files based on a json file specifying operations.")
parser.add_argument("data_dir", help="Full path of dataset root directory.")
- parser.add_argument("remodel_path", help="Full path of the file with remodeling instructions.")
+ parser.add_argument("model_path", help="Full path of the file with remodeling instructions.")
parser.add_argument("-b", "--bids-format", action='store_true', dest="use_bids",
help="If present, the dataset is in BIDS format with sidecars. HED analysis is available.")
parser.add_argument("-e", "--extensions", nargs="*", default=['.tsv'], dest="extensions",
@@ -44,7 +44,9 @@ def get_parser():
parser.add_argument("-s", "--save-formats", nargs="*", default=['.json', '.txt'], dest="save_formats",
help="Format for saving any summaries, if any. If no summaries are to be written," +
"use the -ns option.")
- parser.add_argument("-t", "--task-names", dest="task_names", nargs="*", default=[], help="The names of the task.")
+ parser.add_argument("-t", "--task-names", dest="task_names", nargs="*", default=[],
+ help="The names of the task. If an empty list is given, all tasks are lumped together." +
+ " If * is given, then tasks are found and reported individually.")
parser.add_argument("-v", "--verbose", action='store_true',
help="If present, output informative messages as computation progresses.")
parser.add_argument("-w", "--work-dir", default="", dest="work_dir",
@@ -54,6 +56,28 @@ def get_parser():
return parser
+def handle_backup(args):
+ """ Restores the backup if applicable.
+
+ Parameters:
+ args (obj): parsed arguments as an object.
+
+ Returns:
+ str or None: backup name if there was a backup done.
+
+ """
+ if args.no_backup:
+ backup_name = None
+ else:
+ backup_man = BackupManager(args.data_dir)
+ if not backup_man.get_backup(args.backup_name):
+ raise HedFileError("BackupDoesNotExist", f"Backup {args.backup_name} does not exist. "
+ f"Please run_remodel_backup first", "")
+ backup_man.restore_backup(args.backup_name, args.task_names, verbose=args.verbose)
+ backup_name = args.backup_name
+ return backup_name
+
+
def parse_arguments(arg_list=None):
""" Parse the command line arguments or arg_list if given.
@@ -76,10 +100,10 @@ def parse_arguments(arg_list=None):
args.extensions = None
args.data_dir = os.path.realpath(args.data_dir)
args.exclude_dirs = args.exclude_dirs + ['remodel']
- args.model_path = os.path.realpath(args.remodel_path)
+ args.model_path = os.path.realpath(args.model_path)
if args.verbose:
- print(f"Data directory: {args.data_dir}\nRemodel path: {args.remodel_path}")
- with open(args.remodel_path, 'r') as fp:
+ print(f"Data directory: {args.data_dir}\nModel path: {args.model_path}")
+ with open(args.model_path, 'r') as fp:
operations = json.load(fp)
parsed_operations, errors = Dispatcher.parse_operations(operations)
if errors:
@@ -88,12 +112,30 @@ def parse_arguments(arg_list=None):
return args, operations
-def run_bids_ops(dispatch, args):
+def parse_tasks(files, task_args):
+ if not task_args:
+ return {"": files}
+ task_dict = {}
+ for my_file in files:
+ task = get_task_from_file(my_file)
+ if not task:
+ continue
+ task_entry = task_dict.get(task, [])
+ task_entry.append(my_file)
+ task_dict[task] = task_entry
+ if task_args == "*" or isinstance(task_args, list) and task_args[0] == "*":
+ return task_dict
+ task_dict = {key: task_dict[key] for key in task_args if key in task_dict}
+ return task_dict
+
+
+def run_bids_ops(dispatch, args, tabular_files):
""" Run the remodeler on a BIDS dataset.
Parameters:
dispatch (Dispatcher): Manages the execution of the operations.
args (Object): The command-line arguments as an object.
+ tabular_files (list): List of tabular files to run the ops on.
"""
bids = BidsDataset(dispatch.data_root, tabular_types=['events'], exclude_dirs=args.exclude_dirs)
@@ -103,9 +145,8 @@ def run_bids_ops(dispatch, args):
events = bids.get_tabular_group(args.file_suffix)
if args.verbose:
print(f"Processing {dispatch.data_root}")
- for events_obj in events.datafile_dict.values():
- if args.task_names and events_obj.get_entity('task') not in args.task_names:
- continue
+ filtered_events = [events.datafile_dict[key] for key in tabular_files]
+ for events_obj in filtered_events:
sidecar_list = events.get_sidecars_from_path(events_obj)
if sidecar_list:
sidecar = events.sidecar_dict[sidecar_list[-1]].contents
@@ -118,17 +159,16 @@ def run_bids_ops(dispatch, args):
df.to_csv(events_obj.file_path, sep='\t', index=False, header=True)
-def run_direct_ops(dispatch, args):
+def run_direct_ops(dispatch, args, tabular_files):
""" Run the remodeler on files of a specified form in a directory tree.
Parameters:
dispatch (Dispatcher): Controls the application of the operations and backup.
args (argparse.Namespace): Dictionary of arguments and their values.
+ tabular_files (list): List of files to include in this run.
"""
- tabular_files = get_file_list(dispatch.data_root, name_suffix=args.file_suffix, extensions=args.extensions,
- exclude_dirs=args.exclude_dirs)
if args.verbose:
print(f"Found {len(tabular_files)} files with suffix {args.file_suffix} and extensions {str(args.extensions)}")
if hasattr(args, 'json_sidecar'):
@@ -136,8 +176,6 @@ def run_direct_ops(dispatch, args):
else:
sidecar = None
for file_path in tabular_files:
- if args.task_names and not BackupManager.get_task(args.task_names, file_path):
- continue
df = dispatch.run_operations(file_path, verbose=args.verbose, sidecar=sidecar)
if not args.no_update:
df.to_csv(file_path, sep='\t', index=False, header=True)
@@ -158,25 +196,22 @@ def main(arg_list=None):
args, operations = parse_arguments(arg_list)
if not os.path.isdir(args.data_dir):
raise HedFileError("DataDirectoryDoesNotExist", f"The root data directory {args.data_dir} does not exist", "")
- if args.no_backup:
- backup_name = None
- else:
- backup_man = BackupManager(args.data_dir)
- if not backup_man.get_backup(args.backup_name):
- raise HedFileError("BackupDoesNotExist", f"Backup {args.backup_name} does not exist. "
- f"Please run_remodel_backup first", "")
- backup_man.restore_backup(args.backup_name, args.task_names, verbose=args.verbose)
- backup_name = args.backup_name
+ backup_name = handle_backup(args)
dispatch = Dispatcher(operations, data_root=args.data_dir, backup_name=backup_name, hed_versions=args.hed_versions)
- if args.use_bids:
- run_bids_ops(dispatch, args)
- else:
- run_direct_ops(dispatch, args)
save_dir = None
if args.work_dir:
save_dir = os.path.realpath(os.path.join(args.work_dir, Dispatcher.REMODELING_SUMMARY_PATH))
- if not args.no_summaries:
- dispatch.save_summaries(args.save_formats, individual_summaries=args.individual_summaries, summary_dir=save_dir)
+ files = get_file_list(dispatch.data_root, name_suffix=args.file_suffix, extensions=args.extensions,
+ exclude_dirs=args.exclude_dirs)
+ task_dict = parse_tasks(files, args.task_names)
+ for task, files in task_dict.items():
+ if args.use_bids:
+ run_bids_ops(dispatch, args, files)
+ else:
+ run_direct_ops(dispatch, args, files)
+ if not args.no_summaries:
+ dispatch.save_summaries(args.save_formats, individual_summaries=args.individual_summaries,
+ summary_dir=save_dir, task_name=task)
if __name__ == '__main__':
diff --git a/hed/tools/remodeling/cli/run_remodel_backup.py b/hed/tools/remodeling/cli/run_remodel_backup.py
index 5bed59e4c..6d78465dd 100644
--- a/hed/tools/remodeling/cli/run_remodel_backup.py
+++ b/hed/tools/remodeling/cli/run_remodel_backup.py
@@ -7,7 +7,7 @@
def get_parser():
- """ Create a parser for the run_remodel_backup command-line arguments.
+ """ Create a parser for the run_remodel_backup command-line arguments.
Returns:
argparse.ArgumentParser: A parser for parsing the command line arguments.
@@ -45,7 +45,7 @@ def main(arg_list=None):
Otherwise, called with the command-line parameters as an argument list.
:raises HedFileError:
- - If the specified backup already exists.
+ - If the specified backup already exists.
"""
diff --git a/hed/tools/remodeling/cli/run_remodel_restore.py b/hed/tools/remodeling/cli/run_remodel_restore.py
index 7f21188d7..960bd0916 100644
--- a/hed/tools/remodeling/cli/run_remodel_restore.py
+++ b/hed/tools/remodeling/cli/run_remodel_restore.py
@@ -6,7 +6,7 @@
def get_parser():
- """ Create a parser for the run_remodel_restore command-line arguments.
+ """ Create a parser for the run_remodel_restore command-line arguments.
Returns:
argparse.ArgumentParser: A parser for parsing the command line arguments.
diff --git a/hed/tools/remodeling/dispatcher.py b/hed/tools/remodeling/dispatcher.py
index 24dcddd08..2bfb90b3f 100644
--- a/hed/tools/remodeling/dispatcher.py
+++ b/hed/tools/remodeling/dispatcher.py
@@ -5,7 +5,8 @@
import pandas as pd
import json
from hed.errors.exceptions import HedFileError
-from hed.schema.hed_schema_io import get_schema
+from hed.schema.hed_schema_io import load_schema_version
+from hed.schema import HedSchema, HedSchemaGroup
from hed.tools.remodeling.backup_manager import BackupManager
from hed.tools.remodeling.operations.valid_operations import valid_operations
from hed.tools.util.io_util import clean_filename, extract_suffix_path, get_timestamp
@@ -46,7 +47,7 @@ def __init__(self, operation_list, data_root=None,
these_errors = self.errors_to_str(errors, 'Dispatcher failed due to invalid operations')
raise ValueError("InvalidOperationList", f"{these_errors}")
self.parsed_ops = op_list
- self.hed_schema = get_schema(hed_versions)
+ self.hed_schema = self.get_schema(hed_versions)
self.summary_dicts = {}
def get_summaries(self, file_formats=['.txt', '.json']):
@@ -98,7 +99,7 @@ def get_data_file(self, file_designator):
In this case, the corresponding backup file is read and returned.
- If a string is passed and there is no backup manager,
the data file corresponding to the file_designator is read and returned.
- - If a Pandas DataFrame is passed, a copy is returned.
+ - If a Pandas DataFrame, return a copy.
"""
if isinstance(file_designator, pd.DataFrame):
@@ -153,25 +154,32 @@ def run_operations(self, file_path, sidecar=None, verbose=False):
df = self.post_proc_data(df)
return df
- def save_summaries(self, save_formats=['.json', '.txt'], individual_summaries="separate", summary_dir=None):
+ def save_summaries(self, save_formats=['.json', '.txt'], individual_summaries="separate",
+ summary_dir=None, task_name=""):
""" Save the summary files in the specified formats.
Parameters:
save_formats (list): A list of formats [".txt", ."json"]
- individual_summaries (str): If True, include summaries of individual files.
+ individual_summaries (str): "consolidated", "individual", or "none".
summary_dir (str or None): Directory for saving summaries.
+ task_name (str): Name of task if summaries separated by task or "" if not separated.
Notes:
The summaries are saved in the dataset derivatives/remodeling folder if no save_dir is provided.
+ Notes:
+ - "consolidated" means that the overall summary and summaries of individual files are in one summary file.
+ - "individual" means that the summaries of individual files are in separate files.
+ - "none" means that only the overall summary is produced.
+
"""
if not save_formats:
return
if not summary_dir:
summary_dir = self.get_summary_save_dir()
os.makedirs(summary_dir, exist_ok=True)
- for context_name, context_item in self.summary_dicts.items():
- context_item.save(summary_dir, save_formats, individual_summaries=individual_summaries)
+ for summary_name, summary_item in self.summary_dicts.items():
+ summary_item.save(summary_dir, save_formats, individual_summaries=individual_summaries, task_name=task_name)
@staticmethod
def parse_operations(operation_list):
@@ -240,3 +248,14 @@ def errors_to_str(messages, title="", sep='\n'):
if title:
return title + sep + errors
return errors
+
+ @staticmethod
+ def get_schema(hed_versions):
+ if not hed_versions:
+ return None
+ elif isinstance(hed_versions, str) or isinstance(hed_versions, list):
+ return load_schema_version(hed_versions)
+ elif isinstance(hed_versions, HedSchema) or isinstance(hed_versions, HedSchemaGroup):
+ return hed_versions
+ else:
+ raise ValueError("InvalidHedSchemaOrSchemaVersion", "Expected schema or schema version")
diff --git a/hed/tools/remodeling/operations/base_op.py b/hed/tools/remodeling/operations/base_op.py
index 15423d64d..bc3e906c6 100644
--- a/hed/tools/remodeling/operations/base_op.py
+++ b/hed/tools/remodeling/operations/base_op.py
@@ -4,7 +4,7 @@
class BaseOp:
""" Base class for operations. All remodeling operations should extend this class.
- The base class holds the parameters and does basic parameter checking against the operations specification.
+ The base class holds the parameters and does basic parameter checking against the operation's specification.
"""
diff --git a/hed/tools/remodeling/operations/base_summary.py b/hed/tools/remodeling/operations/base_summary.py
index 2b732ae2d..725e854a6 100644
--- a/hed/tools/remodeling/operations/base_summary.py
+++ b/hed/tools/remodeling/operations/base_summary.py
@@ -117,7 +117,7 @@ def get_text_summary(self, individual_summaries="separate"):
return summary
- def save(self, save_dir, file_formats=['.txt'], individual_summaries="separate"):
+ def save(self, save_dir, file_formats=['.txt'], individual_summaries="separate", task_name=""):
for file_format in file_formats:
if file_format == '.txt':
@@ -126,24 +126,29 @@ def save(self, save_dir, file_formats=['.txt'], individual_summaries="separate")
summary = self.get_summary(individual_summaries=individual_summaries)
else:
continue
- self._save_summary_files(save_dir, file_format, summary, individual_summaries)
+ self._save_summary_files(save_dir, file_format, summary, individual_summaries, task_name=task_name)
- def _save_summary_files(self, save_dir, file_format, summary, individual_summaries):
+ def _save_summary_files(self, save_dir, file_format, summary, individual_summaries, task_name=''):
""" Save the files in the appropriate format.
Parameters:
save_dir (str): Path to the directory in which the summaries will be saved.
file_format (str): string representing the extension (including .), '.txt' or '.json'.
- summary (dictionary): Dictionary of summaries (has "Dataset" and "Individual files" keys.
+ summary (dictionary): Dictionary of summaries (has "Dataset" and "Individual files" keys).
+ individual_summaries (str): "consolidated", "individual", or "none".
+ task_name (str): Name of task to be included in file name if multiple tasks.
"""
if self.op.append_timecode:
time_stamp = '_' + get_timestamp()
else:
time_stamp = ''
+ if task_name:
+ task_name = "_" + task_name
this_save = os.path.join(save_dir, self.op.summary_name + '/')
os.makedirs(os.path.realpath(this_save), exist_ok=True)
- filename = os.path.realpath(os.path.join(this_save, self.op.summary_filename + time_stamp + file_format))
+ filename = os.path.realpath(os.path.join(this_save,
+ self.op.summary_filename + task_name + time_stamp + file_format))
individual = summary.get("Individual files", {})
if individual_summaries == "none" or not individual:
self.dump_summary(filename, summary["Dataset"])
@@ -155,15 +160,16 @@ def _save_summary_files(self, save_dir, file_format, summary, individual_summari
individual_dir = os.path.join(this_save, self.INDIVIDUAL_SUMMARIES_PATH + '/')
os.makedirs(os.path.realpath(individual_dir), exist_ok=True)
for name, sum_str in individual.items():
- filename = self._get_summary_filepath(individual_dir, name, time_stamp, file_format)
+ filename = self._get_summary_filepath(individual_dir, name, task_name, time_stamp, file_format)
self.dump_summary(filename, sum_str)
- def _get_summary_filepath(self, individual_dir, name, time_stamp, file_format):
+ def _get_summary_filepath(self, individual_dir, name, task_name, time_stamp, file_format):
""" Return the filepath for the summary including the timestamp
Parameters:
individual_dir (str): path of the directory in which the summary should be stored.
name (str): Path of the original file from which the summary was extracted.
+ task_name (str): Task name if separate summaries for different tasks or the empty string if not separated.
time_stamp (str): Formatted date-time string to be included in the filename of the summary.
Returns:
@@ -176,7 +182,7 @@ def _get_summary_filepath(self, individual_dir, name, time_stamp, file_format):
match = True
filename = None
while match:
- filename = f"{self.op.summary_filename}_{this_name}_{count}{time_stamp}{file_format}"
+ filename = f"{self.op.summary_filename}_{this_name}{task_name}_{count}{time_stamp}{file_format}"
filename = os.path.realpath(os.path.join(individual_dir, filename))
if not os.path.isfile(filename):
break
diff --git a/hed/tools/remodeling/operations/factor_hed_tags_op.py b/hed/tools/remodeling/operations/factor_hed_tags_op.py
index 675be0b2a..c5b2ca08f 100644
--- a/hed/tools/remodeling/operations/factor_hed_tags_op.py
+++ b/hed/tools/remodeling/operations/factor_hed_tags_op.py
@@ -8,6 +8,7 @@
from hed.models.sidecar import Sidecar
from hed.models.df_util import get_assembled
from hed.tools.analysis.analysis_util import get_expression_parsers, search_strings
+from hed.tools.analysis.event_manager import EventManager
class FactorHedTagsOp(BaseOp):
@@ -89,6 +90,7 @@ def do_op(self, dispatcher, df, name, sidecar=None):
raise ValueError("QueryNameAlreadyColumn",
f"Query [{query_name}]: is already a column name of the data frame")
df_list = [input_data.dataframe]
+ event_man = EventManager(input_data, dispatcher.hed_schema)
hed_strings, _ = get_assembled(input_data, sidecar, dispatcher.hed_schema, extra_def_dicts=None,
join_columns=True, shrink_defs=False, expand_defs=True)
df_factors = search_strings(hed_strings, self.expression_parsers, query_names=self.query_names)
diff --git a/hed/tools/remodeling/operations/factor_hed_type_op.py b/hed/tools/remodeling/operations/factor_hed_type_op.py
index 21057b798..df13e3631 100644
--- a/hed/tools/remodeling/operations/factor_hed_type_op.py
+++ b/hed/tools/remodeling/operations/factor_hed_type_op.py
@@ -4,8 +4,7 @@
import numpy as np
from hed.tools.remodeling.operations.base_op import BaseOp
from hed.models.tabular_input import TabularInput
-from hed.models.sidecar import Sidecar
-from hed.models.df_util import get_assembled
+from hed.tools.analysis.event_manager import EventManager
from hed.tools.analysis.hed_type_manager import HedTypeManager
# TODO: restricted factor values are not implemented yet.
@@ -67,16 +66,10 @@ def do_op(self, dispatcher, df, name, sidecar=None):
"""
- if sidecar and not isinstance(sidecar, Sidecar):
- sidecar = Sidecar(sidecar)
input_data = TabularInput(df, sidecar=sidecar, name=name)
df_list = [input_data.dataframe.copy()]
- hed_strings, definitions = get_assembled(input_data, sidecar, dispatcher.hed_schema,
- extra_def_dicts=None, join_columns=True,
- shrink_defs=True, expand_defs=False)
-
- var_manager = HedTypeManager(hed_strings, dispatcher.hed_schema, definitions)
- var_manager.add_type_variable(self.type_tag.lower())
+ var_manager = HedTypeManager(EventManager(input_data, dispatcher.hed_schema))
+ var_manager.add_type(self.type_tag.lower())
df_factors = var_manager.get_factor_vectors(self.type_tag, self.type_values, factor_encoding="one-hot")
if len(df_factors.columns) > 0:
diff --git a/hed/tools/remodeling/operations/remove_columns_op.py b/hed/tools/remodeling/operations/remove_columns_op.py
index b0833cd1d..267a7039a 100644
--- a/hed/tools/remodeling/operations/remove_columns_op.py
+++ b/hed/tools/remodeling/operations/remove_columns_op.py
@@ -65,4 +65,3 @@ def do_op(self, dispatcher, df, name, sidecar=None):
raise KeyError("MissingColumnCannotBeRemoved",
f"{name}: Ignore missing is False but a column in {str(self.column_names)} is "
f"not in the data columns [{str(df_new.columns)}]")
- return df_new
diff --git a/hed/tools/remodeling/operations/reorder_columns_op.py b/hed/tools/remodeling/operations/reorder_columns_op.py
index 9607bb295..91fcfcc30 100644
--- a/hed/tools/remodeling/operations/reorder_columns_op.py
+++ b/hed/tools/remodeling/operations/reorder_columns_op.py
@@ -6,9 +6,9 @@ class ReorderColumnsOp(BaseOp):
""" Reorder columns in a tabular file.
Required parameters:
- column_order (*list*): The names of the columns to be reordered.
- ignore_missing (*bool*): If false and a column in column_order is not in df, skip the column
- keep_others (*bool*): If true, columns not in column_order are placed at end.
+ - column_order (*list*): The names of the columns to be reordered.
+ - ignore_missing (*bool*): If false and a column in column_order is not in df, skip the column
+ - keep_others (*bool*): If true, columns not in column_order are placed at end.
"""
diff --git a/hed/tools/remodeling/operations/split_rows_op.py b/hed/tools/remodeling/operations/split_rows_op.py
index 858ce7e28..ea0b5dc13 100644
--- a/hed/tools/remodeling/operations/split_rows_op.py
+++ b/hed/tools/remodeling/operations/split_rows_op.py
@@ -110,7 +110,7 @@ def _add_durations(df, add_events, duration_sources):
@staticmethod
def _create_onsets(df, onset_source):
- """ Create a vector of onsets for the the new events.
+ """ Create a vector of onsets for the new events.
Parameters:
df (DataFrame): The dataframe to process.
diff --git a/hed/tools/remodeling/operations/summarize_column_names_op.py b/hed/tools/remodeling/operations/summarize_column_names_op.py
index fd70e3f8d..5770a6185 100644
--- a/hed/tools/remodeling/operations/summarize_column_names_op.py
+++ b/hed/tools/remodeling/operations/summarize_column_names_op.py
@@ -12,7 +12,7 @@ class SummarizeColumnNamesOp(BaseOp):
- **summary_name** (*str*) The name of the summary.
- **summary_filename** (*str*) Base filename of the summary.
- The purpose is to check that all of the tabular files have the same columns in same order.
+ The purpose is to check that all the tabular files have the same columns in same order.
"""
@@ -148,7 +148,7 @@ def _get_result_string(self, name, result, indent=BaseSummary.DISPLAY_INDENT):
@staticmethod
def _get_dataset_string(result, indent=BaseSummary.DISPLAY_INDENT):
- """ Return a string with the overall summary for all of the tabular files.
+ """ Return a string with the overall summary for all the tabular files.
Parameters:
result (dict): Dictionary of merged summary information.
diff --git a/hed/tools/remodeling/operations/summarize_column_values_op.py b/hed/tools/remodeling/operations/summarize_column_values_op.py
index 825594aea..577d63027 100644
--- a/hed/tools/remodeling/operations/summarize_column_values_op.py
+++ b/hed/tools/remodeling/operations/summarize_column_values_op.py
@@ -80,7 +80,7 @@ def do_op(self, dispatcher, df, name, sidecar=None):
Updates the relevant summary.
"""
-
+
df_new = df.copy()
summary = dispatcher.summary_dicts.get(self.summary_name, None)
if not summary:
@@ -130,11 +130,11 @@ def get_details_dict(self, summary):
this_summary['Categorical columns'][key] = dict(sorted_tuples[:min(num_disp, self.op.max_categorical)])
return {"Name": this_summary['Name'], "Total events": this_summary["Total events"],
"Total files": this_summary['Total files'],
- "Files": [name for name in this_summary['Files'].keys()],
- "Specifics": {"Value columns": this_summary['Value columns'].keys(),
+ "Files": list(this_summary['Files'].keys()),
+ "Specifics": {"Value columns": list(this_summary['Value columns']),
"Skip columns": this_summary['Skip columns'],
- "Value columns": this_summary['Value columns'],
- "Categorical columns": this_summary['Categorical columns'],
+ "Value column summaries": this_summary['Value columns'],
+ "Categorical column summaries": this_summary['Categorical columns'],
"Categorical counts": this_summary['Categorical counts']}}
def merge_all_info(self):
@@ -167,8 +167,12 @@ def _get_result_string(self, name, result, indent=BaseSummary.DISPLAY_INDENT):
"""
if name == "Dataset":
- return self._get_dataset_string(result, indent=indent)
- return self._get_individual_string(result, indent=indent)
+ sum_list = [f"Dataset: Total events={result.get('Total events', 0)} "
+ f"Total files={result.get('Total files', 0)}"]
+ else:
+ sum_list = [f"Total events={result.get('Total events', 0)}"]
+ sum_list = sum_list + self._get_detail_list(result, indent=indent)
+ return ("\n").join(sum_list)
def _get_categorical_string(self, result, offset="", indent=" "):
""" Return a string with the summary for a particular categorical dictionary.
@@ -182,7 +186,7 @@ def _get_categorical_string(self, result, offset="", indent=" "):
str: Formatted string suitable for saving in a file or printing.
"""
- cat_dict = result.get('Categorical columns', {})
+ cat_dict = result.get('Categorical column summaries', {})
if not cat_dict:
return ""
count_dict = result['Categorical counts']
@@ -192,49 +196,26 @@ def _get_categorical_string(self, result, offset="", indent=" "):
sum_list = sum_list + self._get_categorical_col(entry, count_dict, offset="", indent=" ")
return "\n".join(sum_list)
- def _get_dataset_string(self, result, indent=BaseSummary.DISPLAY_INDENT):
- """ Return a string with the overall summary for all of the tabular files.
+ def _get_detail_list(self, result, indent=BaseSummary.DISPLAY_INDENT):
+ """ Return a list of strings with the details
Parameters:
result (dict): Dictionary of merged summary information.
indent (str): String of blanks used as the amount to indent for readability.
Returns:
- str: Formatted string suitable for saving in a file or printing.
+ list: list of formatted strings suitable for saving in a file or printing.
"""
- sum_list = [f"Dataset: Total events={result.get('Total events', 0)} "
- f"Total files={result.get('Total files', 0)}"]
+ sum_list = []
specifics = result["Specifics"]
cat_string = self._get_categorical_string(specifics, offset="", indent=indent)
if cat_string:
sum_list.append(cat_string)
- val_cols = specifics.get("Value columns", {})
- if val_cols:
- sum_list.append(ColumnValueSummary._get_value_string(val_cols, offset="", indent=indent))
- return "\n".join(sum_list)
-
- def _get_individual_string(self, result, indent=BaseSummary.DISPLAY_INDENT):
-
- """ Return a string with the summary for an individual tabular file.
-
- Parameters:
- result (dict): Dictionary of summary information for a particular tabular file.
- indent (str): String of blanks used as the amount to indent for readability.
-
- Returns:
- str: Formatted string suitable for saving in a file or printing.
-
- """
- sum_list = [f"Total events={result.get('Total events', 0)}"]
- specifics = result.get("Specifics", {})
- cat_cols = result.get("Categorical columns", {})
- if cat_cols:
- sum_list.append(self._get_categorical_string(cat_cols, offset=indent, indent=indent))
- val_cols = result.get("Value columns", {})
- if val_cols:
- sum_list.append(ColumnValueSummary._get_value_string(val_cols, offset=indent, indent=indent))
- return "\n".join(sum_list)
+ val_dict = specifics.get("Value column summaries", {})
+ if val_dict:
+ sum_list.append(ColumnValueSummary._get_value_string(val_dict, offset="", indent=indent))
+ return sum_list
def _get_categorical_col(self, entry, count_dict, offset="", indent=" "):
""" Return a string with the summary for a particular categorical column.
diff --git a/hed/tools/remodeling/operations/summarize_definitions_op.py b/hed/tools/remodeling/operations/summarize_definitions_op.py
index 6be941352..28b0c6e55 100644
--- a/hed/tools/remodeling/operations/summarize_definitions_op.py
+++ b/hed/tools/remodeling/operations/summarize_definitions_op.py
@@ -1,4 +1,4 @@
-""" Summarize the definitions in the dataset. """
+""" Summarize the type_defs in the dataset. """
from hed import TabularInput
from hed.tools.remodeling.operations.base_op import BaseOp
@@ -7,7 +7,7 @@
class SummarizeDefinitionsOp(BaseOp):
- """ Summarize the definitions in the dataset.
+ """ Summarize the type_defs in the dataset.
Required remodeling parameters:
- **summary_name** (*str*): The name of the summary.
@@ -28,7 +28,7 @@ class SummarizeDefinitionsOp(BaseOp):
}
}
- SUMMARY_TYPE = 'definitions'
+ SUMMARY_TYPE = 'type_defs'
def __init__(self, parameters):
""" Constructor for the summarize column values operation.
@@ -49,7 +49,7 @@ def __init__(self, parameters):
self.append_timecode = parameters.get('append_timecode', False)
def do_op(self, dispatcher, df, name, sidecar=None):
- """ Create summaries of definitions
+ """ Create summaries of type_defs
Parameters:
dispatcher (Dispatcher): Manages the operation I/O.
@@ -129,14 +129,13 @@ def get_details_dict(self, def_gatherer):
known_defs_summary.update(ambiguous_defs_summary)
known_defs_summary.update(errors_summary)
return {"Name": "", "Total events": 0, "Total files": 0, "Files": [], "Specifics": known_defs_summary}
-
- return known_defs_summary
+ # return known_defs_summary
def merge_all_info(self):
""" Create an Object containing the definition summary.
Returns:
- Object - the overall summary object for definitions.
+ Object - the overall summary object for type_defs.
"""
return self.def_gatherer
diff --git a/hed/tools/remodeling/operations/summarize_hed_tags_op.py b/hed/tools/remodeling/operations/summarize_hed_tags_op.py
index f88650ccb..ffef53fb7 100644
--- a/hed/tools/remodeling/operations/summarize_hed_tags_op.py
+++ b/hed/tools/remodeling/operations/summarize_hed_tags_op.py
@@ -1,11 +1,11 @@
""" Summarize the HED tags in collection of tabular files. """
from hed.models.tabular_input import TabularInput
-from hed.models.sidecar import Sidecar
from hed.tools.analysis.hed_tag_counts import HedTagCounts
+from hed.tools.analysis.event_manager import EventManager
+from hed.tools.analysis.hed_tag_manager import HedTagManager
from hed.tools.remodeling.operations.base_op import BaseOp
from hed.tools.remodeling.operations.base_summary import BaseSummary
-from hed.models.df_util import get_assembled
class SummarizeHedTagsOp(BaseOp):
@@ -15,13 +15,13 @@ class SummarizeHedTagsOp(BaseOp):
Required remodeling parameters:
- **summary_name** (*str*): The name of the summary.
- **summary_filename** (*str*): Base filename of the summary.
- - **tags** (*dict*): Type tag to get_summary separately (e.g. 'condition-variable' or 'task').
+ - **tags** (*dict*): Specifies how to organize the tag output.
Optional remodeling parameters:
- **expand_context** (*bool*): If True, include counts from expanded context (not supported).
- The purpose of this op is to produce a summary of the occurrences of specified tag. This summary
- is often used with 'condition-variable' to produce a summary of the experimental design.
+ The purpose of this op is to produce a summary of the occurrences of hed tags organized in a specified manner.
+ The
"""
@@ -35,15 +35,16 @@ class SummarizeHedTagsOp(BaseOp):
},
"optional_parameters": {
"append_timecode": bool,
- "expand_definitions": bool,
- "expand_context": bool
+ "include_context": bool,
+ "replace_defs": bool,
+ "remove_types": list
}
}
SUMMARY_TYPE = "hed_tag_summary"
def __init__(self, parameters):
- """ Constructor for the summarize hed tags operation.
+ """ Constructor for the summarize_hed_tags operation.
Parameters:
parameters (dict): Dictionary with the parameter values for required and optional parameters.
@@ -61,7 +62,9 @@ def __init__(self, parameters):
self.summary_filename = parameters['summary_filename']
self.tags = parameters['tags']
self.append_timecode = parameters.get('append_timecode', False)
- self.expand_context = parameters.get('expand_context', False)
+ self.include_context = parameters.get('include_context', True)
+ self.replace_defs = parameters.get("replace_defs", True)
+ self.remove_types = parameters.get("remove_types", ["Condition-variable", "Task"])
def do_op(self, dispatcher, df, name, sidecar=None):
""" Summarize the HED tags present in the dataset.
@@ -75,7 +78,7 @@ def do_op(self, dispatcher, df, name, sidecar=None):
Returns:
DataFrame: A copy of df.
- Side-effect:
+ Side effect:
Updates the context.
"""
@@ -93,8 +96,7 @@ class HedTagSummary(BaseSummary):
def __init__(self, sum_op):
super().__init__(sum_op)
- self.tags = sum_op.tags
- self.expand_context = sum_op.expand_context
+ self.sum_op = sum_op
def update_summary(self, new_info):
""" Update the summary for a given tabular input file.
@@ -107,15 +109,12 @@ def update_summary(self, new_info):
"""
counts = HedTagCounts(new_info['name'], total_events=len(new_info['df']))
- sidecar = new_info['sidecar']
- if sidecar and not isinstance(sidecar, Sidecar):
- sidecar = Sidecar(sidecar)
- input_data = TabularInput(new_info['df'], sidecar=sidecar, name=new_info['name'])
- hed_strings, definitions = get_assembled(input_data, sidecar, new_info['schema'],
- extra_def_dicts=None, join_columns=True,
- shrink_defs=False, expand_defs=True)
- # definitions = input_data.get_definitions().gathered_defs
- for hed in hed_strings:
+ input_data = TabularInput(new_info['df'], sidecar=new_info['sidecar'], name=new_info['name'])
+ tag_man = HedTagManager(EventManager(input_data, new_info['schema']),
+ remove_types=self.sum_op.remove_types)
+ hed_objs = tag_man.get_hed_objs(include_context=self.sum_op.include_context,
+ replace_defs=self.sum_op.replace_defs)
+ for hed in hed_objs:
counts.update_event_counts(hed, new_info['name'])
self.summary_dict[new_info["name"]] = counts
@@ -129,9 +128,9 @@ def get_details_dict(self, tag_counts):
dict: dictionary with the summary results.
"""
- template, unmatched = tag_counts.organize_tags(self.tags)
+ template, unmatched = tag_counts.organize_tags(self.sum_op.tags)
details = {}
- for key, key_list in self.tags.items():
+ for key, key_list in self.sum_op.tags.items():
details[key] = self._get_details(key_list, template, verbose=True)
leftovers = [value.get_info(verbose=True) for value in unmatched]
return {"Name": tag_counts.name, "Total events": tag_counts.total_events,
@@ -177,7 +176,7 @@ def merge_all_info(self):
@staticmethod
def _get_dataset_string(result, indent=BaseSummary.DISPLAY_INDENT):
- """ Return a string with the overall summary for all of the tabular files.
+ """ Return a string with the overall summary for all the tabular files.
Parameters:
result (dict): Dictionary of merged summary information.
diff --git a/hed/tools/remodeling/operations/summarize_hed_type_op.py b/hed/tools/remodeling/operations/summarize_hed_type_op.py
index 04c1ad89b..6aaa4c7ea 100644
--- a/hed/tools/remodeling/operations/summarize_hed_type_op.py
+++ b/hed/tools/remodeling/operations/summarize_hed_type_op.py
@@ -2,10 +2,9 @@
from hed.models.tabular_input import TabularInput
from hed.models.sidecar import Sidecar
-from hed.models.df_util import get_assembled
-from hed.tools.analysis.hed_type_values import HedTypeValues
+from hed.tools.analysis.hed_type import HedType
from hed.tools.analysis.hed_type_counts import HedTypeCounts
-from hed.tools.analysis.hed_context_manager import HedContextManager
+from hed.tools.analysis.event_manager import EventManager
from hed.tools.remodeling.operations.base_op import BaseOp
from hed.tools.remodeling.operations.base_summary import BaseSummary
@@ -69,7 +68,7 @@ def do_op(self, dispatcher, df, name, sidecar=None):
Returns:
DataFrame: A copy of df
- Side-effect:
+ Side effect:
Updates the relevant summary.
"""
@@ -104,14 +103,10 @@ def update_summary(self, new_info):
if sidecar and not isinstance(sidecar, Sidecar):
sidecar = Sidecar(sidecar)
input_data = TabularInput(new_info['df'], sidecar=sidecar, name=new_info['name'])
- hed_strings, definitions = get_assembled(input_data, sidecar, new_info['schema'],
- extra_def_dicts=None, join_columns=True, expand_defs=False)
- context_manager = HedContextManager(hed_strings, new_info['schema'])
- type_values = HedTypeValues(context_manager, definitions, new_info['name'], type_tag=self.type_tag)
-
+ type_values = HedType(EventManager(input_data, new_info['schema']), new_info['name'], type_tag=self.type_tag)
counts = HedTypeCounts(new_info['name'], self.type_tag)
counts.update_summary(type_values.get_summary(), type_values.total_events, new_info['name'])
- counts.add_descriptions(type_values.definitions)
+ counts.add_descriptions(type_values.type_defs)
self.summary_dict[new_info["name"]] = counts
def get_details_dict(self, counts):
@@ -165,7 +160,7 @@ def _get_result_string(self, name, result, indent=BaseSummary.DISPLAY_INDENT):
@staticmethod
def _get_dataset_string(result, indent=BaseSummary.DISPLAY_INDENT):
- """ Return a string with the overall summary for all of the tabular files.
+ """ Return a string with the overall summary for all the tabular files.
Parameters:
result (dict): Dictionary of merged summary information.
diff --git a/hed/tools/remodeling/operations/summarize_hed_validation_op.py b/hed/tools/remodeling/operations/summarize_hed_validation_op.py
index ce7595d55..cd3fc936b 100644
--- a/hed/tools/remodeling/operations/summarize_hed_validation_op.py
+++ b/hed/tools/remodeling/operations/summarize_hed_validation_op.py
@@ -66,7 +66,7 @@ def do_op(self, dispatcher, df, name, sidecar=None):
Returns:
DataFrame: A copy of df
- Side-effect:
+ Side effect:
Updates the relevant summary.
"""
@@ -155,7 +155,7 @@ def get_details_dict(self, summary_info):
"Specifics": summary_info}
def merge_all_info(self):
- """ Create a dictionary containing all of the errors in the dataset.
+ """ Create a dictionary containing all the errors in the dataset.
Returns:
dict - dictionary of issues organized into sidecar_issues and event_issues.
diff --git a/hed/tools/remodeling/operations/summarize_sidecar_from_events_op.py b/hed/tools/remodeling/operations/summarize_sidecar_from_events_op.py
index 28a0b9389..f584ee1d3 100644
--- a/hed/tools/remodeling/operations/summarize_sidecar_from_events_op.py
+++ b/hed/tools/remodeling/operations/summarize_sidecar_from_events_op.py
@@ -68,7 +68,7 @@ def do_op(self, dispatcher, df, name, sidecar=None):
Returns:
DataFrame: A copy of df.
- Side-effect:
+ Side effect:
Updates the associated summary if applicable.
"""
@@ -117,14 +117,14 @@ def get_details_dict(self, summary_info):
return {"Name": summary_info.name, "Total events": summary_info.total_events,
"Total files": summary_info.total_files,
- "Files": summary_info.files.keys(),
+ "Files": list(summary_info.files.keys()),
"Specifics": {"Categorical info": summary_info.categorical_info,
"Value info": summary_info.value_info,
"Skip columns": summary_info.skip_cols,
"Sidecar": summary_info.extract_sidecar_template()}}
def merge_all_info(self):
- """ Merge summary information from all of the files
+ """ Merge summary information from all the files.
Returns:
TabularSummary: Consolidated summary of information.
@@ -159,7 +159,7 @@ def _get_result_string(self, name, result, indent=BaseSummary.DISPLAY_INDENT):
@staticmethod
def _get_dataset_string(result, indent=BaseSummary.DISPLAY_INDENT):
- """ Return a string with the overall summary for all of the tabular files.
+ """ Return a string with the overall summary for all the tabular files.
Parameters:
result (dict): Dictionary of merged summary information.
diff --git a/hed/tools/util/data_util.py b/hed/tools/util/data_util.py
index 37562e189..1c787305d 100644
--- a/hed/tools/util/data_util.py
+++ b/hed/tools/util/data_util.py
@@ -132,7 +132,7 @@ def get_new_dataframe(data):
a DataFrame to start with, a new copy of the DataFrame.
:raises HedFileError:
- - If a filename is given and it cannot be read into a Dataframe.
+ - A filename is given, and it cannot be read into a Dataframe.
"""
@@ -156,7 +156,7 @@ def get_row_hash(row, key_list):
str: Hash key constructed from the entries of row in the columns specified by key_list.
:raises HedFileError:
- - If row doesn't have all of the columns in key_list HedFileError is raised.
+ - If row doesn't have all the columns in key_list HedFileError is raised.
"""
columns_present, columns_missing = separate_values(list(row.index.values), key_list)
@@ -216,7 +216,7 @@ def replace_values(df, values=None, replace_value='n/a', column_list=None):
""" Replace string values in specified columns.
Parameters:
- df (DataFrame): Dataframe whose values will replaced.
+ df (DataFrame): Dataframe whose values will be replaced.
values (list, None): List of strings to replace. If None, only empty strings are replaced.
replace_value (str): String replacement value.
column_list (list, None): List of columns in which to do replacement. If None all columns are processed.
diff --git a/hed/tools/util/hed_logger.py b/hed/tools/util/hed_logger.py
index 74fa7262f..1d23aee71 100644
--- a/hed/tools/util/hed_logger.py
+++ b/hed/tools/util/hed_logger.py
@@ -1,5 +1,6 @@
""" Logger class with messages organized by key """
+
class HedLogger:
""" Log status messages organized by key. """
def __init__(self, name=None):
diff --git a/hed/tools/util/io_util.py b/hed/tools/util/io_util.py
index a120c9040..53fab27a4 100644
--- a/hed/tools/util/io_util.py
+++ b/hed/tools/util/io_util.py
@@ -21,7 +21,7 @@ def check_filename(test_file, name_prefix=None, name_suffix=None, extensions=Non
bool: True if file has the appropriate format.
Notes:
- - Everything is converted to lower case prior to testing so this test should be case insensitive.
+ - Everything is converted to lower case prior to testing so this test should be case-insensitive.
- None indicates that all are accepted.
@@ -158,13 +158,13 @@ def get_filtered_by_element(file_list, elements):
def get_filtered_list(file_list, name_prefix=None, name_suffix=None, extensions=None):
""" Get list of filenames satisfying the criteria.
- Everything is converted to lower case prior to testing so this test should be case insensitive.
+ Everything is converted to lower case prior to testing so this test should be case-insensitive.
Parameters:
file_list (list): List of files to test.
name_prefix (str): Optional name_prefix for the base filename.
name_suffix (str): Optional name_suffix for the base filename.
- extensions (list): Optional list of file extensions (allows two periods (.tsv.gz)
+ extensions (list): Optional list of file extensions (allows two periods (.tsv.gz))
Returns:
list: The filtered file names.
@@ -299,7 +299,7 @@ def parse_bids_filename(file_path):
def _split_entity(piece):
- """Splits an piece into an entity or suffix.
+ """Splits a piece into an entity or suffix.
Parameters:
piece (str): A string to be parsed.
@@ -318,3 +318,13 @@ def _split_entity(piece):
return {"key": split_piece[0].strip(), "value": split_piece[1].strip()}
else:
return {"bad": piece}
+
+
+def get_task_from_file(file_path):
+ filename = os.path.splitext(os.path.basename(file_path))
+ basename = filename[0].strip()
+ position = basename.lower().find("task-")
+ if position == -1:
+ return ""
+ splits = re.split(r'[_.]', basename[position+5:])
+ return splits[0]
diff --git a/hed/tools/util/schema_util.py b/hed/tools/util/schema_util.py
index fb30d41a1..f14954d4f 100644
--- a/hed/tools/util/schema_util.py
+++ b/hed/tools/util/schema_util.py
@@ -11,7 +11,7 @@ def flatten_schema(hed_schema, skip_non_tag=False):
"""
children, parents, descriptions = [], [], []
for section in hed_schema._sections.values():
- if skip_non_tag and section.section_key != HedSectionKey.AllTags:
+ if skip_non_tag and section.section_key != HedSectionKey.Tags:
continue
for entry in section.all_entries:
if entry.has_attribute(HedKey.TakesValue):
diff --git a/hed/tools/visualization/__init__.py b/hed/tools/visualization/__init__.py
index a40c0333b..389ba92f8 100644
--- a/hed/tools/visualization/__init__.py
+++ b/hed/tools/visualization/__init__.py
@@ -1 +1 @@
-from .tag_word_cloud import create_wordcloud, summary_to_dict
+from .tag_word_cloud import create_wordcloud, summary_to_dict, word_cloud_to_svg
diff --git a/hed/tools/visualization/tag_word_cloud.py b/hed/tools/visualization/tag_word_cloud.py
index c8d4159d7..9f9092cba 100644
--- a/hed/tools/visualization/tag_word_cloud.py
+++ b/hed/tools/visualization/tag_word_cloud.py
@@ -1,9 +1,9 @@
import numpy as np
from PIL import Image
-from hed.tools.visualization.word_cloud_util import default_color_func, WordCloud
+from hed.tools.visualization.word_cloud_util import default_color_func, WordCloud, generate_contour_svg
-def create_wordcloud(word_dict, mask_path=None, background_color=None, width=400, height=200, **kwargs):
+def create_wordcloud(word_dict, mask_path=None, background_color=None, width=400, height=None, **kwargs):
"""Takes a word dict and returns a generated word cloud object
Parameters:
@@ -25,6 +25,13 @@ def create_wordcloud(word_dict, mask_path=None, background_color=None, width=400
mask_image = load_and_resize_mask(mask_path, width, height)
width = mask_image.shape[1]
height = mask_image.shape[0]
+ if height is None:
+ if width is None:
+ width = 400
+ height = width // 2
+ if width is None:
+ width = height * 2
+
kwargs.setdefault('contour_width', 3)
kwargs.setdefault('contour_color', 'black')
kwargs.setdefault('prefer_horizontal', 0.75)
@@ -41,6 +48,20 @@ def create_wordcloud(word_dict, mask_path=None, background_color=None, width=400
return wc
+def word_cloud_to_svg(wc):
+ """Takes word cloud and returns it as an SVG string.
+
+ Parameters:
+ wc(WordCloud): the word cloud object
+ Returns:
+ svg_string(str): The svg for the word cloud
+ """
+ svg_string = wc.to_svg()
+ svg_string = svg_string.replace("fill:", "fill:rgb")
+ svg_string = svg_string.replace("", generate_contour_svg(wc, wc.width, wc.height) + "")
+ return svg_string
+
+
def summary_to_dict(summary, transform=np.log10, adjustment=5):
"""Converts a HedTagSummary json dict into the word cloud input format
@@ -51,10 +72,10 @@ def summary_to_dict(summary, transform=np.log10, adjustment=5):
adjustment(int): Value added after transform.
Returns:
word_dict(dict): a dict of the words and their occurrence count
-
+
:raises KeyError:
A malformed dictionary was passed
-
+
"""
if transform is None:
transform = lambda x: x
@@ -109,4 +130,4 @@ def load_and_resize_mask(mask_path, width=None, height=None):
else:
mask_image_array = np.array(mask_image)
- return mask_image_array.astype(np.uint8)
\ No newline at end of file
+ return mask_image_array.astype(np.uint8)
diff --git a/hed/tools/visualization/word_cloud_util.py b/hed/tools/visualization/word_cloud_util.py
index ba25e0133..490be199f 100644
--- a/hed/tools/visualization/word_cloud_util.py
+++ b/hed/tools/visualization/word_cloud_util.py
@@ -7,14 +7,31 @@
from wordcloud import WordCloud
-def _draw_contour(wc, img):
+def generate_contour_svg(wc, width, height):
+ """Generates an SVG contour mask based on a word cloud object and dimensions.
+
+ Parameters:
+ wc (WordCloud): The word cloud object.
+ width (int): SVG image width in pixels.
+ height (int): SVG image height in pixels.
+
+ Returns:
+ str: SVG point list for the contour mask, or empty string if not generated.
+ """
+ contour = _get_contour_mask(wc, width, height)
+ if contour is None:
+ return ""
+ return _numpy_to_svg(contour)
+
+
+def _get_contour_mask(wc, width, height):
"""Slightly tweaked copy of internal WorldCloud function to allow transparency"""
if wc.mask is None or wc.contour_width == 0 or wc.contour_color is None:
- return img
+ return None
mask = wc._get_bolean_mask(wc.mask) * 255
contour = Image.fromarray(mask.astype(np.uint8))
- contour = contour.resize(img.size)
+ contour = contour.resize((width, height))
contour = contour.filter(ImageFilter.FIND_EDGES)
contour = np.array(contour)
@@ -22,6 +39,15 @@ def _draw_contour(wc, img):
contour[[0, -1], :] = 0
contour[:, [0, -1]] = 0
+ return contour
+
+
+def _draw_contour(wc, img):
+ """Slightly tweaked copy of internal WorldCloud function to allow transparency"""
+ contour = _get_contour_mask(wc, img.width, img.height)
+ if contour is None:
+ return img
+
# use gaussian to change width, divide by 10 to give more resolution
radius = wc.contour_width / 10
contour = Image.fromarray(contour)
@@ -39,10 +65,20 @@ def _draw_contour(wc, img):
return Image.fromarray(ret)
+
# Replace WordCloud function with one that can handle transparency
WordCloud._draw_contour = _draw_contour
+def _numpy_to_svg(contour):
+ svg_elements = []
+ points = np.array(contour.nonzero()).T
+ for y, x in points:
+ svg_elements.append(f'')
+
+ return '\n'.join(svg_elements)
+
+
def random_color_darker(word=None, font_size=None, position=None, orientation=None, font_path=None, random_state=None):
"""Random color generation func"""
if random_state is None:
diff --git a/hed/validator/def_validator.py b/hed/validator/def_validator.py
index 0eb159976..293c8ad06 100644
--- a/hed/validator/def_validator.py
+++ b/hed/validator/def_validator.py
@@ -1,12 +1,15 @@
from hed.models.hed_string import HedString
from hed.models.hed_tag import HedTag
+from hed.models.hed_group import HedGroup
from hed.models.definition_dict import DefinitionDict
from hed.errors.error_types import ValidationErrors
from hed.errors.error_reporter import ErrorHandler
+from hed.models.model_constants import DefTagNames
+from hed.errors.error_types import OnsetErrors
class DefValidator(DefinitionDict):
- """ Handles validating Def/ and Def-expand/.
+ """ Handles validating Def/ and Def-expand/, as well as Temporal groups: Onset, Inset, and Offset
"""
def __init__(self, def_dicts=None, hed_schema=None):
@@ -103,14 +106,9 @@ def _validate_def_contents(self, def_tag, def_expand_group, tag_validator):
"""
def_issues = []
is_def_expand_tag = def_expand_group != def_tag
- is_label_tag = def_tag.extension
- placeholder = None
- found_slash = is_label_tag.find("/")
- if found_slash != -1:
- placeholder = is_label_tag[found_slash + 1:]
- is_label_tag = is_label_tag[:found_slash]
-
- label_tag_lower = is_label_tag.lower()
+ tag_label, _, placeholder = def_tag.extension.partition('/')
+
+ label_tag_lower = tag_label.lower()
def_entry = self.defs.get(label_tag_lower)
if def_entry is None:
error_code = ValidationErrors.HED_DEF_UNMATCHED
@@ -118,9 +116,9 @@ def _validate_def_contents(self, def_tag, def_expand_group, tag_validator):
error_code = ValidationErrors.HED_DEF_EXPAND_UNMATCHED
def_issues += ErrorHandler.format_error(error_code, tag=def_tag)
else:
- def_tag_name, def_contents = def_entry.get_definition(def_tag, placeholder_value=placeholder,
+ def_contents = def_entry.get_definition(def_tag, placeholder_value=placeholder,
return_copy_of_tag=True)
- if def_tag_name:
+ if def_contents is not None:
if is_def_expand_tag and def_expand_group != def_contents:
def_issues += ErrorHandler.format_error(ValidationErrors.HED_DEF_EXPAND_INVALID,
tag=def_tag, actual_def=def_contents,
@@ -133,3 +131,71 @@ def _validate_def_contents(self, def_tag, def_expand_group, tag_validator):
def_issues += self._report_missing_or_invalid_value(def_tag, def_entry, is_def_expand_tag)
return def_issues
+
+ def validate_onset_offset(self, hed_string_obj):
+ """ Validate onset/offset
+
+ Parameters:
+ hed_string_obj (HedString): The hed string to check.
+
+ Returns:
+ list: A list of issues found in validating onsets (i.e., out of order onsets, unknown def names).
+ """
+ onset_issues = []
+ for found_onset, found_group in self._find_onset_tags(hed_string_obj):
+ if not found_onset:
+ return []
+
+ def_tags = found_group.find_def_tags()
+ if not def_tags:
+ onset_issues += ErrorHandler.format_error(OnsetErrors.ONSET_NO_DEF_TAG_FOUND, found_onset)
+ continue
+
+ if len(def_tags) > 1:
+ onset_issues += ErrorHandler.format_error(OnsetErrors.ONSET_TOO_MANY_DEFS,
+ tag=def_tags[0][0],
+ tag_list=[tag[0] for tag in def_tags[1:]])
+ continue
+
+ # Get all children but def group and onset/offset, then validate #/type of children.
+ def_tag, def_group, _ = def_tags[0]
+ if def_group is None:
+ def_group = def_tag
+ children = [child for child in found_group.children if
+ def_group is not child and found_onset is not child]
+ max_children = 1
+ if found_onset.short_base_tag == DefTagNames.OFFSET_ORG_KEY:
+ max_children = 0
+ if len(children) > max_children:
+ onset_issues += ErrorHandler.format_error(OnsetErrors.ONSET_WRONG_NUMBER_GROUPS,
+ def_tag,
+ found_group.children)
+ continue
+
+ if children:
+ # Make this a loop if max_children can be > 1
+ child = children[0]
+ if not isinstance(child, HedGroup):
+ onset_issues += ErrorHandler.format_error(OnsetErrors.ONSET_TAG_OUTSIDE_OF_GROUP,
+ child,
+ def_tag)
+
+ # At this point we have either an onset or offset tag and it's name
+ onset_issues += self._handle_onset_or_offset(def_tag)
+
+ return onset_issues
+
+ def _find_onset_tags(self, hed_string_obj):
+ return hed_string_obj.find_top_level_tags(anchor_tags=DefTagNames.TEMPORAL_KEYS)
+
+ def _handle_onset_or_offset(self, def_tag):
+ def_name, _, placeholder = def_tag.extension.partition('/')
+
+ def_entry = self.defs.get(def_name.lower())
+ if def_entry is None:
+ return ErrorHandler.format_error(OnsetErrors.ONSET_DEF_UNMATCHED, tag=def_tag)
+ if bool(def_entry.takes_value) != bool(placeholder):
+ return ErrorHandler.format_error(OnsetErrors.ONSET_PLACEHOLDER_WRONG, tag=def_tag,
+ has_placeholder=bool(def_entry.takes_value))
+
+ return []
diff --git a/hed/validator/hed_validator.py b/hed/validator/hed_validator.py
index 6ce937454..b955d5e41 100644
--- a/hed/validator/hed_validator.py
+++ b/hed/validator/hed_validator.py
@@ -12,19 +12,17 @@
from hed.models import HedTag
from hed.validator.tag_validator import TagValidator
from hed.validator.def_validator import DefValidator
-from hed.validator.onset_validator import OnsetValidator
class HedValidator:
""" Top level validation of HED strings. """
- def __init__(self, hed_schema, def_dicts=None, run_full_onset_checks=True, definitions_allowed=False):
+ def __init__(self, hed_schema, def_dicts=None, definitions_allowed=False):
""" Constructor for the HedValidator class.
Parameters:
hed_schema (HedSchema or HedSchemaGroup): HedSchema object to use for validation.
def_dicts(DefinitionDict or list or dict): the def dicts to use for validation
- run_full_onset_checks(bool): If True, check for matching onset/offset tags
definitions_allowed(bool): If False, flag definitions found as errors
"""
super().__init__()
@@ -33,8 +31,6 @@ def __init__(self, hed_schema, def_dicts=None, run_full_onset_checks=True, defin
self._tag_validator = TagValidator(hed_schema=self._hed_schema)
self._def_validator = DefValidator(def_dicts, hed_schema)
- self._onset_validator = OnsetValidator(def_dict=self._def_validator,
- run_full_onset_checks=run_full_onset_checks)
self._definitions_allowed = definitions_allowed
def validate(self, hed_string, allow_placeholders, error_handler=None):
@@ -80,7 +76,7 @@ def run_full_string_checks(self, hed_string):
issues = []
issues += self._validate_tags_in_hed_string(hed_string)
issues += self._validate_groups_in_hed_string(hed_string)
- issues += self._onset_validator.validate_onset_offset(hed_string)
+ issues += self._def_validator.validate_onset_offset(hed_string)
return issues
def _validate_groups_in_hed_string(self, hed_string_obj):
@@ -130,7 +126,7 @@ def _check_for_duplicate_groups_recursive(self, sorted_group, validation_issues)
prev_child = child
def _check_for_duplicate_groups(self, original_group):
- sorted_group = original_group.sorted()
+ sorted_group = original_group._sorted()
validation_issues = []
self._check_for_duplicate_groups_recursive(sorted_group, validation_issues)
return validation_issues
diff --git a/hed/validator/onset_validator.py b/hed/validator/onset_validator.py
index f44b291ba..94be9d7ef 100644
--- a/hed/validator/onset_validator.py
+++ b/hed/validator/onset_validator.py
@@ -7,13 +7,11 @@
class OnsetValidator:
""" Validates onset/offset pairs. """
- def __init__(self, def_dict, run_full_onset_checks=True):
- self._defs = def_dict
+ def __init__(self):
self._onsets = {}
- self._run_full_onset_checks = run_full_onset_checks
- def validate_onset_offset(self, hed_string_obj):
- """ Validate onset/offset
+ def validate_temporal_relations(self, hed_string_obj):
+ """ Validate onset/offset/inset tag relations
Parameters:
hed_string_obj (HedString): The hed string to check.
@@ -22,80 +20,46 @@ def validate_onset_offset(self, hed_string_obj):
list: A list of issues found in validating onsets (i.e., out of order onsets, unknown def names).
"""
onset_issues = []
- for found_onset, found_group in self._find_onset_tags(hed_string_obj):
- if not found_onset:
+ used_def_names = set()
+ for temporal_tag, temporal_group in self._find_temporal_tags(hed_string_obj):
+ if not temporal_tag:
return []
- def_tags = found_group.find_def_tags()
+ def_tags = temporal_group.find_def_tags(include_groups=0)
if not def_tags:
- onset_issues += ErrorHandler.format_error(OnsetErrors.ONSET_NO_DEF_TAG_FOUND, found_onset)
continue
- if len(def_tags) > 1:
- onset_issues += ErrorHandler.format_error(OnsetErrors.ONSET_TOO_MANY_DEFS,
- tag=def_tags[0][0],
- tag_list=[tag[0] for tag in def_tags[1:]])
+ def_tag = def_tags[0]
+ def_name = def_tag.extension
+ if def_name.lower() in used_def_names:
+ onset_issues += ErrorHandler.format_error(OnsetErrors.ONSET_SAME_DEFS_ONE_ROW, tag=temporal_tag,
+ def_name=def_name)
continue
- # Get all children but def group and onset/offset, then validate #/type of children.
- def_tag, def_group, _ = def_tags[0]
- if def_group is None:
- def_group = def_tag
- children = [child for child in found_group.children if
- def_group is not child and found_onset is not child]
- max_children = 1
- if found_onset.short_base_tag == DefTagNames.OFFSET_ORG_KEY:
- max_children = 0
- if len(children) > max_children:
- onset_issues += ErrorHandler.format_error(OnsetErrors.ONSET_WRONG_NUMBER_GROUPS,
- def_tag,
- found_group.children)
- continue
-
- if children:
- # Make this a loop if max_children can be > 1
- child = children[0]
- if not isinstance(child, HedGroup):
- onset_issues += ErrorHandler.format_error(OnsetErrors.ONSET_TAG_OUTSIDE_OF_GROUP,
- child,
- def_tag)
+ used_def_names.add(def_tag.extension.lower())
# At this point we have either an onset or offset tag and it's name
- onset_issues += self._handle_onset_or_offset(def_tag, found_onset)
+ onset_issues += self._handle_onset_or_offset(def_tag, temporal_tag)
return onset_issues
- def _find_onset_tags(self, hed_string_obj):
+ def _find_temporal_tags(self, hed_string_obj):
return hed_string_obj.find_top_level_tags(anchor_tags=DefTagNames.TEMPORAL_KEYS)
def _handle_onset_or_offset(self, def_tag, onset_offset_tag):
is_onset = onset_offset_tag.short_base_tag == DefTagNames.ONSET_ORG_KEY
- full_def_name = def_name = def_tag.extension
- placeholder = None
- found_slash = def_name.find("/")
- if found_slash != -1:
- placeholder = def_name[found_slash + 1:]
- def_name = def_name[:found_slash]
-
- def_entry = self._defs.get(def_name)
- if def_entry is None:
- return ErrorHandler.format_error(OnsetErrors.ONSET_DEF_UNMATCHED, tag=def_tag)
- if bool(def_entry.takes_value) != bool(placeholder):
- return ErrorHandler.format_error(OnsetErrors.ONSET_PLACEHOLDER_WRONG, tag=def_tag,
- has_placeholder=bool(def_entry.takes_value))
-
- if self._run_full_onset_checks:
- if is_onset:
- # onset can never fail as it implies an offset
- self._onsets[full_def_name.lower()] = full_def_name
- else:
- is_offset = onset_offset_tag.short_base_tag == DefTagNames.OFFSET_ORG_KEY
- if full_def_name.lower() not in self._onsets:
- if is_offset:
- return ErrorHandler.format_error(OnsetErrors.OFFSET_BEFORE_ONSET, tag=def_tag)
- else:
- return ErrorHandler.format_error(OnsetErrors.INSET_BEFORE_ONSET, tag=def_tag)
- elif is_offset:
- del self._onsets[full_def_name.lower()]
+ full_def_name = def_tag.extension
+ if is_onset:
+ # onset can never fail as it implies an offset
+ self._onsets[full_def_name.lower()] = full_def_name
+ else:
+ is_offset = onset_offset_tag.short_base_tag == DefTagNames.OFFSET_ORG_KEY
+ if full_def_name.lower() not in self._onsets:
+ if is_offset:
+ return ErrorHandler.format_error(OnsetErrors.OFFSET_BEFORE_ONSET, tag=def_tag)
+ else:
+ return ErrorHandler.format_error(OnsetErrors.INSET_BEFORE_ONSET, tag=def_tag)
+ elif is_offset:
+ del self._onsets[full_def_name.lower()]
return []
diff --git a/hed/validator/sidecar_validator.py b/hed/validator/sidecar_validator.py
index 9e6f222fd..2a6f22099 100644
--- a/hed/validator/sidecar_validator.py
+++ b/hed/validator/sidecar_validator.py
@@ -51,7 +51,6 @@ def validate(self, sidecar, extra_def_dicts=None, name=None, error_handler=None)
sidecar_def_dict = sidecar.get_def_dict(hed_schema=self._schema, extra_def_dicts=extra_def_dicts)
hed_validator = HedValidator(self._schema,
def_dicts=sidecar_def_dict,
- run_full_onset_checks=False,
definitions_allowed=True)
issues += sidecar._extract_definition_issues
diff --git a/hed/validator/spreadsheet_validator.py b/hed/validator/spreadsheet_validator.py
index 025aa54d4..ebd647953 100644
--- a/hed/validator/spreadsheet_validator.py
+++ b/hed/validator/spreadsheet_validator.py
@@ -5,6 +5,8 @@
from hed.models import ColumnType
from hed import HedString
from hed.errors.error_reporter import sort_issues, check_for_any_errors
+from hed.validator.onset_validator import OnsetValidator
+from hed.validator.hed_validator import HedValidator
PANDAS_COLUMN_PREFIX_TO_IGNORE = "Unnamed: "
@@ -19,6 +21,7 @@ def __init__(self, hed_schema):
"""
self._schema = hed_schema
self._hed_validator = None
+ self._onset_validator = None
def validate(self, data, def_dicts=None, name=None, error_handler=None):
"""
@@ -33,29 +36,31 @@ def validate(self, data, def_dicts=None, name=None, error_handler=None):
Returns:
issues (list of dict): A list of issues for hed string
"""
- from hed.validator import HedValidator
+
issues = []
if error_handler is None:
error_handler = ErrorHandler()
error_handler.push_error_context(ErrorContext.FILE_NAME, name)
self._hed_validator = HedValidator(self._schema, def_dicts=def_dicts)
- # Check the structure of the input data, if it's a BaseInput
+ self._onset_validator = OnsetValidator()
+ onset_filtered = None
if isinstance(data, BaseInput):
issues += self._validate_column_structure(data, error_handler)
+ onset_filtered = data.series_filtered
data = data.dataframe_a
# Check the rows of the input data
- issues += self._run_checks(data, error_handler)
+ issues += self._run_checks(data, onset_filtered, error_handler=error_handler)
error_handler.pop_error_context()
issues = sort_issues(issues)
return issues
- def _run_checks(self, data, error_handler):
+ def _run_checks(self, hed_df, onset_filtered, error_handler):
issues = []
- columns = list(data.columns)
- for row_number, text_file_row in enumerate(data.itertuples(index=False)):
+ columns = list(hed_df.columns)
+ for row_number, text_file_row in enumerate(hed_df.itertuples(index=False)):
error_handler.push_error_context(ErrorContext.ROW, row_number)
row_strings = []
new_column_issues = []
@@ -76,12 +81,19 @@ def _run_checks(self, data, error_handler):
issues += new_column_issues
if check_for_any_errors(new_column_issues):
+ error_handler.pop_error_context()
continue
+
+ row_string = None
+ if onset_filtered is not None:
+ row_string = HedString(onset_filtered[row_number], self._schema, self._hed_validator._def_validator)
elif row_strings:
row_string = HedString.from_hed_strings(row_strings)
+
+ if row_string:
error_handler.push_error_context(ErrorContext.HED_STRING, row_string)
new_column_issues = self._hed_validator.run_full_string_checks(row_string)
-
+ new_column_issues += self._onset_validator.validate_temporal_relations(row_string)
error_handler.add_context_and_filter(new_column_issues)
error_handler.pop_error_context()
issues += new_column_issues
diff --git a/hed/validator/tag_validator.py b/hed/validator/tag_validator.py
index 7939f72ea..f0d585a70 100644
--- a/hed/validator/tag_validator.py
+++ b/hed/validator/tag_validator.py
@@ -276,7 +276,7 @@ def check_tag_exists_in_schema(self, original_tag):
if original_tag.is_basic_tag() or original_tag.is_takes_value_tag():
return validation_issues
- is_extension_tag = original_tag.is_extension_allowed_tag()
+ is_extension_tag = original_tag.has_attribute(HedKey.ExtensionAllowed)
if not is_extension_tag:
actual_error = None
if "#" in original_tag.extension:
@@ -307,7 +307,7 @@ def _check_units(self, original_tag, bad_units, report_as):
validation_issue = ErrorHandler.format_error(ValidationErrors.UNITS_INVALID,
tag=report_as, units=tag_unit_class_units)
else:
- default_unit = original_tag.get_unit_class_default_unit()
+ default_unit = original_tag.default_unit
validation_issue = ErrorHandler.format_error(ValidationErrors.UNITS_MISSING,
tag=report_as, default_unit=default_unit)
return validation_issue
@@ -378,26 +378,6 @@ def check_tag_requires_child(self, original_tag):
tag=original_tag)
return validation_issues
- def check_tag_unit_class_units_exist(self, original_tag):
- """ Report warning if tag has a unit class tag with no units.
-
- Parameters:
- original_tag (HedTag): The original tag that is used to report the error.
-
- Returns:
- list: Validation issues. Each issue is a dictionary.
-
- """
- validation_issues = []
- if original_tag.is_unit_class_tag():
- tag_unit_values = original_tag.extension
- if tag_validator_util.validate_numeric_value_class(tag_unit_values):
- default_unit = original_tag.get_unit_class_default_unit()
- validation_issues += ErrorHandler.format_error(ValidationErrors.UNITS_MISSING,
- tag=original_tag,
- default_unit=default_unit)
- return validation_issues
-
def check_for_invalid_extension_chars(self, original_tag):
"""Report invalid characters in extension/value.
diff --git a/readthedocs.yml b/readthedocs.yml
index 3a0eed7e6..f71981387 100644
--- a/readthedocs.yml
+++ b/readthedocs.yml
@@ -5,7 +5,9 @@ formats:
- pdf
build:
- image: latest
+ os: "ubuntu-22.04"
+ tools:
+ python: "3.7"
# Build documentation in the docs/ directory with Sphinx
sphinx:
@@ -15,7 +17,5 @@ sphinx:
python:
- version: 3.8
install:
- requirements: docs/requirements.txt
- system_packages: true
diff --git a/spec_tests/hed-specification b/spec_tests/hed-specification
index 33f48d286..c47fff949 160000
--- a/spec_tests/hed-specification
+++ b/spec_tests/hed-specification
@@ -1 +1 @@
-Subproject commit 33f48d286ea3cb69e8e1c77a9b10379d676c6af8
+Subproject commit c47fff949db70c9105c875bbdfdf0d11389ffd68
diff --git a/spec_tests/test_errors.py b/spec_tests/test_errors.py
index e48333c5d..972d53d4d 100644
--- a/spec_tests/test_errors.py
+++ b/spec_tests/test_errors.py
@@ -10,9 +10,6 @@
import json
from hed import HedFileError
from hed.errors import ErrorHandler, get_printable_issue_string
-import shutil
-from hed import schema
-from hed.schema import hed_cache
# To be removed eventually once all errors are being verified.
@@ -48,12 +45,18 @@
"SIDECAR_BRACES_INVALID",
"SCHEMA_LIBRARY_INVALID",
- "SCHEMA_ATTRIBUTE_INVALID"
+ "SCHEMA_ATTRIBUTE_INVALID",
+ "SCHEMA_UNIT_CLASS_INVALID",
+ "SCHEMA_VALUE_CLASS_INVALID",
+ "SCHEMA_DEPRECATED_INVALID",
+ "SCHEMA_SUGGESTED_TAG_INVALID",
+ "SCHEMA_RELATED_TAG_INVALID",
+ "SCHEMA_NON_PLACEHOLDER_HAS_CLASS",
+ "SCHEMA_DEFAULT_UNITS_INVALID"
]
skip_tests = {
"VERSION_DEPRECATED": "Not applicable",
- "onset-offset-inset-error-duplicated-onset-or-offset": "TBD how we implement this",
"tag-extension-invalid-bad-node-name": "Part of character invalid checking/didn't get to it yet",
}
@@ -68,21 +71,9 @@ def setUpClass(cls):
cls.fail_count = []
cls.default_sidecar = Sidecar(os.path.realpath(os.path.join(os.path.dirname(os.path.realpath(__file__)), 'test_sidecar.json')))
- # this is just to make sure 8.2.0 is in the cache(as you can't find it online yet) and could be cleaned up
- cls.hed_cache_dir = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'test_errors_cache/')
- base_schema_dir = '../tests/data/schema_tests/merge_tests/'
- cls.saved_cache_folder = hed_cache.HED_CACHE_DIRECTORY
- schema.set_cache_directory(cls.hed_cache_dir)
- cls.full_base_folder = os.path.join(os.path.dirname(os.path.realpath(__file__)), base_schema_dir)
- cls.source_schema_path = os.path.join(cls.full_base_folder, "HED8.2.0.xml")
- cls.cache_folder = hed_cache.get_cache_directory()
- cls.schema_path_in_cache = os.path.join(cls.cache_folder, "HED8.2.0.xml")
- shutil.copy(cls.source_schema_path, cls.schema_path_in_cache)
-
@classmethod
def tearDownClass(cls):
- shutil.rmtree(cls.hed_cache_dir)
- schema.set_cache_directory(cls.saved_cache_folder)
+ pass
def run_single_test(self, test_file):
with open(test_file, "r") as fp:
@@ -147,7 +138,7 @@ def report_result(self, expected_result, issues, error_code, description, name,
self.fail_count.append(name)
def _run_single_string_test(self, info, schema, def_dict, error_code, description, name, error_handler):
- string_validator = HedValidator(hed_schema=schema, def_dicts=def_dict, run_full_onset_checks=False)
+ string_validator = HedValidator(hed_schema=schema, def_dicts=def_dict)
for result, tests in info.items():
for test in tests:
test_string = HedString(test, schema)
@@ -223,7 +214,7 @@ def _run_single_schema_test(self, info, error_code, description,name, error_hand
for test in tests:
schema_string = "\n".join(test)
try:
- loaded_schema = from_string(schema_string, file_type=".mediawiki")
+ loaded_schema = from_string(schema_string, schema_format=".mediawiki")
issues = loaded_schema.check_compliance()
except HedFileError as e:
issues = e.issues
diff --git a/tests/data/bids_tests/eeg_ds003645s_hed/task-FacePerception_events.json b/tests/data/bids_tests/eeg_ds003645s_hed/task-FacePerception_events.json
index fa018c473..f24a3f1f0 100644
--- a/tests/data/bids_tests/eeg_ds003645s_hed/task-FacePerception_events.json
+++ b/tests/data/bids_tests/eeg_ds003645s_hed/task-FacePerception_events.json
@@ -60,8 +60,7 @@
}
},
"trial": {
- "Description": "Indicates which trial this event belongs to.",
- "HED": "Experimental-trial/#"
+ "Description": "Indicates which trial this event belongs to."
},
"rep_lag": {
"Description": "How face images before this one was the image was previously presented.",
diff --git a/tests/data/bids_tests/eeg_ds003645s_hed_inheritance/task-FacePerception_events.json b/tests/data/bids_tests/eeg_ds003645s_hed_inheritance/task-FacePerception_events.json
index b98b57b9c..420f75b97 100644
--- a/tests/data/bids_tests/eeg_ds003645s_hed_inheritance/task-FacePerception_events.json
+++ b/tests/data/bids_tests/eeg_ds003645s_hed_inheritance/task-FacePerception_events.json
@@ -43,8 +43,7 @@
}
},
"trial": {
- "Description": "Indicates which trial this event belongs to.",
- "HED": "Experimental-trial/#"
+ "Description": "Indicates which trial this event belongs to."
},
"stim_file": {
"Description": "Path of the stimulus file in the stimuli directory.",
diff --git a/tests/data/bids_tests/eeg_ds003645s_hed_library/task-FacePerception_events.json b/tests/data/bids_tests/eeg_ds003645s_hed_library/task-FacePerception_events.json
index f542dc10d..ab39a1085 100644
--- a/tests/data/bids_tests/eeg_ds003645s_hed_library/task-FacePerception_events.json
+++ b/tests/data/bids_tests/eeg_ds003645s_hed_library/task-FacePerception_events.json
@@ -60,8 +60,7 @@
}
},
"trial": {
- "Description": "Indicates which trial this event belongs to.",
- "HED": "Experimental-trial/#, test:Informational-property, sc:Discontinuous-background-activity"
+ "Description": "Indicates which trial this event belongs to."
},
"rep_lag": {
"Description": "How face images before this one was the image was previously presented.",
diff --git a/tests/data/bids_tests/eeg_ds003645s_hed_remodel.zip b/tests/data/bids_tests/eeg_ds003645s_hed_remodel.zip
index 520877e3b..64cbd3de7 100644
Binary files a/tests/data/bids_tests/eeg_ds003645s_hed_remodel.zip and b/tests/data/bids_tests/eeg_ds003645s_hed_remodel.zip differ
diff --git a/tests/data/schema_tests/merge_tests/HED8.2.0.xml b/tests/data/schema_tests/merge_tests/HED8.2.0.xml
index cecbd111c..1f55c7ae8 100644
--- a/tests/data/schema_tests/merge_tests/HED8.2.0.xml
+++ b/tests/data/schema_tests/merge_tests/HED8.2.0.xml
@@ -1,11 +1,9 @@
-
- The HED standard schema is a hierarchically-organized vocabulary for annotating events and experimental structure. HED annotations consist of comma-separated tags drawn from this vocabulary. This vocabulary can be augmented by terms drawn from specialized library schema.
+
+ The HED standard schema is a hierarchically-organized vocabulary for annotating events and experimental structure. HED annotations consist of comma-separated tags drawn from this vocabulary. This vocabulary can be augmented by terms drawn from specialized library schema.
Each term in this vocabulary has a human-readable description and may include additional attributes that give additional properties or that specify how tools should treat the tag during analysis. The meaning of these attributes is described in the Additional schema properties section.
-For additional information and tutorials see https://www.hed-resources.org.
-
@@ -7077,7 +7075,7 @@ For additional information and tutorials see https://www.hed-resources.org.
nodeProperty
- isInherited
+ isInheritedProperty
@@ -7104,7 +7102,7 @@ For additional information and tutorials see https://www.hed-resources.org.
nodeProperty
- isInherited
+ isInheritedProperty
@@ -7181,7 +7179,7 @@ For additional information and tutorials see https://www.hed-resources.org.
nodeProperty
- isInherited
+ isInheritedProperty
@@ -7269,7 +7267,7 @@ For additional information and tutorials see https://www.hed-resources.org.
Indicates this schema attribute can apply to any type of element(tag term, unit class, etc).
- isInherited
+ isInheritedPropertyIndicates that this attribute is inherited by child nodes. This property only applies to schema attributes for nodes.
@@ -7293,7 +7291,6 @@ For additional information and tutorials see https://www.hed-resources.org.
Indicates that the schema attribute is meant to be applied to value classes.
- This is an updated version of the schema format. The properties are now part of the schema. The schema attributes are designed to be checked in software rather than hard-coded. The schema attributes, themselves have properties.
-
+ This schema is released under the Creative Commons Attribution 4.0 International and is a product of the HED Working Group. The DOI for the latest version of the HED standard schema is 10.5281/zenodo.7876037.
diff --git a/tests/data/schema_tests/merge_tests/HED_score_1.0.0.mediawiki b/tests/data/schema_tests/merge_tests/HED_score_1.1.0.mediawiki
similarity index 83%
rename from tests/data/schema_tests/merge_tests/HED_score_1.0.0.mediawiki
rename to tests/data/schema_tests/merge_tests/HED_score_1.1.0.mediawiki
index 3d633fa40..79ebcf895 100644
--- a/tests/data/schema_tests/merge_tests/HED_score_1.0.0.mediawiki
+++ b/tests/data/schema_tests/merge_tests/HED_score_1.1.0.mediawiki
@@ -1,4 +1,4 @@
-HED library="score" version="1.0.0" withStandard="8.2.0" unmerged="true"
+HED library="score" version="1.1.0" withStandard="8.2.0" unmerged="true"
'''Prologue'''
This schema is a Hierarchical Event Descriptors (HED) Library Schema implementation of Standardized Computer-based Organized Reporting of EEG (SCORE)[1,2] for describing events occurring during neuroimaging time series recordings.
@@ -39,7 +39,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
*** # {takesValue, valueClass=textClass}[Free text.]
* Stimulation-modulator
- ** Intermittent-photic-stimulation {requireChild}
+ ** Intermittent-photic-stimulation {requireChild, suggestedTag=Intermittent-photic-stimulation-effect}
*** # {takesValue,valueClass=numericClass, unitClass=frequencyUnits}
** Auditory-stimulation
*** # {takesValue, valueClass=textClass}[Free text.]
@@ -58,15 +58,15 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
'''Background-activity''' {requireChild} [An EEG activity representing the setting in which a given normal or abnormal pattern appears and from which such pattern is distinguished.]
- * Posterior-dominant-rhythm {suggestedTag=Finding-significance-to-recording, suggestedTag=Finding-frequency, suggestedTag=Posterior-dominant-rhythm-amplitude-range, suggestedTag=Finding-amplitude-asymmetry, suggestedTag=Posterior-dominant-rhythm-frequency-asymmetry, suggestedTag=Posterior-dominant-rhythm-eye-opening-reactivity, suggestedTag=Posterior-dominant-rhythm-organization, suggestedTag=Posterior-dominant-rhythm-caveat, suggestedTag=Absence-of-posterior-dominant-rhythm}[Rhythmic activity occurring during wakefulness over the posterior regions of the head, generally with maximum amplitudes over the occipital areas. Amplitude varies. Best seen with eyes closed and during physical relaxation and relative mental inactivity. Blocked or attenuated by attention, especially visual, and mental effort. In adults this is the alpha rhythm, and the frequency is 8 to 13 Hz. However the frequency can be higher or lower than this range (often a supra or sub harmonic of alpha frequency) and is called alpha variant rhythm (fast and slow alpha variant rhythm). In children, the normal range of the frequency of the posterior dominant rhythm is age-dependant.]
+ * Posterior-dominant-rhythm {suggestedTag=Finding-significance-to-recording, suggestedTag=Finding-frequency, suggestedTag=Finding-amplitude-asymmetry, suggestedTag=Posterior-dominant-rhythm-property}[Rhythmic activity occurring during wakefulness over the posterior regions of the head, generally with maximum amplitudes over the occipital areas. Amplitude varies. Best seen with eyes closed and during physical relaxation and relative mental inactivity. Blocked or attenuated by attention, especially visual, and mental effort. In adults this is the alpha rhythm, and the frequency is 8 to 13 Hz. However the frequency can be higher or lower than this range (often a supra or sub harmonic of alpha frequency) and is called alpha variant rhythm (fast and slow alpha variant rhythm). In children, the normal range of the frequency of the posterior dominant rhythm is age-dependant.]
* Mu-rhythm {suggestedTag=Finding-frequency, suggestedTag=Finding-significance-to-recording, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors} [EEG rhythm at 7-11 Hz composed of arch-shaped waves occurring over the central or centro-parietal regions of the scalp during wakefulness. Amplitudes varies but is mostly below 50 microV. Blocked or attenuated most clearly by contralateral movement, thought of movement, readiness to move or tactile stimulation.]
- * Other-organized-rhythm {requireChild, suggestedTag=Delta-activity-morphology, suggestedTag=Theta-activity-morphology, suggestedTag=Alpha-activity-morphology, suggestedTag=Beta-activity-morphology, suggestedTag=Gamma-activity-morphology, suggestedTag=Finding-significance-to-recording, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [EEG activity that consisting of waves of approximately constant period, which is considered as part of the background (ongoing) activity, but does not fulfill the criteria of the posterior dominant rhythm.]
+ * Other-organized-rhythm {requireChild, suggestedTag=Rhythmic-activity-morphology, suggestedTag=Finding-significance-to-recording, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [EEG activity that consisting of waves of approximately constant period, which is considered as part of the background (ongoing) activity, but does not fulfill the criteria of the posterior dominant rhythm.]
** # {takesValue, valueClass=textClass}[Free text.]
* Background-activity-special-feature {requireChild} [Special Features. Special features contains scoring options for the background activity of critically ill patients.]
- ** Continuous-background-activity {suggestedTag=Delta-activity-morphology, suggestedTag=Theta-activity-morphology, suggestedTag=Alpha-activity-morphology, suggestedTag=Beta-activity-morphology, suggestedTag=Gamma-activity-morphology, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-extent}
- ** Nearly-continuous-background-activity {suggestedTag=Delta-activity-morphology, suggestedTag=Theta-activity-morphology, suggestedTag=Alpha-activity-morphology, suggestedTag=Beta-activity-morphology, suggestedTag=Gamma-activity-morphology, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-extent}
- ** Discontinuous-background-activity {suggestedTag=Delta-activity-morphology, suggestedTag=Theta-activity-morphology, suggestedTag=Alpha-activity-morphology, suggestedTag=Beta-activity-morphology, suggestedTag=Gamma-activity-morphology, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-extent}
+ ** Continuous-background-activity {suggestedTag=Rhythmic-activity-morphology, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-extent}
+ ** Nearly-continuous-background-activity {suggestedTag=Rhythmic-activity-morphology, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-extent}
+ ** Discontinuous-background-activity {suggestedTag=Rhythmic-activity-morphology, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-extent}
** Background-burst-suppression {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-extent}[EEG pattern consisting of bursts (activity appearing and disappearing abruptly) interrupted by periods of low amplitude (below 20 microV) and which occurs simultaneously over all head regions.]
** Background-burst-attenuation {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-extent}
** Background-activity-suppression {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-extent, suggestedTag=Appearance-mode} [Periods showing activity under 10 microV (referential montage) and interrupting the background (ongoing) activity.]
@@ -103,9 +103,9 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
'''Interictal-finding''' {requireChild} [EEG pattern / transient that is distinguished form the background activity, considered abnormal, but is not recorded during ictal period (seizure) or postictal period; the presence of an interictal finding does not necessarily imply that the patient has epilepsy.]
* Epileptiform-interictal-activity {suggestedTag=Spike-morphology, suggestedTag=Spike-and-slow-wave-morphology, suggestedTag=Runs-of-rapid-spikes-morphology, suggestedTag=Polyspikes-morphology, suggestedTag=Polyspike-and-slow-wave-morphology, suggestedTag=Sharp-wave-morphology, suggestedTag=Sharp-and-slow-wave-morphology, suggestedTag=Slow-sharp-wave-morphology, suggestedTag=High-frequency-oscillation-morphology, suggestedTag=Hypsarrhythmia-classic-morphology, suggestedTag=Hypsarrhythmia-modified-morphology, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-propagation, suggestedTag=Multifocal-finding, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, suggestedTag=Finding-incidence}
- * Abnormal-interictal-rhythmic-activity {suggestedTag=Delta-activity-morphology, suggestedTag=Theta-activity-morphology, suggestedTag=Alpha-activity-morphology, suggestedTag=Beta-activity-morphology, suggestedTag=Gamma-activity-morphology, suggestedTag=Polymorphic-delta-activity-morphology, suggestedTag=Frontal-intermittent-rhythmic-delta-activity-morphology, suggestedTag=Occipital-intermittent-rhythmic-delta-activity-morphology, suggestedTag=Temporal-intermittent-rhythmic-delta-activity-morphology, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, suggestedTag=Finding-incidence}
+ * Abnormal-interictal-rhythmic-activity {suggestedTag=Rhythmic-activity-morphology, suggestedTag=Polymorphic-delta-activity-morphology, suggestedTag=Frontal-intermittent-rhythmic-delta-activity-morphology, suggestedTag=Occipital-intermittent-rhythmic-delta-activity-morphology, suggestedTag=Temporal-intermittent-rhythmic-delta-activity-morphology, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, suggestedTag=Finding-incidence}
* Interictal-special-patterns {requireChild}
- ** Interictal-periodic-discharges {suggestedTag=Periodic-discharges-superimposed-activity, suggestedTag=Periodic-discharge-sharpness, suggestedTag=Number-of-periodic-discharge-phases, suggestedTag=Periodic-discharge-triphasic-morphology, suggestedTag=Periodic-discharge-absolute-amplitude, suggestedTag=Periodic-discharge-relative-amplitude, suggestedTag=Periodic-discharge-polarity, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Periodic-discharge-duration, suggestedTag=Periodic-discharge-onset, suggestedTag=Periodic-discharge-dynamics} [Periodic discharge not further specified (PDs).]
+ ** Interictal-periodic-discharges {suggestedTag=Periodic-discharge-morphology, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Periodic-discharge-time-related-features} [Periodic discharge not further specified (PDs).]
*** Generalized-periodic-discharges [GPDs.]
*** Lateralized-periodic-discharges [LPDs.]
*** Bilateral-independent-periodic-discharges [BIPDs.]
@@ -114,22 +114,22 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
'''Critically-ill-patients-patterns''' {requireChild} [Rhythmic or periodic patterns in critically ill patients (RPPs) are scored according to the 2012 version of the American Clinical Neurophysiology Society Standardized Critical Care EEG Terminology (Hirsch et al., 2013).]
- * Critically-ill-patients-periodic-discharges {suggestedTag=Periodic-discharges-superimposed-activity, suggestedTag=Periodic-discharge-sharpness, suggestedTag=Number-of-periodic-discharge-phases, suggestedTag=Periodic-discharge-triphasic-morphology, suggestedTag=Periodic-discharge-absolute-amplitude, suggestedTag=Periodic-discharge-relative-amplitude, suggestedTag=Periodic-discharge-polarity, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-frequency, suggestedTag=Periodic-discharge-duration, suggestedTag=Periodic-discharge-onset, suggestedTag=Periodic-discharge-dynamics} [Periodic discharges (PDs).]
- * Rhythmic-delta-activity {suggestedTag=Periodic-discharges-superimposed-activity, suggestedTag=Periodic-discharge-absolute-amplitude, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-frequency, suggestedTag=Periodic-discharge-duration, suggestedTag=Periodic-discharge-onset, suggestedTag=Periodic-discharge-dynamics} [RDA]
- * Spike-or-sharp-and-wave {suggestedTag=Periodic-discharge-sharpness, suggestedTag=Number-of-periodic-discharge-phases, suggestedTag=Periodic-discharge-triphasic-morphology, suggestedTag=Periodic-discharge-absolute-amplitude, suggestedTag=Periodic-discharge-relative-amplitude, suggestedTag=Periodic-discharge-polarity, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Multifocal-finding, suggestedTag=Finding-frequency, suggestedTag=Periodic-discharge-duration, suggestedTag=Periodic-discharge-onset, suggestedTag=Periodic-discharge-dynamics} [SW]
+ * Critically-ill-patients-periodic-discharges {suggestedTag=Periodic-discharge-morphology, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-frequency, suggestedTag=Periodic-discharge-time-related-features} [Periodic discharges (PDs).]
+ * Rhythmic-delta-activity {suggestedTag=Periodic-discharge-superimposed-activity, suggestedTag=Periodic-discharge-absolute-amplitude, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-frequency, suggestedTag=Periodic-discharge-time-related-features} [RDA]
+ * Spike-or-sharp-and-wave {suggestedTag=Periodic-discharge-sharpness, suggestedTag=Number-of-periodic-discharge-phases, suggestedTag=Periodic-discharge-triphasic-morphology, suggestedTag=Periodic-discharge-absolute-amplitude, suggestedTag=Periodic-discharge-relative-amplitude, suggestedTag=Periodic-discharge-polarity, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Multifocal-finding, suggestedTag=Finding-frequency, suggestedTag=Periodic-discharge-time-related-features} [SW]
'''Episode''' {requireChild} [Clinical episode or electrographic seizure.]
- * Epileptic-seizure {requireChild}
- ** Focal-onset-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting}
- *** Aware-focal-onset-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Seizure-classification, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting}
- *** Impaired-awareness-focal-onset-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Seizure-classification, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting}
- *** Awareness-unknown-focal-onset-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Seizure-classification, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting}
- *** Focal-to-bilateral-tonic-clonic-focal-onset-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting}
- ** Generalized-onset-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Seizure-classification, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting}
- ** Unknown-onset-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Seizure-classification, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting}
- ** Unclassified-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting}
+ * Epileptic-seizure {requireChild} [The ILAE presented a revised seizure classification that divides seizures into focal, generalized onset, or unknown onset.]
+ ** Focal-onset-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Automatism-motor-seizure, suggestedTag=Atonic-motor-seizure, suggestedTag=Clonic-motor-seizure, suggestedTag=Epileptic-spasm-episode, suggestedTag=Hyperkinetic-motor-seizure, suggestedTag=Myoclonic-motor-seizure, suggestedTag=Tonic-motor-seizure, suggestedTag=Autonomic-nonmotor-seizure, suggestedTag=Behavior-arrest-nonmotor-seizure, suggestedTag=Cognitive-nonmotor-seizure, suggestedTag=Emotional-nonmotor-seizure, suggestedTag=Sensory-nonmotor-seizure, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting}[Focal seizures can be divided into focal aware and impaired awareness seizures, with additional motor and nonmotor classifications.]
+ *** Aware-focal-onset-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting}
+ *** Impaired-awareness-focal-onset-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting}
+ *** Awareness-unknown-focal-onset-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting}
+ *** Focal-to-bilateral-tonic-clonic-focal-onset-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting} [A seizure type with focal onset, with awareness or impaired awareness, either motor or non-motor, progressing to bilateral tonic clonic activity. The prior term was seizure with partial onset with secondary generalization. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ ** Generalized-onset-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Tonic-clonic-motor-seizure, suggestedTag=Clonic-motor-seizure, suggestedTag=Tonic-motor-seizure, suggestedTag=Myoclonic-motor-seizure, suggestedTag=Myoclonic-tonic-clonic-motor-seizure, suggestedTag=Myoclonic-atonic-motor-seizure, suggestedTag=Atonic-motor-seizure, suggestedTag=Epileptic-spasm-episode, suggestedTag=Typical-absence-seizure, suggestedTag=Atypical-absence-seizure, suggestedTag=Myoclonic-absence-seizure, suggestedTag=Eyelid-myoclonia-absence-seizure, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting}[Generalized-onset seizures are classified as motor or nonmotor (absence), without using awareness level as a classifier, as most but not all of these seizures are linked with impaired awareness.]
+ ** Unknown-onset-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Tonic-clonic-motor-seizure, suggestedTag=Epileptic-spasm-episode, suggestedTag=Behavior-arrest-nonmotor-seizure, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting}[Even if the onset of seizures is unknown, they may exhibit characteristics that fall into categories such as motor, nonmotor, tonic-clonic, epileptic spasms, or behavior arrest.]
+ ** Unclassified-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting}[Referring to a seizure type that cannot be described by the ILAE 2017 classification either because of inadequate information or unusual clinical features.]
* Subtle-seizure {suggestedTag=Episode-phase, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting} [Seizure type frequent in neonates, sometimes referred to as motor automatisms; they may include random and roving eye movements, sucking, chewing motions, tongue protrusion, rowing or swimming or boxing movements of the arms, pedaling and bicycling movements of the lower limbs; apneic seizures are relatively common. Although some subtle seizures are associated with rhythmic ictal EEG discharges, and are clearly epileptic, ictal EEG often does not show typical epileptic activity.]
* Electrographic-seizure {suggestedTag=Episode-phase, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting} [Referred usually to non convulsive status. Ictal EEG: rhythmic discharge or spike and wave pattern with definite evolution in frequency, location, or morphology lasting at least 10 s; evolution in amplitude alone did not qualify.]
* Seizure-PNES {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting} [Psychogenic non-epileptic seizure.]
@@ -154,7 +154,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
'''Physiologic-pattern''' {requireChild} [EEG graphoelements or rhythms that are considered normal. They only should be scored if the physician considers that they have a specific clinical significance for the recording.]
- * Rhythmic-activity-pattern {suggestedTag=Delta-activity-morphology, suggestedTag=Theta-activity-morphology, suggestedTag=Alpha-activity-morphology, suggestedTag=Beta-activity-morphology, suggestedTag=Gamma-activity-morphology, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [Not further specified.]
+ * Rhythmic-activity-pattern {suggestedTag=Rhythmic-activity-morphology, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [Not further specified.]
* Slow-alpha-variant-rhythm {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [Characteristic rhythms mostly at 4-5 Hz, recorded most prominently over the posterior regions of the head. Generally alternate, or are intermixed, with alpha rhythm to which they often are harmonically related. Amplitude varies but is frequently close to 50 micro V. Blocked or attenuated by attention, especially visual, and mental effort. Comment: slow alpha variant rhythms should be distinguished from posterior slow waves characteristic of children and adolescents and occasionally seen in young adults.]
* Fast-alpha-variant-rhythm {suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [Characteristic rhythm at 14-20 Hz, detected most prominently over the posterior regions of the head. May alternate or be intermixed with alpha rhythm. Blocked or attenuated by attention, especially visual, and mental effort.]
* Ciganek-rhythm {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [Midline theta rhythm (Ciganek rhythm) may be observed during wakefulness or drowsiness. The frequency is 4-7 Hz, and the location is midline (ie, vertex). The morphology is rhythmic, smooth, sinusoidal, arciform, spiky, or mu-like.]
@@ -359,11 +359,11 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
** Temporal-intermittent-rhythmic-delta-activity-morphology [Temporal intermittent rhythmic delta activity (TIRDA). Fairly regular or approximately sinusoidal waves, mostly occurring in bursts at over the temporal areas of one side of the head. Comment: most commonly associated with temporal lobe epilepsy.]
*** # {takesValue, valueClass=textClass}[Free text.]
- ** Periodic-discharges-morphology {requireChild} [Periodic discharges not further specified (PDs).]
- *** Periodic-discharges-superimposed-activity {requireChild, suggestedTag=Property-not-possible-to-determine}
- **** Periodic-discharges-fast-superimposed-activity {suggestedTag=Finding-frequency}
+ ** Periodic-discharge-morphology {requireChild} [Periodic discharges not further specified (PDs).]
+ *** Periodic-discharge-superimposed-activity {requireChild, suggestedTag=Property-not-possible-to-determine}
+ **** Periodic-discharge-fast-superimposed-activity {suggestedTag=Finding-frequency}
***** # {takesValue, valueClass=textClass}[Free text.]
- **** Periodic-discharges-rhythmic-superimposed-activity {suggestedTag=Finding-frequency}
+ **** Periodic-discharge-rhythmic-superimposed-activity {suggestedTag=Finding-frequency}
***** # {takesValue, valueClass=textClass}[Free text.]
*** Periodic-discharge-sharpness {requireChild, suggestedTag=Property-not-possible-to-determine}
@@ -465,19 +465,19 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
*** Brain-region-occipital
**** # {takesValue, valueClass=textClass}[Free text.]
** Body-part-location {requireChild}
- *** Body-part-eyelid
+ *** Eyelid-location
**** # {takesValue, valueClass=textClass}[Free text.]
- *** Body-part-face
+ *** Face-location
**** # {takesValue, valueClass=textClass}[Free text.]
- *** Body-part-arm
+ *** Arm-location
**** # {takesValue, valueClass=textClass}[Free text.]
- *** Body-part-leg
+ *** Leg-location
**** # {takesValue, valueClass=textClass}[Free text.]
- *** Body-part-trunk
+ *** Trunk-location
**** # {takesValue, valueClass=textClass}[Free text.]
- *** Body-part-visceral
+ *** Visceral-location
**** # {takesValue, valueClass=textClass}[Free text.]
- *** Body-part-hemi
+ *** Hemi-location
**** # {takesValue, valueClass=textClass}[Free text.]
** Brain-centricity {requireChild}
*** Brain-centricity-axial
@@ -701,54 +701,66 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
**** # {takesValue, valueClass=textClass}[Free text.]
* Episode-property {requireChild}
- ** Seizure-classification {requireChild} [Epileptic seizures are named using the current ILAE seizure classification (Fisher et al., 2017, Beniczky et al., 2017).]
- *** Motor-onset-seizure
- **** Myoclonic-motor-onset-seizure
- **** Negative-myoclonic-motor-onset-seizure
- **** Clonic-motor-onset-seizure
- **** Tonic-motor-onset-seizure
- **** Atonic-motor-onset-seizure
- **** Myoclonic-atonic-motor-onset-seizure
- **** Myoclonic-tonic-clonic-motor-onset-seizure
- **** Tonic-clonic-motor-onset-seizure
- **** Automatism-motor-onset-seizure
- **** Hyperkinetic-motor-onset-seizure
- **** Epileptic-spasm-episode
- *** Nonmotor-onset-seizure
- **** Behavior-arrest-nonmotor-onset-seizure
- **** Sensory-nonmotor-onset-seizure
- **** Emotional-nonmotor-onset-seizure
- **** Cognitive-nonmotor-onset-seizure
- **** Autonomic-nonmotor-onset-seizure
- *** Absence-seizure
- **** Typical-absence-seizure
- **** Atypical-absence-seizure
- **** Myoclonic-absence-seizure
- **** Eyelid-myoclonia-absence-seizure
+ ** Seizure-classification {requireChild} [Seizure classification refers to the grouping of seizures based on their clinical features, EEG patterns, and other characteristics. Epileptic seizures are named using the current ILAE seizure classification (Fisher et al., 2017, Beniczky et al., 2017).]
+ *** Motor-seizure [Involves musculature in any form. The motor event could consist of an increase (positive) or decrease (negative) in muscle contraction to produce a movement. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ *** Motor-onset-seizure {deprecatedFrom=1.0.0}
+ **** Myoclonic-motor-seizure [Sudden, brief ( lower than 100 msec) involuntary single or multiple contraction(s) of muscles(s) or muscle groups of variable topography (axial, proximal limb, distal). Myoclonus is less regularly repetitive and less sustained than is clonus. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Myoclonic-motor-onset-seizure {deprecatedFrom=1.0.0}
+ **** Negative-myoclonic-motor-seizure
+ **** Negative-myoclonic-motor-onset-seizure {deprecatedFrom=1.0.0}
+
+ **** Clonic-motor-seizure [Jerking, either symmetric or asymmetric, that is regularly repetitive and involves the same muscle groups. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Clonic-motor-onset-seizure {deprecatedFrom=1.0.0}
+ **** Tonic-motor-seizure [A sustained increase in muscle contraction lasting a few seconds to minutes. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Tonic-motor-onset-seizure {deprecatedFrom=1.0.0}
+ **** Atonic-motor-seizure [Sudden loss or diminution of muscle tone without apparent preceding myoclonic or tonic event lasting about 1 to 2 s, involving head, trunk, jaw, or limb musculature. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Atonic-motor-onset-seizure {deprecatedFrom=1.0.0}
+ **** Myoclonic-atonic-motor-seizure [A generalized seizure type with a myoclonic jerk leading to an atonic motor component. This type was previously called myoclonic astatic. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Myoclonic-atonic-motor-onset-seizure {deprecatedFrom=1.0.0}
+ **** Myoclonic-tonic-clonic-motor-seizure [One or a few jerks of limbs bilaterally, followed by a tonic clonic seizure. The initial jerks can be considered to be either a brief period of clonus or myoclonus. Seizures with this characteristic are common in juvenile myoclonic epilepsy. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Myoclonic-tonic-clonic-motor-onset-seizure {deprecatedFrom=1.0.0}
+ **** Tonic-clonic-motor-seizure [A sequence consisting of a tonic followed by a clonic phase. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Tonic-clonic-motor-onset-seizure {deprecatedFrom=1.0.0}
+ **** Automatism-motor-seizure [A more or less coordinated motor activity usually occurring when cognition is impaired and for which the subject is usually (but not always) amnesic afterward. This often resembles a voluntary movement and may consist of an inappropriate continuation of preictal motor activity. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Automatism-motor-onset-seizure {deprecatedFrom=1.0.0}
+ **** Hyperkinetic-motor-seizure
+ **** Hyperkinetic-motor-onset-seizure {deprecatedFrom=1.0.0}
+ **** Epileptic-spasm-episode [A sudden flexion, extension, or mixed extension flexion of predominantly proximal and truncal muscles that is usually more sustained than a myoclonic movement but not as sustained as a tonic seizure. Limited forms may occur: Grimacing, head nodding, or subtle eye movements. Epileptic spasms frequently occur in clusters. Infantile spasms are the best known form, but spasms can occur at all ages. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ *** Nonmotor-seizure [Focal or generalized seizure types in which motor activity is not prominent. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Behavior-arrest-nonmotor-seizure [Arrest (pause) of activities, freezing, immobilization, as in behavior arrest seizure. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Sensory-nonmotor-seizure [A perceptual experience not caused by appropriate stimuli in the external world. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Emotional-nonmotor-seizure [Seizures presenting with an emotion or the appearance of having an emotion as an early prominent feature, such as fear, spontaneous joy or euphoria, laughing (gelastic), or crying (dacrystic). Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Cognitive-nonmotor-seizure [Pertaining to thinking and higher cortical functions, such as language, spatial perception, memory, and praxis. The previous term for similar usage as a seizure type was psychic. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Autonomic-nonmotor-seizure [A distinct alteration of autonomic nervous system function involving cardiovascular, pupillary, gastrointestinal, sudomotor, vasomotor, and thermoregulatory functions. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ *** Absence-seizure [Absence seizures present with a sudden cessation of activity and awareness. Absence seizures tend to occur in younger age groups, have more sudden start and termination, and they usually display less complex automatisms than do focal seizures with impaired awareness, but the distinctions are not absolute. EEG information may be required for accurate classification. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Typical-absence-seizure [A sudden onset, interruption of ongoing activities, a blank stare, possibly a brief upward deviation of the eyes. Usually the patient will be unresponsive when spoken to. Duration is a few seconds to half a minute with very rapid recovery. Although not always available, an EEG would show generalized epileptiform discharges during the event. An absence seizure is by definition a seizure of generalized onset. The word is not synonymous with a blank stare, which also can be encountered with focal onset seizures. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Atypical-absence-seizure [An absence seizure with changes in tone that are more pronounced than in typical absence or the onset and/or cessation is not abrupt, often associated with slow, irregular, generalized spike-wave activity. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Myoclonic-absence-seizure [A myoclonic absence seizure refers to an absence seizure with rhythmic three-per-second myoclonic movements, causing ratcheting abduction of the upper limbs leading to progressive arm elevation, and associated with three-per-second generalized spike-wave discharges. Duration is typically 10 to 60 s. Impairment of consciousness may not be obvious. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Eyelid-myoclonia-absence-seizure [Eyelid myoclonia are myoclonic jerks of the eyelids and upward deviation of the eyes, often precipitated by closing the eyes or by light. Eyelid myoclonia can be associated with absences, but also can be motor seizures without a corresponding absence, making them difficult to categorize. The 2017 classification groups them with nonmotor (absence) seizures, which may seem counterintuitive, but the myoclonia in this instance is meant to link with absence, rather than with nonmotor. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
** Episode-phase {requireChild, suggestedTag=Seizure-semiology-manifestation,suggestedTag=Postictal-semiology-manifestation,suggestedTag=Ictal-EEG-patterns} [The electroclinical findings (i.e., the seizure semiology and the ictal EEG) are divided in three phases: onset, propagation, and postictal.]
*** Episode-phase-initial
*** Episode-phase-subsequent
*** Episode-phase-postictal
- ** Seizure-semiology-manifestation {requireChild} [Semiology is described according to the ILAE Glossary of Descriptive Terminology for Ictal Semiology (Blume et al., 2001). Besides the name, the semiologic finding can also be characterized by the somatotopic modifier, laterality, body part and centricity. Uses Location-property tags.]
+ ** Seizure-semiology-manifestation {requireChild} [Seizure semiology refers to the clinical features or signs that are observed during a seizure, such as the type of movements or behaviors exhibited by the person having the seizure, the duration of the seizure, the level of consciousness, and any associated symptoms such as aura or postictal confusion. In other words, seizure semiology describes the physical manifestations of a seizure. Semiology is described according to the ILAE Glossary of Descriptive Terminology for Ictal Semiology (Blume et al., 2001). Besides the name, the semiologic finding can also be characterized by the somatotopic modifier, laterality, body part and centricity. Uses Location-property tags.]
*** Semiology-motor-manifestation
**** Semiology-elementary-motor
- ***** Semiology-motor-tonic {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [A sustained increase in muscle contraction lasting a few seconds to minutes.]
- ***** Semiology-motor-dystonic {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Sustained contractions of both agonist and antagonist muscles producing athetoid or twisting movements, which, when prolonged, may produce abnormal postures.]
- ***** Semiology-motor-epileptic-spasm {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [A sudden flexion, extension, or mixed extension flexion of predominantly proximal and truncal muscles that is usually more sustained than a myoclonic movement but not so sustained as a tonic seizure (i.e., about 1 s). Limited forms may occur: grimacing, head nodding. Frequent occurrence in clusters.]
- ***** Semiology-motor-postural {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Adoption of a posture that may be bilaterally symmetric or asymmetric (as in a fencing posture).]
- ***** Semiology-motor-versive {suggestedTag=Body-part, suggestedTag=Episode-event-count} [A sustained, forced conjugate ocular, cephalic, and/or truncal rotation or lateral deviation from the midline.]
- ***** Semiology-motor-clonic {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Myoclonus that is regularly repetitive, involves the same muscle groups, at a frequency of about 2 to 3 c/s, and is prolonged. Synonym: rhythmic myoclonus .]
- ***** Semiology-motor-myoclonic {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Characterized by myoclonus. MYOCLONUS : sudden, brief (lower than 100 ms) involuntary single or multiple contraction(s) of muscles(s) or muscle groups of variable topography (axial, proximal limb, distal).]
- ***** Semiology-motor-jacksonian-march {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Term indicating spread of clonic movements through contiguous body parts unilaterally.]
- ***** Semiology-motor-negative-myoclonus {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Characterized by negative myoclonus. NEGATIVE MYOCLONUS: interruption of tonic muscular activity for lower than 500 ms without evidence of preceding myoclonia.]
+ ***** Semiology-motor-tonic {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [A sustained increase in muscle contraction lasting a few seconds to minutes.]
+ ***** Semiology-motor-dystonic {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Sustained contractions of both agonist and antagonist muscles producing athetoid or twisting movements, which, when prolonged, may produce abnormal postures.]
+ ***** Semiology-motor-epileptic-spasm {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [A sudden flexion, extension, or mixed extension flexion of predominantly proximal and truncal muscles that is usually more sustained than a myoclonic movement but not so sustained as a tonic seizure (i.e., about 1 s). Limited forms may occur: grimacing, head nodding. Frequent occurrence in clusters.]
+ ***** Semiology-motor-postural {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Adoption of a posture that may be bilaterally symmetric or asymmetric (as in a fencing posture).]
+ ***** Semiology-motor-versive {suggestedTag=Body-part-location, suggestedTag=Episode-event-count} [A sustained, forced conjugate ocular, cephalic, and/or truncal rotation or lateral deviation from the midline.]
+ ***** Semiology-motor-clonic {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Myoclonus that is regularly repetitive, involves the same muscle groups, at a frequency of about 2 to 3 c/s, and is prolonged. Synonym: rhythmic myoclonus .]
+ ***** Semiology-motor-myoclonic {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Characterized by myoclonus. MYOCLONUS : sudden, brief (lower than 100 ms) involuntary single or multiple contraction(s) of muscles(s) or muscle groups of variable topography (axial, proximal limb, distal).]
+ ***** Semiology-motor-jacksonian-march {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Term indicating spread of clonic movements through contiguous body parts unilaterally.]
+ ***** Semiology-motor-negative-myoclonus {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Characterized by negative myoclonus. NEGATIVE MYOCLONUS: interruption of tonic muscular activity for lower than 500 ms without evidence of preceding myoclonia.]
***** Semiology-motor-tonic-clonic {requireChild} [A sequence consisting of a tonic followed by a clonic phase. Variants such as clonic-tonic-clonic may be seen. Asymmetry of limb posture during the tonic phase of a GTC: one arm is rigidly extended at the elbow (often with the fist clenched tightly and flexed at the wrist), whereas the opposite arm is flexed at the elbow.]
- ****** Semiology-motor-tonic-clonic-without-figure-of-four {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count}
- ****** Semiology-motor-tonic-clonic-with-figure-of-four-extension-left-elbow {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count}
- ****** Semiology-motor-tonic-clonic-with-figure-of-four-extension-right-elbow {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count}
- ***** Semiology-motor-astatic {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Loss of erect posture that results from an atonic, myoclonic, or tonic mechanism. Synonym: drop attack.]
- ***** Semiology-motor-atonic {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Sudden loss or diminution of muscle tone without apparent preceding myoclonic or tonic event lasting greater or equal to 1 to 2 s, involving head, trunk, jaw, or limb musculature.]
+ ****** Semiology-motor-tonic-clonic-without-figure-of-four {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count}
+ ****** Semiology-motor-tonic-clonic-with-figure-of-four-extension-left-elbow {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count}
+ ****** Semiology-motor-tonic-clonic-with-figure-of-four-extension-right-elbow {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count}
+ ***** Semiology-motor-astatic {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Loss of erect posture that results from an atonic, myoclonic, or tonic mechanism. Synonym: drop attack.]
+ ***** Semiology-motor-atonic {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Sudden loss or diminution of muscle tone without apparent preceding myoclonic or tonic event lasting greater or equal to 1 to 2 s, involving head, trunk, jaw, or limb musculature.]
***** Semiology-motor-eye-blinking {suggestedTag=Brain-laterality, suggestedTag=Episode-event-count}
***** Semiology-motor-other-elementary-motor {requireChild}
****** # {takesValue, valueClass=textClass}[Free text.]
@@ -756,26 +768,26 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
***** Semiology-motor-automatisms-mimetic {suggestedTag=Episode-responsiveness, suggestedTag=Episode-appearance, suggestedTag=Episode-event-count} [Facial expression suggesting an emotional state, often fear.]
***** Semiology-motor-automatisms-oroalimentary {suggestedTag=Episode-responsiveness, suggestedTag=Episode-appearance, suggestedTag=Episode-event-count} [Lip smacking, lip pursing, chewing, licking, tooth grinding, or swallowing.]
***** Semiology-motor-automatisms-dacrystic {suggestedTag=Episode-responsiveness, suggestedTag=Episode-appearance, suggestedTag=Episode-event-count} [Bursts of crying.]
- ***** Semiology-motor-automatisms-dyspraxic {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-responsiveness, suggestedTag=Episode-appearance, suggestedTag=Episode-event-count} [Inability to perform learned movements spontaneously or on command or imitation despite intact relevant motor and sensory systems and adequate comprehension and cooperation.]
+ ***** Semiology-motor-automatisms-dyspraxic {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-responsiveness, suggestedTag=Episode-appearance, suggestedTag=Episode-event-count} [Inability to perform learned movements spontaneously or on command or imitation despite intact relevant motor and sensory systems and adequate comprehension and cooperation.]
***** Semiology-motor-automatisms-manual {suggestedTag=Brain-laterality, suggestedTag=Brain-centricity, suggestedTag=Episode-responsiveness, suggestedTag=Episode-appearance, suggestedTag=Episode-event-count} [1. Indicates principally distal components, bilateral or unilateral. 2. Fumbling, tapping, manipulating movements.]
***** Semiology-motor-automatisms-gestural {suggestedTag=Brain-laterality, suggestedTag=Episode-responsiveness, suggestedTag=Episode-appearance, suggestedTag=Episode-event-count} [Semipurposive, asynchronous hand movements. Often unilateral.]
***** Semiology-motor-automatisms-pedal {suggestedTag=Brain-laterality, suggestedTag=Brain-centricity, suggestedTag=Episode-responsiveness, suggestedTag=Episode-appearance, suggestedTag=Episode-event-count} [1. Indicates principally distal components, bilateral or unilateral. 2. Fumbling, tapping, manipulating movements.]
- ***** Semiology-motor-automatisms-hypermotor {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-responsiveness, suggestedTag=Episode-appearance, suggestedTag=Episode-event-count} [1. Involves predominantly proximal limb or axial muscles producing irregular sequential ballistic movements, such as pedaling, pelvic thrusting, thrashing, rocking movements. 2. Increase in rate of ongoing movements or inappropriately rapid performance of a movement.]
- ***** Semiology-motor-automatisms-hypokinetic {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-responsiveness, suggestedTag=Episode-appearance, suggestedTag=Episode-event-count} [A decrease in amplitude and/or rate or arrest of ongoing motor activity.]
+ ***** Semiology-motor-automatisms-hypermotor {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-responsiveness, suggestedTag=Episode-appearance, suggestedTag=Episode-event-count} [1. Involves predominantly proximal limb or axial muscles producing irregular sequential ballistic movements, such as pedaling, pelvic thrusting, thrashing, rocking movements. 2. Increase in rate of ongoing movements or inappropriately rapid performance of a movement.]
+ ***** Semiology-motor-automatisms-hypokinetic {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-responsiveness, suggestedTag=Episode-appearance, suggestedTag=Episode-event-count} [A decrease in amplitude and/or rate or arrest of ongoing motor activity.]
***** Semiology-motor-automatisms-gelastic {suggestedTag=Episode-responsiveness, suggestedTag=Episode-appearance, suggestedTag=Episode-event-count} [Bursts of laughter or giggling, usually without an appropriate affective tone.]
***** Semiology-motor-other-automatisms {requireChild}
****** # {takesValue, valueClass=textClass}[Free text.]
- **** Semiology-motor-behavioral-arrest {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Interruption of ongoing motor activity or of ongoing behaviors with fixed gaze, without movement of the head or trunk (oro-alimentary and hand automatisms may continue).]
+ **** Semiology-motor-behavioral-arrest {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Interruption of ongoing motor activity or of ongoing behaviors with fixed gaze, without movement of the head or trunk (oro-alimentary and hand automatisms may continue).]
*** Semiology-non-motor-manifestation
**** Semiology-sensory
***** Semiology-sensory-headache {suggestedTag=Brain-laterality, suggestedTag=Episode-event-count} [Headache occurring in close temporal proximity to the seizure or as the sole seizure manifestation.]
***** Semiology-sensory-visual {suggestedTag=Brain-laterality, suggestedTag=Episode-event-count} [Flashing or flickering lights, spots, simple patterns, scotomata, or amaurosis.]
***** Semiology-sensory-auditory {suggestedTag=Brain-laterality, suggestedTag=Episode-event-count} [Buzzing, drumming sounds or single tones.]
- ***** Semiology-sensory-olfactory {suggestedTag=Body-part, suggestedTag=Episode-event-count}
+ ***** Semiology-sensory-olfactory {suggestedTag=Body-part-location, suggestedTag=Episode-event-count}
***** Semiology-sensory-gustatory {suggestedTag=Episode-event-count} [Taste sensations including acidic, bitter, salty, sweet, or metallic.]
***** Semiology-sensory-epigastric {suggestedTag=Episode-event-count} [Abdominal discomfort including nausea, emptiness, tightness, churning, butterflies, malaise, pain, and hunger; sensation may rise to chest or throat. Some phenomena may reflect ictal autonomic dysfunction.]
- ***** Semiology-sensory-somatosensory {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Tingling, numbness, electric-shock sensation, sense of movement or desire to move.]
- ***** Semiology-sensory-painful {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Peripheral (lateralized/bilateral), cephalic, abdominal.]
+ ***** Semiology-sensory-somatosensory {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Tingling, numbness, electric-shock sensation, sense of movement or desire to move.]
+ ***** Semiology-sensory-painful {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Peripheral (lateralized/bilateral), cephalic, abdominal.]
***** Semiology-sensory-autonomic-sensation {suggestedTag=Episode-event-count} [A sensation consistent with involvement of the autonomic nervous system, including cardiovascular, gastrointestinal, sudomotor, vasomotor, and thermoregulatory functions. (Thus autonomic aura; cf. autonomic events 3.0).]
***** Semiology-sensory-other {requireChild}
****** # {takesValue, valueClass=textClass}[Free text.]
@@ -824,7 +836,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
*** Postictal-semiology-nose-wiping {suggestedTag=Brain-laterality, suggestedTag=Episode-event-count} [Noes-wiping usually within 60 sec of seizure offset, usually with the hand ipsilateral to the seizure onset.]
*** Postictal-semiology-anterograde-amnesia {suggestedTag=Episode-event-count} [Impaired ability to remember new material.]
*** Postictal-semiology-retrograde-amnesia {suggestedTag=Episode-event-count} [Impaired ability to recall previously remember material.]
- *** Postictal-semiology-paresis {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Todds palsy. Any unilateral postictal dysfunction relating to motor, language, sensory and/or integrative functions.]
+ *** Postictal-semiology-paresis {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Todds palsy. Any unilateral postictal dysfunction relating to motor, language, sensory and/or integrative functions.]
*** Postictal-semiology-sleep [Invincible need to sleep after a seizure.]
*** Postictal-semiology-unilateral-myoclonic-jerks [unilateral motor phenomena, other then specified, occurring in postictal phase.]
*** Postictal-semiology-other-unilateral-motor-phenomena {requireChild}
@@ -838,7 +850,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
*** Ictal-EEG-patterns-obscured-by-artifacts [The interpretation of the EEG is not possible due to artifacts.]
**** # {takesValue, valueClass=textClass}[Free text.]
*** Ictal-EEG-activity {suggestedTag=Polyspikes-morphology, suggestedTag=Fast-spike-activity-morphology, suggestedTag=Low-voltage-fast-activity-morphology, suggestedTag=Polysharp-waves-morphology, suggestedTag=Spike-and-slow-wave-morphology, suggestedTag=Polyspike-and-slow-wave-morphology, suggestedTag=Sharp-and-slow-wave-morphology, suggestedTag=Rhythmic-activity-morphology, suggestedTag=Slow-wave-large-amplitude-morphology, suggestedTag=Irregular-delta-or-theta-activity-morphology, suggestedTag=Electrodecremental-change-morphology, suggestedTag=DC-shift-morphology, suggestedTag=Disappearance-of-ongoing-activity-morphology, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Source-analysis-laterality, suggestedTag=Source-analysis-brain-region,suggestedTag=Episode-event-count}
- *** Postictal-EEG-activity {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity}
+ *** Postictal-EEG-activity {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity}
** Episode-time-context-property [Additional clinically relevant features related to episodes can be scored under timing and context. If needed, episode duration can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Temporal-value/Duration.]
*** Episode-consciousness {requireChild, suggestedTag=Property-not-possible-to-determine}
@@ -922,7 +934,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
** Finding-frequency [Value in Hz (number) typed in.]
*** # {takesValue, valueClass=numericClass, unitClass=frequencyUnits}
-
+
** Finding-amplitude [Value in microvolts (number) typed in.]
*** # {takesValue, valueClass=numericClass, unitClass=electricPotentialUnits}
@@ -953,7 +965,15 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
!# end schema
+'''Unit classes''' [Unit classes and the units for the nodes.]
+
+'''Unit modifiers''' [Unit multiples and submultiples.]
+
+'''Value classes''' [Specification of the rules for the values provided by users.]
+
+'''Schema attributes''' [Allowed node, unit class or unit modifier attributes.]
+'''Properties''' [Properties of the schema attributes themselves. These are used for schema handling and verification.]
'''Epilogue'''
The Standardized Computer-based Organized Reporting of EEG (SCORE) is a standard terminology for scalp EEG data assessment designed for use in clinical practice that may also be used for research purposes.
@@ -964,6 +984,6 @@ A second revised and extended version of SCORE achieved international consensus.
[1] Beniczky, Sandor, et al. "Standardized computer based organized reporting of EEG: SCORE." Epilepsia 54.6 (2013).
[2] Beniczky, Sandor, et al. "Standardized computer based organized reporting of EEG: SCORE second version." Clinical Neurophysiology 128.11 (2017).
-TPA, November 2022
+TPA, March 2023
!# end hed
diff --git a/tests/data/schema_tests/merge_tests/HED_score_lib_tags.mediawiki b/tests/data/schema_tests/merge_tests/HED_score_lib_tags.mediawiki
index b754ef5cf..619933408 100644
--- a/tests/data/schema_tests/merge_tests/HED_score_lib_tags.mediawiki
+++ b/tests/data/schema_tests/merge_tests/HED_score_lib_tags.mediawiki
@@ -1,4 +1,4 @@
-HED version="1.0.0" library="score" withStandard="8.2.0" unmerged="True"
+HED version="1.1.0" library="score" withStandard="8.2.0" unmerged="True"
'''Prologue'''
This schema is a Hierarchical Event Descriptors (HED) Library Schema implementation of Standardized Computer-based Organized Reporting of EEG (SCORE)[1,2] for describing events occurring during neuroimaging time series recordings.
@@ -35,7 +35,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
** Manual-eye-opening
*** # {takesValue, valueClass=textClass} [Free text.]
* Stimulation-modulator
- ** Intermittent-photic-stimulation {requireChild}
+ ** Intermittent-photic-stimulation {requireChild, suggestedTag=Intermittent-photic-stimulation-effect}
*** # {takesValue, valueClass=numericClass, unitClass=frequencyUnits}
** Auditory-stimulation
*** # {takesValue, valueClass=textClass} [Free text.]
@@ -51,118 +51,19 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
** # {takesValue, valueClass=textClass} [Free text.]
'''Background-activity''' {requireChild} [An EEG activity representing the setting in which a given normal or abnormal pattern appears and from which such pattern is distinguished.]
- * Posterior-dominant-rhythm {suggestedTag=Finding-significance-to-recording, suggestedTag=Finding-frequency, suggestedTag=Posterior-dominant-rhythm-amplitude-range, suggestedTag=Finding-amplitude-asymmetry, suggestedTag=Posterior-dominant-rhythm-frequency-asymmetry, suggestedTag=Posterior-dominant-rhythm-eye-opening-reactivity, suggestedTag=Posterior-dominant-rhythm-organization, suggestedTag=Posterior-dominant-rhythm-caveat, suggestedTag=Absence-of-posterior-dominant-rhythm} [Rhythmic activity occurring during wakefulness over the posterior regions of the head, generally with maximum amplitudes over the occipital areas. Amplitude varies. Best seen with eyes closed and during physical relaxation and relative mental inactivity. Blocked or attenuated by attention, especially visual, and mental effort. In adults this is the alpha rhythm, and the frequency is 8 to 13 Hz. However the frequency can be higher or lower than this range (often a supra or sub harmonic of alpha frequency) and is called alpha variant rhythm (fast and slow alpha variant rhythm). In children, the normal range of the frequency of the posterior dominant rhythm is age-dependant.]
+ * Posterior-dominant-rhythm {suggestedTag=Finding-significance-to-recording, suggestedTag=Finding-frequency, suggestedTag=Finding-amplitude-asymmetry, suggestedTag=Posterior-dominant-rhythm-property} [Rhythmic activity occurring during wakefulness over the posterior regions of the head, generally with maximum amplitudes over the occipital areas. Amplitude varies. Best seen with eyes closed and during physical relaxation and relative mental inactivity. Blocked or attenuated by attention, especially visual, and mental effort. In adults this is the alpha rhythm, and the frequency is 8 to 13 Hz. However the frequency can be higher or lower than this range (often a supra or sub harmonic of alpha frequency) and is called alpha variant rhythm (fast and slow alpha variant rhythm). In children, the normal range of the frequency of the posterior dominant rhythm is age-dependant.]
* Mu-rhythm {suggestedTag=Finding-frequency, suggestedTag=Finding-significance-to-recording, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors} [EEG rhythm at 7-11 Hz composed of arch-shaped waves occurring over the central or centro-parietal regions of the scalp during wakefulness. Amplitudes varies but is mostly below 50 microV. Blocked or attenuated most clearly by contralateral movement, thought of movement, readiness to move or tactile stimulation.]
- * Other-organized-rhythm {requireChild, suggestedTag=Delta-activity-morphology, suggestedTag=Theta-activity-morphology, suggestedTag=Alpha-activity-morphology, suggestedTag=Beta-activity-morphology, suggestedTag=Gamma-activity-morphology, suggestedTag=Finding-significance-to-recording, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [EEG activity that consisting of waves of approximately constant period, which is considered as part of the background (ongoing) activity, but does not fulfill the criteria of the posterior dominant rhythm.]
+ * Other-organized-rhythm {requireChild, suggestedTag=Rhythmic-activity-morphology, suggestedTag=Finding-significance-to-recording, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [EEG activity that consisting of waves of approximately constant period, which is considered as part of the background (ongoing) activity, but does not fulfill the criteria of the posterior dominant rhythm.]
** # {takesValue, valueClass=textClass} [Free text.]
* Background-activity-special-feature {requireChild} [Special Features. Special features contains scoring options for the background activity of critically ill patients.]
- ** Continuous-background-activity {suggestedTag=Delta-activity-morphology, suggestedTag=Theta-activity-morphology, suggestedTag=Alpha-activity-morphology, suggestedTag=Beta-activity-morphology, suggestedTag=Gamma-activity-morphology, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-extent}
- ** Nearly-continuous-background-activity {suggestedTag=Delta-activity-morphology, suggestedTag=Theta-activity-morphology, suggestedTag=Alpha-activity-morphology, suggestedTag=Beta-activity-morphology, suggestedTag=Gamma-activity-morphology, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-extent}
- ** Discontinuous-background-activity {suggestedTag=Delta-activity-morphology, suggestedTag=Theta-activity-morphology, suggestedTag=Alpha-activity-morphology, suggestedTag=Beta-activity-morphology, suggestedTag=Gamma-activity-morphology, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-extent}
+ ** Continuous-background-activity {suggestedTag=Rhythmic-activity-morphology, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-extent}
+ ** Nearly-continuous-background-activity {suggestedTag=Rhythmic-activity-morphology, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-extent}
+ ** Discontinuous-background-activity {suggestedTag=Rhythmic-activity-morphology, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-extent}
** Background-burst-suppression {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-extent} [EEG pattern consisting of bursts (activity appearing and disappearing abruptly) interrupted by periods of low amplitude (below 20 microV) and which occurs simultaneously over all head regions.]
** Background-burst-attenuation {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-extent}
** Background-activity-suppression {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-extent, suggestedTag=Appearance-mode} [Periods showing activity under 10 microV (referential montage) and interrupting the background (ongoing) activity.]
** Electrocerebral-inactivity [Absence of any ongoing cortical electric activities; in all leads EEG is isoelectric or only contains artifacts. Sensitivity has to be increased up to 2 microV/mm; recording time: at least 30 minutes.]
-'''Sleep-and-drowsiness''' {requireChild} [The features of the ongoing activity during sleep are scored here. If abnormal graphoelements appear, disappear or change their morphology during sleep, that is not scored here but at the entry corresponding to that graphooelement (as a modulator).]
- * Sleep-architecture {suggestedTag=Property-not-possible-to-determine} [For longer recordings. Only to be scored if whole-night sleep is part of the recording. It is a global descriptor of the structure and pattern of sleep: estimation of the amount of time spent in REM and NREM sleep, sleep duration, NREM-REM cycle.]
- ** Normal-sleep-architecture
- ** Abnormal-sleep-architecture
- * Sleep-stage-reached {requireChild, suggestedTag=Property-not-possible-to-determine, suggestedTag=Finding-significance-to-recording} [For normal sleep patterns the sleep stages reached during the recording can be specified]
- ** Sleep-stage-N1 [Sleep stage 1.]
- *** # {takesValue, valueClass=textClass} [Free text.]
- ** Sleep-stage-N2 [Sleep stage 2.]
- *** # {takesValue, valueClass=textClass} [Free text.]
- ** Sleep-stage-N3 [Sleep stage 3.]
- *** # {takesValue, valueClass=textClass} [Free text.]
- ** Sleep-stage-REM [Rapid eye movement.]
- *** # {takesValue, valueClass=textClass} [Free text.]
- * Sleep-spindles {suggestedTag=Finding-significance-to-recording, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-amplitude-asymmetry} [Burst at 11-15 Hz but mostly at 12-14 Hz generally diffuse but of higher voltage over the central regions of the head, occurring during sleep. Amplitude varies but is mostly below 50 microV in the adult.]
- * Arousal-pattern {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [Arousal pattern in children. Prolonged, marked high voltage 4-6/s activity in all leads with some intermixed slower frequencies, in children.]
- * Frontal-arousal-rhythm {suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [Prolonged (up to 20s) rhythmical sharp or spiky activity over the frontal areas (maximum over the frontal midline) seen at arousal from sleep in children with minimal cerebral dysfunction.]
- * Vertex-wave {suggestedTag=Finding-significance-to-recording, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-amplitude-asymmetry} [Sharp potential, maximal at the vertex, negative relative to other areas, apparently occurring spontaneously during sleep or in response to a sensory stimulus during sleep or wakefulness. May be single or repetitive. Amplitude varies but rarely exceeds 250 microV. Abbreviation: V wave. Synonym: vertex sharp wave.]
- * K-complex {suggestedTag=Finding-significance-to-recording, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-amplitude-asymmetry} [A burst of somewhat variable appearance, consisting most commonly of a high voltage negative slow wave followed by a smaller positive slow wave frequently associated with a sleep spindle. Duration greater than 0.5 s. Amplitude is generally maximal in the frontal vertex. K complexes occur during nonREM sleep, apparently spontaneously, or in response to sudden sensory / auditory stimuli, and are not specific for any individual sensory modality.]
- * Saw-tooth-waves {suggestedTag=Finding-significance-to-recording, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-amplitude-asymmetry} [Vertex negative 2-5 Hz waves occuring in series during REM sleep]
- * POSTS {suggestedTag=Finding-significance-to-recording, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-amplitude-asymmetry} [Positive occipital sharp transients of sleep. Sharp transient maximal over the occipital regions, positive relative to other areas, apparently occurring spontaneously during sleep. May be single or repetitive. Amplitude varies but is generally bellow 50 microV.]
- * Hypnagogic-hypersynchrony {suggestedTag=Finding-significance-to-recording, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-amplitude-asymmetry} [Bursts of bilateral, synchronous delta or theta activity of large amplitude, occasionally with superimposed faster components, occurring during falling asleep or during awakening, in children.]
- * Non-reactive-sleep [EEG activity consisting of normal sleep graphoelements, but which cannot be interrupted by external stimuli/ the patient cannot be waken.]
-
-'''Interictal-finding''' {requireChild} [EEG pattern / transient that is distinguished form the background activity, considered abnormal, but is not recorded during ictal period (seizure) or postictal period; the presence of an interictal finding does not necessarily imply that the patient has epilepsy.]
- * Epileptiform-interictal-activity {suggestedTag=Spike-morphology, suggestedTag=Spike-and-slow-wave-morphology, suggestedTag=Runs-of-rapid-spikes-morphology, suggestedTag=Polyspikes-morphology, suggestedTag=Polyspike-and-slow-wave-morphology, suggestedTag=Sharp-wave-morphology, suggestedTag=Sharp-and-slow-wave-morphology, suggestedTag=Slow-sharp-wave-morphology, suggestedTag=High-frequency-oscillation-morphology, suggestedTag=Hypsarrhythmia-classic-morphology, suggestedTag=Hypsarrhythmia-modified-morphology, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-propagation, suggestedTag=Multifocal-finding, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, suggestedTag=Finding-incidence}
- * Abnormal-interictal-rhythmic-activity {suggestedTag=Delta-activity-morphology, suggestedTag=Theta-activity-morphology, suggestedTag=Alpha-activity-morphology, suggestedTag=Beta-activity-morphology, suggestedTag=Gamma-activity-morphology, suggestedTag=Polymorphic-delta-activity-morphology, suggestedTag=Frontal-intermittent-rhythmic-delta-activity-morphology, suggestedTag=Occipital-intermittent-rhythmic-delta-activity-morphology, suggestedTag=Temporal-intermittent-rhythmic-delta-activity-morphology, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, suggestedTag=Finding-incidence}
- * Interictal-special-patterns {requireChild}
- ** Interictal-periodic-discharges {suggestedTag=Periodic-discharges-superimposed-activity, suggestedTag=Periodic-discharge-sharpness, suggestedTag=Number-of-periodic-discharge-phases, suggestedTag=Periodic-discharge-triphasic-morphology, suggestedTag=Periodic-discharge-absolute-amplitude, suggestedTag=Periodic-discharge-relative-amplitude, suggestedTag=Periodic-discharge-polarity, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Periodic-discharge-duration, suggestedTag=Periodic-discharge-onset, suggestedTag=Periodic-discharge-dynamics} [Periodic discharge not further specified (PDs).]
- *** Generalized-periodic-discharges [GPDs.]
- *** Lateralized-periodic-discharges [LPDs.]
- *** Bilateral-independent-periodic-discharges [BIPDs.]
- *** Multifocal-periodic-discharges [MfPDs.]
- ** Extreme-delta-brush {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern}
-
-'''Critically-ill-patients-patterns''' {requireChild} [Rhythmic or periodic patterns in critically ill patients (RPPs) are scored according to the 2012 version of the American Clinical Neurophysiology Society Standardized Critical Care EEG Terminology (Hirsch et al., 2013).]
- * Critically-ill-patients-periodic-discharges {suggestedTag=Periodic-discharges-superimposed-activity, suggestedTag=Periodic-discharge-sharpness, suggestedTag=Number-of-periodic-discharge-phases, suggestedTag=Periodic-discharge-triphasic-morphology, suggestedTag=Periodic-discharge-absolute-amplitude, suggestedTag=Periodic-discharge-relative-amplitude, suggestedTag=Periodic-discharge-polarity, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-frequency, suggestedTag=Periodic-discharge-duration, suggestedTag=Periodic-discharge-onset, suggestedTag=Periodic-discharge-dynamics} [Periodic discharges (PDs).]
- * Rhythmic-delta-activity {suggestedTag=Periodic-discharges-superimposed-activity, suggestedTag=Periodic-discharge-absolute-amplitude, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-frequency, suggestedTag=Periodic-discharge-duration, suggestedTag=Periodic-discharge-onset, suggestedTag=Periodic-discharge-dynamics} [RDA]
- * Spike-or-sharp-and-wave {suggestedTag=Periodic-discharge-sharpness, suggestedTag=Number-of-periodic-discharge-phases, suggestedTag=Periodic-discharge-triphasic-morphology, suggestedTag=Periodic-discharge-absolute-amplitude, suggestedTag=Periodic-discharge-relative-amplitude, suggestedTag=Periodic-discharge-polarity, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Multifocal-finding, suggestedTag=Finding-frequency, suggestedTag=Periodic-discharge-duration, suggestedTag=Periodic-discharge-onset, suggestedTag=Periodic-discharge-dynamics} [SW]
-
-'''Episode''' {requireChild} [Clinical episode or electrographic seizure.]
- * Epileptic-seizure {requireChild}
- ** Focal-onset-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting}
- *** Aware-focal-onset-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Seizure-classification, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting}
- *** Impaired-awareness-focal-onset-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Seizure-classification, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting}
- *** Awareness-unknown-focal-onset-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Seizure-classification, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting}
- *** Focal-to-bilateral-tonic-clonic-focal-onset-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting}
- ** Generalized-onset-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Seizure-classification, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting}
- ** Unknown-onset-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Seizure-classification, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting}
- ** Unclassified-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting}
- * Subtle-seizure {suggestedTag=Episode-phase, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting} [Seizure type frequent in neonates, sometimes referred to as motor automatisms; they may include random and roving eye movements, sucking, chewing motions, tongue protrusion, rowing or swimming or boxing movements of the arms, pedaling and bicycling movements of the lower limbs; apneic seizures are relatively common. Although some subtle seizures are associated with rhythmic ictal EEG discharges, and are clearly epileptic, ictal EEG often does not show typical epileptic activity.]
- * Electrographic-seizure {suggestedTag=Episode-phase, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting} [Referred usually to non convulsive status. Ictal EEG: rhythmic discharge or spike and wave pattern with definite evolution in frequency, location, or morphology lasting at least 10 s; evolution in amplitude alone did not qualify.]
- * Seizure-PNES {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting} [Psychogenic non-epileptic seizure.]
- * Sleep-related-episode {requireChild}
- ** Sleep-related-arousal {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting} [Normal.]
- ** Benign-sleep-myoclonus {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting} [A distinctive disorder of sleep characterized by a) neonatal onset, b) rhythmic myoclonic jerks only during sleep and c) abrupt and consistent cessation with arousal, d) absence of concomitant electrographic changes suggestive of seizures, and e) good outcome.]
- ** Confusional-awakening {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting} [Episode of non epileptic nature included in NREM parasomnias, characterized by sudden arousal and complex behavior but without full alertness, usually lasting a few minutes and occurring almost in all children at least occasionally. Amnesia of the episode is the rule.]
- ** Sleep-periodic-limb-movement {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting} [PLMS. Periodic limb movement in sleep. Episodes are characterized by brief (0.5- to 5.0-second) lower-extremity movements during sleep, which typically occur at 20- to 40-second intervals, most commonly during the first 3 hours of sleep. The affected individual is usually not aware of the movements or of the transient partial arousals.]
- ** REM-sleep-behavioral-disorder {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting} [REM sleep behavioral disorder. Episodes characterized by: a) presence of REM sleep without atonia (RSWA) on polysomnography (PSG); b) presence of at least 1 of the following conditions - (1) Sleep-related behaviors, by history, that have been injurious, potentially injurious, or disruptive (example: dream enactment behavior); (2) abnormal REM sleep behavior documented during PSG monitoring; (3) absence of epileptiform activity on electroencephalogram (EEG) during REM sleep (unless RBD can be clearly distinguished from any concurrent REM sleep-related seizure disorder); (4) sleep disorder not better explained by another sleep disorder, a medical or neurologic disorder, a mental disorder, medication use, or a substance use disorder.]
- ** Sleep-walking {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting} [Episodes characterized by ambulation during sleep; the patient is difficult to arouse during an episode, and is usually amnesic following the episode. Episodes usually occur in the first third of the night during slow wave sleep. Polysomnographic recordings demonstrate 2 abnormalities during the first sleep cycle: frequent, brief, non-behavioral EEG-defined arousals prior to the somnambulistic episode and abnormally low gamma (0.75-2.0 Hz) EEG power on spectral analysis, correlating with high-voltage (hyper-synchronic gamma) waves lasting 10 to 15 s occurring just prior to the movement. This is followed by stage I NREM sleep, and there is no evidence of complete awakening.]
- * Pediatric-episode {requireChild}
- ** Hyperekplexia {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting} [Disorder characterized by exaggerated startle response and hypertonicity that may occur during the first year of life and in severe cases during the neonatal period. Children usually present with marked irritability and recurrent startles in response to handling and sounds. Severely affected infants can have severe jerks and stiffening, sometimes with breath-holding spells.]
- ** Jactatio-capitis-nocturna {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting} [Relatively common in normal children at the time of going to bed, especially during the first year of life, the rhythmic head movements persist during sleep. Usually, these phenomena disappear before 3 years of age.]
- ** Pavor-nocturnus {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting} [A nocturnal episode characterized by age of onset of less than five years (mean age 18 months, with peak prevalence at five to seven years), appearance of signs of panic two hours after falling asleep with crying, screams, a fearful expression, inability to recognize other people including parents (for a duration of 5-15 minutes), amnesia upon awakening. Pavor nocturnus occurs in patients almost every night for months or years (but the frequency is highly variable and may be as low as once a month) and is likely to disappear spontaneously at the age of six to eight years.]
- ** Pediatric-stereotypical-behavior-episode {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting} [Repetitive motor behavior in children, typically rhythmic and persistent; usually not paroxysmal and rarely suggest epilepsy. They include headbanging, head-rolling, jactatio capitis nocturna, body rocking, buccal or lingual movements, hand flapping and related mannerisms, repetitive hand-waving (to self-induce photosensitive seizures).]
- * Paroxysmal-motor-event {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting} [Paroxysmal phenomena during neonatal or childhood periods characterized by recurrent motor or behavioral signs or symptoms that must be distinguishes from epileptic disorders.]
- * Syncope {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting} [Episode with loss of consciousness and muscle tone that is abrupt in onset, of short duration and followed by rapid recovery; it occurs in response to transient impairment of cerebral perfusion. Typical prodromal symptoms often herald onset of syncope and postictal symptoms are minimal. Syncopal convulsions resulting from cerebral anoxia are common but are not a form of epilepsy, nor are there any accompanying EEG ictal discharges.]
- * Cataplexy {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting} [A sudden decrement in muscle tone and loss of deep tendon reflexes, leading to muscle weakness, paralysis, or postural collapse. Cataplexy usually is precipitated by an outburst of emotional expression-notably laughter, anger, or startle. It is one of the tetrad of symptoms of narcolepsy. During cataplexy, respiration and voluntary eye movements are not compromised. Consciousness is preserved.]
- * Other-episode {requireChild}
- ** # {takesValue, valueClass=textClass} [Free text.]
-
-'''Physiologic-pattern''' {requireChild} [EEG graphoelements or rhythms that are considered normal. They only should be scored if the physician considers that they have a specific clinical significance for the recording.]
- * Rhythmic-activity-pattern {suggestedTag=Delta-activity-morphology, suggestedTag=Theta-activity-morphology, suggestedTag=Alpha-activity-morphology, suggestedTag=Beta-activity-morphology, suggestedTag=Gamma-activity-morphology, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [Not further specified.]
- * Slow-alpha-variant-rhythm {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [Characteristic rhythms mostly at 4-5 Hz, recorded most prominently over the posterior regions of the head. Generally alternate, or are intermixed, with alpha rhythm to which they often are harmonically related. Amplitude varies but is frequently close to 50 micro V. Blocked or attenuated by attention, especially visual, and mental effort. Comment: slow alpha variant rhythms should be distinguished from posterior slow waves characteristic of children and adolescents and occasionally seen in young adults.]
- * Fast-alpha-variant-rhythm {suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [Characteristic rhythm at 14-20 Hz, detected most prominently over the posterior regions of the head. May alternate or be intermixed with alpha rhythm. Blocked or attenuated by attention, especially visual, and mental effort.]
- * Ciganek-rhythm {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [Midline theta rhythm (Ciganek rhythm) may be observed during wakefulness or drowsiness. The frequency is 4-7 Hz, and the location is midline (ie, vertex). The morphology is rhythmic, smooth, sinusoidal, arciform, spiky, or mu-like.]
- * Lambda-wave {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [Diphasic sharp transient occurring over occipital regions of the head of waking subjects during visual exploration. The main component is positive relative to other areas. Time-locked to saccadic eye movement. Amplitude varies but is generally below 50 micro V.]
- * Posterior-slow-waves-youth {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [Waves in the delta and theta range, of variable form, lasting 0.35 to 0.5 s or longer without any consistent periodicity, found in the range of 6-12 years (occasionally seen in young adults). Alpha waves are almost always intermingled or superimposed. Reactive similar to alpha activity.]
- * Diffuse-slowing-hyperventilation {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [Diffuse slowing induced by hyperventilation. Bilateral, diffuse slowing during hyperventilation. Recorded in 70 percent of normal children (3-5 years) and less then 10 percent of adults. Usually appear in the posterior regions and spread forward in younger age group, whereas they tend to appear in the frontal regions and spread backward in the older age group.]
- * Photic-driving {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [Physiologic response consisting of rhythmic activity elicited over the posterior regions of the head by repetitive photic stimulation at frequencies of about 5-30 Hz. Comments: term should be limited to activity time-locked to the stimulus and of frequency identical or harmonically related to the stimulus frequency. Photic driving should be distinguished from the visual evoked potentials elicited by isolated flashes of light or flashes repeated at very low frequency.]
- * Photomyogenic-response {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [A response to intermittent photic stimulation characterized by the appearance in the record of brief, repetitive muscular artifacts (spikes) over the anterior regions of the head. These often increase gradually in amplitude as stimuli are continued and cease promptly when the stimulus is withdrawn. Comment: this response is frequently associated with flutter of the eyelids and vertical oscillations of the eyeballs and sometimes with discrete jerking mostly involving the musculature of the face and head. (Preferred to synonym: photo-myoclonic response).]
- * Other-physiologic-pattern {requireChild}
- ** # {takesValue, valueClass=textClass} [Free text.]
-
-'''Uncertain-significant-pattern''' {requireChild} [EEG graphoelements or rhythms that resemble abnormal patterns but that are not necessarily associated with a pathology, and the physician does not consider them abnormal in the context of the scored recording (like normal variants and patterns).]
- * Sharp-transient-pattern {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern}
- * Wicket-spikes [Spike-like monophasic negative single waves or trains of waves occurring over the temporal regions during drowsiness that have an arcuate or mu-like appearance. These are mainly seen in older individuals and represent a benign variant that is of little clinical significance.]
- * Small-sharp-spikes {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [Benign epileptiform Transients of Sleep (BETS). Small sharp spikes (SSS) of very short duration and low amplitude, often followed by a small theta wave, occurring in the temporal regions during drowsiness and light sleep. They occur on one or both sides (often asynchronously). The main negative and positive components are of about equally spiky character. Rarely seen in children, they are seen most often in adults and the elderly. Two thirds of the patients have a history of epileptic seizures.]
- * Fourteen-six-Hz-positive-burst {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [Burst of arch-shaped waves at 13-17 Hz and/or 5-7-Hz but most commonly at 14 and or 6 Hz seen generally over the posterior temporal and adjacent areas of one or both sides of the head during sleep. The sharp peaks of its component waves are positive with respect to other regions. Amplitude varies but is generally below 75 micro V. Comments: (1) best demonstrated by referential recording using contralateral earlobe or other remote, reference electrodes. (2) This pattern has no established clinical significance.]
- * Six-Hz-spike-slow-wave {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [Spike and slow wave complexes at 4-7Hz, but mostly at 6 Hz occurring generally in brief bursts bilaterally and synchronously, symmetrically or asymmetrically, and either confined to or of larger amplitude over the posterior or anterior regions of the head. The spike has a strong positive component. Amplitude varies but is generally smaller than that of spike-and slow-wave complexes repeating at slower rates. Comment: this pattern should be distinguished from epileptiform discharges. Synonym: wave and spike phantom.]
- * Rudimentary-spike-wave-complex {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [Synonym: Pseudo petit mal discharge. Paroxysmal discharge that consists of generalized or nearly generalized high voltage 3 to 4/sec waves with poorly developed spike in the positive trough between the slow waves, occurring in drowsiness only. It is found only in infancy and early childhood when marked hypnagogic rhythmical theta activity is paramount in the drowsy state.]
- * Slow-fused-transient {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [A posterior slow-wave preceded by a sharp-contoured potential that blends together with the ensuing slow wave, in children.]
- * Needle-like-occipital-spikes-blind {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [Spike discharges of a particularly fast and needle-like character develop over the occipital region in most congenitally blind children. Completely disappear during childhood or adolescence.]
- * Subclinical-rhythmic-EEG-discharge-adults {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [Subclinical rhythmic EEG discharge of adults (SERDA). A rhythmic pattern seen in the adult age group, mainly in the waking state or drowsiness. It consists of a mixture of frequencies, often predominant in the theta range. The onset may be fairly abrupt with widespread sharp rhythmical theta and occasionally with delta activity. As to the spatial distribution, a maximum of this discharge is usually found over the centroparietal region and especially over the vertex. It may resemble a seizure discharge but is not accompanied by any clinical signs or symptoms.]
- * Rhythmic-temporal-theta-burst-drowsiness [Rhythmic temporal theta burst of drowsiness (RTTD). Characteristic burst of 4-7 Hz waves frequently notched by faster waves, occurring over the temporal regions of the head during drowsiness. Synonym: psychomotor variant pattern. Comment: this is a pattern of drowsiness that is of no clinical significance.]
- * Temporal-slowing-elderly {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [Focal theta and/or delta activity over the temporal regions, especially the left, in persons over the age of 60. Amplitudes are low/similar to the background activity. Comment: focal temporal theta was found in 20 percent of people between the ages of 40-59 years, and 40 percent of people between 60 and 79 years. One third of people older than 60 years had focal temporal delta activity.]
- * Breach-rhythm {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [Rhythmical activity recorded over cranial bone defects. Usually it is in the 6 to 11/sec range, does not respond to movements.]
- * Other-uncertain-significant-pattern {requireChild}
- ** # {takesValue, valueClass=textClass} [Free text.]
-
'''Artifact''' {requireChild} [When relevant for the clinical interpretation, artifacts can be scored by specifying the type and the location.]
* Biological-artifact {requireChild}
** Eye-blink-artifact {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Multifocal-finding, suggestedTag=Artifact-significance-to-recording} [Example for EEG: Fp1/Fp2 become electropositive with eye closure because the cornea is positively charged causing a negative deflection in Fp1/Fp2. If the eye blink is unilateral, consider prosthetic eye. If it is in F8 rather than Fp2 then the electrodes are plugged in wrong.]
@@ -190,80 +91,40 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
* Other-artifact {requireChild, suggestedTag=Artifact-significance-to-recording}
** # {takesValue, valueClass=textClass} [Free text.]
-'''Polygraphic-channel-finding''' {requireChild} [Changes observed in polygraphic channels can be scored: EOG, Respiration, ECG, EMG, other polygraphic channel (+ free text), and their significance logged (normal, abnormal, no definite abnormality).]
- * EOG-channel-finding {suggestedTag=Finding-significance-to-recording} [ElectroOculoGraphy.]
- ** # {takesValue, valueClass=textClass} [Free text.]
- * Respiration-channel-finding {suggestedTag=Finding-significance-to-recording}
- ** Respiration-oxygen-saturation
- *** # {takesValue, valueClass=numericClass}
- ** Respiration-feature
- *** Apnoe-respiration [Add duration (range in seconds) and comments in free text.]
- **** # {takesValue, valueClass=textClass} [Free text.]
- *** Hypopnea-respiration [Add duration (range in seconds) and comments in free text]
- **** # {takesValue, valueClass=textClass} [Free text.]
- *** Apnea-hypopnea-index-respiration {requireChild} [Events/h. Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency]
- **** # {takesValue, valueClass=textClass} [Free text.]
- *** Periodic-respiration
- **** # {takesValue, valueClass=textClass} [Free text.]
- *** Tachypnea-respiration {requireChild} [Cycles/min. Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency]
- **** # {takesValue, valueClass=textClass} [Free text.]
- *** Other-respiration-feature {requireChild}
- **** # {takesValue, valueClass=textClass} [Free text.]
- * ECG-channel-finding {suggestedTag=Finding-significance-to-recording} [Electrocardiography.]
- ** ECG-QT-period
- *** # {takesValue, valueClass=textClass} [Free text.]
- ** ECG-feature
- *** ECG-sinus-rhythm [Normal rhythm. Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency]
- **** # {takesValue, valueClass=textClass} [Free text.]
- *** ECG-arrhythmia
- **** # {takesValue, valueClass=textClass} [Free text.]
- *** ECG-asystolia [Add duration (range in seconds) and comments in free text.]
- **** # {takesValue, valueClass=textClass} [Free text.]
- *** ECG-bradycardia [Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency]
- **** # {takesValue, valueClass=textClass} [Free text.]
- *** ECG-extrasystole
- **** # {takesValue, valueClass=textClass} [Free text.]
- *** ECG-ventricular-premature-depolarization [Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency]
- **** # {takesValue, valueClass=textClass} [Free text.]
- *** ECG-tachycardia [Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency]
- **** # {takesValue, valueClass=textClass} [Free text.]
- *** Other-ECG-feature {requireChild}
- **** # {takesValue, valueClass=textClass} [Free text.]
- * EMG-channel-finding {suggestedTag=Finding-significance-to-recording} [electromyography]
- ** EMG-muscle-side
- *** EMG-left-muscle
- **** # {takesValue, valueClass=textClass} [Free text.]
- *** EMG-right-muscle
- **** # {takesValue, valueClass=textClass} [Free text.]
- *** EMG-bilateral-muscle
- **** # {takesValue, valueClass=textClass} [Free text.]
- ** EMG-muscle-name
- *** # {takesValue, valueClass=textClass} [Free text.]
- ** EMG-feature
- *** EMG-myoclonus
- **** Negative-myoclonus
- ***** # {takesValue, valueClass=textClass} [Free text.]
- **** EMG-myoclonus-rhythmic
- ***** # {takesValue, valueClass=textClass} [Free text.]
- **** EMG-myoclonus-arrhythmic
- ***** # {takesValue, valueClass=textClass} [Free text.]
- **** EMG-myoclonus-synchronous
- ***** # {takesValue, valueClass=textClass} [Free text.]
- **** EMG-myoclonus-asynchronous
- ***** # {takesValue, valueClass=textClass} [Free text.]
- *** EMG-PLMS [Periodic limb movements in sleep.]
- *** EMG-spasm
- **** # {takesValue, valueClass=textClass} [Free text.]
- *** EMG-tonic-contraction
- **** # {takesValue, valueClass=textClass} [Free text.]
- *** EMG-asymmetric-activation {requireChild}
- **** EMG-asymmetric-activation-left-first
- ***** # {takesValue, valueClass=textClass} [Free text.]
- **** EMG-asymmetric-activation-right-first
- ***** # {takesValue, valueClass=textClass} [Free text.]
- *** Other-EMG-features {requireChild}
- **** # {takesValue, valueClass=textClass} [Free text.]
- * Other-polygraphic-channel {requireChild}
+'''Critically-ill-patients-patterns''' {requireChild} [Rhythmic or periodic patterns in critically ill patients (RPPs) are scored according to the 2012 version of the American Clinical Neurophysiology Society Standardized Critical Care EEG Terminology (Hirsch et al., 2013).]
+ * Critically-ill-patients-periodic-discharges {suggestedTag=Periodic-discharge-morphology, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-frequency, suggestedTag=Periodic-discharge-time-related-features} [Periodic discharges (PDs).]
+ * Rhythmic-delta-activity {suggestedTag=Periodic-discharge-superimposed-activity, suggestedTag=Periodic-discharge-absolute-amplitude, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-frequency, suggestedTag=Periodic-discharge-time-related-features} [RDA]
+ * Spike-or-sharp-and-wave {suggestedTag=Periodic-discharge-sharpness, suggestedTag=Number-of-periodic-discharge-phases, suggestedTag=Periodic-discharge-triphasic-morphology, suggestedTag=Periodic-discharge-absolute-amplitude, suggestedTag=Periodic-discharge-relative-amplitude, suggestedTag=Periodic-discharge-polarity, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Multifocal-finding, suggestedTag=Finding-frequency, suggestedTag=Periodic-discharge-time-related-features} [SW]
+
+'''Episode''' {requireChild} [Clinical episode or electrographic seizure.]
+ * Epileptic-seizure {requireChild} [The ILAE presented a revised seizure classification that divides seizures into focal, generalized onset, or unknown onset.]
+ ** Focal-onset-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Automatism-motor-seizure, suggestedTag=Atonic-motor-seizure, suggestedTag=Clonic-motor-seizure, suggestedTag=Epileptic-spasm-episode, suggestedTag=Hyperkinetic-motor-seizure, suggestedTag=Myoclonic-motor-seizure, suggestedTag=Tonic-motor-seizure, suggestedTag=Autonomic-nonmotor-seizure, suggestedTag=Behavior-arrest-nonmotor-seizure, suggestedTag=Cognitive-nonmotor-seizure, suggestedTag=Emotional-nonmotor-seizure, suggestedTag=Sensory-nonmotor-seizure, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting} [Focal seizures can be divided into focal aware and impaired awareness seizures, with additional motor and nonmotor classifications.]
+ *** Aware-focal-onset-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting}
+ *** Impaired-awareness-focal-onset-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting}
+ *** Awareness-unknown-focal-onset-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting}
+ *** Focal-to-bilateral-tonic-clonic-focal-onset-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting} [A seizure type with focal onset, with awareness or impaired awareness, either motor or non-motor, progressing to bilateral tonic clonic activity. The prior term was seizure with partial onset with secondary generalization. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ ** Generalized-onset-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Tonic-clonic-motor-seizure, suggestedTag=Clonic-motor-seizure, suggestedTag=Tonic-motor-seizure, suggestedTag=Myoclonic-motor-seizure, suggestedTag=Myoclonic-tonic-clonic-motor-seizure, suggestedTag=Myoclonic-atonic-motor-seizure, suggestedTag=Atonic-motor-seizure, suggestedTag=Epileptic-spasm-episode, suggestedTag=Typical-absence-seizure, suggestedTag=Atypical-absence-seizure, suggestedTag=Myoclonic-absence-seizure, suggestedTag=Eyelid-myoclonia-absence-seizure, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting} [Generalized-onset seizures are classified as motor or nonmotor (absence), without using awareness level as a classifier, as most but not all of these seizures are linked with impaired awareness.]
+ ** Unknown-onset-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Tonic-clonic-motor-seizure, suggestedTag=Epileptic-spasm-episode, suggestedTag=Behavior-arrest-nonmotor-seizure, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting} [Even if the onset of seizures is unknown, they may exhibit characteristics that fall into categories such as motor, nonmotor, tonic-clonic, epileptic spasms, or behavior arrest.]
+ ** Unclassified-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting} [Referring to a seizure type that cannot be described by the ILAE 2017 classification either because of inadequate information or unusual clinical features.]
+ * Subtle-seizure {suggestedTag=Episode-phase, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting} [Seizure type frequent in neonates, sometimes referred to as motor automatisms; they may include random and roving eye movements, sucking, chewing motions, tongue protrusion, rowing or swimming or boxing movements of the arms, pedaling and bicycling movements of the lower limbs; apneic seizures are relatively common. Although some subtle seizures are associated with rhythmic ictal EEG discharges, and are clearly epileptic, ictal EEG often does not show typical epileptic activity.]
+ * Electrographic-seizure {suggestedTag=Episode-phase, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting} [Referred usually to non convulsive status. Ictal EEG: rhythmic discharge or spike and wave pattern with definite evolution in frequency, location, or morphology lasting at least 10 s; evolution in amplitude alone did not qualify.]
+ * Seizure-PNES {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting} [Psychogenic non-epileptic seizure.]
+ * Sleep-related-episode {requireChild}
+ ** Sleep-related-arousal {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting} [Normal.]
+ ** Benign-sleep-myoclonus {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting} [A distinctive disorder of sleep characterized by a) neonatal onset, b) rhythmic myoclonic jerks only during sleep and c) abrupt and consistent cessation with arousal, d) absence of concomitant electrographic changes suggestive of seizures, and e) good outcome.]
+ ** Confusional-awakening {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting} [Episode of non epileptic nature included in NREM parasomnias, characterized by sudden arousal and complex behavior but without full alertness, usually lasting a few minutes and occurring almost in all children at least occasionally. Amnesia of the episode is the rule.]
+ ** Sleep-periodic-limb-movement {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting} [PLMS. Periodic limb movement in sleep. Episodes are characterized by brief (0.5- to 5.0-second) lower-extremity movements during sleep, which typically occur at 20- to 40-second intervals, most commonly during the first 3 hours of sleep. The affected individual is usually not aware of the movements or of the transient partial arousals.]
+ ** REM-sleep-behavioral-disorder {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting} [REM sleep behavioral disorder. Episodes characterized by: a) presence of REM sleep without atonia (RSWA) on polysomnography (PSG); b) presence of at least 1 of the following conditions - (1) Sleep-related behaviors, by history, that have been injurious, potentially injurious, or disruptive (example: dream enactment behavior); (2) abnormal REM sleep behavior documented during PSG monitoring; (3) absence of epileptiform activity on electroencephalogram (EEG) during REM sleep (unless RBD can be clearly distinguished from any concurrent REM sleep-related seizure disorder); (4) sleep disorder not better explained by another sleep disorder, a medical or neurologic disorder, a mental disorder, medication use, or a substance use disorder.]
+ ** Sleep-walking {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting} [Episodes characterized by ambulation during sleep; the patient is difficult to arouse during an episode, and is usually amnesic following the episode. Episodes usually occur in the first third of the night during slow wave sleep. Polysomnographic recordings demonstrate 2 abnormalities during the first sleep cycle: frequent, brief, non-behavioral EEG-defined arousals prior to the somnambulistic episode and abnormally low gamma (0.75-2.0 Hz) EEG power on spectral analysis, correlating with high-voltage (hyper-synchronic gamma) waves lasting 10 to 15 s occurring just prior to the movement. This is followed by stage I NREM sleep, and there is no evidence of complete awakening.]
+ * Pediatric-episode {requireChild}
+ ** Hyperekplexia {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting} [Disorder characterized by exaggerated startle response and hypertonicity that may occur during the first year of life and in severe cases during the neonatal period. Children usually present with marked irritability and recurrent startles in response to handling and sounds. Severely affected infants can have severe jerks and stiffening, sometimes with breath-holding spells.]
+ ** Jactatio-capitis-nocturna {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting} [Relatively common in normal children at the time of going to bed, especially during the first year of life, the rhythmic head movements persist during sleep. Usually, these phenomena disappear before 3 years of age.]
+ ** Pavor-nocturnus {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting} [A nocturnal episode characterized by age of onset of less than five years (mean age 18 months, with peak prevalence at five to seven years), appearance of signs of panic two hours after falling asleep with crying, screams, a fearful expression, inability to recognize other people including parents (for a duration of 5-15 minutes), amnesia upon awakening. Pavor nocturnus occurs in patients almost every night for months or years (but the frequency is highly variable and may be as low as once a month) and is likely to disappear spontaneously at the age of six to eight years.]
+ ** Pediatric-stereotypical-behavior-episode {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting} [Repetitive motor behavior in children, typically rhythmic and persistent; usually not paroxysmal and rarely suggest epilepsy. They include headbanging, head-rolling, jactatio capitis nocturna, body rocking, buccal or lingual movements, hand flapping and related mannerisms, repetitive hand-waving (to self-induce photosensitive seizures).]
+ * Paroxysmal-motor-event {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting} [Paroxysmal phenomena during neonatal or childhood periods characterized by recurrent motor or behavioral signs or symptoms that must be distinguishes from epileptic disorders.]
+ * Syncope {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting} [Episode with loss of consciousness and muscle tone that is abrupt in onset, of short duration and followed by rapid recovery; it occurs in response to transient impairment of cerebral perfusion. Typical prodromal symptoms often herald onset of syncope and postictal symptoms are minimal. Syncopal convulsions resulting from cerebral anoxia are common but are not a form of epilepsy, nor are there any accompanying EEG ictal discharges.]
+ * Cataplexy {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting} [A sudden decrement in muscle tone and loss of deep tendon reflexes, leading to muscle weakness, paralysis, or postural collapse. Cataplexy usually is precipitated by an outburst of emotional expression-notably laughter, anger, or startle. It is one of the tetrad of symptoms of narcolepsy. During cataplexy, respiration and voluntary eye movements are not compromised. Consciousness is preserved.]
+ * Other-episode {requireChild}
** # {takesValue, valueClass=textClass} [Free text.]
'''Finding-property''' {requireChild} [Descriptive element similar to main HED /Property. Something that pertains to a thing. A characteristic of some entity. A quality or feature regarded as a characteristic or inherent part of someone or something. HED attributes are adjectives or adverbs.]
@@ -325,11 +186,11 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
*** # {takesValue, valueClass=textClass} [Free text.]
** Temporal-intermittent-rhythmic-delta-activity-morphology [Temporal intermittent rhythmic delta activity (TIRDA). Fairly regular or approximately sinusoidal waves, mostly occurring in bursts at over the temporal areas of one side of the head. Comment: most commonly associated with temporal lobe epilepsy.]
*** # {takesValue, valueClass=textClass} [Free text.]
- ** Periodic-discharges-morphology {requireChild} [Periodic discharges not further specified (PDs).]
- *** Periodic-discharges-superimposed-activity {requireChild, suggestedTag=Property-not-possible-to-determine}
- **** Periodic-discharges-fast-superimposed-activity {suggestedTag=Finding-frequency}
+ ** Periodic-discharge-morphology {requireChild} [Periodic discharges not further specified (PDs).]
+ *** Periodic-discharge-superimposed-activity {requireChild, suggestedTag=Property-not-possible-to-determine}
+ **** Periodic-discharge-fast-superimposed-activity {suggestedTag=Finding-frequency}
***** # {takesValue, valueClass=textClass} [Free text.]
- **** Periodic-discharges-rhythmic-superimposed-activity {suggestedTag=Finding-frequency}
+ **** Periodic-discharge-rhythmic-superimposed-activity {suggestedTag=Finding-frequency}
***** # {takesValue, valueClass=textClass} [Free text.]
*** Periodic-discharge-sharpness {requireChild, suggestedTag=Property-not-possible-to-determine}
**** Spiky-periodic-discharge-sharpness
@@ -423,19 +284,19 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
*** Brain-region-occipital
**** # {takesValue, valueClass=textClass} [Free text.]
** Body-part-location {requireChild}
- *** Body-part-eyelid
+ *** Eyelid-location
**** # {takesValue, valueClass=textClass} [Free text.]
- *** Body-part-face
+ *** Face-location
**** # {takesValue, valueClass=textClass} [Free text.]
- *** Body-part-arm
+ *** Arm-location
**** # {takesValue, valueClass=textClass} [Free text.]
- *** Body-part-leg
+ *** Leg-location
**** # {takesValue, valueClass=textClass} [Free text.]
- *** Body-part-trunk
+ *** Trunk-location
**** # {takesValue, valueClass=textClass} [Free text.]
- *** Body-part-visceral
+ *** Visceral-location
**** # {takesValue, valueClass=textClass} [Free text.]
- *** Body-part-hemi
+ *** Hemi-location
**** # {takesValue, valueClass=textClass} [Free text.]
** Brain-centricity {requireChild}
*** Brain-centricity-axial
@@ -641,52 +502,63 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
*** Absence-of-posterior-dominant-rhythm-other-causes {requireChild}
**** # {takesValue, valueClass=textClass} [Free text.]
* Episode-property {requireChild}
- ** Seizure-classification {requireChild} [Epileptic seizures are named using the current ILAE seizure classification (Fisher et al., 2017, Beniczky et al., 2017).]
- *** Motor-onset-seizure
- **** Myoclonic-motor-onset-seizure
- **** Negative-myoclonic-motor-onset-seizure
- **** Clonic-motor-onset-seizure
- **** Tonic-motor-onset-seizure
- **** Atonic-motor-onset-seizure
- **** Myoclonic-atonic-motor-onset-seizure
- **** Myoclonic-tonic-clonic-motor-onset-seizure
- **** Tonic-clonic-motor-onset-seizure
- **** Automatism-motor-onset-seizure
- **** Hyperkinetic-motor-onset-seizure
- **** Epileptic-spasm-episode
- *** Nonmotor-onset-seizure
- **** Behavior-arrest-nonmotor-onset-seizure
- **** Sensory-nonmotor-onset-seizure
- **** Emotional-nonmotor-onset-seizure
- **** Cognitive-nonmotor-onset-seizure
- **** Autonomic-nonmotor-onset-seizure
- *** Absence-seizure
- **** Typical-absence-seizure
- **** Atypical-absence-seizure
- **** Myoclonic-absence-seizure
- **** Eyelid-myoclonia-absence-seizure
+ ** Seizure-classification {requireChild} [Seizure classification refers to the grouping of seizures based on their clinical features, EEG patterns, and other characteristics. Epileptic seizures are named using the current ILAE seizure classification (Fisher et al., 2017, Beniczky et al., 2017).]
+ *** Motor-seizure [Involves musculature in any form. The motor event could consist of an increase (positive) or decrease (negative) in muscle contraction to produce a movement. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ *** Motor-onset-seizure {deprecatedFrom=1.0.0}
+ **** Myoclonic-motor-seizure [Sudden, brief ( lower than 100 msec) involuntary single or multiple contraction(s) of muscles(s) or muscle groups of variable topography (axial, proximal limb, distal). Myoclonus is less regularly repetitive and less sustained than is clonus. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Myoclonic-motor-onset-seizure {deprecatedFrom=1.0.0}
+ **** Negative-myoclonic-motor-seizure
+ **** Negative-myoclonic-motor-onset-seizure {deprecatedFrom=1.0.0}
+ **** Clonic-motor-seizure [Jerking, either symmetric or asymmetric, that is regularly repetitive and involves the same muscle groups. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Clonic-motor-onset-seizure {deprecatedFrom=1.0.0}
+ **** Tonic-motor-seizure [A sustained increase in muscle contraction lasting a few seconds to minutes. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Tonic-motor-onset-seizure {deprecatedFrom=1.0.0}
+ **** Atonic-motor-seizure [Sudden loss or diminution of muscle tone without apparent preceding myoclonic or tonic event lasting about 1 to 2 s, involving head, trunk, jaw, or limb musculature. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Atonic-motor-onset-seizure {deprecatedFrom=1.0.0}
+ **** Myoclonic-atonic-motor-seizure [A generalized seizure type with a myoclonic jerk leading to an atonic motor component. This type was previously called myoclonic astatic. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Myoclonic-atonic-motor-onset-seizure {deprecatedFrom=1.0.0}
+ **** Myoclonic-tonic-clonic-motor-seizure [One or a few jerks of limbs bilaterally, followed by a tonic clonic seizure. The initial jerks can be considered to be either a brief period of clonus or myoclonus. Seizures with this characteristic are common in juvenile myoclonic epilepsy. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Myoclonic-tonic-clonic-motor-onset-seizure {deprecatedFrom=1.0.0}
+ **** Tonic-clonic-motor-seizure [A sequence consisting of a tonic followed by a clonic phase. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Tonic-clonic-motor-onset-seizure {deprecatedFrom=1.0.0}
+ **** Automatism-motor-seizure [A more or less coordinated motor activity usually occurring when cognition is impaired and for which the subject is usually (but not always) amnesic afterward. This often resembles a voluntary movement and may consist of an inappropriate continuation of preictal motor activity. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Automatism-motor-onset-seizure {deprecatedFrom=1.0.0}
+ **** Hyperkinetic-motor-seizure
+ **** Hyperkinetic-motor-onset-seizure {deprecatedFrom=1.0.0}
+ **** Epileptic-spasm-episode [A sudden flexion, extension, or mixed extension flexion of predominantly proximal and truncal muscles that is usually more sustained than a myoclonic movement but not as sustained as a tonic seizure. Limited forms may occur: Grimacing, head nodding, or subtle eye movements. Epileptic spasms frequently occur in clusters. Infantile spasms are the best known form, but spasms can occur at all ages. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ *** Nonmotor-seizure [Focal or generalized seizure types in which motor activity is not prominent. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Behavior-arrest-nonmotor-seizure [Arrest (pause) of activities, freezing, immobilization, as in behavior arrest seizure. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Sensory-nonmotor-seizure [A perceptual experience not caused by appropriate stimuli in the external world. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Emotional-nonmotor-seizure [Seizures presenting with an emotion or the appearance of having an emotion as an early prominent feature, such as fear, spontaneous joy or euphoria, laughing (gelastic), or crying (dacrystic). Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Cognitive-nonmotor-seizure [Pertaining to thinking and higher cortical functions, such as language, spatial perception, memory, and praxis. The previous term for similar usage as a seizure type was psychic. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Autonomic-nonmotor-seizure [A distinct alteration of autonomic nervous system function involving cardiovascular, pupillary, gastrointestinal, sudomotor, vasomotor, and thermoregulatory functions. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ *** Absence-seizure [Absence seizures present with a sudden cessation of activity and awareness. Absence seizures tend to occur in younger age groups, have more sudden start and termination, and they usually display less complex automatisms than do focal seizures with impaired awareness, but the distinctions are not absolute. EEG information may be required for accurate classification. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Typical-absence-seizure [A sudden onset, interruption of ongoing activities, a blank stare, possibly a brief upward deviation of the eyes. Usually the patient will be unresponsive when spoken to. Duration is a few seconds to half a minute with very rapid recovery. Although not always available, an EEG would show generalized epileptiform discharges during the event. An absence seizure is by definition a seizure of generalized onset. The word is not synonymous with a blank stare, which also can be encountered with focal onset seizures. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Atypical-absence-seizure [An absence seizure with changes in tone that are more pronounced than in typical absence or the onset and/or cessation is not abrupt, often associated with slow, irregular, generalized spike-wave activity. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Myoclonic-absence-seizure [A myoclonic absence seizure refers to an absence seizure with rhythmic three-per-second myoclonic movements, causing ratcheting abduction of the upper limbs leading to progressive arm elevation, and associated with three-per-second generalized spike-wave discharges. Duration is typically 10 to 60 s. Impairment of consciousness may not be obvious. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Eyelid-myoclonia-absence-seizure [Eyelid myoclonia are myoclonic jerks of the eyelids and upward deviation of the eyes, often precipitated by closing the eyes or by light. Eyelid myoclonia can be associated with absences, but also can be motor seizures without a corresponding absence, making them difficult to categorize. The 2017 classification groups them with nonmotor (absence) seizures, which may seem counterintuitive, but the myoclonia in this instance is meant to link with absence, rather than with nonmotor. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
** Episode-phase {requireChild, suggestedTag=Seizure-semiology-manifestation, suggestedTag=Postictal-semiology-manifestation, suggestedTag=Ictal-EEG-patterns} [The electroclinical findings (i.e., the seizure semiology and the ictal EEG) are divided in three phases: onset, propagation, and postictal.]
*** Episode-phase-initial
*** Episode-phase-subsequent
*** Episode-phase-postictal
- ** Seizure-semiology-manifestation {requireChild} [Semiology is described according to the ILAE Glossary of Descriptive Terminology for Ictal Semiology (Blume et al., 2001). Besides the name, the semiologic finding can also be characterized by the somatotopic modifier, laterality, body part and centricity. Uses Location-property tags.]
+ ** Seizure-semiology-manifestation {requireChild} [Seizure semiology refers to the clinical features or signs that are observed during a seizure, such as the type of movements or behaviors exhibited by the person having the seizure, the duration of the seizure, the level of consciousness, and any associated symptoms such as aura or postictal confusion. In other words, seizure semiology describes the physical manifestations of a seizure. Semiology is described according to the ILAE Glossary of Descriptive Terminology for Ictal Semiology (Blume et al., 2001). Besides the name, the semiologic finding can also be characterized by the somatotopic modifier, laterality, body part and centricity. Uses Location-property tags.]
*** Semiology-motor-manifestation
**** Semiology-elementary-motor
- ***** Semiology-motor-tonic {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [A sustained increase in muscle contraction lasting a few seconds to minutes.]
- ***** Semiology-motor-dystonic {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Sustained contractions of both agonist and antagonist muscles producing athetoid or twisting movements, which, when prolonged, may produce abnormal postures.]
- ***** Semiology-motor-epileptic-spasm {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [A sudden flexion, extension, or mixed extension flexion of predominantly proximal and truncal muscles that is usually more sustained than a myoclonic movement but not so sustained as a tonic seizure (i.e., about 1 s). Limited forms may occur: grimacing, head nodding. Frequent occurrence in clusters.]
- ***** Semiology-motor-postural {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Adoption of a posture that may be bilaterally symmetric or asymmetric (as in a fencing posture).]
- ***** Semiology-motor-versive {suggestedTag=Body-part, suggestedTag=Episode-event-count} [A sustained, forced conjugate ocular, cephalic, and/or truncal rotation or lateral deviation from the midline.]
- ***** Semiology-motor-clonic {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Myoclonus that is regularly repetitive, involves the same muscle groups, at a frequency of about 2 to 3 c/s, and is prolonged. Synonym: rhythmic myoclonus .]
- ***** Semiology-motor-myoclonic {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Characterized by myoclonus. MYOCLONUS : sudden, brief (lower than 100 ms) involuntary single or multiple contraction(s) of muscles(s) or muscle groups of variable topography (axial, proximal limb, distal).]
- ***** Semiology-motor-jacksonian-march {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Term indicating spread of clonic movements through contiguous body parts unilaterally.]
- ***** Semiology-motor-negative-myoclonus {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Characterized by negative myoclonus. NEGATIVE MYOCLONUS: interruption of tonic muscular activity for lower than 500 ms without evidence of preceding myoclonia.]
+ ***** Semiology-motor-tonic {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [A sustained increase in muscle contraction lasting a few seconds to minutes.]
+ ***** Semiology-motor-dystonic {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Sustained contractions of both agonist and antagonist muscles producing athetoid or twisting movements, which, when prolonged, may produce abnormal postures.]
+ ***** Semiology-motor-epileptic-spasm {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [A sudden flexion, extension, or mixed extension flexion of predominantly proximal and truncal muscles that is usually more sustained than a myoclonic movement but not so sustained as a tonic seizure (i.e., about 1 s). Limited forms may occur: grimacing, head nodding. Frequent occurrence in clusters.]
+ ***** Semiology-motor-postural {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Adoption of a posture that may be bilaterally symmetric or asymmetric (as in a fencing posture).]
+ ***** Semiology-motor-versive {suggestedTag=Body-part-location, suggestedTag=Episode-event-count} [A sustained, forced conjugate ocular, cephalic, and/or truncal rotation or lateral deviation from the midline.]
+ ***** Semiology-motor-clonic {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Myoclonus that is regularly repetitive, involves the same muscle groups, at a frequency of about 2 to 3 c/s, and is prolonged. Synonym: rhythmic myoclonus .]
+ ***** Semiology-motor-myoclonic {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Characterized by myoclonus. MYOCLONUS : sudden, brief (lower than 100 ms) involuntary single or multiple contraction(s) of muscles(s) or muscle groups of variable topography (axial, proximal limb, distal).]
+ ***** Semiology-motor-jacksonian-march {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Term indicating spread of clonic movements through contiguous body parts unilaterally.]
+ ***** Semiology-motor-negative-myoclonus {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Characterized by negative myoclonus. NEGATIVE MYOCLONUS: interruption of tonic muscular activity for lower than 500 ms without evidence of preceding myoclonia.]
***** Semiology-motor-tonic-clonic {requireChild} [A sequence consisting of a tonic followed by a clonic phase. Variants such as clonic-tonic-clonic may be seen. Asymmetry of limb posture during the tonic phase of a GTC: one arm is rigidly extended at the elbow (often with the fist clenched tightly and flexed at the wrist), whereas the opposite arm is flexed at the elbow.]
- ****** Semiology-motor-tonic-clonic-without-figure-of-four {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count}
- ****** Semiology-motor-tonic-clonic-with-figure-of-four-extension-left-elbow {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count}
- ****** Semiology-motor-tonic-clonic-with-figure-of-four-extension-right-elbow {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count}
- ***** Semiology-motor-astatic {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Loss of erect posture that results from an atonic, myoclonic, or tonic mechanism. Synonym: drop attack.]
- ***** Semiology-motor-atonic {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Sudden loss or diminution of muscle tone without apparent preceding myoclonic or tonic event lasting greater or equal to 1 to 2 s, involving head, trunk, jaw, or limb musculature.]
+ ****** Semiology-motor-tonic-clonic-without-figure-of-four {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count}
+ ****** Semiology-motor-tonic-clonic-with-figure-of-four-extension-left-elbow {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count}
+ ****** Semiology-motor-tonic-clonic-with-figure-of-four-extension-right-elbow {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count}
+ ***** Semiology-motor-astatic {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Loss of erect posture that results from an atonic, myoclonic, or tonic mechanism. Synonym: drop attack.]
+ ***** Semiology-motor-atonic {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Sudden loss or diminution of muscle tone without apparent preceding myoclonic or tonic event lasting greater or equal to 1 to 2 s, involving head, trunk, jaw, or limb musculature.]
***** Semiology-motor-eye-blinking {suggestedTag=Brain-laterality, suggestedTag=Episode-event-count}
***** Semiology-motor-other-elementary-motor {requireChild}
****** # {takesValue, valueClass=textClass} [Free text.]
@@ -694,26 +566,26 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
***** Semiology-motor-automatisms-mimetic {suggestedTag=Episode-responsiveness, suggestedTag=Episode-appearance, suggestedTag=Episode-event-count} [Facial expression suggesting an emotional state, often fear.]
***** Semiology-motor-automatisms-oroalimentary {suggestedTag=Episode-responsiveness, suggestedTag=Episode-appearance, suggestedTag=Episode-event-count} [Lip smacking, lip pursing, chewing, licking, tooth grinding, or swallowing.]
***** Semiology-motor-automatisms-dacrystic {suggestedTag=Episode-responsiveness, suggestedTag=Episode-appearance, suggestedTag=Episode-event-count} [Bursts of crying.]
- ***** Semiology-motor-automatisms-dyspraxic {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-responsiveness, suggestedTag=Episode-appearance, suggestedTag=Episode-event-count} [Inability to perform learned movements spontaneously or on command or imitation despite intact relevant motor and sensory systems and adequate comprehension and cooperation.]
+ ***** Semiology-motor-automatisms-dyspraxic {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-responsiveness, suggestedTag=Episode-appearance, suggestedTag=Episode-event-count} [Inability to perform learned movements spontaneously or on command or imitation despite intact relevant motor and sensory systems and adequate comprehension and cooperation.]
***** Semiology-motor-automatisms-manual {suggestedTag=Brain-laterality, suggestedTag=Brain-centricity, suggestedTag=Episode-responsiveness, suggestedTag=Episode-appearance, suggestedTag=Episode-event-count} [1. Indicates principally distal components, bilateral or unilateral. 2. Fumbling, tapping, manipulating movements.]
***** Semiology-motor-automatisms-gestural {suggestedTag=Brain-laterality, suggestedTag=Episode-responsiveness, suggestedTag=Episode-appearance, suggestedTag=Episode-event-count} [Semipurposive, asynchronous hand movements. Often unilateral.]
***** Semiology-motor-automatisms-pedal {suggestedTag=Brain-laterality, suggestedTag=Brain-centricity, suggestedTag=Episode-responsiveness, suggestedTag=Episode-appearance, suggestedTag=Episode-event-count} [1. Indicates principally distal components, bilateral or unilateral. 2. Fumbling, tapping, manipulating movements.]
- ***** Semiology-motor-automatisms-hypermotor {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-responsiveness, suggestedTag=Episode-appearance, suggestedTag=Episode-event-count} [1. Involves predominantly proximal limb or axial muscles producing irregular sequential ballistic movements, such as pedaling, pelvic thrusting, thrashing, rocking movements. 2. Increase in rate of ongoing movements or inappropriately rapid performance of a movement.]
- ***** Semiology-motor-automatisms-hypokinetic {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-responsiveness, suggestedTag=Episode-appearance, suggestedTag=Episode-event-count} [A decrease in amplitude and/or rate or arrest of ongoing motor activity.]
+ ***** Semiology-motor-automatisms-hypermotor {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-responsiveness, suggestedTag=Episode-appearance, suggestedTag=Episode-event-count} [1. Involves predominantly proximal limb or axial muscles producing irregular sequential ballistic movements, such as pedaling, pelvic thrusting, thrashing, rocking movements. 2. Increase in rate of ongoing movements or inappropriately rapid performance of a movement.]
+ ***** Semiology-motor-automatisms-hypokinetic {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-responsiveness, suggestedTag=Episode-appearance, suggestedTag=Episode-event-count} [A decrease in amplitude and/or rate or arrest of ongoing motor activity.]
***** Semiology-motor-automatisms-gelastic {suggestedTag=Episode-responsiveness, suggestedTag=Episode-appearance, suggestedTag=Episode-event-count} [Bursts of laughter or giggling, usually without an appropriate affective tone.]
***** Semiology-motor-other-automatisms {requireChild}
****** # {takesValue, valueClass=textClass} [Free text.]
- **** Semiology-motor-behavioral-arrest {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Interruption of ongoing motor activity or of ongoing behaviors with fixed gaze, without movement of the head or trunk (oro-alimentary and hand automatisms may continue).]
+ **** Semiology-motor-behavioral-arrest {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Interruption of ongoing motor activity or of ongoing behaviors with fixed gaze, without movement of the head or trunk (oro-alimentary and hand automatisms may continue).]
*** Semiology-non-motor-manifestation
**** Semiology-sensory
***** Semiology-sensory-headache {suggestedTag=Brain-laterality, suggestedTag=Episode-event-count} [Headache occurring in close temporal proximity to the seizure or as the sole seizure manifestation.]
***** Semiology-sensory-visual {suggestedTag=Brain-laterality, suggestedTag=Episode-event-count} [Flashing or flickering lights, spots, simple patterns, scotomata, or amaurosis.]
***** Semiology-sensory-auditory {suggestedTag=Brain-laterality, suggestedTag=Episode-event-count} [Buzzing, drumming sounds or single tones.]
- ***** Semiology-sensory-olfactory {suggestedTag=Body-part, suggestedTag=Episode-event-count}
+ ***** Semiology-sensory-olfactory {suggestedTag=Body-part-location, suggestedTag=Episode-event-count}
***** Semiology-sensory-gustatory {suggestedTag=Episode-event-count} [Taste sensations including acidic, bitter, salty, sweet, or metallic.]
***** Semiology-sensory-epigastric {suggestedTag=Episode-event-count} [Abdominal discomfort including nausea, emptiness, tightness, churning, butterflies, malaise, pain, and hunger; sensation may rise to chest or throat. Some phenomena may reflect ictal autonomic dysfunction.]
- ***** Semiology-sensory-somatosensory {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Tingling, numbness, electric-shock sensation, sense of movement or desire to move.]
- ***** Semiology-sensory-painful {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Peripheral (lateralized/bilateral), cephalic, abdominal.]
+ ***** Semiology-sensory-somatosensory {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Tingling, numbness, electric-shock sensation, sense of movement or desire to move.]
+ ***** Semiology-sensory-painful {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Peripheral (lateralized/bilateral), cephalic, abdominal.]
***** Semiology-sensory-autonomic-sensation {suggestedTag=Episode-event-count} [A sensation consistent with involvement of the autonomic nervous system, including cardiovascular, gastrointestinal, sudomotor, vasomotor, and thermoregulatory functions. (Thus autonomic aura; cf. autonomic events 3.0).]
***** Semiology-sensory-other {requireChild}
****** # {takesValue, valueClass=textClass} [Free text.]
@@ -761,7 +633,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
*** Postictal-semiology-nose-wiping {suggestedTag=Brain-laterality, suggestedTag=Episode-event-count} [Noes-wiping usually within 60 sec of seizure offset, usually with the hand ipsilateral to the seizure onset.]
*** Postictal-semiology-anterograde-amnesia {suggestedTag=Episode-event-count} [Impaired ability to remember new material.]
*** Postictal-semiology-retrograde-amnesia {suggestedTag=Episode-event-count} [Impaired ability to recall previously remember material.]
- *** Postictal-semiology-paresis {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Todds palsy. Any unilateral postictal dysfunction relating to motor, language, sensory and/or integrative functions.]
+ *** Postictal-semiology-paresis {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count} [Todds palsy. Any unilateral postictal dysfunction relating to motor, language, sensory and/or integrative functions.]
*** Postictal-semiology-sleep [Invincible need to sleep after a seizure.]
*** Postictal-semiology-unilateral-myoclonic-jerks [unilateral motor phenomena, other then specified, occurring in postictal phase.]
*** Postictal-semiology-other-unilateral-motor-phenomena {requireChild}
@@ -773,7 +645,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
*** Ictal-EEG-patterns-obscured-by-artifacts [The interpretation of the EEG is not possible due to artifacts.]
**** # {takesValue, valueClass=textClass} [Free text.]
*** Ictal-EEG-activity {suggestedTag=Polyspikes-morphology, suggestedTag=Fast-spike-activity-morphology, suggestedTag=Low-voltage-fast-activity-morphology, suggestedTag=Polysharp-waves-morphology, suggestedTag=Spike-and-slow-wave-morphology, suggestedTag=Polyspike-and-slow-wave-morphology, suggestedTag=Sharp-and-slow-wave-morphology, suggestedTag=Rhythmic-activity-morphology, suggestedTag=Slow-wave-large-amplitude-morphology, suggestedTag=Irregular-delta-or-theta-activity-morphology, suggestedTag=Electrodecremental-change-morphology, suggestedTag=DC-shift-morphology, suggestedTag=Disappearance-of-ongoing-activity-morphology, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Source-analysis-laterality, suggestedTag=Source-analysis-brain-region, suggestedTag=Episode-event-count}
- *** Postictal-EEG-activity {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity}
+ *** Postictal-EEG-activity {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity}
** Episode-time-context-property [Additional clinically relevant features related to episodes can be scored under timing and context. If needed, episode duration can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Temporal-value/Duration.]
*** Episode-consciousness {requireChild, suggestedTag=Property-not-possible-to-determine}
**** Episode-consciousness-not-tested
@@ -863,6 +735,145 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
** Property-absence
*** # {takesValue, valueClass=textClass} [Free text.]
+'''Interictal-finding''' {requireChild} [EEG pattern / transient that is distinguished form the background activity, considered abnormal, but is not recorded during ictal period (seizure) or postictal period; the presence of an interictal finding does not necessarily imply that the patient has epilepsy.]
+ * Epileptiform-interictal-activity {suggestedTag=Spike-morphology, suggestedTag=Spike-and-slow-wave-morphology, suggestedTag=Runs-of-rapid-spikes-morphology, suggestedTag=Polyspikes-morphology, suggestedTag=Polyspike-and-slow-wave-morphology, suggestedTag=Sharp-wave-morphology, suggestedTag=Sharp-and-slow-wave-morphology, suggestedTag=Slow-sharp-wave-morphology, suggestedTag=High-frequency-oscillation-morphology, suggestedTag=Hypsarrhythmia-classic-morphology, suggestedTag=Hypsarrhythmia-modified-morphology, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-propagation, suggestedTag=Multifocal-finding, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, suggestedTag=Finding-incidence}
+ * Abnormal-interictal-rhythmic-activity {suggestedTag=Rhythmic-activity-morphology, suggestedTag=Polymorphic-delta-activity-morphology, suggestedTag=Frontal-intermittent-rhythmic-delta-activity-morphology, suggestedTag=Occipital-intermittent-rhythmic-delta-activity-morphology, suggestedTag=Temporal-intermittent-rhythmic-delta-activity-morphology, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, suggestedTag=Finding-incidence}
+ * Interictal-special-patterns {requireChild}
+ ** Interictal-periodic-discharges {suggestedTag=Periodic-discharge-morphology, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Periodic-discharge-time-related-features} [Periodic discharge not further specified (PDs).]
+ *** Generalized-periodic-discharges [GPDs.]
+ *** Lateralized-periodic-discharges [LPDs.]
+ *** Bilateral-independent-periodic-discharges [BIPDs.]
+ *** Multifocal-periodic-discharges [MfPDs.]
+ ** Extreme-delta-brush {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern}
+
+'''Physiologic-pattern''' {requireChild} [EEG graphoelements or rhythms that are considered normal. They only should be scored if the physician considers that they have a specific clinical significance for the recording.]
+ * Rhythmic-activity-pattern {suggestedTag=Rhythmic-activity-morphology, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [Not further specified.]
+ * Slow-alpha-variant-rhythm {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [Characteristic rhythms mostly at 4-5 Hz, recorded most prominently over the posterior regions of the head. Generally alternate, or are intermixed, with alpha rhythm to which they often are harmonically related. Amplitude varies but is frequently close to 50 micro V. Blocked or attenuated by attention, especially visual, and mental effort. Comment: slow alpha variant rhythms should be distinguished from posterior slow waves characteristic of children and adolescents and occasionally seen in young adults.]
+ * Fast-alpha-variant-rhythm {suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [Characteristic rhythm at 14-20 Hz, detected most prominently over the posterior regions of the head. May alternate or be intermixed with alpha rhythm. Blocked or attenuated by attention, especially visual, and mental effort.]
+ * Ciganek-rhythm {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [Midline theta rhythm (Ciganek rhythm) may be observed during wakefulness or drowsiness. The frequency is 4-7 Hz, and the location is midline (ie, vertex). The morphology is rhythmic, smooth, sinusoidal, arciform, spiky, or mu-like.]
+ * Lambda-wave {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [Diphasic sharp transient occurring over occipital regions of the head of waking subjects during visual exploration. The main component is positive relative to other areas. Time-locked to saccadic eye movement. Amplitude varies but is generally below 50 micro V.]
+ * Posterior-slow-waves-youth {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [Waves in the delta and theta range, of variable form, lasting 0.35 to 0.5 s or longer without any consistent periodicity, found in the range of 6-12 years (occasionally seen in young adults). Alpha waves are almost always intermingled or superimposed. Reactive similar to alpha activity.]
+ * Diffuse-slowing-hyperventilation {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [Diffuse slowing induced by hyperventilation. Bilateral, diffuse slowing during hyperventilation. Recorded in 70 percent of normal children (3-5 years) and less then 10 percent of adults. Usually appear in the posterior regions and spread forward in younger age group, whereas they tend to appear in the frontal regions and spread backward in the older age group.]
+ * Photic-driving {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [Physiologic response consisting of rhythmic activity elicited over the posterior regions of the head by repetitive photic stimulation at frequencies of about 5-30 Hz. Comments: term should be limited to activity time-locked to the stimulus and of frequency identical or harmonically related to the stimulus frequency. Photic driving should be distinguished from the visual evoked potentials elicited by isolated flashes of light or flashes repeated at very low frequency.]
+ * Photomyogenic-response {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [A response to intermittent photic stimulation characterized by the appearance in the record of brief, repetitive muscular artifacts (spikes) over the anterior regions of the head. These often increase gradually in amplitude as stimuli are continued and cease promptly when the stimulus is withdrawn. Comment: this response is frequently associated with flutter of the eyelids and vertical oscillations of the eyeballs and sometimes with discrete jerking mostly involving the musculature of the face and head. (Preferred to synonym: photo-myoclonic response).]
+ * Other-physiologic-pattern {requireChild}
+ ** # {takesValue, valueClass=textClass} [Free text.]
+
+'''Polygraphic-channel-finding''' {requireChild} [Changes observed in polygraphic channels can be scored: EOG, Respiration, ECG, EMG, other polygraphic channel (+ free text), and their significance logged (normal, abnormal, no definite abnormality).]
+ * EOG-channel-finding {suggestedTag=Finding-significance-to-recording} [ElectroOculoGraphy.]
+ ** # {takesValue, valueClass=textClass} [Free text.]
+ * Respiration-channel-finding {suggestedTag=Finding-significance-to-recording}
+ ** Respiration-oxygen-saturation
+ *** # {takesValue, valueClass=numericClass}
+ ** Respiration-feature
+ *** Apnoe-respiration [Add duration (range in seconds) and comments in free text.]
+ **** # {takesValue, valueClass=textClass} [Free text.]
+ *** Hypopnea-respiration [Add duration (range in seconds) and comments in free text]
+ **** # {takesValue, valueClass=textClass} [Free text.]
+ *** Apnea-hypopnea-index-respiration {requireChild} [Events/h. Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency]
+ **** # {takesValue, valueClass=textClass} [Free text.]
+ *** Periodic-respiration
+ **** # {takesValue, valueClass=textClass} [Free text.]
+ *** Tachypnea-respiration {requireChild} [Cycles/min. Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency]
+ **** # {takesValue, valueClass=textClass} [Free text.]
+ *** Other-respiration-feature {requireChild}
+ **** # {takesValue, valueClass=textClass} [Free text.]
+ * ECG-channel-finding {suggestedTag=Finding-significance-to-recording} [Electrocardiography.]
+ ** ECG-QT-period
+ *** # {takesValue, valueClass=textClass} [Free text.]
+ ** ECG-feature
+ *** ECG-sinus-rhythm [Normal rhythm. Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency]
+ **** # {takesValue, valueClass=textClass} [Free text.]
+ *** ECG-arrhythmia
+ **** # {takesValue, valueClass=textClass} [Free text.]
+ *** ECG-asystolia [Add duration (range in seconds) and comments in free text.]
+ **** # {takesValue, valueClass=textClass} [Free text.]
+ *** ECG-bradycardia [Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency]
+ **** # {takesValue, valueClass=textClass} [Free text.]
+ *** ECG-extrasystole
+ **** # {takesValue, valueClass=textClass} [Free text.]
+ *** ECG-ventricular-premature-depolarization [Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency]
+ **** # {takesValue, valueClass=textClass} [Free text.]
+ *** ECG-tachycardia [Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency]
+ **** # {takesValue, valueClass=textClass} [Free text.]
+ *** Other-ECG-feature {requireChild}
+ **** # {takesValue, valueClass=textClass} [Free text.]
+ * EMG-channel-finding {suggestedTag=Finding-significance-to-recording} [electromyography]
+ ** EMG-muscle-side
+ *** EMG-left-muscle
+ **** # {takesValue, valueClass=textClass} [Free text.]
+ *** EMG-right-muscle
+ **** # {takesValue, valueClass=textClass} [Free text.]
+ *** EMG-bilateral-muscle
+ **** # {takesValue, valueClass=textClass} [Free text.]
+ ** EMG-muscle-name
+ *** # {takesValue, valueClass=textClass} [Free text.]
+ ** EMG-feature
+ *** EMG-myoclonus
+ **** Negative-myoclonus
+ ***** # {takesValue, valueClass=textClass} [Free text.]
+ **** EMG-myoclonus-rhythmic
+ ***** # {takesValue, valueClass=textClass} [Free text.]
+ **** EMG-myoclonus-arrhythmic
+ ***** # {takesValue, valueClass=textClass} [Free text.]
+ **** EMG-myoclonus-synchronous
+ ***** # {takesValue, valueClass=textClass} [Free text.]
+ **** EMG-myoclonus-asynchronous
+ ***** # {takesValue, valueClass=textClass} [Free text.]
+ *** EMG-PLMS [Periodic limb movements in sleep.]
+ *** EMG-spasm
+ **** # {takesValue, valueClass=textClass} [Free text.]
+ *** EMG-tonic-contraction
+ **** # {takesValue, valueClass=textClass} [Free text.]
+ *** EMG-asymmetric-activation {requireChild}
+ **** EMG-asymmetric-activation-left-first
+ ***** # {takesValue, valueClass=textClass} [Free text.]
+ **** EMG-asymmetric-activation-right-first
+ ***** # {takesValue, valueClass=textClass} [Free text.]
+ *** Other-EMG-features {requireChild}
+ **** # {takesValue, valueClass=textClass} [Free text.]
+ * Other-polygraphic-channel {requireChild}
+ ** # {takesValue, valueClass=textClass} [Free text.]
+
+'''Sleep-and-drowsiness''' {requireChild} [The features of the ongoing activity during sleep are scored here. If abnormal graphoelements appear, disappear or change their morphology during sleep, that is not scored here but at the entry corresponding to that graphooelement (as a modulator).]
+ * Sleep-architecture {suggestedTag=Property-not-possible-to-determine} [For longer recordings. Only to be scored if whole-night sleep is part of the recording. It is a global descriptor of the structure and pattern of sleep: estimation of the amount of time spent in REM and NREM sleep, sleep duration, NREM-REM cycle.]
+ ** Normal-sleep-architecture
+ ** Abnormal-sleep-architecture
+ * Sleep-stage-reached {requireChild, suggestedTag=Property-not-possible-to-determine, suggestedTag=Finding-significance-to-recording} [For normal sleep patterns the sleep stages reached during the recording can be specified]
+ ** Sleep-stage-N1 [Sleep stage 1.]
+ *** # {takesValue, valueClass=textClass} [Free text.]
+ ** Sleep-stage-N2 [Sleep stage 2.]
+ *** # {takesValue, valueClass=textClass} [Free text.]
+ ** Sleep-stage-N3 [Sleep stage 3.]
+ *** # {takesValue, valueClass=textClass} [Free text.]
+ ** Sleep-stage-REM [Rapid eye movement.]
+ *** # {takesValue, valueClass=textClass} [Free text.]
+ * Sleep-spindles {suggestedTag=Finding-significance-to-recording, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-amplitude-asymmetry} [Burst at 11-15 Hz but mostly at 12-14 Hz generally diffuse but of higher voltage over the central regions of the head, occurring during sleep. Amplitude varies but is mostly below 50 microV in the adult.]
+ * Arousal-pattern {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [Arousal pattern in children. Prolonged, marked high voltage 4-6/s activity in all leads with some intermixed slower frequencies, in children.]
+ * Frontal-arousal-rhythm {suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [Prolonged (up to 20s) rhythmical sharp or spiky activity over the frontal areas (maximum over the frontal midline) seen at arousal from sleep in children with minimal cerebral dysfunction.]
+ * Vertex-wave {suggestedTag=Finding-significance-to-recording, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-amplitude-asymmetry} [Sharp potential, maximal at the vertex, negative relative to other areas, apparently occurring spontaneously during sleep or in response to a sensory stimulus during sleep or wakefulness. May be single or repetitive. Amplitude varies but rarely exceeds 250 microV. Abbreviation: V wave. Synonym: vertex sharp wave.]
+ * K-complex {suggestedTag=Finding-significance-to-recording, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-amplitude-asymmetry} [A burst of somewhat variable appearance, consisting most commonly of a high voltage negative slow wave followed by a smaller positive slow wave frequently associated with a sleep spindle. Duration greater than 0.5 s. Amplitude is generally maximal in the frontal vertex. K complexes occur during nonREM sleep, apparently spontaneously, or in response to sudden sensory / auditory stimuli, and are not specific for any individual sensory modality.]
+ * Saw-tooth-waves {suggestedTag=Finding-significance-to-recording, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-amplitude-asymmetry} [Vertex negative 2-5 Hz waves occuring in series during REM sleep]
+ * POSTS {suggestedTag=Finding-significance-to-recording, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-amplitude-asymmetry} [Positive occipital sharp transients of sleep. Sharp transient maximal over the occipital regions, positive relative to other areas, apparently occurring spontaneously during sleep. May be single or repetitive. Amplitude varies but is generally bellow 50 microV.]
+ * Hypnagogic-hypersynchrony {suggestedTag=Finding-significance-to-recording, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-amplitude-asymmetry} [Bursts of bilateral, synchronous delta or theta activity of large amplitude, occasionally with superimposed faster components, occurring during falling asleep or during awakening, in children.]
+ * Non-reactive-sleep [EEG activity consisting of normal sleep graphoelements, but which cannot be interrupted by external stimuli/ the patient cannot be waken.]
+
+'''Uncertain-significant-pattern''' {requireChild} [EEG graphoelements or rhythms that resemble abnormal patterns but that are not necessarily associated with a pathology, and the physician does not consider them abnormal in the context of the scored recording (like normal variants and patterns).]
+ * Sharp-transient-pattern {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern}
+ * Wicket-spikes [Spike-like monophasic negative single waves or trains of waves occurring over the temporal regions during drowsiness that have an arcuate or mu-like appearance. These are mainly seen in older individuals and represent a benign variant that is of little clinical significance.]
+ * Small-sharp-spikes {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [Benign epileptiform Transients of Sleep (BETS). Small sharp spikes (SSS) of very short duration and low amplitude, often followed by a small theta wave, occurring in the temporal regions during drowsiness and light sleep. They occur on one or both sides (often asynchronously). The main negative and positive components are of about equally spiky character. Rarely seen in children, they are seen most often in adults and the elderly. Two thirds of the patients have a history of epileptic seizures.]
+ * Fourteen-six-Hz-positive-burst {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [Burst of arch-shaped waves at 13-17 Hz and/or 5-7-Hz but most commonly at 14 and or 6 Hz seen generally over the posterior temporal and adjacent areas of one or both sides of the head during sleep. The sharp peaks of its component waves are positive with respect to other regions. Amplitude varies but is generally below 75 micro V. Comments: (1) best demonstrated by referential recording using contralateral earlobe or other remote, reference electrodes. (2) This pattern has no established clinical significance.]
+ * Six-Hz-spike-slow-wave {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [Spike and slow wave complexes at 4-7Hz, but mostly at 6 Hz occurring generally in brief bursts bilaterally and synchronously, symmetrically or asymmetrically, and either confined to or of larger amplitude over the posterior or anterior regions of the head. The spike has a strong positive component. Amplitude varies but is generally smaller than that of spike-and slow-wave complexes repeating at slower rates. Comment: this pattern should be distinguished from epileptiform discharges. Synonym: wave and spike phantom.]
+ * Rudimentary-spike-wave-complex {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [Synonym: Pseudo petit mal discharge. Paroxysmal discharge that consists of generalized or nearly generalized high voltage 3 to 4/sec waves with poorly developed spike in the positive trough between the slow waves, occurring in drowsiness only. It is found only in infancy and early childhood when marked hypnagogic rhythmical theta activity is paramount in the drowsy state.]
+ * Slow-fused-transient {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [A posterior slow-wave preceded by a sharp-contoured potential that blends together with the ensuing slow wave, in children.]
+ * Needle-like-occipital-spikes-blind {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [Spike discharges of a particularly fast and needle-like character develop over the occipital region in most congenitally blind children. Completely disappear during childhood or adolescence.]
+ * Subclinical-rhythmic-EEG-discharge-adults {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [Subclinical rhythmic EEG discharge of adults (SERDA). A rhythmic pattern seen in the adult age group, mainly in the waking state or drowsiness. It consists of a mixture of frequencies, often predominant in the theta range. The onset may be fairly abrupt with widespread sharp rhythmical theta and occasionally with delta activity. As to the spatial distribution, a maximum of this discharge is usually found over the centroparietal region and especially over the vertex. It may resemble a seizure discharge but is not accompanied by any clinical signs or symptoms.]
+ * Rhythmic-temporal-theta-burst-drowsiness [Rhythmic temporal theta burst of drowsiness (RTTD). Characteristic burst of 4-7 Hz waves frequently notched by faster waves, occurring over the temporal regions of the head during drowsiness. Synonym: psychomotor variant pattern. Comment: this is a pattern of drowsiness that is of no clinical significance.]
+ * Temporal-slowing-elderly {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [Focal theta and/or delta activity over the temporal regions, especially the left, in persons over the age of 60. Amplitudes are low/similar to the background activity. Comment: focal temporal theta was found in 20 percent of people between the ages of 40-59 years, and 40 percent of people between 60 and 79 years. One third of people older than 60 years had focal temporal delta activity.]
+ * Breach-rhythm {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern} [Rhythmical activity recorded over cranial bone defects. Usually it is in the 6 to 11/sec range, does not respond to movements.]
+ * Other-uncertain-significant-pattern {requireChild}
+ ** # {takesValue, valueClass=textClass} [Free text.]
+
!# end schema
@@ -884,6 +895,6 @@ A second revised and extended version of SCORE achieved international consensus.
[1] Beniczky, Sandor, et al. "Standardized computer based organized reporting of EEG: SCORE." Epilepsia 54.6 (2013).
[2] Beniczky, Sandor, et al. "Standardized computer based organized reporting of EEG: SCORE second version." Clinical Neurophysiology 128.11 (2017).
-TPA, November 2022
+TPA, March 2023
!# end hed
diff --git a/tests/data/schema_tests/merge_tests/HED_score_lib_tags.xml b/tests/data/schema_tests/merge_tests/HED_score_lib_tags.xml
index 9566f37de..b758be14d 100644
--- a/tests/data/schema_tests/merge_tests/HED_score_lib_tags.xml
+++ b/tests/data/schema_tests/merge_tests/HED_score_lib_tags.xml
@@ -1,5 +1,5 @@
-
+This schema is a Hierarchical Event Descriptors (HED) Library Schema implementation of Standardized Computer-based Organized Reporting of EEG (SCORE)[1,2] for describing events occurring during neuroimaging time series recordings.
The HED-SCORE library schema allows neurologists, neurophysiologists, and brain researchers to annotate electrophysiology recordings using terms from an internationally accepted set of defined terms (SCORE) compatible with the HED framework.
The resulting annotations are understandable to clinicians and directly usable in computer analysis.
@@ -169,6 +169,10 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
requireChild
+
+ suggestedTag
+ Intermittent-photic-stimulation-effect
+ #
@@ -286,13 +290,8 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
suggestedTagFinding-significance-to-recordingFinding-frequency
- Posterior-dominant-rhythm-amplitude-rangeFinding-amplitude-asymmetry
- Posterior-dominant-rhythm-frequency-asymmetry
- Posterior-dominant-rhythm-eye-opening-reactivity
- Posterior-dominant-rhythm-organization
- Posterior-dominant-rhythm-caveat
- Absence-of-posterior-dominant-rhythm
+ Posterior-dominant-rhythm-property
@@ -315,11 +314,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
suggestedTag
- Delta-activity-morphology
- Theta-activity-morphology
- Alpha-activity-morphology
- Beta-activity-morphology
- Gamma-activity-morphology
+ Rhythmic-activity-morphologyFinding-significance-to-recordingBrain-lateralityBrain-region
@@ -349,11 +344,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
Continuous-background-activitysuggestedTag
- Delta-activity-morphology
- Theta-activity-morphology
- Alpha-activity-morphology
- Beta-activity-morphology
- Gamma-activity-morphology
+ Rhythmic-activity-morphologyBrain-lateralityBrain-regionSensors
@@ -364,11 +355,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
Nearly-continuous-background-activitysuggestedTag
- Delta-activity-morphology
- Theta-activity-morphology
- Alpha-activity-morphology
- Beta-activity-morphology
- Gamma-activity-morphology
+ Rhythmic-activity-morphologyBrain-lateralityBrain-regionSensors
@@ -379,11 +366,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
Discontinuous-background-activitysuggestedTag
- Delta-activity-morphology
- Theta-activity-morphology
- Alpha-activity-morphology
- Beta-activity-morphology
- Gamma-activity-morphology
+ Rhythmic-activity-morphologyBrain-lateralityBrain-regionSensors
@@ -430,297 +413,260 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Sleep-and-drowsiness
- The features of the ongoing activity during sleep are scored here. If abnormal graphoelements appear, disappear or change their morphology during sleep, that is not scored here but at the entry corresponding to that graphooelement (as a modulator).
+ Artifact
+ When relevant for the clinical interpretation, artifacts can be scored by specifying the type and the location.requireChild
- Sleep-architecture
- For longer recordings. Only to be scored if whole-night sleep is part of the recording. It is a global descriptor of the structure and pattern of sleep: estimation of the amount of time spent in REM and NREM sleep, sleep duration, NREM-REM cycle.
+ Biological-artifact
- suggestedTag
- Property-not-possible-to-determine
+ requireChild
- Normal-sleep-architecture
+ Eye-blink-artifact
+ Example for EEG: Fp1/Fp2 become electropositive with eye closure because the cornea is positively charged causing a negative deflection in Fp1/Fp2. If the eye blink is unilateral, consider prosthetic eye. If it is in F8 rather than Fp2 then the electrodes are plugged in wrong.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Multifocal-finding
+ Artifact-significance-to-recording
+
- Abnormal-sleep-architecture
+ Eye-movement-horizontal-artifact
+ Example for EEG: There is an upward deflection in the Fp2-F8 derivation, when the eyes move to the right side. In this case F8 becomes more positive and therefore. When the eyes move to the left, F7 becomes more positive and there is an upward deflection in the Fp1-F7 derivation.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Multifocal-finding
+ Artifact-significance-to-recording
+
-
-
- Sleep-stage-reached
- For normal sleep patterns the sleep stages reached during the recording can be specified
-
- requireChild
-
-
- suggestedTag
- Property-not-possible-to-determine
- Finding-significance-to-recording
-
- Sleep-stage-N1
- Sleep stage 1.
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
+ Eye-movement-vertical-artifact
+ Example for EEG: The EEG shows positive potentials (50-100 micro V) with bi-frontal distribution, maximum at Fp1 and Fp2, when the eyeball rotated upward. The downward rotation of the eyeball was associated with the negative deflection. The time course of the deflections was similar to the time course of the eyeball movement.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Multifocal-finding
+ Artifact-significance-to-recording
+
- Sleep-stage-N2
- Sleep stage 2.
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
+ Slow-eye-movement-artifact
+ Slow, rolling eye-movements, seen during drowsiness.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Multifocal-finding
+ Artifact-significance-to-recording
+
- Sleep-stage-N3
- Sleep stage 3.
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
+ Nystagmus-artifact
+
+ suggestedTag
+ Artifact-significance-to-recording
+
- Sleep-stage-REM
- Rapid eye movement.
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
+ Chewing-artifact
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Multifocal-finding
+ Artifact-significance-to-recording
+
+
+
+ Sucking-artifact
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Multifocal-finding
+ Artifact-significance-to-recording
+
+
+
+ Glossokinetic-artifact
+ The tongue functions as a dipole, with the tip negative with respect to the base. The artifact produced by the tongue has a broad potential field that drops from frontal to occipital areas, although it is less steep than that produced by eye movement artifacts. The amplitude of the potentials is greater inferiorly than in parasagittal regions; the frequency is variable but usually in the delta range. Chewing and sucking can produce similar artifacts.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Multifocal-finding
+ Artifact-significance-to-recording
+
+
+
+ Rocking-patting-artifact
+ Quasi-rhythmical artifacts in recordings from infants caused by rocking/patting.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Multifocal-finding
+ Artifact-significance-to-recording
+
+
+
+ Movement-artifact
+ Example for EEG: Large amplitude artifact, with irregular morphology (usually resembling a slow-wave or a wave with complex morphology) seen in one or several channels, due to movement. If the causing movement is repetitive, the artifact might resemble a rhythmic EEG activity.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Multifocal-finding
+ Artifact-significance-to-recording
+
+
+
+ Respiration-artifact
+ Respiration can produce 2 kinds of artifacts. One type is in the form of slow and rhythmic activity, synchronous with the body movements of respiration and mechanically affecting the impedance of (usually) one electrode. The other type can be slow or sharp waves that occur synchronously with inhalation or exhalation and involve those electrodes on which the patient is lying.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Multifocal-finding
+ Artifact-significance-to-recording
+
+
+
+ Pulse-artifact
+ Example for EEG: Occurs when an EEG electrode is placed over a pulsating vessel. The pulsation can cause slow waves that may simulate EEG activity. A direct relationship exists between ECG and the pulse waves (200-300 millisecond delay after ECG equals QRS complex).
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Multifocal-finding
+ Artifact-significance-to-recording
+
+
+
+ ECG-artifact
+ Example for EEG: Far-field potential generated in the heart. The voltage and apparent surface of the artifact vary from derivation to derivation and, consequently, from montage to montage. The artifact is observed best in referential montages using earlobe electrodes A1 and A2. ECG artifact is recognized easily by its rhythmicity/regularity and coincidence with the ECG tracing.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Multifocal-finding
+ Artifact-significance-to-recording
+
+
+
+ Sweat-artifact
+ Is a low amplitude undulating waveform that is usually greater than 2 seconds and may appear to be an unstable baseline.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Multifocal-finding
+ Artifact-significance-to-recording
+
+
+
+ EMG-artifact
+ Myogenic potentials are the most common artifacts. Frontalis and temporalis muscles (ex..: clenching of jaw muscles) are common causes. Generally, the potentials generated in the muscles are of shorter duration than those generated in the brain. The frequency components are usually beyond 30-50 Hz, and the bursts are arrhythmic.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Multifocal-finding
+ Artifact-significance-to-recording
+
- Sleep-spindles
- Burst at 11-15 Hz but mostly at 12-14 Hz generally diffuse but of higher voltage over the central regions of the head, occurring during sleep. Amplitude varies but is mostly below 50 microV in the adult.
+ Non-biological-artifact
- suggestedTag
- Finding-significance-to-recording
- Brain-laterality
- Brain-region
- Sensors
- Finding-amplitude-asymmetry
+ requireChild
+
+ Power-supply-artifact
+ 50-60 Hz artifact. Monomorphic waveform due to 50 or 60 Hz A/C power supply.
+
+ suggestedTag
+ Artifact-significance-to-recording
+
+
+
+ Induction-artifact
+ Artifacts (usually of high frequency) induced by nearby equipment (like in the intensive care unit).
+
+ suggestedTag
+ Artifact-significance-to-recording
+
+
+
+ Dialysis-artifact
+
+ suggestedTag
+ Artifact-significance-to-recording
+
+
+
+ Artificial-ventilation-artifact
+
+ suggestedTag
+ Artifact-significance-to-recording
+
+
+
+ Electrode-pops-artifact
+ Are brief discharges with a very steep upslope and shallow fall that occur in all leads which include that electrode.
+
+ suggestedTag
+ Artifact-significance-to-recording
+
+
+
+ Salt-bridge-artifact
+ Typically occurs in 1 channel which may appear isoelectric. Only seen in bipolar montage.
+
+ suggestedTag
+ Artifact-significance-to-recording
+
+
- Arousal-pattern
- Arousal pattern in children. Prolonged, marked high voltage 4-6/s activity in all leads with some intermixed slower frequencies, in children.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Appearance-mode
- Discharge-pattern
-
-
-
- Frontal-arousal-rhythm
- Prolonged (up to 20s) rhythmical sharp or spiky activity over the frontal areas (maximum over the frontal midline) seen at arousal from sleep in children with minimal cerebral dysfunction.
-
- suggestedTag
- Appearance-mode
- Discharge-pattern
-
-
-
- Vertex-wave
- Sharp potential, maximal at the vertex, negative relative to other areas, apparently occurring spontaneously during sleep or in response to a sensory stimulus during sleep or wakefulness. May be single or repetitive. Amplitude varies but rarely exceeds 250 microV. Abbreviation: V wave. Synonym: vertex sharp wave.
-
- suggestedTag
- Finding-significance-to-recording
- Brain-laterality
- Brain-region
- Sensors
- Finding-amplitude-asymmetry
-
-
-
- K-complex
- A burst of somewhat variable appearance, consisting most commonly of a high voltage negative slow wave followed by a smaller positive slow wave frequently associated with a sleep spindle. Duration greater than 0.5 s. Amplitude is generally maximal in the frontal vertex. K complexes occur during nonREM sleep, apparently spontaneously, or in response to sudden sensory / auditory stimuli, and are not specific for any individual sensory modality.
-
- suggestedTag
- Finding-significance-to-recording
- Brain-laterality
- Brain-region
- Sensors
- Finding-amplitude-asymmetry
-
-
-
- Saw-tooth-waves
- Vertex negative 2-5 Hz waves occuring in series during REM sleep
-
- suggestedTag
- Finding-significance-to-recording
- Brain-laterality
- Brain-region
- Sensors
- Finding-amplitude-asymmetry
-
-
-
- POSTS
- Positive occipital sharp transients of sleep. Sharp transient maximal over the occipital regions, positive relative to other areas, apparently occurring spontaneously during sleep. May be single or repetitive. Amplitude varies but is generally bellow 50 microV.
-
- suggestedTag
- Finding-significance-to-recording
- Brain-laterality
- Brain-region
- Sensors
- Finding-amplitude-asymmetry
-
-
-
- Hypnagogic-hypersynchrony
- Bursts of bilateral, synchronous delta or theta activity of large amplitude, occasionally with superimposed faster components, occurring during falling asleep or during awakening, in children.
-
- suggestedTag
- Finding-significance-to-recording
- Brain-laterality
- Brain-region
- Sensors
- Finding-amplitude-asymmetry
-
-
-
- Non-reactive-sleep
- EEG activity consisting of normal sleep graphoelements, but which cannot be interrupted by external stimuli/ the patient cannot be waken.
-
-
-
- Interictal-finding
- EEG pattern / transient that is distinguished form the background activity, considered abnormal, but is not recorded during ictal period (seizure) or postictal period; the presence of an interictal finding does not necessarily imply that the patient has epilepsy.
-
- requireChild
-
-
- Epileptiform-interictal-activity
+ Other-artifact
- suggestedTag
- Spike-morphology
- Spike-and-slow-wave-morphology
- Runs-of-rapid-spikes-morphology
- Polyspikes-morphology
- Polyspike-and-slow-wave-morphology
- Sharp-wave-morphology
- Sharp-and-slow-wave-morphology
- Slow-sharp-wave-morphology
- High-frequency-oscillation-morphology
- Hypsarrhythmia-classic-morphology
- Hypsarrhythmia-modified-morphology
- Brain-laterality
- Brain-region
- Sensors
- Finding-propagation
- Multifocal-finding
- Appearance-mode
- Discharge-pattern
- Finding-incidence
+ requireChild
-
-
- Abnormal-interictal-rhythmic-activitysuggestedTag
- Delta-activity-morphology
- Theta-activity-morphology
- Alpha-activity-morphology
- Beta-activity-morphology
- Gamma-activity-morphology
- Polymorphic-delta-activity-morphology
- Frontal-intermittent-rhythmic-delta-activity-morphology
- Occipital-intermittent-rhythmic-delta-activity-morphology
- Temporal-intermittent-rhythmic-delta-activity-morphology
- Brain-laterality
- Brain-region
- Sensors
- Appearance-mode
- Discharge-pattern
- Finding-incidence
-
-
-
- Interictal-special-patterns
-
- requireChild
+ Artifact-significance-to-recording
- Interictal-periodic-discharges
- Periodic discharge not further specified (PDs).
+ #
+ Free text.
- suggestedTag
- Periodic-discharges-superimposed-activity
- Periodic-discharge-sharpness
- Number-of-periodic-discharge-phases
- Periodic-discharge-triphasic-morphology
- Periodic-discharge-absolute-amplitude
- Periodic-discharge-relative-amplitude
- Periodic-discharge-polarity
- Brain-laterality
- Brain-region
- Sensors
- Periodic-discharge-duration
- Periodic-discharge-onset
- Periodic-discharge-dynamics
+ takesValue
-
- Generalized-periodic-discharges
- GPDs.
-
-
- Lateralized-periodic-discharges
- LPDs.
-
-
- Bilateral-independent-periodic-discharges
- BIPDs.
-
-
- Multifocal-periodic-discharges
- MfPDs.
-
-
-
- Extreme-delta-brush
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Appearance-mode
- Discharge-pattern
+ valueClass
+ textClass
@@ -736,20 +682,12 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
Periodic discharges (PDs).suggestedTag
- Periodic-discharges-superimposed-activity
- Periodic-discharge-sharpness
- Number-of-periodic-discharge-phases
- Periodic-discharge-triphasic-morphology
- Periodic-discharge-absolute-amplitude
- Periodic-discharge-relative-amplitude
- Periodic-discharge-polarity
+ Periodic-discharge-morphologyBrain-lateralityBrain-regionSensorsFinding-frequency
- Periodic-discharge-duration
- Periodic-discharge-onset
- Periodic-discharge-dynamics
+ Periodic-discharge-time-related-features
@@ -757,15 +695,13 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
RDAsuggestedTag
- Periodic-discharges-superimposed-activity
+ Periodic-discharge-superimposed-activityPeriodic-discharge-absolute-amplitudeBrain-lateralityBrain-regionSensorsFinding-frequency
- Periodic-discharge-duration
- Periodic-discharge-onset
- Periodic-discharge-dynamics
+ Periodic-discharge-time-related-features
@@ -784,9 +720,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
SensorsMultifocal-findingFinding-frequency
- Periodic-discharge-duration
- Periodic-discharge-onset
- Periodic-discharge-dynamics
+ Periodic-discharge-time-related-features
@@ -798,14 +732,28 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
Epileptic-seizure
+ The ILAE presented a revised seizure classification that divides seizures into focal, generalized onset, or unknown onset.requireChildFocal-onset-epileptic-seizure
+ Focal seizures can be divided into focal aware and impaired awareness seizures, with additional motor and nonmotor classifications.suggestedTagEpisode-phase
+ Automatism-motor-seizure
+ Atonic-motor-seizure
+ Clonic-motor-seizure
+ Epileptic-spasm-episode
+ Hyperkinetic-motor-seizure
+ Myoclonic-motor-seizure
+ Tonic-motor-seizure
+ Autonomic-nonmotor-seizure
+ Behavior-arrest-nonmotor-seizure
+ Cognitive-nonmotor-seizure
+ Emotional-nonmotor-seizure
+ Sensory-nonmotor-seizureSeizure-dynamicsEpisode-consciousnessEpisode-awareness
@@ -821,7 +769,6 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
suggestedTagEpisode-phase
- Seizure-classificationSeizure-dynamicsEpisode-consciousnessEpisode-awareness
@@ -838,7 +785,6 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
suggestedTagEpisode-phase
- Seizure-classificationSeizure-dynamicsEpisode-consciousnessEpisode-awareness
@@ -855,7 +801,6 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
suggestedTagEpisode-phase
- Seizure-classificationSeizure-dynamicsEpisode-consciousnessEpisode-awareness
@@ -869,6 +814,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
Focal-to-bilateral-tonic-clonic-focal-onset-epileptic-seizure
+ A seizure type with focal onset, with awareness or impaired awareness, either motor or non-motor, progressing to bilateral tonic clonic activity. The prior term was seizure with partial onset with secondary generalization. Definition from ILAE 2017 Classification of Seizure Types Expanded VersionsuggestedTagEpisode-phase
@@ -886,10 +832,22 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
Generalized-onset-epileptic-seizure
+ Generalized-onset seizures are classified as motor or nonmotor (absence), without using awareness level as a classifier, as most but not all of these seizures are linked with impaired awareness.suggestedTagEpisode-phase
- Seizure-classification
+ Tonic-clonic-motor-seizure
+ Clonic-motor-seizure
+ Tonic-motor-seizure
+ Myoclonic-motor-seizure
+ Myoclonic-tonic-clonic-motor-seizure
+ Myoclonic-atonic-motor-seizure
+ Atonic-motor-seizure
+ Epileptic-spasm-episode
+ Typical-absence-seizure
+ Atypical-absence-seizure
+ Myoclonic-absence-seizure
+ Eyelid-myoclonia-absence-seizureSeizure-dynamicsEpisode-consciousnessEpisode-awareness
@@ -903,10 +861,13 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
Unknown-onset-epileptic-seizure
+ Even if the onset of seizures is unknown, they may exhibit characteristics that fall into categories such as motor, nonmotor, tonic-clonic, epileptic spasms, or behavior arrest.suggestedTagEpisode-phase
- Seizure-classification
+ Tonic-clonic-motor-seizure
+ Epileptic-spasm-episode
+ Behavior-arrest-nonmotor-seizureSeizure-dynamicsEpisode-consciousnessEpisode-awareness
@@ -920,6 +881,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
Unclassified-epileptic-seizure
+ Referring to a seizure type that cannot be described by the ILAE 2017 classification either because of inadequate information or unusual clinical features.suggestedTagEpisode-phase
@@ -1236,1093 +1198,15 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Physiologic-pattern
- EEG graphoelements or rhythms that are considered normal. They only should be scored if the physician considers that they have a specific clinical significance for the recording.
+ Finding-property
+ Descriptive element similar to main HED /Property. Something that pertains to a thing. A characteristic of some entity. A quality or feature regarded as a characteristic or inherent part of someone or something. HED attributes are adjectives or adverbs.requireChild
- Rhythmic-activity-pattern
- Not further specified.
-
- suggestedTag
- Delta-activity-morphology
- Theta-activity-morphology
- Alpha-activity-morphology
- Beta-activity-morphology
- Gamma-activity-morphology
- Brain-laterality
- Brain-region
- Sensors
- Appearance-mode
- Discharge-pattern
-
-
-
- Slow-alpha-variant-rhythm
- Characteristic rhythms mostly at 4-5 Hz, recorded most prominently over the posterior regions of the head. Generally alternate, or are intermixed, with alpha rhythm to which they often are harmonically related. Amplitude varies but is frequently close to 50 micro V. Blocked or attenuated by attention, especially visual, and mental effort. Comment: slow alpha variant rhythms should be distinguished from posterior slow waves characteristic of children and adolescents and occasionally seen in young adults.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Appearance-mode
- Discharge-pattern
-
-
-
- Fast-alpha-variant-rhythm
- Characteristic rhythm at 14-20 Hz, detected most prominently over the posterior regions of the head. May alternate or be intermixed with alpha rhythm. Blocked or attenuated by attention, especially visual, and mental effort.
+ Signal-morphology-property
- suggestedTag
- Appearance-mode
- Discharge-pattern
-
-
-
- Ciganek-rhythm
- Midline theta rhythm (Ciganek rhythm) may be observed during wakefulness or drowsiness. The frequency is 4-7 Hz, and the location is midline (ie, vertex). The morphology is rhythmic, smooth, sinusoidal, arciform, spiky, or mu-like.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Appearance-mode
- Discharge-pattern
-
-
-
- Lambda-wave
- Diphasic sharp transient occurring over occipital regions of the head of waking subjects during visual exploration. The main component is positive relative to other areas. Time-locked to saccadic eye movement. Amplitude varies but is generally below 50 micro V.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Appearance-mode
- Discharge-pattern
-
-
-
- Posterior-slow-waves-youth
- Waves in the delta and theta range, of variable form, lasting 0.35 to 0.5 s or longer without any consistent periodicity, found in the range of 6-12 years (occasionally seen in young adults). Alpha waves are almost always intermingled or superimposed. Reactive similar to alpha activity.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Appearance-mode
- Discharge-pattern
-
-
-
- Diffuse-slowing-hyperventilation
- Diffuse slowing induced by hyperventilation. Bilateral, diffuse slowing during hyperventilation. Recorded in 70 percent of normal children (3-5 years) and less then 10 percent of adults. Usually appear in the posterior regions and spread forward in younger age group, whereas they tend to appear in the frontal regions and spread backward in the older age group.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Appearance-mode
- Discharge-pattern
-
-
-
- Photic-driving
- Physiologic response consisting of rhythmic activity elicited over the posterior regions of the head by repetitive photic stimulation at frequencies of about 5-30 Hz. Comments: term should be limited to activity time-locked to the stimulus and of frequency identical or harmonically related to the stimulus frequency. Photic driving should be distinguished from the visual evoked potentials elicited by isolated flashes of light or flashes repeated at very low frequency.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Appearance-mode
- Discharge-pattern
-
-
-
- Photomyogenic-response
- A response to intermittent photic stimulation characterized by the appearance in the record of brief, repetitive muscular artifacts (spikes) over the anterior regions of the head. These often increase gradually in amplitude as stimuli are continued and cease promptly when the stimulus is withdrawn. Comment: this response is frequently associated with flutter of the eyelids and vertical oscillations of the eyeballs and sometimes with discrete jerking mostly involving the musculature of the face and head. (Preferred to synonym: photo-myoclonic response).
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Appearance-mode
- Discharge-pattern
-
-
-
- Other-physiologic-pattern
-
- requireChild
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
-
-
-
- Uncertain-significant-pattern
- EEG graphoelements or rhythms that resemble abnormal patterns but that are not necessarily associated with a pathology, and the physician does not consider them abnormal in the context of the scored recording (like normal variants and patterns).
-
- requireChild
-
-
- Sharp-transient-pattern
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Appearance-mode
- Discharge-pattern
-
-
-
- Wicket-spikes
- Spike-like monophasic negative single waves or trains of waves occurring over the temporal regions during drowsiness that have an arcuate or mu-like appearance. These are mainly seen in older individuals and represent a benign variant that is of little clinical significance.
-
-
- Small-sharp-spikes
- Benign epileptiform Transients of Sleep (BETS). Small sharp spikes (SSS) of very short duration and low amplitude, often followed by a small theta wave, occurring in the temporal regions during drowsiness and light sleep. They occur on one or both sides (often asynchronously). The main negative and positive components are of about equally spiky character. Rarely seen in children, they are seen most often in adults and the elderly. Two thirds of the patients have a history of epileptic seizures.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Appearance-mode
- Discharge-pattern
-
-
-
- Fourteen-six-Hz-positive-burst
- Burst of arch-shaped waves at 13-17 Hz and/or 5-7-Hz but most commonly at 14 and or 6 Hz seen generally over the posterior temporal and adjacent areas of one or both sides of the head during sleep. The sharp peaks of its component waves are positive with respect to other regions. Amplitude varies but is generally below 75 micro V. Comments: (1) best demonstrated by referential recording using contralateral earlobe or other remote, reference electrodes. (2) This pattern has no established clinical significance.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Appearance-mode
- Discharge-pattern
-
-
-
- Six-Hz-spike-slow-wave
- Spike and slow wave complexes at 4-7Hz, but mostly at 6 Hz occurring generally in brief bursts bilaterally and synchronously, symmetrically or asymmetrically, and either confined to or of larger amplitude over the posterior or anterior regions of the head. The spike has a strong positive component. Amplitude varies but is generally smaller than that of spike-and slow-wave complexes repeating at slower rates. Comment: this pattern should be distinguished from epileptiform discharges. Synonym: wave and spike phantom.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Appearance-mode
- Discharge-pattern
-
-
-
- Rudimentary-spike-wave-complex
- Synonym: Pseudo petit mal discharge. Paroxysmal discharge that consists of generalized or nearly generalized high voltage 3 to 4/sec waves with poorly developed spike in the positive trough between the slow waves, occurring in drowsiness only. It is found only in infancy and early childhood when marked hypnagogic rhythmical theta activity is paramount in the drowsy state.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Appearance-mode
- Discharge-pattern
-
-
-
- Slow-fused-transient
- A posterior slow-wave preceded by a sharp-contoured potential that blends together with the ensuing slow wave, in children.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Appearance-mode
- Discharge-pattern
-
-
-
- Needle-like-occipital-spikes-blind
- Spike discharges of a particularly fast and needle-like character develop over the occipital region in most congenitally blind children. Completely disappear during childhood or adolescence.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Appearance-mode
- Discharge-pattern
-
-
-
- Subclinical-rhythmic-EEG-discharge-adults
- Subclinical rhythmic EEG discharge of adults (SERDA). A rhythmic pattern seen in the adult age group, mainly in the waking state or drowsiness. It consists of a mixture of frequencies, often predominant in the theta range. The onset may be fairly abrupt with widespread sharp rhythmical theta and occasionally with delta activity. As to the spatial distribution, a maximum of this discharge is usually found over the centroparietal region and especially over the vertex. It may resemble a seizure discharge but is not accompanied by any clinical signs or symptoms.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Appearance-mode
- Discharge-pattern
-
-
-
- Rhythmic-temporal-theta-burst-drowsiness
- Rhythmic temporal theta burst of drowsiness (RTTD). Characteristic burst of 4-7 Hz waves frequently notched by faster waves, occurring over the temporal regions of the head during drowsiness. Synonym: psychomotor variant pattern. Comment: this is a pattern of drowsiness that is of no clinical significance.
-
-
- Temporal-slowing-elderly
- Focal theta and/or delta activity over the temporal regions, especially the left, in persons over the age of 60. Amplitudes are low/similar to the background activity. Comment: focal temporal theta was found in 20 percent of people between the ages of 40-59 years, and 40 percent of people between 60 and 79 years. One third of people older than 60 years had focal temporal delta activity.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Appearance-mode
- Discharge-pattern
-
-
-
- Breach-rhythm
- Rhythmical activity recorded over cranial bone defects. Usually it is in the 6 to 11/sec range, does not respond to movements.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Appearance-mode
- Discharge-pattern
-
-
-
- Other-uncertain-significant-pattern
-
- requireChild
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
-
-
-
- Artifact
- When relevant for the clinical interpretation, artifacts can be scored by specifying the type and the location.
-
- requireChild
-
-
- Biological-artifact
-
- requireChild
-
-
- Eye-blink-artifact
- Example for EEG: Fp1/Fp2 become electropositive with eye closure because the cornea is positively charged causing a negative deflection in Fp1/Fp2. If the eye blink is unilateral, consider prosthetic eye. If it is in F8 rather than Fp2 then the electrodes are plugged in wrong.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Multifocal-finding
- Artifact-significance-to-recording
-
-
-
- Eye-movement-horizontal-artifact
- Example for EEG: There is an upward deflection in the Fp2-F8 derivation, when the eyes move to the right side. In this case F8 becomes more positive and therefore. When the eyes move to the left, F7 becomes more positive and there is an upward deflection in the Fp1-F7 derivation.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Multifocal-finding
- Artifact-significance-to-recording
-
-
-
- Eye-movement-vertical-artifact
- Example for EEG: The EEG shows positive potentials (50-100 micro V) with bi-frontal distribution, maximum at Fp1 and Fp2, when the eyeball rotated upward. The downward rotation of the eyeball was associated with the negative deflection. The time course of the deflections was similar to the time course of the eyeball movement.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Multifocal-finding
- Artifact-significance-to-recording
-
-
-
- Slow-eye-movement-artifact
- Slow, rolling eye-movements, seen during drowsiness.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Multifocal-finding
- Artifact-significance-to-recording
-
-
-
- Nystagmus-artifact
-
- suggestedTag
- Artifact-significance-to-recording
-
-
-
- Chewing-artifact
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Multifocal-finding
- Artifact-significance-to-recording
-
-
-
- Sucking-artifact
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Multifocal-finding
- Artifact-significance-to-recording
-
-
-
- Glossokinetic-artifact
- The tongue functions as a dipole, with the tip negative with respect to the base. The artifact produced by the tongue has a broad potential field that drops from frontal to occipital areas, although it is less steep than that produced by eye movement artifacts. The amplitude of the potentials is greater inferiorly than in parasagittal regions; the frequency is variable but usually in the delta range. Chewing and sucking can produce similar artifacts.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Multifocal-finding
- Artifact-significance-to-recording
-
-
-
- Rocking-patting-artifact
- Quasi-rhythmical artifacts in recordings from infants caused by rocking/patting.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Multifocal-finding
- Artifact-significance-to-recording
-
-
-
- Movement-artifact
- Example for EEG: Large amplitude artifact, with irregular morphology (usually resembling a slow-wave or a wave with complex morphology) seen in one or several channels, due to movement. If the causing movement is repetitive, the artifact might resemble a rhythmic EEG activity.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Multifocal-finding
- Artifact-significance-to-recording
-
-
-
- Respiration-artifact
- Respiration can produce 2 kinds of artifacts. One type is in the form of slow and rhythmic activity, synchronous with the body movements of respiration and mechanically affecting the impedance of (usually) one electrode. The other type can be slow or sharp waves that occur synchronously with inhalation or exhalation and involve those electrodes on which the patient is lying.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Multifocal-finding
- Artifact-significance-to-recording
-
-
-
- Pulse-artifact
- Example for EEG: Occurs when an EEG electrode is placed over a pulsating vessel. The pulsation can cause slow waves that may simulate EEG activity. A direct relationship exists between ECG and the pulse waves (200-300 millisecond delay after ECG equals QRS complex).
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Multifocal-finding
- Artifact-significance-to-recording
-
-
-
- ECG-artifact
- Example for EEG: Far-field potential generated in the heart. The voltage and apparent surface of the artifact vary from derivation to derivation and, consequently, from montage to montage. The artifact is observed best in referential montages using earlobe electrodes A1 and A2. ECG artifact is recognized easily by its rhythmicity/regularity and coincidence with the ECG tracing.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Multifocal-finding
- Artifact-significance-to-recording
-
-
-
- Sweat-artifact
- Is a low amplitude undulating waveform that is usually greater than 2 seconds and may appear to be an unstable baseline.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Multifocal-finding
- Artifact-significance-to-recording
-
-
-
- EMG-artifact
- Myogenic potentials are the most common artifacts. Frontalis and temporalis muscles (ex..: clenching of jaw muscles) are common causes. Generally, the potentials generated in the muscles are of shorter duration than those generated in the brain. The frequency components are usually beyond 30-50 Hz, and the bursts are arrhythmic.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Multifocal-finding
- Artifact-significance-to-recording
-
-
-
-
- Non-biological-artifact
-
- requireChild
-
-
- Power-supply-artifact
- 50-60 Hz artifact. Monomorphic waveform due to 50 or 60 Hz A/C power supply.
-
- suggestedTag
- Artifact-significance-to-recording
-
-
-
- Induction-artifact
- Artifacts (usually of high frequency) induced by nearby equipment (like in the intensive care unit).
-
- suggestedTag
- Artifact-significance-to-recording
-
-
-
- Dialysis-artifact
-
- suggestedTag
- Artifact-significance-to-recording
-
-
-
- Artificial-ventilation-artifact
-
- suggestedTag
- Artifact-significance-to-recording
-
-
-
- Electrode-pops-artifact
- Are brief discharges with a very steep upslope and shallow fall that occur in all leads which include that electrode.
-
- suggestedTag
- Artifact-significance-to-recording
-
-
-
- Salt-bridge-artifact
- Typically occurs in 1 channel which may appear isoelectric. Only seen in bipolar montage.
-
- suggestedTag
- Artifact-significance-to-recording
-
-
-
-
- Other-artifact
-
- requireChild
-
-
- suggestedTag
- Artifact-significance-to-recording
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
-
-
-
- Polygraphic-channel-finding
- Changes observed in polygraphic channels can be scored: EOG, Respiration, ECG, EMG, other polygraphic channel (+ free text), and their significance logged (normal, abnormal, no definite abnormality).
-
- requireChild
-
-
- EOG-channel-finding
- ElectroOculoGraphy.
-
- suggestedTag
- Finding-significance-to-recording
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
-
-
- Respiration-channel-finding
-
- suggestedTag
- Finding-significance-to-recording
-
-
- Respiration-oxygen-saturation
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
-
-
- Respiration-feature
-
- Apnoe-respiration
- Add duration (range in seconds) and comments in free text.
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
-
-
- Hypopnea-respiration
- Add duration (range in seconds) and comments in free text
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
-
-
- Apnea-hypopnea-index-respiration
- Events/h. Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency
-
- requireChild
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
-
-
- Periodic-respiration
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
-
-
- Tachypnea-respiration
- Cycles/min. Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency
-
- requireChild
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
-
-
- Other-respiration-feature
-
- requireChild
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
-
-
-
-
- ECG-channel-finding
- Electrocardiography.
-
- suggestedTag
- Finding-significance-to-recording
-
-
- ECG-QT-period
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
-
-
- ECG-feature
-
- ECG-sinus-rhythm
- Normal rhythm. Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
-
-
- ECG-arrhythmia
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
-
-
- ECG-asystolia
- Add duration (range in seconds) and comments in free text.
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
-
-
- ECG-bradycardia
- Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
-
-
- ECG-extrasystole
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
-
-
- ECG-ventricular-premature-depolarization
- Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
-
-
- ECG-tachycardia
- Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
-
-
- Other-ECG-feature
-
- requireChild
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
-
-
-
-
- EMG-channel-finding
- electromyography
-
- suggestedTag
- Finding-significance-to-recording
-
-
- EMG-muscle-side
-
- EMG-left-muscle
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
-
-
- EMG-right-muscle
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
-
-
- EMG-bilateral-muscle
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
-
-
-
- EMG-muscle-name
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
-
-
- EMG-feature
-
- EMG-myoclonus
-
- Negative-myoclonus
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
-
-
- EMG-myoclonus-rhythmic
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
-
-
- EMG-myoclonus-arrhythmic
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
-
-
- EMG-myoclonus-synchronous
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
-
-
- EMG-myoclonus-asynchronous
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
-
-
-
- EMG-PLMS
- Periodic limb movements in sleep.
-
-
- EMG-spasm
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
-
-
- EMG-tonic-contraction
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
-
-
- EMG-asymmetric-activation
-
- requireChild
-
-
- EMG-asymmetric-activation-left-first
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
-
-
- EMG-asymmetric-activation-right-first
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
-
-
-
- Other-EMG-features
-
- requireChild
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
-
-
-
-
- Other-polygraphic-channel
-
- requireChild
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
-
-
-
- Finding-property
- Descriptive element similar to main HED /Property. Something that pertains to a thing. A characteristic of some entity. A quality or feature regarded as a characteristic or inherent part of someone or something. HED attributes are adjectives or adverbs.
-
- requireChild
-
-
- Signal-morphology-property
-
- requireChild
+ requireChildRhythmic-activity-morphology
@@ -2771,13 +1655,13 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Periodic-discharges-morphology
+ Periodic-discharge-morphologyPeriodic discharges not further specified (PDs).requireChild
- Periodic-discharges-superimposed-activity
+ Periodic-discharge-superimposed-activityrequireChild
@@ -2786,7 +1670,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
Property-not-possible-to-determine
- Periodic-discharges-fast-superimposed-activity
+ Periodic-discharge-fast-superimposed-activitysuggestedTagFinding-frequency
@@ -2804,7 +1688,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Periodic-discharges-rhythmic-superimposed-activity
+ Periodic-discharge-rhythmic-superimposed-activitysuggestedTagFinding-frequency
@@ -3399,7 +2283,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
requireChild
- Body-part-eyelid
+ Eyelid-location#Free text.
@@ -3413,7 +2297,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Body-part-face
+ Face-location#Free text.
@@ -3427,7 +2311,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Body-part-arm
+ Arm-location#Free text.
@@ -3441,7 +2325,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Body-part-leg
+ Leg-location#Free text.
@@ -3455,7 +2339,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Body-part-trunk
+ Trunk-location#Free text.
@@ -3469,7 +2353,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Body-part-visceral
+ Visceral-location#Free text.
@@ -3483,7 +2367,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Body-part-hemi
+ Hemi-location#Free text.
@@ -4954,406 +3838,871 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
#Free text.
- takesValue
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+
+
+ Posterior-dominant-rhythm-caveat-drowsy
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+
+
+ Posterior-dominant-rhythm-caveat-only-following-hyperventilation
+
+
+
+ Absence-of-posterior-dominant-rhythm
+ Reason for absence of PDR.
+
+ requireChild
+
+
+ Absence-of-posterior-dominant-rhythm-artifacts
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+
+
+ Absence-of-posterior-dominant-rhythm-extreme-low-voltage
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+
+
+ Absence-of-posterior-dominant-rhythm-eye-closure-could-not-be-achieved
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+
+
+ Absence-of-posterior-dominant-rhythm-lack-of-awake-period
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+
+
+ Absence-of-posterior-dominant-rhythm-lack-of-compliance
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+
+
+ Absence-of-posterior-dominant-rhythm-other-causes
+
+ requireChild
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+
+
+
+
+ Episode-property
+
+ requireChild
+
+
+ Seizure-classification
+ Seizure classification refers to the grouping of seizures based on their clinical features, EEG patterns, and other characteristics. Epileptic seizures are named using the current ILAE seizure classification (Fisher et al., 2017, Beniczky et al., 2017).
+
+ requireChild
+
+
+ Motor-seizure
+ Involves musculature in any form. The motor event could consist of an increase (positive) or decrease (negative) in muscle contraction to produce a movement. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+
+ Motor-onset-seizure
+
+ deprecatedFrom
+ 1.0.0
+
+
+ Myoclonic-motor-seizure
+ Sudden, brief ( lower than 100 msec) involuntary single or multiple contraction(s) of muscles(s) or muscle groups of variable topography (axial, proximal limb, distal). Myoclonus is less regularly repetitive and less sustained than is clonus. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+
+ Myoclonic-motor-onset-seizure
+
+ deprecatedFrom
+ 1.0.0
+
+
+
+ Negative-myoclonic-motor-seizure
+
+
+ Negative-myoclonic-motor-onset-seizure
+
+ deprecatedFrom
+ 1.0.0
+
+
+
+ Clonic-motor-seizure
+ Jerking, either symmetric or asymmetric, that is regularly repetitive and involves the same muscle groups. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+
+ Clonic-motor-onset-seizure
+
+ deprecatedFrom
+ 1.0.0
+
+
+
+ Tonic-motor-seizure
+ A sustained increase in muscle contraction lasting a few seconds to minutes. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+
+ Tonic-motor-onset-seizure
+
+ deprecatedFrom
+ 1.0.0
+
+
+
+ Atonic-motor-seizure
+ Sudden loss or diminution of muscle tone without apparent preceding myoclonic or tonic event lasting about 1 to 2 s, involving head, trunk, jaw, or limb musculature. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+
+ Atonic-motor-onset-seizure
+
+ deprecatedFrom
+ 1.0.0
+
+
+
+ Myoclonic-atonic-motor-seizure
+ A generalized seizure type with a myoclonic jerk leading to an atonic motor component. This type was previously called myoclonic astatic. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+
+ Myoclonic-atonic-motor-onset-seizure
+
+ deprecatedFrom
+ 1.0.0
+
+
+
+ Myoclonic-tonic-clonic-motor-seizure
+ One or a few jerks of limbs bilaterally, followed by a tonic clonic seizure. The initial jerks can be considered to be either a brief period of clonus or myoclonus. Seizures with this characteristic are common in juvenile myoclonic epilepsy. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+
+ Myoclonic-tonic-clonic-motor-onset-seizure
+
+ deprecatedFrom
+ 1.0.0
+
+
+
+ Tonic-clonic-motor-seizure
+ A sequence consisting of a tonic followed by a clonic phase. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+
+ Tonic-clonic-motor-onset-seizure
+
+ deprecatedFrom
+ 1.0.0
+
+
+
+ Automatism-motor-seizure
+ A more or less coordinated motor activity usually occurring when cognition is impaired and for which the subject is usually (but not always) amnesic afterward. This often resembles a voluntary movement and may consist of an inappropriate continuation of preictal motor activity. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+
+ Automatism-motor-onset-seizure
+
+ deprecatedFrom
+ 1.0.0
+
+
+ Hyperkinetic-motor-seizure
+
+
+ Hyperkinetic-motor-onset-seizure
- valueClass
- textClass
+ deprecatedFrom
+ 1.0.0
+
+ Epileptic-spasm-episode
+ A sudden flexion, extension, or mixed extension flexion of predominantly proximal and truncal muscles that is usually more sustained than a myoclonic movement but not as sustained as a tonic seizure. Limited forms may occur: Grimacing, head nodding, or subtle eye movements. Epileptic spasms frequently occur in clusters. Infantile spasms are the best known form, but spasms can occur at all ages. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
- Posterior-dominant-rhythm-caveat-drowsy
+ Nonmotor-seizure
+ Focal or generalized seizure types in which motor activity is not prominent. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
+ Behavior-arrest-nonmotor-seizure
+ Arrest (pause) of activities, freezing, immobilization, as in behavior arrest seizure. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+
+ Sensory-nonmotor-seizure
+ A perceptual experience not caused by appropriate stimuli in the external world. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+
+ Emotional-nonmotor-seizure
+ Seizures presenting with an emotion or the appearance of having an emotion as an early prominent feature, such as fear, spontaneous joy or euphoria, laughing (gelastic), or crying (dacrystic). Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+
+ Cognitive-nonmotor-seizure
+ Pertaining to thinking and higher cortical functions, such as language, spatial perception, memory, and praxis. The previous term for similar usage as a seizure type was psychic. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+
+ Autonomic-nonmotor-seizure
+ A distinct alteration of autonomic nervous system function involving cardiovascular, pupillary, gastrointestinal, sudomotor, vasomotor, and thermoregulatory functions. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
- Posterior-dominant-rhythm-caveat-only-following-hyperventilation
+ Absence-seizure
+ Absence seizures present with a sudden cessation of activity and awareness. Absence seizures tend to occur in younger age groups, have more sudden start and termination, and they usually display less complex automatisms than do focal seizures with impaired awareness, but the distinctions are not absolute. EEG information may be required for accurate classification. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+ Typical-absence-seizure
+ A sudden onset, interruption of ongoing activities, a blank stare, possibly a brief upward deviation of the eyes. Usually the patient will be unresponsive when spoken to. Duration is a few seconds to half a minute with very rapid recovery. Although not always available, an EEG would show generalized epileptiform discharges during the event. An absence seizure is by definition a seizure of generalized onset. The word is not synonymous with a blank stare, which also can be encountered with focal onset seizures. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+
+ Atypical-absence-seizure
+ An absence seizure with changes in tone that are more pronounced than in typical absence or the onset and/or cessation is not abrupt, often associated with slow, irregular, generalized spike-wave activity. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+
+ Myoclonic-absence-seizure
+ A myoclonic absence seizure refers to an absence seizure with rhythmic three-per-second myoclonic movements, causing ratcheting abduction of the upper limbs leading to progressive arm elevation, and associated with three-per-second generalized spike-wave discharges. Duration is typically 10 to 60 s. Impairment of consciousness may not be obvious. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+
+ Eyelid-myoclonia-absence-seizure
+ Eyelid myoclonia are myoclonic jerks of the eyelids and upward deviation of the eyes, often precipitated by closing the eyes or by light. Eyelid myoclonia can be associated with absences, but also can be motor seizures without a corresponding absence, making them difficult to categorize. The 2017 classification groups them with nonmotor (absence) seizures, which may seem counterintuitive, but the myoclonia in this instance is meant to link with absence, rather than with nonmotor. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
- Absence-of-posterior-dominant-rhythm
- Reason for absence of PDR.
+ Episode-phase
+ The electroclinical findings (i.e., the seizure semiology and the ictal EEG) are divided in three phases: onset, propagation, and postictal.requireChild
+
+ suggestedTag
+ Seizure-semiology-manifestation
+ Postictal-semiology-manifestation
+ Ictal-EEG-patterns
+
- Absence-of-posterior-dominant-rhythm-artifacts
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
+ Episode-phase-initial
- Absence-of-posterior-dominant-rhythm-extreme-low-voltage
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
+ Episode-phase-subsequent
- Absence-of-posterior-dominant-rhythm-eye-closure-could-not-be-achieved
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
+ Episode-phase-postictal
+
+
+ Seizure-semiology-manifestation
+ Seizure semiology refers to the clinical features or signs that are observed during a seizure, such as the type of movements or behaviors exhibited by the person having the seizure, the duration of the seizure, the level of consciousness, and any associated symptoms such as aura or postictal confusion. In other words, seizure semiology describes the physical manifestations of a seizure. Semiology is described according to the ILAE Glossary of Descriptive Terminology for Ictal Semiology (Blume et al., 2001). Besides the name, the semiologic finding can also be characterized by the somatotopic modifier, laterality, body part and centricity. Uses Location-property tags.
+
+ requireChild
+
- Absence-of-posterior-dominant-rhythm-lack-of-awake-period
+ Semiology-motor-manifestation
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
+ Semiology-elementary-motor
+
+ Semiology-motor-tonic
+ A sustained increase in muscle contraction lasting a few seconds to minutes.
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+
+ Semiology-motor-dystonic
+ Sustained contractions of both agonist and antagonist muscles producing athetoid or twisting movements, which, when prolonged, may produce abnormal postures.
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+
+ Semiology-motor-epileptic-spasm
+ A sudden flexion, extension, or mixed extension flexion of predominantly proximal and truncal muscles that is usually more sustained than a myoclonic movement but not so sustained as a tonic seizure (i.e., about 1 s). Limited forms may occur: grimacing, head nodding. Frequent occurrence in clusters.
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+
+ Semiology-motor-postural
+ Adoption of a posture that may be bilaterally symmetric or asymmetric (as in a fencing posture).
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+
+ Semiology-motor-versive
+ A sustained, forced conjugate ocular, cephalic, and/or truncal rotation or lateral deviation from the midline.
+
+ suggestedTag
+ Body-part-location
+ Episode-event-count
+
+
+
+ Semiology-motor-clonic
+ Myoclonus that is regularly repetitive, involves the same muscle groups, at a frequency of about 2 to 3 c/s, and is prolonged. Synonym: rhythmic myoclonus .
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+
+ Semiology-motor-myoclonic
+ Characterized by myoclonus. MYOCLONUS : sudden, brief (lower than 100 ms) involuntary single or multiple contraction(s) of muscles(s) or muscle groups of variable topography (axial, proximal limb, distal).
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+
+ Semiology-motor-jacksonian-march
+ Term indicating spread of clonic movements through contiguous body parts unilaterally.
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+
+ Semiology-motor-negative-myoclonus
+ Characterized by negative myoclonus. NEGATIVE MYOCLONUS: interruption of tonic muscular activity for lower than 500 ms without evidence of preceding myoclonia.
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+
+ Semiology-motor-tonic-clonic
+ A sequence consisting of a tonic followed by a clonic phase. Variants such as clonic-tonic-clonic may be seen. Asymmetry of limb posture during the tonic phase of a GTC: one arm is rigidly extended at the elbow (often with the fist clenched tightly and flexed at the wrist), whereas the opposite arm is flexed at the elbow.
+
+ requireChild
+
+
+ Semiology-motor-tonic-clonic-without-figure-of-four
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+
+ Semiology-motor-tonic-clonic-with-figure-of-four-extension-left-elbow
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+
+ Semiology-motor-tonic-clonic-with-figure-of-four-extension-right-elbow
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+
+
+ Semiology-motor-astatic
+ Loss of erect posture that results from an atonic, myoclonic, or tonic mechanism. Synonym: drop attack.
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+
+ Semiology-motor-atonic
+ Sudden loss or diminution of muscle tone without apparent preceding myoclonic or tonic event lasting greater or equal to 1 to 2 s, involving head, trunk, jaw, or limb musculature.
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+
+ Semiology-motor-eye-blinking
+
+ suggestedTag
+ Brain-laterality
+ Episode-event-count
+
+
+
+ Semiology-motor-other-elementary-motor
+
+ requireChild
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+
-
-
- Absence-of-posterior-dominant-rhythm-lack-of-compliance
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
+ Semiology-motor-automatisms
+
+ Semiology-motor-automatisms-mimetic
+ Facial expression suggesting an emotional state, often fear.
+
+ suggestedTag
+ Episode-responsiveness
+ Episode-appearance
+ Episode-event-count
+
+
+
+ Semiology-motor-automatisms-oroalimentary
+ Lip smacking, lip pursing, chewing, licking, tooth grinding, or swallowing.
+
+ suggestedTag
+ Episode-responsiveness
+ Episode-appearance
+ Episode-event-count
+
+
+
+ Semiology-motor-automatisms-dacrystic
+ Bursts of crying.
+
+ suggestedTag
+ Episode-responsiveness
+ Episode-appearance
+ Episode-event-count
+
+
+
+ Semiology-motor-automatisms-dyspraxic
+ Inability to perform learned movements spontaneously or on command or imitation despite intact relevant motor and sensory systems and adequate comprehension and cooperation.
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-responsiveness
+ Episode-appearance
+ Episode-event-count
+
+
+
+ Semiology-motor-automatisms-manual
+ 1. Indicates principally distal components, bilateral or unilateral. 2. Fumbling, tapping, manipulating movements.
+
+ suggestedTag
+ Brain-laterality
+ Brain-centricity
+ Episode-responsiveness
+ Episode-appearance
+ Episode-event-count
+
+
+
+ Semiology-motor-automatisms-gestural
+ Semipurposive, asynchronous hand movements. Often unilateral.
+
+ suggestedTag
+ Brain-laterality
+ Episode-responsiveness
+ Episode-appearance
+ Episode-event-count
+
+
+
+ Semiology-motor-automatisms-pedal
+ 1. Indicates principally distal components, bilateral or unilateral. 2. Fumbling, tapping, manipulating movements.
+
+ suggestedTag
+ Brain-laterality
+ Brain-centricity
+ Episode-responsiveness
+ Episode-appearance
+ Episode-event-count
+
+
+
+ Semiology-motor-automatisms-hypermotor
+ 1. Involves predominantly proximal limb or axial muscles producing irregular sequential ballistic movements, such as pedaling, pelvic thrusting, thrashing, rocking movements. 2. Increase in rate of ongoing movements or inappropriately rapid performance of a movement.
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-responsiveness
+ Episode-appearance
+ Episode-event-count
+
+
+
+ Semiology-motor-automatisms-hypokinetic
+ A decrease in amplitude and/or rate or arrest of ongoing motor activity.
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-responsiveness
+ Episode-appearance
+ Episode-event-count
+
+
+
+ Semiology-motor-automatisms-gelastic
+ Bursts of laughter or giggling, usually without an appropriate affective tone.
+
+ suggestedTag
+ Episode-responsiveness
+ Episode-appearance
+ Episode-event-count
+
+
+
+ Semiology-motor-other-automatisms
+
+ requireChild
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+
-
-
- Absence-of-posterior-dominant-rhythm-other-causes
-
- requireChild
-
- #
- Free text.
-
- takesValue
-
+ Semiology-motor-behavioral-arrest
+ Interruption of ongoing motor activity or of ongoing behaviors with fixed gaze, without movement of the head or trunk (oro-alimentary and hand automatisms may continue).
- valueClass
- textClass
-
-
-
-
-
-
- Episode-property
-
- requireChild
-
-
- Seizure-classification
- Epileptic seizures are named using the current ILAE seizure classification (Fisher et al., 2017, Beniczky et al., 2017).
-
- requireChild
-
-
- Motor-onset-seizure
-
- Myoclonic-motor-onset-seizure
-
-
- Negative-myoclonic-motor-onset-seizure
-
-
- Clonic-motor-onset-seizure
-
-
- Tonic-motor-onset-seizure
-
-
- Atonic-motor-onset-seizure
-
-
- Myoclonic-atonic-motor-onset-seizure
-
-
- Myoclonic-tonic-clonic-motor-onset-seizure
-
-
- Tonic-clonic-motor-onset-seizure
-
-
- Automatism-motor-onset-seizure
-
-
- Hyperkinetic-motor-onset-seizure
-
-
- Epileptic-spasm-episode
-
-
-
- Nonmotor-onset-seizure
-
- Behavior-arrest-nonmotor-onset-seizure
-
-
- Sensory-nonmotor-onset-seizure
-
-
- Emotional-nonmotor-onset-seizure
-
-
- Cognitive-nonmotor-onset-seizure
-
-
- Autonomic-nonmotor-onset-seizure
-
-
-
- Absence-seizure
-
- Typical-absence-seizure
-
-
- Atypical-absence-seizure
-
-
- Myoclonic-absence-seizure
-
-
- Eyelid-myoclonia-absence-seizure
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
-
-
- Episode-phase
- The electroclinical findings (i.e., the seizure semiology and the ictal EEG) are divided in three phases: onset, propagation, and postictal.
-
- requireChild
-
-
- suggestedTag
- Seizure-semiology-manifestation
- Postictal-semiology-manifestation
- Ictal-EEG-patterns
-
-
- Episode-phase-initial
-
-
- Episode-phase-subsequent
-
-
- Episode-phase-postictal
-
-
-
- Seizure-semiology-manifestation
- Semiology is described according to the ILAE Glossary of Descriptive Terminology for Ictal Semiology (Blume et al., 2001). Besides the name, the semiologic finding can also be characterized by the somatotopic modifier, laterality, body part and centricity. Uses Location-property tags.
-
- requireChild
-
- Semiology-motor-manifestation
+ Semiology-non-motor-manifestation
- Semiology-elementary-motor
+ Semiology-sensory
- Semiology-motor-tonic
- A sustained increase in muscle contraction lasting a few seconds to minutes.
+ Semiology-sensory-headache
+ Headache occurring in close temporal proximity to the seizure or as the sole seizure manifestation.suggestedTagBrain-laterality
- Body-part
- Brain-centricityEpisode-event-count
- Semiology-motor-dystonic
- Sustained contractions of both agonist and antagonist muscles producing athetoid or twisting movements, which, when prolonged, may produce abnormal postures.
+ Semiology-sensory-visual
+ Flashing or flickering lights, spots, simple patterns, scotomata, or amaurosis.suggestedTagBrain-laterality
- Body-part
- Brain-centricityEpisode-event-count
- Semiology-motor-epileptic-spasm
- A sudden flexion, extension, or mixed extension flexion of predominantly proximal and truncal muscles that is usually more sustained than a myoclonic movement but not so sustained as a tonic seizure (i.e., about 1 s). Limited forms may occur: grimacing, head nodding. Frequent occurrence in clusters.
+ Semiology-sensory-auditory
+ Buzzing, drumming sounds or single tones.suggestedTagBrain-laterality
- Body-part
- Brain-centricityEpisode-event-count
- Semiology-motor-postural
- Adoption of a posture that may be bilaterally symmetric or asymmetric (as in a fencing posture).
+ Semiology-sensory-olfactorysuggestedTag
- Brain-laterality
- Body-part
- Brain-centricity
+ Body-part-locationEpisode-event-count
- Semiology-motor-versive
- A sustained, forced conjugate ocular, cephalic, and/or truncal rotation or lateral deviation from the midline.
+ Semiology-sensory-gustatory
+ Taste sensations including acidic, bitter, salty, sweet, or metallic.suggestedTag
- Body-partEpisode-event-count
- Semiology-motor-clonic
- Myoclonus that is regularly repetitive, involves the same muscle groups, at a frequency of about 2 to 3 c/s, and is prolonged. Synonym: rhythmic myoclonus .
+ Semiology-sensory-epigastric
+ Abdominal discomfort including nausea, emptiness, tightness, churning, butterflies, malaise, pain, and hunger; sensation may rise to chest or throat. Some phenomena may reflect ictal autonomic dysfunction.suggestedTag
- Brain-laterality
- Body-part
- Brain-centricityEpisode-event-count
- Semiology-motor-myoclonic
- Characterized by myoclonus. MYOCLONUS : sudden, brief (lower than 100 ms) involuntary single or multiple contraction(s) of muscles(s) or muscle groups of variable topography (axial, proximal limb, distal).
+ Semiology-sensory-somatosensory
+ Tingling, numbness, electric-shock sensation, sense of movement or desire to move.suggestedTagBrain-laterality
- Body-part
+ Body-part-locationBrain-centricityEpisode-event-count
- Semiology-motor-jacksonian-march
- Term indicating spread of clonic movements through contiguous body parts unilaterally.
+ Semiology-sensory-painful
+ Peripheral (lateralized/bilateral), cephalic, abdominal.suggestedTagBrain-laterality
- Body-part
+ Body-part-locationBrain-centricityEpisode-event-count
- Semiology-motor-negative-myoclonus
- Characterized by negative myoclonus. NEGATIVE MYOCLONUS: interruption of tonic muscular activity for lower than 500 ms without evidence of preceding myoclonia.
+ Semiology-sensory-autonomic-sensation
+ A sensation consistent with involvement of the autonomic nervous system, including cardiovascular, gastrointestinal, sudomotor, vasomotor, and thermoregulatory functions. (Thus autonomic aura; cf. autonomic events 3.0).suggestedTag
- Brain-laterality
- Body-part
- Brain-centricityEpisode-event-count
- Semiology-motor-tonic-clonic
- A sequence consisting of a tonic followed by a clonic phase. Variants such as clonic-tonic-clonic may be seen. Asymmetry of limb posture during the tonic phase of a GTC: one arm is rigidly extended at the elbow (often with the fist clenched tightly and flexed at the wrist), whereas the opposite arm is flexed at the elbow.
+ Semiology-sensory-otherrequireChild
- Semiology-motor-tonic-clonic-without-figure-of-four
+ #
+ Free text.
- suggestedTag
- Brain-laterality
- Body-part
- Brain-centricity
- Episode-event-count
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+
+ Semiology-experiential
+
+ Semiology-experiential-affective-emotional
+ Components include fear, depression, joy, and (rarely) anger.
+
+ suggestedTag
+ Episode-event-count
+
+
+
+ Semiology-experiential-hallucinatory
+ Composite perceptions without corresponding external stimuli involving visual, auditory, somatosensory, olfactory, and/or gustatory phenomena. Example: hearing and seeing people talking.
+
+ suggestedTag
+ Episode-event-count
+
+
+
+ Semiology-experiential-illusory
+ An alteration of actual percepts involving the visual, auditory, somatosensory, olfactory, or gustatory systems.
+
+ suggestedTag
+ Episode-event-count
+
+
+
+ Semiology-experiential-mnemonic
+ Components that reflect ictal dysmnesia such as feelings of familiarity (deja-vu) and unfamiliarity (jamais-vu).
- Semiology-motor-tonic-clonic-with-figure-of-four-extension-left-elbow
+ Semiology-experiential-mnemonic-Deja-vusuggestedTag
- Brain-laterality
- Body-part
- Brain-centricityEpisode-event-count
- Semiology-motor-tonic-clonic-with-figure-of-four-extension-right-elbow
+ Semiology-experiential-mnemonic-Jamais-vusuggestedTag
- Brain-laterality
- Body-part
- Brain-centricityEpisode-event-count
- Semiology-motor-astatic
- Loss of erect posture that results from an atonic, myoclonic, or tonic mechanism. Synonym: drop attack.
+ Semiology-experiential-other
+
+ requireChild
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+
+
+
+ Semiology-dyscognitive
+ The term describes events in which (1) disturbance of cognition is the predominant or most apparent feature, and (2a) two or more of the following components are involved, or (2b) involvement of such components remains undetermined. Otherwise, use the more specific term (e.g., mnemonic experiential seizure or hallucinatory experiential seizure). Components of cognition: ++ perception: symbolic conception of sensory information ++ attention: appropriate selection of a principal perception or task ++ emotion: appropriate affective significance of a perception ++ memory: ability to store and retrieve percepts or concepts ++ executive function: anticipation, selection, monitoring of consequences, and initiation of motor activity including praxis, speech.
+
+ suggestedTag
+ Episode-event-count
+
+
+
+ Semiology-language-related
+
+ Semiology-language-related-vocalizationsuggestedTag
- Brain-laterality
- Body-part
- Brain-centricityEpisode-event-count
- Semiology-motor-atonic
- Sudden loss or diminution of muscle tone without apparent preceding myoclonic or tonic event lasting greater or equal to 1 to 2 s, involving head, trunk, jaw, or limb musculature.
+ Semiology-language-related-verbalizationsuggestedTag
- Brain-laterality
- Body-part
- Brain-centricityEpisode-event-count
- Semiology-motor-eye-blinking
+ Semiology-language-related-dysphasiasuggestedTag
- Brain-lateralityEpisode-event-count
- Semiology-motor-other-elementary-motor
+ Semiology-language-related-aphasia
+
+ suggestedTag
+ Episode-event-count
+
+
+
+ Semiology-language-related-otherrequireChild
@@ -5371,480 +4720,770 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Semiology-motor-automatisms
+ Semiology-autonomic
- Semiology-motor-automatisms-mimetic
- Facial expression suggesting an emotional state, often fear.
+ Semiology-autonomic-pupillary
+ Mydriasis, miosis (either bilateral or unilateral).suggestedTag
- Episode-responsiveness
- Episode-appearance
+ Brain-lateralityEpisode-event-count
- Semiology-motor-automatisms-oroalimentary
- Lip smacking, lip pursing, chewing, licking, tooth grinding, or swallowing.
+ Semiology-autonomic-hypersalivation
+ Increase in production of saliva leading to uncontrollable droolingsuggestedTag
- Episode-responsiveness
- Episode-appearanceEpisode-event-count
- Semiology-motor-automatisms-dacrystic
- Bursts of crying.
+ Semiology-autonomic-respiratory-apnoeic
+ subjective shortness of breath, hyperventilation, stridor, coughing, choking, apnea, oxygen desaturation, neurogenic pulmonary edema.suggestedTag
- Episode-responsiveness
- Episode-appearanceEpisode-event-count
- Semiology-motor-automatisms-dyspraxic
- Inability to perform learned movements spontaneously or on command or imitation despite intact relevant motor and sensory systems and adequate comprehension and cooperation.
+ Semiology-autonomic-cardiovascular
+ Modifications of heart rate (tachycardia, bradycardia), cardiac arrhythmias (such as sinus arrhythmia, sinus arrest, supraventricular tachycardia, atrial premature depolarizations, ventricular premature depolarizations, atrio-ventricular block, bundle branch block, atrioventricular nodal escape rhythm, asystole).suggestedTag
- Brain-laterality
- Body-part
- Brain-centricity
- Episode-responsiveness
- Episode-appearanceEpisode-event-count
- Semiology-motor-automatisms-manual
- 1. Indicates principally distal components, bilateral or unilateral. 2. Fumbling, tapping, manipulating movements.
+ Semiology-autonomic-gastrointestinal
+ Nausea, eructation, vomiting, retching, abdominal sensations, abdominal pain, flatulence, spitting, diarrhea.suggestedTag
- Brain-laterality
- Brain-centricity
- Episode-responsiveness
- Episode-appearanceEpisode-event-count
- Semiology-motor-automatisms-gestural
- Semipurposive, asynchronous hand movements. Often unilateral.
+ Semiology-autonomic-urinary-incontinence
+ urinary urge (intense urinary urge at the beginning of seizures), urinary incontinence, ictal urination (rare symptom of partial seizures without loss of consciousness).suggestedTag
- Brain-laterality
- Episode-responsiveness
- Episode-appearanceEpisode-event-count
- Semiology-motor-automatisms-pedal
- 1. Indicates principally distal components, bilateral or unilateral. 2. Fumbling, tapping, manipulating movements.
+ Semiology-autonomic-genital
+ Sexual auras (erotic thoughts and feelings, sexual arousal and orgasm). Genital auras (unpleasant, sometimes painful, frightening or emotionally neutral somatosensory sensations in the genitals that can be accompanied by ictal orgasm). Sexual automatisms (hypermotor movements consisting of writhing, thrusting, rhythmic movements of the pelvis, arms and legs, sometimes associated with picking and rhythmic manipulation of the groin or genitalia, exhibitionism and masturbation).suggestedTag
- Brain-laterality
- Brain-centricity
- Episode-responsiveness
- Episode-appearanceEpisode-event-count
- Semiology-motor-automatisms-hypermotor
- 1. Involves predominantly proximal limb or axial muscles producing irregular sequential ballistic movements, such as pedaling, pelvic thrusting, thrashing, rocking movements. 2. Increase in rate of ongoing movements or inappropriately rapid performance of a movement.
+ Semiology-autonomic-vasomotor
+ Flushing or pallor (may be accompanied by feelings of warmth, cold and pain).
+
+ suggestedTag
+ Episode-event-count
+
+
+
+ Semiology-autonomic-sudomotor
+ Sweating and piloerection (may be accompanied by feelings of warmth, cold and pain).suggestedTagBrain-laterality
- Body-part
- Brain-centricity
- Episode-responsiveness
- Episode-appearanceEpisode-event-count
- Semiology-motor-automatisms-hypokinetic
- A decrease in amplitude and/or rate or arrest of ongoing motor activity.
+ Semiology-autonomic-thermoregulatory
+ Hyperthermia, fever.
+
+ suggestedTag
+ Episode-event-count
+
+
+
+ Semiology-autonomic-other
+
+ requireChild
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+
+
+
+
+ Semiology-manifestation-other
+
+ requireChild
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+
+
+
+ Postictal-semiology-manifestation
+
+ requireChild
+
+
+ Postictal-semiology-unconscious
+
+ suggestedTag
+ Episode-event-count
+
+
+
+ Postictal-semiology-quick-recovery-of-consciousness
+ Quick recovery of awareness and responsiveness.
+
+ suggestedTag
+ Episode-event-count
+
+
+
+ Postictal-semiology-aphasia-or-dysphasia
+ Impaired communication involving language without dysfunction of relevant primary motor or sensory pathways, manifested as impaired comprehension, anomia, parahasic errors or a combination of these.
+
+ suggestedTag
+ Episode-event-count
+
+
+
+ Postictal-semiology-behavioral-change
+ Occurring immediately after a aseizure. Including psychosis, hypomanina, obsessive-compulsive behavior.
+
+ suggestedTag
+ Episode-event-count
+
+
+
+ Postictal-semiology-hemianopia
+ Postictal visual loss in a a hemi field.
+
+ suggestedTag
+ Brain-laterality
+ Episode-event-count
+
+
+
+ Postictal-semiology-impaired-cognition
+ Decreased Cognitive performance involving one or more of perception, attention, emotion, memory, execution, praxis, speech.
+
+ suggestedTag
+ Episode-event-count
+
+
+
+ Postictal-semiology-dysphoria
+ Depression, irritability, euphoric mood, fear, anxiety.
+
+ suggestedTag
+ Episode-event-count
+
+
+
+ Postictal-semiology-headache
+ Headache with features of tension-type or migraine headache that develops within 3 h following the seizure and resolves within 72 h after seizure.
+
+ suggestedTag
+ Episode-event-count
+
+
+
+ Postictal-semiology-nose-wiping
+ Noes-wiping usually within 60 sec of seizure offset, usually with the hand ipsilateral to the seizure onset.
+
+ suggestedTag
+ Brain-laterality
+ Episode-event-count
+
+
+
+ Postictal-semiology-anterograde-amnesia
+ Impaired ability to remember new material.
+
+ suggestedTag
+ Episode-event-count
+
+
+
+ Postictal-semiology-retrograde-amnesia
+ Impaired ability to recall previously remember material.
+
+ suggestedTag
+ Episode-event-count
+
+
+
+ Postictal-semiology-paresis
+ Todds palsy. Any unilateral postictal dysfunction relating to motor, language, sensory and/or integrative functions.
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+
+ Postictal-semiology-sleep
+ Invincible need to sleep after a seizure.
+
+
+ Postictal-semiology-unilateral-myoclonic-jerks
+ unilateral motor phenomena, other then specified, occurring in postictal phase.
+
+
+ Postictal-semiology-other-unilateral-motor-phenomena
+
+ requireChild
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+
+
+
+ Polygraphic-channel-relation-to-episode
+
+ requireChild
+
+
+ suggestedTag
+ Property-not-possible-to-determine
+
+
+ Polygraphic-channel-cause-to-episode
+
+
+ Polygraphic-channel-consequence-of-episode
+
+
+
+ Ictal-EEG-patterns
+
+ Ictal-EEG-patterns-obscured-by-artifacts
+ The interpretation of the EEG is not possible due to artifacts.
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+
+
+ Ictal-EEG-activity
+
+ suggestedTag
+ Polyspikes-morphology
+ Fast-spike-activity-morphology
+ Low-voltage-fast-activity-morphology
+ Polysharp-waves-morphology
+ Spike-and-slow-wave-morphology
+ Polyspike-and-slow-wave-morphology
+ Sharp-and-slow-wave-morphology
+ Rhythmic-activity-morphology
+ Slow-wave-large-amplitude-morphology
+ Irregular-delta-or-theta-activity-morphology
+ Electrodecremental-change-morphology
+ DC-shift-morphology
+ Disappearance-of-ongoing-activity-morphology
+ Brain-laterality
+ Brain-region
+ Sensors
+ Source-analysis-laterality
+ Source-analysis-brain-region
+ Episode-event-count
+
+
+
+ Postictal-EEG-activity
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+
+
+
+
+ Episode-time-context-property
+ Additional clinically relevant features related to episodes can be scored under timing and context. If needed, episode duration can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Temporal-value/Duration.
+
+ Episode-consciousness
+
+ requireChild
+
+
+ suggestedTag
+ Property-not-possible-to-determine
+
+
+ Episode-consciousness-not-tested
+
+ #
+ Free text.
+
+ takesValue
+
- suggestedTag
- Brain-laterality
- Body-part
- Brain-centricity
- Episode-responsiveness
- Episode-appearance
- Episode-event-count
+ valueClass
+ textClass
+
+
+ Episode-consciousness-affected
- Semiology-motor-automatisms-gelastic
- Bursts of laughter or giggling, usually without an appropriate affective tone.
+ #
+ Free text.
- suggestedTag
- Episode-responsiveness
- Episode-appearance
- Episode-event-count
+ takesValue
-
-
- Semiology-motor-other-automatisms
- requireChild
+ valueClass
+ textClass
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- Semiology-motor-behavioral-arrest
- Interruption of ongoing motor activity or of ongoing behaviors with fixed gaze, without movement of the head or trunk (oro-alimentary and hand automatisms may continue).
-
- suggestedTag
- Brain-laterality
- Body-part
- Brain-centricity
- Episode-event-count
-
-
-
-
- Semiology-non-motor-manifestation
-
- Semiology-sensory
+ Episode-consciousness-mildly-affected
- Semiology-sensory-headache
- Headache occurring in close temporal proximity to the seizure or as the sole seizure manifestation.
+ #
+ Free text.
- suggestedTag
- Brain-laterality
- Episode-event-count
+ takesValue
-
-
- Semiology-sensory-visual
- Flashing or flickering lights, spots, simple patterns, scotomata, or amaurosis.
- suggestedTag
- Brain-laterality
- Episode-event-count
+ valueClass
+ textClass
+
+
+ Episode-consciousness-not-affected
- Semiology-sensory-auditory
- Buzzing, drumming sounds or single tones.
+ #
+ Free text.
- suggestedTag
- Brain-laterality
- Episode-event-count
+ takesValue
-
-
- Semiology-sensory-olfactory
- suggestedTag
- Body-part
- Episode-event-count
+ valueClass
+ textClass
+
+
+
+ Episode-awareness
+
+ suggestedTag
+ Property-not-possible-to-determine
+ Property-exists
+ Property-absence
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+
+
+ Clinical-EEG-temporal-relationship
+
+ suggestedTag
+ Property-not-possible-to-determine
+
+
+ Clinical-start-followed-EEG
+ Clinical start, followed by EEG start by X seconds.
- Semiology-sensory-gustatory
- Taste sensations including acidic, bitter, salty, sweet, or metallic.
+ #
- suggestedTag
- Episode-event-count
+ takesValue
-
-
- Semiology-sensory-epigastric
- Abdominal discomfort including nausea, emptiness, tightness, churning, butterflies, malaise, pain, and hunger; sensation may rise to chest or throat. Some phenomena may reflect ictal autonomic dysfunction.
- suggestedTag
- Episode-event-count
+ valueClass
+ numericClass
-
-
- Semiology-sensory-somatosensory
- Tingling, numbness, electric-shock sensation, sense of movement or desire to move.
- suggestedTag
- Brain-laterality
- Body-part
- Brain-centricity
- Episode-event-count
+ unitClass
+ timeUnits
+
+
+ EEG-start-followed-clinical
+ EEG start, followed by clinical start by X seconds.
- Semiology-sensory-painful
- Peripheral (lateralized/bilateral), cephalic, abdominal.
+ #
- suggestedTag
- Brain-laterality
- Body-part
- Brain-centricity
- Episode-event-count
+ takesValue
-
-
- Semiology-sensory-autonomic-sensation
- A sensation consistent with involvement of the autonomic nervous system, including cardiovascular, gastrointestinal, sudomotor, vasomotor, and thermoregulatory functions. (Thus autonomic aura; cf. autonomic events 3.0).
- suggestedTag
- Episode-event-count
+ valueClass
+ numericClass
-
-
- Semiology-sensory-other
- requireChild
+ unitClass
+ timeUnits
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- Semiology-experiential
-
- Semiology-experiential-affective-emotional
- Components include fear, depression, joy, and (rarely) anger.
-
- suggestedTag
- Episode-event-count
-
-
+ Simultaneous-start-clinical-EEG
+
+
+ Clinical-EEG-temporal-relationship-notes
+ Clinical notes to annotate the clinical-EEG temporal relationship.
- Semiology-experiential-hallucinatory
- Composite perceptions without corresponding external stimuli involving visual, auditory, somatosensory, olfactory, and/or gustatory phenomena. Example: hearing and seeing people talking.
+ #
- suggestedTag
- Episode-event-count
+ takesValue
-
-
- Semiology-experiential-illusory
- An alteration of actual percepts involving the visual, auditory, somatosensory, olfactory, or gustatory systems.
- suggestedTag
- Episode-event-count
+ valueClass
+ textClass
+
+
+
+ Episode-event-count
+ Number of stereotypical episodes during the recording.
+
+ suggestedTag
+ Property-not-possible-to-determine
+
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+
+
+ State-episode-start
+ State at the start of the episode.
+
+ requireChild
+
+
+ suggestedTag
+ Property-not-possible-to-determine
+
+
+ Episode-start-from-sleep
- Semiology-experiential-mnemonic
- Components that reflect ictal dysmnesia such as feelings of familiarity (deja-vu) and unfamiliarity (jamais-vu).
-
- Semiology-experiential-mnemonic-Deja-vu
-
- suggestedTag
- Episode-event-count
-
-
-
- Semiology-experiential-mnemonic-Jamais-vu
-
- suggestedTag
- Episode-event-count
-
-
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+
+ Episode-start-from-awake
- Semiology-experiential-other
+ #
+ Free text.
- requireChild
+ takesValue
+
+
+ valueClass
+ textClass
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
+
+
+ Episode-postictal-phase
+
+ suggestedTag
+ Property-not-possible-to-determine
+
- Semiology-dyscognitive
- The term describes events in which (1) disturbance of cognition is the predominant or most apparent feature, and (2a) two or more of the following components are involved, or (2b) involvement of such components remains undetermined. Otherwise, use the more specific term (e.g., mnemonic experiential seizure or hallucinatory experiential seizure). Components of cognition: ++ perception: symbolic conception of sensory information ++ attention: appropriate selection of a principal perception or task ++ emotion: appropriate affective significance of a perception ++ memory: ability to store and retrieve percepts or concepts ++ executive function: anticipation, selection, monitoring of consequences, and initiation of motor activity including praxis, speech.
+ #
- suggestedTag
- Episode-event-count
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ timeUnits
+
+
+ Episode-prodrome
+ Prodrome is a preictal phenomenon, and it is defined as a subjective or objective clinical alteration (e.g., ill-localized sensation or agitation) that heralds the onset of an epileptic seizure but does not form part of it (Blume et al., 2001). Therefore, prodrome should be distinguished from aura (which is an ictal phenomenon).
+
+ suggestedTag
+ Property-exists
+ Property-absence
+
- Semiology-language-related
-
- Semiology-language-related-vocalization
-
- suggestedTag
- Episode-event-count
-
-
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+
+
+ Episode-tongue-biting
+
+ suggestedTag
+ Property-exists
+ Property-absence
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+
+
+ Episode-responsiveness
+
+ requireChild
+
+
+ suggestedTag
+ Property-not-possible-to-determine
+
+
+ Episode-responsiveness-preserved
- Semiology-language-related-verbalization
+ #
+ Free text.
- suggestedTag
- Episode-event-count
+ takesValue
-
-
- Semiology-language-related-dysphasia
- suggestedTag
- Episode-event-count
+ valueClass
+ textClass
+
+
+ Episode-responsiveness-affected
- Semiology-language-related-aphasia
+ #
+ Free text.
- suggestedTag
- Episode-event-count
+ takesValue
-
-
- Semiology-language-related-other
- requireChild
+ valueClass
+ textClass
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
+
+
+ Episode-appearance
+
+ requireChild
+
- Semiology-autonomic
+ Episode-appearance-interactive
- Semiology-autonomic-pupillary
- Mydriasis, miosis (either bilateral or unilateral).
+ #
+ Free text.
- suggestedTag
- Brain-laterality
- Episode-event-count
+ takesValue
-
-
- Semiology-autonomic-hypersalivation
- Increase in production of saliva leading to uncontrollable drooling
- suggestedTag
- Episode-event-count
+ valueClass
+ textClass
+
+
+ Episode-appearance-spontaneous
- Semiology-autonomic-respiratory-apnoeic
- subjective shortness of breath, hyperventilation, stridor, coughing, choking, apnea, oxygen desaturation, neurogenic pulmonary edema.
+ #
+ Free text.
- suggestedTag
- Episode-event-count
+ takesValue
-
-
- Semiology-autonomic-cardiovascular
- Modifications of heart rate (tachycardia, bradycardia), cardiac arrhythmias (such as sinus arrhythmia, sinus arrest, supraventricular tachycardia, atrial premature depolarizations, ventricular premature depolarizations, atrio-ventricular block, bundle branch block, atrioventricular nodal escape rhythm, asystole).
- suggestedTag
- Episode-event-count
+ valueClass
+ textClass
+
+
+
+ Seizure-dynamics
+ Spatiotemporal dynamics can be scored (evolution in morphology; evolution in frequency; evolution in location).
+
+ requireChild
+
+
+ Seizure-dynamics-evolution-morphology
- Semiology-autonomic-gastrointestinal
- Nausea, eructation, vomiting, retching, abdominal sensations, abdominal pain, flatulence, spitting, diarrhea.
+ #
+ Free text.
- suggestedTag
- Episode-event-count
+ takesValue
-
-
- Semiology-autonomic-urinary-incontinence
- urinary urge (intense urinary urge at the beginning of seizures), urinary incontinence, ictal urination (rare symptom of partial seizures without loss of consciousness).
- suggestedTag
- Episode-event-count
+ valueClass
+ textClass
+
+
+ Seizure-dynamics-evolution-frequency
- Semiology-autonomic-genital
- Sexual auras (erotic thoughts and feelings, sexual arousal and orgasm). Genital auras (unpleasant, sometimes painful, frightening or emotionally neutral somatosensory sensations in the genitals that can be accompanied by ictal orgasm). Sexual automatisms (hypermotor movements consisting of writhing, thrusting, rhythmic movements of the pelvis, arms and legs, sometimes associated with picking and rhythmic manipulation of the groin or genitalia, exhibitionism and masturbation).
+ #
+ Free text.
- suggestedTag
- Episode-event-count
+ takesValue
-
-
- Semiology-autonomic-vasomotor
- Flushing or pallor (may be accompanied by feelings of warmth, cold and pain).
- suggestedTag
- Episode-event-count
+ valueClass
+ textClass
+
+
+ Seizure-dynamics-evolution-location
- Semiology-autonomic-sudomotor
- Sweating and piloerection (may be accompanied by feelings of warmth, cold and pain).
+ #
+ Free text.
- suggestedTag
- Brain-laterality
- Episode-event-count
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ Seizure-dynamics-not-possible-to-determine
+ Not possible to determine.
- Semiology-autonomic-thermoregulatory
- Hyperthermia, fever.
+ #
+ Free text.
- suggestedTag
- Episode-event-count
+ takesValue
-
-
- Semiology-autonomic-other
- requireChild
+ valueClass
+ textClass
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
+
+
+
+ Other-finding-property
+
+ requireChild
+
+
+ Artifact-significance-to-recording
+ It is important to score the significance of the described artifacts: recording is not interpretable, recording of reduced diagnostic value, does not interfere with the interpretation of the recording.
+
+ requireChild
+
+
+ Recording-not-interpretable-due-to-artifact
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+
- Semiology-manifestation-other
-
- requireChild
-
+ Recording-of-reduced-diagnostic-value-due-to-artifact
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+
+
+ Artifact-does-not-interfere-recording#Free text.
@@ -5859,120 +5498,519 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Postictal-semiology-manifestation
+ Finding-significance-to-recording
+ Significance of finding. When normal/abnormal could be labeled with base schema Normal/Abnormal tags.requireChild
- Postictal-semiology-unconscious
+ Finding-no-definite-abnormality
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+
+
+ Finding-significance-not-possible-to-determine
+ Not possible to determine.
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+
+
+
+ Finding-frequency
+ Value in Hz (number) typed in.
+
+ #
- suggestedTag
- Episode-event-count
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ frequencyUnits
+
+
+ Finding-amplitude
+ Value in microvolts (number) typed in.
- Postictal-semiology-quick-recovery-of-consciousness
- Quick recovery of awareness and responsiveness.
+ #
- suggestedTag
- Episode-event-count
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ electricPotentialUnits
+
+
+ Finding-amplitude-asymmetry
+ For posterior dominant rhythm: a difference in amplitude between the homologous area on opposite sides of the head that consistently exceeds 50 percent. When symmetrical could be labeled with base schema Symmetrical tag. For sleep: Absence or consistently marked amplitude asymmetry (greater than 50 percent) of a normal sleep graphoelement.
+
+ requireChild
+
- Postictal-semiology-aphasia-or-dysphasia
- Impaired communication involving language without dysfunction of relevant primary motor or sensory pathways, manifested as impaired comprehension, anomia, parahasic errors or a combination of these.
+ Finding-amplitude-asymmetry-lower-left
+ Amplitude lower on the left side.
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+
+
+ Finding-amplitude-asymmetry-lower-right
+ Amplitude lower on the right side.
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+
+
+ Finding-amplitude-asymmetry-not-possible-to-determine
+ Not possible to determine.
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+
+
+
+ Finding-stopped-by
+
+ #
+ Free text.
- suggestedTag
- Episode-event-count
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ Finding-triggered-by
- Postictal-semiology-behavioral-change
- Occurring immediately after a aseizure. Including psychosis, hypomanina, obsessive-compulsive behavior.
+ #
+ Free text.
- suggestedTag
- Episode-event-count
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ Finding-unmodified
- Postictal-semiology-hemianopia
- Postictal visual loss in a a hemi field.
+ #
+ Free text.
- suggestedTag
- Brain-laterality
- Episode-event-count
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+
+
+ Property-not-possible-to-determine
+ Not possible to determine.
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+
+
+ Property-exists
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ Property-absence
- Postictal-semiology-impaired-cognition
- Decreased Cognitive performance involving one or more of perception, attention, emotion, memory, execution, praxis, speech.
+ #
+ Free text.
- suggestedTag
- Episode-event-count
+ takesValue
-
-
- Postictal-semiology-dysphoria
- Depression, irritability, euphoric mood, fear, anxiety.
- suggestedTag
- Episode-event-count
+ valueClass
+ textClass
+
+
+
+
+ Interictal-finding
+ EEG pattern / transient that is distinguished form the background activity, considered abnormal, but is not recorded during ictal period (seizure) or postictal period; the presence of an interictal finding does not necessarily imply that the patient has epilepsy.
+
+ requireChild
+
+
+ Epileptiform-interictal-activity
+
+ suggestedTag
+ Spike-morphology
+ Spike-and-slow-wave-morphology
+ Runs-of-rapid-spikes-morphology
+ Polyspikes-morphology
+ Polyspike-and-slow-wave-morphology
+ Sharp-wave-morphology
+ Sharp-and-slow-wave-morphology
+ Slow-sharp-wave-morphology
+ High-frequency-oscillation-morphology
+ Hypsarrhythmia-classic-morphology
+ Hypsarrhythmia-modified-morphology
+ Brain-laterality
+ Brain-region
+ Sensors
+ Finding-propagation
+ Multifocal-finding
+ Appearance-mode
+ Discharge-pattern
+ Finding-incidence
+
+
+
+ Abnormal-interictal-rhythmic-activity
+
+ suggestedTag
+ Rhythmic-activity-morphology
+ Polymorphic-delta-activity-morphology
+ Frontal-intermittent-rhythmic-delta-activity-morphology
+ Occipital-intermittent-rhythmic-delta-activity-morphology
+ Temporal-intermittent-rhythmic-delta-activity-morphology
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+ Finding-incidence
+
+
+
+ Interictal-special-patterns
+
+ requireChild
+
+
+ Interictal-periodic-discharges
+ Periodic discharge not further specified (PDs).
+
+ suggestedTag
+ Periodic-discharge-morphology
+ Brain-laterality
+ Brain-region
+ Sensors
+ Periodic-discharge-time-related-features
+
+
+ Generalized-periodic-discharges
+ GPDs.
+
- Postictal-semiology-headache
- Headache with features of tension-type or migraine headache that develops within 3 h following the seizure and resolves within 72 h after seizure.
-
- suggestedTag
- Episode-event-count
-
+ Lateralized-periodic-discharges
+ LPDs.
- Postictal-semiology-nose-wiping
- Noes-wiping usually within 60 sec of seizure offset, usually with the hand ipsilateral to the seizure onset.
-
- suggestedTag
- Brain-laterality
- Episode-event-count
-
+ Bilateral-independent-periodic-discharges
+ BIPDs.
- Postictal-semiology-anterograde-amnesia
- Impaired ability to remember new material.
-
- suggestedTag
- Episode-event-count
-
+ Multifocal-periodic-discharges
+ MfPDs.
+
+
+ Extreme-delta-brush
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+
+
+
+ Physiologic-pattern
+ EEG graphoelements or rhythms that are considered normal. They only should be scored if the physician considers that they have a specific clinical significance for the recording.
+
+ requireChild
+
+
+ Rhythmic-activity-pattern
+ Not further specified.
+
+ suggestedTag
+ Rhythmic-activity-morphology
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+
+ Slow-alpha-variant-rhythm
+ Characteristic rhythms mostly at 4-5 Hz, recorded most prominently over the posterior regions of the head. Generally alternate, or are intermixed, with alpha rhythm to which they often are harmonically related. Amplitude varies but is frequently close to 50 micro V. Blocked or attenuated by attention, especially visual, and mental effort. Comment: slow alpha variant rhythms should be distinguished from posterior slow waves characteristic of children and adolescents and occasionally seen in young adults.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+
+ Fast-alpha-variant-rhythm
+ Characteristic rhythm at 14-20 Hz, detected most prominently over the posterior regions of the head. May alternate or be intermixed with alpha rhythm. Blocked or attenuated by attention, especially visual, and mental effort.
+
+ suggestedTag
+ Appearance-mode
+ Discharge-pattern
+
+
+
+ Ciganek-rhythm
+ Midline theta rhythm (Ciganek rhythm) may be observed during wakefulness or drowsiness. The frequency is 4-7 Hz, and the location is midline (ie, vertex). The morphology is rhythmic, smooth, sinusoidal, arciform, spiky, or mu-like.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+
+ Lambda-wave
+ Diphasic sharp transient occurring over occipital regions of the head of waking subjects during visual exploration. The main component is positive relative to other areas. Time-locked to saccadic eye movement. Amplitude varies but is generally below 50 micro V.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+
+ Posterior-slow-waves-youth
+ Waves in the delta and theta range, of variable form, lasting 0.35 to 0.5 s or longer without any consistent periodicity, found in the range of 6-12 years (occasionally seen in young adults). Alpha waves are almost always intermingled or superimposed. Reactive similar to alpha activity.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+
+ Diffuse-slowing-hyperventilation
+ Diffuse slowing induced by hyperventilation. Bilateral, diffuse slowing during hyperventilation. Recorded in 70 percent of normal children (3-5 years) and less then 10 percent of adults. Usually appear in the posterior regions and spread forward in younger age group, whereas they tend to appear in the frontal regions and spread backward in the older age group.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+
+ Photic-driving
+ Physiologic response consisting of rhythmic activity elicited over the posterior regions of the head by repetitive photic stimulation at frequencies of about 5-30 Hz. Comments: term should be limited to activity time-locked to the stimulus and of frequency identical or harmonically related to the stimulus frequency. Photic driving should be distinguished from the visual evoked potentials elicited by isolated flashes of light or flashes repeated at very low frequency.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+
+ Photomyogenic-response
+ A response to intermittent photic stimulation characterized by the appearance in the record of brief, repetitive muscular artifacts (spikes) over the anterior regions of the head. These often increase gradually in amplitude as stimuli are continued and cease promptly when the stimulus is withdrawn. Comment: this response is frequently associated with flutter of the eyelids and vertical oscillations of the eyeballs and sometimes with discrete jerking mostly involving the musculature of the face and head. (Preferred to synonym: photo-myoclonic response).
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+
+ Other-physiologic-pattern
+
+ requireChild
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+
+
+
+ Polygraphic-channel-finding
+ Changes observed in polygraphic channels can be scored: EOG, Respiration, ECG, EMG, other polygraphic channel (+ free text), and their significance logged (normal, abnormal, no definite abnormality).
+
+ requireChild
+
+
+ EOG-channel-finding
+ ElectroOculoGraphy.
+
+ suggestedTag
+ Finding-significance-to-recording
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+
+
+ Respiration-channel-finding
+
+ suggestedTag
+ Finding-significance-to-recording
+
+
+ Respiration-oxygen-saturation
- Postictal-semiology-retrograde-amnesia
- Impaired ability to recall previously remember material.
+ #
- suggestedTag
- Episode-event-count
+ takesValue
-
-
- Postictal-semiology-paresis
- Todds palsy. Any unilateral postictal dysfunction relating to motor, language, sensory and/or integrative functions.
- suggestedTag
- Brain-laterality
- Body-part
- Brain-centricity
- Episode-event-count
+ valueClass
+ numericClass
+
+
+ Respiration-feature
- Postictal-semiology-sleep
- Invincible need to sleep after a seizure.
+ Apnoe-respiration
+ Add duration (range in seconds) and comments in free text.
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
- Postictal-semiology-unilateral-myoclonic-jerks
- unilateral motor phenomena, other then specified, occurring in postictal phase.
+ Hypopnea-respiration
+ Add duration (range in seconds) and comments in free text
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
- Postictal-semiology-other-unilateral-motor-phenomena
+ Apnea-hypopnea-index-respiration
+ Events/h. Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/FrequencyrequireChild
@@ -5988,28 +6026,8 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
-
-
- Polygraphic-channel-relation-to-episode
-
- requireChild
-
-
- suggestedTag
- Property-not-possible-to-determine
-
-
- Polygraphic-channel-cause-to-episode
-
-
- Polygraphic-channel-consequence-of-episode
-
-
-
- Ictal-EEG-patterns
- Ictal-EEG-patterns-obscured-by-artifacts
- The interpretation of the EEG is not possible due to artifacts.
+ Periodic-respiration#Free text.
@@ -6023,117 +6041,97 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Ictal-EEG-activity
+ Tachypnea-respiration
+ Cycles/min. Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency
- suggestedTag
- Polyspikes-morphology
- Fast-spike-activity-morphology
- Low-voltage-fast-activity-morphology
- Polysharp-waves-morphology
- Spike-and-slow-wave-morphology
- Polyspike-and-slow-wave-morphology
- Sharp-and-slow-wave-morphology
- Rhythmic-activity-morphology
- Slow-wave-large-amplitude-morphology
- Irregular-delta-or-theta-activity-morphology
- Electrodecremental-change-morphology
- DC-shift-morphology
- Disappearance-of-ongoing-activity-morphology
- Brain-laterality
- Brain-region
- Sensors
- Source-analysis-laterality
- Source-analysis-brain-region
- Episode-event-count
+ requireChild
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
- Postictal-EEG-activity
+ Other-respiration-feature
- suggestedTag
- Brain-laterality
- Body-part
- Brain-centricity
+ requireChild
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+
+
+ ECG-channel-finding
+ Electrocardiography.
+
+ suggestedTag
+ Finding-significance-to-recording
+
- Episode-time-context-property
- Additional clinically relevant features related to episodes can be scored under timing and context. If needed, episode duration can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Temporal-value/Duration.
+ ECG-QT-period
- Episode-consciousness
+ #
+ Free text.
- requireChild
+ takesValue
- suggestedTag
- Property-not-possible-to-determine
+ valueClass
+ textClass
+
+
+
+ ECG-feature
+
+ ECG-sinus-rhythm
+ Normal rhythm. Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency
- Episode-consciousness-not-tested
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
-
-
- Episode-consciousness-affected
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
-
-
- Episode-consciousness-mildly-affected
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+
+ ECG-arrhythmia
- Episode-consciousness-not-affected
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
- Episode-awareness
-
- suggestedTag
- Property-not-possible-to-determine
- Property-exists
- Property-absence
-
+ ECG-asystolia
+ Add duration (range in seconds) and comments in free text.#Free text.
@@ -6147,151 +6145,108 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Clinical-EEG-temporal-relationship
-
- suggestedTag
- Property-not-possible-to-determine
-
-
- Clinical-start-followed-EEG
- Clinical start, followed by EEG start by X seconds.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
- unitClass
- timeUnits
-
-
-
+ ECG-bradycardia
+ Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency
- EEG-start-followed-clinical
- EEG start, followed by clinical start by X seconds.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
- unitClass
- timeUnits
-
-
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+
+ ECG-extrasystole
- Simultaneous-start-clinical-EEG
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+
+ ECG-ventricular-premature-depolarization
+ Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency
- Clinical-EEG-temporal-relationship-notes
- Clinical notes to annotate the clinical-EEG temporal relationship.
-
- #
-
- takesValue
-
-
- valueClass
- textClass
-
-
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
- Episode-event-count
- Number of stereotypical episodes during the recording.
-
- suggestedTag
- Property-not-possible-to-determine
-
+ ECG-tachycardia
+ Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency#
+ Free text.takesValuevalueClass
- numericClass
+ textClass
- State-episode-start
- State at the start of the episode.
+ Other-ECG-featurerequireChild
-
- suggestedTag
- Property-not-possible-to-determine
-
-
- Episode-start-from-sleep
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
-
- Episode-start-from-awake
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+
+
+ EMG-channel-finding
+ electromyography
+
+ suggestedTag
+ Finding-significance-to-recording
+
+
+ EMG-muscle-side
- Episode-postictal-phase
-
- suggestedTag
- Property-not-possible-to-determine
-
+ EMG-left-muscle#
+ Free text.takesValuevalueClass
- numericClass
-
-
- unitClass
- timeUnits
+ textClass
- Episode-prodrome
- Prodrome is a preictal phenomenon, and it is defined as a subjective or objective clinical alteration (e.g., ill-localized sensation or agitation) that heralds the onset of an epileptic seizure but does not form part of it (Blume et al., 2001). Therefore, prodrome should be distinguished from aura (which is an ictal phenomenon).
-
- suggestedTag
- Property-exists
- Property-absence
-
+ EMG-right-muscle#Free text.
@@ -6305,12 +6260,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Episode-tongue-biting
-
- suggestedTag
- Property-exists
- Property-absence
-
+ EMG-bilateral-muscle#Free text.
@@ -6323,65 +6273,27 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
+
+
+ EMG-muscle-name
- Episode-responsiveness
+ #
+ Free text.
- requireChild
+ takesValue
- suggestedTag
- Property-not-possible-to-determine
+ valueClass
+ textClass
-
- Episode-responsiveness-preserved
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
-
-
- Episode-responsiveness-affected
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
-
+
+
+ EMG-feature
- Episode-appearance
-
- requireChild
-
-
- Episode-appearance-interactive
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
-
+ EMG-myoclonus
- Episode-appearance-spontaneous
+ Negative-myoclonus#Free text.
@@ -6394,15 +6306,8 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
-
-
- Seizure-dynamics
- Spatiotemporal dynamics can be scored (evolution in morphology; evolution in frequency; evolution in location).
-
- requireChild
-
- Seizure-dynamics-evolution-morphology
+ EMG-myoclonus-rhythmic#Free text.
@@ -6416,7 +6321,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Seizure-dynamics-evolution-frequency
+ EMG-myoclonus-arrhythmic#Free text.
@@ -6430,7 +6335,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Seizure-dynamics-evolution-location
+ EMG-myoclonus-synchronous#Free text.
@@ -6444,8 +6349,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Seizure-dynamics-not-possible-to-determine
- Not possible to determine.
+ EMG-myoclonus-asynchronous#Free text.
@@ -6459,70 +6363,12 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
-
-
-
- Other-finding-property
-
- requireChild
-
-
- Artifact-significance-to-recording
- It is important to score the significance of the described artifacts: recording is not interpretable, recording of reduced diagnostic value, does not interfere with the interpretation of the recording.
-
- requireChild
-
-
- Recording-not-interpretable-due-to-artifact
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
-
-
- Recording-of-reduced-diagnostic-value-due-to-artifact
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
-
- Artifact-does-not-interfere-recording
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
+ EMG-PLMS
+ Periodic limb movements in sleep.
-
-
- Finding-significance-to-recording
- Significance of finding. When normal/abnormal could be labeled with base schema Normal/Abnormal tags.
-
- requireChild
-
- Finding-no-definite-abnormality
+ EMG-spasm#Free text.
@@ -6536,8 +6382,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Finding-significance-not-possible-to-determine
- Not possible to determine.
+ EMG-tonic-contraction#Free text.
@@ -6550,82 +6395,45 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
-
-
- Finding-frequency
- Value in Hz (number) typed in.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
- unitClass
- frequencyUnits
-
-
-
-
- Finding-amplitude
- Value in microvolts (number) typed in.
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
+ EMG-asymmetric-activation
- unitClass
- electricPotentialUnits
+ requireChild
-
-
-
- Finding-amplitude-asymmetry
- For posterior dominant rhythm: a difference in amplitude between the homologous area on opposite sides of the head that consistently exceeds 50 percent. When symmetrical could be labeled with base schema Symmetrical tag. For sleep: Absence or consistently marked amplitude asymmetry (greater than 50 percent) of a normal sleep graphoelement.
-
- requireChild
-
-
- Finding-amplitude-asymmetry-lower-left
- Amplitude lower on the left side.
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
+ EMG-asymmetric-activation-left-first
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
-
-
- Finding-amplitude-asymmetry-lower-right
- Amplitude lower on the right side.
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
+ EMG-asymmetric-activation-right-first
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
- Finding-amplitude-asymmetry-not-possible-to-determine
- Not possible to determine.
+ Other-EMG-features
+
+ requireChild
+ #Free text.
@@ -6639,36 +6447,59 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
+
+
+ Other-polygraphic-channel
+
+ requireChild
+
- Finding-stopped-by
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+
+
+ Sleep-and-drowsiness
+ The features of the ongoing activity during sleep are scored here. If abnormal graphoelements appear, disappear or change their morphology during sleep, that is not scored here but at the entry corresponding to that graphooelement (as a modulator).
+
+ requireChild
+
+
+ Sleep-architecture
+ For longer recordings. Only to be scored if whole-night sleep is part of the recording. It is a global descriptor of the structure and pattern of sleep: estimation of the amount of time spent in REM and NREM sleep, sleep duration, NREM-REM cycle.
+
+ suggestedTag
+ Property-not-possible-to-determine
+
- Finding-triggered-by
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
+ Normal-sleep-architecture
- Finding-unmodified
+ Abnormal-sleep-architecture
+
+
+
+ Sleep-stage-reached
+ For normal sleep patterns the sleep stages reached during the recording can be specified
+
+ requireChild
+
+
+ suggestedTag
+ Property-not-possible-to-determine
+ Finding-significance-to-recording
+
+
+ Sleep-stage-N1
+ Sleep stage 1.#Free text.
@@ -6682,8 +6513,8 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Property-not-possible-to-determine
- Not possible to determine.
+ Sleep-stage-N2
+ Sleep stage 2.#Free text.
@@ -6697,7 +6528,8 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Property-exists
+ Sleep-stage-N3
+ Sleep stage 3.#Free text.
@@ -6711,7 +6543,8 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Property-absence
+ Sleep-stage-REM
+ Rapid eye movement.#Free text.
@@ -6725,6 +6558,254 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
+
+ Sleep-spindles
+ Burst at 11-15 Hz but mostly at 12-14 Hz generally diffuse but of higher voltage over the central regions of the head, occurring during sleep. Amplitude varies but is mostly below 50 microV in the adult.
+
+ suggestedTag
+ Finding-significance-to-recording
+ Brain-laterality
+ Brain-region
+ Sensors
+ Finding-amplitude-asymmetry
+
+
+
+ Arousal-pattern
+ Arousal pattern in children. Prolonged, marked high voltage 4-6/s activity in all leads with some intermixed slower frequencies, in children.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+
+ Frontal-arousal-rhythm
+ Prolonged (up to 20s) rhythmical sharp or spiky activity over the frontal areas (maximum over the frontal midline) seen at arousal from sleep in children with minimal cerebral dysfunction.
+
+ suggestedTag
+ Appearance-mode
+ Discharge-pattern
+
+
+
+ Vertex-wave
+ Sharp potential, maximal at the vertex, negative relative to other areas, apparently occurring spontaneously during sleep or in response to a sensory stimulus during sleep or wakefulness. May be single or repetitive. Amplitude varies but rarely exceeds 250 microV. Abbreviation: V wave. Synonym: vertex sharp wave.
+
+ suggestedTag
+ Finding-significance-to-recording
+ Brain-laterality
+ Brain-region
+ Sensors
+ Finding-amplitude-asymmetry
+
+
+
+ K-complex
+ A burst of somewhat variable appearance, consisting most commonly of a high voltage negative slow wave followed by a smaller positive slow wave frequently associated with a sleep spindle. Duration greater than 0.5 s. Amplitude is generally maximal in the frontal vertex. K complexes occur during nonREM sleep, apparently spontaneously, or in response to sudden sensory / auditory stimuli, and are not specific for any individual sensory modality.
+
+ suggestedTag
+ Finding-significance-to-recording
+ Brain-laterality
+ Brain-region
+ Sensors
+ Finding-amplitude-asymmetry
+
+
+
+ Saw-tooth-waves
+ Vertex negative 2-5 Hz waves occuring in series during REM sleep
+
+ suggestedTag
+ Finding-significance-to-recording
+ Brain-laterality
+ Brain-region
+ Sensors
+ Finding-amplitude-asymmetry
+
+
+
+ POSTS
+ Positive occipital sharp transients of sleep. Sharp transient maximal over the occipital regions, positive relative to other areas, apparently occurring spontaneously during sleep. May be single or repetitive. Amplitude varies but is generally bellow 50 microV.
+
+ suggestedTag
+ Finding-significance-to-recording
+ Brain-laterality
+ Brain-region
+ Sensors
+ Finding-amplitude-asymmetry
+
+
+
+ Hypnagogic-hypersynchrony
+ Bursts of bilateral, synchronous delta or theta activity of large amplitude, occasionally with superimposed faster components, occurring during falling asleep or during awakening, in children.
+
+ suggestedTag
+ Finding-significance-to-recording
+ Brain-laterality
+ Brain-region
+ Sensors
+ Finding-amplitude-asymmetry
+
+
+
+ Non-reactive-sleep
+ EEG activity consisting of normal sleep graphoelements, but which cannot be interrupted by external stimuli/ the patient cannot be waken.
+
+
+
+ Uncertain-significant-pattern
+ EEG graphoelements or rhythms that resemble abnormal patterns but that are not necessarily associated with a pathology, and the physician does not consider them abnormal in the context of the scored recording (like normal variants and patterns).
+
+ requireChild
+
+
+ Sharp-transient-pattern
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+
+ Wicket-spikes
+ Spike-like monophasic negative single waves or trains of waves occurring over the temporal regions during drowsiness that have an arcuate or mu-like appearance. These are mainly seen in older individuals and represent a benign variant that is of little clinical significance.
+
+
+ Small-sharp-spikes
+ Benign epileptiform Transients of Sleep (BETS). Small sharp spikes (SSS) of very short duration and low amplitude, often followed by a small theta wave, occurring in the temporal regions during drowsiness and light sleep. They occur on one or both sides (often asynchronously). The main negative and positive components are of about equally spiky character. Rarely seen in children, they are seen most often in adults and the elderly. Two thirds of the patients have a history of epileptic seizures.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+
+ Fourteen-six-Hz-positive-burst
+ Burst of arch-shaped waves at 13-17 Hz and/or 5-7-Hz but most commonly at 14 and or 6 Hz seen generally over the posterior temporal and adjacent areas of one or both sides of the head during sleep. The sharp peaks of its component waves are positive with respect to other regions. Amplitude varies but is generally below 75 micro V. Comments: (1) best demonstrated by referential recording using contralateral earlobe or other remote, reference electrodes. (2) This pattern has no established clinical significance.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+
+ Six-Hz-spike-slow-wave
+ Spike and slow wave complexes at 4-7Hz, but mostly at 6 Hz occurring generally in brief bursts bilaterally and synchronously, symmetrically or asymmetrically, and either confined to or of larger amplitude over the posterior or anterior regions of the head. The spike has a strong positive component. Amplitude varies but is generally smaller than that of spike-and slow-wave complexes repeating at slower rates. Comment: this pattern should be distinguished from epileptiform discharges. Synonym: wave and spike phantom.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+
+ Rudimentary-spike-wave-complex
+ Synonym: Pseudo petit mal discharge. Paroxysmal discharge that consists of generalized or nearly generalized high voltage 3 to 4/sec waves with poorly developed spike in the positive trough between the slow waves, occurring in drowsiness only. It is found only in infancy and early childhood when marked hypnagogic rhythmical theta activity is paramount in the drowsy state.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+
+ Slow-fused-transient
+ A posterior slow-wave preceded by a sharp-contoured potential that blends together with the ensuing slow wave, in children.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+
+ Needle-like-occipital-spikes-blind
+ Spike discharges of a particularly fast and needle-like character develop over the occipital region in most congenitally blind children. Completely disappear during childhood or adolescence.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+
+ Subclinical-rhythmic-EEG-discharge-adults
+ Subclinical rhythmic EEG discharge of adults (SERDA). A rhythmic pattern seen in the adult age group, mainly in the waking state or drowsiness. It consists of a mixture of frequencies, often predominant in the theta range. The onset may be fairly abrupt with widespread sharp rhythmical theta and occasionally with delta activity. As to the spatial distribution, a maximum of this discharge is usually found over the centroparietal region and especially over the vertex. It may resemble a seizure discharge but is not accompanied by any clinical signs or symptoms.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+
+ Rhythmic-temporal-theta-burst-drowsiness
+ Rhythmic temporal theta burst of drowsiness (RTTD). Characteristic burst of 4-7 Hz waves frequently notched by faster waves, occurring over the temporal regions of the head during drowsiness. Synonym: psychomotor variant pattern. Comment: this is a pattern of drowsiness that is of no clinical significance.
+
+
+ Temporal-slowing-elderly
+ Focal theta and/or delta activity over the temporal regions, especially the left, in persons over the age of 60. Amplitudes are low/similar to the background activity. Comment: focal temporal theta was found in 20 percent of people between the ages of 40-59 years, and 40 percent of people between 60 and 79 years. One third of people older than 60 years had focal temporal delta activity.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+
+ Breach-rhythm
+ Rhythmical activity recorded over cranial bone defects. Usually it is in the 6 to 11/sec range, does not respond to movements.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+
+ Other-uncertain-significant-pattern
+
+ requireChild
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+
@@ -6740,5 +6821,5 @@ A second revised and extended version of SCORE achieved international consensus.
[1] Beniczky, Sandor, et al. "Standardized computer based organized reporting of EEG: SCORE." Epilepsia 54.6 (2013).
[2] Beniczky, Sandor, et al. "Standardized computer based organized reporting of EEG: SCORE second version." Clinical Neurophysiology 128.11 (2017).
-TPA, November 2022
+TPA, March 2023
diff --git a/tests/data/schema_tests/merge_tests/HED_score_merged.mediawiki b/tests/data/schema_tests/merge_tests/HED_score_merged.mediawiki
index 4d341f046..6415eb02a 100644
--- a/tests/data/schema_tests/merge_tests/HED_score_merged.mediawiki
+++ b/tests/data/schema_tests/merge_tests/HED_score_merged.mediawiki
@@ -1,4 +1,4 @@
-HED version="1.0.0" library="score" withStandard="8.2.0"
+HED version="1.1.0" library="score" withStandard="8.2.0"
'''Prologue'''
This schema is a Hierarchical Event Descriptors (HED) Library Schema implementation of Standardized Computer-based Organized Reporting of EEG (SCORE)[1,2] for describing events occurring during neuroimaging time series recordings.
@@ -27,6 +27,60 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
* Robotic-agent [An agent mechanical device capable of performing a variety of often complex tasks on command or by being programmed in advance.]
* Software-agent [An agent computer program.]
+'''Modulator''' {requireChild, inLibrary=score} [External stimuli / interventions or changes in the alertness level (sleep) that modify: the background activity, or how often a graphoelement is occurring, or change other features of the graphoelement (like intra-burst frequency). For each observed finding, there is an option of specifying how they are influenced by the modulators and procedures that were done during the recording.]
+ * Sleep-modulator {inLibrary=score}
+ ** Sleep-deprivation {inLibrary=score}
+ *** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ ** Sleep-following-sleep-deprivation {inLibrary=score}
+ *** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ ** Natural-sleep {inLibrary=score}
+ *** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ ** Induced-sleep {inLibrary=score}
+ *** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ ** Drowsiness {inLibrary=score}
+ *** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ ** Awakening {inLibrary=score}
+ *** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ * Medication-modulator {inLibrary=score}
+ ** Medication-administered-during-recording {inLibrary=score}
+ *** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ ** Medication-withdrawal-or-reduction-during-recording {inLibrary=score}
+ *** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ * Eye-modulator {inLibrary=score}
+ ** Manual-eye-closure {inLibrary=score}
+ *** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ ** Manual-eye-opening {inLibrary=score}
+ *** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ * Stimulation-modulator {inLibrary=score}
+ ** Intermittent-photic-stimulation {requireChild, suggestedTag=Intermittent-photic-stimulation-effect, inLibrary=score}
+ *** # {takesValue, valueClass=numericClass, unitClass=frequencyUnits, inLibrary=score}
+ ** Auditory-stimulation {inLibrary=score}
+ *** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ ** Nociceptive-stimulation {inLibrary=score}
+ *** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ * Hyperventilation {inLibrary=score}
+ ** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ * Physical-effort {inLibrary=score}
+ ** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ * Cognitive-task {inLibrary=score}
+ ** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ * Other-modulator-or-procedure {requireChild, inLibrary=score}
+ ** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+
+'''Background-activity''' {requireChild, inLibrary=score} [An EEG activity representing the setting in which a given normal or abnormal pattern appears and from which such pattern is distinguished.]
+ * Posterior-dominant-rhythm {suggestedTag=Finding-significance-to-recording, suggestedTag=Finding-frequency, suggestedTag=Finding-amplitude-asymmetry, suggestedTag=Posterior-dominant-rhythm-property, inLibrary=score} [Rhythmic activity occurring during wakefulness over the posterior regions of the head, generally with maximum amplitudes over the occipital areas. Amplitude varies. Best seen with eyes closed and during physical relaxation and relative mental inactivity. Blocked or attenuated by attention, especially visual, and mental effort. In adults this is the alpha rhythm, and the frequency is 8 to 13 Hz. However the frequency can be higher or lower than this range (often a supra or sub harmonic of alpha frequency) and is called alpha variant rhythm (fast and slow alpha variant rhythm). In children, the normal range of the frequency of the posterior dominant rhythm is age-dependant.]
+ * Mu-rhythm {suggestedTag=Finding-frequency, suggestedTag=Finding-significance-to-recording, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, inLibrary=score} [EEG rhythm at 7-11 Hz composed of arch-shaped waves occurring over the central or centro-parietal regions of the scalp during wakefulness. Amplitudes varies but is mostly below 50 microV. Blocked or attenuated most clearly by contralateral movement, thought of movement, readiness to move or tactile stimulation.]
+ * Other-organized-rhythm {requireChild, suggestedTag=Rhythmic-activity-morphology, suggestedTag=Finding-significance-to-recording, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, inLibrary=score} [EEG activity that consisting of waves of approximately constant period, which is considered as part of the background (ongoing) activity, but does not fulfill the criteria of the posterior dominant rhythm.]
+ ** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ * Background-activity-special-feature {requireChild, inLibrary=score} [Special Features. Special features contains scoring options for the background activity of critically ill patients.]
+ ** Continuous-background-activity {suggestedTag=Rhythmic-activity-morphology, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-extent, inLibrary=score}
+ ** Nearly-continuous-background-activity {suggestedTag=Rhythmic-activity-morphology, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-extent, inLibrary=score}
+ ** Discontinuous-background-activity {suggestedTag=Rhythmic-activity-morphology, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-extent, inLibrary=score}
+ ** Background-burst-suppression {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-extent, inLibrary=score} [EEG pattern consisting of bursts (activity appearing and disappearing abruptly) interrupted by periods of low amplitude (below 20 microV) and which occurs simultaneously over all head regions.]
+ ** Background-burst-attenuation {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-extent, inLibrary=score}
+ ** Background-activity-suppression {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-extent, suggestedTag=Appearance-mode, inLibrary=score} [Periods showing activity under 10 microV (referential montage) and interrupting the background (ongoing) activity.]
+ ** Electrocerebral-inactivity {inLibrary=score} [Absence of any ongoing cortical electric activities; in all leads EEG is isoelectric or only contains artifacts. Sensitivity has to be increased up to 2 microV/mm; recording time: at least 30 minutes.]
+
'''Action''' {extensionAllowed} [Do something.]
* Communicate [Convey knowledge of or information about something.]
** Communicate-gesturally {relatedTag=Move-face, relatedTag=Move-upper-extremity} [Communicate nonverbally using visible bodily actions, either in place of speech or together and in parallel with spoken words. Gestures include movement of the hands, face, or other parts of the body.]
@@ -43,8 +97,8 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
*** Shrug {relatedTag=Move-upper-extremity, relatedTag=Move-torso} [Lift shoulders up towards head to indicate a lack of knowledge about a particular topic.]
*** Smile {relatedTag=Move-face} [Form facial features into a pleased, kind, or amused expression, typically with the corners of the mouth turned up and the front teeth exposed.]
*** Spread-hands {relatedTag=Move-upper-extremity} [Spread hands apart to indicate ignorance.]
- *** Thumbs-down {relatedTag=Move-upper-extremity} [Extend the thumb downward to indicate disapproval.]
*** Thumb-up {relatedTag=Move-upper-extremity} [Extend the thumb upward to indicate approval.]
+ *** Thumbs-down {relatedTag=Move-upper-extremity} [Extend the thumb downward to indicate disapproval.]
*** Wave {relatedTag=Move-upper-extremity} [Raise hand and move left and right, as a greeting or sign of departure.]
*** Widen-eyes {relatedTag=Move-face, relatedTag=Move-eyes} [Open eyes and possibly with eyebrows lifted especially to express surprise or fear.]
*** Wink {relatedTag=Move-face, relatedTag=Move-eyes} [Close and open one eye quickly, typically to indicate that something is a joke or a secret or as a signal of affection or greeting.]
@@ -81,11 +135,11 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
*** Jerk [Make a quick, sharp, sudden movement.]
*** Lie-down [Move to a horizontal or resting position.]
*** Recover-balance [Return to a stable, upright body position.]
+ *** Shudder [Tremble convulsively, sometimes as a result of fear or revulsion.]
*** Sit-down [Move from a standing to a sitting position.]
*** Sit-up [Move from lying down to a sitting position.]
*** Stand-up [Move from a sitting to a standing position.]
*** Stretch [Straighten or extend body or a part of body to its full length, typically so as to tighten muscles or in order to reach something.]
- *** Shudder [Tremble convulsively, sometimes as a result of fear or revulsion.]
*** Stumble [Trip or momentarily lose balance and almost fall.]
*** Turn [Change or cause to change direction.]
** Move-body-part [Move one part of a body.]
@@ -144,9 +198,9 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
* Perceive [Produce an internal, conscious image through stimulating a sensory system.]
** Hear [Give attention to a sound.]
** See [Direct gaze toward someone or something or in a specified direction.]
+ ** Sense-by-touch [Sense something through receptors in the skin.]
** Smell [Inhale in order to ascertain an odor or scent.]
** Taste [Sense a flavor in the mouth and throat on contact with a substance.]
- ** Sense-by-touch [Sense something through receptors in the skin.]
* Perform [Carry out or accomplish an action, task, or function.]
** Close [Act as to blocked against entry or passage.]
** Collide-with [Hit with force when moving.]
@@ -176,1236 +230,73 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
** Memorize [Adaptively change behavior as the result of experience.]
** Plan [Think about the activities required to achieve a desired goal.]
** Predict [Say or estimate that something will happen or will be a consequence of something without having exact informaton.]
+ ** Recall [Remember information by mental effort.]
** Recognize [Identify someone or something from having encountered them before.]
** Respond [React to something such as a treatment or a stimulus.]
- ** Recall [Remember information by mental effort.]
** Switch-attention [Transfer attention from one focus to another.]
** Track [Follow a person, animal, or object through space or time.]
-'''Item''' {extensionAllowed} [An independently existing thing (living or nonliving).]
- * Biological-item [An entity that is biological, that is related to living organisms.]
- ** Anatomical-item [A biological structure, system, fluid or other substance excluding single molecular entities.]
- *** Body [The biological structure representing an organism.]
- *** Body-part [Any part of an organism.]
- **** Head [The upper part of the human body, or the front or upper part of the body of an animal, typically separated from the rest of the body by a neck, and containing the brain, mouth, and sense organs.]
- ***** Hair [The filamentous outgrowth of the epidermis.]
- ***** Ear [A sense organ needed for the detection of sound and for establishing balance.]
- ***** Face [The anterior portion of the head extending from the forehead to the chin and ear to ear. The facial structures contain the eyes, nose and mouth, cheeks and jaws.]
- ****** Cheek [The fleshy part of the face bounded by the eyes, nose, ear, and jaw line.]
- ****** Chin [The part of the face below the lower lip and including the protruding part of the lower jaw.]
- ****** Eye [The organ of sight or vision.]
- ****** Eyebrow [The arched strip of hair on the bony ridge above each eye socket.]
- ****** Forehead [The part of the face between the eyebrows and the normal hairline.]
- ****** Lip [Fleshy fold which surrounds the opening of the mouth.]
- ****** Nose [A structure of special sense serving as an organ of the sense of smell and as an entrance to the respiratory tract.]
- ****** Mouth [The proximal portion of the digestive tract, containing the oral cavity and bounded by the oral opening.]
- ****** Teeth [The hard bonelike structures in the jaws. A collection of teeth arranged in some pattern in the mouth or other part of the body.]
- **** Lower-extremity [Refers to the whole inferior limb (leg and/or foot).]
- ***** Ankle [A gliding joint between the distal ends of the tibia and fibula and the proximal end of the talus.]
- ***** Calf [The fleshy part at the back of the leg below the knee.]
- ***** Foot [The structure found below the ankle joint required for locomotion.]
- ****** Big-toe [The largest toe on the inner side of the foot.]
- ****** Heel [The back of the foot below the ankle.]
- ****** Instep [The part of the foot between the ball and the heel on the inner side.]
- ****** Little-toe [The smallest toe located on the outer side of the foot.]
- ****** Toes [The terminal digits of the foot.]
- ***** Knee [A joint connecting the lower part of the femur with the upper part of the tibia.]
- ***** Shin [Front part of the leg below the knee.]
- ***** Thigh [Upper part of the leg between hip and knee.]
- **** Torso [The body excluding the head and neck and limbs.]
- ***** Torso-back [The rear surface of the human body from the shoulders to the hips.]
- ***** Buttocks [The round fleshy parts that form the lower rear area of a human trunk.]
- ***** Torso-chest [The anterior side of the thorax from the neck to the abdomen.]
- ***** Gentalia {deprecatedFrom=8.1.0} [The external organs of reproduction.]
- ***** Hip [The lateral prominence of the pelvis from the waist to the thigh.]
- ***** Waist [The abdominal circumference at the navel.]
- **** Upper-extremity [Refers to the whole superior limb (shoulder, arm, elbow, wrist, hand).]
- ***** Elbow [A type of hinge joint located between the forearm and upper arm.]
- ***** Forearm [Lower part of the arm between the elbow and wrist.]
- ***** Hand [The distal portion of the upper extremity. It consists of the carpus, metacarpus, and digits.]
- ****** Finger [Any of the digits of the hand.]
- ******* Index-finger [The second finger from the radial side of the hand, next to the thumb.]
- ******* Little-finger [The fifth and smallest finger from the radial side of the hand.]
- ******* Middle-finger [The middle or third finger from the radial side of the hand.]
- ******* Ring-finger [The fourth finger from the radial side of the hand.]
- ******* Thumb [The thick and short hand digit which is next to the index finger in humans.]
- ****** Palm [The part of the inner surface of the hand that extends from the wrist to the bases of the fingers.]
- ****** Knuckles [A part of a finger at a joint where the bone is near the surface, especially where the finger joins the hand.]
- ***** Shoulder [Joint attaching upper arm to trunk.]
- ***** Upper-arm [Portion of arm between shoulder and elbow.]
- ***** Wrist [A joint between the distal end of the radius and the proximal row of carpal bones.]
- ** Organism [A living entity, more specifically a biological entity that consists of one or more cells and is capable of genomic replication (independently or not).]
- *** Animal [A living organism that has membranous cell walls, requires oxygen and organic foods, and is capable of voluntary movement.]
- *** Human [The bipedal primate mammal Homo sapiens.]
- *** Plant [Any living organism that typically synthesizes its food from inorganic substances and possesses cellulose cell walls.]
- * Language-item {suggestedTag=Sensory-presentation} [An entity related to a systematic means of communicating by the use of sounds, symbols, or gestures.]
- ** Character [A mark or symbol used in writing.]
- ** Clause [A unit of grammatical organization next below the sentence in rank, usually consisting of a subject and predicate.]
- ** Glyph [A hieroglyphic character, symbol, or pictograph.]
- ** Nonword [A group of letters or speech sounds that looks or sounds like a word but that is not accepted as such by native speakers.]
- ** Paragraph [A distinct section of a piece of writing, usually dealing with a single theme.]
- ** Phoneme [A speech sound that is distinguished by the speakers of a particular language.]
- ** Phrase [A phrase is a group of words functioning as a single unit in the syntax of a sentence.]
- ** Sentence [A set of words that is complete in itself, conveying a statement, question, exclamation, or command and typically containing an explicit or implied subject and a predicate containing a finite verb.]
- ** Syllable [A unit of spoken language larger than a phoneme.]
- ** Textblock [A block of text.]
- ** Word [A word is the smallest free form (an item that may be expressed in isolation with semantic or pragmatic content) in a language.]
- * Object {suggestedTag=Sensory-presentation} [Something perceptible by one or more of the senses, especially by vision or touch. A material thing.]
- ** Geometric-object [An object or a representation that has structure and topology in space.]
- *** Pattern [An arrangement of objects, facts, behaviors, or other things which have scientific, mathematical, geometric, statistical, or other meaning.]
- **** Dots [A small round mark or spot.]
- **** LED-pattern [A pattern created by lighting selected members of a fixed light emitting diode array.]
- *** 2D-shape [A planar, two-dimensional shape.]
- **** Arrow [A shape with a pointed end indicating direction.]
- **** Clockface [The dial face of a clock. A location identifier based on clockface numbering or anatomic subregion.]
- **** Cross [A figure or mark formed by two intersecting lines crossing at their midpoints.]
- **** Dash [A horizontal stroke in writing or printing to mark a pause or break in sense or to represent omitted letters or words.]
- **** Ellipse [A closed plane curve resulting from the intersection of a circular cone and a plane cutting completely through it, especially a plane not parallel to the base.]
- ***** Circle [A ring-shaped structure with every point equidistant from the center.]
- **** Rectangle [A parallelogram with four right angles.]
- ***** Square [A square is a special rectangle with four equal sides.]
- **** Single-point [A point is a geometric entity that is located in a zero-dimensional spatial region and whose position is defined by its coordinates in some coordinate system.]
- **** Star [A conventional or stylized representation of a star, typically one having five or more points.]
- **** Triangle [A three-sided polygon.]
- *** 3D-shape [A geometric three-dimensional shape.]
- **** Box [A square or rectangular vessel, usually made of cardboard or plastic.]
- ***** Cube [A solid or semi-solid in the shape of a three dimensional square.]
- **** Cone [A shape whose base is a circle and whose sides taper up to a point.]
- **** Cylinder [A surface formed by circles of a given radius that are contained in a plane perpendicular to a given axis, whose centers align on the axis.]
- **** Ellipsoid [A closed plane curve resulting from the intersection of a circular cone and a plane cutting completely through it, especially a plane not parallel to the base.]
- ***** Sphere [A solid or hollow three-dimensional object bounded by a closed surface such that every point on the surface is equidistant from the center.]
- **** Pyramid [A polyhedron of which one face is a polygon of any number of sides, and the other faces are triangles with a common vertex.]
- ** Ingestible-object [Something that can be taken into the body by the mouth for digestion or absorption.]
- ** Man-made-object [Something constructed by human means.]
- *** Building [A structure that has a roof and walls and stands more or less permanently in one place.]
- **** Room [An area within a building enclosed by walls and floor and ceiling.]
- **** Roof [A roof is the covering on the uppermost part of a building which provides protection from animals and weather, notably rain, but also heat, wind and sunlight.]
- **** Entrance [The means or place of entry.]
- **** Attic [A room or a space immediately below the roof of a building.]
- **** Basement [The part of a building that is wholly or partly below ground level.]
- *** Clothing [A covering designed to be worn on the body.]
- *** Device [An object contrived for a specific purpose.]
- **** Assistive-device [A device that help an individual accomplish a task.]
- ***** Glasses [Frames with lenses worn in front of the eye for vision correction, eye protection, or protection from UV rays.]
- ***** Writing-device [A device used for writing.]
- ****** Pen [A common writing instrument used to apply ink to a surface for writing or drawing.]
- ****** Pencil [An implement for writing or drawing that is constructed of a narrow solid pigment core in a protective casing that prevents the core from being broken or marking the hand.]
- **** Computing-device [An electronic device which take inputs and processes results from the inputs.]
- ***** Cellphone [A telephone with access to a cellular radio system so it can be used over a wide area, without a physical connection to a network.]
- ***** Desktop-computer [A computer suitable for use at an ordinary desk.]
- ***** Laptop-computer [A computer that is portable and suitable for use while traveling.]
- ***** Tablet-computer [A small portable computer that accepts input directly on to its screen rather than via a keyboard or mouse.]
- **** Engine [A motor is a machine designed to convert one or more forms of energy into mechanical energy.]
- **** IO-device [Hardware used by a human (or other system) to communicate with a computer.]
- ***** Input-device [A piece of equipment used to provide data and control signals to an information processing system such as a computer or information appliance.]
- ****** Computer-mouse [A hand-held pointing device that detects two-dimensional motion relative to a surface.]
- ******* Mouse-button [An electric switch on a computer mouse which can be pressed or clicked to select or interact with an element of a graphical user interface.]
- ******* Scroll-wheel [A scroll wheel or mouse wheel is a wheel used for scrolling made of hard plastic with a rubbery surface usually located between the left and right mouse buttons and is positioned perpendicular to the mouse surface.]
- ****** Joystick [A control device that uses a movable handle to create two-axis input for a computer device.]
- ****** Keyboard [A device consisting of mechanical keys that are pressed to create input to a computer.]
- ******* Keyboard-key [A button on a keyboard usually representing letters, numbers, functions, or symbols.]
- ******** # {takesValue} [Value of a keyboard key.]
- ****** Keypad [A device consisting of keys, usually in a block arrangement, that provides limited input to a system.]
- ******* Keypad-key [A key on a separate section of a computer keyboard that groups together numeric keys and those for mathematical or other special functions in an arrangement like that of a calculator.]
- ******** # {takesValue} [Value of keypad key.]
- ****** Microphone [A device designed to convert sound to an electrical signal.]
- ****** Push-button [A switch designed to be operated by pressing a button.]
- ***** Output-device [Any piece of computer hardware equipment which converts information into human understandable form.]
- ****** Display-device [An output device for presentation of information in visual or tactile form the latter used for example in tactile electronic displays for blind people.]
- ******* Head-mounted-display [An instrument that functions as a display device, worn on the head or as part of a helmet, that has a small display optic in front of one (monocular HMD) or each eye (binocular HMD).]
- ******* LED-display [A LED display is a flat panel display that uses an array of light-emitting diodes as pixels for a video display.]
- ******* Computer-screen [An electronic device designed as a display or a physical device designed to be a protective meshwork.]
- ******** Screen-window [A part of a computer screen that contains a display different from the rest of the screen. A window is a graphical control element consisting of a visual area containing some of the graphical user interface of the program it belongs to and is framed by a window decoration.]
- ****** Auditory-device [A device designed to produce sound.]
- ******* Headphones [An instrument that consists of a pair of small loudspeakers, or less commonly a single speaker, held close to ears and connected to a signal source such as an audio amplifier, radio, CD player or portable media player.]
- ******* Loudspeaker [A device designed to convert electrical signals to sounds that can be heard.]
- ***** Recording-device [A device that copies information in a signal into a persistent information bearer.]
- ****** EEG-recorder [A device for recording electric currents in the brain using electrodes applied to the scalp, to the surface of the brain, or placed within the substance of the brain.]
- ****** File-storage [A device for recording digital information to a permanent media.]
- ****** MEG-recorder [A device for measuring the magnetic fields produced by electrical activity in the brain, usually conducted externally.]
- ****** Motion-capture [A device for recording the movement of objects or people.]
- ****** Tape-recorder [A device for recording and reproduction usually using magnetic tape for storage that can be saved and played back.]
- ***** Touchscreen [A control component that operates an electronic device by pressing the display on the screen.]
- **** Machine [A human-made device that uses power to apply forces and control movement to perform an action.]
- **** Measurement-device [A device in which a measure function inheres.]
- ***** Clock [A device designed to indicate the time of day or to measure the time duration of an event or action.]
- ****** Clock-face [A location identifier based on clockface numbering or anatomic subregion.]
- **** Robot [A mechanical device that sometimes resembles a living animal and is capable of performing a variety of often complex human tasks on command or by being programmed in advance.]
- **** Tool [A component that is not part of a device but is designed to support its assemby or operation.]
- *** Document [A physical object, or electronic counterpart, that is characterized by containing writing which is meant to be human-readable.]
- **** Letter [A written message addressed to a person or organization.]
- **** Note [A brief written record.]
- **** Book [A volume made up of pages fastened along one edge and enclosed between protective covers.]
- **** Notebook [A book for notes or memoranda.]
- **** Questionnaire [A document consisting of questions and possibly responses, depending on whether it has been filled out.]
- *** Furnishing [Furniture, fittings, and other decorative accessories, such as curtains and carpets, for a house or room.]
- *** Manufactured-material [Substances created or extracted from raw materials.]
- **** Ceramic [A hard, brittle, heat-resistant and corrosion-resistant material made by shaping and then firing a nonmetallic mineral, such as clay, at a high temperature.]
- **** Glass [A brittle transparent solid with irregular atomic structure.]
- **** Paper [A thin sheet material produced by mechanically or chemically processing cellulose fibres derived from wood, rags, grasses or other vegetable sources in water.]
- **** Plastic [Various high-molecular-weight thermoplastic or thermosetting polymers that are capable of being molded, extruded, drawn, or otherwise shaped and then hardened into a form.]
- **** Steel [An alloy made up of iron with typically a few tenths of a percent of carbon to improve its strength and fracture resistance compared to iron.]
- *** Media [Media are audo/visual/audiovisual modes of communicating information for mass consumption.]
- **** Media-clip [A short segment of media.]
- ***** Audio-clip [A short segment of audio.]
- ***** Audiovisual-clip [A short media segment containing both audio and video.]
- ***** Video-clip [A short segment of video.]
- **** Visualization [An planned process that creates images, diagrams or animations from the input data.]
- ***** Animation [A form of graphical illustration that changes with time to give a sense of motion or represent dynamic changes in the portrayal.]
- ***** Art-installation [A large-scale, mixed-media constructions, often designed for a specific place or for a temporary period of time.]
- ***** Braille [A display using a system of raised dots that can be read with the fingers by people who are blind.]
- ***** Image [Any record of an imaging event whether physical or electronic.]
- ****** Cartoon [A type of illustration, sometimes animated, typically in a non-realistic or semi-realistic style. The specific meaning has evolved over time, but the modern usage usually refers to either an image or series of images intended for satire, caricature, or humor. A motion picture that relies on a sequence of illustrations for its animation.]
- ****** Drawing [A representation of an object or outlining a figure, plan, or sketch by means of lines.]
- ****** Icon [A sign (such as a word or graphic symbol) whose form suggests its meaning.]
- ****** Painting [A work produced through the art of painting.]
- ****** Photograph [An image recorded by a camera.]
- ***** Movie [A sequence of images displayed in succession giving the illusion of continuous movement.]
- ***** Outline-visualization [A visualization consisting of a line or set of lines enclosing or indicating the shape of an object in a sketch or diagram.]
- ***** Point-light-visualization [A display in which action is depicted using a few points of light, often generated from discrete sensors in motion capture.]
- ***** Sculpture [A two- or three-dimensional representative or abstract forms, especially by carving stone or wood or by casting metal or plaster.]
- ***** Stick-figure-visualization [A drawing showing the head of a human being or animal as a circle and all other parts as straight lines.]
- *** Navigational-object [An object whose purpose is to assist directed movement from one location to another.]
- **** Path [A trodden way. A way or track laid down for walking or made by continual treading.]
- **** Road [An open way for the passage of vehicles, persons, or animals on land.]
- ***** Lane [A defined path with physical dimensions through which an object or substance may traverse.]
- **** Runway [A paved strip of ground on a landing field for the landing and takeoff of aircraft.]
- *** Vehicle [A mobile machine which transports people or cargo.]
- **** Aircraft [A vehicle which is able to travel through air in an atmosphere.]
- **** Bicycle [A human-powered, pedal-driven, single-track vehicle, having two wheels attached to a frame, one behind the other.]
- **** Boat [A watercraft of any size which is able to float or plane on water.]
- **** Car [A wheeled motor vehicle used primarily for the transportation of human passengers.]
- **** Cart [A cart is a vehicle which has two wheels and is designed to transport human passengers or cargo.]
- **** Tractor [A mobile machine specifically designed to deliver a high tractive effort at slow speeds, and mainly used for the purposes of hauling a trailer or machinery used in agriculture or construction.]
- **** Train [A connected line of railroad cars with or without a locomotive.]
- **** Truck [A motor vehicle which, as its primary funcion, transports cargo rather than human passangers.]
- ** Natural-object [Something that exists in or is produced by nature, and is not artificial or man-made.]
- *** Mineral [A solid, homogeneous, inorganic substance occurring in nature and having a definite chemical composition.]
- *** Natural-feature [A feature that occurs in nature. A prominent or identifiable aspect, region, or site of interest.]
- **** Field [An unbroken expanse as of ice or grassland.]
- **** Hill [A rounded elevation of limited extent rising above the surrounding land with local relief of less than 300m.]
- **** Mountain [A landform that extends above the surrounding terrain in a limited area.]
- **** River [A natural freshwater surface stream of considerable volume and a permanent or seasonal flow, moving in a definite channel toward a sea, lake, or another river.]
- **** Waterfall [A sudden descent of water over a step or ledge in the bed of a river.]
- * Sound [Mechanical vibrations transmitted by an elastic medium. Something that can be heard.]
- ** Environmental-sound [Sounds occuring in the environment. An accumulation of noise pollution that occurs outside. This noise can be caused by transport, industrial, and recreational activities.]
- *** Crowd-sound [Noise produced by a mixture of sounds from a large group of people.]
- *** Signal-noise [Any part of a signal that is not the true or original signal but is introduced by the communication mechanism.]
- ** Musical-sound [Sound produced by continuous and regular vibrations, as opposed to noise.]
- *** Tone [A musical note, warble, or other sound used as a particular signal on a telephone or answering machine.]
- *** Instrument-sound [Sound produced by a musical instrument.]
- *** Vocalized-sound [Musical sound produced by vocal cords in a biological agent.]
- ** Named-animal-sound [A sound recognizable as being associated with particular animals.]
- *** Barking [Sharp explosive cries like sounds made by certain animals, especially a dog, fox, or seal.]
- *** Bleating [Wavering cries like sounds made by a sheep, goat, or calf.]
- *** Crowing [Loud shrill sounds characteristic of roosters.]
- *** Chirping [Short, sharp, high-pitched noises like sounds made by small birds or an insects.]
- *** Growling [Low guttural sounds like those that made in the throat by a hostile dog or other animal.]
- *** Meowing [Vocalizations like those made by as those cats. These sounds have diverse tones and are sometimes chattered, murmured or whispered. The purpose can be assertive.]
- *** Mooing [Deep vocal sounds like those made by a cow.]
- *** Purring [Low continuous vibratory sound such as those made by cats. The sound expresses contentment.]
- *** Roaring [Loud, deep, or harsh prolonged sounds such as those made by big cats and bears for long-distance communication and intimidation.]
- *** Squawking [Loud, harsh noises such as those made by geese.]
- ** Named-object-sound [A sound identifiable as coming from a particular type of object.]
- *** Alarm-sound [A loud signal often loud continuous ringing to alert people to a problem or condition that requires urgent attention.]
- *** Beep [A short, single tone, that is typically high-pitched and generally made by a computer or other machine.]
- *** Buzz [A persistent vibratory sound often made by a buzzer device and used to indicate something incorrect.]
- *** Ka-ching [The sound made by a mechanical cash register, often to designate a reward.]
- *** Click [The sound made by a mechanical cash register, often to designate a reward.]
- *** Ding [A short ringing sound such as that made by a bell, often to indicate a correct response or the expiration of time.]
- *** Horn-blow [A loud sound made by forcing air through a sound device that funnels air to create the sound, often used to sound an alert.]
- *** Siren [A loud, continuous sound often varying in frequency designed to indicate an emergency.]
+'''Artifact''' {requireChild, inLibrary=score} [When relevant for the clinical interpretation, artifacts can be scored by specifying the type and the location.]
+ * Biological-artifact {requireChild, inLibrary=score}
+ ** Eye-blink-artifact {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Multifocal-finding, suggestedTag=Artifact-significance-to-recording, inLibrary=score} [Example for EEG: Fp1/Fp2 become electropositive with eye closure because the cornea is positively charged causing a negative deflection in Fp1/Fp2. If the eye blink is unilateral, consider prosthetic eye. If it is in F8 rather than Fp2 then the electrodes are plugged in wrong.]
+ ** Eye-movement-horizontal-artifact {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Multifocal-finding, suggestedTag=Artifact-significance-to-recording, inLibrary=score} [Example for EEG: There is an upward deflection in the Fp2-F8 derivation, when the eyes move to the right side. In this case F8 becomes more positive and therefore. When the eyes move to the left, F7 becomes more positive and there is an upward deflection in the Fp1-F7 derivation.]
+ ** Eye-movement-vertical-artifact {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Multifocal-finding, suggestedTag=Artifact-significance-to-recording, inLibrary=score} [Example for EEG: The EEG shows positive potentials (50-100 micro V) with bi-frontal distribution, maximum at Fp1 and Fp2, when the eyeball rotated upward. The downward rotation of the eyeball was associated with the negative deflection. The time course of the deflections was similar to the time course of the eyeball movement.]
+ ** Slow-eye-movement-artifact {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Multifocal-finding, suggestedTag=Artifact-significance-to-recording, inLibrary=score} [Slow, rolling eye-movements, seen during drowsiness.]
+ ** Nystagmus-artifact {suggestedTag=Artifact-significance-to-recording, inLibrary=score}
+ ** Chewing-artifact {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Multifocal-finding, suggestedTag=Artifact-significance-to-recording, inLibrary=score}
+ ** Sucking-artifact {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Multifocal-finding, suggestedTag=Artifact-significance-to-recording, inLibrary=score}
+ ** Glossokinetic-artifact {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Multifocal-finding, suggestedTag=Artifact-significance-to-recording, inLibrary=score} [The tongue functions as a dipole, with the tip negative with respect to the base. The artifact produced by the tongue has a broad potential field that drops from frontal to occipital areas, although it is less steep than that produced by eye movement artifacts. The amplitude of the potentials is greater inferiorly than in parasagittal regions; the frequency is variable but usually in the delta range. Chewing and sucking can produce similar artifacts.]
+ ** Rocking-patting-artifact {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Multifocal-finding, suggestedTag=Artifact-significance-to-recording, inLibrary=score} [Quasi-rhythmical artifacts in recordings from infants caused by rocking/patting.]
+ ** Movement-artifact {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Multifocal-finding, suggestedTag=Artifact-significance-to-recording, inLibrary=score} [Example for EEG: Large amplitude artifact, with irregular morphology (usually resembling a slow-wave or a wave with complex morphology) seen in one or several channels, due to movement. If the causing movement is repetitive, the artifact might resemble a rhythmic EEG activity.]
+ ** Respiration-artifact {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Multifocal-finding, suggestedTag=Artifact-significance-to-recording, inLibrary=score} [Respiration can produce 2 kinds of artifacts. One type is in the form of slow and rhythmic activity, synchronous with the body movements of respiration and mechanically affecting the impedance of (usually) one electrode. The other type can be slow or sharp waves that occur synchronously with inhalation or exhalation and involve those electrodes on which the patient is lying.]
+ ** Pulse-artifact {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Multifocal-finding, suggestedTag=Artifact-significance-to-recording, inLibrary=score} [Example for EEG: Occurs when an EEG electrode is placed over a pulsating vessel. The pulsation can cause slow waves that may simulate EEG activity. A direct relationship exists between ECG and the pulse waves (200-300 millisecond delay after ECG equals QRS complex).]
+ ** ECG-artifact {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Multifocal-finding, suggestedTag=Artifact-significance-to-recording, inLibrary=score} [Example for EEG: Far-field potential generated in the heart. The voltage and apparent surface of the artifact vary from derivation to derivation and, consequently, from montage to montage. The artifact is observed best in referential montages using earlobe electrodes A1 and A2. ECG artifact is recognized easily by its rhythmicity/regularity and coincidence with the ECG tracing.]
+ ** Sweat-artifact {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Multifocal-finding, suggestedTag=Artifact-significance-to-recording, inLibrary=score} [Is a low amplitude undulating waveform that is usually greater than 2 seconds and may appear to be an unstable baseline.]
+ ** EMG-artifact {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Multifocal-finding, suggestedTag=Artifact-significance-to-recording, inLibrary=score} [Myogenic potentials are the most common artifacts. Frontalis and temporalis muscles (ex..: clenching of jaw muscles) are common causes. Generally, the potentials generated in the muscles are of shorter duration than those generated in the brain. The frequency components are usually beyond 30-50 Hz, and the bursts are arrhythmic.]
+ * Non-biological-artifact {requireChild, inLibrary=score}
+ ** Power-supply-artifact {suggestedTag=Artifact-significance-to-recording, inLibrary=score} [50-60 Hz artifact. Monomorphic waveform due to 50 or 60 Hz A/C power supply.]
+ ** Induction-artifact {suggestedTag=Artifact-significance-to-recording, inLibrary=score} [Artifacts (usually of high frequency) induced by nearby equipment (like in the intensive care unit).]
+ ** Dialysis-artifact {suggestedTag=Artifact-significance-to-recording, inLibrary=score}
+ ** Artificial-ventilation-artifact {suggestedTag=Artifact-significance-to-recording, inLibrary=score}
+ ** Electrode-pops-artifact {suggestedTag=Artifact-significance-to-recording, inLibrary=score} [Are brief discharges with a very steep upslope and shallow fall that occur in all leads which include that electrode.]
+ ** Salt-bridge-artifact {suggestedTag=Artifact-significance-to-recording, inLibrary=score} [Typically occurs in 1 channel which may appear isoelectric. Only seen in bipolar montage.]
+ * Other-artifact {requireChild, suggestedTag=Artifact-significance-to-recording, inLibrary=score}
+ ** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
-'''Property''' {extensionAllowed} [Something that pertains to a thing. A characteristic of some entity. A quality or feature regarded as a characteristic or inherent part of someone or something. HED attributes are adjectives or adverbs.]
- * Agent-property {extensionAllowed} [Something that pertains to an agent.]
- ** Agent-state [The state of the agent.]
- *** Agent-cognitive-state [The state of the cognitive processes or state of mind of the agent.]
- **** Alert [Condition of heightened watchfulness or preparation for action.]
- **** Anesthetized [Having lost sensation to pain or having senses dulled due to the effects of an anesthetic.]
- **** Asleep [Having entered a periodic, readily reversible state of reduced awareness and metabolic activity, usually accompanied by physical relaxation and brain activity.]
- **** Attentive [Concentrating and focusing mental energy on the task or surroundings.]
- **** Distracted [Lacking in concentration because of being preoccupied.]
- **** Awake [In a non sleeping state.]
- **** Brain-dead [Characterized by the irreversible absence of cortical and brain stem functioning.]
- **** Comatose [In a state of profound unconsciousness associated with markedly depressed cerebral activity.]
- **** Drowsy [In a state of near-sleep, a strong desire for sleep, or sleeping for unusually long periods.]
- **** Intoxicated [In a state with disturbed psychophysiological functions and responses as a result of administration or ingestion of a psychoactive substance.]
- **** Locked-in [In a state of complete paralysis of all voluntary muscles except for the ones that control the movements of the eyes.]
- **** Passive [Not responding or initiating an action in response to a stimulus.]
- **** Resting [A state in which the agent is not exhibiting any physical exertion.]
- **** Vegetative [A state of wakefulness and conscience, but (in contrast to coma) with involuntary opening of the eyes and movements (such as teeth grinding, yawning, or thrashing of the extremities).]
- *** Agent-emotional-state [The status of the general temperament and outlook of an agent.]
- **** Angry [Experiencing emotions characterized by marked annoyance or hostility.]
- **** Aroused [In a state reactive to stimuli leading to increased heart rate and blood pressure, sensory alertness, mobility and readiness to respond.]
- **** Awed [Filled with wonder. Feeling grand, sublime or powerful emotions characterized by a combination of joy, fear, admiration, reverence, and/or respect.]
- **** Compassionate [Feeling or showing sympathy and concern for others often evoked for a person who is in distress and associated with altruistic motivation.]
- **** Content [Feeling satisfaction with things as they are.]
- **** Disgusted [Feeling revulsion or profound disapproval aroused by something unpleasant or offensive.]
- **** Emotionally-neutral [Feeling neither satisfied nor dissatisfied.]
- **** Empathetic [Understanding and sharing the feelings of another. Being aware of, being sensitive to, and vicariously experiencing the feelings, thoughts, and experience of another.]
- **** Excited [Feeling great enthusiasm and eagerness.]
- **** Fearful [Feeling apprehension that one may be in danger.]
- **** Frustrated [Feeling annoyed as a result of being blocked, thwarted, disappointed or defeated.]
- **** Grieving [Feeling sorrow in response to loss, whether physical or abstract.]
- **** Happy [Feeling pleased and content.]
- **** Jealous [Feeling threatened by a rival in a relationship with another individual, in particular an intimate partner, usually involves feelings of threat, fear, suspicion, distrust, anxiety, anger, betrayal, and rejection.]
- **** Joyful [Feeling delight or intense happiness.]
- **** Loving [Feeling a strong positive emotion of affection and attraction.]
- **** Relieved [No longer feeling pain, distress, anxiety, or reassured.]
- **** Sad [Feeling grief or unhappiness.]
- **** Stressed [Experiencing mental or emotional strain or tension.]
- *** Agent-physiological-state [Having to do with the mechanical, physical, or biochemical function of an agent.]
- **** Healthy {relatedTag=Sick} [Having no significant health-related issues.]
- **** Hungry {relatedTag=Sated, relatedTag=Thirsty} [Being in a state of craving or desiring food.]
- **** Rested {relatedTag=Tired} [Feeling refreshed and relaxed.]
- **** Sated {relatedTag=Hungry} [Feeling full.]
- **** Sick {relatedTag=Healthy} [Being in a state of ill health, bodily malfunction, or discomfort.]
- **** Thirsty {relatedTag=Hungry} [Feeling a need to drink.]
- **** Tired {relatedTag=Rested} [Feeling in need of sleep or rest.]
- *** Agent-postural-state [Pertaining to the position in which agent holds their body.]
- **** Crouching [Adopting a position where the knees are bent and the upper body is brought forward and down, sometimes to avoid detection or to defend oneself.]
- **** Eyes-closed [Keeping eyes closed with no blinking.]
- **** Eyes-open [Keeping eyes open with occasional blinking.]
- **** Kneeling [Positioned where one or both knees are on the ground.]
- **** On-treadmill [Ambulation on an exercise apparatus with an endless moving belt to support moving in place.]
- **** Prone [Positioned in a recumbent body position whereby the person lies on its stomach and faces downward.]
- **** Sitting [In a seated position.]
- **** Standing [Assuming or maintaining an erect upright position.]
- **** Seated-with-chin-rest [Using a device that supports the chin and head.]
- ** Agent-task-role [The function or part that is ascribed to an agent in performing the task.]
- *** Experiment-actor [An agent who plays a predetermined role to create the experiment scenario.]
- *** Experiment-controller [An agent exerting control over some aspect of the experiment.]
- *** Experiment-participant [Someone who takes part in an activity related to an experiment.]
- *** Experimenter [Person who is the owner of the experiment and has its responsibility.]
- ** Agent-trait [A genetically, environmentally, or socially determined characteristic of an agent.]
- *** Age [Length of time elapsed time since birth of the agent.]
- **** # {takesValue, valueClass=numericClass}
- *** Agent-experience-level [Amount of skill or knowledge that the agent has as pertains to the task.]
- **** Expert-level {relatedTag=Intermediate-experience-level, relatedTag=Novice-level} [Having comprehensive and authoritative knowledge of or skill in a particular area related to the task.]
- **** Intermediate-experience-level {relatedTag=Expert-level, relatedTag=Novice-level} [Having a moderate amount of knowledge or skill related to the task.]
- **** Novice-level {relatedTag=Expert-level, relatedTag=Intermediate-experience-level} [Being inexperienced in a field or situation related to the task.]
- *** Gender [Characteristics that are socially constructed, including norms, behaviors, and roles based on sex.]
- *** Sex [Physical properties or qualities by which male is distinguished from female.]
- **** Female [Biological sex of an individual with female sexual organs such ova.]
- **** Male [Biological sex of an individual with male sexual organs producing sperm.]
- **** Intersex [Having genitalia and/or secondary sexual characteristics of indeterminate sex.]
- *** Ethnicity [Belong to a social group that has a common national or cultural tradition. Use with Label to avoid extension.]
- *** Handedness [Individual preference for use of a hand, known as the dominant hand.]
- **** Left-handed [Preference for using the left hand or foot for tasks requiring the use of a single hand or foot.]
- **** Right-handed [Preference for using the right hand or foot for tasks requiring the use of a single hand or foot.]
- **** Ambidextrous [Having no overall dominance in the use of right or left hand or foot in the performance of tasks that require one hand or foot.]
- *** Race [Belonging to a group sharing physical or social qualities as defined within a specified society. Use with Label to avoid extension.]
- * Data-property {extensionAllowed} [Something that pertains to data or information.]
- ** Data-marker [An indicator placed to mark something.]
- *** Data-break-marker [An indicator place to indicate a gap in the data.]
- *** Temporal-marker [An indicator placed at a particular time in the data.]
- **** Inset {topLevelTagGroup, reserved, relatedTag=Onset, relatedTag=Offset} [Marks an intermediate point in an ongoing event of temporal extent.]
- **** Onset {topLevelTagGroup, reserved, relatedTag=Inset, relatedTag=Offset} [Marks the start of an ongoing event of temporal extent.]
- **** Offset {topLevelTagGroup, reserved, relatedTag=Onset, relatedTag=Inset} [Marks the end of an event of temporal extent.]
- **** Pause [Indicates the temporary interruption of the operation a process and subsequently wait for a signal to continue.]
- **** Time-out [A cancellation or cessation that automatically occurs when a predefined interval of time has passed without a certain event occurring.]
- **** Time-sync [A synchronization signal whose purpose to help synchronize different signals or processes. Often used to indicate a marker inserted into the recorded data to allow post hoc synchronization of concurrently recorded data streams.]
- ** Data-resolution [Smallest change in a quality being measured by an sensor that causes a perceptible change.]
- *** Printer-resolution [Resolution of a printer, usually expressed as the number of dots-per-inch for a printer.]
- **** # {takesValue, valueClass=numericClass}
- *** Screen-resolution [Resolution of a screen, usually expressed as the of pixels in a dimension for a digital display device.]
- **** # {takesValue, valueClass=numericClass}
- *** Sensory-resolution [Resolution of measurements by a sensing device.]
- **** # {takesValue, valueClass=numericClass}
- *** Spatial-resolution [Linear spacing of a spatial measurement.]
- **** # {takesValue, valueClass=numericClass}
- *** Spectral-resolution [Measures the ability of a sensor to resolve features in the electromagnetic spectrum.]
- **** # {takesValue, valueClass=numericClass}
- *** Temporal-resolution [Measures the ability of a sensor to resolve features in time.]
- **** # {takesValue, valueClass=numericClass}
- ** Data-source-type [The type of place, person, or thing from which the data comes or can be obtained.]
- *** Computed-feature [A feature computed from the data by a tool. This tag should be grouped with a label of the form Toolname_propertyName.]
- *** Computed-prediction [A computed extrapolation of known data.]
- *** Expert-annotation [An explanatory or critical comment or other in-context information provided by an authority.]
- *** Instrument-measurement [Information obtained from a device that is used to measure material properties or make other observations.]
- *** Observation [Active acquisition of information from a primary source. Should be grouped with a label of the form AgentID_featureName.]
- ** Data-value [Designation of the type of a data item.]
- *** Categorical-value [Indicates that something can take on a limited and usually fixed number of possible values.]
- **** Categorical-class-value [Categorical values that fall into discrete classes such as true or false. The grouping is absolute in the sense that it is the same for all participants.]
- ***** All {relatedTag=Some, relatedTag=None} [To a complete degree or to the full or entire extent.]
- ***** Correct {relatedTag=Wrong} [Free from error. Especially conforming to fact or truth.]
- ***** Explicit {relatedTag=Implicit} [Stated clearly and in detail, leaving no room for confusion or doubt.]
- ***** False {relatedTag=True} [Not in accordance with facts, reality or definitive criteria.]
- ***** Implicit {relatedTag=Explicit} [Implied though not plainly expressed.]
- ***** Invalid {relatedTag=Valid} [Not allowed or not conforming to the correct format or specifications.]
- ***** None {relatedTag=All, relatedTag=Some} [No person or thing, nobody, not any.]
- ***** Some {relatedTag=All, relatedTag=None} [At least a small amount or number of, but not a large amount of, or often.]
- ***** True {relatedTag=False} [Conforming to facts, reality or definitive criteria.]
- ***** Valid {relatedTag=Invalid} [Allowable, usable, or acceptable.]
- ***** Wrong {relatedTag=Correct} [Inaccurate or not correct.]
- **** Categorical-judgment-value [Categorical values that are based on the judgment or perception of the participant such familiar and famous.]
- ***** Abnormal {relatedTag=Normal} [Deviating in any way from the state, position, structure, condition, behavior, or rule which is considered a norm.]
- ***** Asymmetrical {relatedTag=Symmetrical} [Lacking symmetry or having parts that fail to correspond to one another in shape, size, or arrangement.]
- ***** Audible {relatedTag=Inaudible} [A sound that can be perceived by the participant.]
- ***** Congruent {relatedTag=Incongruent} [Concordance of multiple evidence lines. In agreement or harmony.]
- ***** Complex {relatedTag=Simple} [Hard, involved or complicated, elaborate, having many parts.]
- ***** Constrained {relatedTag=Unconstrained} [Keeping something within particular limits or bounds.]
- ***** Disordered {relatedTag=Ordered} [Not neatly arranged. Confused and untidy. A structural quality in which the parts of an object are non-rigid.]
- ***** Familiar {relatedTag=Unfamiliar, relatedTag=Famous} [Recognized, familiar, or within the scope of knowledge.]
- ***** Famous {relatedTag=Familiar, relatedTag=Unfamiliar} [A person who has a high degree of recognition by the general population for his or her success or accomplishments. A famous person.]
- ***** Inaudible {relatedTag=Audible} [A sound below the threshold of perception of the participant.]
- ***** Incongruent {relatedTag=Congruent} [Not in agreement or harmony.]
- ***** Involuntary {relatedTag=Voluntary} [An action that is not made by choice. In the body, involuntary actions (such as blushing) occur automatically, and cannot be controlled by choice.]
- ***** Masked {relatedTag=Unmasked} [Information exists but is not provided or is partially obscured due to security, privacy, or other concerns.]
- ***** Normal {relatedTag=Abnormal} [Being approximately average or within certain limits. Conforming with or constituting a norm or standard or level or type or social norm.]
- ***** Ordered {relatedTag=Disordered} [Conforming to a logical or comprehensible arrangement of separate elements.]
- ***** Simple {relatedTag=Complex} [Easily understood or presenting no difficulties.]
- ***** Symmetrical {relatedTag=Asymmetrical} [Made up of exactly similar parts facing each other or around an axis. Showing aspects of symmetry.]
- ***** Unconstrained {relatedTag=Constrained} [Moving without restriction.]
- ***** Unfamiliar {relatedTag=Familiar, relatedTag=Famous} [Not having knowledge or experience of.]
- ***** Unmasked {relatedTag=Masked} [Information is revealed.]
- ***** Voluntary {relatedTag=Involuntary} [Using free will or design; not forced or compelled; controlled by individual volition.]
- **** Categorical-level-value [Categorical values based on dividing a continuous variable into levels such as high and low.]
- ***** Cold {relatedTag=Hot} [Having an absence of heat.]
- ***** Deep {relatedTag=Shallow} [Extending relatively far inward or downward.]
- ***** High {relatedTag=Low, relatedTag=Medium} [Having a greater than normal degree, intensity, or amount.]
- ***** Hot {relatedTag=Cold} [Having an excess of heat.]
- ***** Large {relatedTag=Small} [Having a great extent such as in physical dimensions, period of time, amplitude or frequency.]
- ***** Liminal {relatedTag=Subliminal, relatedTag=Supraliminal} [Situated at a sensory threshold that is barely perceptible or capable of eliciting a response.]
- ***** Loud {relatedTag=Quiet} [Having a perceived high intensity of sound.]
- ***** Low {relatedTag=High} [Less than normal in degree, intensity or amount.]
- ***** Medium {relatedTag=Low, relatedTag=High} [Mid-way between small and large in number, quantity, magnitude or extent.]
- ***** Negative {relatedTag=Positive} [Involving disadvantage or harm.]
- ***** Positive {relatedTag=Negative} [Involving advantage or good.]
- ***** Quiet {relatedTag=Loud} [Characterizing a perceived low intensity of sound.]
- ***** Rough {relatedTag=Smooth} [Having a surface with perceptible bumps, ridges, or irregularities.]
- ***** Shallow {relatedTag=Deep} [Having a depth which is relatively low.]
- ***** Small {relatedTag=Large} [Having a small extent such as in physical dimensions, period of time, amplitude or frequency.]
- ***** Smooth {relatedTag=Rough} [Having a surface free from bumps, ridges, or irregularities.]
- ***** Subliminal {relatedTag=Liminal, relatedTag=Supraliminal} [Situated below a sensory threshold that is imperceptible or not capable of eliciting a response.]
- ***** Supraliminal {relatedTag=Liminal, relatedTag=Subliminal} [Situated above a sensory threshold that is perceptible or capable of eliciting a response.]
- ***** Thick {relatedTag=Thin} [Wide in width, extent or cross-section.]
- ***** Thin {relatedTag=Thick} [Narrow in width, extent or cross-section.]
- **** Categorical-orientation-value [Value indicating the orientation or direction of something.]
- ***** Backward {relatedTag=Forward} [Directed behind or to the rear.]
- ***** Downward {relatedTag=Leftward, relatedTag=Rightward, relatedTag=Upward} [Moving or leading toward a lower place or level.]
- ***** Forward {relatedTag=Backward} [At or near or directed toward the front.]
- ***** Horizontally-oriented {relatedTag=Vertically-oriented} [Oriented parallel to or in the plane of the horizon.]
- ***** Leftward {relatedTag=Downward, relatedTag=Rightward, relatedTag=Upward} [Going toward or facing the left.]
- ***** Oblique {relatedTag=Rotated} [Slanting or inclined in direction, course, or position that is neither parallel nor perpendicular nor right-angular.]
- ***** Rightward {relatedTag=Downward, relatedTag=Leftward, relatedTag=Upward} [Going toward or situated on the right.]
- ***** Rotated [Positioned offset around an axis or center.]
- ***** Upward {relatedTag=Downward, relatedTag=Leftward, relatedTag=Rightward} [Moving, pointing, or leading to a higher place, point, or level.]
- ***** Vertically-oriented {relatedTag=Horizontally-oriented} [Oriented perpendicular to the plane of the horizon.]
- *** Physical-value [The value of some physical property of something.]
- **** Weight [The relative mass or the quantity of matter contained by something.]
- ***** # {takesValue, valueClass=numericClass, unitClass=weightUnits}
- **** Temperature [A measure of hot or cold based on the average kinetic energy of the atoms or molecules in the system.]
- ***** # {takesValue, valueClass=numericClass, unitClass=temperatureUnits}
- *** Quantitative-value [Something capable of being estimated or expressed with numeric values.]
- **** Fraction [A numerical value between 0 and 1.]
- ***** # {takesValue, valueClass=numericClass}
- **** Item-count [The integer count of something which is usually grouped with the entity it is counting. (Item-count/3, A) indicates that 3 of A have occurred up to this point.]
- ***** # {takesValue, valueClass=numericClass}
- **** Item-index [The index of an item in a collection, sequence or other structure. (A (Item-index/3, B)) means that A is item number 3 in B.]
- ***** # {takesValue, valueClass=numericClass}
- **** Item-interval [An integer indicating how many items or entities have passed since the last one of these. An item interval of 0 indicates the current item.]
- ***** # {takesValue, valueClass=numericClass}
- **** Percentage [A fraction or ratio with 100 understood as the denominator.]
- ***** # {takesValue, valueClass=numericClass}
- **** Ratio [A quotient of quantities of the same kind for different components within the same system.]
- ***** # {takesValue, valueClass=numericClass}
- *** Statistical-value {extensionAllowed} [A value based on or employing the principles of statistics.]
- **** Data-maximum [The largest possible quantity or degree.]
- ***** # {takesValue, valueClass=numericClass}
- **** Data-mean [The sum of a set of values divided by the number of values in the set.]
- ***** # {takesValue, valueClass=numericClass}
- **** Data-median [The value which has an equal number of values greater and less than it.]
- ***** # {takesValue, valueClass=numericClass}
- **** Data-minimum [The smallest possible quantity.]
- ***** # {takesValue, valueClass=numericClass}
- **** Probability [A measure of the expectation of the occurrence of a particular event.]
- ***** # {takesValue, valueClass=numericClass}
- **** Standard-deviation [A measure of the range of values in a set of numbers. Standard deviation is a statistic used as a measure of the dispersion or variation in a distribution, equal to the square root of the arithmetic mean of the squares of the deviations from the arithmetic mean.]
- ***** # {takesValue, valueClass=numericClass}
- **** Statistical-accuracy [A measure of closeness to true value expressed as a number between 0 and 1.]
- ***** # {takesValue, valueClass=numericClass}
- **** Statistical-precision [A quantitative representation of the degree of accuracy necessary for or associated with a particular action.]
- ***** # {takesValue, valueClass=numericClass}
- **** Statistical-recall [Sensitivity is a measurement datum qualifying a binary classification test and is computed by substracting the false negative rate to the integral numeral 1.]
- ***** # {takesValue, valueClass=numericClass}
- **** Statistical-uncertainty [A measure of the inherent variability of repeated observation measurements of a quantity including quantities evaluated by statistical methods and by other means.]
- ***** # {takesValue, valueClass=numericClass}
- *** Spatiotemporal-value [A property relating to space and/or time.]
- **** Rate-of-change [The amount of change accumulated per unit time.]
- ***** Acceleration [Magnitude of the rate of change in either speed or direction. The direction of change should be given separately.]
- ****** # {takesValue, valueClass=numericClass, unitClass=accelerationUnits}
- ***** Frequency [Frequency is the number of occurrences of a repeating event per unit time.]
- ****** # {takesValue, valueClass=numericClass, unitClass=frequencyUnits}
- ***** Jerk-rate [Magnitude of the rate at which the acceleration of an object changes with respect to time. The direction of change should be given separately.]
- ****** # {takesValue, valueClass=numericClass, unitClass=jerkUnits}
- ***** Sampling-rate [The number of digital samples taken or recorded per unit of time.]
- ****** # {takesValue, unitClass=frequencyUnits}
- ***** Refresh-rate [The frequency with which the image on a computer monitor or similar electronic display screen is refreshed, usually expressed in hertz.]
- ****** # {takesValue, valueClass=numericClass}
- ***** Speed [A scalar measure of the rate of movement of the object expressed either as the distance travelled divided by the time taken (average speed) or the rate of change of position with respect to time at a particular point (instantaneous speed). The direction of change should be given separately.]
- ****** # {takesValue, valueClass=numericClass, unitClass=speedUnits}
- ***** Temporal-rate [The number of items per unit of time.]
- ****** # {takesValue, valueClass=numericClass, unitClass=frequencyUnits}
- **** Spatial-value [Value of an item involving space.]
- ***** Angle [The amount of inclination of one line to another or the plane of one object to another.]
- ****** # {takesValue, unitClass=angleUnits, valueClass=numericClass}
- ***** Distance [A measure of the space separating two objects or points.]
- ****** # {takesValue, valueClass=numericClass, unitClass=physicalLengthUnits}
- ***** Position [A reference to the alignment of an object, a particular situation or view of a situation, or the location of an object. Coordinates with respect a specified frame of reference or the default Screen-frame if no frame is given.]
- ****** X-position [The position along the x-axis of the frame of reference.]
- ******* # {takesValue, valueClass=numericClass, unitClass=physicalLengthUnits}
- ****** Y-position [The position along the y-axis of the frame of reference.]
- ******* # {takesValue, valueClass=numericClass, unitClass=physicalLengthUnits}
- ****** Z-position [The position along the z-axis of the frame of reference.]
- ******* # {takesValue, valueClass=numericClass, unitClass=physicalLengthUnits}
- ***** Size [The physical magnitude of something.]
- ****** Area [The extent of a 2-dimensional surface enclosed within a boundary.]
- ******* # {takesValue, valueClass=numericClass, unitClass=areaUnits}
- ****** Depth [The distance from the surface of something especially from the perspective of looking from the front.]
- ******* # {takesValue, valueClass=numericClass, unitClass=physicalLengthUnits}
- ****** Length [The linear extent in space from one end of something to the other end, or the extent of something from beginning to end.]
- ******* # {takesValue, valueClass=numericClass, unitClass=physicalLengthUnits}
- ****** Width [The extent or measurement of something from side to side.]
- ******* # {takesValue, valueClass=numericClass, unitClass=physicalLengthUnits}
- ****** Height [The vertical measurement or distance from the base to the top of an object.]
- ******* # {takesValue, valueClass=numericClass, unitClass=physicalLengthUnits}
- ****** Volume [The amount of three dimensional space occupied by an object or the capacity of a space or container.]
- ******* # {takesValue, valueClass=numericClass, unitClass=volumeUnits}
- **** Temporal-value [A characteristic of or relating to time or limited by time.]
- ***** Delay {topLevelTagGroup, reserved, relatedTag=Duration} [The time at which an event start time is delayed from the current onset time. This tag defines the start time of an event of temporal extent and may be used with the Duration tag.]
- ****** # {takesValue, valueClass=numericClass, unitClass=timeUnits}
- ***** Duration {topLevelTagGroup, reserved, relatedTag=Delay} [The period of time during which an event occurs. This tag defines the end time of an event of temporal extent and may be used with the Delay tag.]
- ****** # {takesValue, valueClass=numericClass, unitClass=timeUnits}
- ***** Time-interval [The period of time separating two instances, events, or occurrences.]
- ****** # {takesValue, valueClass=numericClass, unitClass=timeUnits}
- ***** Time-value [A value with units of time. Usually grouped with tags identifying what the value represents.]
- ****** # {takesValue, valueClass=numericClass, unitClass=timeUnits}
- ** Data-variability-attribute [An attribute describing how something changes or varies.]
- *** Abrupt [Marked by sudden change.]
- *** Constant [Continually recurring or continuing without interruption. Not changing in time or space.]
- *** Continuous {relatedTag=Discrete, relatedTag=Discontinuous} [Uninterrupted in time, sequence, substance, or extent.]
- *** Decreasing {relatedTag=Increasing} [Becoming smaller or fewer in size, amount, intensity, or degree.]
- *** Deterministic {relatedTag=Random, relatedTag=Stochastic} [No randomness is involved in the development of the future states of the element.]
- *** Discontinuous {relatedTag=Continuous} [Having a gap in time, sequence, substance, or extent.]
- *** Discrete {relatedTag=Continuous, relatedTag=Discontinuous} [Constituting a separate entities or parts.]
- *** Flickering [Moving irregularly or unsteadily or burning or shining fitfully or with a fluctuating light.]
- *** Estimated-value [Something that has been calculated or measured approximately.]
- *** Exact-value [A value that is viewed to the true value according to some standard.]
- *** Fractal [Having extremely irregular curves or shapes for which any suitably chosen part is similar in shape to a given larger or smaller part when magnified or reduced to the same size.]
- *** Increasing {relatedTag=Decreasing} [Becoming greater in size, amount, or degree.]
- *** Random {relatedTag=Deterministic, relatedTag=Stochastic} [Governed by or depending on chance. Lacking any definite plan or order or purpose.]
- *** Repetitive [A recurring action that is often non-purposeful.]
- *** Stochastic {relatedTag=Deterministic, relatedTag=Random} [Uses a random probability distribution or pattern that may be analysed statistically but may not be predicted precisely to determine future states.]
- *** Varying [Differing in size, amount, degree, or nature.]
- * Environmental-property [Relating to or arising from the surroundings of an agent.]
- ** Indoors [Located inside a building or enclosure.]
- ** Outdoors [Any area outside a building or shelter.]
- ** Real-world [Located in a place that exists in real space and time under realistic conditions.]
- ** Virtual-world [Using technology that creates immersive, computer-generated experiences that a person can interact with and navigate through. The digital content is generally delivered to the user through some type of headset and responds to changes in head position or through interaction with other types of sensors. Existing in a virtual setting such as a simulation or game environment.]
- ** Augmented-reality [Using technology that enhances real-world experiences with computer-derived digital overlays to change some aspects of perception of the natural environment. The digital content is shown to the user through a smart device or glasses and responds to changes in the environment.]
- ** Motion-platform [A mechanism that creates the feelings of being in a real motion environment.]
- ** Urban [Relating to, located in, or characteristic of a city or densely populated area.]
- ** Rural [Of or pertaining to the country as opposed to the city.]
- ** Terrain [Characterization of the physical features of a tract of land.]
- *** Composite-terrain [Tracts of land characterized by a mixure of physical features.]
- *** Dirt-terrain [Tracts of land characterized by a soil surface and lack of vegetation.]
- *** Grassy-terrain [Tracts of land covered by grass.]
- *** Gravel-terrain [Tracts of land covered by a surface consisting a loose aggregation of small water-worn or pounded stones.]
- *** Leaf-covered-terrain [Tracts of land covered by leaves and composited organic material.]
- *** Muddy-terrain [Tracts of land covered by a liquid or semi-liquid mixture of water and some combination of soil, silt, and clay.]
- *** Paved-terrain [Tracts of land covered with concrete, asphalt, stones, or bricks.]
- *** Rocky-terrain [Tracts of land consisting or full of rock or rocks.]
- *** Sloped-terrain [Tracts of land arranged in a sloping or inclined position.]
- *** Uneven-terrain [Tracts of land that are not level, smooth, or regular.]
- * Informational-property {extensionAllowed} [Something that pertains to a task.]
- ** Description {requireChild} [An explanation of what the tag group it is in means. If the description is at the top-level of an event string, the description applies to the event.]
- *** # {takesValue, valueClass=textClass}
- ** ID {requireChild} [An alphanumeric name that identifies either a unique object or a unique class of objects. Here the object or class may be an idea, physical countable object (or class), or physical uncountable substance (or class).]
- *** # {takesValue, valueClass=textClass}
- ** Label {requireChild} [A string of 20 or fewer characters identifying something. Labels usually refer to general classes of things while IDs refer to specific instances. A term that is associated with some entity. A brief description given for purposes of identification. An identifying or descriptive marker that is attached to an object.]
- *** # {takesValue, valueClass=nameClass}
- ** Metadata [Data about data. Information that describes another set of data.]
- *** CogAtlas [The Cognitive Atlas ID number of something.]
- **** # {takesValue}
- *** CogPo [The CogPO ID number of something.]
- **** # {takesValue}
- *** Creation-date {requireChild} [The date on which data creation of this element began.]
- **** # {takesValue, valueClass=dateTimeClass}
- *** Experimental-note [A brief written record about the experiment.]
- **** # {takesValue, valueClass=textClass}
- *** Library-name [Official name of a HED library.]
- **** # {takesValue, valueClass=nameClass}
- *** OBO-identifier [The identifier of a term in some Open Biology Ontology (OBO) ontology.]
- **** # {takesValue, valueClass=nameClass}
- *** Pathname [The specification of a node (file or directory) in a hierarchical file system, usually specified by listing the nodes top-down.]
- **** # {takesValue}
- *** Subject-identifier [A sequence of characters used to identify, name, or characterize a trial or study subject.]
- **** # {takesValue}
- *** Version-identifier [An alphanumeric character string that identifies a form or variant of a type or original.]
- **** # {takesValue} [Usually is a semantic version.]
- ** Parameter [Something user-defined for this experiment.]
- *** Parameter-label [The name of the parameter.]
- **** # {takesValue, valueClass=nameClass}
- *** Parameter-value [The value of the parameter.]
- **** # {takesValue, valueClass=textClass}
- * Organizational-property [Relating to an organization or the action of organizing something.]
- ** Collection [A tag designating a grouping of items such as in a set or list.]
- *** # {takesValue, valueClass=nameClass} [Name of the collection.]
- ** Condition-variable [An aspect of the experiment or task that is to be varied during the experiment. Task-conditions are sometimes called independent variables or contrasts.]
- *** # {takesValue, valueClass=nameClass} [Name of the condition variable.]
- ** Control-variable [An aspect of the experiment that is fixed throughout the study and usually is explicitly controlled.]
- *** # {takesValue, valueClass=nameClass} [Name of the control variable.]
- ** Def {requireChild, reserved} [A HED-specific utility tag used with a defined name to represent the tags associated with that definition.]
- *** # {takesValue, valueClass=nameClass} [Name of the definition.]
- ** Def-expand {requireChild, reserved, tagGroup} [A HED specific utility tag that is grouped with an expanded definition. The child value of the Def-expand is the name of the expanded definition.]
- *** # {takesValue, valueClass=nameClass}
- ** Definition {requireChild, reserved, topLevelTagGroup} [A HED-specific utility tag whose child value is the name of the concept and the tag group associated with the tag is an English language explanation of a concept.]
- *** # {takesValue, valueClass=nameClass} [Name of the definition.]
- ** Event-context {reserved, topLevelTagGroup, unique} [A special HED tag inserted as part of a top-level tag group to contain information about the interrelated conditions under which the event occurs. The event context includes information about other events that are ongoing when this event happens.]
- ** Event-stream [A special HED tag indicating that this event is a member of an ordered succession of events.]
- *** # {takesValue, valueClass=nameClass} [Name of the event stream.]
- ** Experimental-intertrial [A tag used to indicate a part of the experiment between trials usually where nothing is happening.]
- *** # {takesValue, valueClass=nameClass} [Optional label for the intertrial block.]
- ** Experimental-trial [Designates a run or execution of an activity, for example, one execution of a script. A tag used to indicate a particular organizational part in the experimental design often containing a stimulus-response pair or stimulus-response-feedback triad.]
- *** # {takesValue, valueClass=nameClass} [Optional label for the trial (often a numerical string).]
- ** Indicator-variable [An aspect of the experiment or task that is measured as task conditions are varied during the experiment. Experiment indicators are sometimes called dependent variables.]
- *** # {takesValue, valueClass=nameClass} [Name of the indicator variable.]
- ** Recording [A tag designating the data recording. Recording tags are usually have temporal scope which is the entire recording.]
- *** # {takesValue, valueClass=nameClass} [Optional label for the recording.]
- ** Task [An assigned piece of work, usually with a time allotment. A tag used to indicate a linkage the structured activities performed as part of the experiment.]
- *** # {takesValue, valueClass=nameClass} [Optional label for the task block.]
- ** Time-block [A tag used to indicate a contiguous time block in the experiment during which something is fixed or noted.]
- *** # {takesValue, valueClass=nameClass} [Optional label for the task block.]
- * Sensory-property [Relating to sensation or the physical senses.]
- ** Sensory-attribute [A sensory characteristic associated with another entity.]
- *** Auditory-attribute [Pertaining to the sense of hearing.]
- **** Loudness [Perceived intensity of a sound.]
- ***** # {takesValue, valueClass=numericClass, valueClass=nameClass}
- **** Pitch [A perceptual property that allows the user to order sounds on a frequency scale.]
- ***** # {takesValue, valueClass=numericClass, unitClass=frequencyUnits}
- **** Sound-envelope [Description of how a sound changes over time.]
- ***** Sound-envelope-attack [The time taken for initial run-up of level from nil to peak usually beginning when the key on a musical instrument is pressed.]
- ****** # {takesValue, valueClass=numericClass, unitClass=timeUnits}
- ***** Sound-envelope-decay [The time taken for the subsequent run down from the attack level to the designated sustain level.]
- ****** # {takesValue, valueClass=numericClass, unitClass=timeUnits}
- ***** Sound-envelope-release [The time taken for the level to decay from the sustain level to zero after the key is released.]
- ****** # {takesValue, valueClass=numericClass, unitClass=timeUnits}
- ***** Sound-envelope-sustain [The time taken for the main sequence of the sound duration, until the key is released.]
- ****** # {takesValue, valueClass=numericClass, unitClass=timeUnits}
- **** Timbre [The perceived sound quality of a singing voice or musical instrument.]
- ***** # {takesValue, valueClass=nameClass}
- **** Sound-volume [The sound pressure level (SPL) usually the ratio to a reference signal estimated as the lower bound of hearing.]
- ***** # {takesValue, valueClass=numericClass, unitClass=intensityUnits}
- *** Gustatory-attribute [Pertaining to the sense of taste.]
- **** Bitter [Having a sharp, pungent taste.]
- **** Salty [Tasting of or like salt.]
- **** Savory [Belonging to a taste that is salty or spicy rather than sweet.]
- **** Sour [Having a sharp, acidic taste.]
- **** Sweet [Having or resembling the taste of sugar.]
- *** Olfactory-attribute [Having a smell.]
- *** Somatic-attribute [Pertaining to the feelings in the body or of the nervous system.]
- **** Pain [The sensation of discomfort, distress, or agony, resulting from the stimulation of specialized nerve endings.]
- **** Stress [The negative mental, emotional, and physical reactions that occur when environmental stressors are perceived as exceeding the adaptive capacities of the individual.]
- *** Tactile-attribute [Pertaining to the sense of touch.]
- **** Tactile-pressure [Having a feeling of heaviness.]
- **** Tactile-temperature [Having a feeling of hotness or coldness.]
- **** Tactile-texture [Having a feeling of roughness.]
- **** Tactile-vibration [Having a feeling of mechanical oscillation.]
- *** Vestibular-attribute [Pertaining to the sense of balance or body position.]
- *** Visual-attribute [Pertaining to the sense of sight.]
- **** Color [The appearance of objects (or light sources) described in terms of perception of their hue and lightness (or brightness) and saturation.]
- ***** CSS-color [One of 140 colors supported by all browsers. For more details such as the color RGB or HEX values, check: https://www.w3schools.com/colors/colors_groups.asp.]
- ****** Blue-color [CSS color group.]
- ******* CadetBlue [CSS-color 0x5F9EA0.]
- ******* SteelBlue [CSS-color 0x4682B4.]
- ******* LightSteelBlue [CSS-color 0xB0C4DE.]
- ******* LightBlue [CSS-color 0xADD8E6.]
- ******* PowderBlue [CSS-color 0xB0E0E6.]
- ******* LightSkyBlue [CSS-color 0x87CEFA.]
- ******* SkyBlue [CSS-color 0x87CEEB.]
- ******* CornflowerBlue [CSS-color 0x6495ED.]
- ******* DeepSkyBlue [CSS-color 0x00BFFF.]
- ******* DodgerBlue [CSS-color 0x1E90FF.]
- ******* RoyalBlue [CSS-color 0x4169E1.]
- ******* Blue [CSS-color 0x0000FF.]
- ******* MediumBlue [CSS-color 0x0000CD.]
- ******* DarkBlue [CSS-color 0x00008B.]
- ******* Navy [CSS-color 0x000080.]
- ******* MidnightBlue [CSS-color 0x191970.]
- ****** Brown-color [CSS color group.]
- ******* Cornsilk [CSS-color 0xFFF8DC.]
- ******* BlanchedAlmond [CSS-color 0xFFEBCD.]
- ******* Bisque [CSS-color 0xFFE4C4.]
- ******* NavajoWhite [CSS-color 0xFFDEAD.]
- ******* Wheat [CSS-color 0xF5DEB3.]
- ******* BurlyWood [CSS-color 0xDEB887.]
- ******* Tan [CSS-color 0xD2B48C.]
- ******* RosyBrown [CSS-color 0xBC8F8F.]
- ******* SandyBrown [CSS-color 0xF4A460.]
- ******* GoldenRod [CSS-color 0xDAA520.]
- ******* DarkGoldenRod [CSS-color 0xB8860B.]
- ******* Peru [CSS-color 0xCD853F.]
- ******* Chocolate [CSS-color 0xD2691E.]
- ******* Olive [CSS-color 0x808000.]
- ******* SaddleBrown [CSS-color 0x8B4513.]
- ******* Sienna [CSS-color 0xA0522D.]
- ******* Brown [CSS-color 0xA52A2A.]
- ******* Maroon [CSS-color 0x800000.]
- ****** Cyan-color [CSS color group.]
- ******* Aqua [CSS-color 0x00FFFF.]
- ******* Cyan [CSS-color 0x00FFFF.]
- ******* LightCyan [CSS-color 0xE0FFFF.]
- ******* PaleTurquoise [CSS-color 0xAFEEEE.]
- ******* Aquamarine [CSS-color 0x7FFFD4.]
- ******* Turquoise [CSS-color 0x40E0D0.]
- ******* MediumTurquoise [CSS-color 0x48D1CC.]
- ******* DarkTurquoise [CSS-color 0x00CED1.]
- ****** Green-color [CSS color group.]
- ******* GreenYellow [CSS-color 0xADFF2F.]
- ******* Chartreuse [CSS-color 0x7FFF00.]
- ******* LawnGreen [CSS-color 0x7CFC00.]
- ******* Lime [CSS-color 0x00FF00.]
- ******* LimeGreen [CSS-color 0x32CD32.]
- ******* PaleGreen [CSS-color 0x98FB98.]
- ******* LightGreen [CSS-color 0x90EE90.]
- ******* MediumSpringGreen [CSS-color 0x00FA9A.]
- ******* SpringGreen [CSS-color 0x00FF7F.]
- ******* MediumSeaGreen [CSS-color 0x3CB371.]
- ******* SeaGreen [CSS-color 0x2E8B57.]
- ******* ForestGreen [CSS-color 0x228B22.]
- ******* Green [CSS-color 0x008000.]
- ******* DarkGreen [CSS-color 0x006400.]
- ******* YellowGreen [CSS-color 0x9ACD32.]
- ******* OliveDrab [CSS-color 0x6B8E23.]
- ******* DarkOliveGreen [CSS-color 0x556B2F.]
- ******* MediumAquaMarine [CSS-color 0x66CDAA.]
- ******* DarkSeaGreen [CSS-color 0x8FBC8F.]
- ******* LightSeaGreen [CSS-color 0x20B2AA.]
- ******* DarkCyan [CSS-color 0x008B8B.]
- ******* Teal [CSS-color 0x008080.]
- ****** Gray-color [CSS color group.]
- ******* Gainsboro [CSS-color 0xDCDCDC.]
- ******* LightGray [CSS-color 0xD3D3D3.]
- ******* Silver [CSS-color 0xC0C0C0.]
- ******* DarkGray [CSS-color 0xA9A9A9.]
- ******* DimGray [CSS-color 0x696969.]
- ******* Gray [CSS-color 0x808080.]
- ******* LightSlateGray [CSS-color 0x778899.]
- ******* SlateGray [CSS-color 0x708090.]
- ******* DarkSlateGray [CSS-color 0x2F4F4F.]
- ******* Black [CSS-color 0x000000.]
- ****** Orange-color [CSS color group.]
- ******* Orange [CSS-color 0xFFA500.]
- ******* DarkOrange [CSS-color 0xFF8C00.]
- ******* Coral [CSS-color 0xFF7F50.]
- ******* Tomato [CSS-color 0xFF6347.]
- ******* OrangeRed [CSS-color 0xFF4500.]
- ****** Pink-color [CSS color group.]
- ******* Pink [CSS-color 0xFFC0CB.]
- ******* LightPink [CSS-color 0xFFB6C1.]
- ******* HotPink [CSS-color 0xFF69B4.]
- ******* DeepPink [CSS-color 0xFF1493.]
- ******* PaleVioletRed [CSS-color 0xDB7093.]
- ******* MediumVioletRed [CSS-color 0xC71585.]
- ****** Purple-color [CSS color group.]
- ******* Lavender [CSS-color 0xE6E6FA.]
- ******* Thistle [CSS-color 0xD8BFD8.]
- ******* Plum [CSS-color 0xDDA0DD.]
- ******* Orchid [CSS-color 0xDA70D6.]
- ******* Violet [CSS-color 0xEE82EE.]
- ******* Fuchsia [CSS-color 0xFF00FF.]
- ******* Magenta [CSS-color 0xFF00FF.]
- ******* MediumOrchid [CSS-color 0xBA55D3.]
- ******* DarkOrchid [CSS-color 0x9932CC.]
- ******* DarkViolet [CSS-color 0x9400D3.]
- ******* BlueViolet [CSS-color 0x8A2BE2.]
- ******* DarkMagenta [CSS-color 0x8B008B.]
- ******* Purple [CSS-color 0x800080.]
- ******* MediumPurple [CSS-color 0x9370DB.]
- ******* MediumSlateBlue [CSS-color 0x7B68EE.]
- ******* SlateBlue [CSS-color 0x6A5ACD.]
- ******* DarkSlateBlue [CSS-color 0x483D8B.]
- ******* RebeccaPurple [CSS-color 0x663399.]
- ******* Indigo [CSS-color 0x4B0082.]
- ****** Red-color [CSS color group.]
- ******* LightSalmon [CSS-color 0xFFA07A.]
- ******* Salmon [CSS-color 0xFA8072.]
- ******* DarkSalmon [CSS-color 0xE9967A.]
- ******* LightCoral [CSS-color 0xF08080.]
- ******* IndianRed [CSS-color 0xCD5C5C.]
- ******* Crimson [CSS-color 0xDC143C.]
- ******* Red [CSS-color 0xFF0000.]
- ******* FireBrick [CSS-color 0xB22222.]
- ******* DarkRed [CSS-color 0x8B0000.]
- ****** Yellow-color [CSS color group.]
- ******* Gold [CSS-color 0xFFD700.]
- ******* Yellow [CSS-color 0xFFFF00.]
- ******* LightYellow [CSS-color 0xFFFFE0.]
- ******* LemonChiffon [CSS-color 0xFFFACD.]
- ******* LightGoldenRodYellow [CSS-color 0xFAFAD2.]
- ******* PapayaWhip [CSS-color 0xFFEFD5.]
- ******* Moccasin [CSS-color 0xFFE4B5.]
- ******* PeachPuff [CSS-color 0xFFDAB9.]
- ******* PaleGoldenRod [CSS-color 0xEEE8AA.]
- ******* Khaki [CSS-color 0xF0E68C.]
- ******* DarkKhaki [CSS-color 0xBDB76B.]
- ****** White-color [CSS color group.]
- ******* White [CSS-color 0xFFFFFF.]
- ******* Snow [CSS-color 0xFFFAFA.]
- ******* HoneyDew [CSS-color 0xF0FFF0.]
- ******* MintCream [CSS-color 0xF5FFFA.]
- ******* Azure [CSS-color 0xF0FFFF.]
- ******* AliceBlue [CSS-color 0xF0F8FF.]
- ******* GhostWhite [CSS-color 0xF8F8FF.]
- ******* WhiteSmoke [CSS-color 0xF5F5F5.]
- ******* SeaShell [CSS-color 0xFFF5EE.]
- ******* Beige [CSS-color 0xF5F5DC.]
- ******* OldLace [CSS-color 0xFDF5E6.]
- ******* FloralWhite [CSS-color 0xFFFAF0.]
- ******* Ivory [CSS-color 0xFFFFF0.]
- ******* AntiqueWhite [CSS-color 0xFAEBD7.]
- ******* Linen [CSS-color 0xFAF0E6.]
- ******* LavenderBlush [CSS-color 0xFFF0F5.]
- ******* MistyRose [CSS-color 0xFFE4E1.]
- ***** Color-shade [A slight degree of difference between colors, especially with regard to how light or dark it is or as distinguished from one nearly like it.]
- ****** Dark-shade [A color tone not reflecting much light.]
- ****** Light-shade [A color tone reflecting more light.]
- ***** Grayscale [Using a color map composed of shades of gray, varying from black at the weakest intensity to white at the strongest.]
- ****** # {takesValue, valueClass=numericClass} [White intensity between 0 and 1.]
- ***** HSV-color [A color representation that models how colors appear under light.]
- ****** Hue [Attribute of a visual sensation according to which an area appears to be similar to one of the perceived colors.]
- ******* # {takesValue, valueClass=numericClass} [Angular value between 0 and 360.]
- ****** Saturation [Colorfulness of a stimulus relative to its own brightness.]
- ******* # {takesValue, valueClass=numericClass} [B value of RGB between 0 and 1.]
- ****** HSV-value [An attribute of a visual sensation according to which an area appears to emit more or less light.]
- ******* # {takesValue, valueClass=numericClass}
- ***** RGB-color [A color from the RGB schema.]
- ****** RGB-red [The red component.]
- ******* # {takesValue, valueClass=numericClass} [R value of RGB between 0 and 1.]
- ****** RGB-blue [The blue component.]
- ******* # {takesValue, valueClass=numericClass} [B value of RGB between 0 and 1.]
- ****** RGB-green [The green component.]
- ******* # {takesValue, valueClass=numericClass} [G value of RGB between 0 and 1.]
- **** Luminance [A quality that exists by virtue of the luminous intensity per unit area projected in a given direction.]
- **** Opacity [A measure of impenetrability to light.]
- ** Sensory-presentation [The entity has a sensory manifestation.]
- *** Auditory-presentation [The sense of hearing is used in the presentation to the user.]
- **** Loudspeaker-separation {suggestedTag=Distance} [The distance between two loudspeakers. Grouped with the Distance tag.]
- **** Monophonic [Relating to sound transmission, recording, or reproduction involving a single transmission path.]
- **** Silent [The absence of ambient audible sound or the state of having ceased to produce sounds.]
- **** Stereophonic [Relating to, or constituting sound reproduction involving the use of separated microphones and two transmission channels to achieve the sound separation of a live hearing.]
- *** Gustatory-presentation [The sense of taste used in the presentation to the user.]
- *** Olfactory-presentation [The sense of smell used in the presentation to the user.]
- *** Somatic-presentation [The nervous system is used in the presentation to the user.]
- *** Tactile-presentation [The sense of touch used in the presentation to the user.]
- *** Vestibular-presentation [The sense balance used in the presentation to the user.]
- *** Visual-presentation [The sense of sight used in the presentation to the user.]
- **** 2D-view [A view showing only two dimensions.]
- **** 3D-view [A view showing three dimensions.]
- **** Background-view [Parts of the view that are farthest from the viewer and usually the not part of the visual focus.]
- **** Bistable-view [Something having two stable visual forms that have two distinguishable stable forms as in optical illusions.]
- **** Foreground-view [Parts of the view that are closest to the viewer and usually the most important part of the visual focus.]
- **** Foveal-view [Visual presentation directly on the fovea. A view projected on the small depression in the retina containing only cones and where vision is most acute.]
- **** Map-view [A diagrammatic representation of an area of land or sea showing physical features, cities, roads.]
- ***** Aerial-view [Elevated view of an object from above, with a perspective as though the observer were a bird.]
- ***** Satellite-view [A representation as captured by technology such as a satellite.]
- ***** Street-view [A 360-degrees panoramic view from a position on the ground.]
- **** Peripheral-view [Indirect vision as it occurs outside the point of fixation.]
- * Task-property {extensionAllowed} [Something that pertains to a task.]
- ** Task-attentional-demand [Strategy for allocating attention toward goal-relevant information.]
- *** Bottom-up-attention {relatedTag=Top-down-attention} [Attentional guidance purely by externally driven factors to stimuli that are salient because of their inherent properties relative to the background. Sometimes this is referred to as stimulus driven.]
- *** Covert-attention {relatedTag=Overt-attention} [Paying attention without moving the eyes.]
- *** Divided-attention {relatedTag=Focused-attention} [Integrating parallel multiple stimuli. Behavior involving responding simultaneously to multiple tasks or multiple task demands.]
- *** Focused-attention {relatedTag=Divided-attention} [Responding discretely to specific visual, auditory, or tactile stimuli.]
- *** Orienting-attention [Directing attention to a target stimulus.]
- *** Overt-attention {relatedTag=Covert-attention} [Selectively processing one location over others by moving the eyes to point at that location.]
- *** Selective-attention [Maintaining a behavioral or cognitive set in the face of distracting or competing stimuli. Ability to pay attention to a limited array of all available sensory information.]
- *** Sustained-attention [Maintaining a consistent behavioral response during continuous and repetitive activity.]
- *** Switched-attention [Having to switch attention between two or more modalities of presentation.]
- *** Top-down-attention {relatedTag=Bottom-up-attention} [Voluntary allocation of attention to certain features. Sometimes this is referred to goal-oriented attention.]
- ** Task-effect-evidence [The evidence supporting the conclusion that the event had the specified effect.]
- *** Computational-evidence [A type of evidence in which data are produced, and/or generated, and/or analyzed on a computer.]
- *** External-evidence [A phenomenon that follows and is caused by some previous phenomenon.]
- *** Intended-effect [A phenomenon that is intended to follow and be caused by some previous phenomenon.]
- *** Behavioral-evidence [An indication or conclusion based on the behavior of an agent.]
- ** Task-event-role [The purpose of an event with respect to the task.]
- *** Experimental-stimulus [Part of something designed to elicit a response in the experiment.]
- *** Incidental [A sensory or other type of event that is unrelated to the task or experiment.]
- *** Instructional [Usually associated with a sensory event intended to give instructions to the participant about the task or behavior.]
- *** Mishap [Unplanned disruption such as an equipment or experiment control abnormality or experimenter error.]
- *** Participant-response [Something related to a participant actions in performing the task.]
- *** Task-activity [Something that is part of the overall task or is necessary to the overall experiment but is not directly part of a stimulus-response cycle. Examples would be taking a survey or provided providing a silva sample.]
- *** Warning [Something that should warn the participant that the parameters of the task have been or are about to be exceeded such as a warning message about getting too close to the shoulder of the road in a driving task.]
- ** Task-action-type [How an agent action should be interpreted in terms of the task specification.]
- *** Appropriate-action {relatedTag=Inappropriate-action} [An action suitable or proper in the circumstances.]
- *** Correct-action {relatedTag=Incorrect-action, relatedTag=Indeterminate-action} [An action that was a correct response in the context of the task.]
- *** Correction [An action offering an improvement to replace a mistake or error.]
- *** Done-indication {relatedTag=Ready-indication} [An action that indicates that the participant has completed this step in the task.]
- *** Incorrect-action {relatedTag=Correct-action, relatedTag=Indeterminate-action} [An action considered wrong or incorrect in the context of the task.]
- *** Imagined-action [Form a mental image or concept of something. This is used to identity something that only happened in the imagination of the participant as in imagined movements in motor imagery paradigms.]
- *** Inappropriate-action {relatedTag=Appropriate-action} [An action not in keeping with what is correct or proper for the task.]
- *** Indeterminate-action {relatedTag=Correct-action, relatedTag=Incorrect-action, relatedTag=Miss, relatedTag=Near-miss} [An action that cannot be distinguished between two or more possibibities in the current context. This tag might be applied when an outside evaluator or a classification algorithm cannot determine a definitive result.]
- *** Omitted-action [An expected response was skipped.]
- *** Miss {relatedTag=Near-miss} [An action considered to be a failure in the context of the task. For example, if the agent is supposed to try to hit a target and misses.]
- *** Near-miss {relatedTag=Miss} [An action barely satisfied the requirements of the task. In a driving experiment for example this could pertain to a narrowly avoided collision or other accident.]
- *** Ready-indication {relatedTag=Done-indication} [An action that indicates that the participant is ready to perform the next step in the task.]
- ** Task-relationship [Specifying organizational importance of sub-tasks.]
- *** Background-subtask [A part of the task which should be performed in the background as for example inhibiting blinks due to instruction while performing the primary task.]
- *** Primary-subtask [A part of the task which should be the primary focus of the participant.]
- ** Task-stimulus-role [The role the stimulus plays in the task.]
- *** Cue [A signal for an action, a pattern of stimuli indicating a particular response.]
- *** Distractor [A person or thing that distracts or a plausible but incorrect option in a multiple-choice question. In pyschological studies this is sometimes referred to as a foil.]
- *** Expected {relatedTag=Unexpected, suggestedTag=Target} [Considered likely, probable or anticipated. Something of low information value as in frequent non-targets in an RSVP paradigm.]
- *** Extraneous [Irrelevant or unrelated to the subject being dealt with.]
- *** Feedback [An evaluative response to an inquiry, process, event, or activity.]
- *** Go-signal {relatedTag=Stop-signal} [An indicator to proceed with a planned action.]
- *** Meaningful [Conveying significant or relevant information.]
- *** Newly-learned [Representing recently acquired information or understanding.]
- *** Non-informative [Something that is not useful in forming an opinion or judging an outcome.]
- *** Non-target {relatedTag=Target} [Something other than that done or looked for. Also tag Expected if the Non-target is frequent.]
- *** Not-meaningful [Not having a serious, important, or useful quality or purpose.]
- *** Novel [Having no previous example or precedent or parallel.]
- *** Oddball {relatedTag=Unexpected, suggestedTag=Target} [Something unusual, or infrequent.]
- *** Planned {relatedTag=Unplanned} [Something that was decided on or arranged in advance.]
- *** Penalty [A disadvantage, loss, or hardship due to some action.]
- *** Priming [An implicit memory effect in which exposure to a stimulus influences response to a later stimulus.]
- *** Query [A sentence of inquiry that asks for a reply.]
- *** Reward [A positive reinforcement for a desired action, behavior or response.]
- *** Stop-signal {relatedTag=Go-signal} [An indicator that the agent should stop the current activity.]
- *** Target [Something fixed as a goal, destination, or point of examination.]
- *** Threat [An indicator that signifies hostility and predicts an increased probability of attack.]
- *** Timed [Something planned or scheduled to be done at a particular time or lasting for a specified amount of time.]
- *** Unexpected {relatedTag=Expected} [Something that is not anticipated.]
- *** Unplanned {relatedTag=Planned} [Something that has not been planned as part of the task.]
-
-'''Relation''' {extensionAllowed} [Concerns the way in which two or more people or things are connected.]
- * Comparative-relation [Something considered in comparison to something else. The first entity is the focus.]
- ** Approximately-equal-to [(A, (Approximately-equal-to, B)) indicates that A and B have almost the same value. Here A and B could refer to sizes, orders, positions or other quantities.]
- ** Less-than [(A, (Less-than, B)) indicates that A is smaller than B. Here A and B could refer to sizes, orders, positions or other quantities.]
- ** Less-than-or-equal-to [(A, (Less-than-or-equal-to, B)) indicates that the relative size or order of A is smaller than or equal to B.]
- ** Greater-than [(A, (Greater-than, B)) indicates that the relative size or order of A is bigger than that of B.]
- ** Greater-than-or-equal-to [(A, (Greater-than-or-equal-to, B)) indicates that the relative size or order of A is bigger than or the same as that of B.]
- ** Equal-to [(A, (Equal-to, B)) indicates that the size or order of A is the same as that of B.]
- ** Not-equal-to [(A, (Not-equal-to, B)) indicates that the size or order of A is not the same as that of B.]
- * Connective-relation [Indicates two entities are related in some way. The first entity is the focus.]
- ** Belongs-to [(A, (Belongs-to, B)) indicates that A is a member of B.]
- ** Connected-to [(A, (Connected-to, B)) indicates that A is related to B in some respect, usually through a direct link.]
- ** Contained-in [(A, (Contained-in, B)) indicates that A is completely inside of B.]
- ** Described-by [(A, (Described-by, B)) indicates that B provides information about A.]
- ** From-to [(A, (From-to, B)) indicates a directional relation from A to B. A is considered the source.]
- ** Group-of [(A, (Group-of, B)) indicates A is a group of items of type B.]
- ** Implied-by [(A, (Implied-by, B)) indicates B is suggested by A.]
- ** Includes [(A, (Includes, B)) indicates that A has B as a member or part.]
- ** Interacts-with [(A, (Interacts-with, B)) indicates A and B interact, possibly reciprocally.]
- ** Member-of [(A, (Member-of, B)) indicates A is a member of group B.]
- ** Part-of [(A, (Part-of, B)) indicates A is a part of the whole B.]
- ** Performed-by [(A, (Performed-by, B)) indicates that the action or procedure A was carried out by agent B.]
- ** Performed-using [(A, (Performed-using, B)) indicates that the action or procedure A was accomplished using B.]
- ** Related-to [(A, (Related-to, B)) indicates A has some relationship to B.]
- ** Unrelated-to [(A, (Unrelated-to, B)) indicates that A is not related to B. For example, A is not related to Task.]
- * Directional-relation [A relationship indicating direction of change of one entity relative to another. The first entity is the focus.]
- ** Away-from [(A, (Away-from, B)) indicates that A is going or has moved away from B. The meaning depends on A and B.]
- ** Towards [(A, (Towards, B)) indicates that A is going to or has moved to B. The meaning depends on A and B.]
- * Logical-relation [Indicating a logical relationship between entities. The first entity is usually the focus.]
- ** And [(A, (And, B)) means A and B are both in effect.]
- ** Or [(A, (Or, B)) means at least one of A and B are in effect.]
- * Spatial-relation [Indicating a relationship about position between entities.]
- ** Above [(A, (Above, B)) means A is in a place or position that is higher than B.]
- ** Across-from [(A, (Across-from, B)) means A is on the opposite side of something from B.]
- ** Adjacent-to [(A, (Adjacent-to, B)) indicates that A is next to B in time or space.]
- ** Ahead-of [(A, (Ahead-of, B)) indicates that A is further forward in time or space in B.]
- ** Around [(A, (Around, B)) means A is in or near the present place or situation of B.]
- ** Behind [(A, (Behind, B)) means A is at or to the far side of B, typically so as to be hidden by it.]
- ** Below [(A, (Below, B)) means A is in a place or position that is lower than the position of B.]
- ** Between [(A, (Between, (B, C))) means A is in the space or interval separating B and C.]
- ** Bilateral-to [(A, (Bilateral, B)) means A is on both sides of B or affects both sides of B.]
- ** Bottom-edge-of {relatedTag=Left-edge-of, relatedTag=Right-edge-of, relatedTag=Top-edge-of} [(A, (Bottom-edge-of, B)) means A is on the bottom most part or or near the boundary of B.]
- ** Boundary-of [(A, (Boundary-of, B)) means A is on or part of the edge or boundary of B.]
- ** Center-of [(A, (Center-of, B)) means A is at a point or or in an area that is approximately central within B.]
- ** Close-to [(A, (Close-to, B)) means A is at a small distance from or is located near in space to B.]
- ** Far-from [(A, (Far-from, B)) means A is at a large distance from or is not located near in space to B.]
- ** In-front-of [(A, (In-front-of, B)) means A is in a position just ahead or at the front part of B, potentially partially blocking B from view.]
- ** Left-edge-of {relatedTag=Bottom-edge-of, relatedTag=Right-edge-of, relatedTag=Top-edge-of} [(A, (Left-edge-of, B)) means A is located on the left side of B on or near the boundary of B.]
- ** Left-side-of {relatedTag=Right-side-of} [(A, (Left-side-of, B)) means A is located on the left side of B usually as part of B.]
- ** Lower-center-of {relatedTag=Center-of, relatedTag=Lower-left-of, relatedTag=Lower-right-of, relatedTag=Upper-center-of, relatedTag=Upper-right-of} [(A, (Lower-center-of, B)) means A is situated on the lower center part of B (due south). This relation is often used to specify qualitative information about screen position.]
- ** Lower-left-of {relatedTag=Center-of, relatedTag=Lower-center-of, relatedTag=Lower-right-of, relatedTag=Upper-center-of, relatedTag=Upper-left-of, relatedTag=Upper-right-of} [(A, (Lower-left-of, B)) means A is situated on the lower left part of B. This relation is often used to specify qualitative information about screen position.]
- ** Lower-right-of {relatedTag=Center-of, relatedTag=Lower-center-of, relatedTag=Lower-left-of, relatedTag=Upper-left-of, relatedTag=Upper-center-of, relatedTag=Upper-left-of, relatedTag=Lower-right-of} [(A, (Lower-right-of, B)) means A is situated on the lower right part of B. This relation is often used to specify qualitative information about screen position.]
- ** Outside-of [(A, (Outside-of, B)) means A is located in the space around but not including B.]
- ** Over [(A, (Over, B)) means A above is above B so as to cover or protect or A extends over the a general area as from a from a vantage point.]
- ** Right-edge-of {relatedTag=Bottom-edge-of, relatedTag=Left-edge-of, relatedTag=Top-edge-of} [(A, (Right-edge-of, B)) means A is located on the right side of B on or near the boundary of B.]
- ** Right-side-of {relatedTag=Left-side-of} [(A, (Right-side-of, B)) means A is located on the right side of B usually as part of B.]
- ** To-left-of [(A, (To-left-of, B)) means A is located on or directed toward the side to the west of B when B is facing north. This term is used when A is not part of B.]
- ** To-right-of [(A, (To-right-of, B)) means A is located on or directed toward the side to the east of B when B is facing north. This term is used when A is not part of B.]
- ** Top-edge-of {relatedTag=Left-edge-of, relatedTag=Right-edge-of, relatedTag=Bottom-edge-of} [(A, (Top-edge-of, B)) means A is on the uppermost part or or near the boundary of B.]
- ** Top-of [(A, (Top-of, B)) means A is on the uppermost part, side, or surface of B.]
- ** Upper-center-of {relatedTag=Center-of, relatedTag=Lower-center-of, relatedTag=Lower-left-of, relatedTag=Lower-right-of, relatedTag=Upper-center-of, relatedTag=Upper-right-of} [(A, (Upper-center-of, B)) means A is situated on the upper center part of B (due north). This relation is often used to specify qualitative information about screen position.]
- ** Upper-left-of {relatedTag=Center-of, relatedTag=Lower-center-of, relatedTag=Lower-left-of, relatedTag=Lower-right-of, relatedTag=Upper-center-of, relatedTag=Upper-right-of} [(A, (Upper-left-of, B)) means A is situated on the upper left part of B. This relation is often used to specify qualitative information about screen position.]
- ** Upper-right-of {relatedTag=Center-of, relatedTag=Lower-center-of, relatedTag=Lower-left-of, relatedTag=Upper-left-of, relatedTag=Upper-center-of, relatedTag=Lower-right-of} [(A, (Upper-right-of, B)) means A is situated on the upper right part of B. This relation is often used to specify qualitative information about screen position.]
- ** Underneath [(A, (Underneath, B)) means A is situated directly below and may be concealed by B.]
- ** Within [(A, (Within, B)) means A is on the inside of or contained in B.]
- * Temporal-relation [A relationship that includes a temporal or time-based component.]
- ** After [(A, (After B)) means A happens at a time subsequent to a reference time related to B.]
- ** Asynchronous-with [(A, (Asynchronous-with, B)) means A happens at times not occurring at the same time or having the same period or phase as B.]
- ** Before [(A, (Before B)) means A happens at a time earlier in time or order than B.]
- ** During [(A, (During, B)) means A happens at some point in a given period of time in which B is ongoing.]
- ** Synchronous-with [(A, (Synchronous-with, B)) means A happens at occurs at the same time or rate as B.]
- ** Waiting-for [(A, (Waiting-for, B)) means A pauses for something to happen in B.]
-
-'''Modulator''' {requireChild, inLibrary=score} [External stimuli / interventions or changes in the alertness level (sleep) that modify: the background activity, or how often a graphoelement is occurring, or change other features of the graphoelement (like intra-burst frequency). For each observed finding, there is an option of specifying how they are influenced by the modulators and procedures that were done during the recording.]
- * Sleep-modulator {inLibrary=score}
- ** Sleep-deprivation {inLibrary=score}
- *** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- ** Sleep-following-sleep-deprivation {inLibrary=score}
- *** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- ** Natural-sleep {inLibrary=score}
- *** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- ** Induced-sleep {inLibrary=score}
- *** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- ** Drowsiness {inLibrary=score}
- *** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- ** Awakening {inLibrary=score}
- *** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- * Medication-modulator {inLibrary=score}
- ** Medication-administered-during-recording {inLibrary=score}
- *** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- ** Medication-withdrawal-or-reduction-during-recording {inLibrary=score}
- *** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- * Eye-modulator {inLibrary=score}
- ** Manual-eye-closure {inLibrary=score}
- *** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- ** Manual-eye-opening {inLibrary=score}
- *** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- * Stimulation-modulator {inLibrary=score}
- ** Intermittent-photic-stimulation {requireChild, inLibrary=score}
- *** # {takesValue, valueClass=numericClass, unitClass=frequencyUnits, inLibrary=score}
- ** Auditory-stimulation {inLibrary=score}
- *** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- ** Nociceptive-stimulation {inLibrary=score}
- *** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- * Hyperventilation {inLibrary=score}
- ** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- * Physical-effort {inLibrary=score}
- ** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- * Cognitive-task {inLibrary=score}
- ** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- * Other-modulator-or-procedure {requireChild, inLibrary=score}
- ** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
-
-'''Background-activity''' {requireChild, inLibrary=score} [An EEG activity representing the setting in which a given normal or abnormal pattern appears and from which such pattern is distinguished.]
- * Posterior-dominant-rhythm {suggestedTag=Finding-significance-to-recording, suggestedTag=Finding-frequency, suggestedTag=Posterior-dominant-rhythm-amplitude-range, suggestedTag=Finding-amplitude-asymmetry, suggestedTag=Posterior-dominant-rhythm-frequency-asymmetry, suggestedTag=Posterior-dominant-rhythm-eye-opening-reactivity, suggestedTag=Posterior-dominant-rhythm-organization, suggestedTag=Posterior-dominant-rhythm-caveat, suggestedTag=Absence-of-posterior-dominant-rhythm, inLibrary=score} [Rhythmic activity occurring during wakefulness over the posterior regions of the head, generally with maximum amplitudes over the occipital areas. Amplitude varies. Best seen with eyes closed and during physical relaxation and relative mental inactivity. Blocked or attenuated by attention, especially visual, and mental effort. In adults this is the alpha rhythm, and the frequency is 8 to 13 Hz. However the frequency can be higher or lower than this range (often a supra or sub harmonic of alpha frequency) and is called alpha variant rhythm (fast and slow alpha variant rhythm). In children, the normal range of the frequency of the posterior dominant rhythm is age-dependant.]
- * Mu-rhythm {suggestedTag=Finding-frequency, suggestedTag=Finding-significance-to-recording, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, inLibrary=score} [EEG rhythm at 7-11 Hz composed of arch-shaped waves occurring over the central or centro-parietal regions of the scalp during wakefulness. Amplitudes varies but is mostly below 50 microV. Blocked or attenuated most clearly by contralateral movement, thought of movement, readiness to move or tactile stimulation.]
- * Other-organized-rhythm {requireChild, suggestedTag=Delta-activity-morphology, suggestedTag=Theta-activity-morphology, suggestedTag=Alpha-activity-morphology, suggestedTag=Beta-activity-morphology, suggestedTag=Gamma-activity-morphology, suggestedTag=Finding-significance-to-recording, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, inLibrary=score} [EEG activity that consisting of waves of approximately constant period, which is considered as part of the background (ongoing) activity, but does not fulfill the criteria of the posterior dominant rhythm.]
- ** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- * Background-activity-special-feature {requireChild, inLibrary=score} [Special Features. Special features contains scoring options for the background activity of critically ill patients.]
- ** Continuous-background-activity {suggestedTag=Delta-activity-morphology, suggestedTag=Theta-activity-morphology, suggestedTag=Alpha-activity-morphology, suggestedTag=Beta-activity-morphology, suggestedTag=Gamma-activity-morphology, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-extent, inLibrary=score}
- ** Nearly-continuous-background-activity {suggestedTag=Delta-activity-morphology, suggestedTag=Theta-activity-morphology, suggestedTag=Alpha-activity-morphology, suggestedTag=Beta-activity-morphology, suggestedTag=Gamma-activity-morphology, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-extent, inLibrary=score}
- ** Discontinuous-background-activity {suggestedTag=Delta-activity-morphology, suggestedTag=Theta-activity-morphology, suggestedTag=Alpha-activity-morphology, suggestedTag=Beta-activity-morphology, suggestedTag=Gamma-activity-morphology, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-extent, inLibrary=score}
- ** Background-burst-suppression {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-extent, inLibrary=score} [EEG pattern consisting of bursts (activity appearing and disappearing abruptly) interrupted by periods of low amplitude (below 20 microV) and which occurs simultaneously over all head regions.]
- ** Background-burst-attenuation {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-extent, inLibrary=score}
- ** Background-activity-suppression {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-extent, suggestedTag=Appearance-mode, inLibrary=score} [Periods showing activity under 10 microV (referential montage) and interrupting the background (ongoing) activity.]
- ** Electrocerebral-inactivity {inLibrary=score} [Absence of any ongoing cortical electric activities; in all leads EEG is isoelectric or only contains artifacts. Sensitivity has to be increased up to 2 microV/mm; recording time: at least 30 minutes.]
-
-'''Sleep-and-drowsiness''' {requireChild, inLibrary=score} [The features of the ongoing activity during sleep are scored here. If abnormal graphoelements appear, disappear or change their morphology during sleep, that is not scored here but at the entry corresponding to that graphooelement (as a modulator).]
- * Sleep-architecture {suggestedTag=Property-not-possible-to-determine, inLibrary=score} [For longer recordings. Only to be scored if whole-night sleep is part of the recording. It is a global descriptor of the structure and pattern of sleep: estimation of the amount of time spent in REM and NREM sleep, sleep duration, NREM-REM cycle.]
- ** Normal-sleep-architecture {inLibrary=score}
- ** Abnormal-sleep-architecture {inLibrary=score}
- * Sleep-stage-reached {requireChild, suggestedTag=Property-not-possible-to-determine, suggestedTag=Finding-significance-to-recording, inLibrary=score} [For normal sleep patterns the sleep stages reached during the recording can be specified]
- ** Sleep-stage-N1 {inLibrary=score} [Sleep stage 1.]
- *** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- ** Sleep-stage-N2 {inLibrary=score} [Sleep stage 2.]
- *** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- ** Sleep-stage-N3 {inLibrary=score} [Sleep stage 3.]
- *** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- ** Sleep-stage-REM {inLibrary=score} [Rapid eye movement.]
- *** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- * Sleep-spindles {suggestedTag=Finding-significance-to-recording, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-amplitude-asymmetry, inLibrary=score} [Burst at 11-15 Hz but mostly at 12-14 Hz generally diffuse but of higher voltage over the central regions of the head, occurring during sleep. Amplitude varies but is mostly below 50 microV in the adult.]
- * Arousal-pattern {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, inLibrary=score} [Arousal pattern in children. Prolonged, marked high voltage 4-6/s activity in all leads with some intermixed slower frequencies, in children.]
- * Frontal-arousal-rhythm {suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, inLibrary=score} [Prolonged (up to 20s) rhythmical sharp or spiky activity over the frontal areas (maximum over the frontal midline) seen at arousal from sleep in children with minimal cerebral dysfunction.]
- * Vertex-wave {suggestedTag=Finding-significance-to-recording, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-amplitude-asymmetry, inLibrary=score} [Sharp potential, maximal at the vertex, negative relative to other areas, apparently occurring spontaneously during sleep or in response to a sensory stimulus during sleep or wakefulness. May be single or repetitive. Amplitude varies but rarely exceeds 250 microV. Abbreviation: V wave. Synonym: vertex sharp wave.]
- * K-complex {suggestedTag=Finding-significance-to-recording, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-amplitude-asymmetry, inLibrary=score} [A burst of somewhat variable appearance, consisting most commonly of a high voltage negative slow wave followed by a smaller positive slow wave frequently associated with a sleep spindle. Duration greater than 0.5 s. Amplitude is generally maximal in the frontal vertex. K complexes occur during nonREM sleep, apparently spontaneously, or in response to sudden sensory / auditory stimuli, and are not specific for any individual sensory modality.]
- * Saw-tooth-waves {suggestedTag=Finding-significance-to-recording, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-amplitude-asymmetry, inLibrary=score} [Vertex negative 2-5 Hz waves occuring in series during REM sleep]
- * POSTS {suggestedTag=Finding-significance-to-recording, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-amplitude-asymmetry, inLibrary=score} [Positive occipital sharp transients of sleep. Sharp transient maximal over the occipital regions, positive relative to other areas, apparently occurring spontaneously during sleep. May be single or repetitive. Amplitude varies but is generally bellow 50 microV.]
- * Hypnagogic-hypersynchrony {suggestedTag=Finding-significance-to-recording, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-amplitude-asymmetry, inLibrary=score} [Bursts of bilateral, synchronous delta or theta activity of large amplitude, occasionally with superimposed faster components, occurring during falling asleep or during awakening, in children.]
- * Non-reactive-sleep {inLibrary=score} [EEG activity consisting of normal sleep graphoelements, but which cannot be interrupted by external stimuli/ the patient cannot be waken.]
-
-'''Interictal-finding''' {requireChild, inLibrary=score} [EEG pattern / transient that is distinguished form the background activity, considered abnormal, but is not recorded during ictal period (seizure) or postictal period; the presence of an interictal finding does not necessarily imply that the patient has epilepsy.]
- * Epileptiform-interictal-activity {suggestedTag=Spike-morphology, suggestedTag=Spike-and-slow-wave-morphology, suggestedTag=Runs-of-rapid-spikes-morphology, suggestedTag=Polyspikes-morphology, suggestedTag=Polyspike-and-slow-wave-morphology, suggestedTag=Sharp-wave-morphology, suggestedTag=Sharp-and-slow-wave-morphology, suggestedTag=Slow-sharp-wave-morphology, suggestedTag=High-frequency-oscillation-morphology, suggestedTag=Hypsarrhythmia-classic-morphology, suggestedTag=Hypsarrhythmia-modified-morphology, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-propagation, suggestedTag=Multifocal-finding, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, suggestedTag=Finding-incidence, inLibrary=score}
- * Abnormal-interictal-rhythmic-activity {suggestedTag=Delta-activity-morphology, suggestedTag=Theta-activity-morphology, suggestedTag=Alpha-activity-morphology, suggestedTag=Beta-activity-morphology, suggestedTag=Gamma-activity-morphology, suggestedTag=Polymorphic-delta-activity-morphology, suggestedTag=Frontal-intermittent-rhythmic-delta-activity-morphology, suggestedTag=Occipital-intermittent-rhythmic-delta-activity-morphology, suggestedTag=Temporal-intermittent-rhythmic-delta-activity-morphology, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, suggestedTag=Finding-incidence, inLibrary=score}
- * Interictal-special-patterns {requireChild, inLibrary=score}
- ** Interictal-periodic-discharges {suggestedTag=Periodic-discharges-superimposed-activity, suggestedTag=Periodic-discharge-sharpness, suggestedTag=Number-of-periodic-discharge-phases, suggestedTag=Periodic-discharge-triphasic-morphology, suggestedTag=Periodic-discharge-absolute-amplitude, suggestedTag=Periodic-discharge-relative-amplitude, suggestedTag=Periodic-discharge-polarity, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Periodic-discharge-duration, suggestedTag=Periodic-discharge-onset, suggestedTag=Periodic-discharge-dynamics, inLibrary=score} [Periodic discharge not further specified (PDs).]
- *** Generalized-periodic-discharges {inLibrary=score} [GPDs.]
- *** Lateralized-periodic-discharges {inLibrary=score} [LPDs.]
- *** Bilateral-independent-periodic-discharges {inLibrary=score} [BIPDs.]
- *** Multifocal-periodic-discharges {inLibrary=score} [MfPDs.]
- ** Extreme-delta-brush {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, inLibrary=score}
-
-'''Critically-ill-patients-patterns''' {requireChild, inLibrary=score} [Rhythmic or periodic patterns in critically ill patients (RPPs) are scored according to the 2012 version of the American Clinical Neurophysiology Society Standardized Critical Care EEG Terminology (Hirsch et al., 2013).]
- * Critically-ill-patients-periodic-discharges {suggestedTag=Periodic-discharges-superimposed-activity, suggestedTag=Periodic-discharge-sharpness, suggestedTag=Number-of-periodic-discharge-phases, suggestedTag=Periodic-discharge-triphasic-morphology, suggestedTag=Periodic-discharge-absolute-amplitude, suggestedTag=Periodic-discharge-relative-amplitude, suggestedTag=Periodic-discharge-polarity, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-frequency, suggestedTag=Periodic-discharge-duration, suggestedTag=Periodic-discharge-onset, suggestedTag=Periodic-discharge-dynamics, inLibrary=score} [Periodic discharges (PDs).]
- * Rhythmic-delta-activity {suggestedTag=Periodic-discharges-superimposed-activity, suggestedTag=Periodic-discharge-absolute-amplitude, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-frequency, suggestedTag=Periodic-discharge-duration, suggestedTag=Periodic-discharge-onset, suggestedTag=Periodic-discharge-dynamics, inLibrary=score} [RDA]
- * Spike-or-sharp-and-wave {suggestedTag=Periodic-discharge-sharpness, suggestedTag=Number-of-periodic-discharge-phases, suggestedTag=Periodic-discharge-triphasic-morphology, suggestedTag=Periodic-discharge-absolute-amplitude, suggestedTag=Periodic-discharge-relative-amplitude, suggestedTag=Periodic-discharge-polarity, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Multifocal-finding, suggestedTag=Finding-frequency, suggestedTag=Periodic-discharge-duration, suggestedTag=Periodic-discharge-onset, suggestedTag=Periodic-discharge-dynamics, inLibrary=score} [SW]
-
-'''Episode''' {requireChild, inLibrary=score} [Clinical episode or electrographic seizure.]
- * Epileptic-seizure {requireChild, inLibrary=score}
- ** Focal-onset-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score}
- *** Aware-focal-onset-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Seizure-classification, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score}
- *** Impaired-awareness-focal-onset-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Seizure-classification, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score}
- *** Awareness-unknown-focal-onset-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Seizure-classification, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score}
- *** Focal-to-bilateral-tonic-clonic-focal-onset-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score}
- ** Generalized-onset-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Seizure-classification, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score}
- ** Unknown-onset-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Seizure-classification, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score}
- ** Unclassified-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score}
- * Subtle-seizure {suggestedTag=Episode-phase, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score} [Seizure type frequent in neonates, sometimes referred to as motor automatisms; they may include random and roving eye movements, sucking, chewing motions, tongue protrusion, rowing or swimming or boxing movements of the arms, pedaling and bicycling movements of the lower limbs; apneic seizures are relatively common. Although some subtle seizures are associated with rhythmic ictal EEG discharges, and are clearly epileptic, ictal EEG often does not show typical epileptic activity.]
- * Electrographic-seizure {suggestedTag=Episode-phase, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score} [Referred usually to non convulsive status. Ictal EEG: rhythmic discharge or spike and wave pattern with definite evolution in frequency, location, or morphology lasting at least 10 s; evolution in amplitude alone did not qualify.]
- * Seizure-PNES {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score} [Psychogenic non-epileptic seizure.]
- * Sleep-related-episode {requireChild, inLibrary=score}
- ** Sleep-related-arousal {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score} [Normal.]
- ** Benign-sleep-myoclonus {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score} [A distinctive disorder of sleep characterized by a) neonatal onset, b) rhythmic myoclonic jerks only during sleep and c) abrupt and consistent cessation with arousal, d) absence of concomitant electrographic changes suggestive of seizures, and e) good outcome.]
- ** Confusional-awakening {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score} [Episode of non epileptic nature included in NREM parasomnias, characterized by sudden arousal and complex behavior but without full alertness, usually lasting a few minutes and occurring almost in all children at least occasionally. Amnesia of the episode is the rule.]
- ** Sleep-periodic-limb-movement {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score} [PLMS. Periodic limb movement in sleep. Episodes are characterized by brief (0.5- to 5.0-second) lower-extremity movements during sleep, which typically occur at 20- to 40-second intervals, most commonly during the first 3 hours of sleep. The affected individual is usually not aware of the movements or of the transient partial arousals.]
- ** REM-sleep-behavioral-disorder {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score} [REM sleep behavioral disorder. Episodes characterized by: a) presence of REM sleep without atonia (RSWA) on polysomnography (PSG); b) presence of at least 1 of the following conditions - (1) Sleep-related behaviors, by history, that have been injurious, potentially injurious, or disruptive (example: dream enactment behavior); (2) abnormal REM sleep behavior documented during PSG monitoring; (3) absence of epileptiform activity on electroencephalogram (EEG) during REM sleep (unless RBD can be clearly distinguished from any concurrent REM sleep-related seizure disorder); (4) sleep disorder not better explained by another sleep disorder, a medical or neurologic disorder, a mental disorder, medication use, or a substance use disorder.]
- ** Sleep-walking {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score} [Episodes characterized by ambulation during sleep; the patient is difficult to arouse during an episode, and is usually amnesic following the episode. Episodes usually occur in the first third of the night during slow wave sleep. Polysomnographic recordings demonstrate 2 abnormalities during the first sleep cycle: frequent, brief, non-behavioral EEG-defined arousals prior to the somnambulistic episode and abnormally low gamma (0.75-2.0 Hz) EEG power on spectral analysis, correlating with high-voltage (hyper-synchronic gamma) waves lasting 10 to 15 s occurring just prior to the movement. This is followed by stage I NREM sleep, and there is no evidence of complete awakening.]
- * Pediatric-episode {requireChild, inLibrary=score}
- ** Hyperekplexia {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score} [Disorder characterized by exaggerated startle response and hypertonicity that may occur during the first year of life and in severe cases during the neonatal period. Children usually present with marked irritability and recurrent startles in response to handling and sounds. Severely affected infants can have severe jerks and stiffening, sometimes with breath-holding spells.]
- ** Jactatio-capitis-nocturna {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score} [Relatively common in normal children at the time of going to bed, especially during the first year of life, the rhythmic head movements persist during sleep. Usually, these phenomena disappear before 3 years of age.]
- ** Pavor-nocturnus {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score} [A nocturnal episode characterized by age of onset of less than five years (mean age 18 months, with peak prevalence at five to seven years), appearance of signs of panic two hours after falling asleep with crying, screams, a fearful expression, inability to recognize other people including parents (for a duration of 5-15 minutes), amnesia upon awakening. Pavor nocturnus occurs in patients almost every night for months or years (but the frequency is highly variable and may be as low as once a month) and is likely to disappear spontaneously at the age of six to eight years.]
- ** Pediatric-stereotypical-behavior-episode {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score} [Repetitive motor behavior in children, typically rhythmic and persistent; usually not paroxysmal and rarely suggest epilepsy. They include headbanging, head-rolling, jactatio capitis nocturna, body rocking, buccal or lingual movements, hand flapping and related mannerisms, repetitive hand-waving (to self-induce photosensitive seizures).]
- * Paroxysmal-motor-event {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score} [Paroxysmal phenomena during neonatal or childhood periods characterized by recurrent motor or behavioral signs or symptoms that must be distinguishes from epileptic disorders.]
- * Syncope {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score} [Episode with loss of consciousness and muscle tone that is abrupt in onset, of short duration and followed by rapid recovery; it occurs in response to transient impairment of cerebral perfusion. Typical prodromal symptoms often herald onset of syncope and postictal symptoms are minimal. Syncopal convulsions resulting from cerebral anoxia are common but are not a form of epilepsy, nor are there any accompanying EEG ictal discharges.]
- * Cataplexy {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score} [A sudden decrement in muscle tone and loss of deep tendon reflexes, leading to muscle weakness, paralysis, or postural collapse. Cataplexy usually is precipitated by an outburst of emotional expression-notably laughter, anger, or startle. It is one of the tetrad of symptoms of narcolepsy. During cataplexy, respiration and voluntary eye movements are not compromised. Consciousness is preserved.]
- * Other-episode {requireChild, inLibrary=score}
- ** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
-
-'''Physiologic-pattern''' {requireChild, inLibrary=score} [EEG graphoelements or rhythms that are considered normal. They only should be scored if the physician considers that they have a specific clinical significance for the recording.]
- * Rhythmic-activity-pattern {suggestedTag=Delta-activity-morphology, suggestedTag=Theta-activity-morphology, suggestedTag=Alpha-activity-morphology, suggestedTag=Beta-activity-morphology, suggestedTag=Gamma-activity-morphology, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, inLibrary=score} [Not further specified.]
- * Slow-alpha-variant-rhythm {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, inLibrary=score} [Characteristic rhythms mostly at 4-5 Hz, recorded most prominently over the posterior regions of the head. Generally alternate, or are intermixed, with alpha rhythm to which they often are harmonically related. Amplitude varies but is frequently close to 50 micro V. Blocked or attenuated by attention, especially visual, and mental effort. Comment: slow alpha variant rhythms should be distinguished from posterior slow waves characteristic of children and adolescents and occasionally seen in young adults.]
- * Fast-alpha-variant-rhythm {suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, inLibrary=score} [Characteristic rhythm at 14-20 Hz, detected most prominently over the posterior regions of the head. May alternate or be intermixed with alpha rhythm. Blocked or attenuated by attention, especially visual, and mental effort.]
- * Ciganek-rhythm {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, inLibrary=score} [Midline theta rhythm (Ciganek rhythm) may be observed during wakefulness or drowsiness. The frequency is 4-7 Hz, and the location is midline (ie, vertex). The morphology is rhythmic, smooth, sinusoidal, arciform, spiky, or mu-like.]
- * Lambda-wave {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, inLibrary=score} [Diphasic sharp transient occurring over occipital regions of the head of waking subjects during visual exploration. The main component is positive relative to other areas. Time-locked to saccadic eye movement. Amplitude varies but is generally below 50 micro V.]
- * Posterior-slow-waves-youth {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, inLibrary=score} [Waves in the delta and theta range, of variable form, lasting 0.35 to 0.5 s or longer without any consistent periodicity, found in the range of 6-12 years (occasionally seen in young adults). Alpha waves are almost always intermingled or superimposed. Reactive similar to alpha activity.]
- * Diffuse-slowing-hyperventilation {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, inLibrary=score} [Diffuse slowing induced by hyperventilation. Bilateral, diffuse slowing during hyperventilation. Recorded in 70 percent of normal children (3-5 years) and less then 10 percent of adults. Usually appear in the posterior regions and spread forward in younger age group, whereas they tend to appear in the frontal regions and spread backward in the older age group.]
- * Photic-driving {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, inLibrary=score} [Physiologic response consisting of rhythmic activity elicited over the posterior regions of the head by repetitive photic stimulation at frequencies of about 5-30 Hz. Comments: term should be limited to activity time-locked to the stimulus and of frequency identical or harmonically related to the stimulus frequency. Photic driving should be distinguished from the visual evoked potentials elicited by isolated flashes of light or flashes repeated at very low frequency.]
- * Photomyogenic-response {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, inLibrary=score} [A response to intermittent photic stimulation characterized by the appearance in the record of brief, repetitive muscular artifacts (spikes) over the anterior regions of the head. These often increase gradually in amplitude as stimuli are continued and cease promptly when the stimulus is withdrawn. Comment: this response is frequently associated with flutter of the eyelids and vertical oscillations of the eyeballs and sometimes with discrete jerking mostly involving the musculature of the face and head. (Preferred to synonym: photo-myoclonic response).]
- * Other-physiologic-pattern {requireChild, inLibrary=score}
- ** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
-
-'''Uncertain-significant-pattern''' {requireChild, inLibrary=score} [EEG graphoelements or rhythms that resemble abnormal patterns but that are not necessarily associated with a pathology, and the physician does not consider them abnormal in the context of the scored recording (like normal variants and patterns).]
- * Sharp-transient-pattern {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, inLibrary=score}
- * Wicket-spikes {inLibrary=score} [Spike-like monophasic negative single waves or trains of waves occurring over the temporal regions during drowsiness that have an arcuate or mu-like appearance. These are mainly seen in older individuals and represent a benign variant that is of little clinical significance.]
- * Small-sharp-spikes {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, inLibrary=score} [Benign epileptiform Transients of Sleep (BETS). Small sharp spikes (SSS) of very short duration and low amplitude, often followed by a small theta wave, occurring in the temporal regions during drowsiness and light sleep. They occur on one or both sides (often asynchronously). The main negative and positive components are of about equally spiky character. Rarely seen in children, they are seen most often in adults and the elderly. Two thirds of the patients have a history of epileptic seizures.]
- * Fourteen-six-Hz-positive-burst {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, inLibrary=score} [Burst of arch-shaped waves at 13-17 Hz and/or 5-7-Hz but most commonly at 14 and or 6 Hz seen generally over the posterior temporal and adjacent areas of one or both sides of the head during sleep. The sharp peaks of its component waves are positive with respect to other regions. Amplitude varies but is generally below 75 micro V. Comments: (1) best demonstrated by referential recording using contralateral earlobe or other remote, reference electrodes. (2) This pattern has no established clinical significance.]
- * Six-Hz-spike-slow-wave {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, inLibrary=score} [Spike and slow wave complexes at 4-7Hz, but mostly at 6 Hz occurring generally in brief bursts bilaterally and synchronously, symmetrically or asymmetrically, and either confined to or of larger amplitude over the posterior or anterior regions of the head. The spike has a strong positive component. Amplitude varies but is generally smaller than that of spike-and slow-wave complexes repeating at slower rates. Comment: this pattern should be distinguished from epileptiform discharges. Synonym: wave and spike phantom.]
- * Rudimentary-spike-wave-complex {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, inLibrary=score} [Synonym: Pseudo petit mal discharge. Paroxysmal discharge that consists of generalized or nearly generalized high voltage 3 to 4/sec waves with poorly developed spike in the positive trough between the slow waves, occurring in drowsiness only. It is found only in infancy and early childhood when marked hypnagogic rhythmical theta activity is paramount in the drowsy state.]
- * Slow-fused-transient {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, inLibrary=score} [A posterior slow-wave preceded by a sharp-contoured potential that blends together with the ensuing slow wave, in children.]
- * Needle-like-occipital-spikes-blind {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, inLibrary=score} [Spike discharges of a particularly fast and needle-like character develop over the occipital region in most congenitally blind children. Completely disappear during childhood or adolescence.]
- * Subclinical-rhythmic-EEG-discharge-adults {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, inLibrary=score} [Subclinical rhythmic EEG discharge of adults (SERDA). A rhythmic pattern seen in the adult age group, mainly in the waking state or drowsiness. It consists of a mixture of frequencies, often predominant in the theta range. The onset may be fairly abrupt with widespread sharp rhythmical theta and occasionally with delta activity. As to the spatial distribution, a maximum of this discharge is usually found over the centroparietal region and especially over the vertex. It may resemble a seizure discharge but is not accompanied by any clinical signs or symptoms.]
- * Rhythmic-temporal-theta-burst-drowsiness {inLibrary=score} [Rhythmic temporal theta burst of drowsiness (RTTD). Characteristic burst of 4-7 Hz waves frequently notched by faster waves, occurring over the temporal regions of the head during drowsiness. Synonym: psychomotor variant pattern. Comment: this is a pattern of drowsiness that is of no clinical significance.]
- * Temporal-slowing-elderly {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, inLibrary=score} [Focal theta and/or delta activity over the temporal regions, especially the left, in persons over the age of 60. Amplitudes are low/similar to the background activity. Comment: focal temporal theta was found in 20 percent of people between the ages of 40-59 years, and 40 percent of people between 60 and 79 years. One third of people older than 60 years had focal temporal delta activity.]
- * Breach-rhythm {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, inLibrary=score} [Rhythmical activity recorded over cranial bone defects. Usually it is in the 6 to 11/sec range, does not respond to movements.]
- * Other-uncertain-significant-pattern {requireChild, inLibrary=score}
- ** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
-
-'''Artifact''' {requireChild, inLibrary=score} [When relevant for the clinical interpretation, artifacts can be scored by specifying the type and the location.]
- * Biological-artifact {requireChild, inLibrary=score}
- ** Eye-blink-artifact {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Multifocal-finding, suggestedTag=Artifact-significance-to-recording, inLibrary=score} [Example for EEG: Fp1/Fp2 become electropositive with eye closure because the cornea is positively charged causing a negative deflection in Fp1/Fp2. If the eye blink is unilateral, consider prosthetic eye. If it is in F8 rather than Fp2 then the electrodes are plugged in wrong.]
- ** Eye-movement-horizontal-artifact {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Multifocal-finding, suggestedTag=Artifact-significance-to-recording, inLibrary=score} [Example for EEG: There is an upward deflection in the Fp2-F8 derivation, when the eyes move to the right side. In this case F8 becomes more positive and therefore. When the eyes move to the left, F7 becomes more positive and there is an upward deflection in the Fp1-F7 derivation.]
- ** Eye-movement-vertical-artifact {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Multifocal-finding, suggestedTag=Artifact-significance-to-recording, inLibrary=score} [Example for EEG: The EEG shows positive potentials (50-100 micro V) with bi-frontal distribution, maximum at Fp1 and Fp2, when the eyeball rotated upward. The downward rotation of the eyeball was associated with the negative deflection. The time course of the deflections was similar to the time course of the eyeball movement.]
- ** Slow-eye-movement-artifact {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Multifocal-finding, suggestedTag=Artifact-significance-to-recording, inLibrary=score} [Slow, rolling eye-movements, seen during drowsiness.]
- ** Nystagmus-artifact {suggestedTag=Artifact-significance-to-recording, inLibrary=score}
- ** Chewing-artifact {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Multifocal-finding, suggestedTag=Artifact-significance-to-recording, inLibrary=score}
- ** Sucking-artifact {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Multifocal-finding, suggestedTag=Artifact-significance-to-recording, inLibrary=score}
- ** Glossokinetic-artifact {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Multifocal-finding, suggestedTag=Artifact-significance-to-recording, inLibrary=score} [The tongue functions as a dipole, with the tip negative with respect to the base. The artifact produced by the tongue has a broad potential field that drops from frontal to occipital areas, although it is less steep than that produced by eye movement artifacts. The amplitude of the potentials is greater inferiorly than in parasagittal regions; the frequency is variable but usually in the delta range. Chewing and sucking can produce similar artifacts.]
- ** Rocking-patting-artifact {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Multifocal-finding, suggestedTag=Artifact-significance-to-recording, inLibrary=score} [Quasi-rhythmical artifacts in recordings from infants caused by rocking/patting.]
- ** Movement-artifact {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Multifocal-finding, suggestedTag=Artifact-significance-to-recording, inLibrary=score} [Example for EEG: Large amplitude artifact, with irregular morphology (usually resembling a slow-wave or a wave with complex morphology) seen in one or several channels, due to movement. If the causing movement is repetitive, the artifact might resemble a rhythmic EEG activity.]
- ** Respiration-artifact {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Multifocal-finding, suggestedTag=Artifact-significance-to-recording, inLibrary=score} [Respiration can produce 2 kinds of artifacts. One type is in the form of slow and rhythmic activity, synchronous with the body movements of respiration and mechanically affecting the impedance of (usually) one electrode. The other type can be slow or sharp waves that occur synchronously with inhalation or exhalation and involve those electrodes on which the patient is lying.]
- ** Pulse-artifact {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Multifocal-finding, suggestedTag=Artifact-significance-to-recording, inLibrary=score} [Example for EEG: Occurs when an EEG electrode is placed over a pulsating vessel. The pulsation can cause slow waves that may simulate EEG activity. A direct relationship exists between ECG and the pulse waves (200-300 millisecond delay after ECG equals QRS complex).]
- ** ECG-artifact {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Multifocal-finding, suggestedTag=Artifact-significance-to-recording, inLibrary=score} [Example for EEG: Far-field potential generated in the heart. The voltage and apparent surface of the artifact vary from derivation to derivation and, consequently, from montage to montage. The artifact is observed best in referential montages using earlobe electrodes A1 and A2. ECG artifact is recognized easily by its rhythmicity/regularity and coincidence with the ECG tracing.]
- ** Sweat-artifact {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Multifocal-finding, suggestedTag=Artifact-significance-to-recording, inLibrary=score} [Is a low amplitude undulating waveform that is usually greater than 2 seconds and may appear to be an unstable baseline.]
- ** EMG-artifact {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Multifocal-finding, suggestedTag=Artifact-significance-to-recording, inLibrary=score} [Myogenic potentials are the most common artifacts. Frontalis and temporalis muscles (ex..: clenching of jaw muscles) are common causes. Generally, the potentials generated in the muscles are of shorter duration than those generated in the brain. The frequency components are usually beyond 30-50 Hz, and the bursts are arrhythmic.]
- * Non-biological-artifact {requireChild, inLibrary=score}
- ** Power-supply-artifact {suggestedTag=Artifact-significance-to-recording, inLibrary=score} [50-60 Hz artifact. Monomorphic waveform due to 50 or 60 Hz A/C power supply.]
- ** Induction-artifact {suggestedTag=Artifact-significance-to-recording, inLibrary=score} [Artifacts (usually of high frequency) induced by nearby equipment (like in the intensive care unit).]
- ** Dialysis-artifact {suggestedTag=Artifact-significance-to-recording, inLibrary=score}
- ** Artificial-ventilation-artifact {suggestedTag=Artifact-significance-to-recording, inLibrary=score}
- ** Electrode-pops-artifact {suggestedTag=Artifact-significance-to-recording, inLibrary=score} [Are brief discharges with a very steep upslope and shallow fall that occur in all leads which include that electrode.]
- ** Salt-bridge-artifact {suggestedTag=Artifact-significance-to-recording, inLibrary=score} [Typically occurs in 1 channel which may appear isoelectric. Only seen in bipolar montage.]
- * Other-artifact {requireChild, suggestedTag=Artifact-significance-to-recording, inLibrary=score}
- ** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
-
-'''Polygraphic-channel-finding''' {requireChild, inLibrary=score} [Changes observed in polygraphic channels can be scored: EOG, Respiration, ECG, EMG, other polygraphic channel (+ free text), and their significance logged (normal, abnormal, no definite abnormality).]
- * EOG-channel-finding {suggestedTag=Finding-significance-to-recording, inLibrary=score} [ElectroOculoGraphy.]
- ** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- * Respiration-channel-finding {suggestedTag=Finding-significance-to-recording, inLibrary=score}
- ** Respiration-oxygen-saturation {inLibrary=score}
- *** # {takesValue, valueClass=numericClass, inLibrary=score}
- ** Respiration-feature {inLibrary=score}
- *** Apnoe-respiration {inLibrary=score} [Add duration (range in seconds) and comments in free text.]
- **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** Hypopnea-respiration {inLibrary=score} [Add duration (range in seconds) and comments in free text]
- **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** Apnea-hypopnea-index-respiration {requireChild, inLibrary=score} [Events/h. Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency]
- **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** Periodic-respiration {inLibrary=score}
- **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** Tachypnea-respiration {requireChild, inLibrary=score} [Cycles/min. Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency]
- **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** Other-respiration-feature {requireChild, inLibrary=score}
- **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- * ECG-channel-finding {suggestedTag=Finding-significance-to-recording, inLibrary=score} [Electrocardiography.]
- ** ECG-QT-period {inLibrary=score}
- *** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- ** ECG-feature {inLibrary=score}
- *** ECG-sinus-rhythm {inLibrary=score} [Normal rhythm. Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency]
- **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** ECG-arrhythmia {inLibrary=score}
- **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** ECG-asystolia {inLibrary=score} [Add duration (range in seconds) and comments in free text.]
- **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** ECG-bradycardia {inLibrary=score} [Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency]
- **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** ECG-extrasystole {inLibrary=score}
- **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** ECG-ventricular-premature-depolarization {inLibrary=score} [Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency]
- **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** ECG-tachycardia {inLibrary=score} [Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency]
- **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** Other-ECG-feature {requireChild, inLibrary=score}
- **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- * EMG-channel-finding {suggestedTag=Finding-significance-to-recording, inLibrary=score} [electromyography]
- ** EMG-muscle-side {inLibrary=score}
- *** EMG-left-muscle {inLibrary=score}
- **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** EMG-right-muscle {inLibrary=score}
- **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** EMG-bilateral-muscle {inLibrary=score}
- **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- ** EMG-muscle-name {inLibrary=score}
- *** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- ** EMG-feature {inLibrary=score}
- *** EMG-myoclonus {inLibrary=score}
- **** Negative-myoclonus {inLibrary=score}
- ***** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- **** EMG-myoclonus-rhythmic {inLibrary=score}
- ***** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- **** EMG-myoclonus-arrhythmic {inLibrary=score}
- ***** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- **** EMG-myoclonus-synchronous {inLibrary=score}
- ***** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- **** EMG-myoclonus-asynchronous {inLibrary=score}
- ***** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** EMG-PLMS {inLibrary=score} [Periodic limb movements in sleep.]
- *** EMG-spasm {inLibrary=score}
- **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** EMG-tonic-contraction {inLibrary=score}
- **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** EMG-asymmetric-activation {requireChild, inLibrary=score}
- **** EMG-asymmetric-activation-left-first {inLibrary=score}
- ***** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- **** EMG-asymmetric-activation-right-first {inLibrary=score}
- ***** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** Other-EMG-features {requireChild, inLibrary=score}
- **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- * Other-polygraphic-channel {requireChild, inLibrary=score}
+'''Critically-ill-patients-patterns''' {requireChild, inLibrary=score} [Rhythmic or periodic patterns in critically ill patients (RPPs) are scored according to the 2012 version of the American Clinical Neurophysiology Society Standardized Critical Care EEG Terminology (Hirsch et al., 2013).]
+ * Critically-ill-patients-periodic-discharges {suggestedTag=Periodic-discharge-morphology, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-frequency, suggestedTag=Periodic-discharge-time-related-features, inLibrary=score} [Periodic discharges (PDs).]
+ * Rhythmic-delta-activity {suggestedTag=Periodic-discharge-superimposed-activity, suggestedTag=Periodic-discharge-absolute-amplitude, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-frequency, suggestedTag=Periodic-discharge-time-related-features, inLibrary=score} [RDA]
+ * Spike-or-sharp-and-wave {suggestedTag=Periodic-discharge-sharpness, suggestedTag=Number-of-periodic-discharge-phases, suggestedTag=Periodic-discharge-triphasic-morphology, suggestedTag=Periodic-discharge-absolute-amplitude, suggestedTag=Periodic-discharge-relative-amplitude, suggestedTag=Periodic-discharge-polarity, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Multifocal-finding, suggestedTag=Finding-frequency, suggestedTag=Periodic-discharge-time-related-features, inLibrary=score} [SW]
+
+'''Episode''' {requireChild, inLibrary=score} [Clinical episode or electrographic seizure.]
+ * Epileptic-seizure {requireChild, inLibrary=score} [The ILAE presented a revised seizure classification that divides seizures into focal, generalized onset, or unknown onset.]
+ ** Focal-onset-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Automatism-motor-seizure, suggestedTag=Atonic-motor-seizure, suggestedTag=Clonic-motor-seizure, suggestedTag=Epileptic-spasm-episode, suggestedTag=Hyperkinetic-motor-seizure, suggestedTag=Myoclonic-motor-seizure, suggestedTag=Tonic-motor-seizure, suggestedTag=Autonomic-nonmotor-seizure, suggestedTag=Behavior-arrest-nonmotor-seizure, suggestedTag=Cognitive-nonmotor-seizure, suggestedTag=Emotional-nonmotor-seizure, suggestedTag=Sensory-nonmotor-seizure, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score} [Focal seizures can be divided into focal aware and impaired awareness seizures, with additional motor and nonmotor classifications.]
+ *** Aware-focal-onset-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score}
+ *** Impaired-awareness-focal-onset-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score}
+ *** Awareness-unknown-focal-onset-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score}
+ *** Focal-to-bilateral-tonic-clonic-focal-onset-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score} [A seizure type with focal onset, with awareness or impaired awareness, either motor or non-motor, progressing to bilateral tonic clonic activity. The prior term was seizure with partial onset with secondary generalization. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ ** Generalized-onset-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Tonic-clonic-motor-seizure, suggestedTag=Clonic-motor-seizure, suggestedTag=Tonic-motor-seizure, suggestedTag=Myoclonic-motor-seizure, suggestedTag=Myoclonic-tonic-clonic-motor-seizure, suggestedTag=Myoclonic-atonic-motor-seizure, suggestedTag=Atonic-motor-seizure, suggestedTag=Epileptic-spasm-episode, suggestedTag=Typical-absence-seizure, suggestedTag=Atypical-absence-seizure, suggestedTag=Myoclonic-absence-seizure, suggestedTag=Eyelid-myoclonia-absence-seizure, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score} [Generalized-onset seizures are classified as motor or nonmotor (absence), without using awareness level as a classifier, as most but not all of these seizures are linked with impaired awareness.]
+ ** Unknown-onset-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Tonic-clonic-motor-seizure, suggestedTag=Epileptic-spasm-episode, suggestedTag=Behavior-arrest-nonmotor-seizure, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score} [Even if the onset of seizures is unknown, they may exhibit characteristics that fall into categories such as motor, nonmotor, tonic-clonic, epileptic spasms, or behavior arrest.]
+ ** Unclassified-epileptic-seizure {suggestedTag=Episode-phase, suggestedTag=Seizure-dynamics, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score} [Referring to a seizure type that cannot be described by the ILAE 2017 classification either because of inadequate information or unusual clinical features.]
+ * Subtle-seizure {suggestedTag=Episode-phase, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score} [Seizure type frequent in neonates, sometimes referred to as motor automatisms; they may include random and roving eye movements, sucking, chewing motions, tongue protrusion, rowing or swimming or boxing movements of the arms, pedaling and bicycling movements of the lower limbs; apneic seizures are relatively common. Although some subtle seizures are associated with rhythmic ictal EEG discharges, and are clearly epileptic, ictal EEG often does not show typical epileptic activity.]
+ * Electrographic-seizure {suggestedTag=Episode-phase, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score} [Referred usually to non convulsive status. Ictal EEG: rhythmic discharge or spike and wave pattern with definite evolution in frequency, location, or morphology lasting at least 10 s; evolution in amplitude alone did not qualify.]
+ * Seizure-PNES {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score} [Psychogenic non-epileptic seizure.]
+ * Sleep-related-episode {requireChild, inLibrary=score}
+ ** Sleep-related-arousal {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score} [Normal.]
+ ** Benign-sleep-myoclonus {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score} [A distinctive disorder of sleep characterized by a) neonatal onset, b) rhythmic myoclonic jerks only during sleep and c) abrupt and consistent cessation with arousal, d) absence of concomitant electrographic changes suggestive of seizures, and e) good outcome.]
+ ** Confusional-awakening {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score} [Episode of non epileptic nature included in NREM parasomnias, characterized by sudden arousal and complex behavior but without full alertness, usually lasting a few minutes and occurring almost in all children at least occasionally. Amnesia of the episode is the rule.]
+ ** Sleep-periodic-limb-movement {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score} [PLMS. Periodic limb movement in sleep. Episodes are characterized by brief (0.5- to 5.0-second) lower-extremity movements during sleep, which typically occur at 20- to 40-second intervals, most commonly during the first 3 hours of sleep. The affected individual is usually not aware of the movements or of the transient partial arousals.]
+ ** REM-sleep-behavioral-disorder {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score} [REM sleep behavioral disorder. Episodes characterized by: a) presence of REM sleep without atonia (RSWA) on polysomnography (PSG); b) presence of at least 1 of the following conditions - (1) Sleep-related behaviors, by history, that have been injurious, potentially injurious, or disruptive (example: dream enactment behavior); (2) abnormal REM sleep behavior documented during PSG monitoring; (3) absence of epileptiform activity on electroencephalogram (EEG) during REM sleep (unless RBD can be clearly distinguished from any concurrent REM sleep-related seizure disorder); (4) sleep disorder not better explained by another sleep disorder, a medical or neurologic disorder, a mental disorder, medication use, or a substance use disorder.]
+ ** Sleep-walking {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score} [Episodes characterized by ambulation during sleep; the patient is difficult to arouse during an episode, and is usually amnesic following the episode. Episodes usually occur in the first third of the night during slow wave sleep. Polysomnographic recordings demonstrate 2 abnormalities during the first sleep cycle: frequent, brief, non-behavioral EEG-defined arousals prior to the somnambulistic episode and abnormally low gamma (0.75-2.0 Hz) EEG power on spectral analysis, correlating with high-voltage (hyper-synchronic gamma) waves lasting 10 to 15 s occurring just prior to the movement. This is followed by stage I NREM sleep, and there is no evidence of complete awakening.]
+ * Pediatric-episode {requireChild, inLibrary=score}
+ ** Hyperekplexia {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score} [Disorder characterized by exaggerated startle response and hypertonicity that may occur during the first year of life and in severe cases during the neonatal period. Children usually present with marked irritability and recurrent startles in response to handling and sounds. Severely affected infants can have severe jerks and stiffening, sometimes with breath-holding spells.]
+ ** Jactatio-capitis-nocturna {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score} [Relatively common in normal children at the time of going to bed, especially during the first year of life, the rhythmic head movements persist during sleep. Usually, these phenomena disappear before 3 years of age.]
+ ** Pavor-nocturnus {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score} [A nocturnal episode characterized by age of onset of less than five years (mean age 18 months, with peak prevalence at five to seven years), appearance of signs of panic two hours after falling asleep with crying, screams, a fearful expression, inability to recognize other people including parents (for a duration of 5-15 minutes), amnesia upon awakening. Pavor nocturnus occurs in patients almost every night for months or years (but the frequency is highly variable and may be as low as once a month) and is likely to disappear spontaneously at the age of six to eight years.]
+ ** Pediatric-stereotypical-behavior-episode {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score} [Repetitive motor behavior in children, typically rhythmic and persistent; usually not paroxysmal and rarely suggest epilepsy. They include headbanging, head-rolling, jactatio capitis nocturna, body rocking, buccal or lingual movements, hand flapping and related mannerisms, repetitive hand-waving (to self-induce photosensitive seizures).]
+ * Paroxysmal-motor-event {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score} [Paroxysmal phenomena during neonatal or childhood periods characterized by recurrent motor or behavioral signs or symptoms that must be distinguishes from epileptic disorders.]
+ * Syncope {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score} [Episode with loss of consciousness and muscle tone that is abrupt in onset, of short duration and followed by rapid recovery; it occurs in response to transient impairment of cerebral perfusion. Typical prodromal symptoms often herald onset of syncope and postictal symptoms are minimal. Syncopal convulsions resulting from cerebral anoxia are common but are not a form of epilepsy, nor are there any accompanying EEG ictal discharges.]
+ * Cataplexy {suggestedTag=Episode-phase, suggestedTag=Finding-significance-to-recording, suggestedTag=Episode-consciousness, suggestedTag=Episode-awareness, suggestedTag=Clinical-EEG-temporal-relationship, suggestedTag=Episode-event-count, suggestedTag=State-episode-start, suggestedTag=Episode-postictal-phase, suggestedTag=Episode-prodrome, suggestedTag=Episode-tongue-biting, inLibrary=score} [A sudden decrement in muscle tone and loss of deep tendon reflexes, leading to muscle weakness, paralysis, or postural collapse. Cataplexy usually is precipitated by an outburst of emotional expression-notably laughter, anger, or startle. It is one of the tetrad of symptoms of narcolepsy. During cataplexy, respiration and voluntary eye movements are not compromised. Consciousness is preserved.]
+ * Other-episode {requireChild, inLibrary=score}
** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
'''Finding-property''' {requireChild, inLibrary=score} [Descriptive element similar to main HED /Property. Something that pertains to a thing. A characteristic of some entity. A quality or feature regarded as a characteristic or inherent part of someone or something. HED attributes are adjectives or adverbs.]
@@ -1467,11 +358,11 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
*** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
** Temporal-intermittent-rhythmic-delta-activity-morphology {inLibrary=score} [Temporal intermittent rhythmic delta activity (TIRDA). Fairly regular or approximately sinusoidal waves, mostly occurring in bursts at over the temporal areas of one side of the head. Comment: most commonly associated with temporal lobe epilepsy.]
*** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- ** Periodic-discharges-morphology {requireChild, inLibrary=score} [Periodic discharges not further specified (PDs).]
- *** Periodic-discharges-superimposed-activity {requireChild, suggestedTag=Property-not-possible-to-determine, inLibrary=score}
- **** Periodic-discharges-fast-superimposed-activity {suggestedTag=Finding-frequency, inLibrary=score}
+ ** Periodic-discharge-morphology {requireChild, inLibrary=score} [Periodic discharges not further specified (PDs).]
+ *** Periodic-discharge-superimposed-activity {requireChild, suggestedTag=Property-not-possible-to-determine, inLibrary=score}
+ **** Periodic-discharge-fast-superimposed-activity {suggestedTag=Finding-frequency, inLibrary=score}
***** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- **** Periodic-discharges-rhythmic-superimposed-activity {suggestedTag=Finding-frequency, inLibrary=score}
+ **** Periodic-discharge-rhythmic-superimposed-activity {suggestedTag=Finding-frequency, inLibrary=score}
***** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
*** Periodic-discharge-sharpness {requireChild, suggestedTag=Property-not-possible-to-determine, inLibrary=score}
**** Spiky-periodic-discharge-sharpness {inLibrary=score}
@@ -1565,19 +456,19 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
*** Brain-region-occipital {inLibrary=score}
**** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
** Body-part-location {requireChild, inLibrary=score}
- *** Body-part-eyelid {inLibrary=score}
+ *** Eyelid-location {inLibrary=score}
**** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** Body-part-face {inLibrary=score}
+ *** Face-location {inLibrary=score}
**** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** Body-part-arm {inLibrary=score}
+ *** Arm-location {inLibrary=score}
**** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** Body-part-leg {inLibrary=score}
+ *** Leg-location {inLibrary=score}
**** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** Body-part-trunk {inLibrary=score}
+ *** Trunk-location {inLibrary=score}
**** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** Body-part-visceral {inLibrary=score}
+ *** Visceral-location {inLibrary=score}
**** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** Body-part-hemi {inLibrary=score}
+ *** Hemi-location {inLibrary=score}
**** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
** Brain-centricity {requireChild, inLibrary=score}
*** Brain-centricity-axial {inLibrary=score}
@@ -1738,272 +629,1392 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
**** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
*** Medium-posterior-dominant-rhythm-amplitude-range {inLibrary=score} [Medium (between 20 and 70 microV).]
**** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** High-posterior-dominant-rhythm-amplitude-range {inLibrary=score} [High (more than 70 microV).]
+ *** High-posterior-dominant-rhythm-amplitude-range {inLibrary=score} [High (more than 70 microV).]
+ **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ ** Posterior-dominant-rhythm-frequency-asymmetry {requireChild, inLibrary=score} [When symmetrical could be labeled with base schema Symmetrical tag.]
+ *** Posterior-dominant-rhythm-frequency-asymmetry-lower-left {inLibrary=score} [Hz lower on the left side.]
+ **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ *** Posterior-dominant-rhythm-frequency-asymmetry-lower-right {inLibrary=score} [Hz lower on the right side.]
+ **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ ** Posterior-dominant-rhythm-eye-opening-reactivity {suggestedTag=Property-not-possible-to-determine, inLibrary=score} [Change (disappearance or measurable decrease in amplitude) of a posterior dominant rhythm following eye-opening. Eye closure has the opposite effect.]
+ *** Posterior-dominant-rhythm-eye-opening-reactivity-reduced-left {inLibrary=score} [Reduced left side reactivity.]
+ **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ *** Posterior-dominant-rhythm-eye-opening-reactivity-reduced-right {inLibrary=score} [Reduced right side reactivity.]
+ **** # {takesValue, valueClass=textClass, inLibrary=score} [free text]
+ *** Posterior-dominant-rhythm-eye-opening-reactivity-reduced-both {inLibrary=score} [Reduced reactivity on both sides.]
+ **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ ** Posterior-dominant-rhythm-organization {requireChild, inLibrary=score} [When normal could be labeled with base schema Normal tag.]
+ *** Posterior-dominant-rhythm-organization-poorly-organized {inLibrary=score} [Poorly organized.]
+ **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ *** Posterior-dominant-rhythm-organization-disorganized {inLibrary=score} [Disorganized.]
+ **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ *** Posterior-dominant-rhythm-organization-markedly-disorganized {inLibrary=score} [Markedly disorganized.]
+ **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ ** Posterior-dominant-rhythm-caveat {requireChild, inLibrary=score} [Caveat to the annotation of PDR.]
+ *** No-posterior-dominant-rhythm-caveat {inLibrary=score}
+ **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ *** Posterior-dominant-rhythm-caveat-only-open-eyes-during-the-recording {inLibrary=score}
+ **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ *** Posterior-dominant-rhythm-caveat-sleep-deprived-caveat {inLibrary=score}
+ **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ *** Posterior-dominant-rhythm-caveat-drowsy {inLibrary=score}
+ **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ *** Posterior-dominant-rhythm-caveat-only-following-hyperventilation {inLibrary=score}
+ ** Absence-of-posterior-dominant-rhythm {requireChild, inLibrary=score} [Reason for absence of PDR.]
+ *** Absence-of-posterior-dominant-rhythm-artifacts {inLibrary=score}
+ **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ *** Absence-of-posterior-dominant-rhythm-extreme-low-voltage {inLibrary=score}
+ **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ *** Absence-of-posterior-dominant-rhythm-eye-closure-could-not-be-achieved {inLibrary=score}
+ **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ *** Absence-of-posterior-dominant-rhythm-lack-of-awake-period {inLibrary=score}
+ **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ *** Absence-of-posterior-dominant-rhythm-lack-of-compliance {inLibrary=score}
+ **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ *** Absence-of-posterior-dominant-rhythm-other-causes {requireChild, inLibrary=score}
+ **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ * Episode-property {requireChild, inLibrary=score}
+ ** Seizure-classification {requireChild, inLibrary=score} [Seizure classification refers to the grouping of seizures based on their clinical features, EEG patterns, and other characteristics. Epileptic seizures are named using the current ILAE seizure classification (Fisher et al., 2017, Beniczky et al., 2017).]
+ *** Motor-seizure {inLibrary=score} [Involves musculature in any form. The motor event could consist of an increase (positive) or decrease (negative) in muscle contraction to produce a movement. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ *** Motor-onset-seizure {deprecatedFrom=1.0.0, inLibrary=score}
+ **** Myoclonic-motor-seizure {inLibrary=score} [Sudden, brief ( lower than 100 msec) involuntary single or multiple contraction(s) of muscles(s) or muscle groups of variable topography (axial, proximal limb, distal). Myoclonus is less regularly repetitive and less sustained than is clonus. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Myoclonic-motor-onset-seizure {deprecatedFrom=1.0.0, inLibrary=score}
+ **** Negative-myoclonic-motor-seizure {inLibrary=score}
+ **** Negative-myoclonic-motor-onset-seizure {deprecatedFrom=1.0.0, inLibrary=score}
+ **** Clonic-motor-seizure {inLibrary=score} [Jerking, either symmetric or asymmetric, that is regularly repetitive and involves the same muscle groups. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Clonic-motor-onset-seizure {deprecatedFrom=1.0.0, inLibrary=score}
+ **** Tonic-motor-seizure {inLibrary=score} [A sustained increase in muscle contraction lasting a few seconds to minutes. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Tonic-motor-onset-seizure {deprecatedFrom=1.0.0, inLibrary=score}
+ **** Atonic-motor-seizure {inLibrary=score} [Sudden loss or diminution of muscle tone without apparent preceding myoclonic or tonic event lasting about 1 to 2 s, involving head, trunk, jaw, or limb musculature. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Atonic-motor-onset-seizure {deprecatedFrom=1.0.0, inLibrary=score}
+ **** Myoclonic-atonic-motor-seizure {inLibrary=score} [A generalized seizure type with a myoclonic jerk leading to an atonic motor component. This type was previously called myoclonic astatic. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Myoclonic-atonic-motor-onset-seizure {deprecatedFrom=1.0.0, inLibrary=score}
+ **** Myoclonic-tonic-clonic-motor-seizure {inLibrary=score} [One or a few jerks of limbs bilaterally, followed by a tonic clonic seizure. The initial jerks can be considered to be either a brief period of clonus or myoclonus. Seizures with this characteristic are common in juvenile myoclonic epilepsy. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Myoclonic-tonic-clonic-motor-onset-seizure {deprecatedFrom=1.0.0, inLibrary=score}
+ **** Tonic-clonic-motor-seizure {inLibrary=score} [A sequence consisting of a tonic followed by a clonic phase. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Tonic-clonic-motor-onset-seizure {deprecatedFrom=1.0.0, inLibrary=score}
+ **** Automatism-motor-seizure {inLibrary=score} [A more or less coordinated motor activity usually occurring when cognition is impaired and for which the subject is usually (but not always) amnesic afterward. This often resembles a voluntary movement and may consist of an inappropriate continuation of preictal motor activity. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Automatism-motor-onset-seizure {deprecatedFrom=1.0.0, inLibrary=score}
+ **** Hyperkinetic-motor-seizure {inLibrary=score}
+ **** Hyperkinetic-motor-onset-seizure {deprecatedFrom=1.0.0, inLibrary=score}
+ **** Epileptic-spasm-episode {inLibrary=score} [A sudden flexion, extension, or mixed extension flexion of predominantly proximal and truncal muscles that is usually more sustained than a myoclonic movement but not as sustained as a tonic seizure. Limited forms may occur: Grimacing, head nodding, or subtle eye movements. Epileptic spasms frequently occur in clusters. Infantile spasms are the best known form, but spasms can occur at all ages. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ *** Nonmotor-seizure {inLibrary=score} [Focal or generalized seizure types in which motor activity is not prominent. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Behavior-arrest-nonmotor-seizure {inLibrary=score} [Arrest (pause) of activities, freezing, immobilization, as in behavior arrest seizure. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Sensory-nonmotor-seizure {inLibrary=score} [A perceptual experience not caused by appropriate stimuli in the external world. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Emotional-nonmotor-seizure {inLibrary=score} [Seizures presenting with an emotion or the appearance of having an emotion as an early prominent feature, such as fear, spontaneous joy or euphoria, laughing (gelastic), or crying (dacrystic). Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Cognitive-nonmotor-seizure {inLibrary=score} [Pertaining to thinking and higher cortical functions, such as language, spatial perception, memory, and praxis. The previous term for similar usage as a seizure type was psychic. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Autonomic-nonmotor-seizure {inLibrary=score} [A distinct alteration of autonomic nervous system function involving cardiovascular, pupillary, gastrointestinal, sudomotor, vasomotor, and thermoregulatory functions. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ *** Absence-seizure {inLibrary=score} [Absence seizures present with a sudden cessation of activity and awareness. Absence seizures tend to occur in younger age groups, have more sudden start and termination, and they usually display less complex automatisms than do focal seizures with impaired awareness, but the distinctions are not absolute. EEG information may be required for accurate classification. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Typical-absence-seizure {inLibrary=score} [A sudden onset, interruption of ongoing activities, a blank stare, possibly a brief upward deviation of the eyes. Usually the patient will be unresponsive when spoken to. Duration is a few seconds to half a minute with very rapid recovery. Although not always available, an EEG would show generalized epileptiform discharges during the event. An absence seizure is by definition a seizure of generalized onset. The word is not synonymous with a blank stare, which also can be encountered with focal onset seizures. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Atypical-absence-seizure {inLibrary=score} [An absence seizure with changes in tone that are more pronounced than in typical absence or the onset and/or cessation is not abrupt, often associated with slow, irregular, generalized spike-wave activity. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Myoclonic-absence-seizure {inLibrary=score} [A myoclonic absence seizure refers to an absence seizure with rhythmic three-per-second myoclonic movements, causing ratcheting abduction of the upper limbs leading to progressive arm elevation, and associated with three-per-second generalized spike-wave discharges. Duration is typically 10 to 60 s. Impairment of consciousness may not be obvious. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ **** Eyelid-myoclonia-absence-seizure {inLibrary=score} [Eyelid myoclonia are myoclonic jerks of the eyelids and upward deviation of the eyes, often precipitated by closing the eyes or by light. Eyelid myoclonia can be associated with absences, but also can be motor seizures without a corresponding absence, making them difficult to categorize. The 2017 classification groups them with nonmotor (absence) seizures, which may seem counterintuitive, but the myoclonia in this instance is meant to link with absence, rather than with nonmotor. Definition from ILAE 2017 Classification of Seizure Types Expanded Version]
+ ** Episode-phase {requireChild, suggestedTag=Seizure-semiology-manifestation, suggestedTag=Postictal-semiology-manifestation, suggestedTag=Ictal-EEG-patterns, inLibrary=score} [The electroclinical findings (i.e., the seizure semiology and the ictal EEG) are divided in three phases: onset, propagation, and postictal.]
+ *** Episode-phase-initial {inLibrary=score}
+ *** Episode-phase-subsequent {inLibrary=score}
+ *** Episode-phase-postictal {inLibrary=score}
+ ** Seizure-semiology-manifestation {requireChild, inLibrary=score} [Seizure semiology refers to the clinical features or signs that are observed during a seizure, such as the type of movements or behaviors exhibited by the person having the seizure, the duration of the seizure, the level of consciousness, and any associated symptoms such as aura or postictal confusion. In other words, seizure semiology describes the physical manifestations of a seizure. Semiology is described according to the ILAE Glossary of Descriptive Terminology for Ictal Semiology (Blume et al., 2001). Besides the name, the semiologic finding can also be characterized by the somatotopic modifier, laterality, body part and centricity. Uses Location-property tags.]
+ *** Semiology-motor-manifestation {inLibrary=score}
+ **** Semiology-elementary-motor {inLibrary=score}
+ ***** Semiology-motor-tonic {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count, inLibrary=score} [A sustained increase in muscle contraction lasting a few seconds to minutes.]
+ ***** Semiology-motor-dystonic {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count, inLibrary=score} [Sustained contractions of both agonist and antagonist muscles producing athetoid or twisting movements, which, when prolonged, may produce abnormal postures.]
+ ***** Semiology-motor-epileptic-spasm {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count, inLibrary=score} [A sudden flexion, extension, or mixed extension flexion of predominantly proximal and truncal muscles that is usually more sustained than a myoclonic movement but not so sustained as a tonic seizure (i.e., about 1 s). Limited forms may occur: grimacing, head nodding. Frequent occurrence in clusters.]
+ ***** Semiology-motor-postural {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count, inLibrary=score} [Adoption of a posture that may be bilaterally symmetric or asymmetric (as in a fencing posture).]
+ ***** Semiology-motor-versive {suggestedTag=Body-part-location, suggestedTag=Episode-event-count, inLibrary=score} [A sustained, forced conjugate ocular, cephalic, and/or truncal rotation or lateral deviation from the midline.]
+ ***** Semiology-motor-clonic {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count, inLibrary=score} [Myoclonus that is regularly repetitive, involves the same muscle groups, at a frequency of about 2 to 3 c/s, and is prolonged. Synonym: rhythmic myoclonus .]
+ ***** Semiology-motor-myoclonic {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count, inLibrary=score} [Characterized by myoclonus. MYOCLONUS : sudden, brief (lower than 100 ms) involuntary single or multiple contraction(s) of muscles(s) or muscle groups of variable topography (axial, proximal limb, distal).]
+ ***** Semiology-motor-jacksonian-march {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count, inLibrary=score} [Term indicating spread of clonic movements through contiguous body parts unilaterally.]
+ ***** Semiology-motor-negative-myoclonus {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count, inLibrary=score} [Characterized by negative myoclonus. NEGATIVE MYOCLONUS: interruption of tonic muscular activity for lower than 500 ms without evidence of preceding myoclonia.]
+ ***** Semiology-motor-tonic-clonic {requireChild, inLibrary=score} [A sequence consisting of a tonic followed by a clonic phase. Variants such as clonic-tonic-clonic may be seen. Asymmetry of limb posture during the tonic phase of a GTC: one arm is rigidly extended at the elbow (often with the fist clenched tightly and flexed at the wrist), whereas the opposite arm is flexed at the elbow.]
+ ****** Semiology-motor-tonic-clonic-without-figure-of-four {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count, inLibrary=score}
+ ****** Semiology-motor-tonic-clonic-with-figure-of-four-extension-left-elbow {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count, inLibrary=score}
+ ****** Semiology-motor-tonic-clonic-with-figure-of-four-extension-right-elbow {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count, inLibrary=score}
+ ***** Semiology-motor-astatic {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count, inLibrary=score} [Loss of erect posture that results from an atonic, myoclonic, or tonic mechanism. Synonym: drop attack.]
+ ***** Semiology-motor-atonic {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count, inLibrary=score} [Sudden loss or diminution of muscle tone without apparent preceding myoclonic or tonic event lasting greater or equal to 1 to 2 s, involving head, trunk, jaw, or limb musculature.]
+ ***** Semiology-motor-eye-blinking {suggestedTag=Brain-laterality, suggestedTag=Episode-event-count, inLibrary=score}
+ ***** Semiology-motor-other-elementary-motor {requireChild, inLibrary=score}
+ ****** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ **** Semiology-motor-automatisms {inLibrary=score}
+ ***** Semiology-motor-automatisms-mimetic {suggestedTag=Episode-responsiveness, suggestedTag=Episode-appearance, suggestedTag=Episode-event-count, inLibrary=score} [Facial expression suggesting an emotional state, often fear.]
+ ***** Semiology-motor-automatisms-oroalimentary {suggestedTag=Episode-responsiveness, suggestedTag=Episode-appearance, suggestedTag=Episode-event-count, inLibrary=score} [Lip smacking, lip pursing, chewing, licking, tooth grinding, or swallowing.]
+ ***** Semiology-motor-automatisms-dacrystic {suggestedTag=Episode-responsiveness, suggestedTag=Episode-appearance, suggestedTag=Episode-event-count, inLibrary=score} [Bursts of crying.]
+ ***** Semiology-motor-automatisms-dyspraxic {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-responsiveness, suggestedTag=Episode-appearance, suggestedTag=Episode-event-count, inLibrary=score} [Inability to perform learned movements spontaneously or on command or imitation despite intact relevant motor and sensory systems and adequate comprehension and cooperation.]
+ ***** Semiology-motor-automatisms-manual {suggestedTag=Brain-laterality, suggestedTag=Brain-centricity, suggestedTag=Episode-responsiveness, suggestedTag=Episode-appearance, suggestedTag=Episode-event-count, inLibrary=score} [1. Indicates principally distal components, bilateral or unilateral. 2. Fumbling, tapping, manipulating movements.]
+ ***** Semiology-motor-automatisms-gestural {suggestedTag=Brain-laterality, suggestedTag=Episode-responsiveness, suggestedTag=Episode-appearance, suggestedTag=Episode-event-count, inLibrary=score} [Semipurposive, asynchronous hand movements. Often unilateral.]
+ ***** Semiology-motor-automatisms-pedal {suggestedTag=Brain-laterality, suggestedTag=Brain-centricity, suggestedTag=Episode-responsiveness, suggestedTag=Episode-appearance, suggestedTag=Episode-event-count, inLibrary=score} [1. Indicates principally distal components, bilateral or unilateral. 2. Fumbling, tapping, manipulating movements.]
+ ***** Semiology-motor-automatisms-hypermotor {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-responsiveness, suggestedTag=Episode-appearance, suggestedTag=Episode-event-count, inLibrary=score} [1. Involves predominantly proximal limb or axial muscles producing irregular sequential ballistic movements, such as pedaling, pelvic thrusting, thrashing, rocking movements. 2. Increase in rate of ongoing movements or inappropriately rapid performance of a movement.]
+ ***** Semiology-motor-automatisms-hypokinetic {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-responsiveness, suggestedTag=Episode-appearance, suggestedTag=Episode-event-count, inLibrary=score} [A decrease in amplitude and/or rate or arrest of ongoing motor activity.]
+ ***** Semiology-motor-automatisms-gelastic {suggestedTag=Episode-responsiveness, suggestedTag=Episode-appearance, suggestedTag=Episode-event-count, inLibrary=score} [Bursts of laughter or giggling, usually without an appropriate affective tone.]
+ ***** Semiology-motor-other-automatisms {requireChild, inLibrary=score}
+ ****** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ **** Semiology-motor-behavioral-arrest {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count, inLibrary=score} [Interruption of ongoing motor activity or of ongoing behaviors with fixed gaze, without movement of the head or trunk (oro-alimentary and hand automatisms may continue).]
+ *** Semiology-non-motor-manifestation {inLibrary=score}
+ **** Semiology-sensory {inLibrary=score}
+ ***** Semiology-sensory-headache {suggestedTag=Brain-laterality, suggestedTag=Episode-event-count, inLibrary=score} [Headache occurring in close temporal proximity to the seizure or as the sole seizure manifestation.]
+ ***** Semiology-sensory-visual {suggestedTag=Brain-laterality, suggestedTag=Episode-event-count, inLibrary=score} [Flashing or flickering lights, spots, simple patterns, scotomata, or amaurosis.]
+ ***** Semiology-sensory-auditory {suggestedTag=Brain-laterality, suggestedTag=Episode-event-count, inLibrary=score} [Buzzing, drumming sounds or single tones.]
+ ***** Semiology-sensory-olfactory {suggestedTag=Body-part-location, suggestedTag=Episode-event-count, inLibrary=score}
+ ***** Semiology-sensory-gustatory {suggestedTag=Episode-event-count, inLibrary=score} [Taste sensations including acidic, bitter, salty, sweet, or metallic.]
+ ***** Semiology-sensory-epigastric {suggestedTag=Episode-event-count, inLibrary=score} [Abdominal discomfort including nausea, emptiness, tightness, churning, butterflies, malaise, pain, and hunger; sensation may rise to chest or throat. Some phenomena may reflect ictal autonomic dysfunction.]
+ ***** Semiology-sensory-somatosensory {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count, inLibrary=score} [Tingling, numbness, electric-shock sensation, sense of movement or desire to move.]
+ ***** Semiology-sensory-painful {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count, inLibrary=score} [Peripheral (lateralized/bilateral), cephalic, abdominal.]
+ ***** Semiology-sensory-autonomic-sensation {suggestedTag=Episode-event-count, inLibrary=score} [A sensation consistent with involvement of the autonomic nervous system, including cardiovascular, gastrointestinal, sudomotor, vasomotor, and thermoregulatory functions. (Thus autonomic aura; cf. autonomic events 3.0).]
+ ***** Semiology-sensory-other {requireChild, inLibrary=score}
+ ****** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ **** Semiology-experiential {inLibrary=score}
+ ***** Semiology-experiential-affective-emotional {suggestedTag=Episode-event-count, inLibrary=score} [Components include fear, depression, joy, and (rarely) anger.]
+ ***** Semiology-experiential-hallucinatory {suggestedTag=Episode-event-count, inLibrary=score} [Composite perceptions without corresponding external stimuli involving visual, auditory, somatosensory, olfactory, and/or gustatory phenomena. Example: hearing and seeing people talking.]
+ ***** Semiology-experiential-illusory {suggestedTag=Episode-event-count, inLibrary=score} [An alteration of actual percepts involving the visual, auditory, somatosensory, olfactory, or gustatory systems.]
+ ***** Semiology-experiential-mnemonic {inLibrary=score} [Components that reflect ictal dysmnesia such as feelings of familiarity (deja-vu) and unfamiliarity (jamais-vu).]
+ ****** Semiology-experiential-mnemonic-Deja-vu {suggestedTag=Episode-event-count, inLibrary=score}
+ ****** Semiology-experiential-mnemonic-Jamais-vu {suggestedTag=Episode-event-count, inLibrary=score}
+ ***** Semiology-experiential-other {requireChild, inLibrary=score}
+ ****** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ **** Semiology-dyscognitive {suggestedTag=Episode-event-count, inLibrary=score} [The term describes events in which (1) disturbance of cognition is the predominant or most apparent feature, and (2a) two or more of the following components are involved, or (2b) involvement of such components remains undetermined. Otherwise, use the more specific term (e.g., mnemonic experiential seizure or hallucinatory experiential seizure). Components of cognition: ++ perception: symbolic conception of sensory information ++ attention: appropriate selection of a principal perception or task ++ emotion: appropriate affective significance of a perception ++ memory: ability to store and retrieve percepts or concepts ++ executive function: anticipation, selection, monitoring of consequences, and initiation of motor activity including praxis, speech.]
+ **** Semiology-language-related {inLibrary=score}
+ ***** Semiology-language-related-vocalization {suggestedTag=Episode-event-count, inLibrary=score}
+ ***** Semiology-language-related-verbalization {suggestedTag=Episode-event-count, inLibrary=score}
+ ***** Semiology-language-related-dysphasia {suggestedTag=Episode-event-count, inLibrary=score}
+ ***** Semiology-language-related-aphasia {suggestedTag=Episode-event-count, inLibrary=score}
+ ***** Semiology-language-related-other {requireChild, inLibrary=score}
+ ****** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ **** Semiology-autonomic {inLibrary=score}
+ ***** Semiology-autonomic-pupillary {suggestedTag=Brain-laterality, suggestedTag=Episode-event-count, inLibrary=score} [Mydriasis, miosis (either bilateral or unilateral).]
+ ***** Semiology-autonomic-hypersalivation {suggestedTag=Episode-event-count, inLibrary=score} [Increase in production of saliva leading to uncontrollable drooling]
+ ***** Semiology-autonomic-respiratory-apnoeic {suggestedTag=Episode-event-count, inLibrary=score} [subjective shortness of breath, hyperventilation, stridor, coughing, choking, apnea, oxygen desaturation, neurogenic pulmonary edema.]
+ ***** Semiology-autonomic-cardiovascular {suggestedTag=Episode-event-count, inLibrary=score} [Modifications of heart rate (tachycardia, bradycardia), cardiac arrhythmias (such as sinus arrhythmia, sinus arrest, supraventricular tachycardia, atrial premature depolarizations, ventricular premature depolarizations, atrio-ventricular block, bundle branch block, atrioventricular nodal escape rhythm, asystole).]
+ ***** Semiology-autonomic-gastrointestinal {suggestedTag=Episode-event-count, inLibrary=score} [Nausea, eructation, vomiting, retching, abdominal sensations, abdominal pain, flatulence, spitting, diarrhea.]
+ ***** Semiology-autonomic-urinary-incontinence {suggestedTag=Episode-event-count, inLibrary=score} [urinary urge (intense urinary urge at the beginning of seizures), urinary incontinence, ictal urination (rare symptom of partial seizures without loss of consciousness).]
+ ***** Semiology-autonomic-genital {suggestedTag=Episode-event-count, inLibrary=score} [Sexual auras (erotic thoughts and feelings, sexual arousal and orgasm). Genital auras (unpleasant, sometimes painful, frightening or emotionally neutral somatosensory sensations in the genitals that can be accompanied by ictal orgasm). Sexual automatisms (hypermotor movements consisting of writhing, thrusting, rhythmic movements of the pelvis, arms and legs, sometimes associated with picking and rhythmic manipulation of the groin or genitalia, exhibitionism and masturbation).]
+ ***** Semiology-autonomic-vasomotor {suggestedTag=Episode-event-count, inLibrary=score} [Flushing or pallor (may be accompanied by feelings of warmth, cold and pain).]
+ ***** Semiology-autonomic-sudomotor {suggestedTag=Brain-laterality, suggestedTag=Episode-event-count, inLibrary=score} [Sweating and piloerection (may be accompanied by feelings of warmth, cold and pain).]
+ ***** Semiology-autonomic-thermoregulatory {suggestedTag=Episode-event-count, inLibrary=score} [Hyperthermia, fever.]
+ ***** Semiology-autonomic-other {requireChild, inLibrary=score}
+ ****** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ *** Semiology-manifestation-other {requireChild, inLibrary=score}
+ **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ ** Postictal-semiology-manifestation {requireChild, inLibrary=score}
+ *** Postictal-semiology-unconscious {suggestedTag=Episode-event-count, inLibrary=score}
+ *** Postictal-semiology-quick-recovery-of-consciousness {suggestedTag=Episode-event-count, inLibrary=score} [Quick recovery of awareness and responsiveness.]
+ *** Postictal-semiology-aphasia-or-dysphasia {suggestedTag=Episode-event-count, inLibrary=score} [Impaired communication involving language without dysfunction of relevant primary motor or sensory pathways, manifested as impaired comprehension, anomia, parahasic errors or a combination of these.]
+ *** Postictal-semiology-behavioral-change {suggestedTag=Episode-event-count, inLibrary=score} [Occurring immediately after a aseizure. Including psychosis, hypomanina, obsessive-compulsive behavior.]
+ *** Postictal-semiology-hemianopia {suggestedTag=Brain-laterality, suggestedTag=Episode-event-count, inLibrary=score} [Postictal visual loss in a a hemi field.]
+ *** Postictal-semiology-impaired-cognition {suggestedTag=Episode-event-count, inLibrary=score} [Decreased Cognitive performance involving one or more of perception, attention, emotion, memory, execution, praxis, speech.]
+ *** Postictal-semiology-dysphoria {suggestedTag=Episode-event-count, inLibrary=score} [Depression, irritability, euphoric mood, fear, anxiety.]
+ *** Postictal-semiology-headache {suggestedTag=Episode-event-count, inLibrary=score} [Headache with features of tension-type or migraine headache that develops within 3 h following the seizure and resolves within 72 h after seizure.]
+ *** Postictal-semiology-nose-wiping {suggestedTag=Brain-laterality, suggestedTag=Episode-event-count, inLibrary=score} [Noes-wiping usually within 60 sec of seizure offset, usually with the hand ipsilateral to the seizure onset.]
+ *** Postictal-semiology-anterograde-amnesia {suggestedTag=Episode-event-count, inLibrary=score} [Impaired ability to remember new material.]
+ *** Postictal-semiology-retrograde-amnesia {suggestedTag=Episode-event-count, inLibrary=score} [Impaired ability to recall previously remember material.]
+ *** Postictal-semiology-paresis {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count, inLibrary=score} [Todds palsy. Any unilateral postictal dysfunction relating to motor, language, sensory and/or integrative functions.]
+ *** Postictal-semiology-sleep {inLibrary=score} [Invincible need to sleep after a seizure.]
+ *** Postictal-semiology-unilateral-myoclonic-jerks {inLibrary=score} [unilateral motor phenomena, other then specified, occurring in postictal phase.]
+ *** Postictal-semiology-other-unilateral-motor-phenomena {requireChild, inLibrary=score}
+ **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ ** Polygraphic-channel-relation-to-episode {requireChild, suggestedTag=Property-not-possible-to-determine, inLibrary=score}
+ *** Polygraphic-channel-cause-to-episode {inLibrary=score}
+ *** Polygraphic-channel-consequence-of-episode {inLibrary=score}
+ ** Ictal-EEG-patterns {inLibrary=score}
+ *** Ictal-EEG-patterns-obscured-by-artifacts {inLibrary=score} [The interpretation of the EEG is not possible due to artifacts.]
+ **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ *** Ictal-EEG-activity {suggestedTag=Polyspikes-morphology, suggestedTag=Fast-spike-activity-morphology, suggestedTag=Low-voltage-fast-activity-morphology, suggestedTag=Polysharp-waves-morphology, suggestedTag=Spike-and-slow-wave-morphology, suggestedTag=Polyspike-and-slow-wave-morphology, suggestedTag=Sharp-and-slow-wave-morphology, suggestedTag=Rhythmic-activity-morphology, suggestedTag=Slow-wave-large-amplitude-morphology, suggestedTag=Irregular-delta-or-theta-activity-morphology, suggestedTag=Electrodecremental-change-morphology, suggestedTag=DC-shift-morphology, suggestedTag=Disappearance-of-ongoing-activity-morphology, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Source-analysis-laterality, suggestedTag=Source-analysis-brain-region, suggestedTag=Episode-event-count, inLibrary=score}
+ *** Postictal-EEG-activity {suggestedTag=Brain-laterality, suggestedTag=Body-part-location, suggestedTag=Brain-centricity, inLibrary=score}
+ ** Episode-time-context-property {inLibrary=score} [Additional clinically relevant features related to episodes can be scored under timing and context. If needed, episode duration can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Temporal-value/Duration.]
+ *** Episode-consciousness {requireChild, suggestedTag=Property-not-possible-to-determine, inLibrary=score}
+ **** Episode-consciousness-not-tested {inLibrary=score}
+ ***** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ **** Episode-consciousness-affected {inLibrary=score}
+ ***** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ **** Episode-consciousness-mildly-affected {inLibrary=score}
+ ***** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ **** Episode-consciousness-not-affected {inLibrary=score}
+ ***** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ *** Episode-awareness {suggestedTag=Property-not-possible-to-determine, suggestedTag=Property-exists, suggestedTag=Property-absence, inLibrary=score}
+ **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ *** Clinical-EEG-temporal-relationship {suggestedTag=Property-not-possible-to-determine, inLibrary=score}
+ **** Clinical-start-followed-EEG {inLibrary=score} [Clinical start, followed by EEG start by X seconds.]
+ ***** # {takesValue, valueClass=numericClass, unitClass=timeUnits, inLibrary=score}
+ **** EEG-start-followed-clinical {inLibrary=score} [EEG start, followed by clinical start by X seconds.]
+ ***** # {takesValue, valueClass=numericClass, unitClass=timeUnits, inLibrary=score}
+ **** Simultaneous-start-clinical-EEG {inLibrary=score}
+ **** Clinical-EEG-temporal-relationship-notes {inLibrary=score} [Clinical notes to annotate the clinical-EEG temporal relationship.]
+ ***** # {takesValue, valueClass=textClass, inLibrary=score}
+ *** Episode-event-count {suggestedTag=Property-not-possible-to-determine, inLibrary=score} [Number of stereotypical episodes during the recording.]
+ **** # {takesValue, valueClass=numericClass, inLibrary=score}
+ *** State-episode-start {requireChild, suggestedTag=Property-not-possible-to-determine, inLibrary=score} [State at the start of the episode.]
+ **** Episode-start-from-sleep {inLibrary=score}
+ ***** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ **** Episode-start-from-awake {inLibrary=score}
+ ***** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ *** Episode-postictal-phase {suggestedTag=Property-not-possible-to-determine, inLibrary=score}
+ **** # {takesValue, valueClass=numericClass, unitClass=timeUnits, inLibrary=score}
+ *** Episode-prodrome {suggestedTag=Property-exists, suggestedTag=Property-absence, inLibrary=score} [Prodrome is a preictal phenomenon, and it is defined as a subjective or objective clinical alteration (e.g., ill-localized sensation or agitation) that heralds the onset of an epileptic seizure but does not form part of it (Blume et al., 2001). Therefore, prodrome should be distinguished from aura (which is an ictal phenomenon).]
+ **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ *** Episode-tongue-biting {suggestedTag=Property-exists, suggestedTag=Property-absence, inLibrary=score}
+ **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ *** Episode-responsiveness {requireChild, suggestedTag=Property-not-possible-to-determine, inLibrary=score}
+ **** Episode-responsiveness-preserved {inLibrary=score}
+ ***** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ **** Episode-responsiveness-affected {inLibrary=score}
+ ***** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ *** Episode-appearance {requireChild, inLibrary=score}
+ **** Episode-appearance-interactive {inLibrary=score}
+ ***** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ **** Episode-appearance-spontaneous {inLibrary=score}
+ ***** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ *** Seizure-dynamics {requireChild, inLibrary=score} [Spatiotemporal dynamics can be scored (evolution in morphology; evolution in frequency; evolution in location).]
+ **** Seizure-dynamics-evolution-morphology {inLibrary=score}
+ ***** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ **** Seizure-dynamics-evolution-frequency {inLibrary=score}
+ ***** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ **** Seizure-dynamics-evolution-location {inLibrary=score}
+ ***** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ **** Seizure-dynamics-not-possible-to-determine {inLibrary=score} [Not possible to determine.]
+ ***** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ * Other-finding-property {requireChild, inLibrary=score}
+ ** Artifact-significance-to-recording {requireChild, inLibrary=score} [It is important to score the significance of the described artifacts: recording is not interpretable, recording of reduced diagnostic value, does not interfere with the interpretation of the recording.]
+ *** Recording-not-interpretable-due-to-artifact {inLibrary=score}
+ **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ *** Recording-of-reduced-diagnostic-value-due-to-artifact {inLibrary=score}
+ **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ *** Artifact-does-not-interfere-recording {inLibrary=score}
+ **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ ** Finding-significance-to-recording {requireChild, inLibrary=score} [Significance of finding. When normal/abnormal could be labeled with base schema Normal/Abnormal tags.]
+ *** Finding-no-definite-abnormality {inLibrary=score}
+ **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ *** Finding-significance-not-possible-to-determine {inLibrary=score} [Not possible to determine.]
**** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- ** Posterior-dominant-rhythm-frequency-asymmetry {requireChild, inLibrary=score} [When symmetrical could be labeled with base schema Symmetrical tag.]
- *** Posterior-dominant-rhythm-frequency-asymmetry-lower-left {inLibrary=score} [Hz lower on the left side.]
+ ** Finding-frequency {inLibrary=score} [Value in Hz (number) typed in.]
+ *** # {takesValue, valueClass=numericClass, unitClass=frequencyUnits, inLibrary=score}
+ ** Finding-amplitude {inLibrary=score} [Value in microvolts (number) typed in.]
+ *** # {takesValue, valueClass=numericClass, unitClass=electricPotentialUnits, inLibrary=score}
+ ** Finding-amplitude-asymmetry {requireChild, inLibrary=score} [For posterior dominant rhythm: a difference in amplitude between the homologous area on opposite sides of the head that consistently exceeds 50 percent. When symmetrical could be labeled with base schema Symmetrical tag. For sleep: Absence or consistently marked amplitude asymmetry (greater than 50 percent) of a normal sleep graphoelement.]
+ *** Finding-amplitude-asymmetry-lower-left {inLibrary=score} [Amplitude lower on the left side.]
**** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** Posterior-dominant-rhythm-frequency-asymmetry-lower-right {inLibrary=score} [Hz lower on the right side.]
+ *** Finding-amplitude-asymmetry-lower-right {inLibrary=score} [Amplitude lower on the right side.]
**** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- ** Posterior-dominant-rhythm-eye-opening-reactivity {suggestedTag=Property-not-possible-to-determine, inLibrary=score} [Change (disappearance or measurable decrease in amplitude) of a posterior dominant rhythm following eye-opening. Eye closure has the opposite effect.]
- *** Posterior-dominant-rhythm-eye-opening-reactivity-reduced-left {inLibrary=score} [Reduced left side reactivity.]
+ *** Finding-amplitude-asymmetry-not-possible-to-determine {inLibrary=score} [Not possible to determine.]
**** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** Posterior-dominant-rhythm-eye-opening-reactivity-reduced-right {inLibrary=score} [Reduced right side reactivity.]
- **** # {takesValue, valueClass=textClass, inLibrary=score} [free text]
- *** Posterior-dominant-rhythm-eye-opening-reactivity-reduced-both {inLibrary=score} [Reduced reactivity on both sides.]
+ ** Finding-stopped-by {inLibrary=score}
+ *** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ ** Finding-triggered-by {inLibrary=score}
+ *** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ ** Finding-unmodified {inLibrary=score}
+ *** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ ** Property-not-possible-to-determine {inLibrary=score} [Not possible to determine.]
+ *** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ ** Property-exists {inLibrary=score}
+ *** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ ** Property-absence {inLibrary=score}
+ *** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+
+'''Interictal-finding''' {requireChild, inLibrary=score} [EEG pattern / transient that is distinguished form the background activity, considered abnormal, but is not recorded during ictal period (seizure) or postictal period; the presence of an interictal finding does not necessarily imply that the patient has epilepsy.]
+ * Epileptiform-interictal-activity {suggestedTag=Spike-morphology, suggestedTag=Spike-and-slow-wave-morphology, suggestedTag=Runs-of-rapid-spikes-morphology, suggestedTag=Polyspikes-morphology, suggestedTag=Polyspike-and-slow-wave-morphology, suggestedTag=Sharp-wave-morphology, suggestedTag=Sharp-and-slow-wave-morphology, suggestedTag=Slow-sharp-wave-morphology, suggestedTag=High-frequency-oscillation-morphology, suggestedTag=Hypsarrhythmia-classic-morphology, suggestedTag=Hypsarrhythmia-modified-morphology, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-propagation, suggestedTag=Multifocal-finding, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, suggestedTag=Finding-incidence, inLibrary=score}
+ * Abnormal-interictal-rhythmic-activity {suggestedTag=Rhythmic-activity-morphology, suggestedTag=Polymorphic-delta-activity-morphology, suggestedTag=Frontal-intermittent-rhythmic-delta-activity-morphology, suggestedTag=Occipital-intermittent-rhythmic-delta-activity-morphology, suggestedTag=Temporal-intermittent-rhythmic-delta-activity-morphology, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, suggestedTag=Finding-incidence, inLibrary=score}
+ * Interictal-special-patterns {requireChild, inLibrary=score}
+ ** Interictal-periodic-discharges {suggestedTag=Periodic-discharge-morphology, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Periodic-discharge-time-related-features, inLibrary=score} [Periodic discharge not further specified (PDs).]
+ *** Generalized-periodic-discharges {inLibrary=score} [GPDs.]
+ *** Lateralized-periodic-discharges {inLibrary=score} [LPDs.]
+ *** Bilateral-independent-periodic-discharges {inLibrary=score} [BIPDs.]
+ *** Multifocal-periodic-discharges {inLibrary=score} [MfPDs.]
+ ** Extreme-delta-brush {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, inLibrary=score}
+
+'''Item''' {extensionAllowed} [An independently existing thing (living or nonliving).]
+ * Biological-item [An entity that is biological, that is related to living organisms.]
+ ** Anatomical-item [A biological structure, system, fluid or other substance excluding single molecular entities.]
+ *** Body [The biological structure representing an organism.]
+ *** Body-part [Any part of an organism.]
+ **** Head [The upper part of the human body, or the front or upper part of the body of an animal, typically separated from the rest of the body by a neck, and containing the brain, mouth, and sense organs.]
+ ***** Ear [A sense organ needed for the detection of sound and for establishing balance.]
+ ***** Face [The anterior portion of the head extending from the forehead to the chin and ear to ear. The facial structures contain the eyes, nose and mouth, cheeks and jaws.]
+ ****** Cheek [The fleshy part of the face bounded by the eyes, nose, ear, and jaw line.]
+ ****** Chin [The part of the face below the lower lip and including the protruding part of the lower jaw.]
+ ****** Eye [The organ of sight or vision.]
+ ****** Eyebrow [The arched strip of hair on the bony ridge above each eye socket.]
+ ****** Forehead [The part of the face between the eyebrows and the normal hairline.]
+ ****** Lip [Fleshy fold which surrounds the opening of the mouth.]
+ ****** Mouth [The proximal portion of the digestive tract, containing the oral cavity and bounded by the oral opening.]
+ ****** Nose [A structure of special sense serving as an organ of the sense of smell and as an entrance to the respiratory tract.]
+ ****** Teeth [The hard bonelike structures in the jaws. A collection of teeth arranged in some pattern in the mouth or other part of the body.]
+ ***** Hair [The filamentous outgrowth of the epidermis.]
+ **** Lower-extremity [Refers to the whole inferior limb (leg and/or foot).]
+ ***** Ankle [A gliding joint between the distal ends of the tibia and fibula and the proximal end of the talus.]
+ ***** Calf [The fleshy part at the back of the leg below the knee.]
+ ***** Foot [The structure found below the ankle joint required for locomotion.]
+ ****** Big-toe [The largest toe on the inner side of the foot.]
+ ****** Heel [The back of the foot below the ankle.]
+ ****** Instep [The part of the foot between the ball and the heel on the inner side.]
+ ****** Little-toe [The smallest toe located on the outer side of the foot.]
+ ****** Toes [The terminal digits of the foot.]
+ ***** Knee [A joint connecting the lower part of the femur with the upper part of the tibia.]
+ ***** Shin [Front part of the leg below the knee.]
+ ***** Thigh [Upper part of the leg between hip and knee.]
+ **** Torso [The body excluding the head and neck and limbs.]
+ ***** Buttocks [The round fleshy parts that form the lower rear area of a human trunk.]
+ ***** Gentalia {deprecatedFrom=8.1.0} [The external organs of reproduction.]
+ ***** Hip [The lateral prominence of the pelvis from the waist to the thigh.]
+ ***** Torso-back [The rear surface of the human body from the shoulders to the hips.]
+ ***** Torso-chest [The anterior side of the thorax from the neck to the abdomen.]
+ ***** Waist [The abdominal circumference at the navel.]
+ **** Upper-extremity [Refers to the whole superior limb (shoulder, arm, elbow, wrist, hand).]
+ ***** Elbow [A type of hinge joint located between the forearm and upper arm.]
+ ***** Forearm [Lower part of the arm between the elbow and wrist.]
+ ***** Hand [The distal portion of the upper extremity. It consists of the carpus, metacarpus, and digits.]
+ ****** Finger [Any of the digits of the hand.]
+ ******* Index-finger [The second finger from the radial side of the hand, next to the thumb.]
+ ******* Little-finger [The fifth and smallest finger from the radial side of the hand.]
+ ******* Middle-finger [The middle or third finger from the radial side of the hand.]
+ ******* Ring-finger [The fourth finger from the radial side of the hand.]
+ ******* Thumb [The thick and short hand digit which is next to the index finger in humans.]
+ ****** Knuckles [A part of a finger at a joint where the bone is near the surface, especially where the finger joins the hand.]
+ ****** Palm [The part of the inner surface of the hand that extends from the wrist to the bases of the fingers.]
+ ***** Shoulder [Joint attaching upper arm to trunk.]
+ ***** Upper-arm [Portion of arm between shoulder and elbow.]
+ ***** Wrist [A joint between the distal end of the radius and the proximal row of carpal bones.]
+ ** Organism [A living entity, more specifically a biological entity that consists of one or more cells and is capable of genomic replication (independently or not).]
+ *** Animal [A living organism that has membranous cell walls, requires oxygen and organic foods, and is capable of voluntary movement.]
+ *** Human [The bipedal primate mammal Homo sapiens.]
+ *** Plant [Any living organism that typically synthesizes its food from inorganic substances and possesses cellulose cell walls.]
+ * Language-item {suggestedTag=Sensory-presentation} [An entity related to a systematic means of communicating by the use of sounds, symbols, or gestures.]
+ ** Character [A mark or symbol used in writing.]
+ ** Clause [A unit of grammatical organization next below the sentence in rank, usually consisting of a subject and predicate.]
+ ** Glyph [A hieroglyphic character, symbol, or pictograph.]
+ ** Nonword [A group of letters or speech sounds that looks or sounds like a word but that is not accepted as such by native speakers.]
+ ** Paragraph [A distinct section of a piece of writing, usually dealing with a single theme.]
+ ** Phoneme [A speech sound that is distinguished by the speakers of a particular language.]
+ ** Phrase [A phrase is a group of words functioning as a single unit in the syntax of a sentence.]
+ ** Sentence [A set of words that is complete in itself, conveying a statement, question, exclamation, or command and typically containing an explicit or implied subject and a predicate containing a finite verb.]
+ ** Syllable [A unit of spoken language larger than a phoneme.]
+ ** Textblock [A block of text.]
+ ** Word [A word is the smallest free form (an item that may be expressed in isolation with semantic or pragmatic content) in a language.]
+ * Object {suggestedTag=Sensory-presentation} [Something perceptible by one or more of the senses, especially by vision or touch. A material thing.]
+ ** Geometric-object [An object or a representation that has structure and topology in space.]
+ *** 2D-shape [A planar, two-dimensional shape.]
+ **** Arrow [A shape with a pointed end indicating direction.]
+ **** Clockface [The dial face of a clock. A location identifier based on clockface numbering or anatomic subregion.]
+ **** Cross [A figure or mark formed by two intersecting lines crossing at their midpoints.]
+ **** Dash [A horizontal stroke in writing or printing to mark a pause or break in sense or to represent omitted letters or words.]
+ **** Ellipse [A closed plane curve resulting from the intersection of a circular cone and a plane cutting completely through it, especially a plane not parallel to the base.]
+ ***** Circle [A ring-shaped structure with every point equidistant from the center.]
+ **** Rectangle [A parallelogram with four right angles.]
+ ***** Square [A square is a special rectangle with four equal sides.]
+ **** Single-point [A point is a geometric entity that is located in a zero-dimensional spatial region and whose position is defined by its coordinates in some coordinate system.]
+ **** Star [A conventional or stylized representation of a star, typically one having five or more points.]
+ **** Triangle [A three-sided polygon.]
+ *** 3D-shape [A geometric three-dimensional shape.]
+ **** Box [A square or rectangular vessel, usually made of cardboard or plastic.]
+ ***** Cube [A solid or semi-solid in the shape of a three dimensional square.]
+ **** Cone [A shape whose base is a circle and whose sides taper up to a point.]
+ **** Cylinder [A surface formed by circles of a given radius that are contained in a plane perpendicular to a given axis, whose centers align on the axis.]
+ **** Ellipsoid [A closed plane curve resulting from the intersection of a circular cone and a plane cutting completely through it, especially a plane not parallel to the base.]
+ ***** Sphere [A solid or hollow three-dimensional object bounded by a closed surface such that every point on the surface is equidistant from the center.]
+ **** Pyramid [A polyhedron of which one face is a polygon of any number of sides, and the other faces are triangles with a common vertex.]
+ *** Pattern [An arrangement of objects, facts, behaviors, or other things which have scientific, mathematical, geometric, statistical, or other meaning.]
+ **** Dots [A small round mark or spot.]
+ **** LED-pattern [A pattern created by lighting selected members of a fixed light emitting diode array.]
+ ** Ingestible-object [Something that can be taken into the body by the mouth for digestion or absorption.]
+ ** Man-made-object [Something constructed by human means.]
+ *** Building [A structure that has a roof and walls and stands more or less permanently in one place.]
+ **** Attic [A room or a space immediately below the roof of a building.]
+ **** Basement [The part of a building that is wholly or partly below ground level.]
+ **** Entrance [The means or place of entry.]
+ **** Roof [A roof is the covering on the uppermost part of a building which provides protection from animals and weather, notably rain, but also heat, wind and sunlight.]
+ **** Room [An area within a building enclosed by walls and floor and ceiling.]
+ *** Clothing [A covering designed to be worn on the body.]
+ *** Device [An object contrived for a specific purpose.]
+ **** Assistive-device [A device that help an individual accomplish a task.]
+ ***** Glasses [Frames with lenses worn in front of the eye for vision correction, eye protection, or protection from UV rays.]
+ ***** Writing-device [A device used for writing.]
+ ****** Pen [A common writing instrument used to apply ink to a surface for writing or drawing.]
+ ****** Pencil [An implement for writing or drawing that is constructed of a narrow solid pigment core in a protective casing that prevents the core from being broken or marking the hand.]
+ **** Computing-device [An electronic device which take inputs and processes results from the inputs.]
+ ***** Cellphone [A telephone with access to a cellular radio system so it can be used over a wide area, without a physical connection to a network.]
+ ***** Desktop-computer [A computer suitable for use at an ordinary desk.]
+ ***** Laptop-computer [A computer that is portable and suitable for use while traveling.]
+ ***** Tablet-computer [A small portable computer that accepts input directly on to its screen rather than via a keyboard or mouse.]
+ **** Engine [A motor is a machine designed to convert one or more forms of energy into mechanical energy.]
+ **** IO-device [Hardware used by a human (or other system) to communicate with a computer.]
+ ***** Input-device [A piece of equipment used to provide data and control signals to an information processing system such as a computer or information appliance.]
+ ****** Computer-mouse [A hand-held pointing device that detects two-dimensional motion relative to a surface.]
+ ******* Mouse-button [An electric switch on a computer mouse which can be pressed or clicked to select or interact with an element of a graphical user interface.]
+ ******* Scroll-wheel [A scroll wheel or mouse wheel is a wheel used for scrolling made of hard plastic with a rubbery surface usually located between the left and right mouse buttons and is positioned perpendicular to the mouse surface.]
+ ****** Joystick [A control device that uses a movable handle to create two-axis input for a computer device.]
+ ****** Keyboard [A device consisting of mechanical keys that are pressed to create input to a computer.]
+ ******* Keyboard-key [A button on a keyboard usually representing letters, numbers, functions, or symbols.]
+ ******** # {takesValue} [Value of a keyboard key.]
+ ****** Keypad [A device consisting of keys, usually in a block arrangement, that provides limited input to a system.]
+ ******* Keypad-key [A key on a separate section of a computer keyboard that groups together numeric keys and those for mathematical or other special functions in an arrangement like that of a calculator.]
+ ******** # {takesValue} [Value of keypad key.]
+ ****** Microphone [A device designed to convert sound to an electrical signal.]
+ ****** Push-button [A switch designed to be operated by pressing a button.]
+ ***** Output-device [Any piece of computer hardware equipment which converts information into human understandable form.]
+ ****** Auditory-device [A device designed to produce sound.]
+ ******* Headphones [An instrument that consists of a pair of small loudspeakers, or less commonly a single speaker, held close to ears and connected to a signal source such as an audio amplifier, radio, CD player or portable media player.]
+ ******* Loudspeaker [A device designed to convert electrical signals to sounds that can be heard.]
+ ****** Display-device [An output device for presentation of information in visual or tactile form the latter used for example in tactile electronic displays for blind people.]
+ ******* Computer-screen [An electronic device designed as a display or a physical device designed to be a protective meshwork.]
+ ******** Screen-window [A part of a computer screen that contains a display different from the rest of the screen. A window is a graphical control element consisting of a visual area containing some of the graphical user interface of the program it belongs to and is framed by a window decoration.]
+ ******* Head-mounted-display [An instrument that functions as a display device, worn on the head or as part of a helmet, that has a small display optic in front of one (monocular HMD) or each eye (binocular HMD).]
+ ******* LED-display [A LED display is a flat panel display that uses an array of light-emitting diodes as pixels for a video display.]
+ ***** Recording-device [A device that copies information in a signal into a persistent information bearer.]
+ ****** EEG-recorder [A device for recording electric currents in the brain using electrodes applied to the scalp, to the surface of the brain, or placed within the substance of the brain.]
+ ****** File-storage [A device for recording digital information to a permanent media.]
+ ****** MEG-recorder [A device for measuring the magnetic fields produced by electrical activity in the brain, usually conducted externally.]
+ ****** Motion-capture [A device for recording the movement of objects or people.]
+ ****** Tape-recorder [A device for recording and reproduction usually using magnetic tape for storage that can be saved and played back.]
+ ***** Touchscreen [A control component that operates an electronic device by pressing the display on the screen.]
+ **** Machine [A human-made device that uses power to apply forces and control movement to perform an action.]
+ **** Measurement-device [A device in which a measure function inheres.]
+ ***** Clock [A device designed to indicate the time of day or to measure the time duration of an event or action.]
+ ****** Clock-face [A location identifier based on clockface numbering or anatomic subregion.]
+ **** Robot [A mechanical device that sometimes resembles a living animal and is capable of performing a variety of often complex human tasks on command or by being programmed in advance.]
+ **** Tool [A component that is not part of a device but is designed to support its assemby or operation.]
+ *** Document [A physical object, or electronic counterpart, that is characterized by containing writing which is meant to be human-readable.]
+ **** Book [A volume made up of pages fastened along one edge and enclosed between protective covers.]
+ **** Letter [A written message addressed to a person or organization.]
+ **** Note [A brief written record.]
+ **** Notebook [A book for notes or memoranda.]
+ **** Questionnaire [A document consisting of questions and possibly responses, depending on whether it has been filled out.]
+ *** Furnishing [Furniture, fittings, and other decorative accessories, such as curtains and carpets, for a house or room.]
+ *** Manufactured-material [Substances created or extracted from raw materials.]
+ **** Ceramic [A hard, brittle, heat-resistant and corrosion-resistant material made by shaping and then firing a nonmetallic mineral, such as clay, at a high temperature.]
+ **** Glass [A brittle transparent solid with irregular atomic structure.]
+ **** Paper [A thin sheet material produced by mechanically or chemically processing cellulose fibres derived from wood, rags, grasses or other vegetable sources in water.]
+ **** Plastic [Various high-molecular-weight thermoplastic or thermosetting polymers that are capable of being molded, extruded, drawn, or otherwise shaped and then hardened into a form.]
+ **** Steel [An alloy made up of iron with typically a few tenths of a percent of carbon to improve its strength and fracture resistance compared to iron.]
+ *** Media [Media are audo/visual/audiovisual modes of communicating information for mass consumption.]
+ **** Media-clip [A short segment of media.]
+ ***** Audio-clip [A short segment of audio.]
+ ***** Audiovisual-clip [A short media segment containing both audio and video.]
+ ***** Video-clip [A short segment of video.]
+ **** Visualization [An planned process that creates images, diagrams or animations from the input data.]
+ ***** Animation [A form of graphical illustration that changes with time to give a sense of motion or represent dynamic changes in the portrayal.]
+ ***** Art-installation [A large-scale, mixed-media constructions, often designed for a specific place or for a temporary period of time.]
+ ***** Braille [A display using a system of raised dots that can be read with the fingers by people who are blind.]
+ ***** Image [Any record of an imaging event whether physical or electronic.]
+ ****** Cartoon [A type of illustration, sometimes animated, typically in a non-realistic or semi-realistic style. The specific meaning has evolved over time, but the modern usage usually refers to either an image or series of images intended for satire, caricature, or humor. A motion picture that relies on a sequence of illustrations for its animation.]
+ ****** Drawing [A representation of an object or outlining a figure, plan, or sketch by means of lines.]
+ ****** Icon [A sign (such as a word or graphic symbol) whose form suggests its meaning.]
+ ****** Painting [A work produced through the art of painting.]
+ ****** Photograph [An image recorded by a camera.]
+ ***** Movie [A sequence of images displayed in succession giving the illusion of continuous movement.]
+ ***** Outline-visualization [A visualization consisting of a line or set of lines enclosing or indicating the shape of an object in a sketch or diagram.]
+ ***** Point-light-visualization [A display in which action is depicted using a few points of light, often generated from discrete sensors in motion capture.]
+ ***** Sculpture [A two- or three-dimensional representative or abstract forms, especially by carving stone or wood or by casting metal or plaster.]
+ ***** Stick-figure-visualization [A drawing showing the head of a human being or animal as a circle and all other parts as straight lines.]
+ *** Navigational-object [An object whose purpose is to assist directed movement from one location to another.]
+ **** Path [A trodden way. A way or track laid down for walking or made by continual treading.]
+ **** Road [An open way for the passage of vehicles, persons, or animals on land.]
+ ***** Lane [A defined path with physical dimensions through which an object or substance may traverse.]
+ **** Runway [A paved strip of ground on a landing field for the landing and takeoff of aircraft.]
+ *** Vehicle [A mobile machine which transports people or cargo.]
+ **** Aircraft [A vehicle which is able to travel through air in an atmosphere.]
+ **** Bicycle [A human-powered, pedal-driven, single-track vehicle, having two wheels attached to a frame, one behind the other.]
+ **** Boat [A watercraft of any size which is able to float or plane on water.]
+ **** Car [A wheeled motor vehicle used primarily for the transportation of human passengers.]
+ **** Cart [A cart is a vehicle which has two wheels and is designed to transport human passengers or cargo.]
+ **** Tractor [A mobile machine specifically designed to deliver a high tractive effort at slow speeds, and mainly used for the purposes of hauling a trailer or machinery used in agriculture or construction.]
+ **** Train [A connected line of railroad cars with or without a locomotive.]
+ **** Truck [A motor vehicle which, as its primary funcion, transports cargo rather than human passangers.]
+ ** Natural-object [Something that exists in or is produced by nature, and is not artificial or man-made.]
+ *** Mineral [A solid, homogeneous, inorganic substance occurring in nature and having a definite chemical composition.]
+ *** Natural-feature [A feature that occurs in nature. A prominent or identifiable aspect, region, or site of interest.]
+ **** Field [An unbroken expanse as of ice or grassland.]
+ **** Hill [A rounded elevation of limited extent rising above the surrounding land with local relief of less than 300m.]
+ **** Mountain [A landform that extends above the surrounding terrain in a limited area.]
+ **** River [A natural freshwater surface stream of considerable volume and a permanent or seasonal flow, moving in a definite channel toward a sea, lake, or another river.]
+ **** Waterfall [A sudden descent of water over a step or ledge in the bed of a river.]
+ * Sound [Mechanical vibrations transmitted by an elastic medium. Something that can be heard.]
+ ** Environmental-sound [Sounds occuring in the environment. An accumulation of noise pollution that occurs outside. This noise can be caused by transport, industrial, and recreational activities.]
+ *** Crowd-sound [Noise produced by a mixture of sounds from a large group of people.]
+ *** Signal-noise [Any part of a signal that is not the true or original signal but is introduced by the communication mechanism.]
+ ** Musical-sound [Sound produced by continuous and regular vibrations, as opposed to noise.]
+ *** Instrument-sound [Sound produced by a musical instrument.]
+ *** Tone [A musical note, warble, or other sound used as a particular signal on a telephone or answering machine.]
+ *** Vocalized-sound [Musical sound produced by vocal cords in a biological agent.]
+ ** Named-animal-sound [A sound recognizable as being associated with particular animals.]
+ *** Barking [Sharp explosive cries like sounds made by certain animals, especially a dog, fox, or seal.]
+ *** Bleating [Wavering cries like sounds made by a sheep, goat, or calf.]
+ *** Chirping [Short, sharp, high-pitched noises like sounds made by small birds or an insects.]
+ *** Crowing [Loud shrill sounds characteristic of roosters.]
+ *** Growling [Low guttural sounds like those that made in the throat by a hostile dog or other animal.]
+ *** Meowing [Vocalizations like those made by as those cats. These sounds have diverse tones and are sometimes chattered, murmured or whispered. The purpose can be assertive.]
+ *** Mooing [Deep vocal sounds like those made by a cow.]
+ *** Purring [Low continuous vibratory sound such as those made by cats. The sound expresses contentment.]
+ *** Roaring [Loud, deep, or harsh prolonged sounds such as those made by big cats and bears for long-distance communication and intimidation.]
+ *** Squawking [Loud, harsh noises such as those made by geese.]
+ ** Named-object-sound [A sound identifiable as coming from a particular type of object.]
+ *** Alarm-sound [A loud signal often loud continuous ringing to alert people to a problem or condition that requires urgent attention.]
+ *** Beep [A short, single tone, that is typically high-pitched and generally made by a computer or other machine.]
+ *** Buzz [A persistent vibratory sound often made by a buzzer device and used to indicate something incorrect.]
+ *** Click [The sound made by a mechanical cash register, often to designate a reward.]
+ *** Ding [A short ringing sound such as that made by a bell, often to indicate a correct response or the expiration of time.]
+ *** Horn-blow [A loud sound made by forcing air through a sound device that funnels air to create the sound, often used to sound an alert.]
+ *** Ka-ching [The sound made by a mechanical cash register, often to designate a reward.]
+ *** Siren [A loud, continuous sound often varying in frequency designed to indicate an emergency.]
+
+'''Physiologic-pattern''' {requireChild, inLibrary=score} [EEG graphoelements or rhythms that are considered normal. They only should be scored if the physician considers that they have a specific clinical significance for the recording.]
+ * Rhythmic-activity-pattern {suggestedTag=Rhythmic-activity-morphology, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, inLibrary=score} [Not further specified.]
+ * Slow-alpha-variant-rhythm {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, inLibrary=score} [Characteristic rhythms mostly at 4-5 Hz, recorded most prominently over the posterior regions of the head. Generally alternate, or are intermixed, with alpha rhythm to which they often are harmonically related. Amplitude varies but is frequently close to 50 micro V. Blocked or attenuated by attention, especially visual, and mental effort. Comment: slow alpha variant rhythms should be distinguished from posterior slow waves characteristic of children and adolescents and occasionally seen in young adults.]
+ * Fast-alpha-variant-rhythm {suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, inLibrary=score} [Characteristic rhythm at 14-20 Hz, detected most prominently over the posterior regions of the head. May alternate or be intermixed with alpha rhythm. Blocked or attenuated by attention, especially visual, and mental effort.]
+ * Ciganek-rhythm {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, inLibrary=score} [Midline theta rhythm (Ciganek rhythm) may be observed during wakefulness or drowsiness. The frequency is 4-7 Hz, and the location is midline (ie, vertex). The morphology is rhythmic, smooth, sinusoidal, arciform, spiky, or mu-like.]
+ * Lambda-wave {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, inLibrary=score} [Diphasic sharp transient occurring over occipital regions of the head of waking subjects during visual exploration. The main component is positive relative to other areas. Time-locked to saccadic eye movement. Amplitude varies but is generally below 50 micro V.]
+ * Posterior-slow-waves-youth {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, inLibrary=score} [Waves in the delta and theta range, of variable form, lasting 0.35 to 0.5 s or longer without any consistent periodicity, found in the range of 6-12 years (occasionally seen in young adults). Alpha waves are almost always intermingled or superimposed. Reactive similar to alpha activity.]
+ * Diffuse-slowing-hyperventilation {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, inLibrary=score} [Diffuse slowing induced by hyperventilation. Bilateral, diffuse slowing during hyperventilation. Recorded in 70 percent of normal children (3-5 years) and less then 10 percent of adults. Usually appear in the posterior regions and spread forward in younger age group, whereas they tend to appear in the frontal regions and spread backward in the older age group.]
+ * Photic-driving {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, inLibrary=score} [Physiologic response consisting of rhythmic activity elicited over the posterior regions of the head by repetitive photic stimulation at frequencies of about 5-30 Hz. Comments: term should be limited to activity time-locked to the stimulus and of frequency identical or harmonically related to the stimulus frequency. Photic driving should be distinguished from the visual evoked potentials elicited by isolated flashes of light or flashes repeated at very low frequency.]
+ * Photomyogenic-response {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, inLibrary=score} [A response to intermittent photic stimulation characterized by the appearance in the record of brief, repetitive muscular artifacts (spikes) over the anterior regions of the head. These often increase gradually in amplitude as stimuli are continued and cease promptly when the stimulus is withdrawn. Comment: this response is frequently associated with flutter of the eyelids and vertical oscillations of the eyeballs and sometimes with discrete jerking mostly involving the musculature of the face and head. (Preferred to synonym: photo-myoclonic response).]
+ * Other-physiologic-pattern {requireChild, inLibrary=score}
+ ** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+
+'''Polygraphic-channel-finding''' {requireChild, inLibrary=score} [Changes observed in polygraphic channels can be scored: EOG, Respiration, ECG, EMG, other polygraphic channel (+ free text), and their significance logged (normal, abnormal, no definite abnormality).]
+ * EOG-channel-finding {suggestedTag=Finding-significance-to-recording, inLibrary=score} [ElectroOculoGraphy.]
+ ** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ * Respiration-channel-finding {suggestedTag=Finding-significance-to-recording, inLibrary=score}
+ ** Respiration-oxygen-saturation {inLibrary=score}
+ *** # {takesValue, valueClass=numericClass, inLibrary=score}
+ ** Respiration-feature {inLibrary=score}
+ *** Apnoe-respiration {inLibrary=score} [Add duration (range in seconds) and comments in free text.]
**** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- ** Posterior-dominant-rhythm-organization {requireChild, inLibrary=score} [When normal could be labeled with base schema Normal tag.]
- *** Posterior-dominant-rhythm-organization-poorly-organized {inLibrary=score} [Poorly organized.]
+ *** Hypopnea-respiration {inLibrary=score} [Add duration (range in seconds) and comments in free text]
**** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** Posterior-dominant-rhythm-organization-disorganized {inLibrary=score} [Disorganized.]
+ *** Apnea-hypopnea-index-respiration {requireChild, inLibrary=score} [Events/h. Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency]
**** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** Posterior-dominant-rhythm-organization-markedly-disorganized {inLibrary=score} [Markedly disorganized.]
+ *** Periodic-respiration {inLibrary=score}
**** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- ** Posterior-dominant-rhythm-caveat {requireChild, inLibrary=score} [Caveat to the annotation of PDR.]
- *** No-posterior-dominant-rhythm-caveat {inLibrary=score}
+ *** Tachypnea-respiration {requireChild, inLibrary=score} [Cycles/min. Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency]
**** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** Posterior-dominant-rhythm-caveat-only-open-eyes-during-the-recording {inLibrary=score}
+ *** Other-respiration-feature {requireChild, inLibrary=score}
**** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** Posterior-dominant-rhythm-caveat-sleep-deprived-caveat {inLibrary=score}
+ * ECG-channel-finding {suggestedTag=Finding-significance-to-recording, inLibrary=score} [Electrocardiography.]
+ ** ECG-QT-period {inLibrary=score}
+ *** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ ** ECG-feature {inLibrary=score}
+ *** ECG-sinus-rhythm {inLibrary=score} [Normal rhythm. Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency]
**** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** Posterior-dominant-rhythm-caveat-drowsy {inLibrary=score}
+ *** ECG-arrhythmia {inLibrary=score}
**** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** Posterior-dominant-rhythm-caveat-only-following-hyperventilation {inLibrary=score}
- ** Absence-of-posterior-dominant-rhythm {requireChild, inLibrary=score} [Reason for absence of PDR.]
- *** Absence-of-posterior-dominant-rhythm-artifacts {inLibrary=score}
+ *** ECG-asystolia {inLibrary=score} [Add duration (range in seconds) and comments in free text.]
**** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** Absence-of-posterior-dominant-rhythm-extreme-low-voltage {inLibrary=score}
+ *** ECG-bradycardia {inLibrary=score} [Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency]
**** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** Absence-of-posterior-dominant-rhythm-eye-closure-could-not-be-achieved {inLibrary=score}
+ *** ECG-extrasystole {inLibrary=score}
**** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** Absence-of-posterior-dominant-rhythm-lack-of-awake-period {inLibrary=score}
+ *** ECG-ventricular-premature-depolarization {inLibrary=score} [Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency]
**** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** Absence-of-posterior-dominant-rhythm-lack-of-compliance {inLibrary=score}
+ *** ECG-tachycardia {inLibrary=score} [Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency]
**** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** Absence-of-posterior-dominant-rhythm-other-causes {requireChild, inLibrary=score}
+ *** Other-ECG-feature {requireChild, inLibrary=score}
**** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- * Episode-property {requireChild, inLibrary=score}
- ** Seizure-classification {requireChild, inLibrary=score} [Epileptic seizures are named using the current ILAE seizure classification (Fisher et al., 2017, Beniczky et al., 2017).]
- *** Motor-onset-seizure {inLibrary=score}
- **** Myoclonic-motor-onset-seizure {inLibrary=score}
- **** Negative-myoclonic-motor-onset-seizure {inLibrary=score}
- **** Clonic-motor-onset-seizure {inLibrary=score}
- **** Tonic-motor-onset-seizure {inLibrary=score}
- **** Atonic-motor-onset-seizure {inLibrary=score}
- **** Myoclonic-atonic-motor-onset-seizure {inLibrary=score}
- **** Myoclonic-tonic-clonic-motor-onset-seizure {inLibrary=score}
- **** Tonic-clonic-motor-onset-seizure {inLibrary=score}
- **** Automatism-motor-onset-seizure {inLibrary=score}
- **** Hyperkinetic-motor-onset-seizure {inLibrary=score}
- **** Epileptic-spasm-episode {inLibrary=score}
- *** Nonmotor-onset-seizure {inLibrary=score}
- **** Behavior-arrest-nonmotor-onset-seizure {inLibrary=score}
- **** Sensory-nonmotor-onset-seizure {inLibrary=score}
- **** Emotional-nonmotor-onset-seizure {inLibrary=score}
- **** Cognitive-nonmotor-onset-seizure {inLibrary=score}
- **** Autonomic-nonmotor-onset-seizure {inLibrary=score}
- *** Absence-seizure {inLibrary=score}
- **** Typical-absence-seizure {inLibrary=score}
- **** Atypical-absence-seizure {inLibrary=score}
- **** Myoclonic-absence-seizure {inLibrary=score}
- **** Eyelid-myoclonia-absence-seizure {inLibrary=score}
- ** Episode-phase {requireChild, suggestedTag=Seizure-semiology-manifestation, suggestedTag=Postictal-semiology-manifestation, suggestedTag=Ictal-EEG-patterns, inLibrary=score} [The electroclinical findings (i.e., the seizure semiology and the ictal EEG) are divided in three phases: onset, propagation, and postictal.]
- *** Episode-phase-initial {inLibrary=score}
- *** Episode-phase-subsequent {inLibrary=score}
- *** Episode-phase-postictal {inLibrary=score}
- ** Seizure-semiology-manifestation {requireChild, inLibrary=score} [Semiology is described according to the ILAE Glossary of Descriptive Terminology for Ictal Semiology (Blume et al., 2001). Besides the name, the semiologic finding can also be characterized by the somatotopic modifier, laterality, body part and centricity. Uses Location-property tags.]
- *** Semiology-motor-manifestation {inLibrary=score}
- **** Semiology-elementary-motor {inLibrary=score}
- ***** Semiology-motor-tonic {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count, inLibrary=score} [A sustained increase in muscle contraction lasting a few seconds to minutes.]
- ***** Semiology-motor-dystonic {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count, inLibrary=score} [Sustained contractions of both agonist and antagonist muscles producing athetoid or twisting movements, which, when prolonged, may produce abnormal postures.]
- ***** Semiology-motor-epileptic-spasm {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count, inLibrary=score} [A sudden flexion, extension, or mixed extension flexion of predominantly proximal and truncal muscles that is usually more sustained than a myoclonic movement but not so sustained as a tonic seizure (i.e., about 1 s). Limited forms may occur: grimacing, head nodding. Frequent occurrence in clusters.]
- ***** Semiology-motor-postural {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count, inLibrary=score} [Adoption of a posture that may be bilaterally symmetric or asymmetric (as in a fencing posture).]
- ***** Semiology-motor-versive {suggestedTag=Body-part, suggestedTag=Episode-event-count, inLibrary=score} [A sustained, forced conjugate ocular, cephalic, and/or truncal rotation or lateral deviation from the midline.]
- ***** Semiology-motor-clonic {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count, inLibrary=score} [Myoclonus that is regularly repetitive, involves the same muscle groups, at a frequency of about 2 to 3 c/s, and is prolonged. Synonym: rhythmic myoclonus .]
- ***** Semiology-motor-myoclonic {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count, inLibrary=score} [Characterized by myoclonus. MYOCLONUS : sudden, brief (lower than 100 ms) involuntary single or multiple contraction(s) of muscles(s) or muscle groups of variable topography (axial, proximal limb, distal).]
- ***** Semiology-motor-jacksonian-march {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count, inLibrary=score} [Term indicating spread of clonic movements through contiguous body parts unilaterally.]
- ***** Semiology-motor-negative-myoclonus {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count, inLibrary=score} [Characterized by negative myoclonus. NEGATIVE MYOCLONUS: interruption of tonic muscular activity for lower than 500 ms without evidence of preceding myoclonia.]
- ***** Semiology-motor-tonic-clonic {requireChild, inLibrary=score} [A sequence consisting of a tonic followed by a clonic phase. Variants such as clonic-tonic-clonic may be seen. Asymmetry of limb posture during the tonic phase of a GTC: one arm is rigidly extended at the elbow (often with the fist clenched tightly and flexed at the wrist), whereas the opposite arm is flexed at the elbow.]
- ****** Semiology-motor-tonic-clonic-without-figure-of-four {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count, inLibrary=score}
- ****** Semiology-motor-tonic-clonic-with-figure-of-four-extension-left-elbow {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count, inLibrary=score}
- ****** Semiology-motor-tonic-clonic-with-figure-of-four-extension-right-elbow {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count, inLibrary=score}
- ***** Semiology-motor-astatic {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count, inLibrary=score} [Loss of erect posture that results from an atonic, myoclonic, or tonic mechanism. Synonym: drop attack.]
- ***** Semiology-motor-atonic {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count, inLibrary=score} [Sudden loss or diminution of muscle tone without apparent preceding myoclonic or tonic event lasting greater or equal to 1 to 2 s, involving head, trunk, jaw, or limb musculature.]
- ***** Semiology-motor-eye-blinking {suggestedTag=Brain-laterality, suggestedTag=Episode-event-count, inLibrary=score}
- ***** Semiology-motor-other-elementary-motor {requireChild, inLibrary=score}
- ****** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- **** Semiology-motor-automatisms {inLibrary=score}
- ***** Semiology-motor-automatisms-mimetic {suggestedTag=Episode-responsiveness, suggestedTag=Episode-appearance, suggestedTag=Episode-event-count, inLibrary=score} [Facial expression suggesting an emotional state, often fear.]
- ***** Semiology-motor-automatisms-oroalimentary {suggestedTag=Episode-responsiveness, suggestedTag=Episode-appearance, suggestedTag=Episode-event-count, inLibrary=score} [Lip smacking, lip pursing, chewing, licking, tooth grinding, or swallowing.]
- ***** Semiology-motor-automatisms-dacrystic {suggestedTag=Episode-responsiveness, suggestedTag=Episode-appearance, suggestedTag=Episode-event-count, inLibrary=score} [Bursts of crying.]
- ***** Semiology-motor-automatisms-dyspraxic {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-responsiveness, suggestedTag=Episode-appearance, suggestedTag=Episode-event-count, inLibrary=score} [Inability to perform learned movements spontaneously or on command or imitation despite intact relevant motor and sensory systems and adequate comprehension and cooperation.]
- ***** Semiology-motor-automatisms-manual {suggestedTag=Brain-laterality, suggestedTag=Brain-centricity, suggestedTag=Episode-responsiveness, suggestedTag=Episode-appearance, suggestedTag=Episode-event-count, inLibrary=score} [1. Indicates principally distal components, bilateral or unilateral. 2. Fumbling, tapping, manipulating movements.]
- ***** Semiology-motor-automatisms-gestural {suggestedTag=Brain-laterality, suggestedTag=Episode-responsiveness, suggestedTag=Episode-appearance, suggestedTag=Episode-event-count, inLibrary=score} [Semipurposive, asynchronous hand movements. Often unilateral.]
- ***** Semiology-motor-automatisms-pedal {suggestedTag=Brain-laterality, suggestedTag=Brain-centricity, suggestedTag=Episode-responsiveness, suggestedTag=Episode-appearance, suggestedTag=Episode-event-count, inLibrary=score} [1. Indicates principally distal components, bilateral or unilateral. 2. Fumbling, tapping, manipulating movements.]
- ***** Semiology-motor-automatisms-hypermotor {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-responsiveness, suggestedTag=Episode-appearance, suggestedTag=Episode-event-count, inLibrary=score} [1. Involves predominantly proximal limb or axial muscles producing irregular sequential ballistic movements, such as pedaling, pelvic thrusting, thrashing, rocking movements. 2. Increase in rate of ongoing movements or inappropriately rapid performance of a movement.]
- ***** Semiology-motor-automatisms-hypokinetic {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-responsiveness, suggestedTag=Episode-appearance, suggestedTag=Episode-event-count, inLibrary=score} [A decrease in amplitude and/or rate or arrest of ongoing motor activity.]
- ***** Semiology-motor-automatisms-gelastic {suggestedTag=Episode-responsiveness, suggestedTag=Episode-appearance, suggestedTag=Episode-event-count, inLibrary=score} [Bursts of laughter or giggling, usually without an appropriate affective tone.]
- ***** Semiology-motor-other-automatisms {requireChild, inLibrary=score}
- ****** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- **** Semiology-motor-behavioral-arrest {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count, inLibrary=score} [Interruption of ongoing motor activity or of ongoing behaviors with fixed gaze, without movement of the head or trunk (oro-alimentary and hand automatisms may continue).]
- *** Semiology-non-motor-manifestation {inLibrary=score}
- **** Semiology-sensory {inLibrary=score}
- ***** Semiology-sensory-headache {suggestedTag=Brain-laterality, suggestedTag=Episode-event-count, inLibrary=score} [Headache occurring in close temporal proximity to the seizure or as the sole seizure manifestation.]
- ***** Semiology-sensory-visual {suggestedTag=Brain-laterality, suggestedTag=Episode-event-count, inLibrary=score} [Flashing or flickering lights, spots, simple patterns, scotomata, or amaurosis.]
- ***** Semiology-sensory-auditory {suggestedTag=Brain-laterality, suggestedTag=Episode-event-count, inLibrary=score} [Buzzing, drumming sounds or single tones.]
- ***** Semiology-sensory-olfactory {suggestedTag=Body-part, suggestedTag=Episode-event-count, inLibrary=score}
- ***** Semiology-sensory-gustatory {suggestedTag=Episode-event-count, inLibrary=score} [Taste sensations including acidic, bitter, salty, sweet, or metallic.]
- ***** Semiology-sensory-epigastric {suggestedTag=Episode-event-count, inLibrary=score} [Abdominal discomfort including nausea, emptiness, tightness, churning, butterflies, malaise, pain, and hunger; sensation may rise to chest or throat. Some phenomena may reflect ictal autonomic dysfunction.]
- ***** Semiology-sensory-somatosensory {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count, inLibrary=score} [Tingling, numbness, electric-shock sensation, sense of movement or desire to move.]
- ***** Semiology-sensory-painful {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count, inLibrary=score} [Peripheral (lateralized/bilateral), cephalic, abdominal.]
- ***** Semiology-sensory-autonomic-sensation {suggestedTag=Episode-event-count, inLibrary=score} [A sensation consistent with involvement of the autonomic nervous system, including cardiovascular, gastrointestinal, sudomotor, vasomotor, and thermoregulatory functions. (Thus autonomic aura; cf. autonomic events 3.0).]
- ***** Semiology-sensory-other {requireChild, inLibrary=score}
- ****** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- **** Semiology-experiential {inLibrary=score}
- ***** Semiology-experiential-affective-emotional {suggestedTag=Episode-event-count, inLibrary=score} [Components include fear, depression, joy, and (rarely) anger.]
- ***** Semiology-experiential-hallucinatory {suggestedTag=Episode-event-count, inLibrary=score} [Composite perceptions without corresponding external stimuli involving visual, auditory, somatosensory, olfactory, and/or gustatory phenomena. Example: hearing and seeing people talking.]
- ***** Semiology-experiential-illusory {suggestedTag=Episode-event-count, inLibrary=score} [An alteration of actual percepts involving the visual, auditory, somatosensory, olfactory, or gustatory systems.]
- ***** Semiology-experiential-mnemonic {inLibrary=score} [Components that reflect ictal dysmnesia such as feelings of familiarity (deja-vu) and unfamiliarity (jamais-vu).]
- ****** Semiology-experiential-mnemonic-Deja-vu {suggestedTag=Episode-event-count, inLibrary=score}
- ****** Semiology-experiential-mnemonic-Jamais-vu {suggestedTag=Episode-event-count, inLibrary=score}
- ***** Semiology-experiential-other {requireChild, inLibrary=score}
- ****** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- **** Semiology-dyscognitive {suggestedTag=Episode-event-count, inLibrary=score} [The term describes events in which (1) disturbance of cognition is the predominant or most apparent feature, and (2a) two or more of the following components are involved, or (2b) involvement of such components remains undetermined. Otherwise, use the more specific term (e.g., mnemonic experiential seizure or hallucinatory experiential seizure). Components of cognition: ++ perception: symbolic conception of sensory information ++ attention: appropriate selection of a principal perception or task ++ emotion: appropriate affective significance of a perception ++ memory: ability to store and retrieve percepts or concepts ++ executive function: anticipation, selection, monitoring of consequences, and initiation of motor activity including praxis, speech.]
- **** Semiology-language-related {inLibrary=score}
- ***** Semiology-language-related-vocalization {suggestedTag=Episode-event-count, inLibrary=score}
- ***** Semiology-language-related-verbalization {suggestedTag=Episode-event-count, inLibrary=score}
- ***** Semiology-language-related-dysphasia {suggestedTag=Episode-event-count, inLibrary=score}
- ***** Semiology-language-related-aphasia {suggestedTag=Episode-event-count, inLibrary=score}
- ***** Semiology-language-related-other {requireChild, inLibrary=score}
- ****** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- **** Semiology-autonomic {inLibrary=score}
- ***** Semiology-autonomic-pupillary {suggestedTag=Brain-laterality, suggestedTag=Episode-event-count, inLibrary=score} [Mydriasis, miosis (either bilateral or unilateral).]
- ***** Semiology-autonomic-hypersalivation {suggestedTag=Episode-event-count, inLibrary=score} [Increase in production of saliva leading to uncontrollable drooling]
- ***** Semiology-autonomic-respiratory-apnoeic {suggestedTag=Episode-event-count, inLibrary=score} [subjective shortness of breath, hyperventilation, stridor, coughing, choking, apnea, oxygen desaturation, neurogenic pulmonary edema.]
- ***** Semiology-autonomic-cardiovascular {suggestedTag=Episode-event-count, inLibrary=score} [Modifications of heart rate (tachycardia, bradycardia), cardiac arrhythmias (such as sinus arrhythmia, sinus arrest, supraventricular tachycardia, atrial premature depolarizations, ventricular premature depolarizations, atrio-ventricular block, bundle branch block, atrioventricular nodal escape rhythm, asystole).]
- ***** Semiology-autonomic-gastrointestinal {suggestedTag=Episode-event-count, inLibrary=score} [Nausea, eructation, vomiting, retching, abdominal sensations, abdominal pain, flatulence, spitting, diarrhea.]
- ***** Semiology-autonomic-urinary-incontinence {suggestedTag=Episode-event-count, inLibrary=score} [urinary urge (intense urinary urge at the beginning of seizures), urinary incontinence, ictal urination (rare symptom of partial seizures without loss of consciousness).]
- ***** Semiology-autonomic-genital {suggestedTag=Episode-event-count, inLibrary=score} [Sexual auras (erotic thoughts and feelings, sexual arousal and orgasm). Genital auras (unpleasant, sometimes painful, frightening or emotionally neutral somatosensory sensations in the genitals that can be accompanied by ictal orgasm). Sexual automatisms (hypermotor movements consisting of writhing, thrusting, rhythmic movements of the pelvis, arms and legs, sometimes associated with picking and rhythmic manipulation of the groin or genitalia, exhibitionism and masturbation).]
- ***** Semiology-autonomic-vasomotor {suggestedTag=Episode-event-count, inLibrary=score} [Flushing or pallor (may be accompanied by feelings of warmth, cold and pain).]
- ***** Semiology-autonomic-sudomotor {suggestedTag=Brain-laterality, suggestedTag=Episode-event-count, inLibrary=score} [Sweating and piloerection (may be accompanied by feelings of warmth, cold and pain).]
- ***** Semiology-autonomic-thermoregulatory {suggestedTag=Episode-event-count, inLibrary=score} [Hyperthermia, fever.]
- ***** Semiology-autonomic-other {requireChild, inLibrary=score}
- ****** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** Semiology-manifestation-other {requireChild, inLibrary=score}
+ * EMG-channel-finding {suggestedTag=Finding-significance-to-recording, inLibrary=score} [electromyography]
+ ** EMG-muscle-side {inLibrary=score}
+ *** EMG-left-muscle {inLibrary=score}
**** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- ** Postictal-semiology-manifestation {requireChild, inLibrary=score}
- *** Postictal-semiology-unconscious {suggestedTag=Episode-event-count, inLibrary=score}
- *** Postictal-semiology-quick-recovery-of-consciousness {suggestedTag=Episode-event-count, inLibrary=score} [Quick recovery of awareness and responsiveness.]
- *** Postictal-semiology-aphasia-or-dysphasia {suggestedTag=Episode-event-count, inLibrary=score} [Impaired communication involving language without dysfunction of relevant primary motor or sensory pathways, manifested as impaired comprehension, anomia, parahasic errors or a combination of these.]
- *** Postictal-semiology-behavioral-change {suggestedTag=Episode-event-count, inLibrary=score} [Occurring immediately after a aseizure. Including psychosis, hypomanina, obsessive-compulsive behavior.]
- *** Postictal-semiology-hemianopia {suggestedTag=Brain-laterality, suggestedTag=Episode-event-count, inLibrary=score} [Postictal visual loss in a a hemi field.]
- *** Postictal-semiology-impaired-cognition {suggestedTag=Episode-event-count, inLibrary=score} [Decreased Cognitive performance involving one or more of perception, attention, emotion, memory, execution, praxis, speech.]
- *** Postictal-semiology-dysphoria {suggestedTag=Episode-event-count, inLibrary=score} [Depression, irritability, euphoric mood, fear, anxiety.]
- *** Postictal-semiology-headache {suggestedTag=Episode-event-count, inLibrary=score} [Headache with features of tension-type or migraine headache that develops within 3 h following the seizure and resolves within 72 h after seizure.]
- *** Postictal-semiology-nose-wiping {suggestedTag=Brain-laterality, suggestedTag=Episode-event-count, inLibrary=score} [Noes-wiping usually within 60 sec of seizure offset, usually with the hand ipsilateral to the seizure onset.]
- *** Postictal-semiology-anterograde-amnesia {suggestedTag=Episode-event-count, inLibrary=score} [Impaired ability to remember new material.]
- *** Postictal-semiology-retrograde-amnesia {suggestedTag=Episode-event-count, inLibrary=score} [Impaired ability to recall previously remember material.]
- *** Postictal-semiology-paresis {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, suggestedTag=Episode-event-count, inLibrary=score} [Todds palsy. Any unilateral postictal dysfunction relating to motor, language, sensory and/or integrative functions.]
- *** Postictal-semiology-sleep {inLibrary=score} [Invincible need to sleep after a seizure.]
- *** Postictal-semiology-unilateral-myoclonic-jerks {inLibrary=score} [unilateral motor phenomena, other then specified, occurring in postictal phase.]
- *** Postictal-semiology-other-unilateral-motor-phenomena {requireChild, inLibrary=score}
+ *** EMG-right-muscle {inLibrary=score}
**** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- ** Polygraphic-channel-relation-to-episode {requireChild, suggestedTag=Property-not-possible-to-determine, inLibrary=score}
- *** Polygraphic-channel-cause-to-episode {inLibrary=score}
- *** Polygraphic-channel-consequence-of-episode {inLibrary=score}
- ** Ictal-EEG-patterns {inLibrary=score}
- *** Ictal-EEG-patterns-obscured-by-artifacts {inLibrary=score} [The interpretation of the EEG is not possible due to artifacts.]
+ *** EMG-bilateral-muscle {inLibrary=score}
**** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** Ictal-EEG-activity {suggestedTag=Polyspikes-morphology, suggestedTag=Fast-spike-activity-morphology, suggestedTag=Low-voltage-fast-activity-morphology, suggestedTag=Polysharp-waves-morphology, suggestedTag=Spike-and-slow-wave-morphology, suggestedTag=Polyspike-and-slow-wave-morphology, suggestedTag=Sharp-and-slow-wave-morphology, suggestedTag=Rhythmic-activity-morphology, suggestedTag=Slow-wave-large-amplitude-morphology, suggestedTag=Irregular-delta-or-theta-activity-morphology, suggestedTag=Electrodecremental-change-morphology, suggestedTag=DC-shift-morphology, suggestedTag=Disappearance-of-ongoing-activity-morphology, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Source-analysis-laterality, suggestedTag=Source-analysis-brain-region, suggestedTag=Episode-event-count, inLibrary=score}
- *** Postictal-EEG-activity {suggestedTag=Brain-laterality, suggestedTag=Body-part, suggestedTag=Brain-centricity, inLibrary=score}
- ** Episode-time-context-property {inLibrary=score} [Additional clinically relevant features related to episodes can be scored under timing and context. If needed, episode duration can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Temporal-value/Duration.]
- *** Episode-consciousness {requireChild, suggestedTag=Property-not-possible-to-determine, inLibrary=score}
- **** Episode-consciousness-not-tested {inLibrary=score}
- ***** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- **** Episode-consciousness-affected {inLibrary=score}
+ ** EMG-muscle-name {inLibrary=score}
+ *** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ ** EMG-feature {inLibrary=score}
+ *** EMG-myoclonus {inLibrary=score}
+ **** Negative-myoclonus {inLibrary=score}
***** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- **** Episode-consciousness-mildly-affected {inLibrary=score}
+ **** EMG-myoclonus-rhythmic {inLibrary=score}
***** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- **** Episode-consciousness-not-affected {inLibrary=score}
+ **** EMG-myoclonus-arrhythmic {inLibrary=score}
***** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** Episode-awareness {suggestedTag=Property-not-possible-to-determine, suggestedTag=Property-exists, suggestedTag=Property-absence, inLibrary=score}
- **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** Clinical-EEG-temporal-relationship {suggestedTag=Property-not-possible-to-determine, inLibrary=score}
- **** Clinical-start-followed-EEG {inLibrary=score} [Clinical start, followed by EEG start by X seconds.]
- ***** # {takesValue, valueClass=numericClass, unitClass=timeUnits, inLibrary=score}
- **** EEG-start-followed-clinical {inLibrary=score} [EEG start, followed by clinical start by X seconds.]
- ***** # {takesValue, valueClass=numericClass, unitClass=timeUnits, inLibrary=score}
- **** Simultaneous-start-clinical-EEG {inLibrary=score}
- **** Clinical-EEG-temporal-relationship-notes {inLibrary=score} [Clinical notes to annotate the clinical-EEG temporal relationship.]
- ***** # {takesValue, valueClass=textClass, inLibrary=score}
- *** Episode-event-count {suggestedTag=Property-not-possible-to-determine, inLibrary=score} [Number of stereotypical episodes during the recording.]
- **** # {takesValue, valueClass=numericClass, inLibrary=score}
- *** State-episode-start {requireChild, suggestedTag=Property-not-possible-to-determine, inLibrary=score} [State at the start of the episode.]
- **** Episode-start-from-sleep {inLibrary=score}
+ **** EMG-myoclonus-synchronous {inLibrary=score}
***** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- **** Episode-start-from-awake {inLibrary=score}
+ **** EMG-myoclonus-asynchronous {inLibrary=score}
***** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** Episode-postictal-phase {suggestedTag=Property-not-possible-to-determine, inLibrary=score}
- **** # {takesValue, valueClass=numericClass, unitClass=timeUnits, inLibrary=score}
- *** Episode-prodrome {suggestedTag=Property-exists, suggestedTag=Property-absence, inLibrary=score} [Prodrome is a preictal phenomenon, and it is defined as a subjective or objective clinical alteration (e.g., ill-localized sensation or agitation) that heralds the onset of an epileptic seizure but does not form part of it (Blume et al., 2001). Therefore, prodrome should be distinguished from aura (which is an ictal phenomenon).]
+ *** EMG-PLMS {inLibrary=score} [Periodic limb movements in sleep.]
+ *** EMG-spasm {inLibrary=score}
**** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** Episode-tongue-biting {suggestedTag=Property-exists, suggestedTag=Property-absence, inLibrary=score}
+ *** EMG-tonic-contraction {inLibrary=score}
**** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** Episode-responsiveness {requireChild, suggestedTag=Property-not-possible-to-determine, inLibrary=score}
- **** Episode-responsiveness-preserved {inLibrary=score}
- ***** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- **** Episode-responsiveness-affected {inLibrary=score}
- ***** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** Episode-appearance {requireChild, inLibrary=score}
- **** Episode-appearance-interactive {inLibrary=score}
- ***** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- **** Episode-appearance-spontaneous {inLibrary=score}
- ***** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** Seizure-dynamics {requireChild, inLibrary=score} [Spatiotemporal dynamics can be scored (evolution in morphology; evolution in frequency; evolution in location).]
- **** Seizure-dynamics-evolution-morphology {inLibrary=score}
- ***** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- **** Seizure-dynamics-evolution-frequency {inLibrary=score}
- ***** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- **** Seizure-dynamics-evolution-location {inLibrary=score}
+ *** EMG-asymmetric-activation {requireChild, inLibrary=score}
+ **** EMG-asymmetric-activation-left-first {inLibrary=score}
***** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- **** Seizure-dynamics-not-possible-to-determine {inLibrary=score} [Not possible to determine.]
+ **** EMG-asymmetric-activation-right-first {inLibrary=score}
***** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- * Other-finding-property {requireChild, inLibrary=score}
- ** Artifact-significance-to-recording {requireChild, inLibrary=score} [It is important to score the significance of the described artifacts: recording is not interpretable, recording of reduced diagnostic value, does not interfere with the interpretation of the recording.]
- *** Recording-not-interpretable-due-to-artifact {inLibrary=score}
- **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** Recording-of-reduced-diagnostic-value-due-to-artifact {inLibrary=score}
- **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** Artifact-does-not-interfere-recording {inLibrary=score}
- **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- ** Finding-significance-to-recording {requireChild, inLibrary=score} [Significance of finding. When normal/abnormal could be labeled with base schema Normal/Abnormal tags.]
- *** Finding-no-definite-abnormality {inLibrary=score}
- **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** Finding-significance-not-possible-to-determine {inLibrary=score} [Not possible to determine.]
- **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- ** Finding-frequency {inLibrary=score} [Value in Hz (number) typed in.]
- *** # {takesValue, valueClass=numericClass, unitClass=frequencyUnits, inLibrary=score}
- ** Finding-amplitude {inLibrary=score} [Value in microvolts (number) typed in.]
- *** # {takesValue, valueClass=numericClass, unitClass=electricPotentialUnits, inLibrary=score}
- ** Finding-amplitude-asymmetry {requireChild, inLibrary=score} [For posterior dominant rhythm: a difference in amplitude between the homologous area on opposite sides of the head that consistently exceeds 50 percent. When symmetrical could be labeled with base schema Symmetrical tag. For sleep: Absence or consistently marked amplitude asymmetry (greater than 50 percent) of a normal sleep graphoelement.]
- *** Finding-amplitude-asymmetry-lower-left {inLibrary=score} [Amplitude lower on the left side.]
- **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** Finding-amplitude-asymmetry-lower-right {inLibrary=score} [Amplitude lower on the right side.]
- **** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- *** Finding-amplitude-asymmetry-not-possible-to-determine {inLibrary=score} [Not possible to determine.]
+ *** Other-EMG-features {requireChild, inLibrary=score}
**** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- ** Finding-stopped-by {inLibrary=score}
- *** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- ** Finding-triggered-by {inLibrary=score}
- *** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- ** Finding-unmodified {inLibrary=score}
+ * Other-polygraphic-channel {requireChild, inLibrary=score}
+ ** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+
+'''Property''' {extensionAllowed} [Something that pertains to a thing. A characteristic of some entity. A quality or feature regarded as a characteristic or inherent part of someone or something. HED attributes are adjectives or adverbs.]
+ * Agent-property {extensionAllowed} [Something that pertains to an agent.]
+ ** Agent-state [The state of the agent.]
+ *** Agent-cognitive-state [The state of the cognitive processes or state of mind of the agent.]
+ **** Alert [Condition of heightened watchfulness or preparation for action.]
+ **** Anesthetized [Having lost sensation to pain or having senses dulled due to the effects of an anesthetic.]
+ **** Asleep [Having entered a periodic, readily reversible state of reduced awareness and metabolic activity, usually accompanied by physical relaxation and brain activity.]
+ **** Attentive [Concentrating and focusing mental energy on the task or surroundings.]
+ **** Awake [In a non sleeping state.]
+ **** Brain-dead [Characterized by the irreversible absence of cortical and brain stem functioning.]
+ **** Comatose [In a state of profound unconsciousness associated with markedly depressed cerebral activity.]
+ **** Distracted [Lacking in concentration because of being preoccupied.]
+ **** Drowsy [In a state of near-sleep, a strong desire for sleep, or sleeping for unusually long periods.]
+ **** Intoxicated [In a state with disturbed psychophysiological functions and responses as a result of administration or ingestion of a psychoactive substance.]
+ **** Locked-in [In a state of complete paralysis of all voluntary muscles except for the ones that control the movements of the eyes.]
+ **** Passive [Not responding or initiating an action in response to a stimulus.]
+ **** Resting [A state in which the agent is not exhibiting any physical exertion.]
+ **** Vegetative [A state of wakefulness and conscience, but (in contrast to coma) with involuntary opening of the eyes and movements (such as teeth grinding, yawning, or thrashing of the extremities).]
+ *** Agent-emotional-state [The status of the general temperament and outlook of an agent.]
+ **** Angry [Experiencing emotions characterized by marked annoyance or hostility.]
+ **** Aroused [In a state reactive to stimuli leading to increased heart rate and blood pressure, sensory alertness, mobility and readiness to respond.]
+ **** Awed [Filled with wonder. Feeling grand, sublime or powerful emotions characterized by a combination of joy, fear, admiration, reverence, and/or respect.]
+ **** Compassionate [Feeling or showing sympathy and concern for others often evoked for a person who is in distress and associated with altruistic motivation.]
+ **** Content [Feeling satisfaction with things as they are.]
+ **** Disgusted [Feeling revulsion or profound disapproval aroused by something unpleasant or offensive.]
+ **** Emotionally-neutral [Feeling neither satisfied nor dissatisfied.]
+ **** Empathetic [Understanding and sharing the feelings of another. Being aware of, being sensitive to, and vicariously experiencing the feelings, thoughts, and experience of another.]
+ **** Excited [Feeling great enthusiasm and eagerness.]
+ **** Fearful [Feeling apprehension that one may be in danger.]
+ **** Frustrated [Feeling annoyed as a result of being blocked, thwarted, disappointed or defeated.]
+ **** Grieving [Feeling sorrow in response to loss, whether physical or abstract.]
+ **** Happy [Feeling pleased and content.]
+ **** Jealous [Feeling threatened by a rival in a relationship with another individual, in particular an intimate partner, usually involves feelings of threat, fear, suspicion, distrust, anxiety, anger, betrayal, and rejection.]
+ **** Joyful [Feeling delight or intense happiness.]
+ **** Loving [Feeling a strong positive emotion of affection and attraction.]
+ **** Relieved [No longer feeling pain, distress, anxiety, or reassured.]
+ **** Sad [Feeling grief or unhappiness.]
+ **** Stressed [Experiencing mental or emotional strain or tension.]
+ *** Agent-physiological-state [Having to do with the mechanical, physical, or biochemical function of an agent.]
+ **** Healthy {relatedTag=Sick} [Having no significant health-related issues.]
+ **** Hungry {relatedTag=Sated, relatedTag=Thirsty} [Being in a state of craving or desiring food.]
+ **** Rested {relatedTag=Tired} [Feeling refreshed and relaxed.]
+ **** Sated {relatedTag=Hungry} [Feeling full.]
+ **** Sick {relatedTag=Healthy} [Being in a state of ill health, bodily malfunction, or discomfort.]
+ **** Thirsty {relatedTag=Hungry} [Feeling a need to drink.]
+ **** Tired {relatedTag=Rested} [Feeling in need of sleep or rest.]
+ *** Agent-postural-state [Pertaining to the position in which agent holds their body.]
+ **** Crouching [Adopting a position where the knees are bent and the upper body is brought forward and down, sometimes to avoid detection or to defend oneself.]
+ **** Eyes-closed [Keeping eyes closed with no blinking.]
+ **** Eyes-open [Keeping eyes open with occasional blinking.]
+ **** Kneeling [Positioned where one or both knees are on the ground.]
+ **** On-treadmill [Ambulation on an exercise apparatus with an endless moving belt to support moving in place.]
+ **** Prone [Positioned in a recumbent body position whereby the person lies on its stomach and faces downward.]
+ **** Seated-with-chin-rest [Using a device that supports the chin and head.]
+ **** Sitting [In a seated position.]
+ **** Standing [Assuming or maintaining an erect upright position.]
+ ** Agent-task-role [The function or part that is ascribed to an agent in performing the task.]
+ *** Experiment-actor [An agent who plays a predetermined role to create the experiment scenario.]
+ *** Experiment-controller [An agent exerting control over some aspect of the experiment.]
+ *** Experiment-participant [Someone who takes part in an activity related to an experiment.]
+ *** Experimenter [Person who is the owner of the experiment and has its responsibility.]
+ ** Agent-trait [A genetically, environmentally, or socially determined characteristic of an agent.]
+ *** Age [Length of time elapsed time since birth of the agent.]
+ **** # {takesValue, valueClass=numericClass}
+ *** Agent-experience-level [Amount of skill or knowledge that the agent has as pertains to the task.]
+ **** Expert-level {relatedTag=Intermediate-experience-level, relatedTag=Novice-level} [Having comprehensive and authoritative knowledge of or skill in a particular area related to the task.]
+ **** Intermediate-experience-level {relatedTag=Expert-level, relatedTag=Novice-level} [Having a moderate amount of knowledge or skill related to the task.]
+ **** Novice-level {relatedTag=Expert-level, relatedTag=Intermediate-experience-level} [Being inexperienced in a field or situation related to the task.]
+ *** Ethnicity [Belong to a social group that has a common national or cultural tradition. Use with Label to avoid extension.]
+ *** Gender [Characteristics that are socially constructed, including norms, behaviors, and roles based on sex.]
+ *** Handedness [Individual preference for use of a hand, known as the dominant hand.]
+ **** Ambidextrous [Having no overall dominance in the use of right or left hand or foot in the performance of tasks that require one hand or foot.]
+ **** Left-handed [Preference for using the left hand or foot for tasks requiring the use of a single hand or foot.]
+ **** Right-handed [Preference for using the right hand or foot for tasks requiring the use of a single hand or foot.]
+ *** Race [Belonging to a group sharing physical or social qualities as defined within a specified society. Use with Label to avoid extension.]
+ *** Sex [Physical properties or qualities by which male is distinguished from female.]
+ **** Female [Biological sex of an individual with female sexual organs such ova.]
+ **** Intersex [Having genitalia and/or secondary sexual characteristics of indeterminate sex.]
+ **** Male [Biological sex of an individual with male sexual organs producing sperm.]
+ * Data-property {extensionAllowed} [Something that pertains to data or information.]
+ ** Data-marker [An indicator placed to mark something.]
+ *** Data-break-marker [An indicator place to indicate a gap in the data.]
+ *** Temporal-marker [An indicator placed at a particular time in the data.]
+ **** Inset {topLevelTagGroup, reserved, relatedTag=Onset, relatedTag=Offset} [Marks an intermediate point in an ongoing event of temporal extent.]
+ **** Offset {topLevelTagGroup, reserved, relatedTag=Onset, relatedTag=Inset} [Marks the end of an event of temporal extent.]
+ **** Onset {topLevelTagGroup, reserved, relatedTag=Inset, relatedTag=Offset} [Marks the start of an ongoing event of temporal extent.]
+ **** Pause [Indicates the temporary interruption of the operation a process and subsequently wait for a signal to continue.]
+ **** Time-out [A cancellation or cessation that automatically occurs when a predefined interval of time has passed without a certain event occurring.]
+ **** Time-sync [A synchronization signal whose purpose to help synchronize different signals or processes. Often used to indicate a marker inserted into the recorded data to allow post hoc synchronization of concurrently recorded data streams.]
+ ** Data-resolution [Smallest change in a quality being measured by an sensor that causes a perceptible change.]
+ *** Printer-resolution [Resolution of a printer, usually expressed as the number of dots-per-inch for a printer.]
+ **** # {takesValue, valueClass=numericClass}
+ *** Screen-resolution [Resolution of a screen, usually expressed as the of pixels in a dimension for a digital display device.]
+ **** # {takesValue, valueClass=numericClass}
+ *** Sensory-resolution [Resolution of measurements by a sensing device.]
+ **** # {takesValue, valueClass=numericClass}
+ *** Spatial-resolution [Linear spacing of a spatial measurement.]
+ **** # {takesValue, valueClass=numericClass}
+ *** Spectral-resolution [Measures the ability of a sensor to resolve features in the electromagnetic spectrum.]
+ **** # {takesValue, valueClass=numericClass}
+ *** Temporal-resolution [Measures the ability of a sensor to resolve features in time.]
+ **** # {takesValue, valueClass=numericClass}
+ ** Data-source-type [The type of place, person, or thing from which the data comes or can be obtained.]
+ *** Computed-feature [A feature computed from the data by a tool. This tag should be grouped with a label of the form Toolname_propertyName.]
+ *** Computed-prediction [A computed extrapolation of known data.]
+ *** Expert-annotation [An explanatory or critical comment or other in-context information provided by an authority.]
+ *** Instrument-measurement [Information obtained from a device that is used to measure material properties or make other observations.]
+ *** Observation [Active acquisition of information from a primary source. Should be grouped with a label of the form AgentID_featureName.]
+ ** Data-value [Designation of the type of a data item.]
+ *** Categorical-value [Indicates that something can take on a limited and usually fixed number of possible values.]
+ **** Categorical-class-value [Categorical values that fall into discrete classes such as true or false. The grouping is absolute in the sense that it is the same for all participants.]
+ ***** All {relatedTag=Some, relatedTag=None} [To a complete degree or to the full or entire extent.]
+ ***** Correct {relatedTag=Wrong} [Free from error. Especially conforming to fact or truth.]
+ ***** Explicit {relatedTag=Implicit} [Stated clearly and in detail, leaving no room for confusion or doubt.]
+ ***** False {relatedTag=True} [Not in accordance with facts, reality or definitive criteria.]
+ ***** Implicit {relatedTag=Explicit} [Implied though not plainly expressed.]
+ ***** Invalid {relatedTag=Valid} [Not allowed or not conforming to the correct format or specifications.]
+ ***** None {relatedTag=All, relatedTag=Some} [No person or thing, nobody, not any.]
+ ***** Some {relatedTag=All, relatedTag=None} [At least a small amount or number of, but not a large amount of, or often.]
+ ***** True {relatedTag=False} [Conforming to facts, reality or definitive criteria.]
+ ***** Valid {relatedTag=Invalid} [Allowable, usable, or acceptable.]
+ ***** Wrong {relatedTag=Correct} [Inaccurate or not correct.]
+ **** Categorical-judgment-value [Categorical values that are based on the judgment or perception of the participant such familiar and famous.]
+ ***** Abnormal {relatedTag=Normal} [Deviating in any way from the state, position, structure, condition, behavior, or rule which is considered a norm.]
+ ***** Asymmetrical {relatedTag=Symmetrical} [Lacking symmetry or having parts that fail to correspond to one another in shape, size, or arrangement.]
+ ***** Audible {relatedTag=Inaudible} [A sound that can be perceived by the participant.]
+ ***** Complex {relatedTag=Simple} [Hard, involved or complicated, elaborate, having many parts.]
+ ***** Congruent {relatedTag=Incongruent} [Concordance of multiple evidence lines. In agreement or harmony.]
+ ***** Constrained {relatedTag=Unconstrained} [Keeping something within particular limits or bounds.]
+ ***** Disordered {relatedTag=Ordered} [Not neatly arranged. Confused and untidy. A structural quality in which the parts of an object are non-rigid.]
+ ***** Familiar {relatedTag=Unfamiliar, relatedTag=Famous} [Recognized, familiar, or within the scope of knowledge.]
+ ***** Famous {relatedTag=Familiar, relatedTag=Unfamiliar} [A person who has a high degree of recognition by the general population for his or her success or accomplishments. A famous person.]
+ ***** Inaudible {relatedTag=Audible} [A sound below the threshold of perception of the participant.]
+ ***** Incongruent {relatedTag=Congruent} [Not in agreement or harmony.]
+ ***** Involuntary {relatedTag=Voluntary} [An action that is not made by choice. In the body, involuntary actions (such as blushing) occur automatically, and cannot be controlled by choice.]
+ ***** Masked {relatedTag=Unmasked} [Information exists but is not provided or is partially obscured due to security, privacy, or other concerns.]
+ ***** Normal {relatedTag=Abnormal} [Being approximately average or within certain limits. Conforming with or constituting a norm or standard or level or type or social norm.]
+ ***** Ordered {relatedTag=Disordered} [Conforming to a logical or comprehensible arrangement of separate elements.]
+ ***** Simple {relatedTag=Complex} [Easily understood or presenting no difficulties.]
+ ***** Symmetrical {relatedTag=Asymmetrical} [Made up of exactly similar parts facing each other or around an axis. Showing aspects of symmetry.]
+ ***** Unconstrained {relatedTag=Constrained} [Moving without restriction.]
+ ***** Unfamiliar {relatedTag=Familiar, relatedTag=Famous} [Not having knowledge or experience of.]
+ ***** Unmasked {relatedTag=Masked} [Information is revealed.]
+ ***** Voluntary {relatedTag=Involuntary} [Using free will or design; not forced or compelled; controlled by individual volition.]
+ **** Categorical-level-value [Categorical values based on dividing a continuous variable into levels such as high and low.]
+ ***** Cold {relatedTag=Hot} [Having an absence of heat.]
+ ***** Deep {relatedTag=Shallow} [Extending relatively far inward or downward.]
+ ***** High {relatedTag=Low, relatedTag=Medium} [Having a greater than normal degree, intensity, or amount.]
+ ***** Hot {relatedTag=Cold} [Having an excess of heat.]
+ ***** Large {relatedTag=Small} [Having a great extent such as in physical dimensions, period of time, amplitude or frequency.]
+ ***** Liminal {relatedTag=Subliminal, relatedTag=Supraliminal} [Situated at a sensory threshold that is barely perceptible or capable of eliciting a response.]
+ ***** Loud {relatedTag=Quiet} [Having a perceived high intensity of sound.]
+ ***** Low {relatedTag=High} [Less than normal in degree, intensity or amount.]
+ ***** Medium {relatedTag=Low, relatedTag=High} [Mid-way between small and large in number, quantity, magnitude or extent.]
+ ***** Negative {relatedTag=Positive} [Involving disadvantage or harm.]
+ ***** Positive {relatedTag=Negative} [Involving advantage or good.]
+ ***** Quiet {relatedTag=Loud} [Characterizing a perceived low intensity of sound.]
+ ***** Rough {relatedTag=Smooth} [Having a surface with perceptible bumps, ridges, or irregularities.]
+ ***** Shallow {relatedTag=Deep} [Having a depth which is relatively low.]
+ ***** Small {relatedTag=Large} [Having a small extent such as in physical dimensions, period of time, amplitude or frequency.]
+ ***** Smooth {relatedTag=Rough} [Having a surface free from bumps, ridges, or irregularities.]
+ ***** Subliminal {relatedTag=Liminal, relatedTag=Supraliminal} [Situated below a sensory threshold that is imperceptible or not capable of eliciting a response.]
+ ***** Supraliminal {relatedTag=Liminal, relatedTag=Subliminal} [Situated above a sensory threshold that is perceptible or capable of eliciting a response.]
+ ***** Thick {relatedTag=Thin} [Wide in width, extent or cross-section.]
+ ***** Thin {relatedTag=Thick} [Narrow in width, extent or cross-section.]
+ **** Categorical-orientation-value [Value indicating the orientation or direction of something.]
+ ***** Backward {relatedTag=Forward} [Directed behind or to the rear.]
+ ***** Downward {relatedTag=Leftward, relatedTag=Rightward, relatedTag=Upward} [Moving or leading toward a lower place or level.]
+ ***** Forward {relatedTag=Backward} [At or near or directed toward the front.]
+ ***** Horizontally-oriented {relatedTag=Vertically-oriented} [Oriented parallel to or in the plane of the horizon.]
+ ***** Leftward {relatedTag=Downward, relatedTag=Rightward, relatedTag=Upward} [Going toward or facing the left.]
+ ***** Oblique {relatedTag=Rotated} [Slanting or inclined in direction, course, or position that is neither parallel nor perpendicular nor right-angular.]
+ ***** Rightward {relatedTag=Downward, relatedTag=Leftward, relatedTag=Upward} [Going toward or situated on the right.]
+ ***** Rotated [Positioned offset around an axis or center.]
+ ***** Upward {relatedTag=Downward, relatedTag=Leftward, relatedTag=Rightward} [Moving, pointing, or leading to a higher place, point, or level.]
+ ***** Vertically-oriented {relatedTag=Horizontally-oriented} [Oriented perpendicular to the plane of the horizon.]
+ *** Physical-value [The value of some physical property of something.]
+ **** Temperature [A measure of hot or cold based on the average kinetic energy of the atoms or molecules in the system.]
+ ***** # {takesValue, valueClass=numericClass, unitClass=temperatureUnits}
+ **** Weight [The relative mass or the quantity of matter contained by something.]
+ ***** # {takesValue, valueClass=numericClass, unitClass=weightUnits}
+ *** Quantitative-value [Something capable of being estimated or expressed with numeric values.]
+ **** Fraction [A numerical value between 0 and 1.]
+ ***** # {takesValue, valueClass=numericClass}
+ **** Item-count [The integer count of something which is usually grouped with the entity it is counting. (Item-count/3, A) indicates that 3 of A have occurred up to this point.]
+ ***** # {takesValue, valueClass=numericClass}
+ **** Item-index [The index of an item in a collection, sequence or other structure. (A (Item-index/3, B)) means that A is item number 3 in B.]
+ ***** # {takesValue, valueClass=numericClass}
+ **** Item-interval [An integer indicating how many items or entities have passed since the last one of these. An item interval of 0 indicates the current item.]
+ ***** # {takesValue, valueClass=numericClass}
+ **** Percentage [A fraction or ratio with 100 understood as the denominator.]
+ ***** # {takesValue, valueClass=numericClass}
+ **** Ratio [A quotient of quantities of the same kind for different components within the same system.]
+ ***** # {takesValue, valueClass=numericClass}
+ *** Spatiotemporal-value [A property relating to space and/or time.]
+ **** Rate-of-change [The amount of change accumulated per unit time.]
+ ***** Acceleration [Magnitude of the rate of change in either speed or direction. The direction of change should be given separately.]
+ ****** # {takesValue, valueClass=numericClass, unitClass=accelerationUnits}
+ ***** Frequency [Frequency is the number of occurrences of a repeating event per unit time.]
+ ****** # {takesValue, valueClass=numericClass, unitClass=frequencyUnits}
+ ***** Jerk-rate [Magnitude of the rate at which the acceleration of an object changes with respect to time. The direction of change should be given separately.]
+ ****** # {takesValue, valueClass=numericClass, unitClass=jerkUnits}
+ ***** Refresh-rate [The frequency with which the image on a computer monitor or similar electronic display screen is refreshed, usually expressed in hertz.]
+ ****** # {takesValue, valueClass=numericClass}
+ ***** Sampling-rate [The number of digital samples taken or recorded per unit of time.]
+ ****** # {takesValue, unitClass=frequencyUnits}
+ ***** Speed [A scalar measure of the rate of movement of the object expressed either as the distance travelled divided by the time taken (average speed) or the rate of change of position with respect to time at a particular point (instantaneous speed). The direction of change should be given separately.]
+ ****** # {takesValue, valueClass=numericClass, unitClass=speedUnits}
+ ***** Temporal-rate [The number of items per unit of time.]
+ ****** # {takesValue, valueClass=numericClass, unitClass=frequencyUnits}
+ **** Spatial-value [Value of an item involving space.]
+ ***** Angle [The amount of inclination of one line to another or the plane of one object to another.]
+ ****** # {takesValue, unitClass=angleUnits, valueClass=numericClass}
+ ***** Distance [A measure of the space separating two objects or points.]
+ ****** # {takesValue, valueClass=numericClass, unitClass=physicalLengthUnits}
+ ***** Position [A reference to the alignment of an object, a particular situation or view of a situation, or the location of an object. Coordinates with respect a specified frame of reference or the default Screen-frame if no frame is given.]
+ ****** X-position [The position along the x-axis of the frame of reference.]
+ ******* # {takesValue, valueClass=numericClass, unitClass=physicalLengthUnits}
+ ****** Y-position [The position along the y-axis of the frame of reference.]
+ ******* # {takesValue, valueClass=numericClass, unitClass=physicalLengthUnits}
+ ****** Z-position [The position along the z-axis of the frame of reference.]
+ ******* # {takesValue, valueClass=numericClass, unitClass=physicalLengthUnits}
+ ***** Size [The physical magnitude of something.]
+ ****** Area [The extent of a 2-dimensional surface enclosed within a boundary.]
+ ******* # {takesValue, valueClass=numericClass, unitClass=areaUnits}
+ ****** Depth [The distance from the surface of something especially from the perspective of looking from the front.]
+ ******* # {takesValue, valueClass=numericClass, unitClass=physicalLengthUnits}
+ ****** Height [The vertical measurement or distance from the base to the top of an object.]
+ ******* # {takesValue, valueClass=numericClass, unitClass=physicalLengthUnits}
+ ****** Length [The linear extent in space from one end of something to the other end, or the extent of something from beginning to end.]
+ ******* # {takesValue, valueClass=numericClass, unitClass=physicalLengthUnits}
+ ****** Volume [The amount of three dimensional space occupied by an object or the capacity of a space or container.]
+ ******* # {takesValue, valueClass=numericClass, unitClass=volumeUnits}
+ ****** Width [The extent or measurement of something from side to side.]
+ ******* # {takesValue, valueClass=numericClass, unitClass=physicalLengthUnits}
+ **** Temporal-value [A characteristic of or relating to time or limited by time.]
+ ***** Delay {topLevelTagGroup, reserved, relatedTag=Duration} [The time at which an event start time is delayed from the current onset time. This tag defines the start time of an event of temporal extent and may be used with the Duration tag.]
+ ****** # {takesValue, valueClass=numericClass, unitClass=timeUnits}
+ ***** Duration {topLevelTagGroup, reserved, relatedTag=Delay} [The period of time during which an event occurs. This tag defines the end time of an event of temporal extent and may be used with the Delay tag.]
+ ****** # {takesValue, valueClass=numericClass, unitClass=timeUnits}
+ ***** Time-interval [The period of time separating two instances, events, or occurrences.]
+ ****** # {takesValue, valueClass=numericClass, unitClass=timeUnits}
+ ***** Time-value [A value with units of time. Usually grouped with tags identifying what the value represents.]
+ ****** # {takesValue, valueClass=numericClass, unitClass=timeUnits}
+ *** Statistical-value {extensionAllowed} [A value based on or employing the principles of statistics.]
+ **** Data-maximum [The largest possible quantity or degree.]
+ ***** # {takesValue, valueClass=numericClass}
+ **** Data-mean [The sum of a set of values divided by the number of values in the set.]
+ ***** # {takesValue, valueClass=numericClass}
+ **** Data-median [The value which has an equal number of values greater and less than it.]
+ ***** # {takesValue, valueClass=numericClass}
+ **** Data-minimum [The smallest possible quantity.]
+ ***** # {takesValue, valueClass=numericClass}
+ **** Probability [A measure of the expectation of the occurrence of a particular event.]
+ ***** # {takesValue, valueClass=numericClass}
+ **** Standard-deviation [A measure of the range of values in a set of numbers. Standard deviation is a statistic used as a measure of the dispersion or variation in a distribution, equal to the square root of the arithmetic mean of the squares of the deviations from the arithmetic mean.]
+ ***** # {takesValue, valueClass=numericClass}
+ **** Statistical-accuracy [A measure of closeness to true value expressed as a number between 0 and 1.]
+ ***** # {takesValue, valueClass=numericClass}
+ **** Statistical-precision [A quantitative representation of the degree of accuracy necessary for or associated with a particular action.]
+ ***** # {takesValue, valueClass=numericClass}
+ **** Statistical-recall [Sensitivity is a measurement datum qualifying a binary classification test and is computed by substracting the false negative rate to the integral numeral 1.]
+ ***** # {takesValue, valueClass=numericClass}
+ **** Statistical-uncertainty [A measure of the inherent variability of repeated observation measurements of a quantity including quantities evaluated by statistical methods and by other means.]
+ ***** # {takesValue, valueClass=numericClass}
+ ** Data-variability-attribute [An attribute describing how something changes or varies.]
+ *** Abrupt [Marked by sudden change.]
+ *** Constant [Continually recurring or continuing without interruption. Not changing in time or space.]
+ *** Continuous {relatedTag=Discrete, relatedTag=Discontinuous} [Uninterrupted in time, sequence, substance, or extent.]
+ *** Decreasing {relatedTag=Increasing} [Becoming smaller or fewer in size, amount, intensity, or degree.]
+ *** Deterministic {relatedTag=Random, relatedTag=Stochastic} [No randomness is involved in the development of the future states of the element.]
+ *** Discontinuous {relatedTag=Continuous} [Having a gap in time, sequence, substance, or extent.]
+ *** Discrete {relatedTag=Continuous, relatedTag=Discontinuous} [Constituting a separate entities or parts.]
+ *** Estimated-value [Something that has been calculated or measured approximately.]
+ *** Exact-value [A value that is viewed to the true value according to some standard.]
+ *** Flickering [Moving irregularly or unsteadily or burning or shining fitfully or with a fluctuating light.]
+ *** Fractal [Having extremely irregular curves or shapes for which any suitably chosen part is similar in shape to a given larger or smaller part when magnified or reduced to the same size.]
+ *** Increasing {relatedTag=Decreasing} [Becoming greater in size, amount, or degree.]
+ *** Random {relatedTag=Deterministic, relatedTag=Stochastic} [Governed by or depending on chance. Lacking any definite plan or order or purpose.]
+ *** Repetitive [A recurring action that is often non-purposeful.]
+ *** Stochastic {relatedTag=Deterministic, relatedTag=Random} [Uses a random probability distribution or pattern that may be analysed statistically but may not be predicted precisely to determine future states.]
+ *** Varying [Differing in size, amount, degree, or nature.]
+ * Environmental-property [Relating to or arising from the surroundings of an agent.]
+ ** Augmented-reality [Using technology that enhances real-world experiences with computer-derived digital overlays to change some aspects of perception of the natural environment. The digital content is shown to the user through a smart device or glasses and responds to changes in the environment.]
+ ** Indoors [Located inside a building or enclosure.]
+ ** Motion-platform [A mechanism that creates the feelings of being in a real motion environment.]
+ ** Outdoors [Any area outside a building or shelter.]
+ ** Real-world [Located in a place that exists in real space and time under realistic conditions.]
+ ** Rural [Of or pertaining to the country as opposed to the city.]
+ ** Terrain [Characterization of the physical features of a tract of land.]
+ *** Composite-terrain [Tracts of land characterized by a mixure of physical features.]
+ *** Dirt-terrain [Tracts of land characterized by a soil surface and lack of vegetation.]
+ *** Grassy-terrain [Tracts of land covered by grass.]
+ *** Gravel-terrain [Tracts of land covered by a surface consisting a loose aggregation of small water-worn or pounded stones.]
+ *** Leaf-covered-terrain [Tracts of land covered by leaves and composited organic material.]
+ *** Muddy-terrain [Tracts of land covered by a liquid or semi-liquid mixture of water and some combination of soil, silt, and clay.]
+ *** Paved-terrain [Tracts of land covered with concrete, asphalt, stones, or bricks.]
+ *** Rocky-terrain [Tracts of land consisting or full of rock or rocks.]
+ *** Sloped-terrain [Tracts of land arranged in a sloping or inclined position.]
+ *** Uneven-terrain [Tracts of land that are not level, smooth, or regular.]
+ ** Urban [Relating to, located in, or characteristic of a city or densely populated area.]
+ ** Virtual-world [Using technology that creates immersive, computer-generated experiences that a person can interact with and navigate through. The digital content is generally delivered to the user through some type of headset and responds to changes in head position or through interaction with other types of sensors. Existing in a virtual setting such as a simulation or game environment.]
+ * Informational-property {extensionAllowed} [Something that pertains to a task.]
+ ** Description {requireChild} [An explanation of what the tag group it is in means. If the description is at the top-level of an event string, the description applies to the event.]
+ *** # {takesValue, valueClass=textClass}
+ ** ID {requireChild} [An alphanumeric name that identifies either a unique object or a unique class of objects. Here the object or class may be an idea, physical countable object (or class), or physical uncountable substance (or class).]
+ *** # {takesValue, valueClass=textClass}
+ ** Label {requireChild} [A string of 20 or fewer characters identifying something. Labels usually refer to general classes of things while IDs refer to specific instances. A term that is associated with some entity. A brief description given for purposes of identification. An identifying or descriptive marker that is attached to an object.]
+ *** # {takesValue, valueClass=nameClass}
+ ** Metadata [Data about data. Information that describes another set of data.]
+ *** CogAtlas [The Cognitive Atlas ID number of something.]
+ **** # {takesValue}
+ *** CogPo [The CogPO ID number of something.]
+ **** # {takesValue}
+ *** Creation-date {requireChild} [The date on which data creation of this element began.]
+ **** # {takesValue, valueClass=dateTimeClass}
+ *** Experimental-note [A brief written record about the experiment.]
+ **** # {takesValue, valueClass=textClass}
+ *** Library-name [Official name of a HED library.]
+ **** # {takesValue, valueClass=nameClass}
+ *** OBO-identifier [The identifier of a term in some Open Biology Ontology (OBO) ontology.]
+ **** # {takesValue, valueClass=nameClass}
+ *** Pathname [The specification of a node (file or directory) in a hierarchical file system, usually specified by listing the nodes top-down.]
+ **** # {takesValue}
+ *** Subject-identifier [A sequence of characters used to identify, name, or characterize a trial or study subject.]
+ **** # {takesValue}
+ *** Version-identifier [An alphanumeric character string that identifies a form or variant of a type or original.]
+ **** # {takesValue} [Usually is a semantic version.]
+ ** Parameter [Something user-defined for this experiment.]
+ *** Parameter-label [The name of the parameter.]
+ **** # {takesValue, valueClass=nameClass}
+ *** Parameter-value [The value of the parameter.]
+ **** # {takesValue, valueClass=textClass}
+ * Organizational-property [Relating to an organization or the action of organizing something.]
+ ** Collection [A tag designating a grouping of items such as in a set or list.]
+ *** # {takesValue, valueClass=nameClass} [Name of the collection.]
+ ** Condition-variable [An aspect of the experiment or task that is to be varied during the experiment. Task-conditions are sometimes called independent variables or contrasts.]
+ *** # {takesValue, valueClass=nameClass} [Name of the condition variable.]
+ ** Control-variable [An aspect of the experiment that is fixed throughout the study and usually is explicitly controlled.]
+ *** # {takesValue, valueClass=nameClass} [Name of the control variable.]
+ ** Def {requireChild, reserved} [A HED-specific utility tag used with a defined name to represent the tags associated with that definition.]
+ *** # {takesValue, valueClass=nameClass} [Name of the definition.]
+ ** Def-expand {requireChild, reserved, tagGroup} [A HED specific utility tag that is grouped with an expanded definition. The child value of the Def-expand is the name of the expanded definition.]
+ *** # {takesValue, valueClass=nameClass}
+ ** Definition {requireChild, reserved, topLevelTagGroup} [A HED-specific utility tag whose child value is the name of the concept and the tag group associated with the tag is an English language explanation of a concept.]
+ *** # {takesValue, valueClass=nameClass} [Name of the definition.]
+ ** Event-context {reserved, topLevelTagGroup, unique} [A special HED tag inserted as part of a top-level tag group to contain information about the interrelated conditions under which the event occurs. The event context includes information about other events that are ongoing when this event happens.]
+ ** Event-stream [A special HED tag indicating that this event is a member of an ordered succession of events.]
+ *** # {takesValue, valueClass=nameClass} [Name of the event stream.]
+ ** Experimental-intertrial [A tag used to indicate a part of the experiment between trials usually where nothing is happening.]
+ *** # {takesValue, valueClass=nameClass} [Optional label for the intertrial block.]
+ ** Experimental-trial [Designates a run or execution of an activity, for example, one execution of a script. A tag used to indicate a particular organizational part in the experimental design often containing a stimulus-response pair or stimulus-response-feedback triad.]
+ *** # {takesValue, valueClass=nameClass} [Optional label for the trial (often a numerical string).]
+ ** Indicator-variable [An aspect of the experiment or task that is measured as task conditions are varied during the experiment. Experiment indicators are sometimes called dependent variables.]
+ *** # {takesValue, valueClass=nameClass} [Name of the indicator variable.]
+ ** Recording [A tag designating the data recording. Recording tags are usually have temporal scope which is the entire recording.]
+ *** # {takesValue, valueClass=nameClass} [Optional label for the recording.]
+ ** Task [An assigned piece of work, usually with a time allotment. A tag used to indicate a linkage the structured activities performed as part of the experiment.]
+ *** # {takesValue, valueClass=nameClass} [Optional label for the task block.]
+ ** Time-block [A tag used to indicate a contiguous time block in the experiment during which something is fixed or noted.]
+ *** # {takesValue, valueClass=nameClass} [Optional label for the task block.]
+ * Sensory-property [Relating to sensation or the physical senses.]
+ ** Sensory-attribute [A sensory characteristic associated with another entity.]
+ *** Auditory-attribute [Pertaining to the sense of hearing.]
+ **** Loudness [Perceived intensity of a sound.]
+ ***** # {takesValue, valueClass=numericClass, valueClass=nameClass}
+ **** Pitch [A perceptual property that allows the user to order sounds on a frequency scale.]
+ ***** # {takesValue, valueClass=numericClass, unitClass=frequencyUnits}
+ **** Sound-envelope [Description of how a sound changes over time.]
+ ***** Sound-envelope-attack [The time taken for initial run-up of level from nil to peak usually beginning when the key on a musical instrument is pressed.]
+ ****** # {takesValue, valueClass=numericClass, unitClass=timeUnits}
+ ***** Sound-envelope-decay [The time taken for the subsequent run down from the attack level to the designated sustain level.]
+ ****** # {takesValue, valueClass=numericClass, unitClass=timeUnits}
+ ***** Sound-envelope-release [The time taken for the level to decay from the sustain level to zero after the key is released.]
+ ****** # {takesValue, valueClass=numericClass, unitClass=timeUnits}
+ ***** Sound-envelope-sustain [The time taken for the main sequence of the sound duration, until the key is released.]
+ ****** # {takesValue, valueClass=numericClass, unitClass=timeUnits}
+ **** Sound-volume [The sound pressure level (SPL) usually the ratio to a reference signal estimated as the lower bound of hearing.]
+ ***** # {takesValue, valueClass=numericClass, unitClass=intensityUnits}
+ **** Timbre [The perceived sound quality of a singing voice or musical instrument.]
+ ***** # {takesValue, valueClass=nameClass}
+ *** Gustatory-attribute [Pertaining to the sense of taste.]
+ **** Bitter [Having a sharp, pungent taste.]
+ **** Salty [Tasting of or like salt.]
+ **** Savory [Belonging to a taste that is salty or spicy rather than sweet.]
+ **** Sour [Having a sharp, acidic taste.]
+ **** Sweet [Having or resembling the taste of sugar.]
+ *** Olfactory-attribute [Having a smell.]
+ *** Somatic-attribute [Pertaining to the feelings in the body or of the nervous system.]
+ **** Pain [The sensation of discomfort, distress, or agony, resulting from the stimulation of specialized nerve endings.]
+ **** Stress [The negative mental, emotional, and physical reactions that occur when environmental stressors are perceived as exceeding the adaptive capacities of the individual.]
+ *** Tactile-attribute [Pertaining to the sense of touch.]
+ **** Tactile-pressure [Having a feeling of heaviness.]
+ **** Tactile-temperature [Having a feeling of hotness or coldness.]
+ **** Tactile-texture [Having a feeling of roughness.]
+ **** Tactile-vibration [Having a feeling of mechanical oscillation.]
+ *** Vestibular-attribute [Pertaining to the sense of balance or body position.]
+ *** Visual-attribute [Pertaining to the sense of sight.]
+ **** Color [The appearance of objects (or light sources) described in terms of perception of their hue and lightness (or brightness) and saturation.]
+ ***** CSS-color [One of 140 colors supported by all browsers. For more details such as the color RGB or HEX values, check: https://www.w3schools.com/colors/colors_groups.asp.]
+ ****** Blue-color [CSS color group.]
+ ******* Blue [CSS-color 0x0000FF.]
+ ******* CadetBlue [CSS-color 0x5F9EA0.]
+ ******* CornflowerBlue [CSS-color 0x6495ED.]
+ ******* DarkBlue [CSS-color 0x00008B.]
+ ******* DeepSkyBlue [CSS-color 0x00BFFF.]
+ ******* DodgerBlue [CSS-color 0x1E90FF.]
+ ******* LightBlue [CSS-color 0xADD8E6.]
+ ******* LightSkyBlue [CSS-color 0x87CEFA.]
+ ******* LightSteelBlue [CSS-color 0xB0C4DE.]
+ ******* MediumBlue [CSS-color 0x0000CD.]
+ ******* MidnightBlue [CSS-color 0x191970.]
+ ******* Navy [CSS-color 0x000080.]
+ ******* PowderBlue [CSS-color 0xB0E0E6.]
+ ******* RoyalBlue [CSS-color 0x4169E1.]
+ ******* SkyBlue [CSS-color 0x87CEEB.]
+ ******* SteelBlue [CSS-color 0x4682B4.]
+ ****** Brown-color [CSS color group.]
+ ******* Bisque [CSS-color 0xFFE4C4.]
+ ******* BlanchedAlmond [CSS-color 0xFFEBCD.]
+ ******* Brown [CSS-color 0xA52A2A.]
+ ******* BurlyWood [CSS-color 0xDEB887.]
+ ******* Chocolate [CSS-color 0xD2691E.]
+ ******* Cornsilk [CSS-color 0xFFF8DC.]
+ ******* DarkGoldenRod [CSS-color 0xB8860B.]
+ ******* GoldenRod [CSS-color 0xDAA520.]
+ ******* Maroon [CSS-color 0x800000.]
+ ******* NavajoWhite [CSS-color 0xFFDEAD.]
+ ******* Olive [CSS-color 0x808000.]
+ ******* Peru [CSS-color 0xCD853F.]
+ ******* RosyBrown [CSS-color 0xBC8F8F.]
+ ******* SaddleBrown [CSS-color 0x8B4513.]
+ ******* SandyBrown [CSS-color 0xF4A460.]
+ ******* Sienna [CSS-color 0xA0522D.]
+ ******* Tan [CSS-color 0xD2B48C.]
+ ******* Wheat [CSS-color 0xF5DEB3.]
+ ****** Cyan-color [CSS color group.]
+ ******* Aqua [CSS-color 0x00FFFF.]
+ ******* Aquamarine [CSS-color 0x7FFFD4.]
+ ******* Cyan [CSS-color 0x00FFFF.]
+ ******* DarkTurquoise [CSS-color 0x00CED1.]
+ ******* LightCyan [CSS-color 0xE0FFFF.]
+ ******* MediumTurquoise [CSS-color 0x48D1CC.]
+ ******* PaleTurquoise [CSS-color 0xAFEEEE.]
+ ******* Turquoise [CSS-color 0x40E0D0.]
+ ****** Gray-color [CSS color group.]
+ ******* Black [CSS-color 0x000000.]
+ ******* DarkGray [CSS-color 0xA9A9A9.]
+ ******* DarkSlateGray [CSS-color 0x2F4F4F.]
+ ******* DimGray [CSS-color 0x696969.]
+ ******* Gainsboro [CSS-color 0xDCDCDC.]
+ ******* Gray [CSS-color 0x808080.]
+ ******* LightGray [CSS-color 0xD3D3D3.]
+ ******* LightSlateGray [CSS-color 0x778899.]
+ ******* Silver [CSS-color 0xC0C0C0.]
+ ******* SlateGray [CSS-color 0x708090.]
+ ****** Green-color [CSS color group.]
+ ******* Chartreuse [CSS-color 0x7FFF00.]
+ ******* DarkCyan [CSS-color 0x008B8B.]
+ ******* DarkGreen [CSS-color 0x006400.]
+ ******* DarkOliveGreen [CSS-color 0x556B2F.]
+ ******* DarkSeaGreen [CSS-color 0x8FBC8F.]
+ ******* ForestGreen [CSS-color 0x228B22.]
+ ******* Green [CSS-color 0x008000.]
+ ******* GreenYellow [CSS-color 0xADFF2F.]
+ ******* LawnGreen [CSS-color 0x7CFC00.]
+ ******* LightGreen [CSS-color 0x90EE90.]
+ ******* LightSeaGreen [CSS-color 0x20B2AA.]
+ ******* Lime [CSS-color 0x00FF00.]
+ ******* LimeGreen [CSS-color 0x32CD32.]
+ ******* MediumAquaMarine [CSS-color 0x66CDAA.]
+ ******* MediumSeaGreen [CSS-color 0x3CB371.]
+ ******* MediumSpringGreen [CSS-color 0x00FA9A.]
+ ******* OliveDrab [CSS-color 0x6B8E23.]
+ ******* PaleGreen [CSS-color 0x98FB98.]
+ ******* SeaGreen [CSS-color 0x2E8B57.]
+ ******* SpringGreen [CSS-color 0x00FF7F.]
+ ******* Teal [CSS-color 0x008080.]
+ ******* YellowGreen [CSS-color 0x9ACD32.]
+ ****** Orange-color [CSS color group.]
+ ******* Coral [CSS-color 0xFF7F50.]
+ ******* DarkOrange [CSS-color 0xFF8C00.]
+ ******* Orange [CSS-color 0xFFA500.]
+ ******* OrangeRed [CSS-color 0xFF4500.]
+ ******* Tomato [CSS-color 0xFF6347.]
+ ****** Pink-color [CSS color group.]
+ ******* DeepPink [CSS-color 0xFF1493.]
+ ******* HotPink [CSS-color 0xFF69B4.]
+ ******* LightPink [CSS-color 0xFFB6C1.]
+ ******* MediumVioletRed [CSS-color 0xC71585.]
+ ******* PaleVioletRed [CSS-color 0xDB7093.]
+ ******* Pink [CSS-color 0xFFC0CB.]
+ ****** Purple-color [CSS color group.]
+ ******* BlueViolet [CSS-color 0x8A2BE2.]
+ ******* DarkMagenta [CSS-color 0x8B008B.]
+ ******* DarkOrchid [CSS-color 0x9932CC.]
+ ******* DarkSlateBlue [CSS-color 0x483D8B.]
+ ******* DarkViolet [CSS-color 0x9400D3.]
+ ******* Fuchsia [CSS-color 0xFF00FF.]
+ ******* Indigo [CSS-color 0x4B0082.]
+ ******* Lavender [CSS-color 0xE6E6FA.]
+ ******* Magenta [CSS-color 0xFF00FF.]
+ ******* MediumOrchid [CSS-color 0xBA55D3.]
+ ******* MediumPurple [CSS-color 0x9370DB.]
+ ******* MediumSlateBlue [CSS-color 0x7B68EE.]
+ ******* Orchid [CSS-color 0xDA70D6.]
+ ******* Plum [CSS-color 0xDDA0DD.]
+ ******* Purple [CSS-color 0x800080.]
+ ******* RebeccaPurple [CSS-color 0x663399.]
+ ******* SlateBlue [CSS-color 0x6A5ACD.]
+ ******* Thistle [CSS-color 0xD8BFD8.]
+ ******* Violet [CSS-color 0xEE82EE.]
+ ****** Red-color [CSS color group.]
+ ******* Crimson [CSS-color 0xDC143C.]
+ ******* DarkRed [CSS-color 0x8B0000.]
+ ******* DarkSalmon [CSS-color 0xE9967A.]
+ ******* FireBrick [CSS-color 0xB22222.]
+ ******* IndianRed [CSS-color 0xCD5C5C.]
+ ******* LightCoral [CSS-color 0xF08080.]
+ ******* LightSalmon [CSS-color 0xFFA07A.]
+ ******* Red [CSS-color 0xFF0000.]
+ ******* Salmon [CSS-color 0xFA8072.]
+ ****** White-color [CSS color group.]
+ ******* AliceBlue [CSS-color 0xF0F8FF.]
+ ******* AntiqueWhite [CSS-color 0xFAEBD7.]
+ ******* Azure [CSS-color 0xF0FFFF.]
+ ******* Beige [CSS-color 0xF5F5DC.]
+ ******* FloralWhite [CSS-color 0xFFFAF0.]
+ ******* GhostWhite [CSS-color 0xF8F8FF.]
+ ******* HoneyDew [CSS-color 0xF0FFF0.]
+ ******* Ivory [CSS-color 0xFFFFF0.]
+ ******* LavenderBlush [CSS-color 0xFFF0F5.]
+ ******* Linen [CSS-color 0xFAF0E6.]
+ ******* MintCream [CSS-color 0xF5FFFA.]
+ ******* MistyRose [CSS-color 0xFFE4E1.]
+ ******* OldLace [CSS-color 0xFDF5E6.]
+ ******* SeaShell [CSS-color 0xFFF5EE.]
+ ******* Snow [CSS-color 0xFFFAFA.]
+ ******* White [CSS-color 0xFFFFFF.]
+ ******* WhiteSmoke [CSS-color 0xF5F5F5.]
+ ****** Yellow-color [CSS color group.]
+ ******* DarkKhaki [CSS-color 0xBDB76B.]
+ ******* Gold [CSS-color 0xFFD700.]
+ ******* Khaki [CSS-color 0xF0E68C.]
+ ******* LemonChiffon [CSS-color 0xFFFACD.]
+ ******* LightGoldenRodYellow [CSS-color 0xFAFAD2.]
+ ******* LightYellow [CSS-color 0xFFFFE0.]
+ ******* Moccasin [CSS-color 0xFFE4B5.]
+ ******* PaleGoldenRod [CSS-color 0xEEE8AA.]
+ ******* PapayaWhip [CSS-color 0xFFEFD5.]
+ ******* PeachPuff [CSS-color 0xFFDAB9.]
+ ******* Yellow [CSS-color 0xFFFF00.]
+ ***** Color-shade [A slight degree of difference between colors, especially with regard to how light or dark it is or as distinguished from one nearly like it.]
+ ****** Dark-shade [A color tone not reflecting much light.]
+ ****** Light-shade [A color tone reflecting more light.]
+ ***** Grayscale [Using a color map composed of shades of gray, varying from black at the weakest intensity to white at the strongest.]
+ ****** # {takesValue, valueClass=numericClass} [White intensity between 0 and 1.]
+ ***** HSV-color [A color representation that models how colors appear under light.]
+ ****** HSV-value [An attribute of a visual sensation according to which an area appears to emit more or less light.]
+ ******* # {takesValue, valueClass=numericClass}
+ ****** Hue [Attribute of a visual sensation according to which an area appears to be similar to one of the perceived colors.]
+ ******* # {takesValue, valueClass=numericClass} [Angular value between 0 and 360.]
+ ****** Saturation [Colorfulness of a stimulus relative to its own brightness.]
+ ******* # {takesValue, valueClass=numericClass} [B value of RGB between 0 and 1.]
+ ***** RGB-color [A color from the RGB schema.]
+ ****** RGB-blue [The blue component.]
+ ******* # {takesValue, valueClass=numericClass} [B value of RGB between 0 and 1.]
+ ****** RGB-green [The green component.]
+ ******* # {takesValue, valueClass=numericClass} [G value of RGB between 0 and 1.]
+ ****** RGB-red [The red component.]
+ ******* # {takesValue, valueClass=numericClass} [R value of RGB between 0 and 1.]
+ **** Luminance [A quality that exists by virtue of the luminous intensity per unit area projected in a given direction.]
+ **** Opacity [A measure of impenetrability to light.]
+ ** Sensory-presentation [The entity has a sensory manifestation.]
+ *** Auditory-presentation [The sense of hearing is used in the presentation to the user.]
+ **** Loudspeaker-separation {suggestedTag=Distance} [The distance between two loudspeakers. Grouped with the Distance tag.]
+ **** Monophonic [Relating to sound transmission, recording, or reproduction involving a single transmission path.]
+ **** Silent [The absence of ambient audible sound or the state of having ceased to produce sounds.]
+ **** Stereophonic [Relating to, or constituting sound reproduction involving the use of separated microphones and two transmission channels to achieve the sound separation of a live hearing.]
+ *** Gustatory-presentation [The sense of taste used in the presentation to the user.]
+ *** Olfactory-presentation [The sense of smell used in the presentation to the user.]
+ *** Somatic-presentation [The nervous system is used in the presentation to the user.]
+ *** Tactile-presentation [The sense of touch used in the presentation to the user.]
+ *** Vestibular-presentation [The sense balance used in the presentation to the user.]
+ *** Visual-presentation [The sense of sight used in the presentation to the user.]
+ **** 2D-view [A view showing only two dimensions.]
+ **** 3D-view [A view showing three dimensions.]
+ **** Background-view [Parts of the view that are farthest from the viewer and usually the not part of the visual focus.]
+ **** Bistable-view [Something having two stable visual forms that have two distinguishable stable forms as in optical illusions.]
+ **** Foreground-view [Parts of the view that are closest to the viewer and usually the most important part of the visual focus.]
+ **** Foveal-view [Visual presentation directly on the fovea. A view projected on the small depression in the retina containing only cones and where vision is most acute.]
+ **** Map-view [A diagrammatic representation of an area of land or sea showing physical features, cities, roads.]
+ ***** Aerial-view [Elevated view of an object from above, with a perspective as though the observer were a bird.]
+ ***** Satellite-view [A representation as captured by technology such as a satellite.]
+ ***** Street-view [A 360-degrees panoramic view from a position on the ground.]
+ **** Peripheral-view [Indirect vision as it occurs outside the point of fixation.]
+ * Task-property {extensionAllowed} [Something that pertains to a task.]
+ ** Task-action-type [How an agent action should be interpreted in terms of the task specification.]
+ *** Appropriate-action {relatedTag=Inappropriate-action} [An action suitable or proper in the circumstances.]
+ *** Correct-action {relatedTag=Incorrect-action, relatedTag=Indeterminate-action} [An action that was a correct response in the context of the task.]
+ *** Correction [An action offering an improvement to replace a mistake or error.]
+ *** Done-indication {relatedTag=Ready-indication} [An action that indicates that the participant has completed this step in the task.]
+ *** Imagined-action [Form a mental image or concept of something. This is used to identity something that only happened in the imagination of the participant as in imagined movements in motor imagery paradigms.]
+ *** Inappropriate-action {relatedTag=Appropriate-action} [An action not in keeping with what is correct or proper for the task.]
+ *** Incorrect-action {relatedTag=Correct-action, relatedTag=Indeterminate-action} [An action considered wrong or incorrect in the context of the task.]
+ *** Indeterminate-action {relatedTag=Correct-action, relatedTag=Incorrect-action, relatedTag=Miss, relatedTag=Near-miss} [An action that cannot be distinguished between two or more possibibities in the current context. This tag might be applied when an outside evaluator or a classification algorithm cannot determine a definitive result.]
+ *** Miss {relatedTag=Near-miss} [An action considered to be a failure in the context of the task. For example, if the agent is supposed to try to hit a target and misses.]
+ *** Near-miss {relatedTag=Miss} [An action barely satisfied the requirements of the task. In a driving experiment for example this could pertain to a narrowly avoided collision or other accident.]
+ *** Omitted-action [An expected response was skipped.]
+ *** Ready-indication {relatedTag=Done-indication} [An action that indicates that the participant is ready to perform the next step in the task.]
+ ** Task-attentional-demand [Strategy for allocating attention toward goal-relevant information.]
+ *** Bottom-up-attention {relatedTag=Top-down-attention} [Attentional guidance purely by externally driven factors to stimuli that are salient because of their inherent properties relative to the background. Sometimes this is referred to as stimulus driven.]
+ *** Covert-attention {relatedTag=Overt-attention} [Paying attention without moving the eyes.]
+ *** Divided-attention {relatedTag=Focused-attention} [Integrating parallel multiple stimuli. Behavior involving responding simultaneously to multiple tasks or multiple task demands.]
+ *** Focused-attention {relatedTag=Divided-attention} [Responding discretely to specific visual, auditory, or tactile stimuli.]
+ *** Orienting-attention [Directing attention to a target stimulus.]
+ *** Overt-attention {relatedTag=Covert-attention} [Selectively processing one location over others by moving the eyes to point at that location.]
+ *** Selective-attention [Maintaining a behavioral or cognitive set in the face of distracting or competing stimuli. Ability to pay attention to a limited array of all available sensory information.]
+ *** Sustained-attention [Maintaining a consistent behavioral response during continuous and repetitive activity.]
+ *** Switched-attention [Having to switch attention between two or more modalities of presentation.]
+ *** Top-down-attention {relatedTag=Bottom-up-attention} [Voluntary allocation of attention to certain features. Sometimes this is referred to goal-oriented attention.]
+ ** Task-effect-evidence [The evidence supporting the conclusion that the event had the specified effect.]
+ *** Behavioral-evidence [An indication or conclusion based on the behavior of an agent.]
+ *** Computational-evidence [A type of evidence in which data are produced, and/or generated, and/or analyzed on a computer.]
+ *** External-evidence [A phenomenon that follows and is caused by some previous phenomenon.]
+ *** Intended-effect [A phenomenon that is intended to follow and be caused by some previous phenomenon.]
+ ** Task-event-role [The purpose of an event with respect to the task.]
+ *** Experimental-stimulus [Part of something designed to elicit a response in the experiment.]
+ *** Incidental [A sensory or other type of event that is unrelated to the task or experiment.]
+ *** Instructional [Usually associated with a sensory event intended to give instructions to the participant about the task or behavior.]
+ *** Mishap [Unplanned disruption such as an equipment or experiment control abnormality or experimenter error.]
+ *** Participant-response [Something related to a participant actions in performing the task.]
+ *** Task-activity [Something that is part of the overall task or is necessary to the overall experiment but is not directly part of a stimulus-response cycle. Examples would be taking a survey or provided providing a silva sample.]
+ *** Warning [Something that should warn the participant that the parameters of the task have been or are about to be exceeded such as a warning message about getting too close to the shoulder of the road in a driving task.]
+ ** Task-relationship [Specifying organizational importance of sub-tasks.]
+ *** Background-subtask [A part of the task which should be performed in the background as for example inhibiting blinks due to instruction while performing the primary task.]
+ *** Primary-subtask [A part of the task which should be the primary focus of the participant.]
+ ** Task-stimulus-role [The role the stimulus plays in the task.]
+ *** Cue [A signal for an action, a pattern of stimuli indicating a particular response.]
+ *** Distractor [A person or thing that distracts or a plausible but incorrect option in a multiple-choice question. In pyschological studies this is sometimes referred to as a foil.]
+ *** Expected {relatedTag=Unexpected, suggestedTag=Target} [Considered likely, probable or anticipated. Something of low information value as in frequent non-targets in an RSVP paradigm.]
+ *** Extraneous [Irrelevant or unrelated to the subject being dealt with.]
+ *** Feedback [An evaluative response to an inquiry, process, event, or activity.]
+ *** Go-signal {relatedTag=Stop-signal} [An indicator to proceed with a planned action.]
+ *** Meaningful [Conveying significant or relevant information.]
+ *** Newly-learned [Representing recently acquired information or understanding.]
+ *** Non-informative [Something that is not useful in forming an opinion or judging an outcome.]
+ *** Non-target {relatedTag=Target} [Something other than that done or looked for. Also tag Expected if the Non-target is frequent.]
+ *** Not-meaningful [Not having a serious, important, or useful quality or purpose.]
+ *** Novel [Having no previous example or precedent or parallel.]
+ *** Oddball {relatedTag=Unexpected, suggestedTag=Target} [Something unusual, or infrequent.]
+ *** Penalty [A disadvantage, loss, or hardship due to some action.]
+ *** Planned {relatedTag=Unplanned} [Something that was decided on or arranged in advance.]
+ *** Priming [An implicit memory effect in which exposure to a stimulus influences response to a later stimulus.]
+ *** Query [A sentence of inquiry that asks for a reply.]
+ *** Reward [A positive reinforcement for a desired action, behavior or response.]
+ *** Stop-signal {relatedTag=Go-signal} [An indicator that the agent should stop the current activity.]
+ *** Target [Something fixed as a goal, destination, or point of examination.]
+ *** Threat [An indicator that signifies hostility and predicts an increased probability of attack.]
+ *** Timed [Something planned or scheduled to be done at a particular time or lasting for a specified amount of time.]
+ *** Unexpected {relatedTag=Expected} [Something that is not anticipated.]
+ *** Unplanned {relatedTag=Planned} [Something that has not been planned as part of the task.]
+
+'''Relation''' {extensionAllowed} [Concerns the way in which two or more people or things are connected.]
+ * Comparative-relation [Something considered in comparison to something else. The first entity is the focus.]
+ ** Approximately-equal-to [(A, (Approximately-equal-to, B)) indicates that A and B have almost the same value. Here A and B could refer to sizes, orders, positions or other quantities.]
+ ** Equal-to [(A, (Equal-to, B)) indicates that the size or order of A is the same as that of B.]
+ ** Greater-than [(A, (Greater-than, B)) indicates that the relative size or order of A is bigger than that of B.]
+ ** Greater-than-or-equal-to [(A, (Greater-than-or-equal-to, B)) indicates that the relative size or order of A is bigger than or the same as that of B.]
+ ** Less-than [(A, (Less-than, B)) indicates that A is smaller than B. Here A and B could refer to sizes, orders, positions or other quantities.]
+ ** Less-than-or-equal-to [(A, (Less-than-or-equal-to, B)) indicates that the relative size or order of A is smaller than or equal to B.]
+ ** Not-equal-to [(A, (Not-equal-to, B)) indicates that the size or order of A is not the same as that of B.]
+ * Connective-relation [Indicates two entities are related in some way. The first entity is the focus.]
+ ** Belongs-to [(A, (Belongs-to, B)) indicates that A is a member of B.]
+ ** Connected-to [(A, (Connected-to, B)) indicates that A is related to B in some respect, usually through a direct link.]
+ ** Contained-in [(A, (Contained-in, B)) indicates that A is completely inside of B.]
+ ** Described-by [(A, (Described-by, B)) indicates that B provides information about A.]
+ ** From-to [(A, (From-to, B)) indicates a directional relation from A to B. A is considered the source.]
+ ** Group-of [(A, (Group-of, B)) indicates A is a group of items of type B.]
+ ** Implied-by [(A, (Implied-by, B)) indicates B is suggested by A.]
+ ** Includes [(A, (Includes, B)) indicates that A has B as a member or part.]
+ ** Interacts-with [(A, (Interacts-with, B)) indicates A and B interact, possibly reciprocally.]
+ ** Member-of [(A, (Member-of, B)) indicates A is a member of group B.]
+ ** Part-of [(A, (Part-of, B)) indicates A is a part of the whole B.]
+ ** Performed-by [(A, (Performed-by, B)) indicates that the action or procedure A was carried out by agent B.]
+ ** Performed-using [(A, (Performed-using, B)) indicates that the action or procedure A was accomplished using B.]
+ ** Related-to [(A, (Related-to, B)) indicates A has some relationship to B.]
+ ** Unrelated-to [(A, (Unrelated-to, B)) indicates that A is not related to B. For example, A is not related to Task.]
+ * Directional-relation [A relationship indicating direction of change of one entity relative to another. The first entity is the focus.]
+ ** Away-from [(A, (Away-from, B)) indicates that A is going or has moved away from B. The meaning depends on A and B.]
+ ** Towards [(A, (Towards, B)) indicates that A is going to or has moved to B. The meaning depends on A and B.]
+ * Logical-relation [Indicating a logical relationship between entities. The first entity is usually the focus.]
+ ** And [(A, (And, B)) means A and B are both in effect.]
+ ** Or [(A, (Or, B)) means at least one of A and B are in effect.]
+ * Spatial-relation [Indicating a relationship about position between entities.]
+ ** Above [(A, (Above, B)) means A is in a place or position that is higher than B.]
+ ** Across-from [(A, (Across-from, B)) means A is on the opposite side of something from B.]
+ ** Adjacent-to [(A, (Adjacent-to, B)) indicates that A is next to B in time or space.]
+ ** Ahead-of [(A, (Ahead-of, B)) indicates that A is further forward in time or space in B.]
+ ** Around [(A, (Around, B)) means A is in or near the present place or situation of B.]
+ ** Behind [(A, (Behind, B)) means A is at or to the far side of B, typically so as to be hidden by it.]
+ ** Below [(A, (Below, B)) means A is in a place or position that is lower than the position of B.]
+ ** Between [(A, (Between, (B, C))) means A is in the space or interval separating B and C.]
+ ** Bilateral-to [(A, (Bilateral, B)) means A is on both sides of B or affects both sides of B.]
+ ** Bottom-edge-of {relatedTag=Left-edge-of, relatedTag=Right-edge-of, relatedTag=Top-edge-of} [(A, (Bottom-edge-of, B)) means A is on the bottom most part or or near the boundary of B.]
+ ** Boundary-of [(A, (Boundary-of, B)) means A is on or part of the edge or boundary of B.]
+ ** Center-of [(A, (Center-of, B)) means A is at a point or or in an area that is approximately central within B.]
+ ** Close-to [(A, (Close-to, B)) means A is at a small distance from or is located near in space to B.]
+ ** Far-from [(A, (Far-from, B)) means A is at a large distance from or is not located near in space to B.]
+ ** In-front-of [(A, (In-front-of, B)) means A is in a position just ahead or at the front part of B, potentially partially blocking B from view.]
+ ** Left-edge-of {relatedTag=Bottom-edge-of, relatedTag=Right-edge-of, relatedTag=Top-edge-of} [(A, (Left-edge-of, B)) means A is located on the left side of B on or near the boundary of B.]
+ ** Left-side-of {relatedTag=Right-side-of} [(A, (Left-side-of, B)) means A is located on the left side of B usually as part of B.]
+ ** Lower-center-of {relatedTag=Center-of, relatedTag=Lower-left-of, relatedTag=Lower-right-of, relatedTag=Upper-center-of, relatedTag=Upper-right-of} [(A, (Lower-center-of, B)) means A is situated on the lower center part of B (due south). This relation is often used to specify qualitative information about screen position.]
+ ** Lower-left-of {relatedTag=Center-of, relatedTag=Lower-center-of, relatedTag=Lower-right-of, relatedTag=Upper-center-of, relatedTag=Upper-left-of, relatedTag=Upper-right-of} [(A, (Lower-left-of, B)) means A is situated on the lower left part of B. This relation is often used to specify qualitative information about screen position.]
+ ** Lower-right-of {relatedTag=Center-of, relatedTag=Lower-center-of, relatedTag=Lower-left-of, relatedTag=Upper-left-of, relatedTag=Upper-center-of, relatedTag=Upper-left-of, relatedTag=Lower-right-of} [(A, (Lower-right-of, B)) means A is situated on the lower right part of B. This relation is often used to specify qualitative information about screen position.]
+ ** Outside-of [(A, (Outside-of, B)) means A is located in the space around but not including B.]
+ ** Over [(A, (Over, B)) means A above is above B so as to cover or protect or A extends over the a general area as from a from a vantage point.]
+ ** Right-edge-of {relatedTag=Bottom-edge-of, relatedTag=Left-edge-of, relatedTag=Top-edge-of} [(A, (Right-edge-of, B)) means A is located on the right side of B on or near the boundary of B.]
+ ** Right-side-of {relatedTag=Left-side-of} [(A, (Right-side-of, B)) means A is located on the right side of B usually as part of B.]
+ ** To-left-of [(A, (To-left-of, B)) means A is located on or directed toward the side to the west of B when B is facing north. This term is used when A is not part of B.]
+ ** To-right-of [(A, (To-right-of, B)) means A is located on or directed toward the side to the east of B when B is facing north. This term is used when A is not part of B.]
+ ** Top-edge-of {relatedTag=Left-edge-of, relatedTag=Right-edge-of, relatedTag=Bottom-edge-of} [(A, (Top-edge-of, B)) means A is on the uppermost part or or near the boundary of B.]
+ ** Top-of [(A, (Top-of, B)) means A is on the uppermost part, side, or surface of B.]
+ ** Underneath [(A, (Underneath, B)) means A is situated directly below and may be concealed by B.]
+ ** Upper-center-of {relatedTag=Center-of, relatedTag=Lower-center-of, relatedTag=Lower-left-of, relatedTag=Lower-right-of, relatedTag=Upper-center-of, relatedTag=Upper-right-of} [(A, (Upper-center-of, B)) means A is situated on the upper center part of B (due north). This relation is often used to specify qualitative information about screen position.]
+ ** Upper-left-of {relatedTag=Center-of, relatedTag=Lower-center-of, relatedTag=Lower-left-of, relatedTag=Lower-right-of, relatedTag=Upper-center-of, relatedTag=Upper-right-of} [(A, (Upper-left-of, B)) means A is situated on the upper left part of B. This relation is often used to specify qualitative information about screen position.]
+ ** Upper-right-of {relatedTag=Center-of, relatedTag=Lower-center-of, relatedTag=Lower-left-of, relatedTag=Upper-left-of, relatedTag=Upper-center-of, relatedTag=Lower-right-of} [(A, (Upper-right-of, B)) means A is situated on the upper right part of B. This relation is often used to specify qualitative information about screen position.]
+ ** Within [(A, (Within, B)) means A is on the inside of or contained in B.]
+ * Temporal-relation [A relationship that includes a temporal or time-based component.]
+ ** After [(A, (After B)) means A happens at a time subsequent to a reference time related to B.]
+ ** Asynchronous-with [(A, (Asynchronous-with, B)) means A happens at times not occurring at the same time or having the same period or phase as B.]
+ ** Before [(A, (Before B)) means A happens at a time earlier in time or order than B.]
+ ** During [(A, (During, B)) means A happens at some point in a given period of time in which B is ongoing.]
+ ** Synchronous-with [(A, (Synchronous-with, B)) means A happens at occurs at the same time or rate as B.]
+ ** Waiting-for [(A, (Waiting-for, B)) means A pauses for something to happen in B.]
+
+'''Sleep-and-drowsiness''' {requireChild, inLibrary=score} [The features of the ongoing activity during sleep are scored here. If abnormal graphoelements appear, disappear or change their morphology during sleep, that is not scored here but at the entry corresponding to that graphooelement (as a modulator).]
+ * Sleep-architecture {suggestedTag=Property-not-possible-to-determine, inLibrary=score} [For longer recordings. Only to be scored if whole-night sleep is part of the recording. It is a global descriptor of the structure and pattern of sleep: estimation of the amount of time spent in REM and NREM sleep, sleep duration, NREM-REM cycle.]
+ ** Normal-sleep-architecture {inLibrary=score}
+ ** Abnormal-sleep-architecture {inLibrary=score}
+ * Sleep-stage-reached {requireChild, suggestedTag=Property-not-possible-to-determine, suggestedTag=Finding-significance-to-recording, inLibrary=score} [For normal sleep patterns the sleep stages reached during the recording can be specified]
+ ** Sleep-stage-N1 {inLibrary=score} [Sleep stage 1.]
*** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- ** Property-not-possible-to-determine {inLibrary=score} [Not possible to determine.]
+ ** Sleep-stage-N2 {inLibrary=score} [Sleep stage 2.]
*** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- ** Property-exists {inLibrary=score}
+ ** Sleep-stage-N3 {inLibrary=score} [Sleep stage 3.]
*** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
- ** Property-absence {inLibrary=score}
+ ** Sleep-stage-REM {inLibrary=score} [Rapid eye movement.]
*** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
+ * Sleep-spindles {suggestedTag=Finding-significance-to-recording, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-amplitude-asymmetry, inLibrary=score} [Burst at 11-15 Hz but mostly at 12-14 Hz generally diffuse but of higher voltage over the central regions of the head, occurring during sleep. Amplitude varies but is mostly below 50 microV in the adult.]
+ * Arousal-pattern {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, inLibrary=score} [Arousal pattern in children. Prolonged, marked high voltage 4-6/s activity in all leads with some intermixed slower frequencies, in children.]
+ * Frontal-arousal-rhythm {suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, inLibrary=score} [Prolonged (up to 20s) rhythmical sharp or spiky activity over the frontal areas (maximum over the frontal midline) seen at arousal from sleep in children with minimal cerebral dysfunction.]
+ * Vertex-wave {suggestedTag=Finding-significance-to-recording, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-amplitude-asymmetry, inLibrary=score} [Sharp potential, maximal at the vertex, negative relative to other areas, apparently occurring spontaneously during sleep or in response to a sensory stimulus during sleep or wakefulness. May be single or repetitive. Amplitude varies but rarely exceeds 250 microV. Abbreviation: V wave. Synonym: vertex sharp wave.]
+ * K-complex {suggestedTag=Finding-significance-to-recording, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-amplitude-asymmetry, inLibrary=score} [A burst of somewhat variable appearance, consisting most commonly of a high voltage negative slow wave followed by a smaller positive slow wave frequently associated with a sleep spindle. Duration greater than 0.5 s. Amplitude is generally maximal in the frontal vertex. K complexes occur during nonREM sleep, apparently spontaneously, or in response to sudden sensory / auditory stimuli, and are not specific for any individual sensory modality.]
+ * Saw-tooth-waves {suggestedTag=Finding-significance-to-recording, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-amplitude-asymmetry, inLibrary=score} [Vertex negative 2-5 Hz waves occuring in series during REM sleep]
+ * POSTS {suggestedTag=Finding-significance-to-recording, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-amplitude-asymmetry, inLibrary=score} [Positive occipital sharp transients of sleep. Sharp transient maximal over the occipital regions, positive relative to other areas, apparently occurring spontaneously during sleep. May be single or repetitive. Amplitude varies but is generally bellow 50 microV.]
+ * Hypnagogic-hypersynchrony {suggestedTag=Finding-significance-to-recording, suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Finding-amplitude-asymmetry, inLibrary=score} [Bursts of bilateral, synchronous delta or theta activity of large amplitude, occasionally with superimposed faster components, occurring during falling asleep or during awakening, in children.]
+ * Non-reactive-sleep {inLibrary=score} [EEG activity consisting of normal sleep graphoelements, but which cannot be interrupted by external stimuli/ the patient cannot be waken.]
+
+'''Uncertain-significant-pattern''' {requireChild, inLibrary=score} [EEG graphoelements or rhythms that resemble abnormal patterns but that are not necessarily associated with a pathology, and the physician does not consider them abnormal in the context of the scored recording (like normal variants and patterns).]
+ * Sharp-transient-pattern {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, inLibrary=score}
+ * Wicket-spikes {inLibrary=score} [Spike-like monophasic negative single waves or trains of waves occurring over the temporal regions during drowsiness that have an arcuate or mu-like appearance. These are mainly seen in older individuals and represent a benign variant that is of little clinical significance.]
+ * Small-sharp-spikes {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, inLibrary=score} [Benign epileptiform Transients of Sleep (BETS). Small sharp spikes (SSS) of very short duration and low amplitude, often followed by a small theta wave, occurring in the temporal regions during drowsiness and light sleep. They occur on one or both sides (often asynchronously). The main negative and positive components are of about equally spiky character. Rarely seen in children, they are seen most often in adults and the elderly. Two thirds of the patients have a history of epileptic seizures.]
+ * Fourteen-six-Hz-positive-burst {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, inLibrary=score} [Burst of arch-shaped waves at 13-17 Hz and/or 5-7-Hz but most commonly at 14 and or 6 Hz seen generally over the posterior temporal and adjacent areas of one or both sides of the head during sleep. The sharp peaks of its component waves are positive with respect to other regions. Amplitude varies but is generally below 75 micro V. Comments: (1) best demonstrated by referential recording using contralateral earlobe or other remote, reference electrodes. (2) This pattern has no established clinical significance.]
+ * Six-Hz-spike-slow-wave {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, inLibrary=score} [Spike and slow wave complexes at 4-7Hz, but mostly at 6 Hz occurring generally in brief bursts bilaterally and synchronously, symmetrically or asymmetrically, and either confined to or of larger amplitude over the posterior or anterior regions of the head. The spike has a strong positive component. Amplitude varies but is generally smaller than that of spike-and slow-wave complexes repeating at slower rates. Comment: this pattern should be distinguished from epileptiform discharges. Synonym: wave and spike phantom.]
+ * Rudimentary-spike-wave-complex {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, inLibrary=score} [Synonym: Pseudo petit mal discharge. Paroxysmal discharge that consists of generalized or nearly generalized high voltage 3 to 4/sec waves with poorly developed spike in the positive trough between the slow waves, occurring in drowsiness only. It is found only in infancy and early childhood when marked hypnagogic rhythmical theta activity is paramount in the drowsy state.]
+ * Slow-fused-transient {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, inLibrary=score} [A posterior slow-wave preceded by a sharp-contoured potential that blends together with the ensuing slow wave, in children.]
+ * Needle-like-occipital-spikes-blind {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, inLibrary=score} [Spike discharges of a particularly fast and needle-like character develop over the occipital region in most congenitally blind children. Completely disappear during childhood or adolescence.]
+ * Subclinical-rhythmic-EEG-discharge-adults {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, inLibrary=score} [Subclinical rhythmic EEG discharge of adults (SERDA). A rhythmic pattern seen in the adult age group, mainly in the waking state or drowsiness. It consists of a mixture of frequencies, often predominant in the theta range. The onset may be fairly abrupt with widespread sharp rhythmical theta and occasionally with delta activity. As to the spatial distribution, a maximum of this discharge is usually found over the centroparietal region and especially over the vertex. It may resemble a seizure discharge but is not accompanied by any clinical signs or symptoms.]
+ * Rhythmic-temporal-theta-burst-drowsiness {inLibrary=score} [Rhythmic temporal theta burst of drowsiness (RTTD). Characteristic burst of 4-7 Hz waves frequently notched by faster waves, occurring over the temporal regions of the head during drowsiness. Synonym: psychomotor variant pattern. Comment: this is a pattern of drowsiness that is of no clinical significance.]
+ * Temporal-slowing-elderly {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, inLibrary=score} [Focal theta and/or delta activity over the temporal regions, especially the left, in persons over the age of 60. Amplitudes are low/similar to the background activity. Comment: focal temporal theta was found in 20 percent of people between the ages of 40-59 years, and 40 percent of people between 60 and 79 years. One third of people older than 60 years had focal temporal delta activity.]
+ * Breach-rhythm {suggestedTag=Brain-laterality, suggestedTag=Brain-region, suggestedTag=Sensors, suggestedTag=Appearance-mode, suggestedTag=Discharge-pattern, inLibrary=score} [Rhythmical activity recorded over cranial bone defects. Usually it is in the 6 to 11/sec range, does not respond to movements.]
+ * Other-uncertain-significant-pattern {requireChild, inLibrary=score}
+ ** # {takesValue, valueClass=textClass, inLibrary=score} [Free text.]
!# end schema
@@ -2122,10 +2133,10 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
* conversionFactor {unitProperty, unitModifierProperty} [The multiplicative factor to multiply these units to convert to default units.]
* deprecatedFrom {elementProperty} [Indicates that this element is deprecated. The value of the attribute is the latest schema version in which the element appeared in undeprecated form.]
* defaultUnits {unitClassProperty} [A schema attribute of unit classes specifying the default units to use if the placeholder has a unit class but the substituted value has no units.]
-* extensionAllowed {boolProperty, nodeProperty, isInherited} [A schema attribute indicating that users can add unlimited levels of child nodes under this tag. This tag is propagated to child nodes with the exception of the hashtag placeholders.]
+* extensionAllowed {boolProperty, nodeProperty, isInheritedProperty} [A schema attribute indicating that users can add unlimited levels of child nodes under this tag. This tag is propagated to child nodes with the exception of the hashtag placeholders.]
* inLibrary {elementProperty} [Indicates this schema element came from the named library schema, not the standard schema. This attribute is added by tools when a library schema is merged into its partnered standard schema.]
* recommended {boolProperty, nodeProperty} [A schema attribute indicating that the event-level HED string should include this tag.]
-* relatedTag {nodeProperty, isInherited} [A schema attribute suggesting HED tags that are closely related to this tag. This attribute is used by tagging tools.]
+* relatedTag {nodeProperty, isInheritedProperty} [A schema attribute suggesting HED tags that are closely related to this tag. This attribute is used by tagging tools.]
* requireChild {boolProperty, nodeProperty} [A schema attribute indicating that one of the node elements descendants must be included when using this tag.]
* required {boolProperty, nodeProperty} [A schema attribute indicating that every event-level HED string should include this tag.]
* reserved {boolProperty, nodeProperty} [A schema attribute indicating that this tag has special meaning and requires special handling by tools.]
@@ -2133,7 +2144,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
* SIUnit {boolProperty, unitProperty} [A schema attribute indicating that this unit element is an SI unit and can be modified by multiple and submultiple names. Note that some units such as byte are designated as SI units although they are not part of the standard.]
* SIUnitModifier {boolProperty, unitModifierProperty} [A schema attribute indicating that this SI unit modifier represents a multiple or submultiple of a base unit rather than a unit symbol.]
* SIUnitSymbolModifier {boolProperty, unitModifierProperty} [A schema attribute indicating that this SI unit modifier represents a multiple or submultiple of a unit symbol rather than a base symbol.]
-* suggestedTag {nodeProperty, isInherited} [A schema attribute that indicates another tag that is often associated with this tag. This attribute is used by tagging tools to provide tagging suggestions.]
+* suggestedTag {nodeProperty, isInheritedProperty} [A schema attribute that indicates another tag that is often associated with this tag. This attribute is used by tagging tools to provide tagging suggestions.]
* tagGroup {boolProperty, nodeProperty} [A schema attribute indicating the tag can only appear inside a tag group.]
* takesValue {boolProperty, nodeProperty} [A schema attribute indicating the tag is a hashtag placeholder that is expected to be replaced with a user-defined value.]
* topLevelTagGroup {boolProperty, nodeProperty} [A schema attribute indicating that this tag (or its descendants) can only appear in a top-level tag group. A tag group can have at most one tag with this attribute.]
@@ -2146,7 +2157,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
'''Properties'''
* boolProperty [Indicates that the schema attribute represents something that is either true or false and does not have a value. Attributes without this value are assumed to have string values.]
* elementProperty [Indicates this schema attribute can apply to any type of element(tag term, unit class, etc).]
-* isInherited [Indicates that this attribute is inherited by child nodes. This property only applies to schema attributes for nodes.]
+* isInheritedProperty [Indicates that this attribute is inherited by child nodes. This property only applies to schema attributes for nodes.]
* nodeProperty [Indicates this schema attribute applies to node (tag-term) elements. This was added to allow for an attribute to apply to multiple elements.]
* unitClassProperty [Indicates that the schema attribute is meant to be applied to unit classes.]
* unitModifierProperty [Indicates that the schema attribute is meant to be applied to unit modifier classes.]
@@ -2161,6 +2172,6 @@ A second revised and extended version of SCORE achieved international consensus.
[1] Beniczky, Sandor, et al. "Standardized computer based organized reporting of EEG: SCORE." Epilepsia 54.6 (2013).
[2] Beniczky, Sandor, et al. "Standardized computer based organized reporting of EEG: SCORE second version." Clinical Neurophysiology 128.11 (2017).
-TPA, November 2022
+TPA, March 2023
!# end hed
diff --git a/tests/data/schema_tests/merge_tests/HED_score_merged.xml b/tests/data/schema_tests/merge_tests/HED_score_merged.xml
index 149841e13..52731f8ee 100644
--- a/tests/data/schema_tests/merge_tests/HED_score_merged.xml
+++ b/tests/data/schema_tests/merge_tests/HED_score_merged.xml
@@ -1,5 +1,5 @@
-
+This schema is a Hierarchical Event Descriptors (HED) Library Schema implementation of Standardized Computer-based Organized Reporting of EEG (SCORE)[1,2] for describing events occurring during neuroimaging time series recordings.
The HED-SCORE library schema allows neurologists, neurophysiologists, and brain researchers to annotate electrophysiology recordings using terms from an internationally accepted set of defined terms (SCORE) compatible with the HED framework.
The resulting annotations are understandable to clinicians and directly usable in computer analysis.
@@ -94,5921 +94,2860 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Action
- Do something.
+ Modulator
+ External stimuli / interventions or changes in the alertness level (sleep) that modify: the background activity, or how often a graphoelement is occurring, or change other features of the graphoelement (like intra-burst frequency). For each observed finding, there is an option of specifying how they are influenced by the modulators and procedures that were done during the recording.
- extensionAllowed
+ requireChild
+
+
+ inLibrary
+ score
- Communicate
- Convey knowledge of or information about something.
+ Sleep-modulator
+
+ inLibrary
+ score
+
- Communicate-gesturally
- Communicate nonverbally using visible bodily actions, either in place of speech or together and in parallel with spoken words. Gestures include movement of the hands, face, or other parts of the body.
+ Sleep-deprivation
- relatedTag
- Move-face
- Move-upper-extremity
+ inLibrary
+ score
- Clap-hands
- Strike the palms of against one another resoundingly, and usually repeatedly, especially to express approval.
-
-
- Clear-throat
- Cough slightly so as to speak more clearly, attract attention, or to express hesitancy before saying something awkward.
+ #
+ Free text.
- relatedTag
- Move-face
- Move-head
+ takesValue
-
-
- Frown
- Express disapproval, displeasure, or concentration, typically by turning down the corners of the mouth.
- relatedTag
- Move-face
+ valueClass
+ textClass
-
-
- Grimace
- Make a twisted expression, typically expressing disgust, pain, or wry amusement.
- relatedTag
- Move-face
+ inLibrary
+ score
+
+
+ Sleep-following-sleep-deprivation
+
+ inLibrary
+ score
+
- Nod-head
- Tilt head in alternating up and down arcs along the sagittal plane. It is most commonly, but not universally, used to indicate agreement, acceptance, or acknowledgement.
+ #
+ Free text.
- relatedTag
- Move-head
+ takesValue
-
-
- Pump-fist
- Raise with fist clenched in triumph or affirmation.
- relatedTag
- Move-upper-extremity
+ valueClass
+ textClass
-
-
- Raise-eyebrows
- Move eyebrows upward.
- relatedTag
- Move-face
- Move-eyes
+ inLibrary
+ score
+
+
+ Natural-sleep
+
+ inLibrary
+ score
+
- Shake-fist
- Clench hand into a fist and shake to demonstrate anger.
+ #
+ Free text.
- relatedTag
- Move-upper-extremity
+ takesValue
-
-
- Shake-head
- Turn head from side to side as a way of showing disagreement or refusal.
- relatedTag
- Move-head
+ valueClass
+ textClass
-
-
- Shhh
- Place finger over lips and possibly uttering the syllable shhh to indicate the need to be quiet.
- relatedTag
- Move-upper-extremity
+ inLibrary
+ score
+
+
+ Induced-sleep
+
+ inLibrary
+ score
+
- Shrug
- Lift shoulders up towards head to indicate a lack of knowledge about a particular topic.
+ #
+ Free text.
- relatedTag
- Move-upper-extremity
- Move-torso
+ takesValue
-
-
- Smile
- Form facial features into a pleased, kind, or amused expression, typically with the corners of the mouth turned up and the front teeth exposed.
- relatedTag
- Move-face
+ valueClass
+ textClass
-
-
- Spread-hands
- Spread hands apart to indicate ignorance.
- relatedTag
- Move-upper-extremity
+ inLibrary
+ score
+
+
+ Drowsiness
+
+ inLibrary
+ score
+
- Thumbs-down
- Extend the thumb downward to indicate disapproval.
+ #
+ Free text.
- relatedTag
- Move-upper-extremity
+ takesValue
-
-
- Thumb-up
- Extend the thumb upward to indicate approval.
- relatedTag
- Move-upper-extremity
+ valueClass
+ textClass
-
-
- Wave
- Raise hand and move left and right, as a greeting or sign of departure.
- relatedTag
- Move-upper-extremity
+ inLibrary
+ score
+
+
+ Awakening
+
+ inLibrary
+ score
+
- Widen-eyes
- Open eyes and possibly with eyebrows lifted especially to express surprise or fear.
+ #
+ Free text.
- relatedTag
- Move-face
- Move-eyes
+ takesValue
-
-
- Wink
- Close and open one eye quickly, typically to indicate that something is a joke or a secret or as a signal of affection or greeting.
- relatedTag
- Move-face
- Move-eyes
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+ Medication-modulator
+
+ inLibrary
+ score
+
- Communicate-musically
- Communicate using music.
-
- Hum
- Make a low, steady continuous sound like that of a bee. Sing with the lips closed and without uttering speech.
-
-
- Play-instrument
- Make musical sounds using an instrument.
-
-
- Sing
- Produce musical tones by means of the voice.
-
-
- Vocalize
- Utter vocal sounds.
-
+ Medication-administered-during-recording
+
+ inLibrary
+ score
+
- Whistle
- Produce a shrill clear sound by forcing breath out or air in through the puckered lips.
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
- Communicate-vocally
- Communicate using mouth or vocal cords.
+ Medication-withdrawal-or-reduction-during-recording
+
+ inLibrary
+ score
+
- Cry
- Shed tears associated with emotions, usually sadness but also joy or frustration.
-
-
- Groan
- Make a deep inarticulate sound in response to pain or despair.
-
-
- Laugh
- Make the spontaneous sounds and movements of the face and body that are the instinctive expressions of lively amusement and sometimes also of contempt or derision.
-
-
- Scream
- Make loud, vociferous cries or yells to express pain, excitement, or fear.
-
-
- Shout
- Say something very loudly.
-
-
- Sigh
- Emit a long, deep, audible breath expressing sadness, relief, tiredness, or a similar feeling.
-
-
- Speak
- Communicate using spoken language.
-
-
- Whisper
- Speak very softly using breath without vocal cords.
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
- Move
- Move in a specified direction or manner. Change position or posture.
+ Eye-modulator
+
+ inLibrary
+ score
+
- Breathe
- Inhale or exhale during respiration.
-
- Blow
- Expel air through pursed lips.
-
-
- Cough
- Suddenly and audibly expel air from the lungs through a partially closed glottis, preceded by inhalation.
-
-
- Exhale
- Blow out or expel breath.
-
-
- Hiccup
- Involuntarily spasm the diaphragm and respiratory organs, with a sudden closure of the glottis and a characteristic sound like that of a cough.
-
-
- Hold-breath
- Interrupt normal breathing by ceasing to inhale or exhale.
-
-
- Inhale
- Draw in with the breath through the nose or mouth.
-
-
- Sneeze
- Suddenly and violently expel breath through the nose and mouth.
-
+ Manual-eye-closure
+
+ inLibrary
+ score
+
- Sniff
- Draw in air audibly through the nose to detect a smell, to stop it from running, or to express contempt.
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
- Move-body
- Move entire body.
-
- Bend
- Move body in a bowed or curved manner.
-
-
- Dance
- Perform a purposefully selected sequences of human movement often with aesthetic or symbolic value. Move rhythmically to music, typically following a set sequence of steps.
-
-
- Fall-down
- Lose balance and collapse.
-
-
- Flex
- Cause a muscle to stand out by contracting or tensing it. Bend a limb or joint.
-
-
- Jerk
- Make a quick, sharp, sudden movement.
-
-
- Lie-down
- Move to a horizontal or resting position.
-
-
- Recover-balance
- Return to a stable, upright body position.
-
-
- Sit-down
- Move from a standing to a sitting position.
-
-
- Sit-up
- Move from lying down to a sitting position.
-
-
- Stand-up
- Move from a sitting to a standing position.
-
+ Manual-eye-opening
+
+ inLibrary
+ score
+
- Stretch
- Straighten or extend body or a part of body to its full length, typically so as to tighten muscles or in order to reach something.
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Stimulation-modulator
+
+ inLibrary
+ score
+
+
+ Intermittent-photic-stimulation
+
+ requireChild
+
+
+ suggestedTag
+ Intermittent-photic-stimulation-effect
+
+
+ inLibrary
+ score
+
- Shudder
- Tremble convulsively, sometimes as a result of fear or revulsion.
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ frequencyUnits
+
+
+ inLibrary
+ score
+
+
+
+ Auditory-stimulation
+
+ inLibrary
+ score
+
- Stumble
- Trip or momentarily lose balance and almost fall.
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+ Nociceptive-stimulation
+
+ inLibrary
+ score
+
- Turn
- Change or cause to change direction.
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+ Hyperventilation
+
+ inLibrary
+ score
+
- Move-body-part
- Move one part of a body.
-
- Move-eyes
- Move eyes.
-
- Blink
- Shut and open the eyes quickly.
-
-
- Close-eyes
- Lower and keep eyelids in a closed position.
-
-
- Fixate
- Direct eyes to a specific point or target.
-
-
- Inhibit-blinks
- Purposely prevent blinking.
-
-
- Open-eyes
- Raise eyelids to expose pupil.
-
-
- Saccade
- Move eyes rapidly between fixation points.
-
-
- Squint
- Squeeze one or both eyes partly closed in an attempt to see more clearly or as a reaction to strong light.
-
-
- Stare
- Look fixedly or vacantly at someone or something with eyes wide open.
-
-
-
- Move-face
- Move the face or jaw.
-
- Bite
- Seize with teeth or jaws an object or organism so as to grip or break the surface covering.
-
-
- Burp
- Noisily release air from the stomach through the mouth. Belch.
-
-
- Chew
- Repeatedly grinding, tearing, and or crushing with teeth or jaws.
-
-
- Gurgle
- Make a hollow bubbling sound like that made by water running out of a bottle.
-
-
- Swallow
- Cause or allow something, especially food or drink to pass down the throat.
-
- Gulp
- Swallow quickly or in large mouthfuls, often audibly, sometimes to indicate apprehension.
-
-
-
- Yawn
- Take a deep involuntary inhalation with the mouth open often as a sign of drowsiness or boredom.
-
-
-
- Move-head
- Move head.
-
- Lift-head
- Tilt head back lifting chin.
-
-
- Lower-head
- Move head downward so that eyes are in a lower position.
-
-
- Turn-head
- Rotate head horizontally to look in a different direction.
-
-
-
- Move-lower-extremity
- Move leg and/or foot.
-
- Curl-toes
- Bend toes sometimes to grip.
-
-
- Hop
- Jump on one foot.
-
-
- Jog
- Run at a trot to exercise.
-
-
- Jump
- Move off the ground or other surface through sudden muscular effort in the legs.
-
-
- Kick
- Strike out or flail with the foot or feet. Strike using the leg, in unison usually with an area of the knee or lower using the foot.
-
-
- Pedal
- Move by working the pedals of a bicycle or other machine.
-
-
- Press-foot
- Move by pressing foot.
-
-
- Run
- Travel on foot at a fast pace.
-
-
- Step
- Put one leg in front of the other and shift weight onto it.
-
- Heel-strike
- Strike the ground with the heel during a step.
-
-
- Toe-off
- Push with toe as part of a stride.
-
-
-
- Trot
- Run at a moderate pace, typically with short steps.
-
-
- Walk
- Move at a regular pace by lifting and setting down each foot in turn never having both feet off the ground at once.
-
-
-
- Move-torso
- Move body trunk.
-
-
- Move-upper-extremity
- Move arm, shoulder, and/or hand.
-
- Drop
- Let or cause to fall vertically.
-
-
- Grab
- Seize suddenly or quickly. Snatch or clutch.
-
-
- Grasp
- Seize and hold firmly.
-
-
- Hold-down
- Prevent someone or something from moving by holding them firmly.
-
-
- Lift
- Raising something to higher position.
-
-
- Make-fist
- Close hand tightly with the fingers bent against the palm.
-
-
- Point
- Draw attention to something by extending a finger or arm.
-
-
- Press
- Apply pressure to something to flatten, shape, smooth or depress it. This action tag should be used to indicate key presses and mouse clicks.
-
- relatedTag
- Push
-
-
-
- Push
- Apply force in order to move something away. Use Press to indicate a key press or mouse click.
-
- relatedTag
- Press
-
-
-
- Reach
- Stretch out your arm in order to get or touch something.
-
-
- Release
- Make available or set free.
-
-
- Retract
- Draw or pull back.
-
-
- Scratch
- Drag claws or nails over a surface or on skin.
-
-
- Snap-fingers
- Make a noise by pushing second finger hard against thumb and then releasing it suddenly so that it hits the base of the thumb.
-
-
- Touch
- Come into or be in contact with.
-
-
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
- Perceive
- Produce an internal, conscious image through stimulating a sensory system.
+ Physical-effort
+
+ inLibrary
+ score
+
- Hear
- Give attention to a sound.
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+ Cognitive-task
+
+ inLibrary
+ score
+
- See
- Direct gaze toward someone or something or in a specified direction.
-
-
- Smell
- Inhale in order to ascertain an odor or scent.
-
-
- Taste
- Sense a flavor in the mouth and throat on contact with a substance.
-
-
- Sense-by-touch
- Sense something through receptors in the skin.
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
- Perform
- Carry out or accomplish an action, task, or function.
-
- Close
- Act as to blocked against entry or passage.
-
-
- Collide-with
- Hit with force when moving.
-
+ Other-modulator-or-procedure
+
+ requireChild
+
+
+ inLibrary
+ score
+
- Halt
- Bring or come to an abrupt stop.
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Background-activity
+ An EEG activity representing the setting in which a given normal or abnormal pattern appears and from which such pattern is distinguished.
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Posterior-dominant-rhythm
+ Rhythmic activity occurring during wakefulness over the posterior regions of the head, generally with maximum amplitudes over the occipital areas. Amplitude varies. Best seen with eyes closed and during physical relaxation and relative mental inactivity. Blocked or attenuated by attention, especially visual, and mental effort. In adults this is the alpha rhythm, and the frequency is 8 to 13 Hz. However the frequency can be higher or lower than this range (often a supra or sub harmonic of alpha frequency) and is called alpha variant rhythm (fast and slow alpha variant rhythm). In children, the normal range of the frequency of the posterior dominant rhythm is age-dependant.
+
+ suggestedTag
+ Finding-significance-to-recording
+ Finding-frequency
+ Finding-amplitude-asymmetry
+ Posterior-dominant-rhythm-property
+
+
+ inLibrary
+ score
+
+
+
+ Mu-rhythm
+ EEG rhythm at 7-11 Hz composed of arch-shaped waves occurring over the central or centro-parietal regions of the scalp during wakefulness. Amplitudes varies but is mostly below 50 microV. Blocked or attenuated most clearly by contralateral movement, thought of movement, readiness to move or tactile stimulation.
+
+ suggestedTag
+ Finding-frequency
+ Finding-significance-to-recording
+ Brain-laterality
+ Brain-region
+ Sensors
+
+
+ inLibrary
+ score
+
+
+
+ Other-organized-rhythm
+ EEG activity that consisting of waves of approximately constant period, which is considered as part of the background (ongoing) activity, but does not fulfill the criteria of the posterior dominant rhythm.
+
+ requireChild
+
+
+ suggestedTag
+ Rhythmic-activity-morphology
+ Finding-significance-to-recording
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+ inLibrary
+ score
+
- Modify
- Change something.
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+ Background-activity-special-feature
+ Special Features. Special features contains scoring options for the background activity of critically ill patients.
+
+ requireChild
+
+
+ inLibrary
+ score
+
- Open
- Widen an aperture, door, or gap, especially one allowing access to something.
+ Continuous-background-activity
+
+ suggestedTag
+ Rhythmic-activity-morphology
+ Brain-laterality
+ Brain-region
+ Sensors
+ Finding-extent
+
+
+ inLibrary
+ score
+
- Operate
- Control the functioning of a machine, process, or system.
+ Nearly-continuous-background-activity
+
+ suggestedTag
+ Rhythmic-activity-morphology
+ Brain-laterality
+ Brain-region
+ Sensors
+ Finding-extent
+
+
+ inLibrary
+ score
+
- Play
- Engage in activity for enjoyment and recreation rather than a serious or practical purpose.
+ Discontinuous-background-activity
+
+ suggestedTag
+ Rhythmic-activity-morphology
+ Brain-laterality
+ Brain-region
+ Sensors
+ Finding-extent
+
+
+ inLibrary
+ score
+
- Read
- Interpret something that is written or printed.
+ Background-burst-suppression
+ EEG pattern consisting of bursts (activity appearing and disappearing abruptly) interrupted by periods of low amplitude (below 20 microV) and which occurs simultaneously over all head regions.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Finding-extent
+
+
+ inLibrary
+ score
+
- Repeat
- Make do or perform again.
+ Background-burst-attenuation
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Finding-extent
+
+
+ inLibrary
+ score
+
- Rest
- Be inactive in order to regain strength, health, or energy.
+ Background-activity-suppression
+ Periods showing activity under 10 microV (referential montage) and interrupting the background (ongoing) activity.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Finding-extent
+ Appearance-mode
+
+
+ inLibrary
+ score
+
- Write
- Communicate or express by means of letters or symbols written or imprinted on a surface.
+ Electrocerebral-inactivity
+ Absence of any ongoing cortical electric activities; in all leads EEG is isoelectric or only contains artifacts. Sensitivity has to be increased up to 2 microV/mm; recording time: at least 30 minutes.
+
+ inLibrary
+ score
+
+
+
+ Action
+ Do something.
+
+ extensionAllowed
+
- Think
- Direct the mind toward someone or something or use the mind actively to form connected ideas.
-
- Allow
- Allow access to something such as allowing a car to pass.
-
+ Communicate
+ Convey knowledge of or information about something.
- Attend-to
- Focus mental experience on specific targets.
+ Communicate-gesturally
+ Communicate nonverbally using visible bodily actions, either in place of speech or together and in parallel with spoken words. Gestures include movement of the hands, face, or other parts of the body.
+
+ relatedTag
+ Move-face
+ Move-upper-extremity
+
+
+ Clap-hands
+ Strike the palms of against one another resoundingly, and usually repeatedly, especially to express approval.
+
+
+ Clear-throat
+ Cough slightly so as to speak more clearly, attract attention, or to express hesitancy before saying something awkward.
+
+ relatedTag
+ Move-face
+ Move-head
+
+
+
+ Frown
+ Express disapproval, displeasure, or concentration, typically by turning down the corners of the mouth.
+
+ relatedTag
+ Move-face
+
+
+
+ Grimace
+ Make a twisted expression, typically expressing disgust, pain, or wry amusement.
+
+ relatedTag
+ Move-face
+
+
+
+ Nod-head
+ Tilt head in alternating up and down arcs along the sagittal plane. It is most commonly, but not universally, used to indicate agreement, acceptance, or acknowledgement.
+
+ relatedTag
+ Move-head
+
+
+
+ Pump-fist
+ Raise with fist clenched in triumph or affirmation.
+
+ relatedTag
+ Move-upper-extremity
+
+
+
+ Raise-eyebrows
+ Move eyebrows upward.
+
+ relatedTag
+ Move-face
+ Move-eyes
+
+
+
+ Shake-fist
+ Clench hand into a fist and shake to demonstrate anger.
+
+ relatedTag
+ Move-upper-extremity
+
+
+
+ Shake-head
+ Turn head from side to side as a way of showing disagreement or refusal.
+
+ relatedTag
+ Move-head
+
+
+
+ Shhh
+ Place finger over lips and possibly uttering the syllable shhh to indicate the need to be quiet.
+
+ relatedTag
+ Move-upper-extremity
+
+
+
+ Shrug
+ Lift shoulders up towards head to indicate a lack of knowledge about a particular topic.
+
+ relatedTag
+ Move-upper-extremity
+ Move-torso
+
+
+
+ Smile
+ Form facial features into a pleased, kind, or amused expression, typically with the corners of the mouth turned up and the front teeth exposed.
+
+ relatedTag
+ Move-face
+
+
+
+ Spread-hands
+ Spread hands apart to indicate ignorance.
+
+ relatedTag
+ Move-upper-extremity
+
+
+
+ Thumb-up
+ Extend the thumb upward to indicate approval.
+
+ relatedTag
+ Move-upper-extremity
+
+
+
+ Thumbs-down
+ Extend the thumb downward to indicate disapproval.
+
+ relatedTag
+ Move-upper-extremity
+
+
+
+ Wave
+ Raise hand and move left and right, as a greeting or sign of departure.
+
+ relatedTag
+ Move-upper-extremity
+
+
+
+ Widen-eyes
+ Open eyes and possibly with eyebrows lifted especially to express surprise or fear.
+
+ relatedTag
+ Move-face
+ Move-eyes
+
+
+
+ Wink
+ Close and open one eye quickly, typically to indicate that something is a joke or a secret or as a signal of affection or greeting.
+
+ relatedTag
+ Move-face
+ Move-eyes
+
+
- Count
- Tally items either silently or aloud.
+ Communicate-musically
+ Communicate using music.
+
+ Hum
+ Make a low, steady continuous sound like that of a bee. Sing with the lips closed and without uttering speech.
+
+
+ Play-instrument
+ Make musical sounds using an instrument.
+
+
+ Sing
+ Produce musical tones by means of the voice.
+
+
+ Vocalize
+ Utter vocal sounds.
+
+
+ Whistle
+ Produce a shrill clear sound by forcing breath out or air in through the puckered lips.
+
- Deny
- Refuse to give or grant something requested or desired by someone.
+ Communicate-vocally
+ Communicate using mouth or vocal cords.
+
+ Cry
+ Shed tears associated with emotions, usually sadness but also joy or frustration.
+
+
+ Groan
+ Make a deep inarticulate sound in response to pain or despair.
+
+
+ Laugh
+ Make the spontaneous sounds and movements of the face and body that are the instinctive expressions of lively amusement and sometimes also of contempt or derision.
+
+
+ Scream
+ Make loud, vociferous cries or yells to express pain, excitement, or fear.
+
+
+ Shout
+ Say something very loudly.
+
+
+ Sigh
+ Emit a long, deep, audible breath expressing sadness, relief, tiredness, or a similar feeling.
+
+
+ Speak
+ Communicate using spoken language.
+
+
+ Whisper
+ Speak very softly using breath without vocal cords.
+
+
+
+ Move
+ Move in a specified direction or manner. Change position or posture.
- Detect
- Discover or identify the presence or existence of something.
+ Breathe
+ Inhale or exhale during respiration.
+
+ Blow
+ Expel air through pursed lips.
+
+
+ Cough
+ Suddenly and audibly expel air from the lungs through a partially closed glottis, preceded by inhalation.
+
+
+ Exhale
+ Blow out or expel breath.
+
+
+ Hiccup
+ Involuntarily spasm the diaphragm and respiratory organs, with a sudden closure of the glottis and a characteristic sound like that of a cough.
+
+
+ Hold-breath
+ Interrupt normal breathing by ceasing to inhale or exhale.
+
+
+ Inhale
+ Draw in with the breath through the nose or mouth.
+
+
+ Sneeze
+ Suddenly and violently expel breath through the nose and mouth.
+
+
+ Sniff
+ Draw in air audibly through the nose to detect a smell, to stop it from running, or to express contempt.
+
- Discriminate
- Recognize a distinction.
-
-
- Encode
- Convert information or an instruction into a particular form.
-
-
- Evade
- Escape or avoid, especially by cleverness or trickery.
-
-
- Generate
- Cause something, especially an emotion or situation to arise or come about.
-
-
- Identify
- Establish or indicate who or what someone or something is.
-
-
- Imagine
- Form a mental image or concept of something.
-
-
- Judge
- Evaluate evidence to make a decision or form a belief.
-
-
- Learn
- Adaptively change behavior as the result of experience.
-
-
- Memorize
- Adaptively change behavior as the result of experience.
-
-
- Plan
- Think about the activities required to achieve a desired goal.
-
-
- Predict
- Say or estimate that something will happen or will be a consequence of something without having exact informaton.
-
-
- Recognize
- Identify someone or something from having encountered them before.
-
-
- Respond
- React to something such as a treatment or a stimulus.
-
-
- Recall
- Remember information by mental effort.
-
-
- Switch-attention
- Transfer attention from one focus to another.
-
-
- Track
- Follow a person, animal, or object through space or time.
+ Move-body
+ Move entire body.
+
+ Bend
+ Move body in a bowed or curved manner.
+
+
+ Dance
+ Perform a purposefully selected sequences of human movement often with aesthetic or symbolic value. Move rhythmically to music, typically following a set sequence of steps.
+
+
+ Fall-down
+ Lose balance and collapse.
+
+
+ Flex
+ Cause a muscle to stand out by contracting or tensing it. Bend a limb or joint.
+
+
+ Jerk
+ Make a quick, sharp, sudden movement.
+
+
+ Lie-down
+ Move to a horizontal or resting position.
+
+
+ Recover-balance
+ Return to a stable, upright body position.
+
+
+ Shudder
+ Tremble convulsively, sometimes as a result of fear or revulsion.
+
+
+ Sit-down
+ Move from a standing to a sitting position.
+
+
+ Sit-up
+ Move from lying down to a sitting position.
+
+
+ Stand-up
+ Move from a sitting to a standing position.
+
+
+ Stretch
+ Straighten or extend body or a part of body to its full length, typically so as to tighten muscles or in order to reach something.
+
+
+ Stumble
+ Trip or momentarily lose balance and almost fall.
+
+
+ Turn
+ Change or cause to change direction.
+
-
-
-
- Item
- An independently existing thing (living or nonliving).
-
- extensionAllowed
-
-
- Biological-item
- An entity that is biological, that is related to living organisms.
- Anatomical-item
- A biological structure, system, fluid or other substance excluding single molecular entities.
+ Move-body-part
+ Move one part of a body.
- Body
- The biological structure representing an organism.
+ Move-eyes
+ Move eyes.
+
+ Blink
+ Shut and open the eyes quickly.
+
+
+ Close-eyes
+ Lower and keep eyelids in a closed position.
+
+
+ Fixate
+ Direct eyes to a specific point or target.
+
+
+ Inhibit-blinks
+ Purposely prevent blinking.
+
+
+ Open-eyes
+ Raise eyelids to expose pupil.
+
+
+ Saccade
+ Move eyes rapidly between fixation points.
+
+
+ Squint
+ Squeeze one or both eyes partly closed in an attempt to see more clearly or as a reaction to strong light.
+
+
+ Stare
+ Look fixedly or vacantly at someone or something with eyes wide open.
+
- Body-part
- Any part of an organism.
+ Move-face
+ Move the face or jaw.
- Head
- The upper part of the human body, or the front or upper part of the body of an animal, typically separated from the rest of the body by a neck, and containing the brain, mouth, and sense organs.
-
- Hair
- The filamentous outgrowth of the epidermis.
-
-
- Ear
- A sense organ needed for the detection of sound and for establishing balance.
-
-
- Face
- The anterior portion of the head extending from the forehead to the chin and ear to ear. The facial structures contain the eyes, nose and mouth, cheeks and jaws.
-
- Cheek
- The fleshy part of the face bounded by the eyes, nose, ear, and jaw line.
-
-
- Chin
- The part of the face below the lower lip and including the protruding part of the lower jaw.
-
-
- Eye
- The organ of sight or vision.
-
-
- Eyebrow
- The arched strip of hair on the bony ridge above each eye socket.
-
-
- Forehead
- The part of the face between the eyebrows and the normal hairline.
-
-
- Lip
- Fleshy fold which surrounds the opening of the mouth.
-
-
- Nose
- A structure of special sense serving as an organ of the sense of smell and as an entrance to the respiratory tract.
-
-
- Mouth
- The proximal portion of the digestive tract, containing the oral cavity and bounded by the oral opening.
-
-
- Teeth
- The hard bonelike structures in the jaws. A collection of teeth arranged in some pattern in the mouth or other part of the body.
-
-
+ Bite
+ Seize with teeth or jaws an object or organism so as to grip or break the surface covering.
- Lower-extremity
- Refers to the whole inferior limb (leg and/or foot).
-
- Ankle
- A gliding joint between the distal ends of the tibia and fibula and the proximal end of the talus.
-
+ Burp
+ Noisily release air from the stomach through the mouth. Belch.
+
+
+ Chew
+ Repeatedly grinding, tearing, and or crushing with teeth or jaws.
+
+
+ Gurgle
+ Make a hollow bubbling sound like that made by water running out of a bottle.
+
+
+ Swallow
+ Cause or allow something, especially food or drink to pass down the throat.
- Calf
- The fleshy part at the back of the leg below the knee.
-
-
- Foot
- The structure found below the ankle joint required for locomotion.
-
- Big-toe
- The largest toe on the inner side of the foot.
-
-
- Heel
- The back of the foot below the ankle.
-
-
- Instep
- The part of the foot between the ball and the heel on the inner side.
-
-
- Little-toe
- The smallest toe located on the outer side of the foot.
-
-
- Toes
- The terminal digits of the foot.
-
-
-
- Knee
- A joint connecting the lower part of the femur with the upper part of the tibia.
-
-
- Shin
- Front part of the leg below the knee.
-
-
- Thigh
- Upper part of the leg between hip and knee.
-
-
-
- Torso
- The body excluding the head and neck and limbs.
-
- Torso-back
- The rear surface of the human body from the shoulders to the hips.
-
-
- Buttocks
- The round fleshy parts that form the lower rear area of a human trunk.
-
-
- Torso-chest
- The anterior side of the thorax from the neck to the abdomen.
-
-
- Gentalia
- The external organs of reproduction.
-
- deprecatedFrom
- 8.1.0
-
-
-
- Hip
- The lateral prominence of the pelvis from the waist to the thigh.
-
-
- Waist
- The abdominal circumference at the navel.
+ Gulp
+ Swallow quickly or in large mouthfuls, often audibly, sometimes to indicate apprehension.
- Upper-extremity
- Refers to the whole superior limb (shoulder, arm, elbow, wrist, hand).
-
- Elbow
- A type of hinge joint located between the forearm and upper arm.
-
-
- Forearm
- Lower part of the arm between the elbow and wrist.
-
-
- Hand
- The distal portion of the upper extremity. It consists of the carpus, metacarpus, and digits.
-
- Finger
- Any of the digits of the hand.
-
- Index-finger
- The second finger from the radial side of the hand, next to the thumb.
-
-
- Little-finger
- The fifth and smallest finger from the radial side of the hand.
-
-
- Middle-finger
- The middle or third finger from the radial side of the hand.
-
-
- Ring-finger
- The fourth finger from the radial side of the hand.
-
-
- Thumb
- The thick and short hand digit which is next to the index finger in humans.
-
-
-
- Palm
- The part of the inner surface of the hand that extends from the wrist to the bases of the fingers.
-
-
- Knuckles
- A part of a finger at a joint where the bone is near the surface, especially where the finger joins the hand.
-
-
-
- Shoulder
- Joint attaching upper arm to trunk.
-
-
- Upper-arm
- Portion of arm between shoulder and elbow.
-
-
- Wrist
- A joint between the distal end of the radius and the proximal row of carpal bones.
-
+ Yawn
+ Take a deep involuntary inhalation with the mouth open often as a sign of drowsiness or boredom.
-
-
- Organism
- A living entity, more specifically a biological entity that consists of one or more cells and is capable of genomic replication (independently or not).
-
- Animal
- A living organism that has membranous cell walls, requires oxygen and organic foods, and is capable of voluntary movement.
-
- Human
- The bipedal primate mammal Homo sapiens.
-
-
- Plant
- Any living organism that typically synthesizes its food from inorganic substances and possesses cellulose cell walls.
-
-
-
-
- Language-item
- An entity related to a systematic means of communicating by the use of sounds, symbols, or gestures.
-
- suggestedTag
- Sensory-presentation
-
-
- Character
- A mark or symbol used in writing.
-
-
- Clause
- A unit of grammatical organization next below the sentence in rank, usually consisting of a subject and predicate.
-
-
- Glyph
- A hieroglyphic character, symbol, or pictograph.
-
-
- Nonword
- A group of letters or speech sounds that looks or sounds like a word but that is not accepted as such by native speakers.
-
-
- Paragraph
- A distinct section of a piece of writing, usually dealing with a single theme.
-
-
- Phoneme
- A speech sound that is distinguished by the speakers of a particular language.
-
-
- Phrase
- A phrase is a group of words functioning as a single unit in the syntax of a sentence.
-
-
- Sentence
- A set of words that is complete in itself, conveying a statement, question, exclamation, or command and typically containing an explicit or implied subject and a predicate containing a finite verb.
-
-
- Syllable
- A unit of spoken language larger than a phoneme.
-
-
- Textblock
- A block of text.
-
-
- Word
- A word is the smallest free form (an item that may be expressed in isolation with semantic or pragmatic content) in a language.
-
-
-
- Object
- Something perceptible by one or more of the senses, especially by vision or touch. A material thing.
-
- suggestedTag
- Sensory-presentation
-
-
- Geometric-object
- An object or a representation that has structure and topology in space.
-
- Pattern
- An arrangement of objects, facts, behaviors, or other things which have scientific, mathematical, geometric, statistical, or other meaning.
+ Move-head
+ Move head.
- Dots
- A small round mark or spot.
+ Lift-head
+ Tilt head back lifting chin.
- LED-pattern
- A pattern created by lighting selected members of a fixed light emitting diode array.
+ Lower-head
+ Move head downward so that eyes are in a lower position.
+
+
+ Turn-head
+ Rotate head horizontally to look in a different direction.
- 2D-shape
- A planar, two-dimensional shape.
+ Move-lower-extremity
+ Move leg and/or foot.
- Arrow
- A shape with a pointed end indicating direction.
+ Curl-toes
+ Bend toes sometimes to grip.
- Clockface
- The dial face of a clock. A location identifier based on clockface numbering or anatomic subregion.
+ Hop
+ Jump on one foot.
- Cross
- A figure or mark formed by two intersecting lines crossing at their midpoints.
+ Jog
+ Run at a trot to exercise.
- Dash
- A horizontal stroke in writing or printing to mark a pause or break in sense or to represent omitted letters or words.
+ Jump
+ Move off the ground or other surface through sudden muscular effort in the legs.
- Ellipse
- A closed plane curve resulting from the intersection of a circular cone and a plane cutting completely through it, especially a plane not parallel to the base.
-
- Circle
- A ring-shaped structure with every point equidistant from the center.
-
+ Kick
+ Strike out or flail with the foot or feet. Strike using the leg, in unison usually with an area of the knee or lower using the foot.
- Rectangle
- A parallelogram with four right angles.
-
- Square
- A square is a special rectangle with four equal sides.
-
+ Pedal
+ Move by working the pedals of a bicycle or other machine.
- Single-point
- A point is a geometric entity that is located in a zero-dimensional spatial region and whose position is defined by its coordinates in some coordinate system.
+ Press-foot
+ Move by pressing foot.
- Star
- A conventional or stylized representation of a star, typically one having five or more points.
+ Run
+ Travel on foot at a fast pace.
- Triangle
- A three-sided polygon.
+ Step
+ Put one leg in front of the other and shift weight onto it.
+
+ Heel-strike
+ Strike the ground with the heel during a step.
+
+
+ Toe-off
+ Push with toe as part of a stride.
+
+
+
+ Trot
+ Run at a moderate pace, typically with short steps.
+
+
+ Walk
+ Move at a regular pace by lifting and setting down each foot in turn never having both feet off the ground at once.
- 3D-shape
- A geometric three-dimensional shape.
+ Move-torso
+ Move body trunk.
+
+
+ Move-upper-extremity
+ Move arm, shoulder, and/or hand.
- Box
- A square or rectangular vessel, usually made of cardboard or plastic.
-
- Cube
- A solid or semi-solid in the shape of a three dimensional square.
-
+ Drop
+ Let or cause to fall vertically.
- Cone
- A shape whose base is a circle and whose sides taper up to a point.
+ Grab
+ Seize suddenly or quickly. Snatch or clutch.
- Cylinder
- A surface formed by circles of a given radius that are contained in a plane perpendicular to a given axis, whose centers align on the axis.
+ Grasp
+ Seize and hold firmly.
- Ellipsoid
- A closed plane curve resulting from the intersection of a circular cone and a plane cutting completely through it, especially a plane not parallel to the base.
-
- Sphere
- A solid or hollow three-dimensional object bounded by a closed surface such that every point on the surface is equidistant from the center.
-
+ Hold-down
+ Prevent someone or something from moving by holding them firmly.
- Pyramid
- A polyhedron of which one face is a polygon of any number of sides, and the other faces are triangles with a common vertex.
+ Lift
+ Raising something to higher position.
-
-
-
- Ingestible-object
- Something that can be taken into the body by the mouth for digestion or absorption.
-
-
- Man-made-object
- Something constructed by human means.
-
- Building
- A structure that has a roof and walls and stands more or less permanently in one place.
- Room
- An area within a building enclosed by walls and floor and ceiling.
+ Make-fist
+ Close hand tightly with the fingers bent against the palm.
- Roof
- A roof is the covering on the uppermost part of a building which provides protection from animals and weather, notably rain, but also heat, wind and sunlight.
+ Point
+ Draw attention to something by extending a finger or arm.
- Entrance
- The means or place of entry.
+ Press
+ Apply pressure to something to flatten, shape, smooth or depress it. This action tag should be used to indicate key presses and mouse clicks.
+
+ relatedTag
+ Push
+
- Attic
- A room or a space immediately below the roof of a building.
+ Push
+ Apply force in order to move something away. Use Press to indicate a key press or mouse click.
+
+ relatedTag
+ Press
+
- Basement
- The part of a building that is wholly or partly below ground level.
+ Reach
+ Stretch out your arm in order to get or touch something.
-
-
- Clothing
- A covering designed to be worn on the body.
-
-
- Device
- An object contrived for a specific purpose.
- Assistive-device
- A device that help an individual accomplish a task.
-
- Glasses
- Frames with lenses worn in front of the eye for vision correction, eye protection, or protection from UV rays.
-
-
- Writing-device
- A device used for writing.
-
- Pen
- A common writing instrument used to apply ink to a surface for writing or drawing.
-
-
- Pencil
- An implement for writing or drawing that is constructed of a narrow solid pigment core in a protective casing that prevents the core from being broken or marking the hand.
-
-
+ Release
+ Make available or set free.
- Computing-device
- An electronic device which take inputs and processes results from the inputs.
-
- Cellphone
- A telephone with access to a cellular radio system so it can be used over a wide area, without a physical connection to a network.
-
-
- Desktop-computer
- A computer suitable for use at an ordinary desk.
-
-
- Laptop-computer
- A computer that is portable and suitable for use while traveling.
-
-
- Tablet-computer
- A small portable computer that accepts input directly on to its screen rather than via a keyboard or mouse.
-
+ Retract
+ Draw or pull back.
- Engine
- A motor is a machine designed to convert one or more forms of energy into mechanical energy.
+ Scratch
+ Drag claws or nails over a surface or on skin.
- IO-device
- Hardware used by a human (or other system) to communicate with a computer.
-
- Input-device
- A piece of equipment used to provide data and control signals to an information processing system such as a computer or information appliance.
-
- Computer-mouse
- A hand-held pointing device that detects two-dimensional motion relative to a surface.
-
- Mouse-button
- An electric switch on a computer mouse which can be pressed or clicked to select or interact with an element of a graphical user interface.
-
-
- Scroll-wheel
- A scroll wheel or mouse wheel is a wheel used for scrolling made of hard plastic with a rubbery surface usually located between the left and right mouse buttons and is positioned perpendicular to the mouse surface.
-
-
-
- Joystick
- A control device that uses a movable handle to create two-axis input for a computer device.
-
-
- Keyboard
- A device consisting of mechanical keys that are pressed to create input to a computer.
-
- Keyboard-key
- A button on a keyboard usually representing letters, numbers, functions, or symbols.
-
- #
- Value of a keyboard key.
-
- takesValue
-
-
-
-
-
- Keypad
- A device consisting of keys, usually in a block arrangement, that provides limited input to a system.
-
- Keypad-key
- A key on a separate section of a computer keyboard that groups together numeric keys and those for mathematical or other special functions in an arrangement like that of a calculator.
-
- #
- Value of keypad key.
-
- takesValue
-
-
-
-
-
- Microphone
- A device designed to convert sound to an electrical signal.
-
-
- Push-button
- A switch designed to be operated by pressing a button.
-
-
-
- Output-device
- Any piece of computer hardware equipment which converts information into human understandable form.
-
- Display-device
- An output device for presentation of information in visual or tactile form the latter used for example in tactile electronic displays for blind people.
-
- Head-mounted-display
- An instrument that functions as a display device, worn on the head or as part of a helmet, that has a small display optic in front of one (monocular HMD) or each eye (binocular HMD).
-
-
- LED-display
- A LED display is a flat panel display that uses an array of light-emitting diodes as pixels for a video display.
-
-
- Computer-screen
- An electronic device designed as a display or a physical device designed to be a protective meshwork.
-
- Screen-window
- A part of a computer screen that contains a display different from the rest of the screen. A window is a graphical control element consisting of a visual area containing some of the graphical user interface of the program it belongs to and is framed by a window decoration.
-
-
-
-
- Auditory-device
- A device designed to produce sound.
-
- Headphones
- An instrument that consists of a pair of small loudspeakers, or less commonly a single speaker, held close to ears and connected to a signal source such as an audio amplifier, radio, CD player or portable media player.
-
-
- Loudspeaker
- A device designed to convert electrical signals to sounds that can be heard.
-
-
-
-
- Recording-device
- A device that copies information in a signal into a persistent information bearer.
-
- EEG-recorder
- A device for recording electric currents in the brain using electrodes applied to the scalp, to the surface of the brain, or placed within the substance of the brain.
-
-
- File-storage
- A device for recording digital information to a permanent media.
-
-
- MEG-recorder
- A device for measuring the magnetic fields produced by electrical activity in the brain, usually conducted externally.
-
-
- Motion-capture
- A device for recording the movement of objects or people.
-
-
- Tape-recorder
- A device for recording and reproduction usually using magnetic tape for storage that can be saved and played back.
-
-
-
- Touchscreen
- A control component that operates an electronic device by pressing the display on the screen.
-
-
-
- Machine
- A human-made device that uses power to apply forces and control movement to perform an action.
-
-
- Measurement-device
- A device in which a measure function inheres.
-
- Clock
- A device designed to indicate the time of day or to measure the time duration of an event or action.
-
- Clock-face
- A location identifier based on clockface numbering or anatomic subregion.
-
-
-
-
- Robot
- A mechanical device that sometimes resembles a living animal and is capable of performing a variety of often complex human tasks on command or by being programmed in advance.
-
-
- Tool
- A component that is not part of a device but is designed to support its assemby or operation.
-
-
-
- Document
- A physical object, or electronic counterpart, that is characterized by containing writing which is meant to be human-readable.
-
- Letter
- A written message addressed to a person or organization.
-
-
- Note
- A brief written record.
-
-
- Book
- A volume made up of pages fastened along one edge and enclosed between protective covers.
-
-
- Notebook
- A book for notes or memoranda.
-
-
- Questionnaire
- A document consisting of questions and possibly responses, depending on whether it has been filled out.
-
-
-
- Furnishing
- Furniture, fittings, and other decorative accessories, such as curtains and carpets, for a house or room.
-
-
- Manufactured-material
- Substances created or extracted from raw materials.
-
- Ceramic
- A hard, brittle, heat-resistant and corrosion-resistant material made by shaping and then firing a nonmetallic mineral, such as clay, at a high temperature.
-
-
- Glass
- A brittle transparent solid with irregular atomic structure.
-
-
- Paper
- A thin sheet material produced by mechanically or chemically processing cellulose fibres derived from wood, rags, grasses or other vegetable sources in water.
-
-
- Plastic
- Various high-molecular-weight thermoplastic or thermosetting polymers that are capable of being molded, extruded, drawn, or otherwise shaped and then hardened into a form.
-
-
- Steel
- An alloy made up of iron with typically a few tenths of a percent of carbon to improve its strength and fracture resistance compared to iron.
-
-
-
- Media
- Media are audo/visual/audiovisual modes of communicating information for mass consumption.
-
- Media-clip
- A short segment of media.
-
- Audio-clip
- A short segment of audio.
-
-
- Audiovisual-clip
- A short media segment containing both audio and video.
-
-
- Video-clip
- A short segment of video.
-
-
-
- Visualization
- An planned process that creates images, diagrams or animations from the input data.
-
- Animation
- A form of graphical illustration that changes with time to give a sense of motion or represent dynamic changes in the portrayal.
-
-
- Art-installation
- A large-scale, mixed-media constructions, often designed for a specific place or for a temporary period of time.
-
-
- Braille
- A display using a system of raised dots that can be read with the fingers by people who are blind.
-
-
- Image
- Any record of an imaging event whether physical or electronic.
-
- Cartoon
- A type of illustration, sometimes animated, typically in a non-realistic or semi-realistic style. The specific meaning has evolved over time, but the modern usage usually refers to either an image or series of images intended for satire, caricature, or humor. A motion picture that relies on a sequence of illustrations for its animation.
-
-
- Drawing
- A representation of an object or outlining a figure, plan, or sketch by means of lines.
-
-
- Icon
- A sign (such as a word or graphic symbol) whose form suggests its meaning.
-
-
- Painting
- A work produced through the art of painting.
-
-
- Photograph
- An image recorded by a camera.
-
-
-
- Movie
- A sequence of images displayed in succession giving the illusion of continuous movement.
-
-
- Outline-visualization
- A visualization consisting of a line or set of lines enclosing or indicating the shape of an object in a sketch or diagram.
-
-
- Point-light-visualization
- A display in which action is depicted using a few points of light, often generated from discrete sensors in motion capture.
-
-
- Sculpture
- A two- or three-dimensional representative or abstract forms, especially by carving stone or wood or by casting metal or plaster.
-
-
- Stick-figure-visualization
- A drawing showing the head of a human being or animal as a circle and all other parts as straight lines.
-
-
-
-
- Navigational-object
- An object whose purpose is to assist directed movement from one location to another.
-
- Path
- A trodden way. A way or track laid down for walking or made by continual treading.
-
-
- Road
- An open way for the passage of vehicles, persons, or animals on land.
-
- Lane
- A defined path with physical dimensions through which an object or substance may traverse.
-
-
-
- Runway
- A paved strip of ground on a landing field for the landing and takeoff of aircraft.
-
-
-
- Vehicle
- A mobile machine which transports people or cargo.
-
- Aircraft
- A vehicle which is able to travel through air in an atmosphere.
-
-
- Bicycle
- A human-powered, pedal-driven, single-track vehicle, having two wheels attached to a frame, one behind the other.
-
-
- Boat
- A watercraft of any size which is able to float or plane on water.
-
-
- Car
- A wheeled motor vehicle used primarily for the transportation of human passengers.
-
-
- Cart
- A cart is a vehicle which has two wheels and is designed to transport human passengers or cargo.
-
-
- Tractor
- A mobile machine specifically designed to deliver a high tractive effort at slow speeds, and mainly used for the purposes of hauling a trailer or machinery used in agriculture or construction.
-
-
- Train
- A connected line of railroad cars with or without a locomotive.
+ Snap-fingers
+ Make a noise by pushing second finger hard against thumb and then releasing it suddenly so that it hits the base of the thumb.
- Truck
- A motor vehicle which, as its primary funcion, transports cargo rather than human passangers.
+ Touch
+ Come into or be in contact with.
+
+
+ Perceive
+ Produce an internal, conscious image through stimulating a sensory system.
- Natural-object
- Something that exists in or is produced by nature, and is not artificial or man-made.
-
- Mineral
- A solid, homogeneous, inorganic substance occurring in nature and having a definite chemical composition.
-
-
- Natural-feature
- A feature that occurs in nature. A prominent or identifiable aspect, region, or site of interest.
-
- Field
- An unbroken expanse as of ice or grassland.
-
-
- Hill
- A rounded elevation of limited extent rising above the surrounding land with local relief of less than 300m.
-
-
- Mountain
- A landform that extends above the surrounding terrain in a limited area.
-
-
- River
- A natural freshwater surface stream of considerable volume and a permanent or seasonal flow, moving in a definite channel toward a sea, lake, or another river.
-
-
- Waterfall
- A sudden descent of water over a step or ledge in the bed of a river.
-
-
+ Hear
+ Give attention to a sound.
+
+
+ See
+ Direct gaze toward someone or something or in a specified direction.
+
+
+ Sense-by-touch
+ Sense something through receptors in the skin.
+
+
+ Smell
+ Inhale in order to ascertain an odor or scent.
+
+
+ Taste
+ Sense a flavor in the mouth and throat on contact with a substance.
- Sound
- Mechanical vibrations transmitted by an elastic medium. Something that can be heard.
+ Perform
+ Carry out or accomplish an action, task, or function.
- Environmental-sound
- Sounds occuring in the environment. An accumulation of noise pollution that occurs outside. This noise can be caused by transport, industrial, and recreational activities.
-
- Crowd-sound
- Noise produced by a mixture of sounds from a large group of people.
-
-
- Signal-noise
- Any part of a signal that is not the true or original signal but is introduced by the communication mechanism.
-
+ Close
+ Act as to blocked against entry or passage.
- Musical-sound
- Sound produced by continuous and regular vibrations, as opposed to noise.
-
- Tone
- A musical note, warble, or other sound used as a particular signal on a telephone or answering machine.
-
-
- Instrument-sound
- Sound produced by a musical instrument.
-
-
- Vocalized-sound
- Musical sound produced by vocal cords in a biological agent.
-
+ Collide-with
+ Hit with force when moving.
- Named-animal-sound
- A sound recognizable as being associated with particular animals.
-
- Barking
- Sharp explosive cries like sounds made by certain animals, especially a dog, fox, or seal.
-
-
- Bleating
- Wavering cries like sounds made by a sheep, goat, or calf.
-
-
- Crowing
- Loud shrill sounds characteristic of roosters.
-
-
- Chirping
- Short, sharp, high-pitched noises like sounds made by small birds or an insects.
-
-
- Growling
- Low guttural sounds like those that made in the throat by a hostile dog or other animal.
-
-
- Meowing
- Vocalizations like those made by as those cats. These sounds have diverse tones and are sometimes chattered, murmured or whispered. The purpose can be assertive.
-
-
- Mooing
- Deep vocal sounds like those made by a cow.
-
-
- Purring
- Low continuous vibratory sound such as those made by cats. The sound expresses contentment.
-
-
- Roaring
- Loud, deep, or harsh prolonged sounds such as those made by big cats and bears for long-distance communication and intimidation.
-
-
- Squawking
- Loud, harsh noises such as those made by geese.
-
+ Halt
+ Bring or come to an abrupt stop.
- Named-object-sound
- A sound identifiable as coming from a particular type of object.
-
- Alarm-sound
- A loud signal often loud continuous ringing to alert people to a problem or condition that requires urgent attention.
-
-
- Beep
- A short, single tone, that is typically high-pitched and generally made by a computer or other machine.
-
-
- Buzz
- A persistent vibratory sound often made by a buzzer device and used to indicate something incorrect.
-
-
- Ka-ching
- The sound made by a mechanical cash register, often to designate a reward.
-
-
- Click
- The sound made by a mechanical cash register, often to designate a reward.
-
-
- Ding
- A short ringing sound such as that made by a bell, often to indicate a correct response or the expiration of time.
-
-
- Horn-blow
- A loud sound made by forcing air through a sound device that funnels air to create the sound, often used to sound an alert.
-
-
- Siren
- A loud, continuous sound often varying in frequency designed to indicate an emergency.
-
+ Modify
+ Change something.
+
+
+ Open
+ Widen an aperture, door, or gap, especially one allowing access to something.
+
+
+ Operate
+ Control the functioning of a machine, process, or system.
+
+
+ Play
+ Engage in activity for enjoyment and recreation rather than a serious or practical purpose.
+
+
+ Read
+ Interpret something that is written or printed.
+
+
+ Repeat
+ Make do or perform again.
+
+
+ Rest
+ Be inactive in order to regain strength, health, or energy.
+
+
+ Write
+ Communicate or express by means of letters or symbols written or imprinted on a surface.
-
-
- Property
- Something that pertains to a thing. A characteristic of some entity. A quality or feature regarded as a characteristic or inherent part of someone or something. HED attributes are adjectives or adverbs.
-
- extensionAllowed
-
- Agent-property
- Something that pertains to an agent.
-
- extensionAllowed
-
+ Think
+ Direct the mind toward someone or something or use the mind actively to form connected ideas.
- Agent-state
- The state of the agent.
-
- Agent-cognitive-state
- The state of the cognitive processes or state of mind of the agent.
-
- Alert
- Condition of heightened watchfulness or preparation for action.
-
-
- Anesthetized
- Having lost sensation to pain or having senses dulled due to the effects of an anesthetic.
-
-
- Asleep
- Having entered a periodic, readily reversible state of reduced awareness and metabolic activity, usually accompanied by physical relaxation and brain activity.
-
-
- Attentive
- Concentrating and focusing mental energy on the task or surroundings.
-
-
- Distracted
- Lacking in concentration because of being preoccupied.
-
-
- Awake
- In a non sleeping state.
-
-
- Brain-dead
- Characterized by the irreversible absence of cortical and brain stem functioning.
-
-
- Comatose
- In a state of profound unconsciousness associated with markedly depressed cerebral activity.
-
-
- Drowsy
- In a state of near-sleep, a strong desire for sleep, or sleeping for unusually long periods.
-
-
- Intoxicated
- In a state with disturbed psychophysiological functions and responses as a result of administration or ingestion of a psychoactive substance.
-
-
- Locked-in
- In a state of complete paralysis of all voluntary muscles except for the ones that control the movements of the eyes.
-
-
- Passive
- Not responding or initiating an action in response to a stimulus.
-
-
- Resting
- A state in which the agent is not exhibiting any physical exertion.
-
-
- Vegetative
- A state of wakefulness and conscience, but (in contrast to coma) with involuntary opening of the eyes and movements (such as teeth grinding, yawning, or thrashing of the extremities).
-
-
-
- Agent-emotional-state
- The status of the general temperament and outlook of an agent.
-
- Angry
- Experiencing emotions characterized by marked annoyance or hostility.
-
-
- Aroused
- In a state reactive to stimuli leading to increased heart rate and blood pressure, sensory alertness, mobility and readiness to respond.
-
-
- Awed
- Filled with wonder. Feeling grand, sublime or powerful emotions characterized by a combination of joy, fear, admiration, reverence, and/or respect.
-
-
- Compassionate
- Feeling or showing sympathy and concern for others often evoked for a person who is in distress and associated with altruistic motivation.
-
-
- Content
- Feeling satisfaction with things as they are.
-
-
- Disgusted
- Feeling revulsion or profound disapproval aroused by something unpleasant or offensive.
-
-
- Emotionally-neutral
- Feeling neither satisfied nor dissatisfied.
-
-
- Empathetic
- Understanding and sharing the feelings of another. Being aware of, being sensitive to, and vicariously experiencing the feelings, thoughts, and experience of another.
-
-
- Excited
- Feeling great enthusiasm and eagerness.
-
-
- Fearful
- Feeling apprehension that one may be in danger.
-
-
- Frustrated
- Feeling annoyed as a result of being blocked, thwarted, disappointed or defeated.
-
-
- Grieving
- Feeling sorrow in response to loss, whether physical or abstract.
-
-
- Happy
- Feeling pleased and content.
-
-
- Jealous
- Feeling threatened by a rival in a relationship with another individual, in particular an intimate partner, usually involves feelings of threat, fear, suspicion, distrust, anxiety, anger, betrayal, and rejection.
-
-
- Joyful
- Feeling delight or intense happiness.
-
-
- Loving
- Feeling a strong positive emotion of affection and attraction.
-
-
- Relieved
- No longer feeling pain, distress, anxiety, or reassured.
-
-
- Sad
- Feeling grief or unhappiness.
-
-
- Stressed
- Experiencing mental or emotional strain or tension.
-
-
-
- Agent-physiological-state
- Having to do with the mechanical, physical, or biochemical function of an agent.
-
- Healthy
- Having no significant health-related issues.
-
- relatedTag
- Sick
-
-
-
- Hungry
- Being in a state of craving or desiring food.
-
- relatedTag
- Sated
- Thirsty
-
-
-
- Rested
- Feeling refreshed and relaxed.
-
- relatedTag
- Tired
-
-
-
- Sated
- Feeling full.
-
- relatedTag
- Hungry
-
-
-
- Sick
- Being in a state of ill health, bodily malfunction, or discomfort.
-
- relatedTag
- Healthy
-
-
-
- Thirsty
- Feeling a need to drink.
-
- relatedTag
- Hungry
-
-
-
- Tired
- Feeling in need of sleep or rest.
-
- relatedTag
- Rested
-
-
-
-
- Agent-postural-state
- Pertaining to the position in which agent holds their body.
-
- Crouching
- Adopting a position where the knees are bent and the upper body is brought forward and down, sometimes to avoid detection or to defend oneself.
-
-
- Eyes-closed
- Keeping eyes closed with no blinking.
-
-
- Eyes-open
- Keeping eyes open with occasional blinking.
-
-
- Kneeling
- Positioned where one or both knees are on the ground.
-
-
- On-treadmill
- Ambulation on an exercise apparatus with an endless moving belt to support moving in place.
-
-
- Prone
- Positioned in a recumbent body position whereby the person lies on its stomach and faces downward.
-
-
- Sitting
- In a seated position.
-
-
- Standing
- Assuming or maintaining an erect upright position.
-
-
- Seated-with-chin-rest
- Using a device that supports the chin and head.
-
-
+ Allow
+ Allow access to something such as allowing a car to pass.
- Agent-task-role
- The function or part that is ascribed to an agent in performing the task.
-
- Experiment-actor
- An agent who plays a predetermined role to create the experiment scenario.
-
-
- Experiment-controller
- An agent exerting control over some aspect of the experiment.
-
-
- Experiment-participant
- Someone who takes part in an activity related to an experiment.
-
-
- Experimenter
- Person who is the owner of the experiment and has its responsibility.
-
+ Attend-to
+ Focus mental experience on specific targets.
- Agent-trait
- A genetically, environmentally, or socially determined characteristic of an agent.
-
- Age
- Length of time elapsed time since birth of the agent.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
-
-
- Agent-experience-level
- Amount of skill or knowledge that the agent has as pertains to the task.
-
- Expert-level
- Having comprehensive and authoritative knowledge of or skill in a particular area related to the task.
-
- relatedTag
- Intermediate-experience-level
- Novice-level
-
-
-
- Intermediate-experience-level
- Having a moderate amount of knowledge or skill related to the task.
-
- relatedTag
- Expert-level
- Novice-level
-
-
-
- Novice-level
- Being inexperienced in a field or situation related to the task.
-
- relatedTag
- Expert-level
- Intermediate-experience-level
-
-
-
-
- Gender
- Characteristics that are socially constructed, including norms, behaviors, and roles based on sex.
-
-
- Sex
- Physical properties or qualities by which male is distinguished from female.
-
- Female
- Biological sex of an individual with female sexual organs such ova.
-
-
- Male
- Biological sex of an individual with male sexual organs producing sperm.
-
-
- Intersex
- Having genitalia and/or secondary sexual characteristics of indeterminate sex.
-
-
-
- Ethnicity
- Belong to a social group that has a common national or cultural tradition. Use with Label to avoid extension.
-
-
- Handedness
- Individual preference for use of a hand, known as the dominant hand.
-
- Left-handed
- Preference for using the left hand or foot for tasks requiring the use of a single hand or foot.
-
-
- Right-handed
- Preference for using the right hand or foot for tasks requiring the use of a single hand or foot.
-
-
- Ambidextrous
- Having no overall dominance in the use of right or left hand or foot in the performance of tasks that require one hand or foot.
-
-
-
- Race
- Belonging to a group sharing physical or social qualities as defined within a specified society. Use with Label to avoid extension.
-
+ Count
+ Tally items either silently or aloud.
-
-
- Data-property
- Something that pertains to data or information.
-
- extensionAllowed
-
- Data-marker
- An indicator placed to mark something.
-
- Data-break-marker
- An indicator place to indicate a gap in the data.
-
-
- Temporal-marker
- An indicator placed at a particular time in the data.
-
- Inset
- Marks an intermediate point in an ongoing event of temporal extent.
-
- topLevelTagGroup
-
-
- reserved
-
-
- relatedTag
- Onset
- Offset
-
-
-
- Onset
- Marks the start of an ongoing event of temporal extent.
-
- topLevelTagGroup
-
-
- reserved
-
-
- relatedTag
- Inset
- Offset
-
-
-
- Offset
- Marks the end of an event of temporal extent.
-
- topLevelTagGroup
-
-
- reserved
-
-
- relatedTag
- Onset
- Inset
-
-
-
- Pause
- Indicates the temporary interruption of the operation a process and subsequently wait for a signal to continue.
-
-
- Time-out
- A cancellation or cessation that automatically occurs when a predefined interval of time has passed without a certain event occurring.
-
-
- Time-sync
- A synchronization signal whose purpose to help synchronize different signals or processes. Often used to indicate a marker inserted into the recorded data to allow post hoc synchronization of concurrently recorded data streams.
-
-
+ Deny
+ Refuse to give or grant something requested or desired by someone.
- Data-resolution
- Smallest change in a quality being measured by an sensor that causes a perceptible change.
-
- Printer-resolution
- Resolution of a printer, usually expressed as the number of dots-per-inch for a printer.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
-
-
- Screen-resolution
- Resolution of a screen, usually expressed as the of pixels in a dimension for a digital display device.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
-
-
- Sensory-resolution
- Resolution of measurements by a sensing device.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
-
-
- Spatial-resolution
- Linear spacing of a spatial measurement.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
-
-
- Spectral-resolution
- Measures the ability of a sensor to resolve features in the electromagnetic spectrum.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
-
-
- Temporal-resolution
- Measures the ability of a sensor to resolve features in time.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
-
+ Detect
+ Discover or identify the presence or existence of something.
- Data-source-type
- The type of place, person, or thing from which the data comes or can be obtained.
-
- Computed-feature
- A feature computed from the data by a tool. This tag should be grouped with a label of the form Toolname_propertyName.
-
-
- Computed-prediction
- A computed extrapolation of known data.
-
-
- Expert-annotation
- An explanatory or critical comment or other in-context information provided by an authority.
-
-
- Instrument-measurement
- Information obtained from a device that is used to measure material properties or make other observations.
-
-
- Observation
- Active acquisition of information from a primary source. Should be grouped with a label of the form AgentID_featureName.
-
+ Discriminate
+ Recognize a distinction.
- Data-value
- Designation of the type of a data item.
-
- Categorical-value
- Indicates that something can take on a limited and usually fixed number of possible values.
-
- Categorical-class-value
- Categorical values that fall into discrete classes such as true or false. The grouping is absolute in the sense that it is the same for all participants.
-
- All
- To a complete degree or to the full or entire extent.
-
- relatedTag
- Some
- None
-
-
-
- Correct
- Free from error. Especially conforming to fact or truth.
-
- relatedTag
- Wrong
-
-
-
- Explicit
- Stated clearly and in detail, leaving no room for confusion or doubt.
-
- relatedTag
- Implicit
-
-
-
- False
- Not in accordance with facts, reality or definitive criteria.
-
- relatedTag
- True
-
-
-
- Implicit
- Implied though not plainly expressed.
-
- relatedTag
- Explicit
-
-
-
- Invalid
- Not allowed or not conforming to the correct format or specifications.
-
- relatedTag
- Valid
-
-
-
- None
- No person or thing, nobody, not any.
-
- relatedTag
- All
- Some
-
-
-
- Some
- At least a small amount or number of, but not a large amount of, or often.
-
- relatedTag
- All
- None
-
-
-
- True
- Conforming to facts, reality or definitive criteria.
-
- relatedTag
- False
-
-
-
- Valid
- Allowable, usable, or acceptable.
-
- relatedTag
- Invalid
-
-
-
- Wrong
- Inaccurate or not correct.
-
- relatedTag
- Correct
-
-
-
-
- Categorical-judgment-value
- Categorical values that are based on the judgment or perception of the participant such familiar and famous.
-
- Abnormal
- Deviating in any way from the state, position, structure, condition, behavior, or rule which is considered a norm.
-
- relatedTag
- Normal
-
-
-
- Asymmetrical
- Lacking symmetry or having parts that fail to correspond to one another in shape, size, or arrangement.
-
- relatedTag
- Symmetrical
-
-
-
- Audible
- A sound that can be perceived by the participant.
-
- relatedTag
- Inaudible
-
-
-
- Congruent
- Concordance of multiple evidence lines. In agreement or harmony.
-
- relatedTag
- Incongruent
-
-
-
- Complex
- Hard, involved or complicated, elaborate, having many parts.
-
- relatedTag
- Simple
-
-
-
- Constrained
- Keeping something within particular limits or bounds.
-
- relatedTag
- Unconstrained
-
-
-
- Disordered
- Not neatly arranged. Confused and untidy. A structural quality in which the parts of an object are non-rigid.
-
- relatedTag
- Ordered
-
-
-
- Familiar
- Recognized, familiar, or within the scope of knowledge.
-
- relatedTag
- Unfamiliar
- Famous
-
-
-
- Famous
- A person who has a high degree of recognition by the general population for his or her success or accomplishments. A famous person.
-
- relatedTag
- Familiar
- Unfamiliar
-
-
-
- Inaudible
- A sound below the threshold of perception of the participant.
-
- relatedTag
- Audible
-
-
-
- Incongruent
- Not in agreement or harmony.
-
- relatedTag
- Congruent
-
-
-
- Involuntary
- An action that is not made by choice. In the body, involuntary actions (such as blushing) occur automatically, and cannot be controlled by choice.
-
- relatedTag
- Voluntary
-
-
-
- Masked
- Information exists but is not provided or is partially obscured due to security, privacy, or other concerns.
-
- relatedTag
- Unmasked
-
-
-
- Normal
- Being approximately average or within certain limits. Conforming with or constituting a norm or standard or level or type or social norm.
-
- relatedTag
- Abnormal
-
-
-
- Ordered
- Conforming to a logical or comprehensible arrangement of separate elements.
-
- relatedTag
- Disordered
-
-
-
- Simple
- Easily understood or presenting no difficulties.
-
- relatedTag
- Complex
-
-
-
- Symmetrical
- Made up of exactly similar parts facing each other or around an axis. Showing aspects of symmetry.
-
- relatedTag
- Asymmetrical
-
-
-
- Unconstrained
- Moving without restriction.
-
- relatedTag
- Constrained
-
-
-
- Unfamiliar
- Not having knowledge or experience of.
-
- relatedTag
- Familiar
- Famous
-
-
-
- Unmasked
- Information is revealed.
-
- relatedTag
- Masked
-
-
-
- Voluntary
- Using free will or design; not forced or compelled; controlled by individual volition.
-
- relatedTag
- Involuntary
-
-
-
-
- Categorical-level-value
- Categorical values based on dividing a continuous variable into levels such as high and low.
-
- Cold
- Having an absence of heat.
-
- relatedTag
- Hot
-
-
-
- Deep
- Extending relatively far inward or downward.
-
- relatedTag
- Shallow
-
-
-
- High
- Having a greater than normal degree, intensity, or amount.
-
- relatedTag
- Low
- Medium
-
-
-
- Hot
- Having an excess of heat.
-
- relatedTag
- Cold
-
-
-
- Large
- Having a great extent such as in physical dimensions, period of time, amplitude or frequency.
-
- relatedTag
- Small
-
-
-
- Liminal
- Situated at a sensory threshold that is barely perceptible or capable of eliciting a response.
-
- relatedTag
- Subliminal
- Supraliminal
-
-
-
- Loud
- Having a perceived high intensity of sound.
-
- relatedTag
- Quiet
-
-
-
- Low
- Less than normal in degree, intensity or amount.
-
- relatedTag
- High
-
-
-
- Medium
- Mid-way between small and large in number, quantity, magnitude or extent.
-
- relatedTag
- Low
- High
-
-
-
- Negative
- Involving disadvantage or harm.
-
- relatedTag
- Positive
-
-
-
- Positive
- Involving advantage or good.
-
- relatedTag
- Negative
-
-
-
- Quiet
- Characterizing a perceived low intensity of sound.
-
- relatedTag
- Loud
-
-
-
- Rough
- Having a surface with perceptible bumps, ridges, or irregularities.
-
- relatedTag
- Smooth
-
-
-
- Shallow
- Having a depth which is relatively low.
-
- relatedTag
- Deep
-
-
-
- Small
- Having a small extent such as in physical dimensions, period of time, amplitude or frequency.
-
- relatedTag
- Large
-
-
-
- Smooth
- Having a surface free from bumps, ridges, or irregularities.
-
- relatedTag
- Rough
-
-
-
- Subliminal
- Situated below a sensory threshold that is imperceptible or not capable of eliciting a response.
-
- relatedTag
- Liminal
- Supraliminal
-
-
-
- Supraliminal
- Situated above a sensory threshold that is perceptible or capable of eliciting a response.
-
- relatedTag
- Liminal
- Subliminal
-
-
-
- Thick
- Wide in width, extent or cross-section.
-
- relatedTag
- Thin
-
-
-
- Thin
- Narrow in width, extent or cross-section.
-
- relatedTag
- Thick
-
-
-
-
- Categorical-orientation-value
- Value indicating the orientation or direction of something.
-
- Backward
- Directed behind or to the rear.
-
- relatedTag
- Forward
-
-
-
- Downward
- Moving or leading toward a lower place or level.
-
- relatedTag
- Leftward
- Rightward
- Upward
-
-
-
- Forward
- At or near or directed toward the front.
-
- relatedTag
- Backward
-
-
-
- Horizontally-oriented
- Oriented parallel to or in the plane of the horizon.
-
- relatedTag
- Vertically-oriented
-
-
-
- Leftward
- Going toward or facing the left.
-
- relatedTag
- Downward
- Rightward
- Upward
-
-
-
- Oblique
- Slanting or inclined in direction, course, or position that is neither parallel nor perpendicular nor right-angular.
-
- relatedTag
- Rotated
-
-
-
- Rightward
- Going toward or situated on the right.
-
- relatedTag
- Downward
- Leftward
- Upward
-
-
-
- Rotated
- Positioned offset around an axis or center.
-
-
- Upward
- Moving, pointing, or leading to a higher place, point, or level.
-
- relatedTag
- Downward
- Leftward
- Rightward
-
-
-
- Vertically-oriented
- Oriented perpendicular to the plane of the horizon.
-
- relatedTag
- Horizontally-oriented
-
-
-
-
-
- Physical-value
- The value of some physical property of something.
-
- Weight
- The relative mass or the quantity of matter contained by something.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
- unitClass
- weightUnits
-
-
-
-
- Temperature
- A measure of hot or cold based on the average kinetic energy of the atoms or molecules in the system.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
- unitClass
- temperatureUnits
-
-
-
-
-
- Quantitative-value
- Something capable of being estimated or expressed with numeric values.
-
- Fraction
- A numerical value between 0 and 1.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
-
-
- Item-count
- The integer count of something which is usually grouped with the entity it is counting. (Item-count/3, A) indicates that 3 of A have occurred up to this point.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
-
-
- Item-index
- The index of an item in a collection, sequence or other structure. (A (Item-index/3, B)) means that A is item number 3 in B.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
-
-
- Item-interval
- An integer indicating how many items or entities have passed since the last one of these. An item interval of 0 indicates the current item.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
-
-
- Percentage
- A fraction or ratio with 100 understood as the denominator.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
-
-
- Ratio
- A quotient of quantities of the same kind for different components within the same system.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
-
-
-
- Statistical-value
- A value based on or employing the principles of statistics.
-
- extensionAllowed
-
-
- Data-maximum
- The largest possible quantity or degree.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
-
-
- Data-mean
- The sum of a set of values divided by the number of values in the set.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
-
-
- Data-median
- The value which has an equal number of values greater and less than it.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
-
-
- Data-minimum
- The smallest possible quantity.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
-
-
- Probability
- A measure of the expectation of the occurrence of a particular event.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
-
-
- Standard-deviation
- A measure of the range of values in a set of numbers. Standard deviation is a statistic used as a measure of the dispersion or variation in a distribution, equal to the square root of the arithmetic mean of the squares of the deviations from the arithmetic mean.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
-
-
- Statistical-accuracy
- A measure of closeness to true value expressed as a number between 0 and 1.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
-
-
- Statistical-precision
- A quantitative representation of the degree of accuracy necessary for or associated with a particular action.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
-
-
- Statistical-recall
- Sensitivity is a measurement datum qualifying a binary classification test and is computed by substracting the false negative rate to the integral numeral 1.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
-
-
- Statistical-uncertainty
- A measure of the inherent variability of repeated observation measurements of a quantity including quantities evaluated by statistical methods and by other means.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
-
-
-
- Spatiotemporal-value
- A property relating to space and/or time.
-
- Rate-of-change
- The amount of change accumulated per unit time.
-
- Acceleration
- Magnitude of the rate of change in either speed or direction. The direction of change should be given separately.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
- unitClass
- accelerationUnits
-
-
-
-
- Frequency
- Frequency is the number of occurrences of a repeating event per unit time.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
- unitClass
- frequencyUnits
-
-
-
-
- Jerk-rate
- Magnitude of the rate at which the acceleration of an object changes with respect to time. The direction of change should be given separately.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
- unitClass
- jerkUnits
-
-
-
-
- Sampling-rate
- The number of digital samples taken or recorded per unit of time.
-
- #
-
- takesValue
-
-
- unitClass
- frequencyUnits
-
-
-
-
- Refresh-rate
- The frequency with which the image on a computer monitor or similar electronic display screen is refreshed, usually expressed in hertz.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
-
-
- Speed
- A scalar measure of the rate of movement of the object expressed either as the distance travelled divided by the time taken (average speed) or the rate of change of position with respect to time at a particular point (instantaneous speed). The direction of change should be given separately.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
- unitClass
- speedUnits
-
-
-
-
- Temporal-rate
- The number of items per unit of time.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
- unitClass
- frequencyUnits
-
-
-
-
-
- Spatial-value
- Value of an item involving space.
-
- Angle
- The amount of inclination of one line to another or the plane of one object to another.
-
- #
-
- takesValue
-
-
- unitClass
- angleUnits
-
-
- valueClass
- numericClass
-
-
-
-
- Distance
- A measure of the space separating two objects or points.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
- unitClass
- physicalLengthUnits
-
-
-
-
- Position
- A reference to the alignment of an object, a particular situation or view of a situation, or the location of an object. Coordinates with respect a specified frame of reference or the default Screen-frame if no frame is given.
-
- X-position
- The position along the x-axis of the frame of reference.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
- unitClass
- physicalLengthUnits
-
-
-
-
- Y-position
- The position along the y-axis of the frame of reference.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
- unitClass
- physicalLengthUnits
-
-
-
-
- Z-position
- The position along the z-axis of the frame of reference.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
- unitClass
- physicalLengthUnits
-
-
-
-
-
- Size
- The physical magnitude of something.
-
- Area
- The extent of a 2-dimensional surface enclosed within a boundary.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
- unitClass
- areaUnits
-
-
-
-
- Depth
- The distance from the surface of something especially from the perspective of looking from the front.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
- unitClass
- physicalLengthUnits
-
-
-
-
- Length
- The linear extent in space from one end of something to the other end, or the extent of something from beginning to end.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
- unitClass
- physicalLengthUnits
-
-
-
-
- Width
- The extent or measurement of something from side to side.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
- unitClass
- physicalLengthUnits
-
-
-
-
- Height
- The vertical measurement or distance from the base to the top of an object.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
- unitClass
- physicalLengthUnits
-
-
-
-
- Volume
- The amount of three dimensional space occupied by an object or the capacity of a space or container.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
- unitClass
- volumeUnits
-
-
-
-
-
-
- Temporal-value
- A characteristic of or relating to time or limited by time.
-
- Delay
- The time at which an event start time is delayed from the current onset time. This tag defines the start time of an event of temporal extent and may be used with the Duration tag.
-
- topLevelTagGroup
-
-
- reserved
-
-
- relatedTag
- Duration
-
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
- unitClass
- timeUnits
-
-
-
-
- Duration
- The period of time during which an event occurs. This tag defines the end time of an event of temporal extent and may be used with the Delay tag.
-
- topLevelTagGroup
-
-
- reserved
-
-
- relatedTag
- Delay
-
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
- unitClass
- timeUnits
-
-
-
-
- Time-interval
- The period of time separating two instances, events, or occurrences.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
- unitClass
- timeUnits
-
-
-
-
- Time-value
- A value with units of time. Usually grouped with tags identifying what the value represents.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
- unitClass
- timeUnits
-
-
-
-
-
-
-
- Data-variability-attribute
- An attribute describing how something changes or varies.
-
- Abrupt
- Marked by sudden change.
-
-
- Constant
- Continually recurring or continuing without interruption. Not changing in time or space.
-
-
- Continuous
- Uninterrupted in time, sequence, substance, or extent.
-
- relatedTag
- Discrete
- Discontinuous
-
-
-
- Decreasing
- Becoming smaller or fewer in size, amount, intensity, or degree.
-
- relatedTag
- Increasing
-
-
-
- Deterministic
- No randomness is involved in the development of the future states of the element.
-
- relatedTag
- Random
- Stochastic
-
-
-
- Discontinuous
- Having a gap in time, sequence, substance, or extent.
-
- relatedTag
- Continuous
-
-
-
- Discrete
- Constituting a separate entities or parts.
-
- relatedTag
- Continuous
- Discontinuous
-
-
-
- Flickering
- Moving irregularly or unsteadily or burning or shining fitfully or with a fluctuating light.
-
-
- Estimated-value
- Something that has been calculated or measured approximately.
-
-
- Exact-value
- A value that is viewed to the true value according to some standard.
-
-
- Fractal
- Having extremely irregular curves or shapes for which any suitably chosen part is similar in shape to a given larger or smaller part when magnified or reduced to the same size.
-
-
- Increasing
- Becoming greater in size, amount, or degree.
-
- relatedTag
- Decreasing
-
-
-
- Random
- Governed by or depending on chance. Lacking any definite plan or order or purpose.
-
- relatedTag
- Deterministic
- Stochastic
-
-
-
- Repetitive
- A recurring action that is often non-purposeful.
-
-
- Stochastic
- Uses a random probability distribution or pattern that may be analysed statistically but may not be predicted precisely to determine future states.
-
- relatedTag
- Deterministic
- Random
-
-
-
- Varying
- Differing in size, amount, degree, or nature.
-
-
-
-
- Environmental-property
- Relating to or arising from the surroundings of an agent.
-
- Indoors
- Located inside a building or enclosure.
-
-
- Outdoors
- Any area outside a building or shelter.
-
-
- Real-world
- Located in a place that exists in real space and time under realistic conditions.
-
-
- Virtual-world
- Using technology that creates immersive, computer-generated experiences that a person can interact with and navigate through. The digital content is generally delivered to the user through some type of headset and responds to changes in head position or through interaction with other types of sensors. Existing in a virtual setting such as a simulation or game environment.
-
-
- Augmented-reality
- Using technology that enhances real-world experiences with computer-derived digital overlays to change some aspects of perception of the natural environment. The digital content is shown to the user through a smart device or glasses and responds to changes in the environment.
-
-
- Motion-platform
- A mechanism that creates the feelings of being in a real motion environment.
-
-
- Urban
- Relating to, located in, or characteristic of a city or densely populated area.
-
-
- Rural
- Of or pertaining to the country as opposed to the city.
-
-
- Terrain
- Characterization of the physical features of a tract of land.
-
- Composite-terrain
- Tracts of land characterized by a mixure of physical features.
-
-
- Dirt-terrain
- Tracts of land characterized by a soil surface and lack of vegetation.
-
-
- Grassy-terrain
- Tracts of land covered by grass.
-
-
- Gravel-terrain
- Tracts of land covered by a surface consisting a loose aggregation of small water-worn or pounded stones.
-
-
- Leaf-covered-terrain
- Tracts of land covered by leaves and composited organic material.
-
-
- Muddy-terrain
- Tracts of land covered by a liquid or semi-liquid mixture of water and some combination of soil, silt, and clay.
-
-
- Paved-terrain
- Tracts of land covered with concrete, asphalt, stones, or bricks.
-
-
- Rocky-terrain
- Tracts of land consisting or full of rock or rocks.
-
-
- Sloped-terrain
- Tracts of land arranged in a sloping or inclined position.
-
-
- Uneven-terrain
- Tracts of land that are not level, smooth, or regular.
-
-
-
-
- Informational-property
- Something that pertains to a task.
-
- extensionAllowed
-
-
- Description
- An explanation of what the tag group it is in means. If the description is at the top-level of an event string, the description applies to the event.
-
- requireChild
-
-
- #
-
- takesValue
-
-
- valueClass
- textClass
-
-
-
-
- ID
- An alphanumeric name that identifies either a unique object or a unique class of objects. Here the object or class may be an idea, physical countable object (or class), or physical uncountable substance (or class).
-
- requireChild
-
-
- #
-
- takesValue
-
-
- valueClass
- textClass
-
-
-
-
- Label
- A string of 20 or fewer characters identifying something. Labels usually refer to general classes of things while IDs refer to specific instances. A term that is associated with some entity. A brief description given for purposes of identification. An identifying or descriptive marker that is attached to an object.
-
- requireChild
-
-
- #
-
- takesValue
-
-
- valueClass
- nameClass
-
-
-
-
- Metadata
- Data about data. Information that describes another set of data.
-
- CogAtlas
- The Cognitive Atlas ID number of something.
-
- #
-
- takesValue
-
-
-
-
- CogPo
- The CogPO ID number of something.
-
- #
-
- takesValue
-
-
-
-
- Creation-date
- The date on which data creation of this element began.
-
- requireChild
-
-
- #
-
- takesValue
-
-
- valueClass
- dateTimeClass
-
-
-
-
- Experimental-note
- A brief written record about the experiment.
-
- #
-
- takesValue
-
-
- valueClass
- textClass
-
-
-
-
- Library-name
- Official name of a HED library.
-
- #
-
- takesValue
-
-
- valueClass
- nameClass
-
-
-
-
- OBO-identifier
- The identifier of a term in some Open Biology Ontology (OBO) ontology.
-
- #
-
- takesValue
-
-
- valueClass
- nameClass
-
-
-
-
- Pathname
- The specification of a node (file or directory) in a hierarchical file system, usually specified by listing the nodes top-down.
-
- #
-
- takesValue
-
-
-
-
- Subject-identifier
- A sequence of characters used to identify, name, or characterize a trial or study subject.
-
- #
-
- takesValue
-
-
-
-
- Version-identifier
- An alphanumeric character string that identifies a form or variant of a type or original.
-
- #
- Usually is a semantic version.
-
- takesValue
-
-
-
-
-
- Parameter
- Something user-defined for this experiment.
-
- Parameter-label
- The name of the parameter.
-
- #
-
- takesValue
-
-
- valueClass
- nameClass
-
-
-
-
- Parameter-value
- The value of the parameter.
-
- #
-
- takesValue
-
-
- valueClass
- textClass
-
-
-
-
-
-
- Organizational-property
- Relating to an organization or the action of organizing something.
-
- Collection
- A tag designating a grouping of items such as in a set or list.
-
- #
- Name of the collection.
-
- takesValue
-
-
- valueClass
- nameClass
-
-
-
-
- Condition-variable
- An aspect of the experiment or task that is to be varied during the experiment. Task-conditions are sometimes called independent variables or contrasts.
-
- #
- Name of the condition variable.
-
- takesValue
-
-
- valueClass
- nameClass
-
-
-
-
- Control-variable
- An aspect of the experiment that is fixed throughout the study and usually is explicitly controlled.
-
- #
- Name of the control variable.
-
- takesValue
-
-
- valueClass
- nameClass
-
-
-
-
- Def
- A HED-specific utility tag used with a defined name to represent the tags associated with that definition.
-
- requireChild
-
-
- reserved
-
-
- #
- Name of the definition.
-
- takesValue
-
-
- valueClass
- nameClass
-
-
-
-
- Def-expand
- A HED specific utility tag that is grouped with an expanded definition. The child value of the Def-expand is the name of the expanded definition.
-
- requireChild
-
-
- reserved
-
-
- tagGroup
-
-
- #
-
- takesValue
-
-
- valueClass
- nameClass
-
-
-
-
- Definition
- A HED-specific utility tag whose child value is the name of the concept and the tag group associated with the tag is an English language explanation of a concept.
-
- requireChild
-
-
- reserved
-
-
- topLevelTagGroup
-
-
- #
- Name of the definition.
-
- takesValue
-
-
- valueClass
- nameClass
-
-
-
-
- Event-context
- A special HED tag inserted as part of a top-level tag group to contain information about the interrelated conditions under which the event occurs. The event context includes information about other events that are ongoing when this event happens.
-
- reserved
-
-
- topLevelTagGroup
-
-
- unique
-
-
-
- Event-stream
- A special HED tag indicating that this event is a member of an ordered succession of events.
-
- #
- Name of the event stream.
-
- takesValue
-
-
- valueClass
- nameClass
-
-
-
-
- Experimental-intertrial
- A tag used to indicate a part of the experiment between trials usually where nothing is happening.
-
- #
- Optional label for the intertrial block.
-
- takesValue
-
-
- valueClass
- nameClass
-
-
-
-
- Experimental-trial
- Designates a run or execution of an activity, for example, one execution of a script. A tag used to indicate a particular organizational part in the experimental design often containing a stimulus-response pair or stimulus-response-feedback triad.
-
- #
- Optional label for the trial (often a numerical string).
-
- takesValue
-
-
- valueClass
- nameClass
-
-
-
-
- Indicator-variable
- An aspect of the experiment or task that is measured as task conditions are varied during the experiment. Experiment indicators are sometimes called dependent variables.
-
- #
- Name of the indicator variable.
-
- takesValue
-
-
- valueClass
- nameClass
-
-
-
-
- Recording
- A tag designating the data recording. Recording tags are usually have temporal scope which is the entire recording.
-
- #
- Optional label for the recording.
-
- takesValue
-
-
- valueClass
- nameClass
-
-
-
-
- Task
- An assigned piece of work, usually with a time allotment. A tag used to indicate a linkage the structured activities performed as part of the experiment.
-
- #
- Optional label for the task block.
-
- takesValue
-
-
- valueClass
- nameClass
-
-
-
-
- Time-block
- A tag used to indicate a contiguous time block in the experiment during which something is fixed or noted.
-
- #
- Optional label for the task block.
-
- takesValue
-
-
- valueClass
- nameClass
-
-
-
-
-
- Sensory-property
- Relating to sensation or the physical senses.
-
- Sensory-attribute
- A sensory characteristic associated with another entity.
-
- Auditory-attribute
- Pertaining to the sense of hearing.
-
- Loudness
- Perceived intensity of a sound.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
- nameClass
-
-
-
-
- Pitch
- A perceptual property that allows the user to order sounds on a frequency scale.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
- unitClass
- frequencyUnits
-
-
-
-
- Sound-envelope
- Description of how a sound changes over time.
-
- Sound-envelope-attack
- The time taken for initial run-up of level from nil to peak usually beginning when the key on a musical instrument is pressed.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
- unitClass
- timeUnits
-
-
-
-
- Sound-envelope-decay
- The time taken for the subsequent run down from the attack level to the designated sustain level.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
- unitClass
- timeUnits
-
-
-
-
- Sound-envelope-release
- The time taken for the level to decay from the sustain level to zero after the key is released.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
- unitClass
- timeUnits
-
-
-
-
- Sound-envelope-sustain
- The time taken for the main sequence of the sound duration, until the key is released.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
- unitClass
- timeUnits
-
-
-
-
-
- Timbre
- The perceived sound quality of a singing voice or musical instrument.
-
- #
-
- takesValue
-
-
- valueClass
- nameClass
-
-
-
-
- Sound-volume
- The sound pressure level (SPL) usually the ratio to a reference signal estimated as the lower bound of hearing.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
- unitClass
- intensityUnits
-
-
-
-
-
- Gustatory-attribute
- Pertaining to the sense of taste.
-
- Bitter
- Having a sharp, pungent taste.
-
-
- Salty
- Tasting of or like salt.
-
-
- Savory
- Belonging to a taste that is salty or spicy rather than sweet.
-
-
- Sour
- Having a sharp, acidic taste.
-
-
- Sweet
- Having or resembling the taste of sugar.
-
-
-
- Olfactory-attribute
- Having a smell.
-
-
- Somatic-attribute
- Pertaining to the feelings in the body or of the nervous system.
-
- Pain
- The sensation of discomfort, distress, or agony, resulting from the stimulation of specialized nerve endings.
-
-
- Stress
- The negative mental, emotional, and physical reactions that occur when environmental stressors are perceived as exceeding the adaptive capacities of the individual.
-
-
-
- Tactile-attribute
- Pertaining to the sense of touch.
-
- Tactile-pressure
- Having a feeling of heaviness.
-
-
- Tactile-temperature
- Having a feeling of hotness or coldness.
-
-
- Tactile-texture
- Having a feeling of roughness.
-
-
- Tactile-vibration
- Having a feeling of mechanical oscillation.
-
-
-
- Vestibular-attribute
- Pertaining to the sense of balance or body position.
-
-
- Visual-attribute
- Pertaining to the sense of sight.
-
- Color
- The appearance of objects (or light sources) described in terms of perception of their hue and lightness (or brightness) and saturation.
-
- CSS-color
- One of 140 colors supported by all browsers. For more details such as the color RGB or HEX values, check: https://www.w3schools.com/colors/colors_groups.asp.
-
- Blue-color
- CSS color group.
-
- CadetBlue
- CSS-color 0x5F9EA0.
-
-
- SteelBlue
- CSS-color 0x4682B4.
-
-
- LightSteelBlue
- CSS-color 0xB0C4DE.
-
-
- LightBlue
- CSS-color 0xADD8E6.
-
-
- PowderBlue
- CSS-color 0xB0E0E6.
-
-
- LightSkyBlue
- CSS-color 0x87CEFA.
-
-
- SkyBlue
- CSS-color 0x87CEEB.
-
-
- CornflowerBlue
- CSS-color 0x6495ED.
-
-
- DeepSkyBlue
- CSS-color 0x00BFFF.
-
-
- DodgerBlue
- CSS-color 0x1E90FF.
-
-
- RoyalBlue
- CSS-color 0x4169E1.
-
-
- Blue
- CSS-color 0x0000FF.
-
-
- MediumBlue
- CSS-color 0x0000CD.
-
-
- DarkBlue
- CSS-color 0x00008B.
-
-
- Navy
- CSS-color 0x000080.
-
-
- MidnightBlue
- CSS-color 0x191970.
-
-
-
- Brown-color
- CSS color group.
-
- Cornsilk
- CSS-color 0xFFF8DC.
-
-
- BlanchedAlmond
- CSS-color 0xFFEBCD.
-
-
- Bisque
- CSS-color 0xFFE4C4.
-
-
- NavajoWhite
- CSS-color 0xFFDEAD.
-
-
- Wheat
- CSS-color 0xF5DEB3.
-
-
- BurlyWood
- CSS-color 0xDEB887.
-
-
- Tan
- CSS-color 0xD2B48C.
-
-
- RosyBrown
- CSS-color 0xBC8F8F.
-
-
- SandyBrown
- CSS-color 0xF4A460.
-
-
- GoldenRod
- CSS-color 0xDAA520.
-
-
- DarkGoldenRod
- CSS-color 0xB8860B.
-
-
- Peru
- CSS-color 0xCD853F.
-
-
- Chocolate
- CSS-color 0xD2691E.
-
-
- Olive
- CSS-color 0x808000.
-
-
- SaddleBrown
- CSS-color 0x8B4513.
-
-
- Sienna
- CSS-color 0xA0522D.
-
-
- Brown
- CSS-color 0xA52A2A.
-
-
- Maroon
- CSS-color 0x800000.
-
-
-
- Cyan-color
- CSS color group.
-
- Aqua
- CSS-color 0x00FFFF.
-
-
- Cyan
- CSS-color 0x00FFFF.
-
-
- LightCyan
- CSS-color 0xE0FFFF.
-
-
- PaleTurquoise
- CSS-color 0xAFEEEE.
-
-
- Aquamarine
- CSS-color 0x7FFFD4.
-
-
- Turquoise
- CSS-color 0x40E0D0.
-
-
- MediumTurquoise
- CSS-color 0x48D1CC.
-
-
- DarkTurquoise
- CSS-color 0x00CED1.
-
-
-
- Green-color
- CSS color group.
-
- GreenYellow
- CSS-color 0xADFF2F.
-
-
- Chartreuse
- CSS-color 0x7FFF00.
-
-
- LawnGreen
- CSS-color 0x7CFC00.
-
-
- Lime
- CSS-color 0x00FF00.
-
-
- LimeGreen
- CSS-color 0x32CD32.
-
-
- PaleGreen
- CSS-color 0x98FB98.
-
-
- LightGreen
- CSS-color 0x90EE90.
-
-
- MediumSpringGreen
- CSS-color 0x00FA9A.
-
-
- SpringGreen
- CSS-color 0x00FF7F.
-
-
- MediumSeaGreen
- CSS-color 0x3CB371.
-
-
- SeaGreen
- CSS-color 0x2E8B57.
-
-
- ForestGreen
- CSS-color 0x228B22.
-
-
- Green
- CSS-color 0x008000.
-
-
- DarkGreen
- CSS-color 0x006400.
-
-
- YellowGreen
- CSS-color 0x9ACD32.
-
-
- OliveDrab
- CSS-color 0x6B8E23.
-
-
- DarkOliveGreen
- CSS-color 0x556B2F.
-
-
- MediumAquaMarine
- CSS-color 0x66CDAA.
-
-
- DarkSeaGreen
- CSS-color 0x8FBC8F.
-
-
- LightSeaGreen
- CSS-color 0x20B2AA.
-
-
- DarkCyan
- CSS-color 0x008B8B.
-
-
- Teal
- CSS-color 0x008080.
-
-
-
- Gray-color
- CSS color group.
-
- Gainsboro
- CSS-color 0xDCDCDC.
-
-
- LightGray
- CSS-color 0xD3D3D3.
-
-
- Silver
- CSS-color 0xC0C0C0.
-
-
- DarkGray
- CSS-color 0xA9A9A9.
-
-
- DimGray
- CSS-color 0x696969.
-
-
- Gray
- CSS-color 0x808080.
-
-
- LightSlateGray
- CSS-color 0x778899.
-
-
- SlateGray
- CSS-color 0x708090.
-
-
- DarkSlateGray
- CSS-color 0x2F4F4F.
-
-
- Black
- CSS-color 0x000000.
-
-
-
- Orange-color
- CSS color group.
-
- Orange
- CSS-color 0xFFA500.
-
-
- DarkOrange
- CSS-color 0xFF8C00.
-
-
- Coral
- CSS-color 0xFF7F50.
-
-
- Tomato
- CSS-color 0xFF6347.
-
-
- OrangeRed
- CSS-color 0xFF4500.
-
-
-
- Pink-color
- CSS color group.
-
- Pink
- CSS-color 0xFFC0CB.
-
-
- LightPink
- CSS-color 0xFFB6C1.
-
-
- HotPink
- CSS-color 0xFF69B4.
-
-
- DeepPink
- CSS-color 0xFF1493.
-
-
- PaleVioletRed
- CSS-color 0xDB7093.
-
-
- MediumVioletRed
- CSS-color 0xC71585.
-
-
-
- Purple-color
- CSS color group.
-
- Lavender
- CSS-color 0xE6E6FA.
-
-
- Thistle
- CSS-color 0xD8BFD8.
-
-
- Plum
- CSS-color 0xDDA0DD.
-
-
- Orchid
- CSS-color 0xDA70D6.
-
-
- Violet
- CSS-color 0xEE82EE.
-
-
- Fuchsia
- CSS-color 0xFF00FF.
-
-
- Magenta
- CSS-color 0xFF00FF.
-
-
- MediumOrchid
- CSS-color 0xBA55D3.
-
-
- DarkOrchid
- CSS-color 0x9932CC.
-
-
- DarkViolet
- CSS-color 0x9400D3.
-
-
- BlueViolet
- CSS-color 0x8A2BE2.
-
-
- DarkMagenta
- CSS-color 0x8B008B.
-
-
- Purple
- CSS-color 0x800080.
-
-
- MediumPurple
- CSS-color 0x9370DB.
-
-
- MediumSlateBlue
- CSS-color 0x7B68EE.
-
-
- SlateBlue
- CSS-color 0x6A5ACD.
-
-
- DarkSlateBlue
- CSS-color 0x483D8B.
-
-
- RebeccaPurple
- CSS-color 0x663399.
-
-
- Indigo
- CSS-color 0x4B0082.
-
-
-
- Red-color
- CSS color group.
-
- LightSalmon
- CSS-color 0xFFA07A.
-
-
- Salmon
- CSS-color 0xFA8072.
-
-
- DarkSalmon
- CSS-color 0xE9967A.
-
-
- LightCoral
- CSS-color 0xF08080.
-
-
- IndianRed
- CSS-color 0xCD5C5C.
-
-
- Crimson
- CSS-color 0xDC143C.
-
-
- Red
- CSS-color 0xFF0000.
-
-
- FireBrick
- CSS-color 0xB22222.
-
-
- DarkRed
- CSS-color 0x8B0000.
-
-
-
- Yellow-color
- CSS color group.
-
- Gold
- CSS-color 0xFFD700.
-
-
- Yellow
- CSS-color 0xFFFF00.
-
-
- LightYellow
- CSS-color 0xFFFFE0.
-
-
- LemonChiffon
- CSS-color 0xFFFACD.
-
-
- LightGoldenRodYellow
- CSS-color 0xFAFAD2.
-
-
- PapayaWhip
- CSS-color 0xFFEFD5.
-
-
- Moccasin
- CSS-color 0xFFE4B5.
-
-
- PeachPuff
- CSS-color 0xFFDAB9.
-
-
- PaleGoldenRod
- CSS-color 0xEEE8AA.
-
-
- Khaki
- CSS-color 0xF0E68C.
-
-
- DarkKhaki
- CSS-color 0xBDB76B.
-
-
-
- White-color
- CSS color group.
-
- White
- CSS-color 0xFFFFFF.
-
-
- Snow
- CSS-color 0xFFFAFA.
-
-
- HoneyDew
- CSS-color 0xF0FFF0.
-
-
- MintCream
- CSS-color 0xF5FFFA.
-
-
- Azure
- CSS-color 0xF0FFFF.
-
-
- AliceBlue
- CSS-color 0xF0F8FF.
-
-
- GhostWhite
- CSS-color 0xF8F8FF.
-
-
- WhiteSmoke
- CSS-color 0xF5F5F5.
-
-
- SeaShell
- CSS-color 0xFFF5EE.
-
-
- Beige
- CSS-color 0xF5F5DC.
-
-
- OldLace
- CSS-color 0xFDF5E6.
-
-
- FloralWhite
- CSS-color 0xFFFAF0.
-
-
- Ivory
- CSS-color 0xFFFFF0.
-
-
- AntiqueWhite
- CSS-color 0xFAEBD7.
-
-
- Linen
- CSS-color 0xFAF0E6.
-
-
- LavenderBlush
- CSS-color 0xFFF0F5.
-
-
- MistyRose
- CSS-color 0xFFE4E1.
-
-
-
-
- Color-shade
- A slight degree of difference between colors, especially with regard to how light or dark it is or as distinguished from one nearly like it.
-
- Dark-shade
- A color tone not reflecting much light.
-
-
- Light-shade
- A color tone reflecting more light.
-
-
-
- Grayscale
- Using a color map composed of shades of gray, varying from black at the weakest intensity to white at the strongest.
-
- #
- White intensity between 0 and 1.
-
- takesValue
-
-
- valueClass
- numericClass
-
-
-
-
- HSV-color
- A color representation that models how colors appear under light.
-
- Hue
- Attribute of a visual sensation according to which an area appears to be similar to one of the perceived colors.
-
- #
- Angular value between 0 and 360.
-
- takesValue
-
-
- valueClass
- numericClass
-
-
-
-
- Saturation
- Colorfulness of a stimulus relative to its own brightness.
-
- #
- B value of RGB between 0 and 1.
-
- takesValue
-
-
- valueClass
- numericClass
-
-
-
-
- HSV-value
- An attribute of a visual sensation according to which an area appears to emit more or less light.
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
-
-
-
- RGB-color
- A color from the RGB schema.
-
- RGB-red
- The red component.
-
- #
- R value of RGB between 0 and 1.
-
- takesValue
-
-
- valueClass
- numericClass
-
-
-
-
- RGB-blue
- The blue component.
-
- #
- B value of RGB between 0 and 1.
-
- takesValue
-
-
- valueClass
- numericClass
-
-
-
-
- RGB-green
- The green component.
-
- #
- G value of RGB between 0 and 1.
-
- takesValue
-
-
- valueClass
- numericClass
-
-
-
-
-
-
- Luminance
- A quality that exists by virtue of the luminous intensity per unit area projected in a given direction.
-
-
- Opacity
- A measure of impenetrability to light.
-
-
+ Encode
+ Convert information or an instruction into a particular form.
+
+
+ Evade
+ Escape or avoid, especially by cleverness or trickery.
+
+
+ Generate
+ Cause something, especially an emotion or situation to arise or come about.
+
+
+ Identify
+ Establish or indicate who or what someone or something is.
+
+
+ Imagine
+ Form a mental image or concept of something.
+
+
+ Judge
+ Evaluate evidence to make a decision or form a belief.
+
+
+ Learn
+ Adaptively change behavior as the result of experience.
+
+
+ Memorize
+ Adaptively change behavior as the result of experience.
+
+
+ Plan
+ Think about the activities required to achieve a desired goal.
+
+
+ Predict
+ Say or estimate that something will happen or will be a consequence of something without having exact informaton.
+
+
+ Recall
+ Remember information by mental effort.
+
+
+ Recognize
+ Identify someone or something from having encountered them before.
+
+
+ Respond
+ React to something such as a treatment or a stimulus.
+
+
+ Switch-attention
+ Transfer attention from one focus to another.
- Sensory-presentation
- The entity has a sensory manifestation.
-
- Auditory-presentation
- The sense of hearing is used in the presentation to the user.
-
- Loudspeaker-separation
- The distance between two loudspeakers. Grouped with the Distance tag.
-
- suggestedTag
- Distance
-
-
-
- Monophonic
- Relating to sound transmission, recording, or reproduction involving a single transmission path.
-
-
- Silent
- The absence of ambient audible sound or the state of having ceased to produce sounds.
-
-
- Stereophonic
- Relating to, or constituting sound reproduction involving the use of separated microphones and two transmission channels to achieve the sound separation of a live hearing.
-
-
-
- Gustatory-presentation
- The sense of taste used in the presentation to the user.
-
-
- Olfactory-presentation
- The sense of smell used in the presentation to the user.
-
-
- Somatic-presentation
- The nervous system is used in the presentation to the user.
-
-
- Tactile-presentation
- The sense of touch used in the presentation to the user.
-
-
- Vestibular-presentation
- The sense balance used in the presentation to the user.
-
-
- Visual-presentation
- The sense of sight used in the presentation to the user.
-
- 2D-view
- A view showing only two dimensions.
-
-
- 3D-view
- A view showing three dimensions.
-
-
- Background-view
- Parts of the view that are farthest from the viewer and usually the not part of the visual focus.
-
-
- Bistable-view
- Something having two stable visual forms that have two distinguishable stable forms as in optical illusions.
-
-
- Foreground-view
- Parts of the view that are closest to the viewer and usually the most important part of the visual focus.
-
-
- Foveal-view
- Visual presentation directly on the fovea. A view projected on the small depression in the retina containing only cones and where vision is most acute.
-
-
- Map-view
- A diagrammatic representation of an area of land or sea showing physical features, cities, roads.
-
- Aerial-view
- Elevated view of an object from above, with a perspective as though the observer were a bird.
-
-
- Satellite-view
- A representation as captured by technology such as a satellite.
-
-
- Street-view
- A 360-degrees panoramic view from a position on the ground.
-
-
-
- Peripheral-view
- Indirect vision as it occurs outside the point of fixation.
-
-
+ Track
+ Follow a person, animal, or object through space or time.
+
+
+
+
+ Artifact
+ When relevant for the clinical interpretation, artifacts can be scored by specifying the type and the location.
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Biological-artifact
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Eye-blink-artifact
+ Example for EEG: Fp1/Fp2 become electropositive with eye closure because the cornea is positively charged causing a negative deflection in Fp1/Fp2. If the eye blink is unilateral, consider prosthetic eye. If it is in F8 rather than Fp2 then the electrodes are plugged in wrong.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Multifocal-finding
+ Artifact-significance-to-recording
+
+
+ inLibrary
+ score
+
+
+
+ Eye-movement-horizontal-artifact
+ Example for EEG: There is an upward deflection in the Fp2-F8 derivation, when the eyes move to the right side. In this case F8 becomes more positive and therefore. When the eyes move to the left, F7 becomes more positive and there is an upward deflection in the Fp1-F7 derivation.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Multifocal-finding
+ Artifact-significance-to-recording
+
+
+ inLibrary
+ score
+
+
+
+ Eye-movement-vertical-artifact
+ Example for EEG: The EEG shows positive potentials (50-100 micro V) with bi-frontal distribution, maximum at Fp1 and Fp2, when the eyeball rotated upward. The downward rotation of the eyeball was associated with the negative deflection. The time course of the deflections was similar to the time course of the eyeball movement.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Multifocal-finding
+ Artifact-significance-to-recording
+
+
+ inLibrary
+ score
+
+
+
+ Slow-eye-movement-artifact
+ Slow, rolling eye-movements, seen during drowsiness.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Multifocal-finding
+ Artifact-significance-to-recording
+
+
+ inLibrary
+ score
+
+
+
+ Nystagmus-artifact
+
+ suggestedTag
+ Artifact-significance-to-recording
+
+
+ inLibrary
+ score
+
+
+
+ Chewing-artifact
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Multifocal-finding
+ Artifact-significance-to-recording
+
+
+ inLibrary
+ score
+
+
+
+ Sucking-artifact
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Multifocal-finding
+ Artifact-significance-to-recording
+
+
+ inLibrary
+ score
+
+
+
+ Glossokinetic-artifact
+ The tongue functions as a dipole, with the tip negative with respect to the base. The artifact produced by the tongue has a broad potential field that drops from frontal to occipital areas, although it is less steep than that produced by eye movement artifacts. The amplitude of the potentials is greater inferiorly than in parasagittal regions; the frequency is variable but usually in the delta range. Chewing and sucking can produce similar artifacts.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Multifocal-finding
+ Artifact-significance-to-recording
+
+
+ inLibrary
+ score
+
+
+
+ Rocking-patting-artifact
+ Quasi-rhythmical artifacts in recordings from infants caused by rocking/patting.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Multifocal-finding
+ Artifact-significance-to-recording
+
+
+ inLibrary
+ score
+
+
+
+ Movement-artifact
+ Example for EEG: Large amplitude artifact, with irregular morphology (usually resembling a slow-wave or a wave with complex morphology) seen in one or several channels, due to movement. If the causing movement is repetitive, the artifact might resemble a rhythmic EEG activity.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Multifocal-finding
+ Artifact-significance-to-recording
+
+
+ inLibrary
+ score
+
+
+
+ Respiration-artifact
+ Respiration can produce 2 kinds of artifacts. One type is in the form of slow and rhythmic activity, synchronous with the body movements of respiration and mechanically affecting the impedance of (usually) one electrode. The other type can be slow or sharp waves that occur synchronously with inhalation or exhalation and involve those electrodes on which the patient is lying.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Multifocal-finding
+ Artifact-significance-to-recording
+
+
+ inLibrary
+ score
+
+
+
+ Pulse-artifact
+ Example for EEG: Occurs when an EEG electrode is placed over a pulsating vessel. The pulsation can cause slow waves that may simulate EEG activity. A direct relationship exists between ECG and the pulse waves (200-300 millisecond delay after ECG equals QRS complex).
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Multifocal-finding
+ Artifact-significance-to-recording
+
+
+ inLibrary
+ score
+
+
+
+ ECG-artifact
+ Example for EEG: Far-field potential generated in the heart. The voltage and apparent surface of the artifact vary from derivation to derivation and, consequently, from montage to montage. The artifact is observed best in referential montages using earlobe electrodes A1 and A2. ECG artifact is recognized easily by its rhythmicity/regularity and coincidence with the ECG tracing.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Multifocal-finding
+ Artifact-significance-to-recording
+
+
+ inLibrary
+ score
+
+
+
+ Sweat-artifact
+ Is a low amplitude undulating waveform that is usually greater than 2 seconds and may appear to be an unstable baseline.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Multifocal-finding
+ Artifact-significance-to-recording
+
+
+ inLibrary
+ score
+
+
+
+ EMG-artifact
+ Myogenic potentials are the most common artifacts. Frontalis and temporalis muscles (ex..: clenching of jaw muscles) are common causes. Generally, the potentials generated in the muscles are of shorter duration than those generated in the brain. The frequency components are usually beyond 30-50 Hz, and the bursts are arrhythmic.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Multifocal-finding
+ Artifact-significance-to-recording
+
+
+ inLibrary
+ score
+
- Task-property
- Something that pertains to a task.
+ Non-biological-artifact
- extensionAllowed
+ requireChild
+
+
+ inLibrary
+ score
- Task-attentional-demand
- Strategy for allocating attention toward goal-relevant information.
-
- Bottom-up-attention
- Attentional guidance purely by externally driven factors to stimuli that are salient because of their inherent properties relative to the background. Sometimes this is referred to as stimulus driven.
-
- relatedTag
- Top-down-attention
-
-
-
- Covert-attention
- Paying attention without moving the eyes.
-
- relatedTag
- Overt-attention
-
-
-
- Divided-attention
- Integrating parallel multiple stimuli. Behavior involving responding simultaneously to multiple tasks or multiple task demands.
-
- relatedTag
- Focused-attention
-
-
-
- Focused-attention
- Responding discretely to specific visual, auditory, or tactile stimuli.
-
- relatedTag
- Divided-attention
-
-
-
- Orienting-attention
- Directing attention to a target stimulus.
-
-
- Overt-attention
- Selectively processing one location over others by moving the eyes to point at that location.
-
- relatedTag
- Covert-attention
-
-
-
- Selective-attention
- Maintaining a behavioral or cognitive set in the face of distracting or competing stimuli. Ability to pay attention to a limited array of all available sensory information.
-
-
- Sustained-attention
- Maintaining a consistent behavioral response during continuous and repetitive activity.
-
-
- Switched-attention
- Having to switch attention between two or more modalities of presentation.
-
-
- Top-down-attention
- Voluntary allocation of attention to certain features. Sometimes this is referred to goal-oriented attention.
-
- relatedTag
- Bottom-up-attention
-
-
+ Power-supply-artifact
+ 50-60 Hz artifact. Monomorphic waveform due to 50 or 60 Hz A/C power supply.
+
+ suggestedTag
+ Artifact-significance-to-recording
+
+
+ inLibrary
+ score
+
- Task-effect-evidence
- The evidence supporting the conclusion that the event had the specified effect.
-
- Computational-evidence
- A type of evidence in which data are produced, and/or generated, and/or analyzed on a computer.
-
-
- External-evidence
- A phenomenon that follows and is caused by some previous phenomenon.
-
-
- Intended-effect
- A phenomenon that is intended to follow and be caused by some previous phenomenon.
-
-
- Behavioral-evidence
- An indication or conclusion based on the behavior of an agent.
-
+ Induction-artifact
+ Artifacts (usually of high frequency) induced by nearby equipment (like in the intensive care unit).
+
+ suggestedTag
+ Artifact-significance-to-recording
+
+
+ inLibrary
+ score
+
- Task-event-role
- The purpose of an event with respect to the task.
-
- Experimental-stimulus
- Part of something designed to elicit a response in the experiment.
-
-
- Incidental
- A sensory or other type of event that is unrelated to the task or experiment.
-
-
- Instructional
- Usually associated with a sensory event intended to give instructions to the participant about the task or behavior.
-
-
- Mishap
- Unplanned disruption such as an equipment or experiment control abnormality or experimenter error.
-
-
- Participant-response
- Something related to a participant actions in performing the task.
-
-
- Task-activity
- Something that is part of the overall task or is necessary to the overall experiment but is not directly part of a stimulus-response cycle. Examples would be taking a survey or provided providing a silva sample.
-
-
- Warning
- Something that should warn the participant that the parameters of the task have been or are about to be exceeded such as a warning message about getting too close to the shoulder of the road in a driving task.
-
+ Dialysis-artifact
+
+ suggestedTag
+ Artifact-significance-to-recording
+
+
+ inLibrary
+ score
+
+
+
+ Artificial-ventilation-artifact
+
+ suggestedTag
+ Artifact-significance-to-recording
+
+
+ inLibrary
+ score
+
- Task-action-type
- How an agent action should be interpreted in terms of the task specification.
-
- Appropriate-action
- An action suitable or proper in the circumstances.
-
- relatedTag
- Inappropriate-action
-
-
-
- Correct-action
- An action that was a correct response in the context of the task.
-
- relatedTag
- Incorrect-action
- Indeterminate-action
-
-
-
- Correction
- An action offering an improvement to replace a mistake or error.
-
-
- Done-indication
- An action that indicates that the participant has completed this step in the task.
-
- relatedTag
- Ready-indication
-
-
-
- Incorrect-action
- An action considered wrong or incorrect in the context of the task.
-
- relatedTag
- Correct-action
- Indeterminate-action
-
-
-
- Imagined-action
- Form a mental image or concept of something. This is used to identity something that only happened in the imagination of the participant as in imagined movements in motor imagery paradigms.
-
-
- Inappropriate-action
- An action not in keeping with what is correct or proper for the task.
-
- relatedTag
- Appropriate-action
-
-
-
- Indeterminate-action
- An action that cannot be distinguished between two or more possibibities in the current context. This tag might be applied when an outside evaluator or a classification algorithm cannot determine a definitive result.
-
- relatedTag
- Correct-action
- Incorrect-action
- Miss
- Near-miss
-
-
-
- Omitted-action
- An expected response was skipped.
-
-
- Miss
- An action considered to be a failure in the context of the task. For example, if the agent is supposed to try to hit a target and misses.
-
- relatedTag
- Near-miss
-
-
-
- Near-miss
- An action barely satisfied the requirements of the task. In a driving experiment for example this could pertain to a narrowly avoided collision or other accident.
-
- relatedTag
- Miss
-
-
-
- Ready-indication
- An action that indicates that the participant is ready to perform the next step in the task.
-
- relatedTag
- Done-indication
-
-
+ Electrode-pops-artifact
+ Are brief discharges with a very steep upslope and shallow fall that occur in all leads which include that electrode.
+
+ suggestedTag
+ Artifact-significance-to-recording
+
+
+ inLibrary
+ score
+
- Task-relationship
- Specifying organizational importance of sub-tasks.
-
- Background-subtask
- A part of the task which should be performed in the background as for example inhibiting blinks due to instruction while performing the primary task.
-
-
- Primary-subtask
- A part of the task which should be the primary focus of the participant.
-
+ Salt-bridge-artifact
+ Typically occurs in 1 channel which may appear isoelectric. Only seen in bipolar montage.
+
+ suggestedTag
+ Artifact-significance-to-recording
+
+
+ inLibrary
+ score
+
+
+
+
+ Other-artifact
+
+ requireChild
+
+
+ suggestedTag
+ Artifact-significance-to-recording
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Critically-ill-patients-patterns
+ Rhythmic or periodic patterns in critically ill patients (RPPs) are scored according to the 2012 version of the American Clinical Neurophysiology Society Standardized Critical Care EEG Terminology (Hirsch et al., 2013).
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Critically-ill-patients-periodic-discharges
+ Periodic discharges (PDs).
+
+ suggestedTag
+ Periodic-discharge-morphology
+ Brain-laterality
+ Brain-region
+ Sensors
+ Finding-frequency
+ Periodic-discharge-time-related-features
+
+
+ inLibrary
+ score
+
+
+
+ Rhythmic-delta-activity
+ RDA
+
+ suggestedTag
+ Periodic-discharge-superimposed-activity
+ Periodic-discharge-absolute-amplitude
+ Brain-laterality
+ Brain-region
+ Sensors
+ Finding-frequency
+ Periodic-discharge-time-related-features
+
+
+ inLibrary
+ score
+
+
+
+ Spike-or-sharp-and-wave
+ SW
+
+ suggestedTag
+ Periodic-discharge-sharpness
+ Number-of-periodic-discharge-phases
+ Periodic-discharge-triphasic-morphology
+ Periodic-discharge-absolute-amplitude
+ Periodic-discharge-relative-amplitude
+ Periodic-discharge-polarity
+ Brain-laterality
+ Brain-region
+ Sensors
+ Multifocal-finding
+ Finding-frequency
+ Periodic-discharge-time-related-features
+
+
+ inLibrary
+ score
+
+
+
+
+ Episode
+ Clinical episode or electrographic seizure.
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Epileptic-seizure
+ The ILAE presented a revised seizure classification that divides seizures into focal, generalized onset, or unknown onset.
+
+ requireChild
+
+
+ inLibrary
+ score
+
- Task-stimulus-role
- The role the stimulus plays in the task.
-
- Cue
- A signal for an action, a pattern of stimuli indicating a particular response.
-
-
- Distractor
- A person or thing that distracts or a plausible but incorrect option in a multiple-choice question. In pyschological studies this is sometimes referred to as a foil.
-
+ Focal-onset-epileptic-seizure
+ Focal seizures can be divided into focal aware and impaired awareness seizures, with additional motor and nonmotor classifications.
+
+ suggestedTag
+ Episode-phase
+ Automatism-motor-seizure
+ Atonic-motor-seizure
+ Clonic-motor-seizure
+ Epileptic-spasm-episode
+ Hyperkinetic-motor-seizure
+ Myoclonic-motor-seizure
+ Tonic-motor-seizure
+ Autonomic-nonmotor-seizure
+ Behavior-arrest-nonmotor-seizure
+ Cognitive-nonmotor-seizure
+ Emotional-nonmotor-seizure
+ Sensory-nonmotor-seizure
+ Seizure-dynamics
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
+
+
+ inLibrary
+ score
+
- Expected
- Considered likely, probable or anticipated. Something of low information value as in frequent non-targets in an RSVP paradigm.
-
- relatedTag
- Unexpected
-
+ Aware-focal-onset-epileptic-seizuresuggestedTag
- Target
-
-
-
- Extraneous
- Irrelevant or unrelated to the subject being dealt with.
-
-
- Feedback
- An evaluative response to an inquiry, process, event, or activity.
-
-
- Go-signal
- An indicator to proceed with a planned action.
-
- relatedTag
- Stop-signal
+ Episode-phase
+ Seizure-dynamics
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
-
-
- Meaningful
- Conveying significant or relevant information.
-
-
- Newly-learned
- Representing recently acquired information or understanding.
-
-
- Non-informative
- Something that is not useful in forming an opinion or judging an outcome.
-
-
- Non-target
- Something other than that done or looked for. Also tag Expected if the Non-target is frequent.
- relatedTag
- Target
+ inLibrary
+ score
- Not-meaningful
- Not having a serious, important, or useful quality or purpose.
-
-
- Novel
- Having no previous example or precedent or parallel.
-
-
- Oddball
- Something unusual, or infrequent.
-
- relatedTag
- Unexpected
-
+ Impaired-awareness-focal-onset-epileptic-seizuresuggestedTag
- Target
+ Episode-phase
+ Seizure-dynamics
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
-
-
- Planned
- Something that was decided on or arranged in advance.
- relatedTag
- Unplanned
+ inLibrary
+ score
- Penalty
- A disadvantage, loss, or hardship due to some action.
-
-
- Priming
- An implicit memory effect in which exposure to a stimulus influences response to a later stimulus.
-
-
- Query
- A sentence of inquiry that asks for a reply.
-
-
- Reward
- A positive reinforcement for a desired action, behavior or response.
-
-
- Stop-signal
- An indicator that the agent should stop the current activity.
+ Awareness-unknown-focal-onset-epileptic-seizure
- relatedTag
- Go-signal
+ suggestedTag
+ Episode-phase
+ Seizure-dynamics
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
-
-
- Target
- Something fixed as a goal, destination, or point of examination.
-
-
- Threat
- An indicator that signifies hostility and predicts an increased probability of attack.
-
-
- Timed
- Something planned or scheduled to be done at a particular time or lasting for a specified amount of time.
-
-
- Unexpected
- Something that is not anticipated.
- relatedTag
- Expected
+ inLibrary
+ score
- Unplanned
- Something that has not been planned as part of the task.
+ Focal-to-bilateral-tonic-clonic-focal-onset-epileptic-seizure
+ A seizure type with focal onset, with awareness or impaired awareness, either motor or non-motor, progressing to bilateral tonic clonic activity. The prior term was seizure with partial onset with secondary generalization. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
- relatedTag
- Planned
-
-
-
-
-
-
- Relation
- Concerns the way in which two or more people or things are connected.
-
- extensionAllowed
-
-
- Comparative-relation
- Something considered in comparison to something else. The first entity is the focus.
-
- Approximately-equal-to
- (A, (Approximately-equal-to, B)) indicates that A and B have almost the same value. Here A and B could refer to sizes, orders, positions or other quantities.
-
-
- Less-than
- (A, (Less-than, B)) indicates that A is smaller than B. Here A and B could refer to sizes, orders, positions or other quantities.
-
-
- Less-than-or-equal-to
- (A, (Less-than-or-equal-to, B)) indicates that the relative size or order of A is smaller than or equal to B.
-
-
- Greater-than
- (A, (Greater-than, B)) indicates that the relative size or order of A is bigger than that of B.
-
-
- Greater-than-or-equal-to
- (A, (Greater-than-or-equal-to, B)) indicates that the relative size or order of A is bigger than or the same as that of B.
-
-
- Equal-to
- (A, (Equal-to, B)) indicates that the size or order of A is the same as that of B.
-
-
- Not-equal-to
- (A, (Not-equal-to, B)) indicates that the size or order of A is not the same as that of B.
-
-
-
- Connective-relation
- Indicates two entities are related in some way. The first entity is the focus.
-
- Belongs-to
- (A, (Belongs-to, B)) indicates that A is a member of B.
-
-
- Connected-to
- (A, (Connected-to, B)) indicates that A is related to B in some respect, usually through a direct link.
-
-
- Contained-in
- (A, (Contained-in, B)) indicates that A is completely inside of B.
-
-
- Described-by
- (A, (Described-by, B)) indicates that B provides information about A.
-
-
- From-to
- (A, (From-to, B)) indicates a directional relation from A to B. A is considered the source.
-
-
- Group-of
- (A, (Group-of, B)) indicates A is a group of items of type B.
-
-
- Implied-by
- (A, (Implied-by, B)) indicates B is suggested by A.
-
-
- Includes
- (A, (Includes, B)) indicates that A has B as a member or part.
-
-
- Interacts-with
- (A, (Interacts-with, B)) indicates A and B interact, possibly reciprocally.
-
-
- Member-of
- (A, (Member-of, B)) indicates A is a member of group B.
-
-
- Part-of
- (A, (Part-of, B)) indicates A is a part of the whole B.
-
-
- Performed-by
- (A, (Performed-by, B)) indicates that the action or procedure A was carried out by agent B.
+ suggestedTag
+ Episode-phase
+ Seizure-dynamics
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
+
+
+ inLibrary
+ score
+
+
- Performed-using
- (A, (Performed-using, B)) indicates that the action or procedure A was accomplished using B.
+ Generalized-onset-epileptic-seizure
+ Generalized-onset seizures are classified as motor or nonmotor (absence), without using awareness level as a classifier, as most but not all of these seizures are linked with impaired awareness.
+
+ suggestedTag
+ Episode-phase
+ Tonic-clonic-motor-seizure
+ Clonic-motor-seizure
+ Tonic-motor-seizure
+ Myoclonic-motor-seizure
+ Myoclonic-tonic-clonic-motor-seizure
+ Myoclonic-atonic-motor-seizure
+ Atonic-motor-seizure
+ Epileptic-spasm-episode
+ Typical-absence-seizure
+ Atypical-absence-seizure
+ Myoclonic-absence-seizure
+ Eyelid-myoclonia-absence-seizure
+ Seizure-dynamics
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
+
+
+ inLibrary
+ score
+
- Related-to
- (A, (Related-to, B)) indicates A has some relationship to B.
+ Unknown-onset-epileptic-seizure
+ Even if the onset of seizures is unknown, they may exhibit characteristics that fall into categories such as motor, nonmotor, tonic-clonic, epileptic spasms, or behavior arrest.
+
+ suggestedTag
+ Episode-phase
+ Tonic-clonic-motor-seizure
+ Epileptic-spasm-episode
+ Behavior-arrest-nonmotor-seizure
+ Seizure-dynamics
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
+
+
+ inLibrary
+ score
+
- Unrelated-to
- (A, (Unrelated-to, B)) indicates that A is not related to B. For example, A is not related to Task.
+ Unclassified-epileptic-seizure
+ Referring to a seizure type that cannot be described by the ILAE 2017 classification either because of inadequate information or unusual clinical features.
+
+ suggestedTag
+ Episode-phase
+ Seizure-dynamics
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
+
+
+ inLibrary
+ score
+
- Directional-relation
- A relationship indicating direction of change of one entity relative to another. The first entity is the focus.
-
- Away-from
- (A, (Away-from, B)) indicates that A is going or has moved away from B. The meaning depends on A and B.
-
-
- Towards
- (A, (Towards, B)) indicates that A is going to or has moved to B. The meaning depends on A and B.
-
+ Subtle-seizure
+ Seizure type frequent in neonates, sometimes referred to as motor automatisms; they may include random and roving eye movements, sucking, chewing motions, tongue protrusion, rowing or swimming or boxing movements of the arms, pedaling and bicycling movements of the lower limbs; apneic seizures are relatively common. Although some subtle seizures are associated with rhythmic ictal EEG discharges, and are clearly epileptic, ictal EEG often does not show typical epileptic activity.
+
+ suggestedTag
+ Episode-phase
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
+
+
+ inLibrary
+ score
+
- Logical-relation
- Indicating a logical relationship between entities. The first entity is usually the focus.
-
- And
- (A, (And, B)) means A and B are both in effect.
-
-
- Or
- (A, (Or, B)) means at least one of A and B are in effect.
-
+ Electrographic-seizure
+ Referred usually to non convulsive status. Ictal EEG: rhythmic discharge or spike and wave pattern with definite evolution in frequency, location, or morphology lasting at least 10 s; evolution in amplitude alone did not qualify.
+
+ suggestedTag
+ Episode-phase
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
+
+
+ inLibrary
+ score
+
- Spatial-relation
- Indicating a relationship about position between entities.
-
- Above
- (A, (Above, B)) means A is in a place or position that is higher than B.
-
-
- Across-from
- (A, (Across-from, B)) means A is on the opposite side of something from B.
-
-
- Adjacent-to
- (A, (Adjacent-to, B)) indicates that A is next to B in time or space.
-
-
- Ahead-of
- (A, (Ahead-of, B)) indicates that A is further forward in time or space in B.
-
+ Seizure-PNES
+ Psychogenic non-epileptic seizure.
+
+ suggestedTag
+ Episode-phase
+ Finding-significance-to-recording
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
+
+
+ inLibrary
+ score
+
+
+
+ Sleep-related-episode
+
+ requireChild
+
+
+ inLibrary
+ score
+
- Around
- (A, (Around, B)) means A is in or near the present place or situation of B.
+ Sleep-related-arousal
+ Normal.
+
+ suggestedTag
+ Episode-phase
+ Finding-significance-to-recording
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
+
+
+ inLibrary
+ score
+
- Behind
- (A, (Behind, B)) means A is at or to the far side of B, typically so as to be hidden by it.
+ Benign-sleep-myoclonus
+ A distinctive disorder of sleep characterized by a) neonatal onset, b) rhythmic myoclonic jerks only during sleep and c) abrupt and consistent cessation with arousal, d) absence of concomitant electrographic changes suggestive of seizures, and e) good outcome.
+
+ suggestedTag
+ Episode-phase
+ Finding-significance-to-recording
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
+
+
+ inLibrary
+ score
+
- Below
- (A, (Below, B)) means A is in a place or position that is lower than the position of B.
+ Confusional-awakening
+ Episode of non epileptic nature included in NREM parasomnias, characterized by sudden arousal and complex behavior but without full alertness, usually lasting a few minutes and occurring almost in all children at least occasionally. Amnesia of the episode is the rule.
+
+ suggestedTag
+ Episode-phase
+ Finding-significance-to-recording
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
+
+
+ inLibrary
+ score
+
- Between
- (A, (Between, (B, C))) means A is in the space or interval separating B and C.
+ Sleep-periodic-limb-movement
+ PLMS. Periodic limb movement in sleep. Episodes are characterized by brief (0.5- to 5.0-second) lower-extremity movements during sleep, which typically occur at 20- to 40-second intervals, most commonly during the first 3 hours of sleep. The affected individual is usually not aware of the movements or of the transient partial arousals.
+
+ suggestedTag
+ Episode-phase
+ Finding-significance-to-recording
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
+
+
+ inLibrary
+ score
+
- Bilateral-to
- (A, (Bilateral, B)) means A is on both sides of B or affects both sides of B.
+ REM-sleep-behavioral-disorder
+ REM sleep behavioral disorder. Episodes characterized by: a) presence of REM sleep without atonia (RSWA) on polysomnography (PSG); b) presence of at least 1 of the following conditions - (1) Sleep-related behaviors, by history, that have been injurious, potentially injurious, or disruptive (example: dream enactment behavior); (2) abnormal REM sleep behavior documented during PSG monitoring; (3) absence of epileptiform activity on electroencephalogram (EEG) during REM sleep (unless RBD can be clearly distinguished from any concurrent REM sleep-related seizure disorder); (4) sleep disorder not better explained by another sleep disorder, a medical or neurologic disorder, a mental disorder, medication use, or a substance use disorder.
+
+ suggestedTag
+ Episode-phase
+ Finding-significance-to-recording
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
+
+
+ inLibrary
+ score
+
- Bottom-edge-of
- (A, (Bottom-edge-of, B)) means A is on the bottom most part or or near the boundary of B.
+ Sleep-walking
+ Episodes characterized by ambulation during sleep; the patient is difficult to arouse during an episode, and is usually amnesic following the episode. Episodes usually occur in the first third of the night during slow wave sleep. Polysomnographic recordings demonstrate 2 abnormalities during the first sleep cycle: frequent, brief, non-behavioral EEG-defined arousals prior to the somnambulistic episode and abnormally low gamma (0.75-2.0 Hz) EEG power on spectral analysis, correlating with high-voltage (hyper-synchronic gamma) waves lasting 10 to 15 s occurring just prior to the movement. This is followed by stage I NREM sleep, and there is no evidence of complete awakening.
- relatedTag
- Left-edge-of
- Right-edge-of
- Top-edge-of
+ suggestedTag
+ Episode-phase
+ Finding-significance-to-recording
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
+
+
+ inLibrary
+ score
+
+
+ Pediatric-episode
+
+ requireChild
+
+
+ inLibrary
+ score
+
- Boundary-of
- (A, (Boundary-of, B)) means A is on or part of the edge or boundary of B.
+ Hyperekplexia
+ Disorder characterized by exaggerated startle response and hypertonicity that may occur during the first year of life and in severe cases during the neonatal period. Children usually present with marked irritability and recurrent startles in response to handling and sounds. Severely affected infants can have severe jerks and stiffening, sometimes with breath-holding spells.
+
+ suggestedTag
+ Episode-phase
+ Finding-significance-to-recording
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
+
+
+ inLibrary
+ score
+
- Center-of
- (A, (Center-of, B)) means A is at a point or or in an area that is approximately central within B.
+ Jactatio-capitis-nocturna
+ Relatively common in normal children at the time of going to bed, especially during the first year of life, the rhythmic head movements persist during sleep. Usually, these phenomena disappear before 3 years of age.
+
+ suggestedTag
+ Episode-phase
+ Finding-significance-to-recording
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
+
+
+ inLibrary
+ score
+
- Close-to
- (A, (Close-to, B)) means A is at a small distance from or is located near in space to B.
+ Pavor-nocturnus
+ A nocturnal episode characterized by age of onset of less than five years (mean age 18 months, with peak prevalence at five to seven years), appearance of signs of panic two hours after falling asleep with crying, screams, a fearful expression, inability to recognize other people including parents (for a duration of 5-15 minutes), amnesia upon awakening. Pavor nocturnus occurs in patients almost every night for months or years (but the frequency is highly variable and may be as low as once a month) and is likely to disappear spontaneously at the age of six to eight years.
+
+ suggestedTag
+ Episode-phase
+ Finding-significance-to-recording
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
+
+
+ inLibrary
+ score
+
- Far-from
- (A, (Far-from, B)) means A is at a large distance from or is not located near in space to B.
+ Pediatric-stereotypical-behavior-episode
+ Repetitive motor behavior in children, typically rhythmic and persistent; usually not paroxysmal and rarely suggest epilepsy. They include headbanging, head-rolling, jactatio capitis nocturna, body rocking, buccal or lingual movements, hand flapping and related mannerisms, repetitive hand-waving (to self-induce photosensitive seizures).
+
+ suggestedTag
+ Episode-phase
+ Finding-significance-to-recording
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
+
+
+ inLibrary
+ score
+
+
+
+ Paroxysmal-motor-event
+ Paroxysmal phenomena during neonatal or childhood periods characterized by recurrent motor or behavioral signs or symptoms that must be distinguishes from epileptic disorders.
+
+ suggestedTag
+ Episode-phase
+ Finding-significance-to-recording
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
+
+
+ inLibrary
+ score
+
+
+
+ Syncope
+ Episode with loss of consciousness and muscle tone that is abrupt in onset, of short duration and followed by rapid recovery; it occurs in response to transient impairment of cerebral perfusion. Typical prodromal symptoms often herald onset of syncope and postictal symptoms are minimal. Syncopal convulsions resulting from cerebral anoxia are common but are not a form of epilepsy, nor are there any accompanying EEG ictal discharges.
+
+ suggestedTag
+ Episode-phase
+ Finding-significance-to-recording
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
+
+
+ inLibrary
+ score
+
+
+
+ Cataplexy
+ A sudden decrement in muscle tone and loss of deep tendon reflexes, leading to muscle weakness, paralysis, or postural collapse. Cataplexy usually is precipitated by an outburst of emotional expression-notably laughter, anger, or startle. It is one of the tetrad of symptoms of narcolepsy. During cataplexy, respiration and voluntary eye movements are not compromised. Consciousness is preserved.
+
+ suggestedTag
+ Episode-phase
+ Finding-significance-to-recording
+ Episode-consciousness
+ Episode-awareness
+ Clinical-EEG-temporal-relationship
+ Episode-event-count
+ State-episode-start
+ Episode-postictal-phase
+ Episode-prodrome
+ Episode-tongue-biting
+
+
+ inLibrary
+ score
+
+
+
+ Other-episode
+
+ requireChild
+
+
+ inLibrary
+ score
+
- In-front-of
- (A, (In-front-of, B)) means A is in a position just ahead or at the front part of B, potentially partially blocking B from view.
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Finding-property
+ Descriptive element similar to main HED /Property. Something that pertains to a thing. A characteristic of some entity. A quality or feature regarded as a characteristic or inherent part of someone or something. HED attributes are adjectives or adverbs.
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Signal-morphology-property
+
+ requireChild
+
+
+ inLibrary
+ score
+
- Left-edge-of
- (A, (Left-edge-of, B)) means A is located on the left side of B on or near the boundary of B.
-
- relatedTag
- Bottom-edge-of
- Right-edge-of
- Top-edge-of
+ Rhythmic-activity-morphology
+ EEG activity consisting of a sequence of waves approximately constant period.
+
+ inLibrary
+ score
+
+ Delta-activity-morphology
+ EEG rhythm in the delta (under 4 Hz) range that does not belong to the posterior dominant rhythm (scored under other organized rhythms).
+
+ suggestedTag
+ Finding-frequency
+ Finding-amplitude
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Theta-activity-morphology
+ EEG rhythm in the theta (4-8 Hz) range that does not belong to the posterior dominant rhythm (scored under other organized rhythm).
+
+ suggestedTag
+ Finding-frequency
+ Finding-amplitude
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Alpha-activity-morphology
+ EEG rhythm in the alpha range (8-13 Hz) which is considered part of the background (ongoing) activity but does not fulfill the criteria of the posterior dominant rhythm (alpha rhythm).
+
+ suggestedTag
+ Finding-frequency
+ Finding-amplitude
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Beta-activity-morphology
+ EEG rhythm between 14 and 40 Hz, which is considered part of the background (ongoing) activity but does not fulfill the criteria of the posterior dominant rhythm. Most characteristically: a rhythm from 14 to 40 Hz recorded over the fronto-central regions of the head during wakefulness. Amplitude of the beta rhythm varies but is mostly below 30 microV. Other beta rhythms are most prominent in other locations or are diffuse.
+
+ suggestedTag
+ Finding-frequency
+ Finding-amplitude
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Gamma-activity-morphology
+
+ suggestedTag
+ Finding-frequency
+ Finding-amplitude
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
- Left-side-of
- (A, (Left-side-of, B)) means A is located on the left side of B usually as part of B.
+ Spike-morphology
+ A transient, clearly distinguished from background activity, with pointed peak at a conventional paper speed or time scale and duration from 20 to under 70 ms, i.e. 1/50-1/15 s approximately. Main component is generally negative relative to other areas. Amplitude varies.
- relatedTag
- Right-side-of
+ inLibrary
+ score
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
- Lower-center-of
- (A, (Lower-center-of, B)) means A is situated on the lower center part of B (due south). This relation is often used to specify qualitative information about screen position.
+ Spike-and-slow-wave-morphology
+ A pattern consisting of a spike followed by a slow wave.
- relatedTag
- Center-of
- Lower-left-of
- Lower-right-of
- Upper-center-of
- Upper-right-of
+ inLibrary
+ score
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
- Lower-left-of
- (A, (Lower-left-of, B)) means A is situated on the lower left part of B. This relation is often used to specify qualitative information about screen position.
+ Runs-of-rapid-spikes-morphology
+ Bursts of spike discharges at a rate from 10 to 25/sec (in most cases somewhat irregular). The bursts last more than 2 seconds (usually 2 to 10 seconds) and it is typically seen in sleep. Synonyms: rhythmic spikes, generalized paroxysmal fast activity, fast paroxysmal rhythms, grand mal discharge, fast beta activity.
- relatedTag
- Center-of
- Lower-center-of
- Lower-right-of
- Upper-center-of
- Upper-left-of
- Upper-right-of
+ inLibrary
+ score
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
- Lower-right-of
- (A, (Lower-right-of, B)) means A is situated on the lower right part of B. This relation is often used to specify qualitative information about screen position.
+ Polyspikes-morphology
+ Two or more consecutive spikes.
- relatedTag
- Center-of
- Lower-center-of
- Lower-left-of
- Upper-left-of
- Upper-center-of
- Upper-left-of
- Lower-right-of
+ inLibrary
+ score
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
- Outside-of
- (A, (Outside-of, B)) means A is located in the space around but not including B.
-
-
- Over
- (A, (Over, B)) means A above is above B so as to cover or protect or A extends over the a general area as from a from a vantage point.
-
-
- Right-edge-of
- (A, (Right-edge-of, B)) means A is located on the right side of B on or near the boundary of B.
+ Polyspike-and-slow-wave-morphology
+ Two or more consecutive spikes associated with one or more slow waves.
- relatedTag
- Bottom-edge-of
- Left-edge-of
- Top-edge-of
+ inLibrary
+ score
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
- Right-side-of
- (A, (Right-side-of, B)) means A is located on the right side of B usually as part of B.
+ Sharp-wave-morphology
+ A transient clearly distinguished from background activity, with pointed peak at a conventional paper speed or time scale, and duration of 70-200 ms, i.e. over 1/4-1/5 s approximately. Main component is generally negative relative to other areas. Amplitude varies.
- relatedTag
- Left-side-of
+ inLibrary
+ score
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
- To-left-of
- (A, (To-left-of, B)) means A is located on or directed toward the side to the west of B when B is facing north. This term is used when A is not part of B.
-
-
- To-right-of
- (A, (To-right-of, B)) means A is located on or directed toward the side to the east of B when B is facing north. This term is used when A is not part of B.
-
-
- Top-edge-of
- (A, (Top-edge-of, B)) means A is on the uppermost part or or near the boundary of B.
+ Sharp-and-slow-wave-morphology
+ A sequence of a sharp wave and a slow wave.
- relatedTag
- Left-edge-of
- Right-edge-of
- Bottom-edge-of
+ inLibrary
+ score
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
- Top-of
- (A, (Top-of, B)) means A is on the uppermost part, side, or surface of B.
-
-
- Upper-center-of
- (A, (Upper-center-of, B)) means A is situated on the upper center part of B (due north). This relation is often used to specify qualitative information about screen position.
+ Slow-sharp-wave-morphology
+ A transient that bears all the characteristics of a sharp-wave, but exceeds 200 ms. Synonym: blunted sharp wave.
- relatedTag
- Center-of
- Lower-center-of
- Lower-left-of
- Lower-right-of
- Upper-center-of
- Upper-right-of
+ inLibrary
+ score
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
- Upper-left-of
- (A, (Upper-left-of, B)) means A is situated on the upper left part of B. This relation is often used to specify qualitative information about screen position.
+ High-frequency-oscillation-morphology
+ HFO.
- relatedTag
- Center-of
- Lower-center-of
- Lower-left-of
- Lower-right-of
- Upper-center-of
- Upper-right-of
+ inLibrary
+ score
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
- Upper-right-of
- (A, (Upper-right-of, B)) means A is situated on the upper right part of B. This relation is often used to specify qualitative information about screen position.
+ Hypsarrhythmia-classic-morphology
+ Abnormal interictal high amplitude waves and a background of irregular spikes.
- relatedTag
- Center-of
- Lower-center-of
- Lower-left-of
- Upper-left-of
- Upper-center-of
- Lower-right-of
+ inLibrary
+ score
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
- Underneath
- (A, (Underneath, B)) means A is situated directly below and may be concealed by B.
-
-
- Within
- (A, (Within, B)) means A is on the inside of or contained in B.
-
-
-
- Temporal-relation
- A relationship that includes a temporal or time-based component.
-
- After
- (A, (After B)) means A happens at a time subsequent to a reference time related to B.
-
-
- Asynchronous-with
- (A, (Asynchronous-with, B)) means A happens at times not occurring at the same time or having the same period or phase as B.
+ Hypsarrhythmia-modified-morphology
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
- Before
- (A, (Before B)) means A happens at a time earlier in time or order than B.
+ Fast-spike-activity-morphology
+ A burst consisting of a sequence of spikes. Duration greater than 1 s. Frequency at least in the alpha range.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
- During
- (A, (During, B)) means A happens at some point in a given period of time in which B is ongoing.
+ Low-voltage-fast-activity-morphology
+ Refers to the fast, and often recruiting activity which can be recorded at the onset of an ictal discharge, particularly in invasive EEG recording of a seizure.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
- Synchronous-with
- (A, (Synchronous-with, B)) means A happens at occurs at the same time or rate as B.
+ Polysharp-waves-morphology
+ A sequence of two or more sharp-waves.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
- Waiting-for
- (A, (Waiting-for, B)) means A pauses for something to happen in B.
+ Slow-wave-large-amplitude-morphology
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
-
-
-
- Modulator
- External stimuli / interventions or changes in the alertness level (sleep) that modify: the background activity, or how often a graphoelement is occurring, or change other features of the graphoelement (like intra-burst frequency). For each observed finding, there is an option of specifying how they are influenced by the modulators and procedures that were done during the recording.
-
- requireChild
-
-
- inLibrary
- score
-
-
- Sleep-modulator
-
- inLibrary
- score
-
- Sleep-deprivation
+ Irregular-delta-or-theta-activity-morphology
+ EEG activity consisting of repetitive waves of inconsistent wave-duration but in delta and/or theta rang (greater than 125 ms).inLibraryscore
@@ -6030,7 +2969,8 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Sleep-following-sleep-deprivation
+ Electrodecremental-change-morphology
+ Sudden desynchronization of electrical activity.inLibraryscore
@@ -6052,7 +2992,8 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Natural-sleep
+ DC-shift-morphology
+ Shift of negative polarity of the direct current recordings, during seizures.inLibraryscore
@@ -6074,7 +3015,8 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Induced-sleep
+ Disappearance-of-ongoing-activity-morphology
+ Disappearance of the EEG activity that preceded the ictal event but still remnants of background activity (thus not enough to name it electrodecremental change).inLibraryscore
@@ -6096,7 +3038,8 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Drowsiness
+ Polymorphic-delta-activity-morphology
+ EEG activity consisting of waves in the delta range (over 250 ms duration for each wave) but of different morphology.inLibraryscore
@@ -6118,7 +3061,8 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Awakening
+ Frontal-intermittent-rhythmic-delta-activity-morphology
+ Frontal intermittent rhythmic delta activity (FIRDA). Fairly regular or approximately sinusoidal waves, mostly occurring in bursts at 1.5-2.5 Hz over the frontal areas of one or both sides of the head. Comment: most commonly associated with unspecified encephalopathy, in adults.inLibraryscore
@@ -6139,15 +3083,9 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
-
-
- Medication-modulator
-
- inLibrary
- score
-
- Medication-administered-during-recording
+ Occipital-intermittent-rhythmic-delta-activity-morphology
+ Occipital intermittent rhythmic delta activity (OIRDA). Fairly regular or approximately sinusoidal waves, mostly occurring in bursts at 2-3 Hz over the occipital or posterior head regions of one or both sides of the head. Frequently blocked or attenuated by opening the eyes. Comment: most commonly associated with unspecified encephalopathy, in children.inLibraryscore
@@ -6169,7 +3107,8 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Medication-withdrawal-or-reduction-during-recording
+ Temporal-intermittent-rhythmic-delta-activity-morphology
+ Temporal intermittent rhythmic delta activity (TIRDA). Fairly regular or approximately sinusoidal waves, mostly occurring in bursts at over the temporal areas of one side of the head. Comment: most commonly associated with temporal lobe epilepsy.inLibraryscore
@@ -6190,318 +3129,559 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
-
-
- Eye-modulator
-
- inLibrary
- score
-
- Manual-eye-closure
+ Periodic-discharge-morphology
+ Periodic discharges not further specified (PDs).
+
+ requireChild
+ inLibraryscore
- #
- Free text.
+ Periodic-discharge-superimposed-activity
+
+ requireChild
+
+
+ suggestedTag
+ Property-not-possible-to-determine
+
+
+ inLibrary
+ score
+
+
+ Periodic-discharge-fast-superimposed-activity
+
+ suggestedTag
+ Finding-frequency
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Periodic-discharge-rhythmic-superimposed-activity
+
+ suggestedTag
+ Finding-frequency
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Periodic-discharge-sharpness
+
+ requireChild
+
+
+ suggestedTag
+ Property-not-possible-to-determine
+
+
+ inLibrary
+ score
+
+
+ Spiky-periodic-discharge-sharpness
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Sharp-periodic-discharge-sharpness
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Sharply-contoured-periodic-discharge-sharpness
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Blunt-periodic-discharge-sharpness
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Number-of-periodic-discharge-phases
- takesValue
+ requireChild
- valueClass
- textClass
+ suggestedTag
+ Property-not-possible-to-determineinLibraryscore
+
+ 1-periodic-discharge-phase
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ 2-periodic-discharge-phases
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ 3-periodic-discharge-phases
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Greater-than-3-periodic-discharge-phases
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
-
-
- Manual-eye-opening
-
- inLibrary
- score
-
- #
- Free text.
-
- takesValue
-
+ Periodic-discharge-triphasic-morphology
- valueClass
- textClass
+ suggestedTag
+ Property-not-possible-to-determine
+ Property-exists
+ Property-absenceinLibraryscore
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
-
-
-
- Stimulation-modulator
-
- inLibrary
- score
-
-
- Intermittent-photic-stimulation
-
- requireChild
-
-
- inLibrary
- score
-
- #
-
- takesValue
-
+ Periodic-discharge-absolute-amplitude
- valueClass
- numericClass
+ requireChild
- unitClass
- frequencyUnits
+ suggestedTag
+ Property-not-possible-to-determineinLibraryscore
+
+ Periodic-discharge-absolute-amplitude-very-low
+ Lower than 20 microV.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Low-periodic-discharge-absolute-amplitude
+ 20 to 49 microV.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Medium-periodic-discharge-absolute-amplitude
+ 50 to 199 microV.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ High-periodic-discharge-absolute-amplitude
+ Greater than 200 microV.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
-
-
- Auditory-stimulation
-
- inLibrary
- score
-
- #
- Free text.
+ Periodic-discharge-relative-amplitude
- takesValue
+ requireChild
- valueClass
- textClass
+ suggestedTag
+ Property-not-possible-to-determineinLibraryscore
+
+ Periodic-discharge-relative-amplitude-less-than-equal-2
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Periodic-discharge-relative-amplitude-greater-than-2
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
-
-
- Nociceptive-stimulation
-
- inLibrary
- score
-
- #
- Free text.
-
- takesValue
-
+ Periodic-discharge-polarity
- valueClass
- textClass
+ requireChildinLibraryscore
-
-
-
-
- Hyperventilation
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
-
- Physical-effort
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
-
- Cognitive-task
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
-
- Other-modulator-or-procedure
-
- requireChild
-
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
-
-
- Background-activity
- An EEG activity representing the setting in which a given normal or abnormal pattern appears and from which such pattern is distinguished.
-
- requireChild
-
-
- inLibrary
- score
-
-
- Posterior-dominant-rhythm
- Rhythmic activity occurring during wakefulness over the posterior regions of the head, generally with maximum amplitudes over the occipital areas. Amplitude varies. Best seen with eyes closed and during physical relaxation and relative mental inactivity. Blocked or attenuated by attention, especially visual, and mental effort. In adults this is the alpha rhythm, and the frequency is 8 to 13 Hz. However the frequency can be higher or lower than this range (often a supra or sub harmonic of alpha frequency) and is called alpha variant rhythm (fast and slow alpha variant rhythm). In children, the normal range of the frequency of the posterior dominant rhythm is age-dependant.
-
- suggestedTag
- Finding-significance-to-recording
- Finding-frequency
- Posterior-dominant-rhythm-amplitude-range
- Finding-amplitude-asymmetry
- Posterior-dominant-rhythm-frequency-asymmetry
- Posterior-dominant-rhythm-eye-opening-reactivity
- Posterior-dominant-rhythm-organization
- Posterior-dominant-rhythm-caveat
- Absence-of-posterior-dominant-rhythm
-
-
- inLibrary
- score
-
-
-
- Mu-rhythm
- EEG rhythm at 7-11 Hz composed of arch-shaped waves occurring over the central or centro-parietal regions of the scalp during wakefulness. Amplitudes varies but is mostly below 50 microV. Blocked or attenuated most clearly by contralateral movement, thought of movement, readiness to move or tactile stimulation.
-
- suggestedTag
- Finding-frequency
- Finding-significance-to-recording
- Brain-laterality
- Brain-region
- Sensors
-
-
- inLibrary
- score
-
-
-
- Other-organized-rhythm
- EEG activity that consisting of waves of approximately constant period, which is considered as part of the background (ongoing) activity, but does not fulfill the criteria of the posterior dominant rhythm.
-
- requireChild
-
-
- suggestedTag
- Delta-activity-morphology
- Theta-activity-morphology
- Alpha-activity-morphology
- Beta-activity-morphology
- Gamma-activity-morphology
- Finding-significance-to-recording
- Brain-laterality
- Brain-region
- Sensors
- Appearance-mode
- Discharge-pattern
-
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
+
+ Periodic-discharge-postitive-polarity
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Periodic-discharge-negative-polarity
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Periodic-discharge-unclear-polarity
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
- Background-activity-special-feature
- Special Features. Special features contains scoring options for the background activity of critically ill patients.
+ Source-analysis-property
+ How the current in the brain reaches the electrode sensors.requireChild
@@ -6510,71 +3690,13 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
score
- Continuous-background-activity
-
- suggestedTag
- Delta-activity-morphology
- Theta-activity-morphology
- Alpha-activity-morphology
- Beta-activity-morphology
- Gamma-activity-morphology
- Brain-laterality
- Brain-region
- Sensors
- Finding-extent
-
-
- inLibrary
- score
-
-
-
- Nearly-continuous-background-activity
-
- suggestedTag
- Delta-activity-morphology
- Theta-activity-morphology
- Alpha-activity-morphology
- Beta-activity-morphology
- Gamma-activity-morphology
- Brain-laterality
- Brain-region
- Sensors
- Finding-extent
-
-
- inLibrary
- score
-
-
-
- Discontinuous-background-activity
-
- suggestedTag
- Delta-activity-morphology
- Theta-activity-morphology
- Alpha-activity-morphology
- Beta-activity-morphology
- Gamma-activity-morphology
- Brain-laterality
- Brain-region
- Sensors
- Finding-extent
-
+ Source-analysis-laterality
- inLibrary
- score
+ requireChild
-
-
- Background-burst-suppression
- EEG pattern consisting of bursts (activity appearing and disappearing abruptly) interrupted by periods of low amplitude (below 20 microV) and which occurs simultaneously over all head regions.suggestedTagBrain-laterality
- Brain-region
- Sensors
- Finding-extentinLibrary
@@ -6582,168 +3704,688 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Background-burst-attenuation
+ Source-analysis-brain-region
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Finding-extent
+ requireChildinLibraryscore
+
+ Source-analysis-frontal-perisylvian-superior-surface
+
+ inLibrary
+ score
+
+
+
+ Source-analysis-frontal-lateral
+
+ inLibrary
+ score
+
+
+
+ Source-analysis-frontal-mesial
+
+ inLibrary
+ score
+
+
+
+ Source-analysis-frontal-polar
+
+ inLibrary
+ score
+
+
+
+ Source-analysis-frontal-orbitofrontal
+
+ inLibrary
+ score
+
+
+
+ Source-analysis-temporal-polar
+
+ inLibrary
+ score
+
+
+
+ Source-analysis-temporal-basal
+
+ inLibrary
+ score
+
+
+
+ Source-analysis-temporal-lateral-anterior
+
+ inLibrary
+ score
+
+
+
+ Source-analysis-temporal-lateral-posterior
+
+ inLibrary
+ score
+
+
+
+ Source-analysis-temporal-perisylvian-inferior-surface
+
+ inLibrary
+ score
+
+
+
+ Source-analysis-central-lateral-convexity
+
+ inLibrary
+ score
+
+
+
+ Source-analysis-central-mesial
+
+ inLibrary
+ score
+
+
+
+ Source-analysis-central-sulcus-anterior-surface
+
+ inLibrary
+ score
+
+
+
+ Source-analysis-central-sulcus-posterior-surface
+
+ inLibrary
+ score
+
+
+
+ Source-analysis-central-opercular
+
+ inLibrary
+ score
+
+
+
+ Source-analysis-parietal-lateral-convexity
+
+ inLibrary
+ score
+
+
+
+ Source-analysis-parietal-mesial
+
+ inLibrary
+ score
+
+
+
+ Source-analysis-parietal-opercular
+
+ inLibrary
+ score
+
+
+
+ Source-analysis-occipital-lateral
+
+ inLibrary
+ score
+
+
+
+ Source-analysis-occipital-mesial
+
+ inLibrary
+ score
+
+
+
+ Source-analysis-occipital-basal
+
+ inLibrary
+ score
+
+
+
+ Source-analysis-insula
+
+ inLibrary
+ score
+
+
+
+
+ Location-property
+ Location can be scored for findings. Semiologic finding can also be characterized by the somatotopic modifier (i.e. the part of the body where it occurs). In this respect, laterality (left, right, symmetric, asymmetric, left greater than right, right greater than left), body part (eyelid, face, arm, leg, trunk, visceral, hemi-) and centricity (axial, proximal limb, distal limb) can be scored.
+
+ requireChild
+
+
+ inLibrary
+ score
+
- Background-activity-suppression
- Periods showing activity under 10 microV (referential montage) and interrupting the background (ongoing) activity.
+ Brain-laterality
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Finding-extent
- Appearance-mode
+ requireChildinLibraryscore
+
+ Brain-laterality-left
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Brain-laterality-left-greater-right
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Brain-laterality-right
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Brain-laterality-right-greater-left
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Brain-laterality-midline
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Brain-laterality-diffuse-asynchronous
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
- Electrocerebral-inactivity
- Absence of any ongoing cortical electric activities; in all leads EEG is isoelectric or only contains artifacts. Sensitivity has to be increased up to 2 microV/mm; recording time: at least 30 minutes.
+ Brain-region
- inLibrary
- score
+ requireChild
-
-
-
-
- Sleep-and-drowsiness
- The features of the ongoing activity during sleep are scored here. If abnormal graphoelements appear, disappear or change their morphology during sleep, that is not scored here but at the entry corresponding to that graphooelement (as a modulator).
-
- requireChild
-
-
- inLibrary
- score
-
-
- Sleep-architecture
- For longer recordings. Only to be scored if whole-night sleep is part of the recording. It is a global descriptor of the structure and pattern of sleep: estimation of the amount of time spent in REM and NREM sleep, sleep duration, NREM-REM cycle.
-
- suggestedTag
- Property-not-possible-to-determine
-
-
- inLibrary
- score
-
-
- Normal-sleep-architectureinLibraryscore
+
+ Brain-region-frontal
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Brain-region-temporal
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Brain-region-central
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Brain-region-parietal
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Brain-region-occipital
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
- Abnormal-sleep-architecture
+ Body-part-location
- inLibrary
- score
+ requireChild
-
-
-
- Sleep-stage-reached
- For normal sleep patterns the sleep stages reached during the recording can be specified
-
- requireChild
-
-
- suggestedTag
- Property-not-possible-to-determine
- Finding-significance-to-recording
-
-
- inLibrary
- score
-
-
- Sleep-stage-N1
- Sleep stage 1.inLibraryscore
- #
- Free text.
+ Eyelid-location
- takesValue
+ inLibrary
+ score
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Face-location
- valueClass
- textClass
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Arm-location
+
+ inLibrary
+ score
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Leg-locationinLibraryscore
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
-
-
- Sleep-stage-N2
- Sleep stage 2.
-
- inLibrary
- score
-
- #
- Free text.
+ Trunk-location
- takesValue
+ inLibrary
+ score
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Visceral-location
- valueClass
- textClass
+ inLibrary
+ score
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Hemi-locationinLibraryscore
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
- Sleep-stage-N3
- Sleep stage 3.
+ Brain-centricity
+
+ requireChild
+ inLibraryscore
- #
- Free text.
-
- takesValue
-
+ Brain-centricity-axial
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Brain-centricity-proximal-limb
- valueClass
- textClass
+ inLibrary
+ score
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Brain-centricity-distal-limbinLibraryscore
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
- Sleep-stage-REM
- Rapid eye movement.
+ Sensors
+ Lists all corresponding sensors (electrodes/channels in montage). The sensor-group is selected from a list defined in the site-settings for each EEG-lab.
+
+ requireChild
+ inLibraryscore
@@ -6763,265 +4405,32 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
score
-
-
-
- Sleep-spindles
- Burst at 11-15 Hz but mostly at 12-14 Hz generally diffuse but of higher voltage over the central regions of the head, occurring during sleep. Amplitude varies but is mostly below 50 microV in the adult.
-
- suggestedTag
- Finding-significance-to-recording
- Brain-laterality
- Brain-region
- Sensors
- Finding-amplitude-asymmetry
-
-
- inLibrary
- score
-
-
-
- Arousal-pattern
- Arousal pattern in children. Prolonged, marked high voltage 4-6/s activity in all leads with some intermixed slower frequencies, in children.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Appearance-mode
- Discharge-pattern
-
-
- inLibrary
- score
-
-
-
- Frontal-arousal-rhythm
- Prolonged (up to 20s) rhythmical sharp or spiky activity over the frontal areas (maximum over the frontal midline) seen at arousal from sleep in children with minimal cerebral dysfunction.
-
- suggestedTag
- Appearance-mode
- Discharge-pattern
-
-
- inLibrary
- score
-
-
-
- Vertex-wave
- Sharp potential, maximal at the vertex, negative relative to other areas, apparently occurring spontaneously during sleep or in response to a sensory stimulus during sleep or wakefulness. May be single or repetitive. Amplitude varies but rarely exceeds 250 microV. Abbreviation: V wave. Synonym: vertex sharp wave.
-
- suggestedTag
- Finding-significance-to-recording
- Brain-laterality
- Brain-region
- Sensors
- Finding-amplitude-asymmetry
-
-
- inLibrary
- score
-
-
-
- K-complex
- A burst of somewhat variable appearance, consisting most commonly of a high voltage negative slow wave followed by a smaller positive slow wave frequently associated with a sleep spindle. Duration greater than 0.5 s. Amplitude is generally maximal in the frontal vertex. K complexes occur during nonREM sleep, apparently spontaneously, or in response to sudden sensory / auditory stimuli, and are not specific for any individual sensory modality.
-
- suggestedTag
- Finding-significance-to-recording
- Brain-laterality
- Brain-region
- Sensors
- Finding-amplitude-asymmetry
-
-
- inLibrary
- score
-
-
-
- Saw-tooth-waves
- Vertex negative 2-5 Hz waves occuring in series during REM sleep
-
- suggestedTag
- Finding-significance-to-recording
- Brain-laterality
- Brain-region
- Sensors
- Finding-amplitude-asymmetry
-
-
- inLibrary
- score
-
-
-
- POSTS
- Positive occipital sharp transients of sleep. Sharp transient maximal over the occipital regions, positive relative to other areas, apparently occurring spontaneously during sleep. May be single or repetitive. Amplitude varies but is generally bellow 50 microV.
-
- suggestedTag
- Finding-significance-to-recording
- Brain-laterality
- Brain-region
- Sensors
- Finding-amplitude-asymmetry
-
-
- inLibrary
- score
-
-
-
- Hypnagogic-hypersynchrony
- Bursts of bilateral, synchronous delta or theta activity of large amplitude, occasionally with superimposed faster components, occurring during falling asleep or during awakening, in children.
-
- suggestedTag
- Finding-significance-to-recording
- Brain-laterality
- Brain-region
- Sensors
- Finding-amplitude-asymmetry
-
-
- inLibrary
- score
-
-
-
- Non-reactive-sleep
- EEG activity consisting of normal sleep graphoelements, but which cannot be interrupted by external stimuli/ the patient cannot be waken.
-
- inLibrary
- score
-
-
-
-
- Interictal-finding
- EEG pattern / transient that is distinguished form the background activity, considered abnormal, but is not recorded during ictal period (seizure) or postictal period; the presence of an interictal finding does not necessarily imply that the patient has epilepsy.
-
- requireChild
-
-
- inLibrary
- score
-
-
- Epileptiform-interictal-activity
-
- suggestedTag
- Spike-morphology
- Spike-and-slow-wave-morphology
- Runs-of-rapid-spikes-morphology
- Polyspikes-morphology
- Polyspike-and-slow-wave-morphology
- Sharp-wave-morphology
- Sharp-and-slow-wave-morphology
- Slow-sharp-wave-morphology
- High-frequency-oscillation-morphology
- Hypsarrhythmia-classic-morphology
- Hypsarrhythmia-modified-morphology
- Brain-laterality
- Brain-region
- Sensors
- Finding-propagation
- Multifocal-finding
- Appearance-mode
- Discharge-pattern
- Finding-incidence
-
-
- inLibrary
- score
-
-
-
- Abnormal-interictal-rhythmic-activity
-
- suggestedTag
- Delta-activity-morphology
- Theta-activity-morphology
- Alpha-activity-morphology
- Beta-activity-morphology
- Gamma-activity-morphology
- Polymorphic-delta-activity-morphology
- Frontal-intermittent-rhythmic-delta-activity-morphology
- Occipital-intermittent-rhythmic-delta-activity-morphology
- Temporal-intermittent-rhythmic-delta-activity-morphology
- Brain-laterality
- Brain-region
- Sensors
- Appearance-mode
- Discharge-pattern
- Finding-incidence
-
-
- inLibrary
- score
-
-
-
- Interictal-special-patterns
-
- requireChild
-
-
- inLibrary
- score
-
+
- Interictal-periodic-discharges
- Periodic discharge not further specified (PDs).
+ Finding-propagation
+ When propagation within the graphoelement is observed, first the location of the onset region is scored. Then, the location of the propagation can be noted.suggestedTag
- Periodic-discharges-superimposed-activity
- Periodic-discharge-sharpness
- Number-of-periodic-discharge-phases
- Periodic-discharge-triphasic-morphology
- Periodic-discharge-absolute-amplitude
- Periodic-discharge-relative-amplitude
- Periodic-discharge-polarity
+ Property-exists
+ Property-absenceBrain-lateralityBrain-regionSensors
- Periodic-discharge-duration
- Periodic-discharge-onset
- Periodic-discharge-dynamicsinLibraryscore
- Generalized-periodic-discharges
- GPDs.
-
- inLibrary
- score
-
-
-
- Lateralized-periodic-discharges
- LPDs.
+ #
+ Free text.
- inLibrary
- score
+ takesValue
-
-
- Bilateral-independent-periodic-discharges
- BIPDs.
- inLibrary
- score
+ valueClass
+ textClass
-
-
- Multifocal-periodic-discharges
- MfPDs.inLibraryscore
@@ -7029,115 +4438,38 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Extreme-delta-brush
+ Multifocal-finding
+ When the same interictal graphoelement is observed bilaterally and at least in three independent locations, can score them using one entry, and choosing multifocal as a descriptor of the locations of the given interictal graphoelements, optionally emphasizing the involved, and the most active sites.suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Appearance-mode
- Discharge-pattern
+ Property-not-possible-to-determine
+ Property-exists
+ Property-absenceinLibraryscore
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
-
-
- Critically-ill-patients-patterns
- Rhythmic or periodic patterns in critically ill patients (RPPs) are scored according to the 2012 version of the American Clinical Neurophysiology Society Standardized Critical Care EEG Terminology (Hirsch et al., 2013).
-
- requireChild
-
-
- inLibrary
- score
-
-
- Critically-ill-patients-periodic-discharges
- Periodic discharges (PDs).
-
- suggestedTag
- Periodic-discharges-superimposed-activity
- Periodic-discharge-sharpness
- Number-of-periodic-discharge-phases
- Periodic-discharge-triphasic-morphology
- Periodic-discharge-absolute-amplitude
- Periodic-discharge-relative-amplitude
- Periodic-discharge-polarity
- Brain-laterality
- Brain-region
- Sensors
- Finding-frequency
- Periodic-discharge-duration
- Periodic-discharge-onset
- Periodic-discharge-dynamics
-
-
- inLibrary
- score
-
-
-
- Rhythmic-delta-activity
- RDA
-
- suggestedTag
- Periodic-discharges-superimposed-activity
- Periodic-discharge-absolute-amplitude
- Brain-laterality
- Brain-region
- Sensors
- Finding-frequency
- Periodic-discharge-duration
- Periodic-discharge-onset
- Periodic-discharge-dynamics
-
-
- inLibrary
- score
-
-
-
- Spike-or-sharp-and-wave
- SW
-
- suggestedTag
- Periodic-discharge-sharpness
- Number-of-periodic-discharge-phases
- Periodic-discharge-triphasic-morphology
- Periodic-discharge-absolute-amplitude
- Periodic-discharge-relative-amplitude
- Periodic-discharge-polarity
- Brain-laterality
- Brain-region
- Sensors
- Multifocal-finding
- Finding-frequency
- Periodic-discharge-duration
- Periodic-discharge-onset
- Periodic-discharge-dynamics
-
-
- inLibrary
- score
-
-
-
-
- Episode
- Clinical episode or electrographic seizure.
-
- requireChild
-
-
- inLibrary
- score
-
- Epileptic-seizure
+ Modulators-property
+ For each described graphoelement, the influence of the modulators can be scored. Only modulators present in the recording are scored.requireChild
@@ -7146,101 +4478,57 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
score
- Focal-onset-epileptic-seizure
+ Modulators-reactivity
+ Susceptibility of individual rhythms or the EEG as a whole to change following sensory stimulation or other physiologic actions.
+
+ requireChild
+ suggestedTag
- Episode-phase
- Seizure-dynamics
- Episode-consciousness
- Episode-awareness
- Clinical-EEG-temporal-relationship
- Episode-event-count
- State-episode-start
- Episode-postictal-phase
- Episode-prodrome
- Episode-tongue-biting
+ Property-exists
+ Property-absenceinLibraryscore
- Aware-focal-onset-epileptic-seizure
-
- suggestedTag
- Episode-phase
- Seizure-classification
- Seizure-dynamics
- Episode-consciousness
- Episode-awareness
- Clinical-EEG-temporal-relationship
- Episode-event-count
- State-episode-start
- Episode-postictal-phase
- Episode-prodrome
- Episode-tongue-biting
-
+ #
+ Free text.
- inLibrary
- score
+ takesValue
-
-
- Impaired-awareness-focal-onset-epileptic-seizure
- suggestedTag
- Episode-phase
- Seizure-classification
- Seizure-dynamics
- Episode-consciousness
- Episode-awareness
- Clinical-EEG-temporal-relationship
- Episode-event-count
- State-episode-start
- Episode-postictal-phase
- Episode-prodrome
- Episode-tongue-biting
+ valueClass
+ textClassinLibraryscore
+
+
+ Eye-closure-sensitivity
+ Eye closure sensitivity.
+
+ suggestedTag
+ Property-exists
+ Property-absence
+
+
+ inLibrary
+ score
+
- Awareness-unknown-focal-onset-epileptic-seizure
-
- suggestedTag
- Episode-phase
- Seizure-classification
- Seizure-dynamics
- Episode-consciousness
- Episode-awareness
- Clinical-EEG-temporal-relationship
- Episode-event-count
- State-episode-start
- Episode-postictal-phase
- Episode-prodrome
- Episode-tongue-biting
-
+ #
+ Free text.
- inLibrary
- score
+ takesValue
-
-
- Focal-to-bilateral-tonic-clonic-focal-onset-epileptic-seizure
- suggestedTag
- Episode-phase
- Seizure-dynamics
- Episode-consciousness
- Episode-awareness
- Clinical-EEG-temporal-relationship
- Episode-event-count
- State-episode-start
- Episode-postictal-phase
- Episode-prodrome
- Episode-tongue-biting
+ valueClass
+ textClassinLibrary
@@ -7249,20 +4537,28 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Generalized-onset-epileptic-seizure
+ Eye-opening-passive
+ Passive eye opening. Used with base schema Increasing/Decreasing.
+
+ suggestedTag
+ Property-not-possible-to-determine
+ Finding-stopped-by
+ Finding-unmodified
+ Finding-triggered-by
+
+
+ inLibrary
+ score
+
+
+
+ Medication-effect-EEG
+ Medications effect on EEG. Used with base schema Increasing/Decreasing.suggestedTag
- Episode-phase
- Seizure-classification
- Seizure-dynamics
- Episode-consciousness
- Episode-awareness
- Clinical-EEG-temporal-relationship
- Episode-event-count
- State-episode-start
- Episode-postictal-phase
- Episode-prodrome
- Episode-tongue-biting
+ Property-not-possible-to-determine
+ Finding-stopped-by
+ Finding-unmodifiedinLibrary
@@ -7270,20 +4566,13 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Unknown-onset-epileptic-seizure
+ Medication-reduction-effect-EEG
+ Medications reduction or withdrawal effect on EEG. Used with base schema Increasing/Decreasing.suggestedTag
- Episode-phase
- Seizure-classification
- Seizure-dynamics
- Episode-consciousness
- Episode-awareness
- Clinical-EEG-temporal-relationship
- Episode-event-count
- State-episode-start
- Episode-postictal-phase
- Episode-prodrome
- Episode-tongue-biting
+ Property-not-possible-to-determine
+ Finding-stopped-by
+ Finding-unmodifiedinLibrary
@@ -7291,111 +4580,28 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Unclassified-epileptic-seizure
+ Auditive-stimuli-effect
+ Used with base schema Increasing/Decreasing.suggestedTag
- Episode-phase
- Seizure-dynamics
- Episode-consciousness
- Episode-awareness
- Clinical-EEG-temporal-relationship
- Episode-event-count
- State-episode-start
- Episode-postictal-phase
- Episode-prodrome
- Episode-tongue-biting
+ Property-not-possible-to-determine
+ Finding-stopped-by
+ Finding-unmodifiedinLibraryscore
-
-
- Subtle-seizure
- Seizure type frequent in neonates, sometimes referred to as motor automatisms; they may include random and roving eye movements, sucking, chewing motions, tongue protrusion, rowing or swimming or boxing movements of the arms, pedaling and bicycling movements of the lower limbs; apneic seizures are relatively common. Although some subtle seizures are associated with rhythmic ictal EEG discharges, and are clearly epileptic, ictal EEG often does not show typical epileptic activity.
-
- suggestedTag
- Episode-phase
- Episode-consciousness
- Episode-awareness
- Clinical-EEG-temporal-relationship
- Episode-event-count
- State-episode-start
- Episode-postictal-phase
- Episode-prodrome
- Episode-tongue-biting
-
-
- inLibrary
- score
-
-
-
- Electrographic-seizure
- Referred usually to non convulsive status. Ictal EEG: rhythmic discharge or spike and wave pattern with definite evolution in frequency, location, or morphology lasting at least 10 s; evolution in amplitude alone did not qualify.
-
- suggestedTag
- Episode-phase
- Episode-consciousness
- Episode-awareness
- Clinical-EEG-temporal-relationship
- Episode-event-count
- State-episode-start
- Episode-postictal-phase
- Episode-prodrome
- Episode-tongue-biting
-
-
- inLibrary
- score
-
-
-
- Seizure-PNES
- Psychogenic non-epileptic seizure.
-
- suggestedTag
- Episode-phase
- Finding-significance-to-recording
- Episode-consciousness
- Episode-awareness
- Clinical-EEG-temporal-relationship
- Episode-event-count
- State-episode-start
- Episode-postictal-phase
- Episode-prodrome
- Episode-tongue-biting
-
-
- inLibrary
- score
-
-
-
- Sleep-related-episode
-
- requireChild
-
-
- inLibrary
- score
-
- Sleep-related-arousal
- Normal.
+ Nociceptive-stimuli-effect
+ Used with base schema Increasing/Decreasing.suggestedTag
- Episode-phase
- Finding-significance-to-recording
- Episode-consciousness
- Episode-awareness
- Clinical-EEG-temporal-relationship
- Episode-event-count
- State-episode-start
- Episode-postictal-phase
- Episode-prodrome
- Episode-tongue-biting
+ Property-not-possible-to-determine
+ Finding-stopped-by
+ Finding-unmodified
+ Finding-triggered-byinLibrary
@@ -7403,20 +4609,14 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Benign-sleep-myoclonus
- A distinctive disorder of sleep characterized by a) neonatal onset, b) rhythmic myoclonic jerks only during sleep and c) abrupt and consistent cessation with arousal, d) absence of concomitant electrographic changes suggestive of seizures, and e) good outcome.
+ Physical-effort-effect
+ Used with base schema Increasing/DecreasingsuggestedTag
- Episode-phase
- Finding-significance-to-recording
- Episode-consciousness
- Episode-awareness
- Clinical-EEG-temporal-relationship
- Episode-event-count
- State-episode-start
- Episode-postictal-phase
- Episode-prodrome
- Episode-tongue-biting
+ Property-not-possible-to-determine
+ Finding-stopped-by
+ Finding-unmodified
+ Finding-triggered-byinLibrary
@@ -7424,20 +4624,14 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Confusional-awakening
- Episode of non epileptic nature included in NREM parasomnias, characterized by sudden arousal and complex behavior but without full alertness, usually lasting a few minutes and occurring almost in all children at least occasionally. Amnesia of the episode is the rule.
+ Cognitive-task-effect
+ Used with base schema Increasing/Decreasing.suggestedTag
- Episode-phase
- Finding-significance-to-recording
- Episode-consciousness
- Episode-awareness
- Clinical-EEG-temporal-relationship
- Episode-event-count
- State-episode-start
- Episode-postictal-phase
- Episode-prodrome
- Episode-tongue-biting
+ Property-not-possible-to-determine
+ Finding-stopped-by
+ Finding-unmodified
+ Finding-triggered-byinLibrary
@@ -7445,93 +4639,257 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Sleep-periodic-limb-movement
- PLMS. Periodic limb movement in sleep. Episodes are characterized by brief (0.5- to 5.0-second) lower-extremity movements during sleep, which typically occur at 20- to 40-second intervals, most commonly during the first 3 hours of sleep. The affected individual is usually not aware of the movements or of the transient partial arousals.
+ Other-modulators-effect-EEG
- suggestedTag
- Episode-phase
- Finding-significance-to-recording
- Episode-consciousness
- Episode-awareness
- Clinical-EEG-temporal-relationship
- Episode-event-count
- State-episode-start
- Episode-postictal-phase
- Episode-prodrome
- Episode-tongue-biting
+ requireChildinLibraryscore
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
- REM-sleep-behavioral-disorder
- REM sleep behavioral disorder. Episodes characterized by: a) presence of REM sleep without atonia (RSWA) on polysomnography (PSG); b) presence of at least 1 of the following conditions - (1) Sleep-related behaviors, by history, that have been injurious, potentially injurious, or disruptive (example: dream enactment behavior); (2) abnormal REM sleep behavior documented during PSG monitoring; (3) absence of epileptiform activity on electroencephalogram (EEG) during REM sleep (unless RBD can be clearly distinguished from any concurrent REM sleep-related seizure disorder); (4) sleep disorder not better explained by another sleep disorder, a medical or neurologic disorder, a mental disorder, medication use, or a substance use disorder.
-
- suggestedTag
- Episode-phase
- Finding-significance-to-recording
- Episode-consciousness
- Episode-awareness
- Clinical-EEG-temporal-relationship
- Episode-event-count
- State-episode-start
- Episode-postictal-phase
- Episode-prodrome
- Episode-tongue-biting
-
+ Facilitating-factor
+ Facilitating factors are defined as transient and sporadic endogenous or exogenous elements capable of augmenting seizure incidence (increasing the likelihood of seizure occurrence).inLibraryscore
+
+ Facilitating-factor-alcohol
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Facilitating-factor-awake
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Facilitating-factor-catamenial
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Facilitating-factor-fever
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Facilitating-factor-sleep
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Facilitating-factor-sleep-deprived
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Facilitating-factor-other
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
- Sleep-walking
- Episodes characterized by ambulation during sleep; the patient is difficult to arouse during an episode, and is usually amnesic following the episode. Episodes usually occur in the first third of the night during slow wave sleep. Polysomnographic recordings demonstrate 2 abnormalities during the first sleep cycle: frequent, brief, non-behavioral EEG-defined arousals prior to the somnambulistic episode and abnormally low gamma (0.75-2.0 Hz) EEG power on spectral analysis, correlating with high-voltage (hyper-synchronic gamma) waves lasting 10 to 15 s occurring just prior to the movement. This is followed by stage I NREM sleep, and there is no evidence of complete awakening.
+ Provocative-factor
+ Provocative factors are defined as transient and sporadic endogenous or exogenous elements capable of evoking/triggering seizures immediately following the exposure to it.
- suggestedTag
- Episode-phase
- Finding-significance-to-recording
- Episode-consciousness
- Episode-awareness
- Clinical-EEG-temporal-relationship
- Episode-event-count
- State-episode-start
- Episode-postictal-phase
- Episode-prodrome
- Episode-tongue-biting
+ requireChildinLibraryscore
+
+ Hyperventilation-provoked
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Reflex-provoked
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
-
-
- Pediatric-episode
-
- requireChild
-
-
- inLibrary
- score
-
- Hyperekplexia
- Disorder characterized by exaggerated startle response and hypertonicity that may occur during the first year of life and in severe cases during the neonatal period. Children usually present with marked irritability and recurrent startles in response to handling and sounds. Severely affected infants can have severe jerks and stiffening, sometimes with breath-holding spells.
+ Medication-effect-clinical
+ Medications clinical effect. Used with base schema Increasing/Decreasing.suggestedTag
- Episode-phase
- Finding-significance-to-recording
- Episode-consciousness
- Episode-awareness
- Clinical-EEG-temporal-relationship
- Episode-event-count
- State-episode-start
- Episode-postictal-phase
- Episode-prodrome
- Episode-tongue-biting
+ Finding-stopped-by
+ Finding-unmodifiedinLibrary
@@ -7539,20 +4897,12 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Jactatio-capitis-nocturna
- Relatively common in normal children at the time of going to bed, especially during the first year of life, the rhythmic head movements persist during sleep. Usually, these phenomena disappear before 3 years of age.
+ Medication-reduction-effect-clinical
+ Medications reduction or withdrawal clinical effect. Used with base schema Increasing/Decreasing.suggestedTag
- Episode-phase
- Finding-significance-to-recording
- Episode-consciousness
- Episode-awareness
- Clinical-EEG-temporal-relationship
- Episode-event-count
- State-episode-start
- Episode-postictal-phase
- Episode-prodrome
- Episode-tongue-biting
+ Finding-stopped-by
+ Finding-unmodifiedinLibrary
@@ -7560,506 +4910,401 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Pavor-nocturnus
- A nocturnal episode characterized by age of onset of less than five years (mean age 18 months, with peak prevalence at five to seven years), appearance of signs of panic two hours after falling asleep with crying, screams, a fearful expression, inability to recognize other people including parents (for a duration of 5-15 minutes), amnesia upon awakening. Pavor nocturnus occurs in patients almost every night for months or years (but the frequency is highly variable and may be as low as once a month) and is likely to disappear spontaneously at the age of six to eight years.
+ Other-modulators-effect-clinical
- suggestedTag
- Episode-phase
- Finding-significance-to-recording
- Episode-consciousness
- Episode-awareness
- Clinical-EEG-temporal-relationship
- Episode-event-count
- State-episode-start
- Episode-postictal-phase
- Episode-prodrome
- Episode-tongue-biting
+ requireChildinLibraryscore
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
- Pediatric-stereotypical-behavior-episode
- Repetitive motor behavior in children, typically rhythmic and persistent; usually not paroxysmal and rarely suggest epilepsy. They include headbanging, head-rolling, jactatio capitis nocturna, body rocking, buccal or lingual movements, hand flapping and related mannerisms, repetitive hand-waving (to self-induce photosensitive seizures).
+ Intermittent-photic-stimulation-effect
- suggestedTag
- Episode-phase
- Finding-significance-to-recording
- Episode-consciousness
- Episode-awareness
- Clinical-EEG-temporal-relationship
- Episode-event-count
- State-episode-start
- Episode-postictal-phase
- Episode-prodrome
- Episode-tongue-biting
+ requireChildinLibraryscore
-
-
-
- Paroxysmal-motor-event
- Paroxysmal phenomena during neonatal or childhood periods characterized by recurrent motor or behavioral signs or symptoms that must be distinguishes from epileptic disorders.
-
- suggestedTag
- Episode-phase
- Finding-significance-to-recording
- Episode-consciousness
- Episode-awareness
- Clinical-EEG-temporal-relationship
- Episode-event-count
- State-episode-start
- Episode-postictal-phase
- Episode-prodrome
- Episode-tongue-biting
-
-
- inLibrary
- score
-
-
-
- Syncope
- Episode with loss of consciousness and muscle tone that is abrupt in onset, of short duration and followed by rapid recovery; it occurs in response to transient impairment of cerebral perfusion. Typical prodromal symptoms often herald onset of syncope and postictal symptoms are minimal. Syncopal convulsions resulting from cerebral anoxia are common but are not a form of epilepsy, nor are there any accompanying EEG ictal discharges.
-
- suggestedTag
- Episode-phase
- Finding-significance-to-recording
- Episode-consciousness
- Episode-awareness
- Clinical-EEG-temporal-relationship
- Episode-event-count
- State-episode-start
- Episode-postictal-phase
- Episode-prodrome
- Episode-tongue-biting
-
-
- inLibrary
- score
-
-
-
- Cataplexy
- A sudden decrement in muscle tone and loss of deep tendon reflexes, leading to muscle weakness, paralysis, or postural collapse. Cataplexy usually is precipitated by an outburst of emotional expression-notably laughter, anger, or startle. It is one of the tetrad of symptoms of narcolepsy. During cataplexy, respiration and voluntary eye movements are not compromised. Consciousness is preserved.
-
- suggestedTag
- Episode-phase
- Finding-significance-to-recording
- Episode-consciousness
- Episode-awareness
- Clinical-EEG-temporal-relationship
- Episode-event-count
- State-episode-start
- Episode-postictal-phase
- Episode-prodrome
- Episode-tongue-biting
-
-
- inLibrary
- score
-
-
-
- Other-episode
-
- requireChild
-
-
- inLibrary
- score
-
+
+ Posterior-stimulus-dependent-intermittent-photic-stimulation-response
+
+ suggestedTag
+ Finding-frequency
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Posterior-stimulus-independent-intermittent-photic-stimulation-response-limited
+ limited to the stimulus-train
+
+ suggestedTag
+ Finding-frequency
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Posterior-stimulus-independent-intermittent-photic-stimulation-response-self-sustained
+
+ suggestedTag
+ Finding-frequency
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Generalized-photoparoxysmal-intermittent-photic-stimulation-response-limited
+ Limited to the stimulus-train.
+
+ suggestedTag
+ Finding-frequency
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Generalized-photoparoxysmal-intermittent-photic-stimulation-response-self-sustained
+
+ suggestedTag
+ Finding-frequency
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Activation-of-pre-existing-epileptogenic-area-intermittent-photic-stimulation-effect
+
+ suggestedTag
+ Finding-frequency
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Unmodified-intermittent-photic-stimulation-effect
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
- #
- Free text.
-
- takesValue
-
+ Quality-of-hyperventilation
- valueClass
- textClass
+ requireChildinLibraryscore
-
-
-
-
- Physiologic-pattern
- EEG graphoelements or rhythms that are considered normal. They only should be scored if the physician considers that they have a specific clinical significance for the recording.
-
- requireChild
-
-
- inLibrary
- score
-
-
- Rhythmic-activity-pattern
- Not further specified.
-
- suggestedTag
- Delta-activity-morphology
- Theta-activity-morphology
- Alpha-activity-morphology
- Beta-activity-morphology
- Gamma-activity-morphology
- Brain-laterality
- Brain-region
- Sensors
- Appearance-mode
- Discharge-pattern
-
-
- inLibrary
- score
-
-
-
- Slow-alpha-variant-rhythm
- Characteristic rhythms mostly at 4-5 Hz, recorded most prominently over the posterior regions of the head. Generally alternate, or are intermixed, with alpha rhythm to which they often are harmonically related. Amplitude varies but is frequently close to 50 micro V. Blocked or attenuated by attention, especially visual, and mental effort. Comment: slow alpha variant rhythms should be distinguished from posterior slow waves characteristic of children and adolescents and occasionally seen in young adults.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Appearance-mode
- Discharge-pattern
-
-
- inLibrary
- score
-
-
-
- Fast-alpha-variant-rhythm
- Characteristic rhythm at 14-20 Hz, detected most prominently over the posterior regions of the head. May alternate or be intermixed with alpha rhythm. Blocked or attenuated by attention, especially visual, and mental effort.
-
- suggestedTag
- Appearance-mode
- Discharge-pattern
-
-
- inLibrary
- score
-
-
-
- Ciganek-rhythm
- Midline theta rhythm (Ciganek rhythm) may be observed during wakefulness or drowsiness. The frequency is 4-7 Hz, and the location is midline (ie, vertex). The morphology is rhythmic, smooth, sinusoidal, arciform, spiky, or mu-like.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Appearance-mode
- Discharge-pattern
-
-
- inLibrary
- score
-
-
-
- Lambda-wave
- Diphasic sharp transient occurring over occipital regions of the head of waking subjects during visual exploration. The main component is positive relative to other areas. Time-locked to saccadic eye movement. Amplitude varies but is generally below 50 micro V.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Appearance-mode
- Discharge-pattern
-
-
- inLibrary
- score
-
-
-
- Posterior-slow-waves-youth
- Waves in the delta and theta range, of variable form, lasting 0.35 to 0.5 s or longer without any consistent periodicity, found in the range of 6-12 years (occasionally seen in young adults). Alpha waves are almost always intermingled or superimposed. Reactive similar to alpha activity.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Appearance-mode
- Discharge-pattern
-
-
- inLibrary
- score
-
-
-
- Diffuse-slowing-hyperventilation
- Diffuse slowing induced by hyperventilation. Bilateral, diffuse slowing during hyperventilation. Recorded in 70 percent of normal children (3-5 years) and less then 10 percent of adults. Usually appear in the posterior regions and spread forward in younger age group, whereas they tend to appear in the frontal regions and spread backward in the older age group.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Appearance-mode
- Discharge-pattern
-
-
- inLibrary
- score
-
-
-
- Photic-driving
- Physiologic response consisting of rhythmic activity elicited over the posterior regions of the head by repetitive photic stimulation at frequencies of about 5-30 Hz. Comments: term should be limited to activity time-locked to the stimulus and of frequency identical or harmonically related to the stimulus frequency. Photic driving should be distinguished from the visual evoked potentials elicited by isolated flashes of light or flashes repeated at very low frequency.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Appearance-mode
- Discharge-pattern
-
-
- inLibrary
- score
-
-
-
- Photomyogenic-response
- A response to intermittent photic stimulation characterized by the appearance in the record of brief, repetitive muscular artifacts (spikes) over the anterior regions of the head. These often increase gradually in amplitude as stimuli are continued and cease promptly when the stimulus is withdrawn. Comment: this response is frequently associated with flutter of the eyelids and vertical oscillations of the eyeballs and sometimes with discrete jerking mostly involving the musculature of the face and head. (Preferred to synonym: photo-myoclonic response).
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Appearance-mode
- Discharge-pattern
-
-
- inLibrary
- score
-
-
-
- Other-physiologic-pattern
-
- requireChild
-
-
- inLibrary
- score
-
+
+ Hyperventilation-refused-procedure
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Hyperventilation-poor-effort
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Hyperventilation-good-effort
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Hyperventilation-excellent-effort
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
- #
- Free text.
-
- takesValue
-
+ Modulators-effect
+ Tags for describing the influence of the modulators
- valueClass
- textClass
+ requireChildinLibraryscore
-
-
-
-
- Uncertain-significant-pattern
- EEG graphoelements or rhythms that resemble abnormal patterns but that are not necessarily associated with a pathology, and the physician does not consider them abnormal in the context of the scored recording (like normal variants and patterns).
-
- requireChild
-
-
- inLibrary
- score
-
-
- Sharp-transient-pattern
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Appearance-mode
- Discharge-pattern
-
-
- inLibrary
- score
-
-
-
- Wicket-spikes
- Spike-like monophasic negative single waves or trains of waves occurring over the temporal regions during drowsiness that have an arcuate or mu-like appearance. These are mainly seen in older individuals and represent a benign variant that is of little clinical significance.
-
- inLibrary
- score
-
-
-
- Small-sharp-spikes
- Benign epileptiform Transients of Sleep (BETS). Small sharp spikes (SSS) of very short duration and low amplitude, often followed by a small theta wave, occurring in the temporal regions during drowsiness and light sleep. They occur on one or both sides (often asynchronously). The main negative and positive components are of about equally spiky character. Rarely seen in children, they are seen most often in adults and the elderly. Two thirds of the patients have a history of epileptic seizures.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Appearance-mode
- Discharge-pattern
-
-
- inLibrary
- score
-
-
-
- Fourteen-six-Hz-positive-burst
- Burst of arch-shaped waves at 13-17 Hz and/or 5-7-Hz but most commonly at 14 and or 6 Hz seen generally over the posterior temporal and adjacent areas of one or both sides of the head during sleep. The sharp peaks of its component waves are positive with respect to other regions. Amplitude varies but is generally below 75 micro V. Comments: (1) best demonstrated by referential recording using contralateral earlobe or other remote, reference electrodes. (2) This pattern has no established clinical significance.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Appearance-mode
- Discharge-pattern
-
-
- inLibrary
- score
-
-
-
- Six-Hz-spike-slow-wave
- Spike and slow wave complexes at 4-7Hz, but mostly at 6 Hz occurring generally in brief bursts bilaterally and synchronously, symmetrically or asymmetrically, and either confined to or of larger amplitude over the posterior or anterior regions of the head. The spike has a strong positive component. Amplitude varies but is generally smaller than that of spike-and slow-wave complexes repeating at slower rates. Comment: this pattern should be distinguished from epileptiform discharges. Synonym: wave and spike phantom.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Appearance-mode
- Discharge-pattern
-
-
- inLibrary
- score
-
-
-
- Rudimentary-spike-wave-complex
- Synonym: Pseudo petit mal discharge. Paroxysmal discharge that consists of generalized or nearly generalized high voltage 3 to 4/sec waves with poorly developed spike in the positive trough between the slow waves, occurring in drowsiness only. It is found only in infancy and early childhood when marked hypnagogic rhythmical theta activity is paramount in the drowsy state.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Appearance-mode
- Discharge-pattern
-
-
- inLibrary
- score
-
-
-
- Slow-fused-transient
- A posterior slow-wave preceded by a sharp-contoured potential that blends together with the ensuing slow wave, in children.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Appearance-mode
- Discharge-pattern
-
-
- inLibrary
- score
-
-
-
- Needle-like-occipital-spikes-blind
- Spike discharges of a particularly fast and needle-like character develop over the occipital region in most congenitally blind children. Completely disappear during childhood or adolescence.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Appearance-mode
- Discharge-pattern
-
-
- inLibrary
- score
-
-
-
- Subclinical-rhythmic-EEG-discharge-adults
- Subclinical rhythmic EEG discharge of adults (SERDA). A rhythmic pattern seen in the adult age group, mainly in the waking state or drowsiness. It consists of a mixture of frequencies, often predominant in the theta range. The onset may be fairly abrupt with widespread sharp rhythmical theta and occasionally with delta activity. As to the spatial distribution, a maximum of this discharge is usually found over the centroparietal region and especially over the vertex. It may resemble a seizure discharge but is not accompanied by any clinical signs or symptoms.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Appearance-mode
- Discharge-pattern
-
-
- inLibrary
- score
-
-
-
- Rhythmic-temporal-theta-burst-drowsiness
- Rhythmic temporal theta burst of drowsiness (RTTD). Characteristic burst of 4-7 Hz waves frequently notched by faster waves, occurring over the temporal regions of the head during drowsiness. Synonym: psychomotor variant pattern. Comment: this is a pattern of drowsiness that is of no clinical significance.
-
- inLibrary
- score
-
-
-
- Temporal-slowing-elderly
- Focal theta and/or delta activity over the temporal regions, especially the left, in persons over the age of 60. Amplitudes are low/similar to the background activity. Comment: focal temporal theta was found in 20 percent of people between the ages of 40-59 years, and 40 percent of people between 60 and 79 years. One third of people older than 60 years had focal temporal delta activity.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Appearance-mode
- Discharge-pattern
-
-
- inLibrary
- score
-
-
-
- Breach-rhythm
- Rhythmical activity recorded over cranial bone defects. Usually it is in the 6 to 11/sec range, does not respond to movements.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Appearance-mode
- Discharge-pattern
-
-
- inLibrary
- score
-
+
+ Modulators-effect-continuous-during-NRS
+ Continuous during non-rapid-eye-movement-sleep (NRS)
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Modulators-effect-only-during
+
+ inLibrary
+ score
+
+
+ #
+ Only during Sleep/Awakening/Hyperventilation/Physical effort/Cognitive task. Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Modulators-effect-change-of-patterns
+ Change of patterns during sleep/awakening.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
- Other-uncertain-significant-pattern
+ Time-related-property
+ Important to estimate how often an interictal abnormality is seen in the recording.requireChild
@@ -8068,34 +5313,826 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
score
- #
- Free text.
+ Appearance-mode
+ Describes how the non-ictal EEG pattern/graphoelement is distributed through the recording.
+
+ requireChild
+
+
+ suggestedTag
+ Property-not-possible-to-determine
+
+
+ inLibrary
+ score
+
+
+ Random-appearance-mode
+ Occurrence of the non-ictal EEG pattern / graphoelement without any rhythmicity / periodicity.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Periodic-appearance-mode
+ Non-ictal EEG pattern / graphoelement occurring at an approximately regular rate / interval (generally of 1 to several seconds).
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Variable-appearance-mode
+ Occurrence of non-ictal EEG pattern / graphoelements, that is sometimes rhythmic or periodic, other times random, throughout the recording.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Intermittent-appearance-mode
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Continuous-appearance-mode
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Discharge-pattern
+ Describes the organization of the EEG signal within the discharge (distinguish between single and repetitive discharges)
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Single-discharge-pattern
+ Applies to the intra-burst pattern: a graphoelement that is not repetitive; before and after the graphoelement one can distinguish the background activity.
+
+ suggestedTag
+ Finding-incidence
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Rhythmic-trains-or-bursts-discharge-pattern
+ Applies to the intra-burst pattern: a non-ictal graphoelement that repeats itself without returning to the background activity between them. The graphoelements within this repetition occur at approximately constant period.
+
+ suggestedTag
+ Finding-prevalence
+ Finding-frequency
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Arrhythmic-trains-or-bursts-discharge-pattern
+ Applies to the intra-burst pattern: a non-ictal graphoelement that repeats itself without returning to the background activity between them. The graphoelements within this repetition occur at inconstant period.
+
+ suggestedTag
+ Finding-prevalence
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Fragmented-discharge-pattern
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Periodic-discharge-time-related-features
+ Periodic discharges not further specified (PDs) time-relayed features tags.
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Periodic-discharge-duration
+
+ requireChild
+
+
+ suggestedTag
+ Property-not-possible-to-determine
+
+
+ inLibrary
+ score
+
+
+ Very-brief-periodic-discharge-duration
+ Less than 10 sec.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Brief-periodic-discharge-duration
+ 10 to 59 sec.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Intermediate-periodic-discharge-duration
+ 1 to 4.9 min.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Long-periodic-discharge-duration
+ 5 to 59 min.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Very-long-periodic-discharge-duration
+ Greater than 1 hour.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Periodic-discharge-onset
+
+ requireChild
+
+
+ suggestedTag
+ Property-not-possible-to-determine
+
+
+ inLibrary
+ score
+
+
+ Sudden-periodic-discharge-onset
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Gradual-periodic-discharge-onset
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Periodic-discharge-dynamics
+
+ requireChild
+
+
+ suggestedTag
+ Property-not-possible-to-determine
+
+
+ inLibrary
+ score
+
+
+ Evolving-periodic-discharge-dynamics
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Fluctuating-periodic-discharge-dynamics
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Static-periodic-discharge-dynamics
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+
+ Finding-extent
+ Percentage of occurrence during the recording (background activity and interictal finding).
- takesValue
+ inLibrary
+ score
+
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Finding-incidence
+ How often it occurs/time-epoch.
+
+ requireChild
- valueClass
- textClass
+ inLibrary
+ score
+
+
+ Only-once-finding-incidence
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Rare-finding-incidence
+ less than 1/h
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Uncommon-finding-incidence
+ 1/5 min to 1/h.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Occasional-finding-incidence
+ 1/min to 1/5min.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Frequent-finding-incidence
+ 1/10 s to 1/min.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Abundant-finding-incidence
+ Greater than 1/10 s).
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Finding-prevalence
+ The percentage of the recording covered by the train/burst.
+
+ requireChildinLibraryscore
+
+ Rare-finding-prevalence
+ Less than 1 percent.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Occasional-finding-prevalence
+ 1 to 9 percent.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Frequent-finding-prevalence
+ 10 to 49 percent.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Abundant-finding-prevalence
+ 50 to 89 percent.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Continuous-finding-prevalence
+ Greater than 90 percent.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
-
-
- Artifact
- When relevant for the clinical interpretation, artifacts can be scored by specifying the type and the location.
-
- requireChild
-
-
- inLibrary
- score
-
- Biological-artifact
+ Posterior-dominant-rhythm-property
+ Posterior dominant rhythm is the most often scored EEG feature in clinical practice. Therefore, there are specific terms that can be chosen for characterizing the PDR.requireChild
@@ -8104,241 +6141,561 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
score
- Eye-blink-artifact
- Example for EEG: Fp1/Fp2 become electropositive with eye closure because the cornea is positively charged causing a negative deflection in Fp1/Fp2. If the eye blink is unilateral, consider prosthetic eye. If it is in F8 rather than Fp2 then the electrodes are plugged in wrong.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Multifocal-finding
- Artifact-significance-to-recording
-
-
- inLibrary
- score
-
-
-
- Eye-movement-horizontal-artifact
- Example for EEG: There is an upward deflection in the Fp2-F8 derivation, when the eyes move to the right side. In this case F8 becomes more positive and therefore. When the eyes move to the left, F7 becomes more positive and there is an upward deflection in the Fp1-F7 derivation.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Multifocal-finding
- Artifact-significance-to-recording
-
-
- inLibrary
- score
-
-
-
- Eye-movement-vertical-artifact
- Example for EEG: The EEG shows positive potentials (50-100 micro V) with bi-frontal distribution, maximum at Fp1 and Fp2, when the eyeball rotated upward. The downward rotation of the eyeball was associated with the negative deflection. The time course of the deflections was similar to the time course of the eyeball movement.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Multifocal-finding
- Artifact-significance-to-recording
-
-
- inLibrary
- score
-
-
-
- Slow-eye-movement-artifact
- Slow, rolling eye-movements, seen during drowsiness.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Multifocal-finding
- Artifact-significance-to-recording
-
-
- inLibrary
- score
-
-
-
- Nystagmus-artifact
-
- suggestedTag
- Artifact-significance-to-recording
-
-
- inLibrary
- score
-
-
-
- Chewing-artifact
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Multifocal-finding
- Artifact-significance-to-recording
-
-
- inLibrary
- score
-
-
-
- Sucking-artifact
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Multifocal-finding
- Artifact-significance-to-recording
-
-
- inLibrary
- score
-
-
-
- Glossokinetic-artifact
- The tongue functions as a dipole, with the tip negative with respect to the base. The artifact produced by the tongue has a broad potential field that drops from frontal to occipital areas, although it is less steep than that produced by eye movement artifacts. The amplitude of the potentials is greater inferiorly than in parasagittal regions; the frequency is variable but usually in the delta range. Chewing and sucking can produce similar artifacts.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Multifocal-finding
- Artifact-significance-to-recording
-
-
- inLibrary
- score
-
-
-
- Rocking-patting-artifact
- Quasi-rhythmical artifacts in recordings from infants caused by rocking/patting.
-
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Multifocal-finding
- Artifact-significance-to-recording
-
+ Posterior-dominant-rhythm-amplitude-range
- inLibrary
- score
+ requireChild
-
-
- Movement-artifact
- Example for EEG: Large amplitude artifact, with irregular morphology (usually resembling a slow-wave or a wave with complex morphology) seen in one or several channels, due to movement. If the causing movement is repetitive, the artifact might resemble a rhythmic EEG activity.suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Multifocal-finding
- Artifact-significance-to-recording
+ Property-not-possible-to-determineinLibraryscore
+
+ Low-posterior-dominant-rhythm-amplitude-range
+ Low (less than 20 microV).
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Medium-posterior-dominant-rhythm-amplitude-range
+ Medium (between 20 and 70 microV).
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ High-posterior-dominant-rhythm-amplitude-range
+ High (more than 70 microV).
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
- Respiration-artifact
- Respiration can produce 2 kinds of artifacts. One type is in the form of slow and rhythmic activity, synchronous with the body movements of respiration and mechanically affecting the impedance of (usually) one electrode. The other type can be slow or sharp waves that occur synchronously with inhalation or exhalation and involve those electrodes on which the patient is lying.
+ Posterior-dominant-rhythm-frequency-asymmetry
+ When symmetrical could be labeled with base schema Symmetrical tag.
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Multifocal-finding
- Artifact-significance-to-recording
+ requireChildinLibraryscore
+
+ Posterior-dominant-rhythm-frequency-asymmetry-lower-left
+ Hz lower on the left side.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Posterior-dominant-rhythm-frequency-asymmetry-lower-right
+ Hz lower on the right side.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
- Pulse-artifact
- Example for EEG: Occurs when an EEG electrode is placed over a pulsating vessel. The pulsation can cause slow waves that may simulate EEG activity. A direct relationship exists between ECG and the pulse waves (200-300 millisecond delay after ECG equals QRS complex).
+ Posterior-dominant-rhythm-eye-opening-reactivity
+ Change (disappearance or measurable decrease in amplitude) of a posterior dominant rhythm following eye-opening. Eye closure has the opposite effect.suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Multifocal-finding
- Artifact-significance-to-recording
+ Property-not-possible-to-determineinLibraryscore
+
+ Posterior-dominant-rhythm-eye-opening-reactivity-reduced-left
+ Reduced left side reactivity.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Posterior-dominant-rhythm-eye-opening-reactivity-reduced-right
+ Reduced right side reactivity.
+
+ inLibrary
+ score
+
+
+ #
+ free text
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Posterior-dominant-rhythm-eye-opening-reactivity-reduced-both
+ Reduced reactivity on both sides.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
- ECG-artifact
- Example for EEG: Far-field potential generated in the heart. The voltage and apparent surface of the artifact vary from derivation to derivation and, consequently, from montage to montage. The artifact is observed best in referential montages using earlobe electrodes A1 and A2. ECG artifact is recognized easily by its rhythmicity/regularity and coincidence with the ECG tracing.
+ Posterior-dominant-rhythm-organization
+ When normal could be labeled with base schema Normal tag.
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Multifocal-finding
- Artifact-significance-to-recording
+ requireChildinLibraryscore
+
+ Posterior-dominant-rhythm-organization-poorly-organized
+ Poorly organized.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Posterior-dominant-rhythm-organization-disorganized
+ Disorganized.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Posterior-dominant-rhythm-organization-markedly-disorganized
+ Markedly disorganized.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
- Sweat-artifact
- Is a low amplitude undulating waveform that is usually greater than 2 seconds and may appear to be an unstable baseline.
+ Posterior-dominant-rhythm-caveat
+ Caveat to the annotation of PDR.
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Multifocal-finding
- Artifact-significance-to-recording
+ requireChildinLibraryscore
+
+ No-posterior-dominant-rhythm-caveat
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Posterior-dominant-rhythm-caveat-only-open-eyes-during-the-recording
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Posterior-dominant-rhythm-caveat-sleep-deprived-caveat
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Posterior-dominant-rhythm-caveat-drowsy
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Posterior-dominant-rhythm-caveat-only-following-hyperventilation
+
+ inLibrary
+ score
+
+
- EMG-artifact
- Myogenic potentials are the most common artifacts. Frontalis and temporalis muscles (ex..: clenching of jaw muscles) are common causes. Generally, the potentials generated in the muscles are of shorter duration than those generated in the brain. The frequency components are usually beyond 30-50 Hz, and the bursts are arrhythmic.
+ Absence-of-posterior-dominant-rhythm
+ Reason for absence of PDR.
- suggestedTag
- Brain-laterality
- Brain-region
- Sensors
- Multifocal-finding
- Artifact-significance-to-recording
+ requireChildinLibraryscore
+
+ Absence-of-posterior-dominant-rhythm-artifacts
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Absence-of-posterior-dominant-rhythm-extreme-low-voltage
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Absence-of-posterior-dominant-rhythm-eye-closure-could-not-be-achieved
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Absence-of-posterior-dominant-rhythm-lack-of-awake-period
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Absence-of-posterior-dominant-rhythm-lack-of-compliance
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Absence-of-posterior-dominant-rhythm-other-causes
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
- Non-biological-artifact
+ Episode-propertyrequireChild
@@ -8347,183 +6704,1535 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
score
- Power-supply-artifact
- 50-60 Hz artifact. Monomorphic waveform due to 50 or 60 Hz A/C power supply.
-
- suggestedTag
- Artifact-significance-to-recording
-
-
- inLibrary
- score
-
-
-
- Induction-artifact
- Artifacts (usually of high frequency) induced by nearby equipment (like in the intensive care unit).
-
- suggestedTag
- Artifact-significance-to-recording
-
-
- inLibrary
- score
-
-
-
- Dialysis-artifact
-
- suggestedTag
- Artifact-significance-to-recording
-
-
- inLibrary
- score
-
-
-
- Artificial-ventilation-artifact
+ Seizure-classification
+ Seizure classification refers to the grouping of seizures based on their clinical features, EEG patterns, and other characteristics. Epileptic seizures are named using the current ILAE seizure classification (Fisher et al., 2017, Beniczky et al., 2017).
- suggestedTag
- Artifact-significance-to-recording
+ requireChildinLibraryscore
+
+ Motor-seizure
+ Involves musculature in any form. The motor event could consist of an increase (positive) or decrease (negative) in muscle contraction to produce a movement. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+ inLibrary
+ score
+
+
+
+ Motor-onset-seizure
+
+ deprecatedFrom
+ 1.0.0
+
+
+ inLibrary
+ score
+
+
+ Myoclonic-motor-seizure
+ Sudden, brief ( lower than 100 msec) involuntary single or multiple contraction(s) of muscles(s) or muscle groups of variable topography (axial, proximal limb, distal). Myoclonus is less regularly repetitive and less sustained than is clonus. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+ inLibrary
+ score
+
+
+
+ Myoclonic-motor-onset-seizure
+
+ deprecatedFrom
+ 1.0.0
+
+
+ inLibrary
+ score
+
+
+
+ Negative-myoclonic-motor-seizure
+
+ inLibrary
+ score
+
+
+
+ Negative-myoclonic-motor-onset-seizure
+
+ deprecatedFrom
+ 1.0.0
+
+
+ inLibrary
+ score
+
+
+
+ Clonic-motor-seizure
+ Jerking, either symmetric or asymmetric, that is regularly repetitive and involves the same muscle groups. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+ inLibrary
+ score
+
+
+
+ Clonic-motor-onset-seizure
+
+ deprecatedFrom
+ 1.0.0
+
+
+ inLibrary
+ score
+
+
+
+ Tonic-motor-seizure
+ A sustained increase in muscle contraction lasting a few seconds to minutes. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+ inLibrary
+ score
+
+
+
+ Tonic-motor-onset-seizure
+
+ deprecatedFrom
+ 1.0.0
+
+
+ inLibrary
+ score
+
+
+
+ Atonic-motor-seizure
+ Sudden loss or diminution of muscle tone without apparent preceding myoclonic or tonic event lasting about 1 to 2 s, involving head, trunk, jaw, or limb musculature. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+ inLibrary
+ score
+
+
+
+ Atonic-motor-onset-seizure
+
+ deprecatedFrom
+ 1.0.0
+
+
+ inLibrary
+ score
+
+
+
+ Myoclonic-atonic-motor-seizure
+ A generalized seizure type with a myoclonic jerk leading to an atonic motor component. This type was previously called myoclonic astatic. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+ inLibrary
+ score
+
+
+
+ Myoclonic-atonic-motor-onset-seizure
+
+ deprecatedFrom
+ 1.0.0
+
+
+ inLibrary
+ score
+
+
+
+ Myoclonic-tonic-clonic-motor-seizure
+ One or a few jerks of limbs bilaterally, followed by a tonic clonic seizure. The initial jerks can be considered to be either a brief period of clonus or myoclonus. Seizures with this characteristic are common in juvenile myoclonic epilepsy. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+ inLibrary
+ score
+
+
+
+ Myoclonic-tonic-clonic-motor-onset-seizure
+
+ deprecatedFrom
+ 1.0.0
+
+
+ inLibrary
+ score
+
+
+
+ Tonic-clonic-motor-seizure
+ A sequence consisting of a tonic followed by a clonic phase. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+ inLibrary
+ score
+
+
+
+ Tonic-clonic-motor-onset-seizure
+
+ deprecatedFrom
+ 1.0.0
+
+
+ inLibrary
+ score
+
+
+
+ Automatism-motor-seizure
+ A more or less coordinated motor activity usually occurring when cognition is impaired and for which the subject is usually (but not always) amnesic afterward. This often resembles a voluntary movement and may consist of an inappropriate continuation of preictal motor activity. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+ inLibrary
+ score
+
+
+
+ Automatism-motor-onset-seizure
+
+ deprecatedFrom
+ 1.0.0
+
+
+ inLibrary
+ score
+
+
+
+ Hyperkinetic-motor-seizure
+
+ inLibrary
+ score
+
+
+
+ Hyperkinetic-motor-onset-seizure
+
+ deprecatedFrom
+ 1.0.0
+
+
+ inLibrary
+ score
+
+
+
+ Epileptic-spasm-episode
+ A sudden flexion, extension, or mixed extension flexion of predominantly proximal and truncal muscles that is usually more sustained than a myoclonic movement but not as sustained as a tonic seizure. Limited forms may occur: Grimacing, head nodding, or subtle eye movements. Epileptic spasms frequently occur in clusters. Infantile spasms are the best known form, but spasms can occur at all ages. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+ inLibrary
+ score
+
+
+
+
+ Nonmotor-seizure
+ Focal or generalized seizure types in which motor activity is not prominent. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+ inLibrary
+ score
+
+
+ Behavior-arrest-nonmotor-seizure
+ Arrest (pause) of activities, freezing, immobilization, as in behavior arrest seizure. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+ inLibrary
+ score
+
+
+
+ Sensory-nonmotor-seizure
+ A perceptual experience not caused by appropriate stimuli in the external world. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+ inLibrary
+ score
+
+
+
+ Emotional-nonmotor-seizure
+ Seizures presenting with an emotion or the appearance of having an emotion as an early prominent feature, such as fear, spontaneous joy or euphoria, laughing (gelastic), or crying (dacrystic). Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+ inLibrary
+ score
+
+
+
+ Cognitive-nonmotor-seizure
+ Pertaining to thinking and higher cortical functions, such as language, spatial perception, memory, and praxis. The previous term for similar usage as a seizure type was psychic. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+ inLibrary
+ score
+
+
+
+ Autonomic-nonmotor-seizure
+ A distinct alteration of autonomic nervous system function involving cardiovascular, pupillary, gastrointestinal, sudomotor, vasomotor, and thermoregulatory functions. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+ inLibrary
+ score
+
+
+
+
+ Absence-seizure
+ Absence seizures present with a sudden cessation of activity and awareness. Absence seizures tend to occur in younger age groups, have more sudden start and termination, and they usually display less complex automatisms than do focal seizures with impaired awareness, but the distinctions are not absolute. EEG information may be required for accurate classification. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+ inLibrary
+ score
+
+
+ Typical-absence-seizure
+ A sudden onset, interruption of ongoing activities, a blank stare, possibly a brief upward deviation of the eyes. Usually the patient will be unresponsive when spoken to. Duration is a few seconds to half a minute with very rapid recovery. Although not always available, an EEG would show generalized epileptiform discharges during the event. An absence seizure is by definition a seizure of generalized onset. The word is not synonymous with a blank stare, which also can be encountered with focal onset seizures. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+ inLibrary
+ score
+
+
+
+ Atypical-absence-seizure
+ An absence seizure with changes in tone that are more pronounced than in typical absence or the onset and/or cessation is not abrupt, often associated with slow, irregular, generalized spike-wave activity. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+ inLibrary
+ score
+
+
+
+ Myoclonic-absence-seizure
+ A myoclonic absence seizure refers to an absence seizure with rhythmic three-per-second myoclonic movements, causing ratcheting abduction of the upper limbs leading to progressive arm elevation, and associated with three-per-second generalized spike-wave discharges. Duration is typically 10 to 60 s. Impairment of consciousness may not be obvious. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+ inLibrary
+ score
+
+
+
+ Eyelid-myoclonia-absence-seizure
+ Eyelid myoclonia are myoclonic jerks of the eyelids and upward deviation of the eyes, often precipitated by closing the eyes or by light. Eyelid myoclonia can be associated with absences, but also can be motor seizures without a corresponding absence, making them difficult to categorize. The 2017 classification groups them with nonmotor (absence) seizures, which may seem counterintuitive, but the myoclonia in this instance is meant to link with absence, rather than with nonmotor. Definition from ILAE 2017 Classification of Seizure Types Expanded Version
+
+ inLibrary
+ score
+
+
+
- Electrode-pops-artifact
- Are brief discharges with a very steep upslope and shallow fall that occur in all leads which include that electrode.
-
- suggestedTag
- Artifact-significance-to-recording
-
+ Episode-phase
+ The electroclinical findings (i.e., the seizure semiology and the ictal EEG) are divided in three phases: onset, propagation, and postictal.
- inLibrary
- score
+ requireChild
-
-
- Salt-bridge-artifact
- Typically occurs in 1 channel which may appear isoelectric. Only seen in bipolar montage.suggestedTag
- Artifact-significance-to-recording
+ Seizure-semiology-manifestation
+ Postictal-semiology-manifestation
+ Ictal-EEG-patternsinLibraryscore
+
+ Episode-phase-initial
+
+ inLibrary
+ score
+
+
+
+ Episode-phase-subsequent
+
+ inLibrary
+ score
+
+
+
+ Episode-phase-postictal
+
+ inLibrary
+ score
+
+
-
-
- Other-artifact
-
- requireChild
-
-
- suggestedTag
- Artifact-significance-to-recording
-
-
- inLibrary
- score
-
- #
- Free text.
-
- takesValue
-
+ Seizure-semiology-manifestation
+ Seizure semiology refers to the clinical features or signs that are observed during a seizure, such as the type of movements or behaviors exhibited by the person having the seizure, the duration of the seizure, the level of consciousness, and any associated symptoms such as aura or postictal confusion. In other words, seizure semiology describes the physical manifestations of a seizure. Semiology is described according to the ILAE Glossary of Descriptive Terminology for Ictal Semiology (Blume et al., 2001). Besides the name, the semiologic finding can also be characterized by the somatotopic modifier, laterality, body part and centricity. Uses Location-property tags.
- valueClass
- textClass
+ requireChildinLibraryscore
+
+ Semiology-motor-manifestation
+
+ inLibrary
+ score
+
+
+ Semiology-elementary-motor
+
+ inLibrary
+ score
+
+
+ Semiology-motor-tonic
+ A sustained increase in muscle contraction lasting a few seconds to minutes.
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-dystonic
+ Sustained contractions of both agonist and antagonist muscles producing athetoid or twisting movements, which, when prolonged, may produce abnormal postures.
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-epileptic-spasm
+ A sudden flexion, extension, or mixed extension flexion of predominantly proximal and truncal muscles that is usually more sustained than a myoclonic movement but not so sustained as a tonic seizure (i.e., about 1 s). Limited forms may occur: grimacing, head nodding. Frequent occurrence in clusters.
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-postural
+ Adoption of a posture that may be bilaterally symmetric or asymmetric (as in a fencing posture).
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-versive
+ A sustained, forced conjugate ocular, cephalic, and/or truncal rotation or lateral deviation from the midline.
+
+ suggestedTag
+ Body-part-location
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-clonic
+ Myoclonus that is regularly repetitive, involves the same muscle groups, at a frequency of about 2 to 3 c/s, and is prolonged. Synonym: rhythmic myoclonus .
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-myoclonic
+ Characterized by myoclonus. MYOCLONUS : sudden, brief (lower than 100 ms) involuntary single or multiple contraction(s) of muscles(s) or muscle groups of variable topography (axial, proximal limb, distal).
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-jacksonian-march
+ Term indicating spread of clonic movements through contiguous body parts unilaterally.
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-negative-myoclonus
+ Characterized by negative myoclonus. NEGATIVE MYOCLONUS: interruption of tonic muscular activity for lower than 500 ms without evidence of preceding myoclonia.
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-tonic-clonic
+ A sequence consisting of a tonic followed by a clonic phase. Variants such as clonic-tonic-clonic may be seen. Asymmetry of limb posture during the tonic phase of a GTC: one arm is rigidly extended at the elbow (often with the fist clenched tightly and flexed at the wrist), whereas the opposite arm is flexed at the elbow.
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Semiology-motor-tonic-clonic-without-figure-of-four
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-tonic-clonic-with-figure-of-four-extension-left-elbow
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-tonic-clonic-with-figure-of-four-extension-right-elbow
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+
+ Semiology-motor-astatic
+ Loss of erect posture that results from an atonic, myoclonic, or tonic mechanism. Synonym: drop attack.
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-atonic
+ Sudden loss or diminution of muscle tone without apparent preceding myoclonic or tonic event lasting greater or equal to 1 to 2 s, involving head, trunk, jaw, or limb musculature.
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-eye-blinking
+
+ suggestedTag
+ Brain-laterality
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-other-elementary-motor
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Semiology-motor-automatisms
+
+ inLibrary
+ score
+
+
+ Semiology-motor-automatisms-mimetic
+ Facial expression suggesting an emotional state, often fear.
+
+ suggestedTag
+ Episode-responsiveness
+ Episode-appearance
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-automatisms-oroalimentary
+ Lip smacking, lip pursing, chewing, licking, tooth grinding, or swallowing.
+
+ suggestedTag
+ Episode-responsiveness
+ Episode-appearance
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-automatisms-dacrystic
+ Bursts of crying.
+
+ suggestedTag
+ Episode-responsiveness
+ Episode-appearance
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-automatisms-dyspraxic
+ Inability to perform learned movements spontaneously or on command or imitation despite intact relevant motor and sensory systems and adequate comprehension and cooperation.
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-responsiveness
+ Episode-appearance
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-automatisms-manual
+ 1. Indicates principally distal components, bilateral or unilateral. 2. Fumbling, tapping, manipulating movements.
+
+ suggestedTag
+ Brain-laterality
+ Brain-centricity
+ Episode-responsiveness
+ Episode-appearance
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-automatisms-gestural
+ Semipurposive, asynchronous hand movements. Often unilateral.
+
+ suggestedTag
+ Brain-laterality
+ Episode-responsiveness
+ Episode-appearance
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-automatisms-pedal
+ 1. Indicates principally distal components, bilateral or unilateral. 2. Fumbling, tapping, manipulating movements.
+
+ suggestedTag
+ Brain-laterality
+ Brain-centricity
+ Episode-responsiveness
+ Episode-appearance
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-automatisms-hypermotor
+ 1. Involves predominantly proximal limb or axial muscles producing irregular sequential ballistic movements, such as pedaling, pelvic thrusting, thrashing, rocking movements. 2. Increase in rate of ongoing movements or inappropriately rapid performance of a movement.
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-responsiveness
+ Episode-appearance
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-automatisms-hypokinetic
+ A decrease in amplitude and/or rate or arrest of ongoing motor activity.
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-responsiveness
+ Episode-appearance
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-automatisms-gelastic
+ Bursts of laughter or giggling, usually without an appropriate affective tone.
+
+ suggestedTag
+ Episode-responsiveness
+ Episode-appearance
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-motor-other-automatisms
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Semiology-motor-behavioral-arrest
+ Interruption of ongoing motor activity or of ongoing behaviors with fixed gaze, without movement of the head or trunk (oro-alimentary and hand automatisms may continue).
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+
+ Semiology-non-motor-manifestation
+
+ inLibrary
+ score
+
+
+ Semiology-sensory
+
+ inLibrary
+ score
+
+
+ Semiology-sensory-headache
+ Headache occurring in close temporal proximity to the seizure or as the sole seizure manifestation.
+
+ suggestedTag
+ Brain-laterality
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-sensory-visual
+ Flashing or flickering lights, spots, simple patterns, scotomata, or amaurosis.
+
+ suggestedTag
+ Brain-laterality
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-sensory-auditory
+ Buzzing, drumming sounds or single tones.
+
+ suggestedTag
+ Brain-laterality
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-sensory-olfactory
+
+ suggestedTag
+ Body-part-location
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-sensory-gustatory
+ Taste sensations including acidic, bitter, salty, sweet, or metallic.
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-sensory-epigastric
+ Abdominal discomfort including nausea, emptiness, tightness, churning, butterflies, malaise, pain, and hunger; sensation may rise to chest or throat. Some phenomena may reflect ictal autonomic dysfunction.
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-sensory-somatosensory
+ Tingling, numbness, electric-shock sensation, sense of movement or desire to move.
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-sensory-painful
+ Peripheral (lateralized/bilateral), cephalic, abdominal.
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-sensory-autonomic-sensation
+ A sensation consistent with involvement of the autonomic nervous system, including cardiovascular, gastrointestinal, sudomotor, vasomotor, and thermoregulatory functions. (Thus autonomic aura; cf. autonomic events 3.0).
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-sensory-other
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Semiology-experiential
+
+ inLibrary
+ score
+
+
+ Semiology-experiential-affective-emotional
+ Components include fear, depression, joy, and (rarely) anger.
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-experiential-hallucinatory
+ Composite perceptions without corresponding external stimuli involving visual, auditory, somatosensory, olfactory, and/or gustatory phenomena. Example: hearing and seeing people talking.
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-experiential-illusory
+ An alteration of actual percepts involving the visual, auditory, somatosensory, olfactory, or gustatory systems.
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-experiential-mnemonic
+ Components that reflect ictal dysmnesia such as feelings of familiarity (deja-vu) and unfamiliarity (jamais-vu).
+
+ inLibrary
+ score
+
+
+ Semiology-experiential-mnemonic-Deja-vu
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-experiential-mnemonic-Jamais-vu
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+
+ Semiology-experiential-other
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Semiology-dyscognitive
+ The term describes events in which (1) disturbance of cognition is the predominant or most apparent feature, and (2a) two or more of the following components are involved, or (2b) involvement of such components remains undetermined. Otherwise, use the more specific term (e.g., mnemonic experiential seizure or hallucinatory experiential seizure). Components of cognition: ++ perception: symbolic conception of sensory information ++ attention: appropriate selection of a principal perception or task ++ emotion: appropriate affective significance of a perception ++ memory: ability to store and retrieve percepts or concepts ++ executive function: anticipation, selection, monitoring of consequences, and initiation of motor activity including praxis, speech.
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-language-related
+
+ inLibrary
+ score
+
+
+ Semiology-language-related-vocalization
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-language-related-verbalization
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-language-related-dysphasia
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-language-related-aphasia
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-language-related-other
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Semiology-autonomic
+
+ inLibrary
+ score
+
+
+ Semiology-autonomic-pupillary
+ Mydriasis, miosis (either bilateral or unilateral).
+
+ suggestedTag
+ Brain-laterality
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-autonomic-hypersalivation
+ Increase in production of saliva leading to uncontrollable drooling
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-autonomic-respiratory-apnoeic
+ subjective shortness of breath, hyperventilation, stridor, coughing, choking, apnea, oxygen desaturation, neurogenic pulmonary edema.
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-autonomic-cardiovascular
+ Modifications of heart rate (tachycardia, bradycardia), cardiac arrhythmias (such as sinus arrhythmia, sinus arrest, supraventricular tachycardia, atrial premature depolarizations, ventricular premature depolarizations, atrio-ventricular block, bundle branch block, atrioventricular nodal escape rhythm, asystole).
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-autonomic-gastrointestinal
+ Nausea, eructation, vomiting, retching, abdominal sensations, abdominal pain, flatulence, spitting, diarrhea.
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-autonomic-urinary-incontinence
+ urinary urge (intense urinary urge at the beginning of seizures), urinary incontinence, ictal urination (rare symptom of partial seizures without loss of consciousness).
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-autonomic-genital
+ Sexual auras (erotic thoughts and feelings, sexual arousal and orgasm). Genital auras (unpleasant, sometimes painful, frightening or emotionally neutral somatosensory sensations in the genitals that can be accompanied by ictal orgasm). Sexual automatisms (hypermotor movements consisting of writhing, thrusting, rhythmic movements of the pelvis, arms and legs, sometimes associated with picking and rhythmic manipulation of the groin or genitalia, exhibitionism and masturbation).
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-autonomic-vasomotor
+ Flushing or pallor (may be accompanied by feelings of warmth, cold and pain).
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-autonomic-sudomotor
+ Sweating and piloerection (may be accompanied by feelings of warmth, cold and pain).
+
+ suggestedTag
+ Brain-laterality
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-autonomic-thermoregulatory
+ Hyperthermia, fever.
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Semiology-autonomic-other
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+
+ Semiology-manifestation-other
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
-
-
-
- Polygraphic-channel-finding
- Changes observed in polygraphic channels can be scored: EOG, Respiration, ECG, EMG, other polygraphic channel (+ free text), and their significance logged (normal, abnormal, no definite abnormality).
-
- requireChild
-
-
- inLibrary
- score
-
-
- EOG-channel-finding
- ElectroOculoGraphy.
-
- suggestedTag
- Finding-significance-to-recording
-
-
- inLibrary
- score
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
+ Postictal-semiology-manifestation
- inLibrary
- score
+ requireChild
-
-
-
- Respiration-channel-finding
-
- suggestedTag
- Finding-significance-to-recording
-
-
- inLibrary
- score
-
-
- Respiration-oxygen-saturationinLibraryscore
- #
+ Postictal-semiology-unconscious
- takesValue
+ suggestedTag
+ Episode-event-count
- valueClass
- numericClass
+ inLibrary
+ score
+
+
+
+ Postictal-semiology-quick-recovery-of-consciousness
+ Quick recovery of awareness and responsiveness.
+
+ suggestedTag
+ Episode-event-countinLibraryscore
-
-
- Respiration-feature
-
- inLibrary
- score
-
- Apnoe-respiration
- Add duration (range in seconds) and comments in free text.
+ Postictal-semiology-aphasia-or-dysphasia
+ Impaired communication involving language without dysfunction of relevant primary motor or sensory pathways, manifested as impaired comprehension, anomia, parahasic errors or a combination of these.
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Postictal-semiology-behavioral-change
+ Occurring immediately after a aseizure. Including psychosis, hypomanina, obsessive-compulsive behavior.
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Postictal-semiology-hemianopia
+ Postictal visual loss in a a hemi field.
+
+ suggestedTag
+ Brain-laterality
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Postictal-semiology-impaired-cognition
+ Decreased Cognitive performance involving one or more of perception, attention, emotion, memory, execution, praxis, speech.
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Postictal-semiology-dysphoria
+ Depression, irritability, euphoric mood, fear, anxiety.
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Postictal-semiology-headache
+ Headache with features of tension-type or migraine headache that develops within 3 h following the seizure and resolves within 72 h after seizure.
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Postictal-semiology-nose-wiping
+ Noes-wiping usually within 60 sec of seizure offset, usually with the hand ipsilateral to the seizure onset.
+
+ suggestedTag
+ Brain-laterality
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Postictal-semiology-anterograde-amnesia
+ Impaired ability to remember new material.
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Postictal-semiology-retrograde-amnesia
+ Impaired ability to recall previously remember material.
+
+ suggestedTag
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Postictal-semiology-paresis
+ Todds palsy. Any unilateral postictal dysfunction relating to motor, language, sensory and/or integrative functions.
+
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricity
+ Episode-event-count
+
+
+ inLibrary
+ score
+
+
+
+ Postictal-semiology-sleep
+ Invincible need to sleep after a seizure.
+
+ inLibrary
+ score
+
+
+
+ Postictal-semiology-unilateral-myoclonic-jerks
+ unilateral motor phenomena, other then specified, occurring in postictal phase.
+
+ inLibrary
+ score
+
+
+
+ Postictal-semiology-other-unilateral-motor-phenomena
+
+ requireChild
+ inLibraryscore
@@ -8544,57 +8253,44 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
+
+
+ Polygraphic-channel-relation-to-episode
+
+ requireChild
+
+
+ suggestedTag
+ Property-not-possible-to-determine
+
+
+ inLibrary
+ score
+
- Hypopnea-respiration
- Add duration (range in seconds) and comments in free text
+ Polygraphic-channel-cause-to-episodeinLibraryscore
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
- Apnea-hypopnea-index-respiration
- Events/h. Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency
-
- requireChild
-
+ Polygraphic-channel-consequence-of-episodeinLibraryscore
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
+
+
+ Ictal-EEG-patterns
+
+ inLibrary
+ score
+
- Periodic-respiration
+ Ictal-EEG-patterns-obscured-by-artifacts
+ The interpretation of the EEG is not possible due to artifacts.inLibraryscore
@@ -8616,100 +8312,165 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Tachypnea-respiration
- Cycles/min. Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency
+ Ictal-EEG-activity
- requireChild
+ suggestedTag
+ Polyspikes-morphology
+ Fast-spike-activity-morphology
+ Low-voltage-fast-activity-morphology
+ Polysharp-waves-morphology
+ Spike-and-slow-wave-morphology
+ Polyspike-and-slow-wave-morphology
+ Sharp-and-slow-wave-morphology
+ Rhythmic-activity-morphology
+ Slow-wave-large-amplitude-morphology
+ Irregular-delta-or-theta-activity-morphology
+ Electrodecremental-change-morphology
+ DC-shift-morphology
+ Disappearance-of-ongoing-activity-morphology
+ Brain-laterality
+ Brain-region
+ Sensors
+ Source-analysis-laterality
+ Source-analysis-brain-region
+ Episode-event-countinLibraryscore
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
- Other-respiration-feature
+ Postictal-EEG-activity
- requireChild
+ suggestedTag
+ Brain-laterality
+ Body-part-location
+ Brain-centricityinLibraryscore
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
-
- ECG-channel-finding
- Electrocardiography.
-
- suggestedTag
- Finding-significance-to-recording
-
-
- inLibrary
- score
-
- ECG-QT-period
+ Episode-time-context-property
+ Additional clinically relevant features related to episodes can be scored under timing and context. If needed, episode duration can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Temporal-value/Duration.inLibraryscore
- #
- Free text.
+ Episode-consciousness
- takesValue
+ requireChild
- valueClass
- textClass
+ suggestedTag
+ Property-not-possible-to-determineinLibraryscore
+
+ Episode-consciousness-not-tested
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Episode-consciousness-affected
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Episode-consciousness-mildly-affected
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Episode-consciousness-not-affected
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
-
-
- ECG-feature
-
- inLibrary
- score
-
- ECG-sinus-rhythm
- Normal rhythm. Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency
+ Episode-awareness
+
+ suggestedTag
+ Property-not-possible-to-determine
+ Property-exists
+ Property-absence
+ inLibraryscore
@@ -8731,88 +8492,116 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- ECG-arrhythmia
+ Clinical-EEG-temporal-relationship
+
+ suggestedTag
+ Property-not-possible-to-determine
+ inLibraryscore
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
+ Clinical-start-followed-EEG
+ Clinical start, followed by EEG start by X seconds.inLibraryscore
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ timeUnits
+
+
+ inLibrary
+ score
+
+
-
-
- ECG-asystolia
- Add duration (range in seconds) and comments in free text.
-
- inLibrary
- score
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
+ EEG-start-followed-clinical
+ EEG start, followed by clinical start by X seconds.inLibraryscore
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ timeUnits
+
+
+ inLibrary
+ score
+
+
-
-
- ECG-bradycardia
- Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency
-
- inLibrary
- score
-
- #
- Free text.
-
- takesValue
-
+ Simultaneous-start-clinical-EEG
- valueClass
- textClass
+ inLibrary
+ score
+
+
+ Clinical-EEG-temporal-relationship-notes
+ Clinical notes to annotate the clinical-EEG temporal relationship.inLibraryscore
+
+ #
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
- ECG-extrasystole
+ Episode-event-count
+ Number of stereotypical episodes during the recording.
+
+ suggestedTag
+ Property-not-possible-to-determine
+ inLibraryscore#
- Free text.takesValuevalueClass
- textClass
+ numericClassinLibrary
@@ -8821,44 +8610,86 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- ECG-ventricular-premature-depolarization
- Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency
+ State-episode-start
+ State at the start of the episode.
+
+ requireChild
+
+
+ suggestedTag
+ Property-not-possible-to-determine
+ inLibraryscore
- #
- Free text.
-
- takesValue
-
+ Episode-start-from-sleep
- valueClass
- textClass
+ inLibrary
+ score
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Episode-start-from-awakeinLibraryscore
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
- ECG-tachycardia
- Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency
+ Episode-postictal-phase
+
+ suggestedTag
+ Property-not-possible-to-determine
+ inLibraryscore#
- Free text.takesValuevalueClass
- textClass
+ numericClass
+
+
+ unitClass
+ timeUnitsinLibrary
@@ -8867,9 +8698,12 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Other-ECG-feature
+ Episode-prodrome
+ Prodrome is a preictal phenomenon, and it is defined as a subjective or objective clinical alteration (e.g., ill-localized sensation or agitation) that heralds the onset of an epileptic seizure but does not form part of it (Blume et al., 2001). Therefore, prodrome should be distinguished from aura (which is an ictal phenomenon).
- requireChild
+ suggestedTag
+ Property-exists
+ Property-absenceinLibrary
@@ -8891,27 +8725,13 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
-
-
-
- EMG-channel-finding
- electromyography
-
- suggestedTag
- Finding-significance-to-recording
-
-
- inLibrary
- score
-
-
- EMG-muscle-side
-
- inLibrary
- score
-
- EMG-left-muscle
+ Episode-tongue-biting
+
+ suggestedTag
+ Property-exists
+ Property-absence
+ inLibraryscore
@@ -8933,86 +8753,96 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- EMG-right-muscle
+ Episode-responsiveness
+
+ requireChild
+
+
+ suggestedTag
+ Property-not-possible-to-determine
+ inLibraryscore
- #
- Free text.
-
- takesValue
-
+ Episode-responsiveness-preserved
- valueClass
- textClass
+ inLibrary
+ score
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Episode-responsiveness-affectedinLibraryscore
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
- EMG-bilateral-muscle
+ Episode-appearance
+
+ requireChild
+ inLibraryscore
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
+ Episode-appearance-interactiveinLibraryscore
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
-
-
-
- EMG-muscle-name
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
-
- EMG-feature
-
- inLibrary
- score
-
-
- EMG-myoclonus
-
- inLibrary
- score
-
- Negative-myoclonus
+ Episode-appearance-spontaneousinLibraryscore
@@ -9033,8 +8863,19 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
+
+
+ Seizure-dynamics
+ Spatiotemporal dynamics can be scored (evolution in morphology; evolution in frequency; evolution in location).
+
+ requireChild
+
+
+ inLibrary
+ score
+
- EMG-myoclonus-rhythmic
+ Seizure-dynamics-evolution-morphologyinLibraryscore
@@ -9056,7 +8897,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- EMG-myoclonus-arrhythmic
+ Seizure-dynamics-evolution-frequencyinLibraryscore
@@ -9078,7 +8919,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- EMG-myoclonus-synchronous
+ Seizure-dynamics-evolution-locationinLibraryscore
@@ -9100,7 +8941,8 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- EMG-myoclonus-asynchronous
+ Seizure-dynamics-not-possible-to-determine
+ Not possible to determine.inLibraryscore
@@ -9122,16 +8964,29 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
+
+
+
+ Other-finding-property
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Artifact-significance-to-recording
+ It is important to score the significance of the described artifacts: recording is not interpretable, recording of reduced diagnostic value, does not interfere with the interpretation of the recording.
+
+ requireChild
+
+
+ inLibrary
+ score
+
- EMG-PLMS
- Periodic limb movements in sleep.
-
- inLibrary
- score
-
-
-
- EMG-spasm
+ Recording-not-interpretable-due-to-artifactinLibraryscore
@@ -9153,7 +9008,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- EMG-tonic-contraction
+ Recording-of-reduced-diagnostic-value-due-to-artifactinLibraryscore
@@ -9175,64 +9030,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- EMG-asymmetric-activation
-
- requireChild
-
-
- inLibrary
- score
-
-
- EMG-asymmetric-activation-left-first
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
-
- EMG-asymmetric-activation-right-first
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
-
-
- Other-EMG-features
-
- requireChild
-
+ Artifact-does-not-interfere-recordinginLibraryscore
@@ -9254,67 +9052,18 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
-
-
- Other-polygraphic-channel
-
- requireChild
-
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
-
-
- Finding-property
- Descriptive element similar to main HED /Property. Something that pertains to a thing. A characteristic of some entity. A quality or feature regarded as a characteristic or inherent part of someone or something. HED attributes are adjectives or adverbs.
-
- requireChild
-
-
- inLibrary
- score
-
-
- Signal-morphology-property
-
- requireChild
-
-
- inLibrary
- score
-
- Rhythmic-activity-morphology
- EEG activity consisting of a sequence of waves approximately constant period.
+ Finding-significance-to-recording
+ Significance of finding. When normal/abnormal could be labeled with base schema Normal/Abnormal tags.
- inLibrary
- score
+ requireChild
-
- Delta-activity-morphology
- EEG rhythm in the delta (under 4 Hz) range that does not belong to the posterior dominant rhythm (scored under other organized rhythms).
-
- suggestedTag
- Finding-frequency
- Finding-amplitude
-
+
+ inLibrary
+ score
+
+
+ Finding-no-definite-abnormalityinLibraryscore
@@ -9336,13 +9085,8 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Theta-activity-morphology
- EEG rhythm in the theta (4-8 Hz) range that does not belong to the posterior dominant rhythm (scored under other organized rhythm).
-
- suggestedTag
- Finding-frequency
- Finding-amplitude
-
+ Finding-significance-not-possible-to-determine
+ Not possible to determine.inLibraryscore
@@ -9363,18 +9107,76 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
+
+
+ Finding-frequency
+ Value in Hz (number) typed in.
+
+ inLibrary
+ score
+
- Alpha-activity-morphology
- EEG rhythm in the alpha range (8-13 Hz) which is considered part of the background (ongoing) activity but does not fulfill the criteria of the posterior dominant rhythm (alpha rhythm).
+ #
- suggestedTag
- Finding-frequency
- Finding-amplitude
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ frequencyUnits
+
+
+ inLibrary
+ score
+
+
+
+
+ Finding-amplitude
+ Value in microvolts (number) typed in.
+
+ inLibrary
+ score
+
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ electricPotentialUnitsinLibraryscore
+
+
+
+ Finding-amplitude-asymmetry
+ For posterior dominant rhythm: a difference in amplitude between the homologous area on opposite sides of the head that consistently exceeds 50 percent. When symmetrical could be labeled with base schema Symmetrical tag. For sleep: Absence or consistently marked amplitude asymmetry (greater than 50 percent) of a normal sleep graphoelement.
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Finding-amplitude-asymmetry-lower-left
+ Amplitude lower on the left side.
+
+ inLibrary
+ score
+ #Free text.
@@ -9392,13 +9194,8 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Beta-activity-morphology
- EEG rhythm between 14 and 40 Hz, which is considered part of the background (ongoing) activity but does not fulfill the criteria of the posterior dominant rhythm. Most characteristically: a rhythm from 14 to 40 Hz recorded over the fronto-central regions of the head during wakefulness. Amplitude of the beta rhythm varies but is mostly below 30 microV. Other beta rhythms are most prominent in other locations or are diffuse.
-
- suggestedTag
- Finding-frequency
- Finding-amplitude
-
+ Finding-amplitude-asymmetry-lower-right
+ Amplitude lower on the right side.inLibraryscore
@@ -9420,12 +9217,8 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Gamma-activity-morphology
-
- suggestedTag
- Finding-frequency
- Finding-amplitude
-
+ Finding-amplitude-asymmetry-not-possible-to-determine
+ Not possible to determine.inLibraryscore
@@ -9448,8 +9241,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Spike-morphology
- A transient, clearly distinguished from background activity, with pointed peak at a conventional paper speed or time scale and duration from 20 to under 70 ms, i.e. 1/50-1/15 s approximately. Main component is generally negative relative to other areas. Amplitude varies.
+ Finding-stopped-byinLibraryscore
@@ -9471,8 +9263,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Spike-and-slow-wave-morphology
- A pattern consisting of a spike followed by a slow wave.
+ Finding-triggered-byinLibraryscore
@@ -9494,8 +9285,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Runs-of-rapid-spikes-morphology
- Bursts of spike discharges at a rate from 10 to 25/sec (in most cases somewhat irregular). The bursts last more than 2 seconds (usually 2 to 10 seconds) and it is typically seen in sleep. Synonyms: rhythmic spikes, generalized paroxysmal fast activity, fast paroxysmal rhythms, grand mal discharge, fast beta activity.
+ Finding-unmodifiedinLibraryscore
@@ -9517,45 +9307,185 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Polyspikes-morphology
- Two or more consecutive spikes.
+ Property-not-possible-to-determine
+ Not possible to determine.
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Property-exists
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Property-absence
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+
+ Interictal-finding
+ EEG pattern / transient that is distinguished form the background activity, considered abnormal, but is not recorded during ictal period (seizure) or postictal period; the presence of an interictal finding does not necessarily imply that the patient has epilepsy.
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Epileptiform-interictal-activity
+
+ suggestedTag
+ Spike-morphology
+ Spike-and-slow-wave-morphology
+ Runs-of-rapid-spikes-morphology
+ Polyspikes-morphology
+ Polyspike-and-slow-wave-morphology
+ Sharp-wave-morphology
+ Sharp-and-slow-wave-morphology
+ Slow-sharp-wave-morphology
+ High-frequency-oscillation-morphology
+ Hypsarrhythmia-classic-morphology
+ Hypsarrhythmia-modified-morphology
+ Brain-laterality
+ Brain-region
+ Sensors
+ Finding-propagation
+ Multifocal-finding
+ Appearance-mode
+ Discharge-pattern
+ Finding-incidence
+
+
+ inLibrary
+ score
+
+
+
+ Abnormal-interictal-rhythmic-activity
+
+ suggestedTag
+ Rhythmic-activity-morphology
+ Polymorphic-delta-activity-morphology
+ Frontal-intermittent-rhythmic-delta-activity-morphology
+ Occipital-intermittent-rhythmic-delta-activity-morphology
+ Temporal-intermittent-rhythmic-delta-activity-morphology
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+ Finding-incidence
+
+
+ inLibrary
+ score
+
+
+
+ Interictal-special-patterns
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Interictal-periodic-discharges
+ Periodic discharge not further specified (PDs).
+
+ suggestedTag
+ Periodic-discharge-morphology
+ Brain-laterality
+ Brain-region
+ Sensors
+ Periodic-discharge-time-related-features
+ inLibraryscore
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
+ Generalized-periodic-discharges
+ GPDs.inLibraryscore
-
-
- Polyspike-and-slow-wave-morphology
- Two or more consecutive spikes associated with one or more slow waves.
-
- inLibrary
- score
-
- #
- Free text.
+ Lateralized-periodic-discharges
+ LPDs.
- takesValue
+ inLibrary
+ score
+
+
+ Bilateral-independent-periodic-discharges
+ BIPDs.
- valueClass
- textClass
+ inLibrary
+ score
+
+
+ Multifocal-periodic-discharges
+ MfPDs.inLibraryscore
@@ -9563,1549 +9493,1230 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Sharp-wave-morphology
- A transient clearly distinguished from background activity, with pointed peak at a conventional paper speed or time scale, and duration of 70-200 ms, i.e. over 1/4-1/5 s approximately. Main component is generally negative relative to other areas. Amplitude varies.
+ Extreme-delta-brush
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+ inLibraryscore
+
+
+
+
+ Item
+ An independently existing thing (living or nonliving).
+
+ extensionAllowed
+
+
+ Biological-item
+ An entity that is biological, that is related to living organisms.
+
+ Anatomical-item
+ A biological structure, system, fluid or other substance excluding single molecular entities.
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
+ Body
+ The biological structure representing an organism.
+
+
+ Body-part
+ Any part of an organism.
+
+ Head
+ The upper part of the human body, or the front or upper part of the body of an animal, typically separated from the rest of the body by a neck, and containing the brain, mouth, and sense organs.
+
+ Ear
+ A sense organ needed for the detection of sound and for establishing balance.
+
+
+ Face
+ The anterior portion of the head extending from the forehead to the chin and ear to ear. The facial structures contain the eyes, nose and mouth, cheeks and jaws.
+
+ Cheek
+ The fleshy part of the face bounded by the eyes, nose, ear, and jaw line.
+
+
+ Chin
+ The part of the face below the lower lip and including the protruding part of the lower jaw.
+
+
+ Eye
+ The organ of sight or vision.
+
+
+ Eyebrow
+ The arched strip of hair on the bony ridge above each eye socket.
+
+
+ Forehead
+ The part of the face between the eyebrows and the normal hairline.
+
+
+ Lip
+ Fleshy fold which surrounds the opening of the mouth.
+
+
+ Mouth
+ The proximal portion of the digestive tract, containing the oral cavity and bounded by the oral opening.
+
+
+ Nose
+ A structure of special sense serving as an organ of the sense of smell and as an entrance to the respiratory tract.
+
+
+ Teeth
+ The hard bonelike structures in the jaws. A collection of teeth arranged in some pattern in the mouth or other part of the body.
+
+
+
+ Hair
+ The filamentous outgrowth of the epidermis.
+
+
+
+ Lower-extremity
+ Refers to the whole inferior limb (leg and/or foot).
+
+ Ankle
+ A gliding joint between the distal ends of the tibia and fibula and the proximal end of the talus.
+
+
+ Calf
+ The fleshy part at the back of the leg below the knee.
+
+
+ Foot
+ The structure found below the ankle joint required for locomotion.
+
+ Big-toe
+ The largest toe on the inner side of the foot.
+
+
+ Heel
+ The back of the foot below the ankle.
+
+
+ Instep
+ The part of the foot between the ball and the heel on the inner side.
+
+
+ Little-toe
+ The smallest toe located on the outer side of the foot.
+
+
+ Toes
+ The terminal digits of the foot.
+
+
+
+ Knee
+ A joint connecting the lower part of the femur with the upper part of the tibia.
+
+
+ Shin
+ Front part of the leg below the knee.
+
+
+ Thigh
+ Upper part of the leg between hip and knee.
+
+
+
+ Torso
+ The body excluding the head and neck and limbs.
+
+ Buttocks
+ The round fleshy parts that form the lower rear area of a human trunk.
+
+
+ Gentalia
+ The external organs of reproduction.
+
+ deprecatedFrom
+ 8.1.0
+
+
+
+ Hip
+ The lateral prominence of the pelvis from the waist to the thigh.
+
+
+ Torso-back
+ The rear surface of the human body from the shoulders to the hips.
+
+
+ Torso-chest
+ The anterior side of the thorax from the neck to the abdomen.
+
+
+ Waist
+ The abdominal circumference at the navel.
+
+
+
+ Upper-extremity
+ Refers to the whole superior limb (shoulder, arm, elbow, wrist, hand).
+
+ Elbow
+ A type of hinge joint located between the forearm and upper arm.
+
+
+ Forearm
+ Lower part of the arm between the elbow and wrist.
+
+
+ Hand
+ The distal portion of the upper extremity. It consists of the carpus, metacarpus, and digits.
+
+ Finger
+ Any of the digits of the hand.
+
+ Index-finger
+ The second finger from the radial side of the hand, next to the thumb.
+
+
+ Little-finger
+ The fifth and smallest finger from the radial side of the hand.
+
+
+ Middle-finger
+ The middle or third finger from the radial side of the hand.
+
+
+ Ring-finger
+ The fourth finger from the radial side of the hand.
+
+
+ Thumb
+ The thick and short hand digit which is next to the index finger in humans.
+
+
+
+ Knuckles
+ A part of a finger at a joint where the bone is near the surface, especially where the finger joins the hand.
+
+
+ Palm
+ The part of the inner surface of the hand that extends from the wrist to the bases of the fingers.
+
+
+
+ Shoulder
+ Joint attaching upper arm to trunk.
+
+
+ Upper-arm
+ Portion of arm between shoulder and elbow.
+
+
+ Wrist
+ A joint between the distal end of the radius and the proximal row of carpal bones.
+
+
- Sharp-and-slow-wave-morphology
- A sequence of a sharp wave and a slow wave.
-
- inLibrary
- score
-
+ Organism
+ A living entity, more specifically a biological entity that consists of one or more cells and is capable of genomic replication (independently or not).
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
+ Animal
+ A living organism that has membranous cell walls, requires oxygen and organic foods, and is capable of voluntary movement.
-
-
- Slow-sharp-wave-morphology
- A transient that bears all the characteristics of a sharp-wave, but exceeds 200 ms. Synonym: blunted sharp wave.
-
- inLibrary
- score
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
+ Human
+ The bipedal primate mammal Homo sapiens.
-
-
- High-frequency-oscillation-morphology
- HFO.
-
- inLibrary
- score
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
+ Plant
+ Any living organism that typically synthesizes its food from inorganic substances and possesses cellulose cell walls.
+
+
+ Language-item
+ An entity related to a systematic means of communicating by the use of sounds, symbols, or gestures.
+
+ suggestedTag
+ Sensory-presentation
+
- Hypsarrhythmia-classic-morphology
- Abnormal interictal high amplitude waves and a background of irregular spikes.
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
+ Character
+ A mark or symbol used in writing.
- Hypsarrhythmia-modified-morphology
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
+ Clause
+ A unit of grammatical organization next below the sentence in rank, usually consisting of a subject and predicate.
- Fast-spike-activity-morphology
- A burst consisting of a sequence of spikes. Duration greater than 1 s. Frequency at least in the alpha range.
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
+ Glyph
+ A hieroglyphic character, symbol, or pictograph.
- Low-voltage-fast-activity-morphology
- Refers to the fast, and often recruiting activity which can be recorded at the onset of an ictal discharge, particularly in invasive EEG recording of a seizure.
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
+ Nonword
+ A group of letters or speech sounds that looks or sounds like a word but that is not accepted as such by native speakers.
- Polysharp-waves-morphology
- A sequence of two or more sharp-waves.
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
+ Paragraph
+ A distinct section of a piece of writing, usually dealing with a single theme.
- Slow-wave-large-amplitude-morphology
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
+ Phoneme
+ A speech sound that is distinguished by the speakers of a particular language.
- Irregular-delta-or-theta-activity-morphology
- EEG activity consisting of repetitive waves of inconsistent wave-duration but in delta and/or theta rang (greater than 125 ms).
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
+ Phrase
+ A phrase is a group of words functioning as a single unit in the syntax of a sentence.
+
+
+ Sentence
+ A set of words that is complete in itself, conveying a statement, question, exclamation, or command and typically containing an explicit or implied subject and a predicate containing a finite verb.
- Electrodecremental-change-morphology
- Sudden desynchronization of electrical activity.
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
+ Syllable
+ A unit of spoken language larger than a phoneme.
- DC-shift-morphology
- Shift of negative polarity of the direct current recordings, during seizures.
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
+ Textblock
+ A block of text.
- Disappearance-of-ongoing-activity-morphology
- Disappearance of the EEG activity that preceded the ictal event but still remnants of background activity (thus not enough to name it electrodecremental change).
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
+ Word
+ A word is the smallest free form (an item that may be expressed in isolation with semantic or pragmatic content) in a language.
+
+
+ Object
+ Something perceptible by one or more of the senses, especially by vision or touch. A material thing.
+
+ suggestedTag
+ Sensory-presentation
+
- Polymorphic-delta-activity-morphology
- EEG activity consisting of waves in the delta range (over 250 ms duration for each wave) but of different morphology.
-
- inLibrary
- score
-
+ Geometric-object
+ An object or a representation that has structure and topology in space.
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
+ 2D-shape
+ A planar, two-dimensional shape.
+
+ Arrow
+ A shape with a pointed end indicating direction.
+
+
+ Clockface
+ The dial face of a clock. A location identifier based on clockface numbering or anatomic subregion.
+
+
+ Cross
+ A figure or mark formed by two intersecting lines crossing at their midpoints.
+
+
+ Dash
+ A horizontal stroke in writing or printing to mark a pause or break in sense or to represent omitted letters or words.
+
+
+ Ellipse
+ A closed plane curve resulting from the intersection of a circular cone and a plane cutting completely through it, especially a plane not parallel to the base.
+
+ Circle
+ A ring-shaped structure with every point equidistant from the center.
+
+
+
+ Rectangle
+ A parallelogram with four right angles.
+
+ Square
+ A square is a special rectangle with four equal sides.
+
+
+
+ Single-point
+ A point is a geometric entity that is located in a zero-dimensional spatial region and whose position is defined by its coordinates in some coordinate system.
+
+
+ Star
+ A conventional or stylized representation of a star, typically one having five or more points.
+
+
+ Triangle
+ A three-sided polygon.
+
-
-
- Frontal-intermittent-rhythmic-delta-activity-morphology
- Frontal intermittent rhythmic delta activity (FIRDA). Fairly regular or approximately sinusoidal waves, mostly occurring in bursts at 1.5-2.5 Hz over the frontal areas of one or both sides of the head. Comment: most commonly associated with unspecified encephalopathy, in adults.
-
- inLibrary
- score
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
+ 3D-shape
+ A geometric three-dimensional shape.
+
+ Box
+ A square or rectangular vessel, usually made of cardboard or plastic.
+
+ Cube
+ A solid or semi-solid in the shape of a three dimensional square.
+
+
+
+ Cone
+ A shape whose base is a circle and whose sides taper up to a point.
+
+
+ Cylinder
+ A surface formed by circles of a given radius that are contained in a plane perpendicular to a given axis, whose centers align on the axis.
+
+
+ Ellipsoid
+ A closed plane curve resulting from the intersection of a circular cone and a plane cutting completely through it, especially a plane not parallel to the base.
+
+ Sphere
+ A solid or hollow three-dimensional object bounded by a closed surface such that every point on the surface is equidistant from the center.
+
+
+
+ Pyramid
+ A polyhedron of which one face is a polygon of any number of sides, and the other faces are triangles with a common vertex.
+
+
+
+ Pattern
+ An arrangement of objects, facts, behaviors, or other things which have scientific, mathematical, geometric, statistical, or other meaning.
+
+ Dots
+ A small round mark or spot.
+
+
+ LED-pattern
+ A pattern created by lighting selected members of a fixed light emitting diode array.
+
- Occipital-intermittent-rhythmic-delta-activity-morphology
- Occipital intermittent rhythmic delta activity (OIRDA). Fairly regular or approximately sinusoidal waves, mostly occurring in bursts at 2-3 Hz over the occipital or posterior head regions of one or both sides of the head. Frequently blocked or attenuated by opening the eyes. Comment: most commonly associated with unspecified encephalopathy, in children.
-
- inLibrary
- score
-
+ Ingestible-object
+ Something that can be taken into the body by the mouth for digestion or absorption.
+
+
+ Man-made-object
+ Something constructed by human means.
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
+ Building
+ A structure that has a roof and walls and stands more or less permanently in one place.
+
+ Attic
+ A room or a space immediately below the roof of a building.
+
+
+ Basement
+ The part of a building that is wholly or partly below ground level.
+
+
+ Entrance
+ The means or place of entry.
+
+
+ Roof
+ A roof is the covering on the uppermost part of a building which provides protection from animals and weather, notably rain, but also heat, wind and sunlight.
+
+
+ Room
+ An area within a building enclosed by walls and floor and ceiling.
+
-
-
- Temporal-intermittent-rhythmic-delta-activity-morphology
- Temporal intermittent rhythmic delta activity (TIRDA). Fairly regular or approximately sinusoidal waves, mostly occurring in bursts at over the temporal areas of one side of the head. Comment: most commonly associated with temporal lobe epilepsy.
-
- inLibrary
- score
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
+ Clothing
+ A covering designed to be worn on the body.
-
-
- Periodic-discharges-morphology
- Periodic discharges not further specified (PDs).
-
- requireChild
-
-
- inLibrary
- score
-
- Periodic-discharges-superimposed-activity
-
- requireChild
-
-
- suggestedTag
- Property-not-possible-to-determine
-
-
- inLibrary
- score
-
+ Device
+ An object contrived for a specific purpose.
- Periodic-discharges-fast-superimposed-activity
-
- suggestedTag
- Finding-frequency
-
-
- inLibrary
- score
-
+ Assistive-device
+ A device that help an individual accomplish a task.
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
+ Glasses
+ Frames with lenses worn in front of the eye for vision correction, eye protection, or protection from UV rays.
+
+
+ Writing-device
+ A device used for writing.
+
+ Pen
+ A common writing instrument used to apply ink to a surface for writing or drawing.
+
+
+ Pencil
+ An implement for writing or drawing that is constructed of a narrow solid pigment core in a protective casing that prevents the core from being broken or marking the hand.
+
+
+
+
+ Computing-device
+ An electronic device which take inputs and processes results from the inputs.
+
+ Cellphone
+ A telephone with access to a cellular radio system so it can be used over a wide area, without a physical connection to a network.
+
+
+ Desktop-computer
+ A computer suitable for use at an ordinary desk.
+
+
+ Laptop-computer
+ A computer that is portable and suitable for use while traveling.
+
+
+ Tablet-computer
+ A small portable computer that accepts input directly on to its screen rather than via a keyboard or mouse.
+
+
+
+ Engine
+ A motor is a machine designed to convert one or more forms of energy into mechanical energy.
+
+
+ IO-device
+ Hardware used by a human (or other system) to communicate with a computer.
+
+ Input-device
+ A piece of equipment used to provide data and control signals to an information processing system such as a computer or information appliance.
+
+ Computer-mouse
+ A hand-held pointing device that detects two-dimensional motion relative to a surface.
+
+ Mouse-button
+ An electric switch on a computer mouse which can be pressed or clicked to select or interact with an element of a graphical user interface.
+
+
+ Scroll-wheel
+ A scroll wheel or mouse wheel is a wheel used for scrolling made of hard plastic with a rubbery surface usually located between the left and right mouse buttons and is positioned perpendicular to the mouse surface.
+
+
+
+ Joystick
+ A control device that uses a movable handle to create two-axis input for a computer device.
+
+
+ Keyboard
+ A device consisting of mechanical keys that are pressed to create input to a computer.
+
+ Keyboard-key
+ A button on a keyboard usually representing letters, numbers, functions, or symbols.
+
+ #
+ Value of a keyboard key.
+
+ takesValue
+
+
+
+
+
+ Keypad
+ A device consisting of keys, usually in a block arrangement, that provides limited input to a system.
+
+ Keypad-key
+ A key on a separate section of a computer keyboard that groups together numeric keys and those for mathematical or other special functions in an arrangement like that of a calculator.
+
+ #
+ Value of keypad key.
+
+ takesValue
+
+
+
+
+
+ Microphone
+ A device designed to convert sound to an electrical signal.
+
+
+ Push-button
+ A switch designed to be operated by pressing a button.
+
+
+
+ Output-device
+ Any piece of computer hardware equipment which converts information into human understandable form.
+
+ Auditory-device
+ A device designed to produce sound.
+
+ Headphones
+ An instrument that consists of a pair of small loudspeakers, or less commonly a single speaker, held close to ears and connected to a signal source such as an audio amplifier, radio, CD player or portable media player.
+
+
+ Loudspeaker
+ A device designed to convert electrical signals to sounds that can be heard.
+
+
+
+ Display-device
+ An output device for presentation of information in visual or tactile form the latter used for example in tactile electronic displays for blind people.
+
+ Computer-screen
+ An electronic device designed as a display or a physical device designed to be a protective meshwork.
+
+ Screen-window
+ A part of a computer screen that contains a display different from the rest of the screen. A window is a graphical control element consisting of a visual area containing some of the graphical user interface of the program it belongs to and is framed by a window decoration.
+
+
+
+ Head-mounted-display
+ An instrument that functions as a display device, worn on the head or as part of a helmet, that has a small display optic in front of one (monocular HMD) or each eye (binocular HMD).
+
+
+ LED-display
+ A LED display is a flat panel display that uses an array of light-emitting diodes as pixels for a video display.
+
+
+
+
+ Recording-device
+ A device that copies information in a signal into a persistent information bearer.
+
+ EEG-recorder
+ A device for recording electric currents in the brain using electrodes applied to the scalp, to the surface of the brain, or placed within the substance of the brain.
+
+
+ File-storage
+ A device for recording digital information to a permanent media.
+
+
+ MEG-recorder
+ A device for measuring the magnetic fields produced by electrical activity in the brain, usually conducted externally.
+
+
+ Motion-capture
+ A device for recording the movement of objects or people.
+
+
+ Tape-recorder
+ A device for recording and reproduction usually using magnetic tape for storage that can be saved and played back.
+
+
+
+ Touchscreen
+ A control component that operates an electronic device by pressing the display on the screen.
+
+
+
+ Machine
+ A human-made device that uses power to apply forces and control movement to perform an action.
+
+
+ Measurement-device
+ A device in which a measure function inheres.
+
+ Clock
+ A device designed to indicate the time of day or to measure the time duration of an event or action.
+
+ Clock-face
+ A location identifier based on clockface numbering or anatomic subregion.
+
- Periodic-discharges-rhythmic-superimposed-activity
-
- suggestedTag
- Finding-frequency
-
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
+ Robot
+ A mechanical device that sometimes resembles a living animal and is capable of performing a variety of often complex human tasks on command or by being programmed in advance.
+
+
+ Tool
+ A component that is not part of a device but is designed to support its assemby or operation.
+
+
+
+ Document
+ A physical object, or electronic counterpart, that is characterized by containing writing which is meant to be human-readable.
+
+ Book
+ A volume made up of pages fastened along one edge and enclosed between protective covers.
+
+
+ Letter
+ A written message addressed to a person or organization.
+
+
+ Note
+ A brief written record.
+
+
+ Notebook
+ A book for notes or memoranda.
+
+
+ Questionnaire
+ A document consisting of questions and possibly responses, depending on whether it has been filled out.
- Periodic-discharge-sharpness
-
- requireChild
-
-
- suggestedTag
- Property-not-possible-to-determine
-
-
- inLibrary
- score
-
+ Furnishing
+ Furniture, fittings, and other decorative accessories, such as curtains and carpets, for a house or room.
+
+
+ Manufactured-material
+ Substances created or extracted from raw materials.
- Spiky-periodic-discharge-sharpness
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
+ Ceramic
+ A hard, brittle, heat-resistant and corrosion-resistant material made by shaping and then firing a nonmetallic mineral, such as clay, at a high temperature.
- Sharp-periodic-discharge-sharpness
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
+ Glass
+ A brittle transparent solid with irregular atomic structure.
- Sharply-contoured-periodic-discharge-sharpness
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
+ Paper
+ A thin sheet material produced by mechanically or chemically processing cellulose fibres derived from wood, rags, grasses or other vegetable sources in water.
- Blunt-periodic-discharge-sharpness
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
+ Plastic
+ Various high-molecular-weight thermoplastic or thermosetting polymers that are capable of being molded, extruded, drawn, or otherwise shaped and then hardened into a form.
+
+
+ Steel
+ An alloy made up of iron with typically a few tenths of a percent of carbon to improve its strength and fracture resistance compared to iron.
- Number-of-periodic-discharge-phases
-
- requireChild
-
-
- suggestedTag
- Property-not-possible-to-determine
-
-
- inLibrary
- score
-
+ Media
+ Media are audo/visual/audiovisual modes of communicating information for mass consumption.
- 1-periodic-discharge-phase
-
- inLibrary
- score
-
+ Media-clip
+ A short segment of media.
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
+ Audio-clip
+ A short segment of audio.
+
+
+ Audiovisual-clip
+ A short media segment containing both audio and video.
+
+
+ Video-clip
+ A short segment of video.
- 2-periodic-discharge-phases
-
- inLibrary
- score
-
+ Visualization
+ An planned process that creates images, diagrams or animations from the input data.
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
+ Animation
+ A form of graphical illustration that changes with time to give a sense of motion or represent dynamic changes in the portrayal.
+
+
+ Art-installation
+ A large-scale, mixed-media constructions, often designed for a specific place or for a temporary period of time.
+
+
+ Braille
+ A display using a system of raised dots that can be read with the fingers by people who are blind.
+
+
+ Image
+ Any record of an imaging event whether physical or electronic.
+
+ Cartoon
+ A type of illustration, sometimes animated, typically in a non-realistic or semi-realistic style. The specific meaning has evolved over time, but the modern usage usually refers to either an image or series of images intended for satire, caricature, or humor. A motion picture that relies on a sequence of illustrations for its animation.
+
+
+ Drawing
+ A representation of an object or outlining a figure, plan, or sketch by means of lines.
+
+
+ Icon
+ A sign (such as a word or graphic symbol) whose form suggests its meaning.
+
+
+ Painting
+ A work produced through the art of painting.
+
+
+ Photograph
+ An image recorded by a camera.
+
+
+
+ Movie
+ A sequence of images displayed in succession giving the illusion of continuous movement.
-
-
- 3-periodic-discharge-phases
-
- inLibrary
- score
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
+ Outline-visualization
+ A visualization consisting of a line or set of lines enclosing or indicating the shape of an object in a sketch or diagram.
-
-
- Greater-than-3-periodic-discharge-phases
-
- inLibrary
- score
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
+ Point-light-visualization
+ A display in which action is depicted using a few points of light, often generated from discrete sensors in motion capture.
+
+
+ Sculpture
+ A two- or three-dimensional representative or abstract forms, especially by carving stone or wood or by casting metal or plaster.
+
+
+ Stick-figure-visualization
+ A drawing showing the head of a human being or animal as a circle and all other parts as straight lines.
- Periodic-discharge-triphasic-morphology
-
- suggestedTag
- Property-not-possible-to-determine
- Property-exists
- Property-absence
-
-
- inLibrary
- score
-
+ Navigational-object
+ An object whose purpose is to assist directed movement from one location to another.
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
+ Path
+ A trodden way. A way or track laid down for walking or made by continual treading.
-
-
- Periodic-discharge-absolute-amplitude
-
- requireChild
-
-
- suggestedTag
- Property-not-possible-to-determine
-
-
- inLibrary
- score
-
- Periodic-discharge-absolute-amplitude-very-low
- Lower than 20 microV.
-
- inLibrary
- score
-
+ Road
+ An open way for the passage of vehicles, persons, or animals on land.
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
+ Lane
+ A defined path with physical dimensions through which an object or substance may traverse.
- Low-periodic-discharge-absolute-amplitude
- 20 to 49 microV.
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
+ Runway
+ A paved strip of ground on a landing field for the landing and takeoff of aircraft.
+
+
+ Vehicle
+ A mobile machine which transports people or cargo.
- Medium-periodic-discharge-absolute-amplitude
- 50 to 199 microV.
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
+ Aircraft
+ A vehicle which is able to travel through air in an atmosphere.
- High-periodic-discharge-absolute-amplitude
- Greater than 200 microV.
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
+ Bicycle
+ A human-powered, pedal-driven, single-track vehicle, having two wheels attached to a frame, one behind the other.
-
-
- Periodic-discharge-relative-amplitude
-
- requireChild
-
-
- suggestedTag
- Property-not-possible-to-determine
-
-
- inLibrary
- score
-
- Periodic-discharge-relative-amplitude-less-than-equal-2
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
+ Boat
+ A watercraft of any size which is able to float or plane on water.
- Periodic-discharge-relative-amplitude-greater-than-2
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
+ Car
+ A wheeled motor vehicle used primarily for the transportation of human passengers.
+
+
+ Cart
+ A cart is a vehicle which has two wheels and is designed to transport human passengers or cargo.
+
+
+ Tractor
+ A mobile machine specifically designed to deliver a high tractive effort at slow speeds, and mainly used for the purposes of hauling a trailer or machinery used in agriculture or construction.
+
+
+ Train
+ A connected line of railroad cars with or without a locomotive.
+
+
+ Truck
+ A motor vehicle which, as its primary funcion, transports cargo rather than human passangers.
+
+
+ Natural-object
+ Something that exists in or is produced by nature, and is not artificial or man-made.
- Periodic-discharge-polarity
-
- requireChild
-
-
- inLibrary
- score
-
+ Mineral
+ A solid, homogeneous, inorganic substance occurring in nature and having a definite chemical composition.
+
+
+ Natural-feature
+ A feature that occurs in nature. A prominent or identifiable aspect, region, or site of interest.
- Periodic-discharge-postitive-polarity
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
+ Field
+ An unbroken expanse as of ice or grassland.
- Periodic-discharge-negative-polarity
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
+ Hill
+ A rounded elevation of limited extent rising above the surrounding land with local relief of less than 300m.
- Periodic-discharge-unclear-polarity
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
+ Mountain
+ A landform that extends above the surrounding terrain in a limited area.
+
+
+ River
+ A natural freshwater surface stream of considerable volume and a permanent or seasonal flow, moving in a definite channel toward a sea, lake, or another river.
+
+
+ Waterfall
+ A sudden descent of water over a step or ledge in the bed of a river.
- Source-analysis-property
- How the current in the brain reaches the electrode sensors.
-
- requireChild
-
-
- inLibrary
- score
-
-
- Source-analysis-laterality
-
- requireChild
-
-
- suggestedTag
- Brain-laterality
-
-
- inLibrary
- score
-
-
+ Sound
+ Mechanical vibrations transmitted by an elastic medium. Something that can be heard.
- Source-analysis-brain-region
-
- requireChild
-
-
- inLibrary
- score
-
-
- Source-analysis-frontal-perisylvian-superior-surface
-
- inLibrary
- score
-
-
-
- Source-analysis-frontal-lateral
-
- inLibrary
- score
-
-
-
- Source-analysis-frontal-mesial
-
- inLibrary
- score
-
-
-
- Source-analysis-frontal-polar
-
- inLibrary
- score
-
-
-
- Source-analysis-frontal-orbitofrontal
-
- inLibrary
- score
-
-
-
- Source-analysis-temporal-polar
-
- inLibrary
- score
-
-
-
- Source-analysis-temporal-basal
-
- inLibrary
- score
-
-
-
- Source-analysis-temporal-lateral-anterior
-
- inLibrary
- score
-
-
-
- Source-analysis-temporal-lateral-posterior
-
- inLibrary
- score
-
-
-
- Source-analysis-temporal-perisylvian-inferior-surface
-
- inLibrary
- score
-
-
+ Environmental-sound
+ Sounds occuring in the environment. An accumulation of noise pollution that occurs outside. This noise can be caused by transport, industrial, and recreational activities.
- Source-analysis-central-lateral-convexity
-
- inLibrary
- score
-
+ Crowd-sound
+ Noise produced by a mixture of sounds from a large group of people.
- Source-analysis-central-mesial
-
- inLibrary
- score
-
+ Signal-noise
+ Any part of a signal that is not the true or original signal but is introduced by the communication mechanism.
+
+
+ Musical-sound
+ Sound produced by continuous and regular vibrations, as opposed to noise.
- Source-analysis-central-sulcus-anterior-surface
-
- inLibrary
- score
-
+ Instrument-sound
+ Sound produced by a musical instrument.
- Source-analysis-central-sulcus-posterior-surface
-
- inLibrary
- score
-
+ Tone
+ A musical note, warble, or other sound used as a particular signal on a telephone or answering machine.
- Source-analysis-central-opercular
-
- inLibrary
- score
-
+ Vocalized-sound
+ Musical sound produced by vocal cords in a biological agent.
-
- Source-analysis-parietal-lateral-convexity
-
- inLibrary
- score
-
+
+
+ Named-animal-sound
+ A sound recognizable as being associated with particular animals.
+
+ Barking
+ Sharp explosive cries like sounds made by certain animals, especially a dog, fox, or seal.
- Source-analysis-parietal-mesial
-
- inLibrary
- score
-
+ Bleating
+ Wavering cries like sounds made by a sheep, goat, or calf.
- Source-analysis-parietal-opercular
-
- inLibrary
- score
-
+ Chirping
+ Short, sharp, high-pitched noises like sounds made by small birds or an insects.
- Source-analysis-occipital-lateral
-
- inLibrary
- score
-
+ Crowing
+ Loud shrill sounds characteristic of roosters.
- Source-analysis-occipital-mesial
-
- inLibrary
- score
-
+ Growling
+ Low guttural sounds like those that made in the throat by a hostile dog or other animal.
- Source-analysis-occipital-basal
-
- inLibrary
- score
-
+ Meowing
+ Vocalizations like those made by as those cats. These sounds have diverse tones and are sometimes chattered, murmured or whispered. The purpose can be assertive.
- Source-analysis-insula
-
- inLibrary
- score
-
+ Mooing
+ Deep vocal sounds like those made by a cow.
-
-
-
- Location-property
- Location can be scored for findings. Semiologic finding can also be characterized by the somatotopic modifier (i.e. the part of the body where it occurs). In this respect, laterality (left, right, symmetric, asymmetric, left greater than right, right greater than left), body part (eyelid, face, arm, leg, trunk, visceral, hemi-) and centricity (axial, proximal limb, distal limb) can be scored.
-
- requireChild
-
-
- inLibrary
- score
-
-
- Brain-laterality
-
- requireChild
-
-
- inLibrary
- score
-
- Brain-laterality-left
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
+ Purring
+ Low continuous vibratory sound such as those made by cats. The sound expresses contentment.
- Brain-laterality-left-greater-right
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
+ Roaring
+ Loud, deep, or harsh prolonged sounds such as those made by big cats and bears for long-distance communication and intimidation.
- Brain-laterality-right
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
+ Squawking
+ Loud, harsh noises such as those made by geese.
+
+
+ Named-object-sound
+ A sound identifiable as coming from a particular type of object.
- Brain-laterality-right-greater-left
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
+ Alarm-sound
+ A loud signal often loud continuous ringing to alert people to a problem or condition that requires urgent attention.
- Brain-laterality-midline
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
+ Beep
+ A short, single tone, that is typically high-pitched and generally made by a computer or other machine.
- Brain-laterality-diffuse-asynchronous
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
+ Buzz
+ A persistent vibratory sound often made by a buzzer device and used to indicate something incorrect.
-
-
- Brain-region
-
- requireChild
-
-
- inLibrary
- score
-
- Brain-region-frontal
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
+ Click
+ The sound made by a mechanical cash register, often to designate a reward.
- Brain-region-temporal
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
+ Ding
+ A short ringing sound such as that made by a bell, often to indicate a correct response or the expiration of time.
- Brain-region-central
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
+ Horn-blow
+ A loud sound made by forcing air through a sound device that funnels air to create the sound, often used to sound an alert.
- Brain-region-parietal
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
+ Ka-ching
+ The sound made by a mechanical cash register, often to designate a reward.
- Brain-region-occipital
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
+ Siren
+ A loud, continuous sound often varying in frequency designed to indicate an emergency.
+
+
+
+ Physiologic-pattern
+ EEG graphoelements or rhythms that are considered normal. They only should be scored if the physician considers that they have a specific clinical significance for the recording.
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Rhythmic-activity-pattern
+ Not further specified.
+
+ suggestedTag
+ Rhythmic-activity-morphology
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+ inLibrary
+ score
+
+
+
+ Slow-alpha-variant-rhythm
+ Characteristic rhythms mostly at 4-5 Hz, recorded most prominently over the posterior regions of the head. Generally alternate, or are intermixed, with alpha rhythm to which they often are harmonically related. Amplitude varies but is frequently close to 50 micro V. Blocked or attenuated by attention, especially visual, and mental effort. Comment: slow alpha variant rhythms should be distinguished from posterior slow waves characteristic of children and adolescents and occasionally seen in young adults.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+ inLibrary
+ score
+
+
+
+ Fast-alpha-variant-rhythm
+ Characteristic rhythm at 14-20 Hz, detected most prominently over the posterior regions of the head. May alternate or be intermixed with alpha rhythm. Blocked or attenuated by attention, especially visual, and mental effort.
+
+ suggestedTag
+ Appearance-mode
+ Discharge-pattern
+
+
+ inLibrary
+ score
+
+
+
+ Ciganek-rhythm
+ Midline theta rhythm (Ciganek rhythm) may be observed during wakefulness or drowsiness. The frequency is 4-7 Hz, and the location is midline (ie, vertex). The morphology is rhythmic, smooth, sinusoidal, arciform, spiky, or mu-like.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+ inLibrary
+ score
+
+
+
+ Lambda-wave
+ Diphasic sharp transient occurring over occipital regions of the head of waking subjects during visual exploration. The main component is positive relative to other areas. Time-locked to saccadic eye movement. Amplitude varies but is generally below 50 micro V.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+ inLibrary
+ score
+
+
+
+ Posterior-slow-waves-youth
+ Waves in the delta and theta range, of variable form, lasting 0.35 to 0.5 s or longer without any consistent periodicity, found in the range of 6-12 years (occasionally seen in young adults). Alpha waves are almost always intermingled or superimposed. Reactive similar to alpha activity.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+ inLibrary
+ score
+
+
+
+ Diffuse-slowing-hyperventilation
+ Diffuse slowing induced by hyperventilation. Bilateral, diffuse slowing during hyperventilation. Recorded in 70 percent of normal children (3-5 years) and less then 10 percent of adults. Usually appear in the posterior regions and spread forward in younger age group, whereas they tend to appear in the frontal regions and spread backward in the older age group.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+ inLibrary
+ score
+
+
+
+ Photic-driving
+ Physiologic response consisting of rhythmic activity elicited over the posterior regions of the head by repetitive photic stimulation at frequencies of about 5-30 Hz. Comments: term should be limited to activity time-locked to the stimulus and of frequency identical or harmonically related to the stimulus frequency. Photic driving should be distinguished from the visual evoked potentials elicited by isolated flashes of light or flashes repeated at very low frequency.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+ inLibrary
+ score
+
+
+
+ Photomyogenic-response
+ A response to intermittent photic stimulation characterized by the appearance in the record of brief, repetitive muscular artifacts (spikes) over the anterior regions of the head. These often increase gradually in amplitude as stimuli are continued and cease promptly when the stimulus is withdrawn. Comment: this response is frequently associated with flutter of the eyelids and vertical oscillations of the eyeballs and sometimes with discrete jerking mostly involving the musculature of the face and head. (Preferred to synonym: photo-myoclonic response).
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+ inLibrary
+ score
+
+
+
+ Other-physiologic-pattern
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+
+ Polygraphic-channel-finding
+ Changes observed in polygraphic channels can be scored: EOG, Respiration, ECG, EMG, other polygraphic channel (+ free text), and their significance logged (normal, abnormal, no definite abnormality).
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ EOG-channel-finding
+ ElectroOculoGraphy.
+
+ suggestedTag
+ Finding-significance-to-recording
+
+
+ inLibrary
+ score
+
- Body-part-location
+ #
+ Free text.
- requireChild
+ takesValue
+
+
+ valueClass
+ textClassinLibraryscore
+
+
+
+ Respiration-channel-finding
+
+ suggestedTag
+ Finding-significance-to-recording
+
+
+ inLibrary
+ score
+
+
+ Respiration-oxygen-saturation
+
+ inLibrary
+ score
+
- Body-part-eyelid
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
-
- Body-part-face
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
-
- Body-part-arm
+ #
- inLibrary
- score
+ takesValue
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
-
- Body-part-leg
- inLibrary
- score
+ valueClass
+ numericClass
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
-
- Body-part-trunkinLibraryscore
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
+
+
+ Respiration-feature
+
+ inLibrary
+ score
+
- Body-part-visceral
+ Apnoe-respiration
+ Add duration (range in seconds) and comments in free text.inLibraryscore
@@ -11127,7 +10738,8 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Body-part-hemi
+ Hypopnea-respiration
+ Add duration (range in seconds) and comments in free textinLibraryscore
@@ -11148,40 +10760,12 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
-
-
- Brain-centricity
-
- requireChild
-
-
- inLibrary
- score
-
- Brain-centricity-axial
+ Apnea-hypopnea-index-respiration
+ Events/h. Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency
- inLibrary
- score
+ requireChild
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
-
- Brain-centricity-proximal-limbinLibraryscore
@@ -11203,7 +10787,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Brain-centricity-distal-limb
+ Periodic-respirationinLibraryscore
@@ -11223,116 +10807,73 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
score
-
-
-
- Sensors
- Lists all corresponding sensors (electrodes/channels in montage). The sensor-group is selected from a list defined in the site-settings for each EEG-lab.
-
- requireChild
-
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
-
- Finding-propagation
- When propagation within the graphoelement is observed, first the location of the onset region is scored. Then, the location of the propagation can be noted.
-
- suggestedTag
- Property-exists
- Property-absence
- Brain-laterality
- Brain-region
- Sensors
-
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
-
- Multifocal-finding
- When the same interictal graphoelement is observed bilaterally and at least in three independent locations, can score them using one entry, and choosing multifocal as a descriptor of the locations of the given interictal graphoelements, optionally emphasizing the involved, and the most active sites.
-
- suggestedTag
- Property-not-possible-to-determine
- Property-exists
- Property-absence
-
-
- inLibrary
- score
-
+
- #
- Free text.
+ Tachypnea-respiration
+ Cycles/min. Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency
- takesValue
+ requireChild
- valueClass
- textClass
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Other-respiration-feature
+
+ requireChildinLibraryscore
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
- Modulators-property
- For each described graphoelement, the influence of the modulators can be scored. Only modulators present in the recording are scored.
+ ECG-channel-finding
+ Electrocardiography.
- requireChild
+ suggestedTag
+ Finding-significance-to-recordinginLibraryscore
- Modulators-reactivity
- Susceptibility of individual rhythms or the EEG as a whole to change following sensory stimulation or other physiologic actions.
-
- requireChild
-
-
- suggestedTag
- Property-exists
- Property-absence
-
+ ECG-QT-periodinLibraryscore
@@ -11354,169 +10895,216 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Eye-closure-sensitivity
- Eye closure sensitivity.
-
- suggestedTag
- Property-exists
- Property-absence
-
+ ECG-featureinLibraryscore
- #
- Free text.
+ ECG-sinus-rhythm
+ Normal rhythm. Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency
- takesValue
+ inLibrary
+ score
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ ECG-arrhythmia
- valueClass
- textClass
+ inLibrary
+ score
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ ECG-asystolia
+ Add duration (range in seconds) and comments in free text.inLibraryscore
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ ECG-bradycardia
+ Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
-
-
- Eye-opening-passive
- Passive eye opening. Used with base schema Increasing/Decreasing.
-
- suggestedTag
- Property-not-possible-to-determine
- Finding-stopped-by
- Finding-unmodified
- Finding-triggered-by
-
-
- inLibrary
- score
-
-
-
- Medication-effect-EEG
- Medications effect on EEG. Used with base schema Increasing/Decreasing.
-
- suggestedTag
- Property-not-possible-to-determine
- Finding-stopped-by
- Finding-unmodified
-
-
- inLibrary
- score
-
-
-
- Medication-reduction-effect-EEG
- Medications reduction or withdrawal effect on EEG. Used with base schema Increasing/Decreasing.
-
- suggestedTag
- Property-not-possible-to-determine
- Finding-stopped-by
- Finding-unmodified
-
-
- inLibrary
- score
-
-
-
- Auditive-stimuli-effect
- Used with base schema Increasing/Decreasing.
-
- suggestedTag
- Property-not-possible-to-determine
- Finding-stopped-by
- Finding-unmodified
-
-
- inLibrary
- score
-
-
-
- Nociceptive-stimuli-effect
- Used with base schema Increasing/Decreasing.
-
- suggestedTag
- Property-not-possible-to-determine
- Finding-stopped-by
- Finding-unmodified
- Finding-triggered-by
-
-
- inLibrary
- score
-
-
-
- Physical-effort-effect
- Used with base schema Increasing/Decreasing
-
- suggestedTag
- Property-not-possible-to-determine
- Finding-stopped-by
- Finding-unmodified
- Finding-triggered-by
-
-
- inLibrary
- score
-
-
-
- Cognitive-task-effect
- Used with base schema Increasing/Decreasing.
-
- suggestedTag
- Property-not-possible-to-determine
- Finding-stopped-by
- Finding-unmodified
- Finding-triggered-by
-
-
- inLibrary
- score
-
-
-
- Other-modulators-effect-EEG
-
- requireChild
-
-
- inLibrary
- score
-
- #
- Free text.
+ ECG-extrasystole
- takesValue
+ inLibrary
+ score
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ ECG-ventricular-premature-depolarization
+ Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency
- valueClass
- textClass
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ ECG-tachycardia
+ Frequency can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Rate-of-change/Frequency
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ Other-ECG-feature
+
+ requireChildinLibraryscore
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ EMG-channel-finding
+ electromyography
+
+ suggestedTag
+ Finding-significance-to-recording
+
+
+ inLibrary
+ score
+
- Facilitating-factor
- Facilitating factors are defined as transient and sporadic endogenous or exogenous elements capable of augmenting seizure incidence (increasing the likelihood of seizure occurrence).
+ EMG-muscle-sideinLibraryscore
- Facilitating-factor-alcohol
+ EMG-left-muscleinLibraryscore
@@ -11538,7 +11126,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Facilitating-factor-awake
+ EMG-right-muscleinLibraryscore
@@ -11560,7 +11148,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Facilitating-factor-catamenial
+ EMG-bilateral-muscleinLibraryscore
@@ -11581,30 +11169,162 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
+
+
+ EMG-muscle-name
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ EMG-feature
+
+ inLibrary
+ score
+
- Facilitating-factor-fever
+ EMG-myoclonusinLibraryscore
- #
- Free text.
+ Negative-myoclonus
- takesValue
+ inLibrary
+ score
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ EMG-myoclonus-rhythmic
- valueClass
- textClass
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ EMG-myoclonus-arrhythmic
+
+ inLibrary
+ score
+
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ EMG-myoclonus-synchronous
+
+ inLibrary
+ score
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
+
+
+ EMG-myoclonus-asynchronousinLibraryscore
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
- Facilitating-factor-sleep
+ EMG-PLMS
+ Periodic limb movements in sleep.
+
+ inLibrary
+ score
+
+
+
+ EMG-spasminLibraryscore
@@ -11626,7 +11346,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Facilitating-factor-sleep-deprived
+ EMG-tonic-contractioninLibraryscore
@@ -11648,7 +11368,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Facilitating-factor-other
+ EMG-asymmetric-activationrequireChild
@@ -11657,56 +11377,55 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
score
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
+ EMG-asymmetric-activation-left-firstinLibraryscore
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
-
-
-
- Provocative-factor
- Provocative factors are defined as transient and sporadic endogenous or exogenous elements capable of evoking/triggering seizures immediately following the exposure to it.
-
- requireChild
-
-
- inLibrary
- score
-
-
- Hyperventilation-provoked
-
- inLibrary
- score
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
+ EMG-asymmetric-activation-right-firstinLibraryscore
+
+ #
+ Free text.
+
+ takesValue
+
+
+ valueClass
+ textClass
+
+
+ inLibrary
+ score
+
+
- Reflex-provoked
+ Other-EMG-features
+
+ requireChild
+ inLibraryscore
@@ -11728,4223 +11447,4350 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
+
+
+ Other-polygraphic-channel
+
+ requireChild
+
+
+ inLibrary
+ score
+
- Medication-effect-clinical
- Medications clinical effect. Used with base schema Increasing/Decreasing.
-
- suggestedTag
- Finding-stopped-by
- Finding-unmodified
-
+ #
+ Free text.
- inLibrary
- score
+ takesValue
-
-
- Medication-reduction-effect-clinical
- Medications reduction or withdrawal clinical effect. Used with base schema Increasing/Decreasing.
- suggestedTag
- Finding-stopped-by
- Finding-unmodified
+ valueClass
+ textClassinLibraryscore
+
+
+
+ Property
+ Something that pertains to a thing. A characteristic of some entity. A quality or feature regarded as a characteristic or inherent part of someone or something. HED attributes are adjectives or adverbs.
+
+ extensionAllowed
+
+
+ Agent-property
+ Something that pertains to an agent.
+
+ extensionAllowed
+
- Other-modulators-effect-clinical
-
- requireChild
-
-
- inLibrary
- score
-
+ Agent-state
+ The state of the agent.
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
+ Agent-cognitive-state
+ The state of the cognitive processes or state of mind of the agent.
+
+ Alert
+ Condition of heightened watchfulness or preparation for action.
+
+
+ Anesthetized
+ Having lost sensation to pain or having senses dulled due to the effects of an anesthetic.
+
+
+ Asleep
+ Having entered a periodic, readily reversible state of reduced awareness and metabolic activity, usually accompanied by physical relaxation and brain activity.
+
+
+ Attentive
+ Concentrating and focusing mental energy on the task or surroundings.
+
+
+ Awake
+ In a non sleeping state.
+
+
+ Brain-dead
+ Characterized by the irreversible absence of cortical and brain stem functioning.
+
+
+ Comatose
+ In a state of profound unconsciousness associated with markedly depressed cerebral activity.
+
+
+ Distracted
+ Lacking in concentration because of being preoccupied.
+
+
+ Drowsy
+ In a state of near-sleep, a strong desire for sleep, or sleeping for unusually long periods.
+
+
+ Intoxicated
+ In a state with disturbed psychophysiological functions and responses as a result of administration or ingestion of a psychoactive substance.
+
+
+ Locked-in
+ In a state of complete paralysis of all voluntary muscles except for the ones that control the movements of the eyes.
+
+
+ Passive
+ Not responding or initiating an action in response to a stimulus.
+
+
+ Resting
+ A state in which the agent is not exhibiting any physical exertion.
+
+
+ Vegetative
+ A state of wakefulness and conscience, but (in contrast to coma) with involuntary opening of the eyes and movements (such as teeth grinding, yawning, or thrashing of the extremities).
+
-
-
- Intermittent-photic-stimulation-effect
-
- requireChild
-
-
- inLibrary
- score
-
- Posterior-stimulus-dependent-intermittent-photic-stimulation-response
-
- suggestedTag
- Finding-frequency
-
-
- inLibrary
- score
-
+ Agent-emotional-state
+ The status of the general temperament and outlook of an agent.
+
+ Angry
+ Experiencing emotions characterized by marked annoyance or hostility.
+
+
+ Aroused
+ In a state reactive to stimuli leading to increased heart rate and blood pressure, sensory alertness, mobility and readiness to respond.
+
+
+ Awed
+ Filled with wonder. Feeling grand, sublime or powerful emotions characterized by a combination of joy, fear, admiration, reverence, and/or respect.
+
+
+ Compassionate
+ Feeling or showing sympathy and concern for others often evoked for a person who is in distress and associated with altruistic motivation.
+
+
+ Content
+ Feeling satisfaction with things as they are.
+
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
+ Disgusted
+ Feeling revulsion or profound disapproval aroused by something unpleasant or offensive.
-
-
- Posterior-stimulus-independent-intermittent-photic-stimulation-response-limited
- limited to the stimulus-train
-
- suggestedTag
- Finding-frequency
-
-
- inLibrary
- score
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
+ Emotionally-neutral
+ Feeling neither satisfied nor dissatisfied.
+
+
+ Empathetic
+ Understanding and sharing the feelings of another. Being aware of, being sensitive to, and vicariously experiencing the feelings, thoughts, and experience of another.
+
+
+ Excited
+ Feeling great enthusiasm and eagerness.
+
+
+ Fearful
+ Feeling apprehension that one may be in danger.
+
+
+ Frustrated
+ Feeling annoyed as a result of being blocked, thwarted, disappointed or defeated.
+
+
+ Grieving
+ Feeling sorrow in response to loss, whether physical or abstract.
+
+
+ Happy
+ Feeling pleased and content.
+
+
+ Jealous
+ Feeling threatened by a rival in a relationship with another individual, in particular an intimate partner, usually involves feelings of threat, fear, suspicion, distrust, anxiety, anger, betrayal, and rejection.
+
+
+ Joyful
+ Feeling delight or intense happiness.
+
+
+ Loving
+ Feeling a strong positive emotion of affection and attraction.
+
+
+ Relieved
+ No longer feeling pain, distress, anxiety, or reassured.
+
+
+ Sad
+ Feeling grief or unhappiness.
+
+
+ Stressed
+ Experiencing mental or emotional strain or tension.
- Posterior-stimulus-independent-intermittent-photic-stimulation-response-self-sustained
-
- suggestedTag
- Finding-frequency
-
-
- inLibrary
- score
-
+ Agent-physiological-state
+ Having to do with the mechanical, physical, or biochemical function of an agent.
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
+ Healthy
+ Having no significant health-related issues.
- inLibrary
- score
+ relatedTag
+ Sick
-
-
- Generalized-photoparoxysmal-intermittent-photic-stimulation-response-limited
- Limited to the stimulus-train.
-
- suggestedTag
- Finding-frequency
-
-
- inLibrary
- score
-
- #
- Free text.
+ Hungry
+ Being in a state of craving or desiring food.
- takesValue
+ relatedTag
+ Sated
+ Thirsty
+
+
+ Rested
+ Feeling refreshed and relaxed.
- valueClass
- textClass
+ relatedTag
+ Tired
+
+
+ Sated
+ Feeling full.
- inLibrary
- score
+ relatedTag
+ Hungry
-
-
- Generalized-photoparoxysmal-intermittent-photic-stimulation-response-self-sustained
-
- suggestedTag
- Finding-frequency
-
-
- inLibrary
- score
-
- #
- Free text.
+ Sick
+ Being in a state of ill health, bodily malfunction, or discomfort.
- takesValue
+ relatedTag
+ Healthy
+
+
+ Thirsty
+ Feeling a need to drink.
- valueClass
- textClass
+ relatedTag
+ Hungry
+
+
+ Tired
+ Feeling in need of sleep or rest.
- inLibrary
- score
+ relatedTag
+ Rested
- Activation-of-pre-existing-epileptogenic-area-intermittent-photic-stimulation-effect
-
- suggestedTag
- Finding-frequency
-
-
- inLibrary
- score
-
+ Agent-postural-state
+ Pertaining to the position in which agent holds their body.
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
+ Crouching
+ Adopting a position where the knees are bent and the upper body is brought forward and down, sometimes to avoid detection or to defend oneself.
+
+
+ Eyes-closed
+ Keeping eyes closed with no blinking.
+
+
+ Eyes-open
+ Keeping eyes open with occasional blinking.
+
+
+ Kneeling
+ Positioned where one or both knees are on the ground.
+
+
+ On-treadmill
+ Ambulation on an exercise apparatus with an endless moving belt to support moving in place.
+
+
+ Prone
+ Positioned in a recumbent body position whereby the person lies on its stomach and faces downward.
+
+
+ Seated-with-chin-rest
+ Using a device that supports the chin and head.
+
+
+ Sitting
+ In a seated position.
+
+
+ Standing
+ Assuming or maintaining an erect upright position.
+
+
+ Agent-task-role
+ The function or part that is ascribed to an agent in performing the task.
+
+ Experiment-actor
+ An agent who plays a predetermined role to create the experiment scenario.
+
+
+ Experiment-controller
+ An agent exerting control over some aspect of the experiment.
+
- Unmodified-intermittent-photic-stimulation-effect
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
+ Experiment-participant
+ Someone who takes part in an activity related to an experiment.
+
+
+ Experimenter
+ Person who is the owner of the experiment and has its responsibility.
- Quality-of-hyperventilation
-
- requireChild
-
-
- inLibrary
- score
-
+ Agent-trait
+ A genetically, environmentally, or socially determined characteristic of an agent.
- Hyperventilation-refused-procedure
-
- inLibrary
- score
-
+ Age
+ Length of time elapsed time since birth of the agent.#
- Free text.takesValuevalueClass
- textClass
-
-
- inLibrary
- score
+ numericClass
- Hyperventilation-poor-effort
-
- inLibrary
- score
-
+ Agent-experience-level
+ Amount of skill or knowledge that the agent has as pertains to the task.
- #
- Free text.
+ Expert-level
+ Having comprehensive and authoritative knowledge of or skill in a particular area related to the task.
- takesValue
+ relatedTag
+ Intermediate-experience-level
+ Novice-level
+
+
+ Intermediate-experience-level
+ Having a moderate amount of knowledge or skill related to the task.
- valueClass
- textClass
+ relatedTag
+ Expert-level
+ Novice-level
+
+
+ Novice-level
+ Being inexperienced in a field or situation related to the task.
- inLibrary
- score
+ relatedTag
+ Expert-level
+ Intermediate-experience-level
- Hyperventilation-good-effort
-
- inLibrary
- score
-
+ Ethnicity
+ Belong to a social group that has a common national or cultural tradition. Use with Label to avoid extension.
+
+
+ Gender
+ Characteristics that are socially constructed, including norms, behaviors, and roles based on sex.
+
+
+ Handedness
+ Individual preference for use of a hand, known as the dominant hand.
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
+ Ambidextrous
+ Having no overall dominance in the use of right or left hand or foot in the performance of tasks that require one hand or foot.
+
+
+ Left-handed
+ Preference for using the left hand or foot for tasks requiring the use of a single hand or foot.
+
+
+ Right-handed
+ Preference for using the right hand or foot for tasks requiring the use of a single hand or foot.
- Hyperventilation-excellent-effort
-
- inLibrary
- score
-
+ Race
+ Belonging to a group sharing physical or social qualities as defined within a specified society. Use with Label to avoid extension.
+
+
+ Sex
+ Physical properties or qualities by which male is distinguished from female.
- #
- Free text.
+ Female
+ Biological sex of an individual with female sexual organs such ova.
+
+
+ Intersex
+ Having genitalia and/or secondary sexual characteristics of indeterminate sex.
+
+
+ Male
+ Biological sex of an individual with male sexual organs producing sperm.
+
+
+
+
+
+ Data-property
+ Something that pertains to data or information.
+
+ extensionAllowed
+
+
+ Data-marker
+ An indicator placed to mark something.
+
+ Data-break-marker
+ An indicator place to indicate a gap in the data.
+
+
+ Temporal-marker
+ An indicator placed at a particular time in the data.
+
+ Inset
+ Marks an intermediate point in an ongoing event of temporal extent.
- takesValue
+ topLevelTagGroup
- valueClass
- textClass
+ reserved
- inLibrary
- score
+ relatedTag
+ Onset
+ Offset
-
-
-
- Modulators-effect
- Tags for describing the influence of the modulators
-
- requireChild
-
-
- inLibrary
- score
-
-
- Modulators-effect-continuous-during-NRS
- Continuous during non-rapid-eye-movement-sleep (NRS)
-
- inLibrary
- score
-
- #
- Free text.
+ Offset
+ Marks the end of an event of temporal extent.
- takesValue
+ topLevelTagGroup
- valueClass
- textClass
+ reserved
- inLibrary
- score
+ relatedTag
+ Onset
+ Inset
-
-
- Modulators-effect-only-during
-
- inLibrary
- score
-
- #
- Only during Sleep/Awakening/Hyperventilation/Physical effort/Cognitive task. Free text.
+ Onset
+ Marks the start of an ongoing event of temporal extent.
- takesValue
+ topLevelTagGroup
- valueClass
- textClass
+ reserved
- inLibrary
- score
+ relatedTag
+ Inset
+ Offset
+
+ Pause
+ Indicates the temporary interruption of the operation a process and subsequently wait for a signal to continue.
+
+
+ Time-out
+ A cancellation or cessation that automatically occurs when a predefined interval of time has passed without a certain event occurring.
+
+
+ Time-sync
+ A synchronization signal whose purpose to help synchronize different signals or processes. Often used to indicate a marker inserted into the recorded data to allow post hoc synchronization of concurrently recorded data streams.
+
+
+
+ Data-resolution
+ Smallest change in a quality being measured by an sensor that causes a perceptible change.
- Modulators-effect-change-of-patterns
- Change of patterns during sleep/awakening.
-
- inLibrary
- score
-
+ Printer-resolution
+ Resolution of a printer, usually expressed as the number of dots-per-inch for a printer.#
- Free text.takesValuevalueClass
- textClass
-
-
- inLibrary
- score
+ numericClass
-
-
-
- Time-related-property
- Important to estimate how often an interictal abnormality is seen in the recording.
-
- requireChild
-
-
- inLibrary
- score
-
-
- Appearance-mode
- Describes how the non-ictal EEG pattern/graphoelement is distributed through the recording.
-
- requireChild
-
-
- suggestedTag
- Property-not-possible-to-determine
-
-
- inLibrary
- score
-
- Random-appearance-mode
- Occurrence of the non-ictal EEG pattern / graphoelement without any rhythmicity / periodicity.
-
- inLibrary
- score
-
+ Screen-resolution
+ Resolution of a screen, usually expressed as the of pixels in a dimension for a digital display device.#
- Free text.takesValuevalueClass
- textClass
-
-
- inLibrary
- score
+ numericClass
- Periodic-appearance-mode
- Non-ictal EEG pattern / graphoelement occurring at an approximately regular rate / interval (generally of 1 to several seconds).
-
- inLibrary
- score
-
+ Sensory-resolution
+ Resolution of measurements by a sensing device.#
- Free text.takesValuevalueClass
- textClass
-
-
- inLibrary
- score
+ numericClass
- Variable-appearance-mode
- Occurrence of non-ictal EEG pattern / graphoelements, that is sometimes rhythmic or periodic, other times random, throughout the recording.
-
- inLibrary
- score
-
+ Spatial-resolution
+ Linear spacing of a spatial measurement.#
- Free text.takesValuevalueClass
- textClass
-
-
- inLibrary
- score
+ numericClass
- Intermittent-appearance-mode
-
- inLibrary
- score
-
+ Spectral-resolution
+ Measures the ability of a sensor to resolve features in the electromagnetic spectrum.#
- Free text.takesValuevalueClass
- textClass
-
-
- inLibrary
- score
+ numericClass
- Continuous-appearance-mode
-
- inLibrary
- score
-
+ Temporal-resolution
+ Measures the ability of a sensor to resolve features in time.#
- Free text.takesValuevalueClass
- textClass
-
-
- inLibrary
- score
+ numericClass
- Discharge-pattern
- Describes the organization of the EEG signal within the discharge (distinguish between single and repetitive discharges)
-
- requireChild
-
-
- inLibrary
- score
-
+ Data-source-type
+ The type of place, person, or thing from which the data comes or can be obtained.
- Single-discharge-pattern
- Applies to the intra-burst pattern: a graphoelement that is not repetitive; before and after the graphoelement one can distinguish the background activity.
-
- suggestedTag
- Finding-incidence
-
-
- inLibrary
- score
-
+ Computed-feature
+ A feature computed from the data by a tool. This tag should be grouped with a label of the form Toolname_propertyName.
+
+
+ Computed-prediction
+ A computed extrapolation of known data.
+
+
+ Expert-annotation
+ An explanatory or critical comment or other in-context information provided by an authority.
+
+
+ Instrument-measurement
+ Information obtained from a device that is used to measure material properties or make other observations.
+
+
+ Observation
+ Active acquisition of information from a primary source. Should be grouped with a label of the form AgentID_featureName.
+
+
+
+ Data-value
+ Designation of the type of a data item.
+
+ Categorical-value
+ Indicates that something can take on a limited and usually fixed number of possible values.
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
+ Categorical-class-value
+ Categorical values that fall into discrete classes such as true or false. The grouping is absolute in the sense that it is the same for all participants.
+
+ All
+ To a complete degree or to the full or entire extent.
+
+ relatedTag
+ Some
+ None
+
+
+
+ Correct
+ Free from error. Especially conforming to fact or truth.
+
+ relatedTag
+ Wrong
+
+
+
+ Explicit
+ Stated clearly and in detail, leaving no room for confusion or doubt.
+
+ relatedTag
+ Implicit
+
+
+
+ False
+ Not in accordance with facts, reality or definitive criteria.
+
+ relatedTag
+ True
+
+
+
+ Implicit
+ Implied though not plainly expressed.
+
+ relatedTag
+ Explicit
+
+
+
+ Invalid
+ Not allowed or not conforming to the correct format or specifications.
+
+ relatedTag
+ Valid
+
+
+
+ None
+ No person or thing, nobody, not any.
+
+ relatedTag
+ All
+ Some
+
+
+
+ Some
+ At least a small amount or number of, but not a large amount of, or often.
+
+ relatedTag
+ All
+ None
+
+
+
+ True
+ Conforming to facts, reality or definitive criteria.
+
+ relatedTag
+ False
+
+
+
+ Valid
+ Allowable, usable, or acceptable.
+
+ relatedTag
+ Invalid
+
+
+
+ Wrong
+ Inaccurate or not correct.
+
+ relatedTag
+ Correct
+
+
-
-
- Rhythmic-trains-or-bursts-discharge-pattern
- Applies to the intra-burst pattern: a non-ictal graphoelement that repeats itself without returning to the background activity between them. The graphoelements within this repetition occur at approximately constant period.
-
- suggestedTag
- Finding-prevalence
- Finding-frequency
-
-
- inLibrary
- score
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
+ Categorical-judgment-value
+ Categorical values that are based on the judgment or perception of the participant such familiar and famous.
+
+ Abnormal
+ Deviating in any way from the state, position, structure, condition, behavior, or rule which is considered a norm.
+
+ relatedTag
+ Normal
+
+
+
+ Asymmetrical
+ Lacking symmetry or having parts that fail to correspond to one another in shape, size, or arrangement.
+
+ relatedTag
+ Symmetrical
+
+
+
+ Audible
+ A sound that can be perceived by the participant.
+
+ relatedTag
+ Inaudible
+
+
+
+ Complex
+ Hard, involved or complicated, elaborate, having many parts.
+
+ relatedTag
+ Simple
+
+
+
+ Congruent
+ Concordance of multiple evidence lines. In agreement or harmony.
+
+ relatedTag
+ Incongruent
+
+
+
+ Constrained
+ Keeping something within particular limits or bounds.
+
+ relatedTag
+ Unconstrained
+
+
+
+ Disordered
+ Not neatly arranged. Confused and untidy. A structural quality in which the parts of an object are non-rigid.
+
+ relatedTag
+ Ordered
+
+
+
+ Familiar
+ Recognized, familiar, or within the scope of knowledge.
+
+ relatedTag
+ Unfamiliar
+ Famous
+
+
+
+ Famous
+ A person who has a high degree of recognition by the general population for his or her success or accomplishments. A famous person.
+
+ relatedTag
+ Familiar
+ Unfamiliar
+
+
+
+ Inaudible
+ A sound below the threshold of perception of the participant.
+
+ relatedTag
+ Audible
+
+
+
+ Incongruent
+ Not in agreement or harmony.
+
+ relatedTag
+ Congruent
+
+
+
+ Involuntary
+ An action that is not made by choice. In the body, involuntary actions (such as blushing) occur automatically, and cannot be controlled by choice.
+
+ relatedTag
+ Voluntary
+
+
+
+ Masked
+ Information exists but is not provided or is partially obscured due to security, privacy, or other concerns.
+
+ relatedTag
+ Unmasked
+
+
+
+ Normal
+ Being approximately average or within certain limits. Conforming with or constituting a norm or standard or level or type or social norm.
+
+ relatedTag
+ Abnormal
+
+
+
+ Ordered
+ Conforming to a logical or comprehensible arrangement of separate elements.
+
+ relatedTag
+ Disordered
+
+
+
+ Simple
+ Easily understood or presenting no difficulties.
+
+ relatedTag
+ Complex
+
+
+
+ Symmetrical
+ Made up of exactly similar parts facing each other or around an axis. Showing aspects of symmetry.
+
+ relatedTag
+ Asymmetrical
+
+
+
+ Unconstrained
+ Moving without restriction.
+
+ relatedTag
+ Constrained
+
+
+
+ Unfamiliar
+ Not having knowledge or experience of.
+
+ relatedTag
+ Familiar
+ Famous
+
+
+
+ Unmasked
+ Information is revealed.
+
+ relatedTag
+ Masked
+
+
+
+ Voluntary
+ Using free will or design; not forced or compelled; controlled by individual volition.
+
+ relatedTag
+ Involuntary
+
+
-
-
- Arrhythmic-trains-or-bursts-discharge-pattern
- Applies to the intra-burst pattern: a non-ictal graphoelement that repeats itself without returning to the background activity between them. The graphoelements within this repetition occur at inconstant period.
-
- suggestedTag
- Finding-prevalence
-
-
- inLibrary
- score
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
+ Categorical-level-value
+ Categorical values based on dividing a continuous variable into levels such as high and low.
+
+ Cold
+ Having an absence of heat.
+
+ relatedTag
+ Hot
+
+
+
+ Deep
+ Extending relatively far inward or downward.
+
+ relatedTag
+ Shallow
+
+
+
+ High
+ Having a greater than normal degree, intensity, or amount.
+
+ relatedTag
+ Low
+ Medium
+
+
+
+ Hot
+ Having an excess of heat.
+
+ relatedTag
+ Cold
+
+
+
+ Large
+ Having a great extent such as in physical dimensions, period of time, amplitude or frequency.
+
+ relatedTag
+ Small
+
+
+
+ Liminal
+ Situated at a sensory threshold that is barely perceptible or capable of eliciting a response.
+
+ relatedTag
+ Subliminal
+ Supraliminal
+
+
+
+ Loud
+ Having a perceived high intensity of sound.
+
+ relatedTag
+ Quiet
+
+
+
+ Low
+ Less than normal in degree, intensity or amount.
+
+ relatedTag
+ High
+
+
+
+ Medium
+ Mid-way between small and large in number, quantity, magnitude or extent.
+
+ relatedTag
+ Low
+ High
+
+
+
+ Negative
+ Involving disadvantage or harm.
+
+ relatedTag
+ Positive
+
+
+
+ Positive
+ Involving advantage or good.
+
+ relatedTag
+ Negative
+
+
+
+ Quiet
+ Characterizing a perceived low intensity of sound.
+
+ relatedTag
+ Loud
+
+
+
+ Rough
+ Having a surface with perceptible bumps, ridges, or irregularities.
+
+ relatedTag
+ Smooth
+
+
+
+ Shallow
+ Having a depth which is relatively low.
+
+ relatedTag
+ Deep
+
+
+
+ Small
+ Having a small extent such as in physical dimensions, period of time, amplitude or frequency.
+
+ relatedTag
+ Large
+
+
+
+ Smooth
+ Having a surface free from bumps, ridges, or irregularities.
+
+ relatedTag
+ Rough
+
+
+
+ Subliminal
+ Situated below a sensory threshold that is imperceptible or not capable of eliciting a response.
+
+ relatedTag
+ Liminal
+ Supraliminal
+
+
+
+ Supraliminal
+ Situated above a sensory threshold that is perceptible or capable of eliciting a response.
+
+ relatedTag
+ Liminal
+ Subliminal
+
+
+
+ Thick
+ Wide in width, extent or cross-section.
+
+ relatedTag
+ Thin
+
+
+
+ Thin
+ Narrow in width, extent or cross-section.
+
+ relatedTag
+ Thick
+
+
-
-
- Fragmented-discharge-pattern
-
- inLibrary
- score
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
-
-
- Periodic-discharge-time-related-features
- Periodic discharges not further specified (PDs) time-relayed features tags.
-
- requireChild
-
-
- inLibrary
- score
-
+ Categorical-orientation-value
+ Value indicating the orientation or direction of something.
+
+ Backward
+ Directed behind or to the rear.
+
+ relatedTag
+ Forward
+
+
+
+ Downward
+ Moving or leading toward a lower place or level.
+
+ relatedTag
+ Leftward
+ Rightward
+ Upward
+
+
+
+ Forward
+ At or near or directed toward the front.
+
+ relatedTag
+ Backward
+
+
+
+ Horizontally-oriented
+ Oriented parallel to or in the plane of the horizon.
+
+ relatedTag
+ Vertically-oriented
+
+
+
+ Leftward
+ Going toward or facing the left.
+
+ relatedTag
+ Downward
+ Rightward
+ Upward
+
+
+
+ Oblique
+ Slanting or inclined in direction, course, or position that is neither parallel nor perpendicular nor right-angular.
+
+ relatedTag
+ Rotated
+
+
+
+ Rightward
+ Going toward or situated on the right.
+
+ relatedTag
+ Downward
+ Leftward
+ Upward
+
+
+
+ Rotated
+ Positioned offset around an axis or center.
+
+
+ Upward
+ Moving, pointing, or leading to a higher place, point, or level.
+
+ relatedTag
+ Downward
+ Leftward
+ Rightward
+
+
+
+ Vertically-oriented
+ Oriented perpendicular to the plane of the horizon.
+
+ relatedTag
+ Horizontally-oriented
+
+
+
+
- Periodic-discharge-duration
-
- requireChild
-
-
- suggestedTag
- Property-not-possible-to-determine
-
-
- inLibrary
- score
-
+ Physical-value
+ The value of some physical property of something.
- Very-brief-periodic-discharge-duration
- Less than 10 sec.
-
- inLibrary
- score
-
+ Temperature
+ A measure of hot or cold based on the average kinetic energy of the atoms or molecules in the system.#
- Free text.takesValuevalueClass
- textClass
+ numericClass
- inLibrary
- score
+ unitClass
+ temperatureUnits
- Brief-periodic-discharge-duration
- 10 to 59 sec.
-
- inLibrary
- score
-
+ Weight
+ The relative mass or the quantity of matter contained by something.#
- Free text.takesValuevalueClass
- textClass
+ numericClass
- inLibrary
- score
+ unitClass
+ weightUnits
+
+
+ Quantitative-value
+ Something capable of being estimated or expressed with numeric values.
- Intermediate-periodic-discharge-duration
- 1 to 4.9 min.
-
- inLibrary
- score
-
+ Fraction
+ A numerical value between 0 and 1.#
- Free text.takesValuevalueClass
- textClass
+ numericClass
+
+
+
+
+ Item-count
+ The integer count of something which is usually grouped with the entity it is counting. (Item-count/3, A) indicates that 3 of A have occurred up to this point.
+
+ #
+
+ takesValue
- inLibrary
- score
+ valueClass
+ numericClass
- Long-periodic-discharge-duration
- 5 to 59 min.
-
- inLibrary
- score
-
+ Item-index
+ The index of an item in a collection, sequence or other structure. (A (Item-index/3, B)) means that A is item number 3 in B.#
- Free text.takesValuevalueClass
- textClass
+ numericClass
+
+
+
+ Item-interval
+ An integer indicating how many items or entities have passed since the last one of these. An item interval of 0 indicates the current item.
+
+ #
- inLibrary
- score
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+
+
+ Percentage
+ A fraction or ratio with 100 understood as the denominator.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+
+
+ Ratio
+ A quotient of quantities of the same kind for different components within the same system.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ Spatiotemporal-value
+ A property relating to space and/or time.
+
+ Rate-of-change
+ The amount of change accumulated per unit time.
+
+ Acceleration
+ Magnitude of the rate of change in either speed or direction. The direction of change should be given separately.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ accelerationUnits
+
+
+
+
+ Frequency
+ Frequency is the number of occurrences of a repeating event per unit time.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ frequencyUnits
+
+
+
+
+ Jerk-rate
+ Magnitude of the rate at which the acceleration of an object changes with respect to time. The direction of change should be given separately.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ jerkUnits
+
+
+
+
+ Refresh-rate
+ The frequency with which the image on a computer monitor or similar electronic display screen is refreshed, usually expressed in hertz.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+
+
+ Sampling-rate
+ The number of digital samples taken or recorded per unit of time.
+
+ #
+
+ takesValue
+
+
+ unitClass
+ frequencyUnits
+
+
+
+
+ Speed
+ A scalar measure of the rate of movement of the object expressed either as the distance travelled divided by the time taken (average speed) or the rate of change of position with respect to time at a particular point (instantaneous speed). The direction of change should be given separately.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ speedUnits
+
+
+
+
+ Temporal-rate
+ The number of items per unit of time.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ frequencyUnits
+
+
+
+
- Very-long-periodic-discharge-duration
- Greater than 1 hour.
-
- inLibrary
- score
-
+ Spatial-value
+ Value of an item involving space.
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
+ Angle
+ The amount of inclination of one line to another or the plane of one object to another.
+
+ #
+
+ takesValue
+
+
+ unitClass
+ angleUnits
+
+
+ valueClass
+ numericClass
+
+
-
-
-
- Periodic-discharge-onset
-
- requireChild
-
-
- suggestedTag
- Property-not-possible-to-determine
-
-
- inLibrary
- score
-
-
- Sudden-periodic-discharge-onset
-
- inLibrary
- score
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
+ Distance
+ A measure of the space separating two objects or points.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ physicalLengthUnits
+
+
-
-
- Gradual-periodic-discharge-onset
-
- inLibrary
- score
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
+ Position
+ A reference to the alignment of an object, a particular situation or view of a situation, or the location of an object. Coordinates with respect a specified frame of reference or the default Screen-frame if no frame is given.
+
+ X-position
+ The position along the x-axis of the frame of reference.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ physicalLengthUnits
+
+
+
+
+ Y-position
+ The position along the y-axis of the frame of reference.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ physicalLengthUnits
+
+
+
+
+ Z-position
+ The position along the z-axis of the frame of reference.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ physicalLengthUnits
+
+
+
+
+
+ Size
+ The physical magnitude of something.
+
+ Area
+ The extent of a 2-dimensional surface enclosed within a boundary.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ areaUnits
+
+
+
+
+ Depth
+ The distance from the surface of something especially from the perspective of looking from the front.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ physicalLengthUnits
+
+
+
+
+ Height
+ The vertical measurement or distance from the base to the top of an object.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ physicalLengthUnits
+
+
+
+
+ Length
+ The linear extent in space from one end of something to the other end, or the extent of something from beginning to end.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ physicalLengthUnits
+
+
+
+
+ Volume
+ The amount of three dimensional space occupied by an object or the capacity of a space or container.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ volumeUnits
+
+
+
+
+ Width
+ The extent or measurement of something from side to side.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ physicalLengthUnits
+
+
+
-
-
- Periodic-discharge-dynamics
-
- requireChild
-
-
- suggestedTag
- Property-not-possible-to-determine
-
-
- inLibrary
- score
-
- Evolving-periodic-discharge-dynamics
-
- inLibrary
- score
-
+ Temporal-value
+ A characteristic of or relating to time or limited by time.
- #
- Free text.
+ Delay
+ The time at which an event start time is delayed from the current onset time. This tag defines the start time of an event of temporal extent and may be used with the Duration tag.
- takesValue
+ topLevelTagGroup
- valueClass
- textClass
+ reserved
- inLibrary
- score
+ relatedTag
+ Duration
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ timeUnits
+
+
-
-
- Fluctuating-periodic-discharge-dynamics
-
- inLibrary
- score
-
- #
- Free text.
+ Duration
+ The period of time during which an event occurs. This tag defines the end time of an event of temporal extent and may be used with the Delay tag.
- takesValue
+ topLevelTagGroup
- valueClass
- textClass
+ reserved
- inLibrary
- score
+ relatedTag
+ Delay
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ timeUnits
+
+
-
-
- Static-periodic-discharge-dynamics
-
- inLibrary
- score
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
-
-
-
- Finding-extent
- Percentage of occurrence during the recording (background activity and interictal finding).
-
- inLibrary
- score
-
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
- inLibrary
- score
-
-
-
-
- Finding-incidence
- How often it occurs/time-epoch.
-
- requireChild
-
-
- inLibrary
- score
-
-
- Only-once-finding-incidence
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
-
- Rare-finding-incidence
- less than 1/h
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
-
- Uncommon-finding-incidence
- 1/5 min to 1/h.
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
-
- Occasional-finding-incidence
- 1/min to 1/5min.
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
+ Time-interval
+ The period of time separating two instances, events, or occurrences.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ timeUnits
+
+
+
+
+ Time-value
+ A value with units of time. Usually grouped with tags identifying what the value represents.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+ unitClass
+ timeUnits
+
+
+
- Frequent-finding-incidence
- 1/10 s to 1/min.
+ Statistical-value
+ A value based on or employing the principles of statistics.
- inLibrary
- score
+ extensionAllowed
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
+ Data-maximum
+ The largest possible quantity or degree.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
-
-
- Abundant-finding-incidence
- Greater than 1/10 s).
-
- inLibrary
- score
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
+ Data-mean
+ The sum of a set of values divided by the number of values in the set.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
-
-
-
- Finding-prevalence
- The percentage of the recording covered by the train/burst.
-
- requireChild
-
-
- inLibrary
- score
-
-
- Rare-finding-prevalence
- Less than 1 percent.
-
- inLibrary
- score
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
+ Data-median
+ The value which has an equal number of values greater and less than it.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
-
-
- Occasional-finding-prevalence
- 1 to 9 percent.
-
- inLibrary
- score
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
+ Data-minimum
+ The smallest possible quantity.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
-
-
- Frequent-finding-prevalence
- 10 to 49 percent.
-
- inLibrary
- score
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
+ Probability
+ A measure of the expectation of the occurrence of a particular event.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
-
-
- Abundant-finding-prevalence
- 50 to 89 percent.
-
- inLibrary
- score
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
+ Standard-deviation
+ A measure of the range of values in a set of numbers. Standard deviation is a statistic used as a measure of the dispersion or variation in a distribution, equal to the square root of the arithmetic mean of the squares of the deviations from the arithmetic mean.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
-
-
- Continuous-finding-prevalence
- Greater than 90 percent.
-
- inLibrary
- score
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
+ Statistical-accuracy
+ A measure of closeness to true value expressed as a number between 0 and 1.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
-
-
-
-
- Posterior-dominant-rhythm-property
- Posterior dominant rhythm is the most often scored EEG feature in clinical practice. Therefore, there are specific terms that can be chosen for characterizing the PDR.
-
- requireChild
-
-
- inLibrary
- score
-
-
- Posterior-dominant-rhythm-amplitude-range
-
- requireChild
-
-
- suggestedTag
- Property-not-possible-to-determine
-
-
- inLibrary
- score
-
-
- Low-posterior-dominant-rhythm-amplitude-range
- Low (less than 20 microV).
-
- inLibrary
- score
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
+ Statistical-precision
+ A quantitative representation of the degree of accuracy necessary for or associated with a particular action.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
-
-
- Medium-posterior-dominant-rhythm-amplitude-range
- Medium (between 20 and 70 microV).
-
- inLibrary
- score
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
+ Statistical-recall
+ Sensitivity is a measurement datum qualifying a binary classification test and is computed by substracting the false negative rate to the integral numeral 1.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
-
-
- High-posterior-dominant-rhythm-amplitude-range
- High (more than 70 microV).
-
- inLibrary
- score
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
+ Statistical-uncertainty
+ A measure of the inherent variability of repeated observation measurements of a quantity including quantities evaluated by statistical methods and by other means.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
- Posterior-dominant-rhythm-frequency-asymmetry
- When symmetrical could be labeled with base schema Symmetrical tag.
-
- requireChild
-
-
- inLibrary
- score
-
+ Data-variability-attribute
+ An attribute describing how something changes or varies.
- Posterior-dominant-rhythm-frequency-asymmetry-lower-left
- Hz lower on the left side.
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
+ Abrupt
+ Marked by sudden change.
- Posterior-dominant-rhythm-frequency-asymmetry-lower-right
- Hz lower on the right side.
+ Constant
+ Continually recurring or continuing without interruption. Not changing in time or space.
+
+
+ Continuous
+ Uninterrupted in time, sequence, substance, or extent.
- inLibrary
- score
+ relatedTag
+ Discrete
+ Discontinuous
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
-
- Posterior-dominant-rhythm-eye-opening-reactivity
- Change (disappearance or measurable decrease in amplitude) of a posterior dominant rhythm following eye-opening. Eye closure has the opposite effect.
-
- suggestedTag
- Property-not-possible-to-determine
-
-
- inLibrary
- score
-
- Posterior-dominant-rhythm-eye-opening-reactivity-reduced-left
- Reduced left side reactivity.
+ Decreasing
+ Becoming smaller or fewer in size, amount, intensity, or degree.
- inLibrary
- score
+ relatedTag
+ Increasing
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
- Posterior-dominant-rhythm-eye-opening-reactivity-reduced-right
- Reduced right side reactivity.
+ Deterministic
+ No randomness is involved in the development of the future states of the element.
- inLibrary
- score
-
-
- #
- free text
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
+ relatedTag
+ Random
+ Stochastic
+
- Posterior-dominant-rhythm-eye-opening-reactivity-reduced-both
- Reduced reactivity on both sides.
+ Discontinuous
+ Having a gap in time, sequence, substance, or extent.
- inLibrary
- score
+ relatedTag
+ Continuous
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
-
- Posterior-dominant-rhythm-organization
- When normal could be labeled with base schema Normal tag.
-
- requireChild
-
-
- inLibrary
- score
-
- Posterior-dominant-rhythm-organization-poorly-organized
- Poorly organized.
+ Discrete
+ Constituting a separate entities or parts.
- inLibrary
- score
+ relatedTag
+ Continuous
+ Discontinuous
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
- Posterior-dominant-rhythm-organization-disorganized
- Disorganized.
+ Estimated-value
+ Something that has been calculated or measured approximately.
+
+
+ Exact-value
+ A value that is viewed to the true value according to some standard.
+
+
+ Flickering
+ Moving irregularly or unsteadily or burning or shining fitfully or with a fluctuating light.
+
+
+ Fractal
+ Having extremely irregular curves or shapes for which any suitably chosen part is similar in shape to a given larger or smaller part when magnified or reduced to the same size.
+
+
+ Increasing
+ Becoming greater in size, amount, or degree.
- inLibrary
- score
+ relatedTag
+ Decreasing
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
- Posterior-dominant-rhythm-organization-markedly-disorganized
- Markedly disorganized.
+ Random
+ Governed by or depending on chance. Lacking any definite plan or order or purpose.
- inLibrary
- score
+ relatedTag
+ Deterministic
+ Stochastic
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
-
- Posterior-dominant-rhythm-caveat
- Caveat to the annotation of PDR.
-
- requireChild
-
-
- inLibrary
- score
-
- No-posterior-dominant-rhythm-caveat
+ Repetitive
+ A recurring action that is often non-purposeful.
+
+
+ Stochastic
+ Uses a random probability distribution or pattern that may be analysed statistically but may not be predicted precisely to determine future states.
- inLibrary
- score
+ relatedTag
+ Deterministic
+ Random
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
- Posterior-dominant-rhythm-caveat-only-open-eyes-during-the-recording
+ Varying
+ Differing in size, amount, degree, or nature.
+
+
+
+
+ Environmental-property
+ Relating to or arising from the surroundings of an agent.
+
+ Augmented-reality
+ Using technology that enhances real-world experiences with computer-derived digital overlays to change some aspects of perception of the natural environment. The digital content is shown to the user through a smart device or glasses and responds to changes in the environment.
+
+
+ Indoors
+ Located inside a building or enclosure.
+
+
+ Motion-platform
+ A mechanism that creates the feelings of being in a real motion environment.
+
+
+ Outdoors
+ Any area outside a building or shelter.
+
+
+ Real-world
+ Located in a place that exists in real space and time under realistic conditions.
+
+
+ Rural
+ Of or pertaining to the country as opposed to the city.
+
+
+ Terrain
+ Characterization of the physical features of a tract of land.
+
+ Composite-terrain
+ Tracts of land characterized by a mixure of physical features.
+
+
+ Dirt-terrain
+ Tracts of land characterized by a soil surface and lack of vegetation.
+
+
+ Grassy-terrain
+ Tracts of land covered by grass.
+
+
+ Gravel-terrain
+ Tracts of land covered by a surface consisting a loose aggregation of small water-worn or pounded stones.
+
+
+ Leaf-covered-terrain
+ Tracts of land covered by leaves and composited organic material.
+
+
+ Muddy-terrain
+ Tracts of land covered by a liquid or semi-liquid mixture of water and some combination of soil, silt, and clay.
+
+
+ Paved-terrain
+ Tracts of land covered with concrete, asphalt, stones, or bricks.
+
+
+ Rocky-terrain
+ Tracts of land consisting or full of rock or rocks.
+
+
+ Sloped-terrain
+ Tracts of land arranged in a sloping or inclined position.
+
+
+ Uneven-terrain
+ Tracts of land that are not level, smooth, or regular.
+
+
+
+ Urban
+ Relating to, located in, or characteristic of a city or densely populated area.
+
+
+ Virtual-world
+ Using technology that creates immersive, computer-generated experiences that a person can interact with and navigate through. The digital content is generally delivered to the user through some type of headset and responds to changes in head position or through interaction with other types of sensors. Existing in a virtual setting such as a simulation or game environment.
+
+
+
+ Informational-property
+ Something that pertains to a task.
+
+ extensionAllowed
+
+
+ Description
+ An explanation of what the tag group it is in means. If the description is at the top-level of an event string, the description applies to the event.
+
+ requireChild
+
+
+ #
- inLibrary
- score
+ takesValue
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
-
- Posterior-dominant-rhythm-caveat-sleep-deprived-caveat
- inLibrary
- score
+ valueClass
+ textClass
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
+
+
+ ID
+ An alphanumeric name that identifies either a unique object or a unique class of objects. Here the object or class may be an idea, physical countable object (or class), or physical uncountable substance (or class).
+
+ requireChild
+
- Posterior-dominant-rhythm-caveat-drowsy
+ #
- inLibrary
- score
+ takesValue
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
-
- Posterior-dominant-rhythm-caveat-only-following-hyperventilation
- inLibrary
- score
+ valueClass
+ textClass
- Absence-of-posterior-dominant-rhythm
- Reason for absence of PDR.
+ Label
+ A string of 20 or fewer characters identifying something. Labels usually refer to general classes of things while IDs refer to specific instances. A term that is associated with some entity. A brief description given for purposes of identification. An identifying or descriptive marker that is attached to an object.requireChild
-
- inLibrary
- score
-
- Absence-of-posterior-dominant-rhythm-artifacts
+ #
- inLibrary
- score
+ takesValue
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
-
- Absence-of-posterior-dominant-rhythm-extreme-low-voltage
- inLibrary
- score
+ valueClass
+ nameClass
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
+
+
+ Metadata
+ Data about data. Information that describes another set of data.
- Absence-of-posterior-dominant-rhythm-eye-closure-could-not-be-achieved
-
- inLibrary
- score
-
+ CogAtlas
+ The Cognitive Atlas ID number of something.#
- Free text.takesValue
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
- Absence-of-posterior-dominant-rhythm-lack-of-awake-period
-
- inLibrary
- score
-
+ CogPo
+ The CogPO ID number of something.#
- Free text.takesValue
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
- Absence-of-posterior-dominant-rhythm-lack-of-compliance
+ Creation-date
+ The date on which data creation of this element began.
- inLibrary
- score
+ requireChild#
- Free text.takesValuevalueClass
- textClass
-
-
- inLibrary
- score
+ dateTimeClass
- Absence-of-posterior-dominant-rhythm-other-causes
-
- requireChild
-
-
- inLibrary
- score
-
+ Experimental-note
+ A brief written record about the experiment.#
- Free text.takesValue
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
-
-
-
- Episode-property
-
- requireChild
-
-
- inLibrary
- score
-
-
- Seizure-classification
- Epileptic seizures are named using the current ILAE seizure classification (Fisher et al., 2017, Beniczky et al., 2017).
-
- requireChild
-
-
- inLibrary
- score
-
-
- Motor-onset-seizure
-
- inLibrary
- score
-
-
- Myoclonic-motor-onset-seizure
-
- inLibrary
- score
-
-
-
- Negative-myoclonic-motor-onset-seizure
-
- inLibrary
- score
-
-
-
- Clonic-motor-onset-seizure
-
- inLibrary
- score
-
-
-
- Tonic-motor-onset-seizure
-
- inLibrary
- score
-
-
-
- Atonic-motor-onset-seizure
-
- inLibrary
- score
+ valueClass
+ textClass
+
+
+ Library-name
+ Official name of a HED library.
- Myoclonic-atonic-motor-onset-seizure
+ #
- inLibrary
- score
+ takesValue
-
-
- Myoclonic-tonic-clonic-motor-onset-seizure
- inLibrary
- score
+ valueClass
+ nameClass
+
+
+ OBO-identifier
+ The identifier of a term in some Open Biology Ontology (OBO) ontology.
- Tonic-clonic-motor-onset-seizure
+ #
- inLibrary
- score
+ takesValue
-
-
- Automatism-motor-onset-seizure
- inLibrary
- score
+ valueClass
+ nameClass
+
+
+ Pathname
+ The specification of a node (file or directory) in a hierarchical file system, usually specified by listing the nodes top-down.
- Hyperkinetic-motor-onset-seizure
+ #
- inLibrary
- score
+ takesValue
+
+
+ Subject-identifier
+ A sequence of characters used to identify, name, or characterize a trial or study subject.
- Epileptic-spasm-episode
+ #
- inLibrary
- score
+ takesValue
- Nonmotor-onset-seizure
-
- inLibrary
- score
-
+ Version-identifier
+ An alphanumeric character string that identifies a form or variant of a type or original.
- Behavior-arrest-nonmotor-onset-seizure
+ #
+ Usually is a semantic version.
- inLibrary
- score
+ takesValue
+
+
+
+ Parameter
+ Something user-defined for this experiment.
+
+ Parameter-label
+ The name of the parameter.
- Sensory-nonmotor-onset-seizure
+ #
- inLibrary
- score
+ takesValue
-
-
- Emotional-nonmotor-onset-seizure
- inLibrary
- score
+ valueClass
+ nameClass
+
+
+ Parameter-value
+ The value of the parameter.
- Cognitive-nonmotor-onset-seizure
+ #
- inLibrary
- score
+ takesValue
-
-
- Autonomic-nonmotor-onset-seizure
- inLibrary
- score
+ valueClass
+ textClass
+
+
+
+ Organizational-property
+ Relating to an organization or the action of organizing something.
+
+ Collection
+ A tag designating a grouping of items such as in a set or list.
+
+ #
+ Name of the collection.
+
+ takesValue
+
+
+ valueClass
+ nameClass
+
+
+
+
+ Condition-variable
+ An aspect of the experiment or task that is to be varied during the experiment. Task-conditions are sometimes called independent variables or contrasts.
+
+ #
+ Name of the condition variable.
+
+ takesValue
+
+
+ valueClass
+ nameClass
+
+
+
+
+ Control-variable
+ An aspect of the experiment that is fixed throughout the study and usually is explicitly controlled.
+
+ #
+ Name of the control variable.
+
+ takesValue
+
+
+ valueClass
+ nameClass
+
+
+
+
+ Def
+ A HED-specific utility tag used with a defined name to represent the tags associated with that definition.
+
+ requireChild
+
+
+ reserved
+
+
+ #
+ Name of the definition.
+
+ takesValue
+
+
+ valueClass
+ nameClass
+
+
+
+
+ Def-expand
+ A HED specific utility tag that is grouped with an expanded definition. The child value of the Def-expand is the name of the expanded definition.
+
+ requireChild
+
+
+ reserved
+
+
+ tagGroup
+
+
+ #
+
+ takesValue
+
+
+ valueClass
+ nameClass
+
+
+
+
+ Definition
+ A HED-specific utility tag whose child value is the name of the concept and the tag group associated with the tag is an English language explanation of a concept.
+
+ requireChild
+
+
+ reserved
+
+
+ topLevelTagGroup
+
+
+ #
+ Name of the definition.
+
+ takesValue
+
+
+ valueClass
+ nameClass
+
+
+
+
+ Event-context
+ A special HED tag inserted as part of a top-level tag group to contain information about the interrelated conditions under which the event occurs. The event context includes information about other events that are ongoing when this event happens.
+
+ reserved
+
+
+ topLevelTagGroup
+
+
+ unique
+
+
+
+ Event-stream
+ A special HED tag indicating that this event is a member of an ordered succession of events.
+
+ #
+ Name of the event stream.
+
+ takesValue
+
+
+ valueClass
+ nameClass
+
+
+
+
+ Experimental-intertrial
+ A tag used to indicate a part of the experiment between trials usually where nothing is happening.
+
+ #
+ Optional label for the intertrial block.
+
+ takesValue
+
+
+ valueClass
+ nameClass
+
+
+
+
+ Experimental-trial
+ Designates a run or execution of an activity, for example, one execution of a script. A tag used to indicate a particular organizational part in the experimental design often containing a stimulus-response pair or stimulus-response-feedback triad.
- Absence-seizure
+ #
+ Optional label for the trial (often a numerical string).
- inLibrary
- score
+ takesValue
+
+
+ valueClass
+ nameClass
-
- Typical-absence-seizure
-
- inLibrary
- score
-
-
-
- Atypical-absence-seizure
-
- inLibrary
- score
-
-
-
- Myoclonic-absence-seizure
-
- inLibrary
- score
-
-
-
- Eyelid-myoclonia-absence-seizure
-
- inLibrary
- score
-
-
- Episode-phase
- The electroclinical findings (i.e., the seizure semiology and the ictal EEG) are divided in three phases: onset, propagation, and postictal.
-
- requireChild
-
-
- suggestedTag
- Seizure-semiology-manifestation
- Postictal-semiology-manifestation
- Ictal-EEG-patterns
-
-
- inLibrary
- score
-
+ Indicator-variable
+ An aspect of the experiment or task that is measured as task conditions are varied during the experiment. Experiment indicators are sometimes called dependent variables.
- Episode-phase-initial
+ #
+ Name of the indicator variable.
- inLibrary
- score
+ takesValue
+
+
+ valueClass
+ nameClass
+
+
+ Recording
+ A tag designating the data recording. Recording tags are usually have temporal scope which is the entire recording.
- Episode-phase-subsequent
+ #
+ Optional label for the recording.
- inLibrary
- score
+ takesValue
+
+
+ valueClass
+ nameClass
+
+
+ Task
+ An assigned piece of work, usually with a time allotment. A tag used to indicate a linkage the structured activities performed as part of the experiment.
- Episode-phase-postictal
+ #
+ Optional label for the task block.
- inLibrary
- score
+ takesValue
+
+
+ valueClass
+ nameClass
- Seizure-semiology-manifestation
- Semiology is described according to the ILAE Glossary of Descriptive Terminology for Ictal Semiology (Blume et al., 2001). Besides the name, the semiologic finding can also be characterized by the somatotopic modifier, laterality, body part and centricity. Uses Location-property tags.
-
- requireChild
-
-
- inLibrary
- score
-
+ Time-block
+ A tag used to indicate a contiguous time block in the experiment during which something is fixed or noted.
- Semiology-motor-manifestation
+ #
+ Optional label for the task block.
- inLibrary
- score
+ takesValue
+
+ valueClass
+ nameClass
+
+
+
+
+
+ Sensory-property
+ Relating to sensation or the physical senses.
+
+ Sensory-attribute
+ A sensory characteristic associated with another entity.
+
+ Auditory-attribute
+ Pertaining to the sense of hearing.
- Semiology-elementary-motor
-
- inLibrary
- score
-
-
- Semiology-motor-tonic
- A sustained increase in muscle contraction lasting a few seconds to minutes.
-
- suggestedTag
- Brain-laterality
- Body-part
- Brain-centricity
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Semiology-motor-dystonic
- Sustained contractions of both agonist and antagonist muscles producing athetoid or twisting movements, which, when prolonged, may produce abnormal postures.
-
- suggestedTag
- Brain-laterality
- Body-part
- Brain-centricity
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Semiology-motor-epileptic-spasm
- A sudden flexion, extension, or mixed extension flexion of predominantly proximal and truncal muscles that is usually more sustained than a myoclonic movement but not so sustained as a tonic seizure (i.e., about 1 s). Limited forms may occur: grimacing, head nodding. Frequent occurrence in clusters.
-
- suggestedTag
- Brain-laterality
- Body-part
- Brain-centricity
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Semiology-motor-postural
- Adoption of a posture that may be bilaterally symmetric or asymmetric (as in a fencing posture).
-
- suggestedTag
- Brain-laterality
- Body-part
- Brain-centricity
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Semiology-motor-versive
- A sustained, forced conjugate ocular, cephalic, and/or truncal rotation or lateral deviation from the midline.
-
- suggestedTag
- Body-part
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Semiology-motor-clonic
- Myoclonus that is regularly repetitive, involves the same muscle groups, at a frequency of about 2 to 3 c/s, and is prolonged. Synonym: rhythmic myoclonus .
-
- suggestedTag
- Brain-laterality
- Body-part
- Brain-centricity
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Semiology-motor-myoclonic
- Characterized by myoclonus. MYOCLONUS : sudden, brief (lower than 100 ms) involuntary single or multiple contraction(s) of muscles(s) or muscle groups of variable topography (axial, proximal limb, distal).
-
- suggestedTag
- Brain-laterality
- Body-part
- Brain-centricity
- Episode-event-count
-
-
- inLibrary
- score
-
-
+ Loudness
+ Perceived intensity of a sound.
- Semiology-motor-jacksonian-march
- Term indicating spread of clonic movements through contiguous body parts unilaterally.
+ #
- suggestedTag
- Brain-laterality
- Body-part
- Brain-centricity
- Episode-event-count
+ takesValue
- inLibrary
- score
+ valueClass
+ numericClass
+ nameClass
+
+
+ Pitch
+ A perceptual property that allows the user to order sounds on a frequency scale.
- Semiology-motor-negative-myoclonus
- Characterized by negative myoclonus. NEGATIVE MYOCLONUS: interruption of tonic muscular activity for lower than 500 ms without evidence of preceding myoclonia.
-
- suggestedTag
- Brain-laterality
- Body-part
- Brain-centricity
- Episode-event-count
-
+ #
- inLibrary
- score
+ takesValue
-
-
- Semiology-motor-tonic-clonic
- A sequence consisting of a tonic followed by a clonic phase. Variants such as clonic-tonic-clonic may be seen. Asymmetry of limb posture during the tonic phase of a GTC: one arm is rigidly extended at the elbow (often with the fist clenched tightly and flexed at the wrist), whereas the opposite arm is flexed at the elbow.
- requireChild
+ valueClass
+ numericClass
- inLibrary
- score
+ unitClass
+ frequencyUnits
+
+
+
+ Sound-envelope
+ Description of how a sound changes over time.
+
+ Sound-envelope-attack
+ The time taken for initial run-up of level from nil to peak usually beginning when the key on a musical instrument is pressed.
- Semiology-motor-tonic-clonic-without-figure-of-four
+ #
- suggestedTag
- Brain-laterality
- Body-part
- Brain-centricity
- Episode-event-count
+ takesValue
- inLibrary
- score
+ valueClass
+ numericClass
+
+
+ unitClass
+ timeUnits
+
+
+ Sound-envelope-decay
+ The time taken for the subsequent run down from the attack level to the designated sustain level.
- Semiology-motor-tonic-clonic-with-figure-of-four-extension-left-elbow
+ #
- suggestedTag
- Brain-laterality
- Body-part
- Brain-centricity
- Episode-event-count
+ takesValue
- inLibrary
- score
+ valueClass
+ numericClass
+
+
+ unitClass
+ timeUnits
+
+
+ Sound-envelope-release
+ The time taken for the level to decay from the sustain level to zero after the key is released.
- Semiology-motor-tonic-clonic-with-figure-of-four-extension-right-elbow
+ #
- suggestedTag
- Brain-laterality
- Body-part
- Brain-centricity
- Episode-event-count
+ takesValue
- inLibrary
- score
+ valueClass
+ numericClass
+
+
+ unitClass
+ timeUnits
- Semiology-motor-astatic
- Loss of erect posture that results from an atonic, myoclonic, or tonic mechanism. Synonym: drop attack.
-
- suggestedTag
- Brain-laterality
- Body-part
- Brain-centricity
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Semiology-motor-atonic
- Sudden loss or diminution of muscle tone without apparent preceding myoclonic or tonic event lasting greater or equal to 1 to 2 s, involving head, trunk, jaw, or limb musculature.
-
- suggestedTag
- Brain-laterality
- Body-part
- Brain-centricity
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Semiology-motor-eye-blinking
-
- suggestedTag
- Brain-laterality
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Semiology-motor-other-elementary-motor
-
- requireChild
-
-
- inLibrary
- score
-
+ Sound-envelope-sustain
+ The time taken for the main sequence of the sound duration, until the key is released.#
- Free text.takesValuevalueClass
- textClass
+ numericClass
- inLibrary
- score
+ unitClass
+ timeUnits
- Semiology-motor-automatisms
-
- inLibrary
- score
-
-
- Semiology-motor-automatisms-mimetic
- Facial expression suggesting an emotional state, often fear.
-
- suggestedTag
- Episode-responsiveness
- Episode-appearance
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Semiology-motor-automatisms-oroalimentary
- Lip smacking, lip pursing, chewing, licking, tooth grinding, or swallowing.
-
- suggestedTag
- Episode-responsiveness
- Episode-appearance
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Semiology-motor-automatisms-dacrystic
- Bursts of crying.
-
- suggestedTag
- Episode-responsiveness
- Episode-appearance
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Semiology-motor-automatisms-dyspraxic
- Inability to perform learned movements spontaneously or on command or imitation despite intact relevant motor and sensory systems and adequate comprehension and cooperation.
-
- suggestedTag
- Brain-laterality
- Body-part
- Brain-centricity
- Episode-responsiveness
- Episode-appearance
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Semiology-motor-automatisms-manual
- 1. Indicates principally distal components, bilateral or unilateral. 2. Fumbling, tapping, manipulating movements.
-
- suggestedTag
- Brain-laterality
- Brain-centricity
- Episode-responsiveness
- Episode-appearance
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Semiology-motor-automatisms-gestural
- Semipurposive, asynchronous hand movements. Often unilateral.
-
- suggestedTag
- Brain-laterality
- Episode-responsiveness
- Episode-appearance
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Semiology-motor-automatisms-pedal
- 1. Indicates principally distal components, bilateral or unilateral. 2. Fumbling, tapping, manipulating movements.
-
- suggestedTag
- Brain-laterality
- Brain-centricity
- Episode-responsiveness
- Episode-appearance
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Semiology-motor-automatisms-hypermotor
- 1. Involves predominantly proximal limb or axial muscles producing irregular sequential ballistic movements, such as pedaling, pelvic thrusting, thrashing, rocking movements. 2. Increase in rate of ongoing movements or inappropriately rapid performance of a movement.
-
- suggestedTag
- Brain-laterality
- Body-part
- Brain-centricity
- Episode-responsiveness
- Episode-appearance
- Episode-event-count
-
+ Sound-volume
+ The sound pressure level (SPL) usually the ratio to a reference signal estimated as the lower bound of hearing.
+
+ #
- inLibrary
- score
+ takesValue
-
-
- Semiology-motor-automatisms-hypokinetic
- A decrease in amplitude and/or rate or arrest of ongoing motor activity.
- suggestedTag
- Brain-laterality
- Body-part
- Brain-centricity
- Episode-responsiveness
- Episode-appearance
- Episode-event-count
+ valueClass
+ numericClass
- inLibrary
- score
+ unitClass
+ intensityUnits
+
+
+ Timbre
+ The perceived sound quality of a singing voice or musical instrument.
- Semiology-motor-automatisms-gelastic
- Bursts of laughter or giggling, usually without an appropriate affective tone.
+ #
- suggestedTag
- Episode-responsiveness
- Episode-appearance
- Episode-event-count
+ takesValue
- inLibrary
- score
+ valueClass
+ nameClass
+
+
+
+ Gustatory-attribute
+ Pertaining to the sense of taste.
+
+ Bitter
+ Having a sharp, pungent taste.
+
+
+ Salty
+ Tasting of or like salt.
+
+
+ Savory
+ Belonging to a taste that is salty or spicy rather than sweet.
+
+
+ Sour
+ Having a sharp, acidic taste.
+
+
+ Sweet
+ Having or resembling the taste of sugar.
+
+
+
+ Olfactory-attribute
+ Having a smell.
+
+
+ Somatic-attribute
+ Pertaining to the feelings in the body or of the nervous system.
+
+ Pain
+ The sensation of discomfort, distress, or agony, resulting from the stimulation of specialized nerve endings.
+
+
+ Stress
+ The negative mental, emotional, and physical reactions that occur when environmental stressors are perceived as exceeding the adaptive capacities of the individual.
+
+
+
+ Tactile-attribute
+ Pertaining to the sense of touch.
+
+ Tactile-pressure
+ Having a feeling of heaviness.
+
+
+ Tactile-temperature
+ Having a feeling of hotness or coldness.
+
+
+ Tactile-texture
+ Having a feeling of roughness.
+
+
+ Tactile-vibration
+ Having a feeling of mechanical oscillation.
+
+
+
+ Vestibular-attribute
+ Pertaining to the sense of balance or body position.
+
+
+ Visual-attribute
+ Pertaining to the sense of sight.
+
+ Color
+ The appearance of objects (or light sources) described in terms of perception of their hue and lightness (or brightness) and saturation.
- Semiology-motor-other-automatisms
-
- requireChild
-
-
- inLibrary
- score
-
+ CSS-color
+ One of 140 colors supported by all browsers. For more details such as the color RGB or HEX values, check: https://www.w3schools.com/colors/colors_groups.asp.
+
+ Blue-color
+ CSS color group.
+
+ Blue
+ CSS-color 0x0000FF.
+
+
+ CadetBlue
+ CSS-color 0x5F9EA0.
+
+
+ CornflowerBlue
+ CSS-color 0x6495ED.
+
+
+ DarkBlue
+ CSS-color 0x00008B.
+
+
+ DeepSkyBlue
+ CSS-color 0x00BFFF.
+
+
+ DodgerBlue
+ CSS-color 0x1E90FF.
+
+
+ LightBlue
+ CSS-color 0xADD8E6.
+
+
+ LightSkyBlue
+ CSS-color 0x87CEFA.
+
+
+ LightSteelBlue
+ CSS-color 0xB0C4DE.
+
+
+ MediumBlue
+ CSS-color 0x0000CD.
+
+
+ MidnightBlue
+ CSS-color 0x191970.
+
+
+ Navy
+ CSS-color 0x000080.
+
+
+ PowderBlue
+ CSS-color 0xB0E0E6.
+
+
+ RoyalBlue
+ CSS-color 0x4169E1.
+
+
+ SkyBlue
+ CSS-color 0x87CEEB.
+
+
+ SteelBlue
+ CSS-color 0x4682B4.
+
+
+
+ Brown-color
+ CSS color group.
+
+ Bisque
+ CSS-color 0xFFE4C4.
+
+
+ BlanchedAlmond
+ CSS-color 0xFFEBCD.
+
+
+ Brown
+ CSS-color 0xA52A2A.
+
+
+ BurlyWood
+ CSS-color 0xDEB887.
+
+
+ Chocolate
+ CSS-color 0xD2691E.
+
+
+ Cornsilk
+ CSS-color 0xFFF8DC.
+
+
+ DarkGoldenRod
+ CSS-color 0xB8860B.
+
+
+ GoldenRod
+ CSS-color 0xDAA520.
+
+
+ Maroon
+ CSS-color 0x800000.
+
+
+ NavajoWhite
+ CSS-color 0xFFDEAD.
+
+
+ Olive
+ CSS-color 0x808000.
+
+
+ Peru
+ CSS-color 0xCD853F.
+
+
+ RosyBrown
+ CSS-color 0xBC8F8F.
+
+
+ SaddleBrown
+ CSS-color 0x8B4513.
+
+
+ SandyBrown
+ CSS-color 0xF4A460.
+
+
+ Sienna
+ CSS-color 0xA0522D.
+
+
+ Tan
+ CSS-color 0xD2B48C.
+
+
+ Wheat
+ CSS-color 0xF5DEB3.
+
+
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
+ Cyan-color
+ CSS color group.
+
+ Aqua
+ CSS-color 0x00FFFF.
+
+
+ Aquamarine
+ CSS-color 0x7FFFD4.
+
+
+ Cyan
+ CSS-color 0x00FFFF.
+
+
+ DarkTurquoise
+ CSS-color 0x00CED1.
+
+
+ LightCyan
+ CSS-color 0xE0FFFF.
+
+
+ MediumTurquoise
+ CSS-color 0x48D1CC.
+
+
+ PaleTurquoise
+ CSS-color 0xAFEEEE.
+
+
+ Turquoise
+ CSS-color 0x40E0D0.
+
+
+
+ Gray-color
+ CSS color group.
+
+ Black
+ CSS-color 0x000000.
+
+
+ DarkGray
+ CSS-color 0xA9A9A9.
+
+
+ DarkSlateGray
+ CSS-color 0x2F4F4F.
+
+
+ DimGray
+ CSS-color 0x696969.
+
+
+ Gainsboro
+ CSS-color 0xDCDCDC.
+
+
+ Gray
+ CSS-color 0x808080.
+
+
+ LightGray
+ CSS-color 0xD3D3D3.
+
+
+ LightSlateGray
+ CSS-color 0x778899.
+
+
+ Silver
+ CSS-color 0xC0C0C0.
+
+
+ SlateGray
+ CSS-color 0x708090.
+
+
+
+ Green-color
+ CSS color group.
+
+ Chartreuse
+ CSS-color 0x7FFF00.
+
+
+ DarkCyan
+ CSS-color 0x008B8B.
+
+
+ DarkGreen
+ CSS-color 0x006400.
+
+
+ DarkOliveGreen
+ CSS-color 0x556B2F.
+
+
+ DarkSeaGreen
+ CSS-color 0x8FBC8F.
+
+
+ ForestGreen
+ CSS-color 0x228B22.
+
+
+ Green
+ CSS-color 0x008000.
+
+
+ GreenYellow
+ CSS-color 0xADFF2F.
+
+
+ LawnGreen
+ CSS-color 0x7CFC00.
+
+
+ LightGreen
+ CSS-color 0x90EE90.
+
+
+ LightSeaGreen
+ CSS-color 0x20B2AA.
+
+
+ Lime
+ CSS-color 0x00FF00.
+
+
+ LimeGreen
+ CSS-color 0x32CD32.
+
+
+ MediumAquaMarine
+ CSS-color 0x66CDAA.
+
+
+ MediumSeaGreen
+ CSS-color 0x3CB371.
+
+
+ MediumSpringGreen
+ CSS-color 0x00FA9A.
+
+
+ OliveDrab
+ CSS-color 0x6B8E23.
+
+
+ PaleGreen
+ CSS-color 0x98FB98.
+
+
+ SeaGreen
+ CSS-color 0x2E8B57.
+
+
+ SpringGreen
+ CSS-color 0x00FF7F.
+
+
+ Teal
+ CSS-color 0x008080.
+
+
+ YellowGreen
+ CSS-color 0x9ACD32.
+
-
-
-
- Semiology-motor-behavioral-arrest
- Interruption of ongoing motor activity or of ongoing behaviors with fixed gaze, without movement of the head or trunk (oro-alimentary and hand automatisms may continue).
-
- suggestedTag
- Brain-laterality
- Body-part
- Brain-centricity
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
-
- Semiology-non-motor-manifestation
-
- inLibrary
- score
-
-
- Semiology-sensory
-
- inLibrary
- score
-
-
- Semiology-sensory-headache
- Headache occurring in close temporal proximity to the seizure or as the sole seizure manifestation.
-
- suggestedTag
- Brain-laterality
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Semiology-sensory-visual
- Flashing or flickering lights, spots, simple patterns, scotomata, or amaurosis.
-
- suggestedTag
- Brain-laterality
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Semiology-sensory-auditory
- Buzzing, drumming sounds or single tones.
-
- suggestedTag
- Brain-laterality
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Semiology-sensory-olfactory
-
- suggestedTag
- Body-part
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Semiology-sensory-gustatory
- Taste sensations including acidic, bitter, salty, sweet, or metallic.
-
- suggestedTag
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Semiology-sensory-epigastric
- Abdominal discomfort including nausea, emptiness, tightness, churning, butterflies, malaise, pain, and hunger; sensation may rise to chest or throat. Some phenomena may reflect ictal autonomic dysfunction.
-
- suggestedTag
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Semiology-sensory-somatosensory
- Tingling, numbness, electric-shock sensation, sense of movement or desire to move.
-
- suggestedTag
- Brain-laterality
- Body-part
- Brain-centricity
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Semiology-sensory-painful
- Peripheral (lateralized/bilateral), cephalic, abdominal.
-
- suggestedTag
- Brain-laterality
- Body-part
- Brain-centricity
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Semiology-sensory-autonomic-sensation
- A sensation consistent with involvement of the autonomic nervous system, including cardiovascular, gastrointestinal, sudomotor, vasomotor, and thermoregulatory functions. (Thus autonomic aura; cf. autonomic events 3.0).
-
- suggestedTag
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Semiology-sensory-other
-
- requireChild
-
-
- inLibrary
- score
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
+ Orange-color
+ CSS color group.
+
+ Coral
+ CSS-color 0xFF7F50.
+
+
+ DarkOrange
+ CSS-color 0xFF8C00.
+
+
+ Orange
+ CSS-color 0xFFA500.
+
+
+ OrangeRed
+ CSS-color 0xFF4500.
+
+
+ Tomato
+ CSS-color 0xFF6347.
+
-
-
-
- Semiology-experiential
-
- inLibrary
- score
-
-
- Semiology-experiential-affective-emotional
- Components include fear, depression, joy, and (rarely) anger.
-
- suggestedTag
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Semiology-experiential-hallucinatory
- Composite perceptions without corresponding external stimuli involving visual, auditory, somatosensory, olfactory, and/or gustatory phenomena. Example: hearing and seeing people talking.
-
- suggestedTag
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Semiology-experiential-illusory
- An alteration of actual percepts involving the visual, auditory, somatosensory, olfactory, or gustatory systems.
-
- suggestedTag
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Semiology-experiential-mnemonic
- Components that reflect ictal dysmnesia such as feelings of familiarity (deja-vu) and unfamiliarity (jamais-vu).
-
- inLibrary
- score
-
- Semiology-experiential-mnemonic-Deja-vu
-
- suggestedTag
- Episode-event-count
-
-
- inLibrary
- score
-
+ Pink-color
+ CSS color group.
+
+ DeepPink
+ CSS-color 0xFF1493.
+
+
+ HotPink
+ CSS-color 0xFF69B4.
+
+
+ LightPink
+ CSS-color 0xFFB6C1.
+
+
+ MediumVioletRed
+ CSS-color 0xC71585.
+
+
+ PaleVioletRed
+ CSS-color 0xDB7093.
+
+
+ Pink
+ CSS-color 0xFFC0CB.
+
+
+
+ Purple-color
+ CSS color group.
+
+ BlueViolet
+ CSS-color 0x8A2BE2.
+
+
+ DarkMagenta
+ CSS-color 0x8B008B.
+
+
+ DarkOrchid
+ CSS-color 0x9932CC.
+
+
+ DarkSlateBlue
+ CSS-color 0x483D8B.
+
+
+ DarkViolet
+ CSS-color 0x9400D3.
+
+
+ Fuchsia
+ CSS-color 0xFF00FF.
+
+
+ Indigo
+ CSS-color 0x4B0082.
+
+
+ Lavender
+ CSS-color 0xE6E6FA.
+
+
+ Magenta
+ CSS-color 0xFF00FF.
+
+
+ MediumOrchid
+ CSS-color 0xBA55D3.
+
+
+ MediumPurple
+ CSS-color 0x9370DB.
+
+
+ MediumSlateBlue
+ CSS-color 0x7B68EE.
+
+
+ Orchid
+ CSS-color 0xDA70D6.
+
+
+ Plum
+ CSS-color 0xDDA0DD.
+
+
+ Purple
+ CSS-color 0x800080.
+
+
+ RebeccaPurple
+ CSS-color 0x663399.
+
+
+ SlateBlue
+ CSS-color 0x6A5ACD.
+
+
+ Thistle
+ CSS-color 0xD8BFD8.
+
+
+ Violet
+ CSS-color 0xEE82EE.
+
- Semiology-experiential-mnemonic-Jamais-vu
-
- suggestedTag
- Episode-event-count
-
-
- inLibrary
- score
-
+ Red-color
+ CSS color group.
+
+ Crimson
+ CSS-color 0xDC143C.
+
+
+ DarkRed
+ CSS-color 0x8B0000.
+
+
+ DarkSalmon
+ CSS-color 0xE9967A.
+
+
+ FireBrick
+ CSS-color 0xB22222.
+
+
+ IndianRed
+ CSS-color 0xCD5C5C.
+
+
+ LightCoral
+ CSS-color 0xF08080.
+
+
+ LightSalmon
+ CSS-color 0xFFA07A.
+
+
+ Red
+ CSS-color 0xFF0000.
+
+
+ Salmon
+ CSS-color 0xFA8072.
+
-
-
- Semiology-experiential-other
-
- requireChild
-
-
- inLibrary
- score
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
+ White-color
+ CSS color group.
+
+ AliceBlue
+ CSS-color 0xF0F8FF.
+
+
+ AntiqueWhite
+ CSS-color 0xFAEBD7.
+
+
+ Azure
+ CSS-color 0xF0FFFF.
+
+
+ Beige
+ CSS-color 0xF5F5DC.
+
+
+ FloralWhite
+ CSS-color 0xFFFAF0.
+
+
+ GhostWhite
+ CSS-color 0xF8F8FF.
+
+
+ HoneyDew
+ CSS-color 0xF0FFF0.
+
+
+ Ivory
+ CSS-color 0xFFFFF0.
+
+
+ LavenderBlush
+ CSS-color 0xFFF0F5.
+
+
+ Linen
+ CSS-color 0xFAF0E6.
+
+
+ MintCream
+ CSS-color 0xF5FFFA.
+
+
+ MistyRose
+ CSS-color 0xFFE4E1.
+
+
+ OldLace
+ CSS-color 0xFDF5E6.
+
+
+ SeaShell
+ CSS-color 0xFFF5EE.
+
+
+ Snow
+ CSS-color 0xFFFAFA.
+
+
+ White
+ CSS-color 0xFFFFFF.
+
+
+ WhiteSmoke
+ CSS-color 0xF5F5F5.
+
+
+
+ Yellow-color
+ CSS color group.
+
+ DarkKhaki
+ CSS-color 0xBDB76B.
+
+
+ Gold
+ CSS-color 0xFFD700.
+
+
+ Khaki
+ CSS-color 0xF0E68C.
+
+
+ LemonChiffon
+ CSS-color 0xFFFACD.
+
+
+ LightGoldenRodYellow
+ CSS-color 0xFAFAD2.
+
+
+ LightYellow
+ CSS-color 0xFFFFE0.
+
+
+ Moccasin
+ CSS-color 0xFFE4B5.
+
+
+ PaleGoldenRod
+ CSS-color 0xEEE8AA.
+
+
+ PapayaWhip
+ CSS-color 0xFFEFD5.
+
+
+ PeachPuff
+ CSS-color 0xFFDAB9.
+
+
+ Yellow
+ CSS-color 0xFFFF00.
+
-
-
-
- Semiology-dyscognitive
- The term describes events in which (1) disturbance of cognition is the predominant or most apparent feature, and (2a) two or more of the following components are involved, or (2b) involvement of such components remains undetermined. Otherwise, use the more specific term (e.g., mnemonic experiential seizure or hallucinatory experiential seizure). Components of cognition: ++ perception: symbolic conception of sensory information ++ attention: appropriate selection of a principal perception or task ++ emotion: appropriate affective significance of a perception ++ memory: ability to store and retrieve percepts or concepts ++ executive function: anticipation, selection, monitoring of consequences, and initiation of motor activity including praxis, speech.
-
- suggestedTag
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Semiology-language-related
-
- inLibrary
- score
-
-
- Semiology-language-related-vocalization
-
- suggestedTag
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Semiology-language-related-verbalization
-
- suggestedTag
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Semiology-language-related-dysphasia
-
- suggestedTag
- Episode-event-count
-
-
- inLibrary
- score
-
- Semiology-language-related-aphasia
-
- suggestedTag
- Episode-event-count
-
-
- inLibrary
- score
-
+ Color-shade
+ A slight degree of difference between colors, especially with regard to how light or dark it is or as distinguished from one nearly like it.
+
+ Dark-shade
+ A color tone not reflecting much light.
+
+
+ Light-shade
+ A color tone reflecting more light.
+
- Semiology-language-related-other
-
- requireChild
-
-
- inLibrary
- score
-
+ Grayscale
+ Using a color map composed of shades of gray, varying from black at the weakest intensity to white at the strongest.#
- Free text.
+ White intensity between 0 and 1.takesValuevalueClass
- textClass
-
-
- inLibrary
- score
+ numericClass
-
-
- Semiology-autonomic
-
- inLibrary
- score
-
-
- Semiology-autonomic-pupillary
- Mydriasis, miosis (either bilateral or unilateral).
-
- suggestedTag
- Brain-laterality
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Semiology-autonomic-hypersalivation
- Increase in production of saliva leading to uncontrollable drooling
-
- suggestedTag
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Semiology-autonomic-respiratory-apnoeic
- subjective shortness of breath, hyperventilation, stridor, coughing, choking, apnea, oxygen desaturation, neurogenic pulmonary edema.
-
- suggestedTag
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Semiology-autonomic-cardiovascular
- Modifications of heart rate (tachycardia, bradycardia), cardiac arrhythmias (such as sinus arrhythmia, sinus arrest, supraventricular tachycardia, atrial premature depolarizations, ventricular premature depolarizations, atrio-ventricular block, bundle branch block, atrioventricular nodal escape rhythm, asystole).
-
- suggestedTag
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Semiology-autonomic-gastrointestinal
- Nausea, eructation, vomiting, retching, abdominal sensations, abdominal pain, flatulence, spitting, diarrhea.
-
- suggestedTag
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Semiology-autonomic-urinary-incontinence
- urinary urge (intense urinary urge at the beginning of seizures), urinary incontinence, ictal urination (rare symptom of partial seizures without loss of consciousness).
-
- suggestedTag
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Semiology-autonomic-genital
- Sexual auras (erotic thoughts and feelings, sexual arousal and orgasm). Genital auras (unpleasant, sometimes painful, frightening or emotionally neutral somatosensory sensations in the genitals that can be accompanied by ictal orgasm). Sexual automatisms (hypermotor movements consisting of writhing, thrusting, rhythmic movements of the pelvis, arms and legs, sometimes associated with picking and rhythmic manipulation of the groin or genitalia, exhibitionism and masturbation).
-
- suggestedTag
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Semiology-autonomic-vasomotor
- Flushing or pallor (may be accompanied by feelings of warmth, cold and pain).
-
- suggestedTag
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Semiology-autonomic-sudomotor
- Sweating and piloerection (may be accompanied by feelings of warmth, cold and pain).
-
- suggestedTag
- Brain-laterality
- Episode-event-count
-
-
- inLibrary
- score
-
-
- Semiology-autonomic-thermoregulatory
- Hyperthermia, fever.
-
- suggestedTag
- Episode-event-count
-
-
- inLibrary
- score
-
+ HSV-color
+ A color representation that models how colors appear under light.
+
+ HSV-value
+ An attribute of a visual sensation according to which an area appears to emit more or less light.
+
+ #
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+
+
+ Hue
+ Attribute of a visual sensation according to which an area appears to be similar to one of the perceived colors.
+
+ #
+ Angular value between 0 and 360.
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+
+
+ Saturation
+ Colorfulness of a stimulus relative to its own brightness.
+
+ #
+ B value of RGB between 0 and 1.
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+
- Semiology-autonomic-other
-
- requireChild
-
-
- inLibrary
- score
-
+ RGB-color
+ A color from the RGB schema.
+
+ RGB-blue
+ The blue component.
+
+ #
+ B value of RGB between 0 and 1.
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+
+
+ RGB-green
+ The green component.
+
+ #
+ G value of RGB between 0 and 1.
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
+
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
+ RGB-red
+ The red component.
+
+ #
+ R value of RGB between 0 and 1.
+
+ takesValue
+
+
+ valueClass
+ numericClass
+
+
-
-
- Semiology-manifestation-other
-
- requireChild
-
-
- inLibrary
- score
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
+ Luminance
+ A quality that exists by virtue of the luminous intensity per unit area projected in a given direction.
-
-
-
- Postictal-semiology-manifestation
-
- requireChild
-
-
- inLibrary
- score
-
-
- Postictal-semiology-unconscious
-
- suggestedTag
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Postictal-semiology-quick-recovery-of-consciousness
- Quick recovery of awareness and responsiveness.
-
- suggestedTag
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Postictal-semiology-aphasia-or-dysphasia
- Impaired communication involving language without dysfunction of relevant primary motor or sensory pathways, manifested as impaired comprehension, anomia, parahasic errors or a combination of these.
-
- suggestedTag
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Postictal-semiology-behavioral-change
- Occurring immediately after a aseizure. Including psychosis, hypomanina, obsessive-compulsive behavior.
-
- suggestedTag
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Postictal-semiology-hemianopia
- Postictal visual loss in a a hemi field.
-
- suggestedTag
- Brain-laterality
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Postictal-semiology-impaired-cognition
- Decreased Cognitive performance involving one or more of perception, attention, emotion, memory, execution, praxis, speech.
-
- suggestedTag
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Postictal-semiology-dysphoria
- Depression, irritability, euphoric mood, fear, anxiety.
-
- suggestedTag
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Postictal-semiology-headache
- Headache with features of tension-type or migraine headache that develops within 3 h following the seizure and resolves within 72 h after seizure.
-
- suggestedTag
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Postictal-semiology-nose-wiping
- Noes-wiping usually within 60 sec of seizure offset, usually with the hand ipsilateral to the seizure onset.
-
- suggestedTag
- Brain-laterality
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Postictal-semiology-anterograde-amnesia
- Impaired ability to remember new material.
-
- suggestedTag
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Postictal-semiology-retrograde-amnesia
- Impaired ability to recall previously remember material.
-
- suggestedTag
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Postictal-semiology-paresis
- Todds palsy. Any unilateral postictal dysfunction relating to motor, language, sensory and/or integrative functions.
-
- suggestedTag
- Brain-laterality
- Body-part
- Brain-centricity
- Episode-event-count
-
-
- inLibrary
- score
-
-
-
- Postictal-semiology-sleep
- Invincible need to sleep after a seizure.
-
- inLibrary
- score
-
-
-
- Postictal-semiology-unilateral-myoclonic-jerks
- unilateral motor phenomena, other then specified, occurring in postictal phase.
-
- inLibrary
- score
-
-
-
- Postictal-semiology-other-unilateral-motor-phenomena
-
- requireChild
-
-
- inLibrary
- score
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
+ Opacity
+ A measure of impenetrability to light.
- Polygraphic-channel-relation-to-episode
-
- requireChild
-
-
- suggestedTag
- Property-not-possible-to-determine
-
-
- inLibrary
- score
-
-
- Polygraphic-channel-cause-to-episode
-
- inLibrary
- score
-
-
-
- Polygraphic-channel-consequence-of-episode
-
- inLibrary
- score
-
-
-
-
- Ictal-EEG-patterns
-
- inLibrary
- score
-
+ Sensory-presentation
+ The entity has a sensory manifestation.
- Ictal-EEG-patterns-obscured-by-artifacts
- The interpretation of the EEG is not possible due to artifacts.
-
- inLibrary
- score
-
+ Auditory-presentation
+ The sense of hearing is used in the presentation to the user.
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
+ Loudspeaker-separation
+ The distance between two loudspeakers. Grouped with the Distance tag.
- inLibrary
- score
+ suggestedTag
+ Distance
+
+ Monophonic
+ Relating to sound transmission, recording, or reproduction involving a single transmission path.
+
+
+ Silent
+ The absence of ambient audible sound or the state of having ceased to produce sounds.
+
+
+ Stereophonic
+ Relating to, or constituting sound reproduction involving the use of separated microphones and two transmission channels to achieve the sound separation of a live hearing.
+
- Ictal-EEG-activity
-
- suggestedTag
- Polyspikes-morphology
- Fast-spike-activity-morphology
- Low-voltage-fast-activity-morphology
- Polysharp-waves-morphology
- Spike-and-slow-wave-morphology
- Polyspike-and-slow-wave-morphology
- Sharp-and-slow-wave-morphology
- Rhythmic-activity-morphology
- Slow-wave-large-amplitude-morphology
- Irregular-delta-or-theta-activity-morphology
- Electrodecremental-change-morphology
- DC-shift-morphology
- Disappearance-of-ongoing-activity-morphology
- Brain-laterality
- Brain-region
- Sensors
- Source-analysis-laterality
- Source-analysis-brain-region
- Episode-event-count
-
-
- inLibrary
- score
-
+ Gustatory-presentation
+ The sense of taste used in the presentation to the user.
- Postictal-EEG-activity
-
- suggestedTag
- Brain-laterality
- Body-part
- Brain-centricity
-
-
- inLibrary
- score
-
+ Olfactory-presentation
+ The sense of smell used in the presentation to the user.
-
-
- Episode-time-context-property
- Additional clinically relevant features related to episodes can be scored under timing and context. If needed, episode duration can be tagged with base schema /Property/Data-property/Data-value/Spatiotemporal-value/Temporal-value/Duration.
-
- inLibrary
- score
-
- Episode-consciousness
-
- requireChild
-
-
- suggestedTag
- Property-not-possible-to-determine
-
-
- inLibrary
- score
-
+ Somatic-presentation
+ The nervous system is used in the presentation to the user.
+
+
+ Tactile-presentation
+ The sense of touch used in the presentation to the user.
+
+
+ Vestibular-presentation
+ The sense balance used in the presentation to the user.
+
+
+ Visual-presentation
+ The sense of sight used in the presentation to the user.
- Episode-consciousness-not-tested
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
+ 2D-view
+ A view showing only two dimensions.
- Episode-consciousness-affected
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
+ 3D-view
+ A view showing three dimensions.
- Episode-consciousness-mildly-affected
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
+ Background-view
+ Parts of the view that are farthest from the viewer and usually the not part of the visual focus.
- Episode-consciousness-not-affected
-
- inLibrary
- score
-
+ Bistable-view
+ Something having two stable visual forms that have two distinguishable stable forms as in optical illusions.
+
+
+ Foreground-view
+ Parts of the view that are closest to the viewer and usually the most important part of the visual focus.
+
+
+ Foveal-view
+ Visual presentation directly on the fovea. A view projected on the small depression in the retina containing only cones and where vision is most acute.
+
+
+ Map-view
+ A diagrammatic representation of an area of land or sea showing physical features, cities, roads.
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
+ Aerial-view
+ Elevated view of an object from above, with a perspective as though the observer were a bird.
+
+
+ Satellite-view
+ A representation as captured by technology such as a satellite.
+
+
+ Street-view
+ A 360-degrees panoramic view from a position on the ground.
+
+ Peripheral-view
+ Indirect vision as it occurs outside the point of fixation.
+
+
+
+
+ Task-property
+ Something that pertains to a task.
+
+ extensionAllowed
+
+
+ Task-action-type
+ How an agent action should be interpreted in terms of the task specification.
- Episode-awareness
+ Appropriate-action
+ An action suitable or proper in the circumstances.
- suggestedTag
- Property-not-possible-to-determine
- Property-exists
- Property-absence
+ relatedTag
+ Inappropriate-action
+
+
+ Correct-action
+ An action that was a correct response in the context of the task.
- inLibrary
- score
+ relatedTag
+ Incorrect-action
+ Indeterminate-action
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
- Clinical-EEG-temporal-relationship
+ Correction
+ An action offering an improvement to replace a mistake or error.
+
+
+ Done-indication
+ An action that indicates that the participant has completed this step in the task.
- suggestedTag
- Property-not-possible-to-determine
+ relatedTag
+ Ready-indication
+
+
+ Imagined-action
+ Form a mental image or concept of something. This is used to identity something that only happened in the imagination of the participant as in imagined movements in motor imagery paradigms.
+
+
+ Inappropriate-action
+ An action not in keeping with what is correct or proper for the task.
- inLibrary
- score
+ relatedTag
+ Appropriate-action
-
- Clinical-start-followed-EEG
- Clinical start, followed by EEG start by X seconds.
-
- inLibrary
- score
-
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
- unitClass
- timeUnits
-
-
- inLibrary
- score
-
-
-
-
- EEG-start-followed-clinical
- EEG start, followed by clinical start by X seconds.
-
- inLibrary
- score
-
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
- unitClass
- timeUnits
-
-
- inLibrary
- score
-
-
-
-
- Simultaneous-start-clinical-EEG
-
- inLibrary
- score
-
-
-
- Clinical-EEG-temporal-relationship-notes
- Clinical notes to annotate the clinical-EEG temporal relationship.
-
- inLibrary
- score
-
-
- #
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
- Episode-event-count
- Number of stereotypical episodes during the recording.
+ Incorrect-action
+ An action considered wrong or incorrect in the context of the task.
- suggestedTag
- Property-not-possible-to-determine
+ relatedTag
+ Correct-action
+ Indeterminate-action
+
+
+ Indeterminate-action
+ An action that cannot be distinguished between two or more possibibities in the current context. This tag might be applied when an outside evaluator or a classification algorithm cannot determine a definitive result.
- inLibrary
- score
+ relatedTag
+ Correct-action
+ Incorrect-action
+ Miss
+ Near-miss
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
- inLibrary
- score
-
-
- State-episode-start
- State at the start of the episode.
+ Miss
+ An action considered to be a failure in the context of the task. For example, if the agent is supposed to try to hit a target and misses.
- requireChild
+ relatedTag
+ Near-miss
+
+
+ Near-miss
+ An action barely satisfied the requirements of the task. In a driving experiment for example this could pertain to a narrowly avoided collision or other accident.
- suggestedTag
- Property-not-possible-to-determine
+ relatedTag
+ Miss
+
+
+ Omitted-action
+ An expected response was skipped.
+
+
+ Ready-indication
+ An action that indicates that the participant is ready to perform the next step in the task.
- inLibrary
- score
-
-
- Episode-start-from-sleep
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
-
- Episode-start-from-awake
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
+ relatedTag
+ Done-indication
+
+
+
+ Task-attentional-demand
+ Strategy for allocating attention toward goal-relevant information.
- Episode-postictal-phase
+ Bottom-up-attention
+ Attentional guidance purely by externally driven factors to stimuli that are salient because of their inherent properties relative to the background. Sometimes this is referred to as stimulus driven.
- suggestedTag
- Property-not-possible-to-determine
+ relatedTag
+ Top-down-attention
+
+
+ Covert-attention
+ Paying attention without moving the eyes.
- inLibrary
- score
+ relatedTag
+ Overt-attention
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
- unitClass
- timeUnits
-
-
- inLibrary
- score
-
-
- Episode-prodrome
- Prodrome is a preictal phenomenon, and it is defined as a subjective or objective clinical alteration (e.g., ill-localized sensation or agitation) that heralds the onset of an epileptic seizure but does not form part of it (Blume et al., 2001). Therefore, prodrome should be distinguished from aura (which is an ictal phenomenon).
+ Divided-attention
+ Integrating parallel multiple stimuli. Behavior involving responding simultaneously to multiple tasks or multiple task demands.
- suggestedTag
- Property-exists
- Property-absence
+ relatedTag
+ Focused-attention
+
+
+ Focused-attention
+ Responding discretely to specific visual, auditory, or tactile stimuli.
- inLibrary
- score
+ relatedTag
+ Divided-attention
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
- Episode-tongue-biting
+ Orienting-attention
+ Directing attention to a target stimulus.
+
+
+ Overt-attention
+ Selectively processing one location over others by moving the eyes to point at that location.
- suggestedTag
- Property-exists
- Property-absence
+ relatedTag
+ Covert-attention
+
+
+ Selective-attention
+ Maintaining a behavioral or cognitive set in the face of distracting or competing stimuli. Ability to pay attention to a limited array of all available sensory information.
+
+
+ Sustained-attention
+ Maintaining a consistent behavioral response during continuous and repetitive activity.
+
+
+ Switched-attention
+ Having to switch attention between two or more modalities of presentation.
+
+
+ Top-down-attention
+ Voluntary allocation of attention to certain features. Sometimes this is referred to goal-oriented attention.
- inLibrary
- score
+ relatedTag
+ Bottom-up-attention
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
+
+
+
+ Task-effect-evidence
+ The evidence supporting the conclusion that the event had the specified effect.
+
+ Behavioral-evidence
+ An indication or conclusion based on the behavior of an agent.
- Episode-responsiveness
+ Computational-evidence
+ A type of evidence in which data are produced, and/or generated, and/or analyzed on a computer.
+
+
+ External-evidence
+ A phenomenon that follows and is caused by some previous phenomenon.
+
+
+ Intended-effect
+ A phenomenon that is intended to follow and be caused by some previous phenomenon.
+
+
+
+ Task-event-role
+ The purpose of an event with respect to the task.
+
+ Experimental-stimulus
+ Part of something designed to elicit a response in the experiment.
+
+
+ Incidental
+ A sensory or other type of event that is unrelated to the task or experiment.
+
+
+ Instructional
+ Usually associated with a sensory event intended to give instructions to the participant about the task or behavior.
+
+
+ Mishap
+ Unplanned disruption such as an equipment or experiment control abnormality or experimenter error.
+
+
+ Participant-response
+ Something related to a participant actions in performing the task.
+
+
+ Task-activity
+ Something that is part of the overall task or is necessary to the overall experiment but is not directly part of a stimulus-response cycle. Examples would be taking a survey or provided providing a silva sample.
+
+
+ Warning
+ Something that should warn the participant that the parameters of the task have been or are about to be exceeded such as a warning message about getting too close to the shoulder of the road in a driving task.
+
+
+
+ Task-relationship
+ Specifying organizational importance of sub-tasks.
+
+ Background-subtask
+ A part of the task which should be performed in the background as for example inhibiting blinks due to instruction while performing the primary task.
+
+
+ Primary-subtask
+ A part of the task which should be the primary focus of the participant.
+
+
+
+ Task-stimulus-role
+ The role the stimulus plays in the task.
+
+ Cue
+ A signal for an action, a pattern of stimuli indicating a particular response.
+
+
+ Distractor
+ A person or thing that distracts or a plausible but incorrect option in a multiple-choice question. In pyschological studies this is sometimes referred to as a foil.
+
+
+ Expected
+ Considered likely, probable or anticipated. Something of low information value as in frequent non-targets in an RSVP paradigm.
- requireChild
+ relatedTag
+ UnexpectedsuggestedTag
- Property-not-possible-to-determine
+ Target
+
+
+ Extraneous
+ Irrelevant or unrelated to the subject being dealt with.
+
+
+ Feedback
+ An evaluative response to an inquiry, process, event, or activity.
+
+
+ Go-signal
+ An indicator to proceed with a planned action.
- inLibrary
- score
+ relatedTag
+ Stop-signal
+
+
+
+ Meaningful
+ Conveying significant or relevant information.
+
+
+ Newly-learned
+ Representing recently acquired information or understanding.
+
+
+ Non-informative
+ Something that is not useful in forming an opinion or judging an outcome.
+
+
+ Non-target
+ Something other than that done or looked for. Also tag Expected if the Non-target is frequent.
+
+ relatedTag
+ Target
+
+
+
+ Not-meaningful
+ Not having a serious, important, or useful quality or purpose.
+
+
+ Novel
+ Having no previous example or precedent or parallel.
+
+
+ Oddball
+ Something unusual, or infrequent.
+
+ relatedTag
+ Unexpected
+
+
+ suggestedTag
+ Target
-
- Episode-responsiveness-preserved
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
-
- Episode-responsiveness-affected
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
- Episode-appearance
+ Penalty
+ A disadvantage, loss, or hardship due to some action.
+
+
+ Planned
+ Something that was decided on or arranged in advance.
- requireChild
+ relatedTag
+ Unplanned
+
+
+ Priming
+ An implicit memory effect in which exposure to a stimulus influences response to a later stimulus.
+
+
+ Query
+ A sentence of inquiry that asks for a reply.
+
+
+ Reward
+ A positive reinforcement for a desired action, behavior or response.
+
+
+ Stop-signal
+ An indicator that the agent should stop the current activity.
- inLibrary
- score
+ relatedTag
+ Go-signal
-
- Episode-appearance-interactive
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
-
- Episode-appearance-spontaneous
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
- Seizure-dynamics
- Spatiotemporal dynamics can be scored (evolution in morphology; evolution in frequency; evolution in location).
+ Target
+ Something fixed as a goal, destination, or point of examination.
+
+
+ Threat
+ An indicator that signifies hostility and predicts an increased probability of attack.
+
+
+ Timed
+ Something planned or scheduled to be done at a particular time or lasting for a specified amount of time.
+
+
+ Unexpected
+ Something that is not anticipated.
- requireChild
+ relatedTag
+ Expected
+
+
+ Unplanned
+ Something that has not been planned as part of the task.
- inLibrary
- score
+ relatedTag
+ Planned
-
- Seizure-dynamics-evolution-morphology
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
-
- Seizure-dynamics-evolution-frequency
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
-
- Seizure-dynamics-evolution-location
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
-
- Seizure-dynamics-not-possible-to-determine
- Not possible to determine.
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
+
+
+ Relation
+ Concerns the way in which two or more people or things are connected.
+
+ extensionAllowed
+
+
+ Comparative-relation
+ Something considered in comparison to something else. The first entity is the focus.
+
+ Approximately-equal-to
+ (A, (Approximately-equal-to, B)) indicates that A and B have almost the same value. Here A and B could refer to sizes, orders, positions or other quantities.
+
+
+ Equal-to
+ (A, (Equal-to, B)) indicates that the size or order of A is the same as that of B.
+
+
+ Greater-than
+ (A, (Greater-than, B)) indicates that the relative size or order of A is bigger than that of B.
+
+
+ Greater-than-or-equal-to
+ (A, (Greater-than-or-equal-to, B)) indicates that the relative size or order of A is bigger than or the same as that of B.
+
+
+ Less-than
+ (A, (Less-than, B)) indicates that A is smaller than B. Here A and B could refer to sizes, orders, positions or other quantities.
+
+
+ Less-than-or-equal-to
+ (A, (Less-than-or-equal-to, B)) indicates that the relative size or order of A is smaller than or equal to B.
+
+
+ Not-equal-to
+ (A, (Not-equal-to, B)) indicates that the size or order of A is not the same as that of B.
+
+
- Other-finding-property
-
- requireChild
-
-
- inLibrary
- score
-
+ Connective-relation
+ Indicates two entities are related in some way. The first entity is the focus.
+
+ Belongs-to
+ (A, (Belongs-to, B)) indicates that A is a member of B.
+
+
+ Connected-to
+ (A, (Connected-to, B)) indicates that A is related to B in some respect, usually through a direct link.
+
+
+ Contained-in
+ (A, (Contained-in, B)) indicates that A is completely inside of B.
+
+
+ Described-by
+ (A, (Described-by, B)) indicates that B provides information about A.
+
+
+ From-to
+ (A, (From-to, B)) indicates a directional relation from A to B. A is considered the source.
+
+
+ Group-of
+ (A, (Group-of, B)) indicates A is a group of items of type B.
+
+
+ Implied-by
+ (A, (Implied-by, B)) indicates B is suggested by A.
+
+
+ Includes
+ (A, (Includes, B)) indicates that A has B as a member or part.
+
+
+ Interacts-with
+ (A, (Interacts-with, B)) indicates A and B interact, possibly reciprocally.
+
+
+ Member-of
+ (A, (Member-of, B)) indicates A is a member of group B.
+
+
+ Part-of
+ (A, (Part-of, B)) indicates A is a part of the whole B.
+
+
+ Performed-by
+ (A, (Performed-by, B)) indicates that the action or procedure A was carried out by agent B.
+
+
+ Performed-using
+ (A, (Performed-using, B)) indicates that the action or procedure A was accomplished using B.
+
+
+ Related-to
+ (A, (Related-to, B)) indicates A has some relationship to B.
+
+
+ Unrelated-to
+ (A, (Unrelated-to, B)) indicates that A is not related to B. For example, A is not related to Task.
+
+
+
+ Directional-relation
+ A relationship indicating direction of change of one entity relative to another. The first entity is the focus.
+
+ Away-from
+ (A, (Away-from, B)) indicates that A is going or has moved away from B. The meaning depends on A and B.
+
+
+ Towards
+ (A, (Towards, B)) indicates that A is going to or has moved to B. The meaning depends on A and B.
+
+
+
+ Logical-relation
+ Indicating a logical relationship between entities. The first entity is usually the focus.
+
+ And
+ (A, (And, B)) means A and B are both in effect.
+
+
+ Or
+ (A, (Or, B)) means at least one of A and B are in effect.
+
+
+
+ Spatial-relation
+ Indicating a relationship about position between entities.
+
+ Above
+ (A, (Above, B)) means A is in a place or position that is higher than B.
+
+
+ Across-from
+ (A, (Across-from, B)) means A is on the opposite side of something from B.
+
+
+ Adjacent-to
+ (A, (Adjacent-to, B)) indicates that A is next to B in time or space.
+
+
+ Ahead-of
+ (A, (Ahead-of, B)) indicates that A is further forward in time or space in B.
+
+
+ Around
+ (A, (Around, B)) means A is in or near the present place or situation of B.
+
+
+ Behind
+ (A, (Behind, B)) means A is at or to the far side of B, typically so as to be hidden by it.
+
+
+ Below
+ (A, (Below, B)) means A is in a place or position that is lower than the position of B.
+
+
+ Between
+ (A, (Between, (B, C))) means A is in the space or interval separating B and C.
+
+
+ Bilateral-to
+ (A, (Bilateral, B)) means A is on both sides of B or affects both sides of B.
+
+
+ Bottom-edge-of
+ (A, (Bottom-edge-of, B)) means A is on the bottom most part or or near the boundary of B.
+
+ relatedTag
+ Left-edge-of
+ Right-edge-of
+ Top-edge-of
+
+
+
+ Boundary-of
+ (A, (Boundary-of, B)) means A is on or part of the edge or boundary of B.
+
+
+ Center-of
+ (A, (Center-of, B)) means A is at a point or or in an area that is approximately central within B.
+
+
+ Close-to
+ (A, (Close-to, B)) means A is at a small distance from or is located near in space to B.
+
+
+ Far-from
+ (A, (Far-from, B)) means A is at a large distance from or is not located near in space to B.
+
+
+ In-front-of
+ (A, (In-front-of, B)) means A is in a position just ahead or at the front part of B, potentially partially blocking B from view.
+
+
+ Left-edge-of
+ (A, (Left-edge-of, B)) means A is located on the left side of B on or near the boundary of B.
+
+ relatedTag
+ Bottom-edge-of
+ Right-edge-of
+ Top-edge-of
+
+
+
+ Left-side-of
+ (A, (Left-side-of, B)) means A is located on the left side of B usually as part of B.
+
+ relatedTag
+ Right-side-of
+
+
+
+ Lower-center-of
+ (A, (Lower-center-of, B)) means A is situated on the lower center part of B (due south). This relation is often used to specify qualitative information about screen position.
+
+ relatedTag
+ Center-of
+ Lower-left-of
+ Lower-right-of
+ Upper-center-of
+ Upper-right-of
+
+
+
+ Lower-left-of
+ (A, (Lower-left-of, B)) means A is situated on the lower left part of B. This relation is often used to specify qualitative information about screen position.
+
+ relatedTag
+ Center-of
+ Lower-center-of
+ Lower-right-of
+ Upper-center-of
+ Upper-left-of
+ Upper-right-of
+
+
+
+ Lower-right-of
+ (A, (Lower-right-of, B)) means A is situated on the lower right part of B. This relation is often used to specify qualitative information about screen position.
+
+ relatedTag
+ Center-of
+ Lower-center-of
+ Lower-left-of
+ Upper-left-of
+ Upper-center-of
+ Upper-left-of
+ Lower-right-of
+
+
+
+ Outside-of
+ (A, (Outside-of, B)) means A is located in the space around but not including B.
+
+
+ Over
+ (A, (Over, B)) means A above is above B so as to cover or protect or A extends over the a general area as from a from a vantage point.
+
+
+ Right-edge-of
+ (A, (Right-edge-of, B)) means A is located on the right side of B on or near the boundary of B.
+
+ relatedTag
+ Bottom-edge-of
+ Left-edge-of
+ Top-edge-of
+
+
- Artifact-significance-to-recording
- It is important to score the significance of the described artifacts: recording is not interpretable, recording of reduced diagnostic value, does not interfere with the interpretation of the recording.
+ Right-side-of
+ (A, (Right-side-of, B)) means A is located on the right side of B usually as part of B.
- requireChild
+ relatedTag
+ Left-side-of
+
+
+ To-left-of
+ (A, (To-left-of, B)) means A is located on or directed toward the side to the west of B when B is facing north. This term is used when A is not part of B.
+
+
+ To-right-of
+ (A, (To-right-of, B)) means A is located on or directed toward the side to the east of B when B is facing north. This term is used when A is not part of B.
+
+
+ Top-edge-of
+ (A, (Top-edge-of, B)) means A is on the uppermost part or or near the boundary of B.
- inLibrary
- score
+ relatedTag
+ Left-edge-of
+ Right-edge-of
+ Bottom-edge-of
-
- Recording-not-interpretable-due-to-artifact
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
-
- Recording-of-reduced-diagnostic-value-due-to-artifact
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
-
- Artifact-does-not-interfere-recording
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
- Finding-significance-to-recording
- Significance of finding. When normal/abnormal could be labeled with base schema Normal/Abnormal tags.
+ Top-of
+ (A, (Top-of, B)) means A is on the uppermost part, side, or surface of B.
+
+
+ Underneath
+ (A, (Underneath, B)) means A is situated directly below and may be concealed by B.
+
+
+ Upper-center-of
+ (A, (Upper-center-of, B)) means A is situated on the upper center part of B (due north). This relation is often used to specify qualitative information about screen position.
- requireChild
+ relatedTag
+ Center-of
+ Lower-center-of
+ Lower-left-of
+ Lower-right-of
+ Upper-center-of
+ Upper-right-of
+
+
+ Upper-left-of
+ (A, (Upper-left-of, B)) means A is situated on the upper left part of B. This relation is often used to specify qualitative information about screen position.
- inLibrary
- score
+ relatedTag
+ Center-of
+ Lower-center-of
+ Lower-left-of
+ Lower-right-of
+ Upper-center-of
+ Upper-right-of
-
- Finding-no-definite-abnormality
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
-
- Finding-significance-not-possible-to-determine
- Not possible to determine.
-
- inLibrary
- score
-
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
- Finding-frequency
- Value in Hz (number) typed in.
+ Upper-right-of
+ (A, (Upper-right-of, B)) means A is situated on the upper right part of B. This relation is often used to specify qualitative information about screen position.
- inLibrary
- score
+ relatedTag
+ Center-of
+ Lower-center-of
+ Lower-left-of
+ Upper-left-of
+ Upper-center-of
+ Lower-right-of
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
- unitClass
- frequencyUnits
-
-
- inLibrary
- score
-
-
- Finding-amplitude
- Value in microvolts (number) typed in.
+ Within
+ (A, (Within, B)) means A is on the inside of or contained in B.
+
+
+
+ Temporal-relation
+ A relationship that includes a temporal or time-based component.
+
+ After
+ (A, (After B)) means A happens at a time subsequent to a reference time related to B.
+
+
+ Asynchronous-with
+ (A, (Asynchronous-with, B)) means A happens at times not occurring at the same time or having the same period or phase as B.
+
+
+ Before
+ (A, (Before B)) means A happens at a time earlier in time or order than B.
+
+
+ During
+ (A, (During, B)) means A happens at some point in a given period of time in which B is ongoing.
+
+
+ Synchronous-with
+ (A, (Synchronous-with, B)) means A happens at occurs at the same time or rate as B.
+
+
+ Waiting-for
+ (A, (Waiting-for, B)) means A pauses for something to happen in B.
+
+
+
+
+ Sleep-and-drowsiness
+ The features of the ongoing activity during sleep are scored here. If abnormal graphoelements appear, disappear or change their morphology during sleep, that is not scored here but at the entry corresponding to that graphooelement (as a modulator).
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Sleep-architecture
+ For longer recordings. Only to be scored if whole-night sleep is part of the recording. It is a global descriptor of the structure and pattern of sleep: estimation of the amount of time spent in REM and NREM sleep, sleep duration, NREM-REM cycle.
+
+ suggestedTag
+ Property-not-possible-to-determine
+
+
+ inLibrary
+ score
+
+
+ Normal-sleep-architectureinLibraryscore
-
- #
-
- takesValue
-
-
- valueClass
- numericClass
-
-
- unitClass
- electricPotentialUnits
-
-
- inLibrary
- score
-
-
- Finding-amplitude-asymmetry
- For posterior dominant rhythm: a difference in amplitude between the homologous area on opposite sides of the head that consistently exceeds 50 percent. When symmetrical could be labeled with base schema Symmetrical tag. For sleep: Absence or consistently marked amplitude asymmetry (greater than 50 percent) of a normal sleep graphoelement.
+ Abnormal-sleep-architecture
- requireChild
+ inLibrary
+ score
+
+
+
+ Sleep-stage-reached
+ For normal sleep patterns the sleep stages reached during the recording can be specified
+
+ requireChild
+
+
+ suggestedTag
+ Property-not-possible-to-determine
+ Finding-significance-to-recording
+
+
+ inLibrary
+ score
+
+
+ Sleep-stage-N1
+ Sleep stage 1.inLibraryscore
- Finding-amplitude-asymmetry-lower-left
- Amplitude lower on the left side.
+ #
+ Free text.
- inLibrary
- score
+ takesValue
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
-
- Finding-amplitude-asymmetry-lower-right
- Amplitude lower on the right side.
- inLibrary
- score
+ valueClass
+ textClass
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
-
- Finding-amplitude-asymmetry-not-possible-to-determine
- Not possible to determine.inLibraryscore
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
- Finding-stopped-by
+ Sleep-stage-N2
+ Sleep stage 2.inLibraryscore
@@ -15966,7 +15812,8 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Finding-triggered-by
+ Sleep-stage-N3
+ Sleep stage 3.inLibraryscore
@@ -15988,7 +15835,8 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
- Finding-unmodified
+ Sleep-stage-REM
+ Rapid eye movement.inLibraryscore
@@ -16009,72 +15857,349 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
+
+
+ Sleep-spindles
+ Burst at 11-15 Hz but mostly at 12-14 Hz generally diffuse but of higher voltage over the central regions of the head, occurring during sleep. Amplitude varies but is mostly below 50 microV in the adult.
+
+ suggestedTag
+ Finding-significance-to-recording
+ Brain-laterality
+ Brain-region
+ Sensors
+ Finding-amplitude-asymmetry
+
+
+ inLibrary
+ score
+
+
+
+ Arousal-pattern
+ Arousal pattern in children. Prolonged, marked high voltage 4-6/s activity in all leads with some intermixed slower frequencies, in children.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+ inLibrary
+ score
+
+
+
+ Frontal-arousal-rhythm
+ Prolonged (up to 20s) rhythmical sharp or spiky activity over the frontal areas (maximum over the frontal midline) seen at arousal from sleep in children with minimal cerebral dysfunction.
+
+ suggestedTag
+ Appearance-mode
+ Discharge-pattern
+
+
+ inLibrary
+ score
+
+
+
+ Vertex-wave
+ Sharp potential, maximal at the vertex, negative relative to other areas, apparently occurring spontaneously during sleep or in response to a sensory stimulus during sleep or wakefulness. May be single or repetitive. Amplitude varies but rarely exceeds 250 microV. Abbreviation: V wave. Synonym: vertex sharp wave.
+
+ suggestedTag
+ Finding-significance-to-recording
+ Brain-laterality
+ Brain-region
+ Sensors
+ Finding-amplitude-asymmetry
+
+
+ inLibrary
+ score
+
+
+
+ K-complex
+ A burst of somewhat variable appearance, consisting most commonly of a high voltage negative slow wave followed by a smaller positive slow wave frequently associated with a sleep spindle. Duration greater than 0.5 s. Amplitude is generally maximal in the frontal vertex. K complexes occur during nonREM sleep, apparently spontaneously, or in response to sudden sensory / auditory stimuli, and are not specific for any individual sensory modality.
+
+ suggestedTag
+ Finding-significance-to-recording
+ Brain-laterality
+ Brain-region
+ Sensors
+ Finding-amplitude-asymmetry
+
+
+ inLibrary
+ score
+
+
+
+ Saw-tooth-waves
+ Vertex negative 2-5 Hz waves occuring in series during REM sleep
+
+ suggestedTag
+ Finding-significance-to-recording
+ Brain-laterality
+ Brain-region
+ Sensors
+ Finding-amplitude-asymmetry
+
+
+ inLibrary
+ score
+
+
+
+ POSTS
+ Positive occipital sharp transients of sleep. Sharp transient maximal over the occipital regions, positive relative to other areas, apparently occurring spontaneously during sleep. May be single or repetitive. Amplitude varies but is generally bellow 50 microV.
+
+ suggestedTag
+ Finding-significance-to-recording
+ Brain-laterality
+ Brain-region
+ Sensors
+ Finding-amplitude-asymmetry
+
+
+ inLibrary
+ score
+
+
+
+ Hypnagogic-hypersynchrony
+ Bursts of bilateral, synchronous delta or theta activity of large amplitude, occasionally with superimposed faster components, occurring during falling asleep or during awakening, in children.
+
+ suggestedTag
+ Finding-significance-to-recording
+ Brain-laterality
+ Brain-region
+ Sensors
+ Finding-amplitude-asymmetry
+
+
+ inLibrary
+ score
+
+
+
+ Non-reactive-sleep
+ EEG activity consisting of normal sleep graphoelements, but which cannot be interrupted by external stimuli/ the patient cannot be waken.
+
+ inLibrary
+ score
+
+
+
+
+ Uncertain-significant-pattern
+ EEG graphoelements or rhythms that resemble abnormal patterns but that are not necessarily associated with a pathology, and the physician does not consider them abnormal in the context of the scored recording (like normal variants and patterns).
+
+ requireChild
+
+
+ inLibrary
+ score
+
+
+ Sharp-transient-pattern
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+ inLibrary
+ score
+
+
+
+ Wicket-spikes
+ Spike-like monophasic negative single waves or trains of waves occurring over the temporal regions during drowsiness that have an arcuate or mu-like appearance. These are mainly seen in older individuals and represent a benign variant that is of little clinical significance.
+
+ inLibrary
+ score
+
+
+
+ Small-sharp-spikes
+ Benign epileptiform Transients of Sleep (BETS). Small sharp spikes (SSS) of very short duration and low amplitude, often followed by a small theta wave, occurring in the temporal regions during drowsiness and light sleep. They occur on one or both sides (often asynchronously). The main negative and positive components are of about equally spiky character. Rarely seen in children, they are seen most often in adults and the elderly. Two thirds of the patients have a history of epileptic seizures.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+ inLibrary
+ score
+
+
+
+ Fourteen-six-Hz-positive-burst
+ Burst of arch-shaped waves at 13-17 Hz and/or 5-7-Hz but most commonly at 14 and or 6 Hz seen generally over the posterior temporal and adjacent areas of one or both sides of the head during sleep. The sharp peaks of its component waves are positive with respect to other regions. Amplitude varies but is generally below 75 micro V. Comments: (1) best demonstrated by referential recording using contralateral earlobe or other remote, reference electrodes. (2) This pattern has no established clinical significance.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+ inLibrary
+ score
+
+
+
+ Six-Hz-spike-slow-wave
+ Spike and slow wave complexes at 4-7Hz, but mostly at 6 Hz occurring generally in brief bursts bilaterally and synchronously, symmetrically or asymmetrically, and either confined to or of larger amplitude over the posterior or anterior regions of the head. The spike has a strong positive component. Amplitude varies but is generally smaller than that of spike-and slow-wave complexes repeating at slower rates. Comment: this pattern should be distinguished from epileptiform discharges. Synonym: wave and spike phantom.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+ inLibrary
+ score
+
+
+
+ Rudimentary-spike-wave-complex
+ Synonym: Pseudo petit mal discharge. Paroxysmal discharge that consists of generalized or nearly generalized high voltage 3 to 4/sec waves with poorly developed spike in the positive trough between the slow waves, occurring in drowsiness only. It is found only in infancy and early childhood when marked hypnagogic rhythmical theta activity is paramount in the drowsy state.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+ inLibrary
+ score
+
+
+
+ Slow-fused-transient
+ A posterior slow-wave preceded by a sharp-contoured potential that blends together with the ensuing slow wave, in children.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+ inLibrary
+ score
+
+
+
+ Needle-like-occipital-spikes-blind
+ Spike discharges of a particularly fast and needle-like character develop over the occipital region in most congenitally blind children. Completely disappear during childhood or adolescence.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+ inLibrary
+ score
+
+
+
+ Subclinical-rhythmic-EEG-discharge-adults
+ Subclinical rhythmic EEG discharge of adults (SERDA). A rhythmic pattern seen in the adult age group, mainly in the waking state or drowsiness. It consists of a mixture of frequencies, often predominant in the theta range. The onset may be fairly abrupt with widespread sharp rhythmical theta and occasionally with delta activity. As to the spatial distribution, a maximum of this discharge is usually found over the centroparietal region and especially over the vertex. It may resemble a seizure discharge but is not accompanied by any clinical signs or symptoms.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+ inLibrary
+ score
+
+
+
+ Rhythmic-temporal-theta-burst-drowsiness
+ Rhythmic temporal theta burst of drowsiness (RTTD). Characteristic burst of 4-7 Hz waves frequently notched by faster waves, occurring over the temporal regions of the head during drowsiness. Synonym: psychomotor variant pattern. Comment: this is a pattern of drowsiness that is of no clinical significance.
+
+ inLibrary
+ score
+
+
+
+ Temporal-slowing-elderly
+ Focal theta and/or delta activity over the temporal regions, especially the left, in persons over the age of 60. Amplitudes are low/similar to the background activity. Comment: focal temporal theta was found in 20 percent of people between the ages of 40-59 years, and 40 percent of people between 60 and 79 years. One third of people older than 60 years had focal temporal delta activity.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+ inLibrary
+ score
+
+
+
+ Breach-rhythm
+ Rhythmical activity recorded over cranial bone defects. Usually it is in the 6 to 11/sec range, does not respond to movements.
+
+ suggestedTag
+ Brain-laterality
+ Brain-region
+ Sensors
+ Appearance-mode
+ Discharge-pattern
+
+
+ inLibrary
+ score
+
+
+
+ Other-uncertain-significant-pattern
+
+ requireChild
+
+
+ inLibrary
+ score
+
- Property-not-possible-to-determine
- Not possible to determine.
+ #
+ Free text.
- inLibrary
- score
+ takesValue
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
-
- Property-exists
- inLibrary
- score
+ valueClass
+ textClass
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
-
-
- Property-absenceinLibraryscore
-
- #
- Free text.
-
- takesValue
-
-
- valueClass
- textClass
-
-
- inLibrary
- score
-
-
@@ -17163,7 +17288,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
nodeProperty
- isInherited
+ isInheritedProperty
@@ -17190,7 +17315,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
nodeProperty
- isInherited
+ isInheritedProperty
@@ -17267,7 +17392,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
nodeProperty
- isInherited
+ isInheritedProperty
@@ -17355,7 +17480,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
Indicates this schema attribute can apply to any type of element(tag term, unit class, etc).
- isInherited
+ isInheritedPropertyIndicates that this attribute is inherited by child nodes. This property only applies to schema attributes for nodes.
@@ -17387,5 +17512,5 @@ A second revised and extended version of SCORE achieved international consensus.
[1] Beniczky, Sandor, et al. "Standardized computer based organized reporting of EEG: SCORE." Epilepsia 54.6 (2013).
[2] Beniczky, Sandor, et al. "Standardized computer based organized reporting of EEG: SCORE second version." Clinical Neurophysiology 128.11 (2017).
-TPA, November 2022
+TPA, March 2023
diff --git a/tests/data/schema_tests/merge_tests/bad_sort_test.mediawiki b/tests/data/schema_tests/merge_tests/bad_sort_test.mediawiki
index 0de91e5a6..f6f2f8725 100644
--- a/tests/data/schema_tests/merge_tests/bad_sort_test.mediawiki
+++ b/tests/data/schema_tests/merge_tests/bad_sort_test.mediawiki
@@ -13,6 +13,135 @@ This is to make sure it's properly handling tags that are a previous tag name ex
!# end schema
+'''Unit classes''' [Unit classes and the units for the nodes.]
+* accelerationUnits {defaultUnits=m-per-s^2}
+** m-per-s^2 {SIUnit, unitSymbol}
+* angleUnits {defaultUnits=radian}
+** radian {SIUnit}
+** rad {SIUnit, unitSymbol}
+** degree
+* areaUnits {defaultUnits=m^2}
+** m^2 {SIUnit, unitSymbol}
+* currencyUnits {defaultUnits=$}[Units indicating the worth of something.]
+** dollar
+** $ {unitPrefix, unitSymbol}
+** point
+* frequencyUnits {defaultUnits=Hz}
+** hertz {SIUnit}
+** Hz {SIUnit, unitSymbol}
+* intensityUnits {defaultUnits=dB}
+** dB {unitSymbol}[Intensity expressed as ratio to a threshold. Often used for sound intensity.]
+** candela {SIUnit}[Units used to express light intensity.]
+** cd {SIUnit, unitSymbol}[Units used to express light intensity.]
+* jerkUnits {defaultUnits=m-per-s^3}
+** m-per-s^3 {unitSymbol}
+* memorySizeUnits {defaultUnits=B}
+** byte {SIUnit}
+** B {SIUnit, unitSymbol}
+* physicalLengthUnits {defaultUnits=m}
+** foot
+** inch
+** metre {SIUnit}
+** m {SIUnit, unitSymbol}
+** mile
+* speedUnits {defaultUnits=m-per-s}
+** m-per-s {SIUnit, unitSymbol}
+** mph {unitSymbol}
+** kph {unitSymbol}
+* timeUnits {defaultUnits=s}
+** second {SIUnit}
+** s {SIUnit, unitSymbol}
+** day
+** minute
+** hour [Should be in 24-hour format.]
+* volumeUnits {defaultUnits=m^3}
+** m^3 {SIUnit, unitSymbol}
+* weightUnits {defaultUnits=g}
+** g {SIUnit, unitSymbol}
+** gram {SIUnit}
+** pound
+** lb
+
+
+'''Unit modifiers''' [Unit multiples and submultiples.]
+* deca {SIUnitModifier} [SI unit multiple representing 10^1]
+* da {SIUnitSymbolModifier} [SI unit multiple representing 10^1]
+* hecto {SIUnitModifier} [SI unit multiple representing 10^2]
+* h {SIUnitSymbolModifier} [SI unit multiple representing 10^2]
+* kilo {SIUnitModifier} [SI unit multiple representing 10^3]
+* k {SIUnitSymbolModifier} [SI unit multiple representing 10^3]
+* mega {SIUnitModifier} [SI unit multiple representing 10^6]
+* M {SIUnitSymbolModifier} [SI unit multiple representing 10^6]
+* giga {SIUnitModifier} [SI unit multiple representing 10^9]
+* G {SIUnitSymbolModifier} [SI unit multiple representing 10^9]
+* tera {SIUnitModifier} [SI unit multiple representing 10^12]
+* T {SIUnitSymbolModifier} [SI unit multiple representing 10^12]
+* peta {SIUnitModifier} [SI unit multiple representing 10^15]
+* P {SIUnitSymbolModifier} [SI unit multiple representing 10^15]
+* exa {SIUnitModifier} [SI unit multiple representing 10^18]
+* E {SIUnitSymbolModifier} [SI unit multiple representing 10^18]
+* zetta {SIUnitModifier} [SI unit multiple representing 10^21]
+* Z {SIUnitSymbolModifier} [SI unit multiple representing 10^21]
+* yotta {SIUnitModifier} [SI unit multiple representing 10^24]
+* Y {SIUnitSymbolModifier} [SI unit multiple representing 10^24]
+* deci {SIUnitModifier} [SI unit submultiple representing 10^-1]
+* d {SIUnitSymbolModifier} [SI unit submultiple representing 10^-1]
+* centi {SIUnitModifier} [SI unit submultiple representing 10^-2]
+* c {SIUnitSymbolModifier} [SI unit submultiple representing 10^-2]
+* milli {SIUnitModifier} [SI unit submultiple representing 10^-3]
+* m {SIUnitSymbolModifier} [SI unit submultiple representing 10^-3]
+* micro {SIUnitModifier} [SI unit submultiple representing 10^-6]
+* u {SIUnitSymbolModifier} [SI unit submultiple representing 10^-6]
+* nano {SIUnitModifier} [SI unit submultiple representing 10^-9]
+* n {SIUnitSymbolModifier} [SI unit submultiple representing 10^-9]
+* pico {SIUnitModifier} [SI unit submultiple representing 10^-12]
+* p {SIUnitSymbolModifier} [SI unit submultiple representing 10^-12]
+* femto {SIUnitModifier} [SI unit submultiple representing 10^-15]
+* f {SIUnitSymbolModifier} [SI unit submultiple representing 10^-15]
+* atto {SIUnitModifier} [SI unit submultiple representing 10^-18]
+* a {SIUnitSymbolModifier} [SI unit submultiple representing 10^-18]
+* zepto {SIUnitModifier} [SI unit submultiple representing 10^-21]
+* z {SIUnitSymbolModifier} [SI unit submultiple representing 10^-21]
+* yocto {SIUnitModifier} [SI unit submultiple representing 10^-24]
+* y {SIUnitSymbolModifier} [SI unit submultiple representing 10^-24]
+
+
+'''Value classes''' [Specification of the rules for the values provided by users.]
+* dateTimeClass {allowedCharacter=digits,allowedCharacter=T,allowedCharacter=-,allowedCharacter=:}[Date-times should conform to ISO8601 date-time format YYYY-MM-DDThh:mm:ss. Any variation on the full form is allowed.]
+* nameClass {allowedCharacter=letters,allowedCharacter=digits,allowedCharacter=_,allowedCharacter=-}[Value class designating values that have the characteristics of node names. The allowed characters are alphanumeric, hyphen, and underbar.]
+* numericClass {allowedCharacter=digits,allowedCharacter=E,allowedCharacter=e,allowedCharacter=+,allowedCharacter=-,allowedCharacter=.}[Value must be a valid numerical value.]
+* posixPath {allowedCharacter=digits,allowedCharacter=letters,allowedCharacter=/,allowedCharacter=:}[Posix path specification.]
+* textClass {allowedCharacter=letters, allowedCharacter=digits, allowedCharacter=blank, allowedCharacter=+, allowedCharacter=-, allowedCharacter=:, allowedCharacter=;, allowedCharacter=., allowedCharacter=/, allowedCharacter=(, allowedCharacter=), allowedCharacter=?, allowedCharacter=*, allowedCharacter=%, allowedCharacter=$, allowedCharacter=@}[Value class designating values that have the characteristics of text such as in descriptions.]
+
+
+'''Schema attributes''' [Allowed node, unit class or unit modifier attributes.]
+* allowedCharacter {valueClassProperty}[A schema attribute of value classes specifying a special character that is allowed in expressing the value of a placeholder. Normally the allowed characters are listed individually. However, the word letters designates the upper and lower case alphabetic characters and the word digits designates the digits 0-9. The word blank designates the blank character.]
+* defaultUnits {unitClassProperty}[A schema attribute of unit classes specifying the default units to use if the placeholder has a unit class but the substituted value has no units.]
+* extensionAllowed {boolProperty}[A schema attribute indicating that users can add unlimited levels of child nodes under this tag. This tag is propagated to child nodes with the exception of the hashtag placeholders.]
+* recommended {boolProperty}[A schema attribute indicating that the event-level HED string should include this tag.]
+* relatedTag [A schema attribute suggesting HED tags that are closely related to this tag. This attribute is used by tagging tools.]
+* requireChild {boolProperty}[A schema attribute indicating that one of the node elements descendants must be included when using this tag.]
+* required {boolProperty}[A schema attribute indicating that every event-level HED string should include this tag.]
+* SIUnit {boolProperty, unitProperty}[A schema attribute indicating that this unit element is an SI unit and can be modified by multiple and submultiple names. Note that some units such as byte are designated as SI units although they are not part of the standard.]
+* SIUnitModifier {boolProperty, unitModifierProperty}[A schema attribute indicating that this SI unit modifier represents a multiple or submultiple of a base unit rather than a unit symbol.]
+* SIUnitSymbolModifier {boolProperty, unitModifierProperty}[A schema attribute indicating that this SI unit modifier represents a multiple or submultiple of a unit symbol rather than a base symbol.]
+* suggestedTag [A schema attribute that indicates another tag that is often associated with this tag. This attribute is used by tagging tools to provide tagging suggestions.]
+* tagGroup {boolProperty}[A schema attribute indicating the tag can only appear inside a tag group.]
+* takesValue {boolProperty}[A schema attribute indicating the tag is a hashtag placeholder that is expected to be replaced with a user-defined value.]
+* topLevelTagGroup {boolProperty}[A schema attribute indicating that this tag (or its descendants) can only appear in a top-level tag group.]
+* unique {boolProperty}[A schema attribute indicating that only one of this tag or its descendants can be used in the event-level HED string.]
+* unitClass [A schema attribute specifying which unit class this value tag belongs to.]
+* unitPrefix {boolProperty, unitProperty}[A schema attribute applied specifically to unit elements to designate that the unit indicator is a prefix (e.g., dollar sign in the currency units).]
+* unitSymbol {boolProperty, unitProperty}[A schema attribute indicating this tag is an abbreviation or symbol representing a type of unit. Unit symbols represent both the singular and the plural and thus cannot be pluralized.]
+* valueClass [A schema attribute specifying which value class this value tag belongs to.]
+
+'''Properties''' [Properties of the schema attributes themselves. These are used for schema handling and verification.]
+* boolProperty [Indicates that the schema attribute represents something that is either true or false and does not have a value. Attributes without this value are assumed to have string values.]
+* unitClassProperty [Indicates that the schema attribute is meant to be applied to unit classes.]
+* unitModifierProperty [Indicates that the schema attribute is meant to be applied to unit modifier classes.]
+* unitProperty [Indicates that the schema attribute is meant to be applied to units within a unit class.]
+* valueClassProperty [Indicates that the schema attribute is meant to be applied to value classes.]
+
'''Epilogue'''
!# end hed
\ No newline at end of file
diff --git a/tests/data/schema_tests/merge_tests/issues_tests/overlapping_units.mediawiki b/tests/data/schema_tests/merge_tests/issues_tests/overlapping_units.mediawiki
index 8f98fc80b..b7c4d5aa7 100644
--- a/tests/data/schema_tests/merge_tests/issues_tests/overlapping_units.mediawiki
+++ b/tests/data/schema_tests/merge_tests/issues_tests/overlapping_units.mediawiki
@@ -31,7 +31,7 @@ For more information see https://hed-schema-library.readthedocs.io/en/latest/ind
!# end schema
'''Unit classes'''
-* weightUnitsNew {defaultUnits=testUnit}
+* weightUnitsNew {defaultUnits=g}
** g {conversionFactor=100}
diff --git a/tests/data/schema_tests/merge_tests/sorted_root_merged.xml b/tests/data/schema_tests/merge_tests/sorted_root_merged.xml
index fb2442755..c3c855f40 100644
--- a/tests/data/schema_tests/merge_tests/sorted_root_merged.xml
+++ b/tests/data/schema_tests/merge_tests/sorted_root_merged.xml
@@ -7300,7 +7300,7 @@
nodeProperty
- isInherited
+ isInheritedProperty
@@ -7327,7 +7327,7 @@
nodeProperty
- isInherited
+ isInheritedProperty
@@ -7404,7 +7404,7 @@
nodeProperty
- isInherited
+ isInheritedProperty
@@ -7492,7 +7492,7 @@
Indicates this schema attribute can apply to any type of element(tag term, unit class, etc).
- isInherited
+ isInheritedPropertyIndicates that this attribute is inherited by child nodes. This property only applies to schema attributes for nodes.
diff --git a/tests/data/visualization/word_mask.png b/tests/data/visualization/word_mask.png
new file mode 100644
index 000000000..e235d063e
Binary files /dev/null and b/tests/data/visualization/word_mask.png differ
diff --git a/tests/errors/test_error_reporter.py b/tests/errors/test_error_reporter.py
index bec45f60e..d4482314c 100644
--- a/tests/errors/test_error_reporter.py
+++ b/tests/errors/test_error_reporter.py
@@ -1,6 +1,6 @@
import unittest
from hed.errors import ErrorHandler, ErrorContext, ErrorSeverity, ValidationErrors, SchemaWarnings, \
- get_printable_issue_string, sort_issues
+ get_printable_issue_string, sort_issues, replace_tag_references
from hed import HedString
from hed import load_schema_version
@@ -9,6 +9,7 @@ class Test(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.error_handler = ErrorHandler()
+ cls._schema = load_schema_version()
pass
def test_push_error_context(self):
@@ -69,7 +70,7 @@ def test_pop_error_context(self):
def test_filter_issues_by_severity(self):
error_list = self.error_handler.format_error_with_context(ValidationErrors.TAG_NOT_UNIQUE, "")
- error_list += self.error_handler.format_error_with_context(SchemaWarnings.INVALID_CAPITALIZATION,
+ error_list += self.error_handler.format_error_with_context(SchemaWarnings.SCHEMA_INVALID_CAPITALIZATION,
"dummy", problem_char="#", char_index=0)
self.assertTrue(len(error_list) == 2)
filtered_list = self.error_handler.filter_issues_by_severity(issues_list=error_list,
@@ -79,7 +80,7 @@ def test_filter_issues_by_severity(self):
def test_printable_issue_string(self):
self.error_handler.push_error_context(ErrorContext.CUSTOM_TITLE, "Default Custom Title")
error_list = self.error_handler.format_error_with_context(ValidationErrors.TAG_NOT_UNIQUE, "")
- error_list += self.error_handler.format_error_with_context(SchemaWarnings.INVALID_CAPITALIZATION,
+ error_list += self.error_handler.format_error_with_context(SchemaWarnings.SCHEMA_INVALID_CAPITALIZATION,
"dummy", problem_char="#", char_index=0)
printable_issues = get_printable_issue_string(error_list)
@@ -99,7 +100,7 @@ def test_printable_issue_string_with_filenames(self):
self.error_handler.push_error_context(ErrorContext.CUSTOM_TITLE, "Default Custom Title")
self.error_handler.push_error_context(ErrorContext.FILE_NAME, myfile)
error_list = self.error_handler.format_error_with_context(ValidationErrors.TAG_NOT_UNIQUE, "")
- error_list += self.error_handler.format_error_with_context(SchemaWarnings.INVALID_CAPITALIZATION,
+ error_list += self.error_handler.format_error_with_context(SchemaWarnings.SCHEMA_INVALID_CAPITALIZATION,
"dummy", problem_char="#", char_index=0)
printable_issues = get_printable_issue_string(error_list, skip_filename=False)
@@ -142,3 +143,20 @@ def test_sort_issues(self):
self.assertEqual(reversed_issues[2][ErrorContext.CUSTOM_TITLE], 'issue3')
self.assertEqual(reversed_issues[3][ErrorContext.CUSTOM_TITLE], 'issue2')
self.assertEqual(reversed_issues[4][ErrorContext.CUSTOM_TITLE], 'issue1')
+
+
+ def test_replace_tag_references(self):
+ # Test with mixed data types and HedString in a nested dict
+ nested_dict = {'a': HedString('Hed1', self._schema), 'b': {'c': 2, 'd': [3, {'e': HedString('Hed2', self._schema)}]}, 'f': [5, 6]}
+ replace_tag_references(nested_dict)
+ self.assertEqual(nested_dict, {'a': 'Hed1', 'b': {'c': 2, 'd': [3, {'e': 'Hed2'}]}, 'f': [5, 6]})
+
+ # Test with mixed data types and HedString in a nested list
+ nested_list = [HedString('Hed1', self._schema), {'a': 2, 'b': [3, {'c': HedString('Hed2', self._schema)}]}]
+ replace_tag_references(nested_list)
+ self.assertEqual(nested_list, ['Hed1', {'a': 2, 'b': [3, {'c': 'Hed2'}]}])
+
+ # Test with mixed data types and HedString in a list within a dict
+ mixed = {'a': HedString('Hed1', self._schema), 'b': [2, 3, {'c': HedString('Hed2', self._schema)}, 4]}
+ replace_tag_references(mixed)
+ self.assertEqual(mixed, {'a': 'Hed1', 'b': [2, 3, {'c': 'Hed2'}, 4]})
diff --git a/tests/models/test_base_input.py b/tests/models/test_base_input.py
index d93983d59..f5b381eb3 100644
--- a/tests/models/test_base_input.py
+++ b/tests/models/test_base_input.py
@@ -75,7 +75,6 @@ def test_invalid_input_type_dict(self):
BaseInput({'key': 'value'})
-
class TestInsertColumns(unittest.TestCase):
def test_insert_columns_simple(self):
@@ -273,3 +272,57 @@ def test_combine_dataframe_with_mixed_values(self):
expected = pd.Series(['apple, guitar', 'elephant, harmonica', 'cherry, fox', '', ''])
self.assertTrue(result.equals(expected))
+
+class TestOnsetDict(unittest.TestCase):
+ def test_empty_and_single_onset(self):
+ self.assertEqual(BaseInput._indexed_dict_from_onsets([]), {})
+ self.assertEqual(BaseInput._indexed_dict_from_onsets([3.5]), {3.5: [0]})
+
+ def test_identical_and_approx_equal_onsets(self):
+ self.assertEqual(BaseInput._indexed_dict_from_onsets([3.5, 3.5]), {3.5: [0, 1]})
+ self.assertEqual(BaseInput._indexed_dict_from_onsets([3.5, 3.500000001]), {3.5: [0], 3.500000001: [1]})
+ self.assertEqual(BaseInput._indexed_dict_from_onsets([3.5, 3.5000000000001]), {3.5: [0, 1]})
+
+ def test_distinct_and_mixed_onsets(self):
+ self.assertEqual(BaseInput._indexed_dict_from_onsets([3.5, 4.0, 4.4]), {3.5: [0], 4.0: [1], 4.4: [2]})
+ self.assertEqual(BaseInput._indexed_dict_from_onsets([3.5, 3.5, 4.0, 4.4]), {3.5: [0, 1], 4.0: [2], 4.4: [3]})
+ self.assertEqual(BaseInput._indexed_dict_from_onsets([4.0, 3.5, 4.4, 4.4]), {4.0: [0], 3.5: [1], 4.4: [2, 3]})
+
+ def test_complex_onsets(self):
+ # Negative, zero, and positive onsets
+ self.assertEqual(BaseInput._indexed_dict_from_onsets([-1.0, 0.0, 1.0]), {-1.0: [0], 0.0: [1], 1.0: [2]})
+
+ # Very close but distinct onsets
+ self.assertEqual(BaseInput._indexed_dict_from_onsets([1.0, 1.0 + 1e-8, 1.0 + 2e-8]),
+ {1.0: [0], 1.0 + 1e-8: [1], 1.0 + 2e-8: [2]})
+ # Very close
+ self.assertEqual(BaseInput._indexed_dict_from_onsets([1.0, 1.0 + 1e-10, 1.0 + 2e-10]),
+ {1.0: [0, 1, 2]})
+
+ # Mixed scenario
+ self.assertEqual(BaseInput._indexed_dict_from_onsets([3.5, 3.5, 4.0, 4.4, 4.4, -1.0]),
+ {3.5: [0, 1], 4.0: [2], 4.4: [3, 4], -1.0: [5]})
+
+ def test_empty_and_single_item_series(self):
+ self.assertEqual(BaseInput._filter_by_index_list([], {}), [])
+ self.assertEqual(BaseInput._filter_by_index_list(["apple"], {0: [0]}), ["apple"])
+
+ def test_two_item_series_with_same_onset(self):
+ self.assertEqual(BaseInput._filter_by_index_list(["apple", "orange"], {0: [0, 1]}), ["apple,orange", "n/a"])
+
+ def test_multiple_item_series(self):
+ original = ["apple", "orange", "banana", "mango"]
+ indexed_dict = {0: [0, 1], 1: [2], 2: [3]}
+ self.assertEqual(BaseInput._filter_by_index_list(original, indexed_dict), ["apple,orange", "n/a", "banana", "mango"])
+
+ def test_complex_scenarios(self):
+ # Test with negative, zero and positive onsets
+ original = ["negative", "zero", "positive"]
+ indexed_dict = {-1: [0], 0: [1], 1: [2]}
+ self.assertEqual(BaseInput._filter_by_index_list(original, indexed_dict), ["negative", "zero", "positive"])
+
+ # Test with more complex indexed_dict
+ original = ["apple", "orange", "banana", "mango", "grape"]
+ indexed_dict = {0: [0, 1], 1: [2], 2: [3, 4]}
+ self.assertEqual(BaseInput._filter_by_index_list(original, indexed_dict),
+ ["apple,orange", "n/a", "banana", "mango,grape", "n/a"])
diff --git a/tests/models/test_definition_dict.py b/tests/models/test_definition_dict.py
index 357584cc1..5005f55c5 100644
--- a/tests/models/test_definition_dict.py
+++ b/tests/models/test_definition_dict.py
@@ -134,5 +134,15 @@ def test_expand_defs(self):
hed_string.expand_defs()
self.assertEqual(str(hed_string), expected_results[key])
+ def test_altering_definition_contents(self):
+ def_dict = DefinitionDict("(Definition/DefName, (Event, Action))", self.hed_schema)
+ hed_string1 = HedString("Def/DefName", self.hed_schema, def_dict)
+ hed_string2 = HedString("Def/DefName", self.hed_schema, def_dict)
+ hed_string1.expand_defs()
+ hed_string2.expand_defs()
+ hed_string1.remove([hed_string1.get_all_tags()[2]])
+
+ self.assertNotEqual(hed_string1, hed_string2)
+
if __name__ == '__main__':
unittest.main()
diff --git a/tests/models/test_expression_parser.py b/tests/models/test_expression_parser.py
index 926338d8f..cca544113 100644
--- a/tests/models/test_expression_parser.py
+++ b/tests/models/test_expression_parser.py
@@ -6,11 +6,14 @@
from hed import HedTag
-def tag_terms(self):
- if isinstance(self, HedTag):
- if self._schema_entry:
- return self._tag_terms
- return (str(self).lower(),)
+# Override the tag terms function for testing purposes when we don't have a schema
+def new_init(self, *args, **kwargs):
+ old_tag_init(self, *args, **kwargs)
+ if not self.tag_terms:
+ self.tag_terms = (str(self).lower(),)
+
+old_tag_init = HedTag.__init__
+HedTag.__init__ = new_init
class TestParser(unittest.TestCase):
@@ -21,9 +24,6 @@ def setUpClass(cls):
hed_xml_file = os.path.join(base_data_dir, "schema_tests/HED8.0.0t.xml")
cls.hed_schema = schema.load_schema(hed_xml_file)
- HedTag._tag_terms = HedTag.tag_terms
- HedTag.tag_terms = property(tag_terms)
-
def base_test(self, parse_expr, search_strings):
expression = QueryParser(parse_expr)
@@ -694,4 +694,39 @@ def test_not_in_line3(self):
"(A, B, (C)), D": True,
"(A, B, (C)), (D), E": True,
}
- self.base_test("@C or B", test_strings)
\ No newline at end of file
+ self.base_test("@C or B", test_strings)
+
+ def test_optional_exact_group(self):
+ test_strings = {
+ "A, C": True,
+ }
+ self.base_test("{a and (b or c)}", test_strings)
+
+ test_strings = {
+ "A, B, C, D": True,
+ }
+ self.base_test("{a and b: c and d}", test_strings)
+
+ test_strings = {
+ "A, B, C": True,
+ "A, B, C, D": False,
+ }
+ self.base_test("{a and b: c or d}", test_strings)
+
+ test_strings = {
+ "A, C": True,
+ "A, D": True,
+ "A, B, C": False,
+ "A, B, C, D": False,
+ }
+ self.base_test("{a or b: c or d}", test_strings)
+
+ test_strings = {
+ "(Onset, (Def-expand/taco))": True,
+ "(Onset, (Def-expand/taco, (Label/DefContents)))": True,
+ "(Onset, (Def-expand/taco), (Label/OnsetContents))": True,
+ "(Onset, (Def-expand/taco), (Label/OnsetContents, Description/MoreContents))": True,
+ "Onset, (Def-expand/taco), (Label/OnsetContents)": False,
+ "(Onset, (Def-expand/taco), Label/OnsetContents)": False,
+ }
+ self.base_test("[[{(Onset or Offset), (Def or [[Def-expand]]): ???}]]", test_strings)
\ No newline at end of file
diff --git a/tests/models/test_hed_group.py b/tests/models/test_hed_group.py
index 96d1744c9..117872e8d 100644
--- a/tests/models/test_hed_group.py
+++ b/tests/models/test_hed_group.py
@@ -3,6 +3,7 @@
from hed import schema
from hed.models import HedString
+import copy
class Test(unittest.TestCase):
@@ -121,5 +122,15 @@ def test_sort_and_sorted(self):
]
self._compare_strings(hed_strings)
+ def test_sorted_structure(self):
+ hed_string = HedString("(Tag3, Tag1, Tag5, Tag2, Tag4)", self.hed_schema)
+ original_hed_string = copy.deepcopy(hed_string)
+
+ sorted_hed_string = hed_string.sorted()
+
+ self.assertIsInstance(sorted_hed_string, HedString)
+ self.assertEqual(str(original_hed_string), str(hed_string))
+ self.assertIsNot(sorted_hed_string, hed_string)
+
if __name__ == '__main__':
unittest.main()
diff --git a/tests/models/test_hed_string.py b/tests/models/test_hed_string.py
index 83ec59966..7f48db7f6 100644
--- a/tests/models/test_hed_string.py
+++ b/tests/models/test_hed_string.py
@@ -278,13 +278,13 @@ def _verify_copied_string(self, original_hed_string):
self.assertEqual(copied_hed_string._hed_string, original_hed_string._hed_string)
# The _children attribute of copied HedString should not be the same object as the original
- self.assertNotEqual(id(original_hed_string._children), id(copied_hed_string._children))
+ self.assertNotEqual(id(original_hed_string.children), id(copied_hed_string.children))
# The _children attribute of copied HedString should have the same contents as the original
- self.assertEqual(copied_hed_string._children, original_hed_string._children)
+ self.assertEqual(copied_hed_string.children, original_hed_string.children)
# The parent of each child in copied_hed_string._children should point to copied_hed_string
- for child in copied_hed_string._children:
+ for child in copied_hed_string.children:
self.assertEqual(child._parent, copied_hed_string)
# The _original_children and _from_strings attributes should also be deepcopied
diff --git a/tests/models/test_hed_tag.py b/tests/models/test_hed_tag.py
index 3fc2a74df..d21c46ced 100644
--- a/tests/models/test_hed_tag.py
+++ b/tests/models/test_hed_tag.py
@@ -1,9 +1,16 @@
from hed.models.hed_tag import HedTag
from tests.validator.test_tag_validator_base import TestHedBase
+from hed.schema import HedKey
+from hed import load_schema_version
+
+from tests.schema import util_create_schemas
class TestValidatorUtilityFunctions(TestHedBase):
- schema_file = '../data/schema_tests/HED8.0.0t.xml'
+
+ @classmethod
+ def setUpClass(cls):
+ cls.hed_schema = load_schema_version("8.2.0")
def test_if_tag_exists(self):
valid_tag1 = HedTag('Left-handed', hed_schema=self.hed_schema)
@@ -36,7 +43,9 @@ def test_if_tag_exists(self):
class TestSchemaUtilityFunctions(TestHedBase):
- schema_file = '../data/schema_tests/HED8.0.0t.xml'
+ @classmethod
+ def setUpClass(cls):
+ cls.hed_schema = load_schema_version("8.2.0")
def test_correctly_determine_tag_takes_value(self):
value_tag1 = HedTag('Distance/35 px', hed_schema=self.hed_schema)
@@ -64,14 +73,14 @@ def test_should_determine_default_unit(self):
# schema=self.schema)
no_unit_class_tag = HedTag('RGB-red/0.5', hed_schema=self.hed_schema)
no_value_tag = HedTag('Black', hed_schema=self.hed_schema)
- unit_class_tag1_result = unit_class_tag1.get_unit_class_default_unit()
- # unit_class_tag2_result = unit_class_tag2.get_unit_class_default_unit()
- no_unit_class_tag_result = no_unit_class_tag.get_unit_class_default_unit()
- no_value_tag_result = no_value_tag.get_unit_class_default_unit()
- self.assertEqual(unit_class_tag1_result, 's')
+ unit_class_tag1_result = unit_class_tag1.default_unit
+ # unit_class_tag2_result = unit_class_tag2.default_unit
+ no_unit_class_tag_result = no_unit_class_tag.default_unit
+ no_value_tag_result = no_value_tag.default_unit
+ self.assertEqual(unit_class_tag1_result.name, 's')
# self.assertEqual(unit_class_tag2_result, '$')
- self.assertEqual(no_unit_class_tag_result, '')
- self.assertEqual(no_value_tag_result, '')
+ self.assertEqual(no_unit_class_tag_result, None)
+ self.assertEqual(no_value_tag_result, None)
def test_correctly_determine_tag_unit_classes(self):
unit_class_tag1 = HedTag('distance/35 px', hed_schema=self.hed_schema)
@@ -96,13 +105,14 @@ def test_determine_tags_legal_units(self):
unit_class_tag1_result = unit_class_tag1.get_tag_unit_class_units()
# unit_class_tag2_result = unit_class_tag2.get_tag_unit_class_units()
no_unit_class_tag_result = no_unit_class_tag.get_tag_unit_class_units()
- self.assertCountEqual(unit_class_tag1_result, [
+ self.assertCountEqual(sorted(unit_class_tag1_result), sorted([
'inch',
'm',
'foot',
'metre',
+ 'meter',
'mile',
- ])
+ ]))
# self.assertCountEqual(unit_class_tag2_result, [
# 'dollar',
# '$',
@@ -133,11 +143,11 @@ def test_strip_off_units_from_value(self):
# stripped_dollars_string_no_space = dollars_string_no_space._get_tag_units_portion(currency_units)
# stripped_dollars_string = dollars_string._get_tag_units_portion(currency_units)
# stripped_dollars_string_invalid = dollars_string_invalid._get_tag_units_portion(currency_units)
- stripped_volume_string, _ = volume_string._get_tag_units_portion(volume_units)
- stripped_volume_string_no_space, _ = volume_string_no_space._get_tag_units_portion(volume_units)
- stripped_prefixed_volume_string, _ = prefixed_volume_string._get_tag_units_portion(volume_units)
- stripped_invalid_volume_string, _ = invalid_volume_string._get_tag_units_portion(volume_units)
- stripped_invalid_distance_string, _ = invalid_distance_string._get_tag_units_portion(distance_units)
+ stripped_volume_string, _, _ = volume_string._get_tag_units_portion(volume_units)
+ stripped_volume_string_no_space, _, _ = volume_string_no_space._get_tag_units_portion(volume_units)
+ stripped_prefixed_volume_string, _, _ = prefixed_volume_string._get_tag_units_portion(volume_units)
+ stripped_invalid_volume_string, _, _ = invalid_volume_string._get_tag_units_portion(volume_units)
+ stripped_invalid_distance_string, _, _ = invalid_distance_string._get_tag_units_portion(distance_units)
# self.assertEqual(stripped_dollars_string_no_space, None)
# self.assertEqual(stripped_dollars_string, '25.99')
# self.assertEqual(stripped_dollars_string_invalid, None)
@@ -152,11 +162,27 @@ def test_determine_allows_extensions(self):
no_extension_tag1 = HedTag('duration/22 s', hed_schema=self.hed_schema)
no_extension_tag2 = HedTag('id/45', hed_schema=self.hed_schema)
no_extension_tag3 = HedTag('RGB-red/0.5', hed_schema=self.hed_schema)
- extension_tag1_result = extension_tag1.is_extension_allowed_tag()
- no_extension_tag1_result = no_extension_tag1.is_extension_allowed_tag()
- no_extension_tag2_result = no_extension_tag2.is_extension_allowed_tag()
- no_extension_tag3_result = no_extension_tag3.is_extension_allowed_tag()
+ extension_tag1_result = extension_tag1.has_attribute(HedKey.ExtensionAllowed)
+ no_extension_tag1_result = no_extension_tag1.has_attribute(HedKey.ExtensionAllowed)
+ no_extension_tag2_result = no_extension_tag2.has_attribute(HedKey.ExtensionAllowed)
+ no_extension_tag3_result = no_extension_tag3.has_attribute(HedKey.ExtensionAllowed)
self.assertEqual(extension_tag1_result, True)
self.assertEqual(no_extension_tag1_result, False)
self.assertEqual(no_extension_tag2_result, False)
- self.assertEqual(no_extension_tag3_result, False)
\ No newline at end of file
+ self.assertEqual(no_extension_tag3_result, False)
+
+ def test_get_as_default_units(self):
+ tag = HedTag("Duration/300 ms", hed_schema=self.hed_schema)
+ self.assertAlmostEqual(0.3, tag.value_as_default_unit())
+
+ tag2 = HedTag("Duration/300", hed_schema=self.hed_schema)
+ self.assertAlmostEqual(300, tag2.value_as_default_unit())
+
+ tag3 = HedTag("Duration/300 m", hed_schema=self.hed_schema)
+ self.assertEqual(None, tag3.value_as_default_unit())
+
+ tag4 = HedTag("IntensityTakesValue/300", hed_schema=util_create_schemas.load_schema_intensity())
+ self.assertEqual(300, tag4.value_as_default_unit())
+
+ tag5 = HedTag("IntensityTakesValue/300 cd", hed_schema=util_create_schemas.load_schema_intensity())
+ self.assertEqual(None, tag5.value_as_default_unit())
diff --git a/tests/models/test_string_util.py b/tests/models/test_string_util.py
new file mode 100644
index 000000000..27cb13879
--- /dev/null
+++ b/tests/models/test_string_util.py
@@ -0,0 +1,190 @@
+import unittest
+from hed import HedString, load_schema_version
+from hed.models.string_util import split_base_tags, split_def_tags, gather_descriptions
+import copy
+
+
+class TestHedStringSplit(unittest.TestCase):
+ @classmethod
+ def setUpClass(cls):
+ cls.schema = load_schema_version()
+
+ def check_split_base_tags(self, hed_string, base_tags, expected_string, expected_string2):
+ # Test case 1: remove_group=False
+ hed_string_copy = copy.deepcopy(hed_string)
+ remaining_hed, found_hed = split_base_tags(hed_string_copy, base_tags, remove_group=False)
+
+ self.assertIsInstance(remaining_hed, HedString)
+ self.assertIsInstance(found_hed, HedString)
+ self.assertEqual(str(remaining_hed), expected_string)
+
+ self.assertTrue(all(tag in [str(t) for t in found_hed.get_all_tags()] for tag in base_tags))
+ self.assertTrue(all(tag not in [str(t) for t in remaining_hed.get_all_tags()] for tag in base_tags))
+
+ # Test case 2: remove_group=True
+ hed_string_copy = copy.deepcopy(hed_string)
+ remaining_hed, found_hed = split_base_tags(hed_string_copy, base_tags, remove_group=True)
+
+ self.assertIsInstance(remaining_hed, HedString)
+ self.assertIsInstance(found_hed, HedString)
+ self.assertEqual(str(remaining_hed), expected_string2)
+
+ self.assertTrue(all(tag in [str(t) for t in found_hed.get_all_tags()] for tag in base_tags))
+ self.assertTrue(all(tag not in [str(t) for t in remaining_hed.get_all_tags()] for tag in base_tags))
+
+ def test_case_1(self):
+ hed_string = HedString('Memorize,Action,Area', self.schema)
+ base_tags = ['Area', 'Action']
+ expected_string = 'Memorize'
+ expected_string2 = 'Memorize'
+ self.check_split_base_tags(hed_string, base_tags, expected_string, expected_string2)
+
+ def test_case_2(self):
+ hed_string = HedString('Area,LightBlue,Handedness', self.schema)
+ base_tags = ['Area', 'LightBlue']
+ expected_string = 'Handedness'
+ expected_string2 = 'Handedness'
+ self.check_split_base_tags(hed_string, base_tags, expected_string, expected_string2)
+
+ def test_case_3(self):
+ hed_string = HedString('(Wink,Communicate),Face,HotPink', self.schema)
+ base_tags = ['Wink', 'Face']
+ expected_string = '(Communicate),HotPink'
+ expected_string2 = "HotPink"
+ self.check_split_base_tags(hed_string, base_tags, expected_string, expected_string2)
+
+ def test_case_4(self):
+ hed_string = HedString('(Area,(LightBlue,Handedness,(Wink,Communicate))),Face,HotPink', self.schema)
+ base_tags = ['Area', 'LightBlue']
+ expected_string = '((Handedness,(Wink,Communicate))),Face,HotPink'
+ expected_string2 = 'Face,HotPink'
+ self.check_split_base_tags(hed_string, base_tags, expected_string, expected_string2)
+
+ def test_case_5(self):
+ hed_string = HedString('(Memorize,(Action,(Area,LightBlue),Handedness),Wink)', self.schema)
+ base_tags = ['Area', 'LightBlue']
+ expected_string = '(Memorize,(Action,Handedness),Wink)'
+ expected_string2 = '(Memorize,(Action,Handedness),Wink)'
+ self.check_split_base_tags(hed_string, base_tags, expected_string, expected_string2)
+
+class TestHedStringSplitDef(unittest.TestCase):
+ @classmethod
+ def setUpClass(cls):
+ cls.schema = load_schema_version()
+
+ def check_split_def_tags(self, hed_string, def_names, expected_string, expected_string2):
+ # Test case 1: remove_group=False
+ hed_string_copy1 = copy.deepcopy(hed_string)
+ remaining_hed1, found_hed1 = split_def_tags(hed_string_copy1, def_names, remove_group=False)
+
+ self.assertIsInstance(remaining_hed1, HedString)
+ self.assertIsInstance(found_hed1, HedString)
+ self.assertEqual(str(remaining_hed1), expected_string)
+
+ self.assertTrue(all(tag.short_base_tag == "Def" for tag in found_hed1.get_all_tags()))
+ self.assertTrue(all(tag.short_base_tag != "Def" for tag in remaining_hed1.get_all_tags()))
+
+ # Test case 2: remove_group=True
+ hed_string_copy2 = copy.deepcopy(hed_string)
+ remaining_hed2, found_hed2 = split_def_tags(hed_string_copy2, def_names, remove_group=True)
+
+ self.assertIsInstance(remaining_hed2, HedString)
+ self.assertIsInstance(found_hed2, HedString)
+ self.assertEqual(str(remaining_hed2), expected_string2)
+
+ #self.assertTrue(all(tag.short_base_tag == "Def" for tag in found_hed.get_all_tags()))
+ self.assertTrue(all(tag.short_base_tag != "Def" for tag in remaining_hed2.get_all_tags()))
+
+ def test_case_1(self):
+ hed_string = HedString('Memorize,Action,def/CustomTag1', self.schema)
+ def_names = ['CustomTag1']
+ expected_string = 'Memorize,Action'
+ expected_string2 = 'Memorize,Action'
+ self.check_split_def_tags(hed_string, def_names, expected_string, expected_string2)
+
+ def test_case_2(self):
+ hed_string = HedString('def/CustomTag1,LightBlue,def/CustomTag2/123', self.schema)
+ def_names = ['CustomTag1', 'CustomTag2']
+ expected_string = 'LightBlue'
+ expected_string2 = 'LightBlue'
+ self.check_split_def_tags(hed_string, def_names, expected_string, expected_string2)
+
+ def test_case_3(self):
+ hed_string = HedString('(def/CustomTag1,Communicate),Face,def/CustomTag3/abc', self.schema)
+ def_names = ['CustomTag1', 'CustomTag3']
+ expected_string = '(Communicate),Face'
+ expected_string2 = 'Face'
+ self.check_split_def_tags(hed_string, def_names, expected_string, expected_string2)
+
+ def test_case_4(self):
+ hed_string = HedString('(def/CustomTag1,(LightBlue,def/CustomTag2/123,(Wink,Communicate))),Face,def/CustomTag3/abc', self.schema)
+ def_names = ['CustomTag1', 'CustomTag2', 'CustomTag3']
+ expected_string = '((LightBlue,(Wink,Communicate))),Face'
+ expected_string2 = 'Face'
+ self.check_split_def_tags(hed_string, def_names, expected_string, expected_string2)
+
+ def test_case_5(self):
+ hed_string = HedString('(Memorize,(Action,(def/CustomTag1,LightBlue),def/CustomTag2/123),Wink)', self.schema)
+ def_names = ['CustomTag1', 'CustomTag2']
+ expected_string = '(Memorize,(Action,(LightBlue)),Wink)'
+ expected_string2 = '(Memorize,Wink)'
+ self.check_split_def_tags(hed_string, def_names, expected_string, expected_string2)
+
+
+class TestGatherDescriptions(unittest.TestCase):
+ def setUp(self):
+ self.schema = load_schema_version()
+
+ def test_gather_single_description(self):
+ input_str = "Sensory-event, Description/This is a test."
+ hed_string = HedString(input_str, hed_schema=self.schema)
+
+ result = gather_descriptions(hed_string)
+ expected_result = "This is a test."
+
+ self.assertEqual(result, expected_result)
+ self.assertNotIn("Description", str(result))
+
+ def test_gather_multiple_descriptions(self):
+ input_str = "Sensory-event, Description/First description, Second-tag, Description/Second description."
+ hed_string = HedString(input_str, hed_schema=self.schema)
+
+ result = gather_descriptions(hed_string)
+ expected_result = "First description. Second description."
+
+ self.assertEqual(result, expected_result)
+ self.assertNotIn("Description", str(result))
+
+ def test_gather_no_descriptions(self):
+ input_str = "Sensory-event, No-description-here, Another-tag"
+ hed_string = HedString(input_str, hed_schema=self.schema)
+
+ result = gather_descriptions(hed_string)
+ expected_result = ""
+
+ self.assertEqual(result, expected_result)
+ self.assertNotIn("Description", str(result))
+
+ def test_gather_descriptions_mixed_order(self):
+ input_str = "Sensory-event, Description/First., Another-tag, Description/Second, Third-tag, Description/Third."
+ hed_string = HedString(input_str, hed_schema=self.schema)
+
+ result = gather_descriptions(hed_string)
+ expected_result = "First. Second. Third."
+
+ self.assertEqual(result, expected_result)
+ self.assertNotIn("Description", str(result))
+
+ def test_gather_descriptions_missing_period(self):
+ input_str = "Sensory-event, Description/First, Description/Second"
+ hed_string = HedString(input_str, hed_schema=self.schema)
+
+ result = gather_descriptions(hed_string)
+ expected_result = "First. Second."
+
+ self.assertEqual(result, expected_result)
+ self.assertNotIn("Description", str(result))
+
+
+if __name__ == '__main__':
+ unittest.main()
\ No newline at end of file
diff --git a/tests/schema/test_hed_cache.py b/tests/schema/test_hed_cache.py
index 55a343a26..3a33155bf 100644
--- a/tests/schema/test_hed_cache.py
+++ b/tests/schema/test_hed_cache.py
@@ -82,7 +82,7 @@ def test_cache_specific_url(self):
self.assertTrue(local_filename)
def test_get_hed_versions_all(self):
- cached_versions = hed_cache.get_hed_versions(self.hed_cache_dir, get_libraries=True)
+ cached_versions = hed_cache.get_hed_versions(self.hed_cache_dir, library_name="all")
self.assertIsInstance(cached_versions, dict)
self.assertTrue(len(cached_versions) > 1)
diff --git a/tests/schema/test_hed_schema.py b/tests/schema/test_hed_schema.py
index 4c30e1c52..9344df988 100644
--- a/tests/schema/test_hed_schema.py
+++ b/tests/schema/test_hed_schema.py
@@ -137,11 +137,11 @@ def test_has_duplicate_tags(self):
self.assertFalse(self.hed_schema_3g._has_duplicate_tags)
def test_short_tag_mapping(self):
- self.assertEqual(len(self.hed_schema_3g.all_tags.keys()), 1110)
+ self.assertEqual(len(self.hed_schema_3g.tags.keys()), 1110)
def test_schema_compliance(self):
warnings = self.hed_schema_group.check_compliance(True)
- self.assertEqual(len(warnings), 10)
+ self.assertEqual(len(warnings), 14)
def test_bad_prefixes(self):
schema = load_schema_version(xml_version="8.0.0")
diff --git a/tests/schema/test_hed_schema_group.py b/tests/schema/test_hed_schema_group.py
index 891dfc2b1..83e062ce6 100644
--- a/tests/schema/test_hed_schema_group.py
+++ b/tests/schema/test_hed_schema_group.py
@@ -15,7 +15,7 @@ def setUpClass(cls):
def test_schema_compliance(self):
warnings = self.hed_schema_group.check_compliance(True)
- self.assertEqual(len(warnings), 10)
+ self.assertEqual(len(warnings), 14)
def test_get_tag_entry(self):
tag_entry = self.hed_schema_group.get_tag_entry("Event", schema_namespace="tl:")
diff --git a/tests/schema/test_hed_schema_io.py b/tests/schema/test_hed_schema_io.py
index 87c2416ae..f3591ead3 100644
--- a/tests/schema/test_hed_schema_io.py
+++ b/tests/schema/test_hed_schema_io.py
@@ -3,55 +3,53 @@
from hed.errors import HedFileError
from hed.errors.error_types import SchemaErrors
from hed.schema import load_schema, HedSchemaGroup, load_schema_version, HedSchema
-from hed import schema
import os
-from hed.schema import hed_cache
-import shutil
from hed.errors import HedExceptions
+from hed.schema import HedKey
# todo: speed up these tests
class TestHedSchema(unittest.TestCase):
- def test_load_invalid_schema(self):
- # Handle missing or invalid files.
- invalid_xml_file = "invalidxmlfile.xml"
- hed_schema = None
- try:
- hed_schema = load_schema(invalid_xml_file)
- except HedFileError:
- pass
-
- self.assertFalse(hed_schema)
-
- hed_schema = None
- try:
- hed_schema = load_schema(None)
- except HedFileError:
- pass
- self.assertFalse(hed_schema)
-
- hed_schema = None
- try:
- hed_schema = load_schema("")
- except HedFileError:
- pass
- self.assertFalse(hed_schema)
-
- def test_load_schema_version_tags(self):
- schema = load_schema_version(xml_version="st:8.0.0")
- schema2 = load_schema_version(xml_version="8.0.0")
- self.assertNotEqual(schema, schema2)
- schema2.set_schema_prefix("st")
- self.assertEqual(schema, schema2)
-
- score_lib = load_schema_version(xml_version="score_1.0.0")
- self.assertEqual(score_lib._namespace, "")
- self.assertTrue(score_lib.get_tag_entry("Modulator"))
-
- score_lib = load_schema_version(xml_version="sc:score_1.0.0")
- self.assertEqual(score_lib._namespace, "sc:")
- self.assertTrue(score_lib.get_tag_entry("Modulator", schema_namespace="sc:"))
+ # def test_load_invalid_schema(self):
+ # # Handle missing or invalid files.
+ # invalid_xml_file = "invalidxmlfile.xml"
+ # hed_schema = None
+ # try:
+ # hed_schema = load_schema(invalid_xml_file)
+ # except HedFileError:
+ # pass
+ #
+ # self.assertFalse(hed_schema)
+ #
+ # hed_schema = None
+ # try:
+ # hed_schema = load_schema(None)
+ # except HedFileError:
+ # pass
+ # self.assertFalse(hed_schema)
+ #
+ # hed_schema = None
+ # try:
+ # hed_schema = load_schema("")
+ # except HedFileError:
+ # pass
+ # self.assertFalse(hed_schema)
+ #
+ # def test_load_schema_version_tags(self):
+ # schema = load_schema_version(xml_version="st:8.0.0")
+ # schema2 = load_schema_version(xml_version="8.0.0")
+ # self.assertNotEqual(schema, schema2)
+ # schema2.set_schema_prefix("st")
+ # self.assertEqual(schema, schema2)
+ #
+ # score_lib = load_schema_version(xml_version="score_1.0.0")
+ # self.assertEqual(score_lib._namespace, "")
+ # self.assertTrue(score_lib.get_tag_entry("Modulator"))
+ #
+ # score_lib = load_schema_version(xml_version="sc:score_1.0.0")
+ # self.assertEqual(score_lib._namespace, "sc:")
+ # self.assertTrue(score_lib.get_tag_entry("Modulator", schema_namespace="sc:"))
def test_load_schema_version(self):
ver1 = "8.0.0"
@@ -126,24 +124,24 @@ def test_load_schema_version_libraries(self):
with self.assertRaises(HedFileError) as context:
load_schema_version("[Malformed,,json]")
+ # def test_load_schema_version_empty(self):
+ # schemas = load_schema_version("")
+ # self.assertIsInstance(schemas, HedSchema, "load_schema_version for empty string returns latest version")
+ # self.assertTrue(schemas.version_number, "load_schema_version for empty string has a version")
+ # self.assertFalse(schemas.library, "load_schema_version for empty string is not a library")
+ # schemas = load_schema_version(None)
+ # self.assertIsInstance(schemas, HedSchema, "load_schema_version for None returns latest version")
+ # self.assertTrue(schemas.version_number, "load_schema_version for empty string has a version")
+ # self.assertFalse(schemas.library, "load_schema_version for empty string is not a library")
+ # schemas = load_schema_version([""])
+ # self.assertIsInstance(schemas, HedSchema, "load_schema_version list with blank entry returns latest version")
+ # self.assertTrue(schemas.version_number, "load_schema_version for empty string has a version")
+ # self.assertFalse(schemas.library, "load_schema_version for empty string is not a library")
+ # schemas = load_schema_version([])
+ # self.assertIsInstance(schemas, HedSchema, "load_schema_version list with blank entry returns latest version")
+ # self.assertTrue(schemas.version_number, "load_schema_version for empty string has a version")
+ # self.assertFalse(schemas.library, "load_schema_version for empty string is not a library")
- def test_load_schema_version_empty(self):
- schemas = load_schema_version("")
- self.assertIsInstance(schemas, HedSchema, "load_schema_version for empty string returns latest version")
- self.assertTrue(schemas.version_number, "load_schema_version for empty string has a version")
- self.assertFalse(schemas.library, "load_schema_version for empty string is not a library")
- schemas = load_schema_version(None)
- self.assertIsInstance(schemas, HedSchema, "load_schema_version for None returns latest version")
- self.assertTrue(schemas.version_number, "load_schema_version for empty string has a version")
- self.assertFalse(schemas.library, "load_schema_version for empty string is not a library")
- schemas = load_schema_version([""])
- self.assertIsInstance(schemas, HedSchema, "load_schema_version list with blank entry returns latest version")
- self.assertTrue(schemas.version_number, "load_schema_version for empty string has a version")
- self.assertFalse(schemas.library, "load_schema_version for empty string is not a library")
- schemas = load_schema_version([])
- self.assertIsInstance(schemas, HedSchema, "load_schema_version list with blank entry returns latest version")
- self.assertTrue(schemas.version_number, "load_schema_version for empty string has a version")
- self.assertFalse(schemas.library, "load_schema_version for empty string is not a library")
class TestHedSchemaMerging(unittest.TestCase):
# Verify all 5 schemas produce the same results
@@ -151,20 +149,7 @@ class TestHedSchemaMerging(unittest.TestCase):
@classmethod
def setUpClass(cls):
- # note: most of this code can be removed once 8.2 is officially released.
- cls.hed_cache_dir = os.path.join(os.path.dirname(os.path.realpath(__file__)), '../merging_schema_cache/')
- cls.saved_cache_folder = hed_cache.HED_CACHE_DIRECTORY
- schema.set_cache_directory(cls.hed_cache_dir)
cls.full_base_folder = os.path.join(os.path.dirname(os.path.realpath(__file__)), cls.base_schema_dir)
- cls.source_schema_path = os.path.join(cls.full_base_folder, "HED8.2.0.xml")
- cls.cache_folder = hed_cache.get_cache_directory()
- cls.schema_path_in_cache = os.path.join(cls.cache_folder, "HED8.2.0.xml")
- shutil.copy(cls.source_schema_path, cls.schema_path_in_cache)
-
- @classmethod
- def tearDownClass(cls):
- shutil.rmtree(cls.hed_cache_dir)
- schema.set_cache_directory(cls.saved_cache_folder)
def _base_merging_test(self, files):
import filecmp
@@ -212,7 +197,7 @@ def _base_merging_test(self, files):
def test_saving_merged(self):
files = [
- load_schema(os.path.join(self.full_base_folder, "HED_score_1.0.0.mediawiki")),
+ load_schema(os.path.join(self.full_base_folder, "HED_score_1.1.0.mediawiki")),
load_schema(os.path.join(self.full_base_folder, "HED_score_lib_tags.mediawiki")),
load_schema(os.path.join(self.full_base_folder, "HED_score_merged.mediawiki")),
load_schema(os.path.join(self.full_base_folder, "HED_score_merged.xml")),
@@ -248,10 +233,10 @@ def test_saving_bad_sort(self):
self.assertEqual(loaded_schema, reloaded_schema)
def _base_added_class_tests(self, schema):
- tag_entry = schema.all_tags["Modulator"]
+ tag_entry = schema.tags["Modulator"]
self.assertEqual(tag_entry.attributes["suggestedTag"], "Event")
- tag_entry = schema.all_tags["Sleep-modulator"]
+ tag_entry = schema.tags["Sleep-modulator"]
self.assertEqual(tag_entry.attributes["relatedTag"], "Sensory-event")
unit_class_entry = schema.unit_classes["weightUnits"]
@@ -302,7 +287,7 @@ def test_saving_merged2(self):
os.remove(path2)
def test_bad_schemas(self):
- """These should all have one HED_SCHEMA_DUPLICATE_NODE issue"""
+ """These should all have one SCHEMA_DUPLICATE_NODE issue"""
files = [
load_schema(os.path.join(self.full_base_folder, "issues_tests/overlapping_tags1.mediawiki")),
load_schema(os.path.join(self.full_base_folder, "issues_tests/overlapping_tags2.mediawiki")),
@@ -319,7 +304,7 @@ def test_bad_schemas(self):
HedExceptions.SCHEMA_LIBRARY_INVALID,
HedExceptions.SCHEMA_LIBRARY_INVALID,
HedExceptions.SCHEMA_LIBRARY_INVALID,
- SchemaErrors.HED_SCHEMA_DUPLICATE_NODE,
+ SchemaErrors.SCHEMA_DUPLICATE_NODE,
]
for schema, expected_code in zip(files, expected_code):
# print(schema.filename)
@@ -342,3 +327,58 @@ def test_cannot_load_schemas(self):
with self.assertRaises(HedFileError):
# print(file)
load_schema(file)
+
+ def test_saving_in_library_wiki(self):
+ old_score_schema = load_schema_version("score_1.0.0")
+
+ tag_entry = old_score_schema.get_tag_entry("Modulator")
+ self.assertTrue(tag_entry.has_attribute(HedKey.InLibrary))
+
+ schema_string = old_score_schema.get_as_mediawiki_string()
+ score_count = schema_string.count("inLibrary=score")
+ self.assertEqual(score_count, 0, "InLibrary should not be saved to the file")
+
+ # This should make no difference
+ schema_string = old_score_schema.get_as_mediawiki_string(save_merged=True)
+ score_count = schema_string.count("inLibrary=score")
+ self.assertEqual(score_count, 0, "InLibrary should not be saved to the file")
+
+ score_schema = load_schema_version("score_1.1.0")
+
+ tag_entry = score_schema.get_tag_entry("Modulator")
+ self.assertTrue(tag_entry.has_attribute(HedKey.InLibrary))
+ schema_string = score_schema.get_as_mediawiki_string(save_merged=False)
+ score_count = schema_string.count("inLibrary=score")
+ self.assertEqual(score_count, 0, "InLibrary should not be saved to the file")
+
+ schema_string = score_schema.get_as_mediawiki_string(save_merged=True)
+ score_count = schema_string.count("inLibrary=score")
+ self.assertEqual(score_count, 853, "There should be 853 in library entries in the saved score schema")
+
+ def test_saving_in_library_xml(self):
+ old_score_schema = load_schema_version("score_1.0.0")
+
+ tag_entry = old_score_schema.get_tag_entry("Modulator")
+ self.assertTrue(tag_entry.has_attribute(HedKey.InLibrary))
+
+ schema_string = old_score_schema.get_as_xml_string()
+ score_count = schema_string.count("inLibrary")
+ self.assertEqual(score_count, 0, "InLibrary should not be saved to the file")
+
+ # This should make no difference
+ schema_string = old_score_schema.get_as_xml_string(save_merged=True)
+ score_count = schema_string.count("inLibrary")
+ self.assertEqual(score_count, 0, "InLibrary should not be saved to the file")
+
+ score_schema = load_schema_version("score_1.1.0")
+
+ tag_entry = score_schema.get_tag_entry("Modulator")
+ self.assertTrue(tag_entry.has_attribute(HedKey.InLibrary))
+ schema_string = score_schema.get_as_xml_string(save_merged=False)
+ score_count = schema_string.count("inLibrary")
+ self.assertEqual(score_count, 0, "InLibrary should not be saved to the file")
+
+ schema_string = score_schema.get_as_xml_string(save_merged=True)
+ score_count = schema_string.count("inLibrary")
+ # One extra because this also finds the attribute definition, whereas in wiki it's a different format.
+ self.assertEqual(score_count, 854, "There should be 854 in library entries in the saved score schema")
diff --git a/tests/schema/test_schema_attribute_validators.py b/tests/schema/test_schema_attribute_validators.py
index 67a25efb1..e3753c03e 100644
--- a/tests/schema/test_schema_attribute_validators.py
+++ b/tests/schema/test_schema_attribute_validators.py
@@ -11,28 +11,28 @@ def setUpClass(cls):
cls.hed_schema = schema.load_schema_version("8.1.0")
def test_util_placeholder(self):
- tag_entry = self.hed_schema.all_tags["Event"]
+ tag_entry = self.hed_schema.tags["Event"]
attribute_name = "unitClass"
self.assertTrue(schema_attribute_validators.tag_is_placeholder_check(self.hed_schema, tag_entry, attribute_name))
attribute_name = "unitClass"
- tag_entry = self.hed_schema.all_tags["Age/#"]
+ tag_entry = self.hed_schema.tags["Age/#"]
self.assertFalse(schema_attribute_validators.tag_is_placeholder_check(self.hed_schema, tag_entry, attribute_name))
def test_util_suggested(self):
- tag_entry = self.hed_schema.all_tags["Event/Sensory-event"]
+ tag_entry = self.hed_schema.tags["Event/Sensory-event"]
attribute_name = "suggestedTag"
self.assertFalse(schema_attribute_validators.tag_exists_check(self.hed_schema, tag_entry, attribute_name))
- tag_entry = self.hed_schema.all_tags["Property"]
+ tag_entry = self.hed_schema.tags["Property"]
self.assertFalse(schema_attribute_validators.tag_exists_check(self.hed_schema, tag_entry, attribute_name))
tag_entry = copy.deepcopy(tag_entry)
tag_entry.attributes["suggestedTag"] = "InvalidSuggestedTag"
self.assertTrue(schema_attribute_validators.tag_exists_check(self.hed_schema, tag_entry, attribute_name))
def test_util_rooted(self):
- tag_entry = self.hed_schema.all_tags["Event"]
+ tag_entry = self.hed_schema.tags["Event"]
attribute_name = "rooted"
self.assertFalse(schema_attribute_validators.tag_exists_base_schema_check(self.hed_schema, tag_entry, attribute_name))
- tag_entry = self.hed_schema.all_tags["Property"]
+ tag_entry = self.hed_schema.tags["Property"]
self.assertFalse(schema_attribute_validators.tag_exists_base_schema_check(self.hed_schema, tag_entry, attribute_name))
tag_entry = copy.deepcopy(tag_entry)
tag_entry.attributes["rooted"] = "Event"
diff --git a/tests/schema/test_schema_compare.py b/tests/schema/test_schema_compare.py
new file mode 100644
index 000000000..f6b1ceed1
--- /dev/null
+++ b/tests/schema/test_schema_compare.py
@@ -0,0 +1,130 @@
+import unittest
+import json
+
+from hed.schema import HedKey, HedSectionKey
+from hed.schema.schema_compare import compare_schemas, find_matching_tags, \
+ _pretty_print_diff_all, _pretty_print_missing_all, compare_differences
+from hed import load_schema_version
+
+from . import util_create_schemas
+
+
+class TestSchemaComparison(unittest.TestCase):
+ def test_find_matching_tags(self):
+ # create entries for schema1
+ schema1 = util_create_schemas.load_schema1()
+ schema2 = util_create_schemas.load_schema2()
+
+ result = find_matching_tags(schema1, schema2)
+ # Check if the result is correct
+ self.assertEqual(len(result[HedSectionKey.Tags]), 3)
+ self.assertIn("TestNode", result[HedSectionKey.Tags])
+ self.assertIn("TestNode2", result[HedSectionKey.Tags])
+ self.assertIn("TestNode3", result[HedSectionKey.Tags])
+ self.assertNotIn("TestNode4", result[HedSectionKey.Tags])
+ self.assertNotIn("TestNode5", result[HedSectionKey.Tags])
+
+ # Test with include_summary=True
+ match_string = find_matching_tags(schema1, schema2, output='string', include_summary=True)
+ self.assertIsInstance(match_string, str)
+ self.assertIn("Tags:", match_string)
+ # print(match_string)
+
+ json_style_dict = find_matching_tags(schema1, schema2, output='dict', include_summary=True)
+ self.assertIsInstance(json_style_dict, dict)
+ self.assertIn("summary", json_style_dict)
+
+ result_string = json.dumps(json_style_dict, indent=4)
+ self.assertIsInstance(result_string, str)
+
+ # Optionally, you can also test the case without include_summary
+ match_string_no_summary = find_matching_tags(schema1, schema2, output='string', include_summary=False)
+ self.assertIsInstance(match_string_no_summary, str)
+ self.assertNotIn("Tags:", match_string_no_summary)
+
+ json_style_dict_no_summary = find_matching_tags(schema1, schema2, output='dict', include_summary=False)
+ self.assertIsInstance(json_style_dict_no_summary, dict)
+ self.assertNotIn("summary", json_style_dict_no_summary)
+
+ def test_compare_schemas(self):
+ schema1 = util_create_schemas.load_schema1()
+ schema2 = util_create_schemas.load_schema2()
+
+ matches, not_in_schema1, not_in_schema2, unequal_entries = compare_schemas(schema1, schema2)
+
+ # Check if the result is correct
+ self.assertEqual(len(matches[HedSectionKey.Tags]), 2) # Three matches should be found
+ self.assertIn("TestNode", matches[HedSectionKey.Tags])
+ self.assertIn("TestNode2", matches[HedSectionKey.Tags])
+ self.assertNotIn("TestNode3", matches[HedSectionKey.Tags])
+
+ self.assertEqual(len(not_in_schema2[HedSectionKey.Tags]), 1) # One tag not in schema2
+ self.assertIn("TestNode4", not_in_schema2[HedSectionKey.Tags]) # "TestNode4" is not in schema2
+
+ self.assertEqual(len(not_in_schema1[HedSectionKey.Tags]), 1) # One tag not in schema1
+ self.assertIn("TestNode5", not_in_schema1[HedSectionKey.Tags]) # "TestNode5" is not in schema1
+
+ self.assertEqual(len(unequal_entries[HedSectionKey.Tags]), 1) # No unequal entries should be found
+ self.assertIn("TestNode3", unequal_entries[HedSectionKey.Tags])
+
+ def test_compare_differences(self):
+ schema1 = util_create_schemas.load_schema1()
+ schema2 = util_create_schemas.load_schema2()
+
+ not_in_schema1, not_in_schema2, unequal_entries = compare_differences(schema1, schema2)
+
+ self.assertEqual(len(not_in_schema2[HedSectionKey.Tags]), 1) # One tag not in schema2
+ self.assertIn("TestNode4", not_in_schema2[HedSectionKey.Tags]) # "TestNode4" is not in schema2
+
+ self.assertEqual(len(not_in_schema1[HedSectionKey.Tags]), 1) # One tag not in schema1
+ self.assertIn("TestNode5", not_in_schema1[HedSectionKey.Tags]) # "TestNode5" is not in schema1
+
+ self.assertEqual(len(unequal_entries[HedSectionKey.Tags]), 1) # No unequal entries should be found
+ self.assertIn("TestNode3", unequal_entries[HedSectionKey.Tags])
+
+ # Test with include_summary=True, string output
+ diff_string_with_summary = compare_differences(schema1, schema2, output='string', include_summary=True)
+ self.assertIsInstance(diff_string_with_summary, str)
+ self.assertIn("Tags:", diff_string_with_summary)
+ # print(diff_string_with_summary)
+
+ # Test with include_summary=True, dict output
+ diff_dict_with_summary = compare_differences(schema1, schema2, output='dict', include_summary=True)
+ self.assertIsInstance(diff_dict_with_summary, dict)
+ self.assertIn("summary", diff_dict_with_summary)
+
+ # Optionally, test without include_summary, string output
+ diff_string_no_summary = compare_differences(schema1, schema2, output='string', include_summary=False)
+ self.assertIsInstance(diff_string_no_summary, str)
+ self.assertNotIn("Tags:", diff_string_no_summary)
+
+ # Optionally, test without include_summary, dict output
+ diff_dict_no_summary = compare_differences(schema1, schema2, output='dict', include_summary=False)
+ self.assertIsInstance(diff_dict_no_summary, dict)
+ self.assertNotIn("summary", diff_dict_no_summary)
+
+ def test_compare_score_lib_versions(self):
+ schema1 = load_schema_version("score_1.0.0")
+ schema2 = load_schema_version("score_1.1.0")
+ not_in_schema1, not_in_schema2, unequal_entries = compare_differences(schema1, schema2,
+ attribute_filter=HedKey.InLibrary)
+
+
+ self.assertEqual(len(not_in_schema1[HedSectionKey.Tags]), 21)
+ self.assertEqual(len(not_in_schema2[HedSectionKey.Tags]), 10)
+ self.assertEqual(len(unequal_entries[HedSectionKey.Tags]), 61)
+
+ diff_string = compare_differences(schema1, schema1, attribute_filter=HedKey.InLibrary, output='string',
+ sections=None)
+ self.assertFalse(diff_string)
+ diff_string = compare_differences(schema1, schema2, attribute_filter=HedKey.InLibrary, output='string',
+ sections=None)
+
+ self.assertIsInstance(diff_string, str)
+
+ json_style_dict = compare_differences(schema1, schema2, attribute_filter=HedKey.InLibrary, output='dict',
+ sections=None)
+ self.assertIsInstance(json_style_dict, dict)
+
+ result_string = json.dumps(json_style_dict, indent=4)
+ self.assertIsInstance(result_string, str)
diff --git a/tests/schema/test_schema_compliance.py b/tests/schema/test_schema_compliance.py
index 467d34f7a..9a73248cb 100644
--- a/tests/schema/test_schema_compliance.py
+++ b/tests/schema/test_schema_compliance.py
@@ -1,8 +1,6 @@
import unittest
import os
-
-
from hed import schema
@@ -19,3 +17,8 @@ def test_validate_schema(self):
self.assertTrue(isinstance(issues, list))
self.assertTrue(len(issues) > 1)
+ def test_validate_schema_deprecated(self):
+ hed_schema = schema.load_schema_version("score_1.1.0")
+ issues = hed_schema.check_compliance()
+ self.assertTrue(isinstance(issues, list))
+ self.assertTrue(len(issues) > 1)
diff --git a/tests/schema/test_schema_converters.py b/tests/schema/test_schema_converters.py
index e2e1eb465..30cacaba6 100644
--- a/tests/schema/test_schema_converters.py
+++ b/tests/schema/test_schema_converters.py
@@ -47,7 +47,7 @@ def test_schema_as_string_wiki(self):
with open(self.wiki_file) as file:
hed_schema_as_string = "".join([line for line in file])
- string_schema = schema.from_string(hed_schema_as_string, file_type=".mediawiki")
+ string_schema = schema.from_string(hed_schema_as_string, schema_format=".mediawiki")
self.assertEqual(string_schema, self.hed_schema_wiki)
def test_wikischema2xml(self):
@@ -79,7 +79,7 @@ class TestComplianceBase(unittest.TestCase):
xml_file = '../data/schema_tests/HED8.0.0t.xml'
wiki_file = '../data/schema_tests/HED8.0.0.mediawiki'
can_compare = True
- expected_issues = 5
+ expected_issues = 7
@classmethod
def setUpClass(cls):
diff --git a/tests/schema/test_schema_entry.py b/tests/schema/test_schema_entry.py
new file mode 100644
index 000000000..0985ce2b7
--- /dev/null
+++ b/tests/schema/test_schema_entry.py
@@ -0,0 +1,57 @@
+import unittest
+from hed.schema.hed_schema_entry import HedTagEntry
+class MockEntry:
+ def __init__(self, attributes, parent=None):
+ self.attributes = attributes
+ self.takes_value_child_entry = False
+ self._parent_tag = parent
+
+ _check_inherited_attribute = HedTagEntry._check_inherited_attribute
+ _check_inherited_attribute_internal = HedTagEntry._check_inherited_attribute_internal
+
+
+class TestMockEntry(unittest.TestCase):
+
+ def setUp(self):
+ # Test setup
+ self.root_entry = MockEntry({'color': 'blue', 'size': 'large', 'is_round': False})
+ self.child_entry1 = MockEntry({'color': 'green', 'shape': 'circle', 'is_round': True}, parent=self.root_entry)
+ self.child_entry2 = MockEntry({'size': 'medium', 'material': 'wood', 'number': 5}, parent=self.child_entry1)
+
+ def test_check_inherited_attribute(self):
+ # Test attribute present in the current entry but not in parents
+ self.assertEqual(self.child_entry2._check_inherited_attribute('material', return_value=True, return_union=False), 'wood')
+
+ # Test attribute present in the parent but not in the current entry
+ self.assertEqual(self.child_entry2._check_inherited_attribute('color', return_value=True, return_union=False), 'green')
+
+ # Test attribute present in the parent but not in the current entry, treat_as_string=True
+ self.assertEqual(self.child_entry2._check_inherited_attribute('color', return_value=True, return_union=True), 'green,blue')
+
+ # Test attribute present in the current entry and in parents, treat_as_string=True
+ self.assertEqual(self.child_entry2._check_inherited_attribute('size', return_value=True, return_union=True), 'medium,large')
+
+ # Test attribute not present anywhere
+ self.assertIsNone(self.child_entry2._check_inherited_attribute('weight', return_value=True, return_union=False))
+
+ # Test attribute present in the current entry but not in parents, no return value
+ self.assertTrue(self.child_entry2._check_inherited_attribute('material', return_value=False, return_union=False))
+
+ # Test attribute not present anywhere, no return value
+ self.assertFalse(self.child_entry2._check_inherited_attribute('weight', return_value=False, return_union=False))
+
+ def test_check_inherited_attribute_bool(self):
+ # Test boolean attribute present in the current entry but not in parents
+ self.assertTrue(self.child_entry2._check_inherited_attribute('is_round', return_value=True, return_union=False))
+
+ # Test boolean attribute present in the parent and in the current entry, treat_as_string=True
+ with self.assertRaises(TypeError):
+ self.child_entry2._check_inherited_attribute('is_round', return_value=True, return_union=True)
+
+ def test_check_inherited_attribute_numeric(self):
+ # Test numeric attribute present only in the current entry
+ self.assertEqual(self.child_entry2._check_inherited_attribute('number', return_value=True, return_union=False), 5)
+
+ # Test numeric attribute with treat_as_string=True should raise TypeError
+ with self.assertRaises(TypeError):
+ self.child_entry2._check_inherited_attribute('number', return_value=True, return_union=True)
diff --git a/tests/schema/test_schema_validation_util.py b/tests/schema/test_schema_validation_util.py
index 3c9494aac..7476a3733 100644
--- a/tests/schema/test_schema_validation_util.py
+++ b/tests/schema/test_schema_validation_util.py
@@ -28,13 +28,13 @@ def test_validate_schema_term(self):
"@invalidcharatstart",
]
expected_issues = [
- ErrorHandler.format_error(SchemaWarnings.INVALID_CAPITALIZATION, test_terms[0], char_index=0,
+ ErrorHandler.format_error(SchemaWarnings.SCHEMA_INVALID_CAPITALIZATION, test_terms[0], char_index=0,
problem_char="i"),
[],
[],
- ErrorHandler.format_error(SchemaWarnings.INVALID_CHARACTERS_IN_TAG, test_terms[3], char_index=11,
+ ErrorHandler.format_error(SchemaWarnings.SCHEMA_INVALID_CHARACTERS_IN_TAG, test_terms[3], char_index=11,
problem_char="#"),
- ErrorHandler.format_error(SchemaWarnings.INVALID_CAPITALIZATION, test_terms[4], char_index=0,
+ ErrorHandler.format_error(SchemaWarnings.SCHEMA_INVALID_CAPITALIZATION, test_terms[4], char_index=0,
problem_char="@"),
]
self.validate_term_base(test_terms, expected_issues)
@@ -50,13 +50,13 @@ def test_validate_schema_description(self):
[],
[],
[],
- ErrorHandler.format_error(SchemaWarnings.INVALID_CHARACTERS_IN_DESC, test_descs[3], "dummy",
+ ErrorHandler.format_error(SchemaWarnings.SCHEMA_INVALID_CHARACTERS_IN_DESC, test_descs[3], "dummy",
char_index=60, problem_char="@")
- + ErrorHandler.format_error(SchemaWarnings.INVALID_CHARACTERS_IN_DESC, test_descs[3], "dummy",
+ + ErrorHandler.format_error(SchemaWarnings.SCHEMA_INVALID_CHARACTERS_IN_DESC, test_descs[3], "dummy",
char_index=61, problem_char="$")
- + ErrorHandler.format_error(SchemaWarnings.INVALID_CHARACTERS_IN_DESC, test_descs[3], "dummy",
+ + ErrorHandler.format_error(SchemaWarnings.SCHEMA_INVALID_CHARACTERS_IN_DESC, test_descs[3], "dummy",
char_index=62, problem_char="%")
- + ErrorHandler.format_error(SchemaWarnings.INVALID_CHARACTERS_IN_DESC, test_descs[3], "dummy",
+ + ErrorHandler.format_error(SchemaWarnings.SCHEMA_INVALID_CHARACTERS_IN_DESC, test_descs[3], "dummy",
char_index=63, problem_char="*")
]
diff --git a/tests/schema/util_create_schemas.py b/tests/schema/util_create_schemas.py
new file mode 100644
index 000000000..850d014eb
--- /dev/null
+++ b/tests/schema/util_create_schemas.py
@@ -0,0 +1,47 @@
+from hed.schema import HedKey, HedSectionKey, from_string
+
+
+library_schema_start = """HED library="testcomparison" version="1.1.0" withStandard="8.2.0" unmerged="true"
+
+'''Prologue'''
+
+!# start schema
+
+"""
+
+library_schema_end = """
+!# end schema
+
+!# end hed
+ """
+
+def _get_test_schema(node_lines):
+ library_schema_string = library_schema_start + "\n".join(node_lines) + library_schema_end
+ test_schema = from_string(library_schema_string, ".mediawiki")
+
+ return test_schema
+
+
+def load_schema1():
+ test_nodes = ["'''TestNode''' [This is a simple test node]\n",
+ " *TestNode2",
+ " *TestNode3",
+ " *TestNode4"
+ ]
+ return _get_test_schema(test_nodes)
+
+
+def load_schema2():
+ test_nodes = ["'''TestNode''' [This is a simple test node]\n",
+ " *TestNode2",
+ " **TestNode3",
+ " *TestNode5"
+ ]
+
+ return _get_test_schema(test_nodes)
+
+
+def load_schema_intensity():
+ test_nodes = ["'''IntensityTakesValue'''",
+ " * # {unitClass=intensityUnits}"]
+ return _get_test_schema(test_nodes)
\ No newline at end of file
diff --git a/tests/tools/analysis/test_analysis_util_assemble_hed.py b/tests/tools/analysis/test_analysis_util_assemble_hed.py
index 75d143659..018a7ead7 100644
--- a/tests/tools/analysis/test_analysis_util_assemble_hed.py
+++ b/tests/tools/analysis/test_analysis_util_assemble_hed.py
@@ -95,7 +95,7 @@ def test_assemble_hed_bad_column_no_expand(self):
self.assertEqual(first_str2.find('Def-expand/'), -1, "assemble_hed with def expand has Def-expand tags")
def test_search_strings(self):
- hed_strings, dict1 = df_util.get_assembled(self.input_data, self.sidecar1, self.schema, extra_def_dicts=None,
+ hed_strings, dict1 = df_util.get_assembled(self.input_data, self.sidecar1, self.schema, extra_def_dicts=None,
join_columns=True, shrink_defs=False, expand_defs=True)
queries1 = ["sensory-event"]
query_names1 = ["sensory"]
diff --git a/tests/tools/analysis/test_analysis_util_convert.py b/tests/tools/analysis/test_analysis_util_convert.py
index 7150b8b58..5c4724216 100644
--- a/tests/tools/analysis/test_analysis_util_convert.py
+++ b/tests/tools/analysis/test_analysis_util_convert.py
@@ -1,8 +1,7 @@
import os
import unittest
-from pandas import DataFrame
from hed import schema as hedschema
-from hed.models import HedTag, HedString, HedGroup
+from hed.models import HedTag, HedString
from hed.tools.analysis.analysis_util import hed_to_str
@@ -44,7 +43,6 @@ def test_hed_to_str_other(self):
hed_to_str(dict1)
self.assertEqual(context.exception.args[0], "ContentsWrongClass")
-
def test_hed_to_str_obj(self):
str_obj1 = HedString('Label/Cond1', self.hed_schema)
str1 = hed_to_str(str_obj1)
@@ -68,8 +66,8 @@ def test_hed_to_str_obj(self):
str5 = str(str_obj5)
self.assertEqual(str5, '(Label/Cond1),Red')
for tup in tuples:
- if len(tup[1]._children) == 1:
- str_obj5.replace(tup[1], tup[1]._children[0])
+ if len(tup[1].children) == 1:
+ str_obj5.replace(tup[1], tup[1].children[0])
str5a = str(str_obj5)
self.assertEqual(str5a, 'Label/Cond1,Red')
@@ -106,5 +104,6 @@ def test_hed_to_str_remove_parentheses(self):
self.assertIsInstance(str3, str)
self.assertEqual(str3, 'Label/Cond1')
+
if __name__ == '__main__':
unittest.main()
diff --git a/tests/tools/analysis/test_analysis_util_get_assembled_strings.py b/tests/tools/analysis/test_analysis_util_get_assembled_strings.py
index 036b4c938..5a3972a37 100644
--- a/tests/tools/analysis/test_analysis_util_get_assembled_strings.py
+++ b/tests/tools/analysis/test_analysis_util_get_assembled_strings.py
@@ -1,9 +1,7 @@
import os
import unittest
from hed import schema as hedschema
-from hed.models.hed_string import HedString
from hed.models.tabular_input import TabularInput
-# from hed.tools.analysis.analysis_util import get_assembled_strings
# noinspection PyBroadException
@@ -40,7 +38,7 @@ def setUp(self):
# "get_assembled_strings should not have Def-expand when expand_defs is False")
# self.assertNotEqual(hed_strings_joined1.find("Def/"), -1,
# "get_assembled_strings should have Def/ when expand_defs is False")
- #
+ #
# def test_get_assembled_strings_no_schema_def_expand(self):
# hed_list2 = get_assembled_strings(self.input_data, self.hed_schema, expand_defs=True)
# self.assertIsInstance(hed_list2, list, "get_assembled_groups should return a list")
@@ -53,7 +51,7 @@ def setUp(self):
# "get_assembled_strings should have Def-expand when expand_defs is True")
# self.assertEqual(hed_strings_joined2.find("Def/"), -1,
# "get_assembled_strings should not have Def/ when expand_defs is True")
- #
+ #
# def test_get_assembled_strings_with_schema_no_def_expand(self):
# hed_list1 = get_assembled_strings(self. input_data, hed_schema=self.hed_schema, expand_defs=False)
# self.assertIsInstance(hed_list1, list, "get_assembled_strings returns a list when expand defs is False")
@@ -66,7 +64,7 @@ def setUp(self):
# "get_assembled_strings does not have Def-expand when expand_defs is False")
# self.assertNotEqual(hed_strings_joined1.find("Def/"), -1,
# "get_assembled_strings should have Def/ when expand_defs is False")
- #
+ #
# def test_get_assembled_strings_with_schema_def_expand(self):
# hed_list2 = get_assembled_strings(self.input_data, hed_schema=self.hed_schema, expand_defs=True)
# self.assertIsInstance(hed_list2, list, "get_assembled_groups should return a list")
@@ -79,7 +77,7 @@ def setUp(self):
# "get_assembled_strings should have Def-expand when expand_defs is True")
# self.assertEqual(hed_strings_joined2.find("Def/"), -1,
# "get_assembled_strings should not have Def/ when expand_defs is True")
- #
+ #
# def test_get_assembled_strings_no_sidecar_no_schema(self):
# input_data = TabularInput(self.events_path, name="face_sub1_events")
# hed_list1 = get_assembled_strings(input_data, expand_defs=False)
@@ -94,7 +92,7 @@ def setUp(self):
# self.assertIsInstance(hed_list2[0], HedString,
# "get_assembled_string should return an HedString when no sidecar")
# self.assertFalse(hed_list2[0].children, "get_assembled_string returned HedString is empty when no sidecar")
- #
+ #
# def test_get_assembled_strings_no_sidecar_schema(self):
# input_data = TabularInput(self.events_path, hed_schema=self.hed_schema, name="face_sub1_events")
# hed_list1 = get_assembled_strings(input_data, expand_defs=False)
diff --git a/tests/tools/analysis/test_annotation_util.py b/tests/tools/analysis/test_annotation_util.py
index f54dd1dc8..c0e9b2b6f 100644
--- a/tests/tools/analysis/test_annotation_util.py
+++ b/tests/tools/analysis/test_annotation_util.py
@@ -12,7 +12,6 @@
generate_sidecar_entry
from hed.tools.analysis.tabular_summary import TabularSummary
from hed.tools.util.io_util import get_file_list
-from hed.validator import HedValidator
# noinspection PyBroadException
@@ -359,7 +358,8 @@ def test_flatten_cat_col(self):
"_flatten_cat_col should use the Description tag if available")
def test_flatten_cat_col_only_description(self):
- keys, values, descriptions, tags = _flatten_cat_col("event_type", {"HED": {"code1": "Description/Code 1 here."}})
+ keys, values, descriptions, tags = _flatten_cat_col("event_type",
+ {"HED": {"code1": "Description/Code 1 here."}})
self.assertIsInstance(tags, list)
self.assertEqual(tags[0], 'n/a')
diff --git a/tests/tools/analysis/test_column_name_summary.py b/tests/tools/analysis/test_column_name_summary.py
index 31cb551c0..57c6ba4ba 100644
--- a/tests/tools/analysis/test_column_name_summary.py
+++ b/tests/tools/analysis/test_column_name_summary.py
@@ -54,6 +54,7 @@ def test_get_summary(self):
column_summary.update('run-01', self.columns1)
column_summary.update('run-02', self.columns1)
summary1 = column_summary.get_summary()
+ self.assertIsInstance(summary1, dict)
column_summary.update('run-03', self.columns2)
column_summary.update('run-04', self.columns3)
summary2 = column_summary.get_summary()
diff --git a/tests/tools/analysis/test_event_manager.py b/tests/tools/analysis/test_event_manager.py
index 8f84549d1..d221f2c47 100644
--- a/tests/tools/analysis/test_event_manager.py
+++ b/tests/tools/analysis/test_event_manager.py
@@ -1,11 +1,10 @@
import os
import unittest
-from hed.models.sidecar import Sidecar
+from hed.models.sidecar import Sidecar, HedString
from hed.models.tabular_input import TabularInput
from hed.schema.hed_schema_io import load_schema_version
from hed.tools.analysis.event_manager import EventManager
-from hed.tools.analysis.temporal_event import TemporalEvent
class Test(unittest.TestCase):
@@ -20,53 +19,63 @@ def setUpClass(cls):
sidecar_path = os.path.realpath(os.path.join(bids_root_path, 'task-FacePerception_events.json'))
sidecar1 = Sidecar(sidecar_path, name='face_sub1_json')
cls.input_data = TabularInput(events_path, sidecar=sidecar1, name="face_sub1_events")
+ cls.events_path = events_path
+ cls.sidecar = sidecar1
cls.schema = schema
def test_constructor(self):
manager1 = EventManager(self.input_data, self.schema)
+ self.assertIsInstance(manager1.event_list, list)
+ self.assertEqual(len(manager1.event_list), len(self.input_data.dataframe))
+ self.assertEqual(len(manager1.event_list[0]), 2)
+ self.assertIsInstance(manager1.hed_strings, list)
+ self.assertEqual(len(manager1.hed_strings), len(self.input_data.dataframe))
self.assertEqual(len(manager1.event_list), len(self.input_data.dataframe))
event_count = 0
for index, item in enumerate(manager1.event_list):
for event in item:
event_count = event_count + 1
- self.assertFalse(event.duration)
self.assertTrue(event.end_index)
self.assertEqual(event.start_index, index)
self.assertEqual(event.start_index, index)
- self.assertEqual(event.start_time, manager1.data.dataframe.loc[index, "onset"])
+ self.assertEqual(event.start_time, float(manager1.input_data.dataframe.loc[index, "onset"]))
if not event.end_time:
- self.assertEqual(event.end_index, len(manager1.data.dataframe))
+ self.assertEqual(event.end_index, len(manager1.input_data.dataframe))
- # def test_constructor(self):
- # with self.assertRaises(ValueError) as cont:
- # HedContextManager(self.test_strings1, None)
- # self.assertEqual(cont.exception.args[0], "ContextRequiresSchema")
+ def test_unfold_context_no_remove(self):
+ manager1 = EventManager(self.input_data, self.schema)
+ hed, base, context = manager1.unfold_context()
+ for index in range(len(manager1.onsets)):
+ self.assertIsInstance(hed[index], str)
+ self.assertIsInstance(base[index], str)
- # def test_iter(self):
- # hed_strings = get_assembled_strings(self.input_data, hed_schema=self.schema, expand_defs=False)
- # manager1 = HedContextManager(hed_strings, self.schema)
- # i = 0
- # for hed, context in manager1.iter_context():
- # self.assertEqual(hed, manager1.hed_strings[i])
- # self.assertEqual(context, manager1.contexts[i])
- # i = i + 1
+ def test_unfold_context_remove(self):
+ manager1 = EventManager(self.input_data, self.schema)
+ hed, base, context = manager1.unfold_context(remove_types=['Condition-variable', 'Task'])
+ for index in range(len(manager1.onsets)):
+ self.assertIsInstance(hed[index], str)
+ self.assertIsInstance(base[index], str)
+ # ToDo finish tests
- # def test_constructor_from_assembled(self):
- # hed_strings = get_assembled_strings(self.input_data, hed_schema=self.schema, expand_defs=False)
- # manager1 = HedContextManager(hed_strings, self.schema)
- # self.assertEqual(len(manager1.hed_strings), 200,
- # "The constructor for assembled strings has expected # of strings")
- # self.assertEqual(len(manager1.onset_list), 261,
- # "The constructor for assembled strings has onset_list of correct length")
+ def test_str_list_to_hed(self):
+ manager = EventManager(self.input_data, self.schema)
+ hed_obj1 = manager.str_list_to_hed(['', '', ''])
+ self.assertFalse(hed_obj1)
+ hed, base, context = manager.unfold_context()
- # def test_constructor_unmatched(self):
- # with self.assertRaises(HedFileError) as context:
- # HedContextManager(self.test_strings2, self.schema)
- # self.assertEqual(context.exception.args[0], 'UnmatchedOffset')
+ hed_obj2 = manager.str_list_to_hed([hed[1], base[1], '(Event-context, (' + context[1] + '))'])
+ self.assertIsInstance(hed_obj2, HedString)
+ self.assertEqual(9, len(hed_obj2.children))
+ hed3, base3, context3 = manager.unfold_context(remove_types=['Condition-variable', 'Task'])
+ hed_obj3 = manager.str_list_to_hed([hed3[1], base3[1], '(Event-context, (' + context3[1] + '))'])
+ self.assertIsInstance(hed_obj3, HedString)
+ self.assertEqual(5, len(hed_obj3.children))
- # def test_constructor_multiple_values(self):
- # manager = HedContextManager(self.test_strings3, self.schema)
- # self.assertEqual(len(manager.onset_list), 3, "Constructor should have right number of onsets")
+ def test_get_type_defs(self):
+ manager1 = EventManager(self.input_data, self.schema)
+ def_names = manager1.get_type_defs(["Condition-variable", "task"])
+ self.assertIsInstance(def_names, list)
+ self.assertEqual(11, len(def_names))
if __name__ == '__main__':
diff --git a/tests/tools/analysis/test_hed_context_manager.py b/tests/tools/analysis/test_hed_context_manager.py
deleted file mode 100644
index 2ac042453..000000000
--- a/tests/tools/analysis/test_hed_context_manager.py
+++ /dev/null
@@ -1,109 +0,0 @@
-import os
-import unittest
-from hed.errors.exceptions import HedFileError
-from hed.models.hed_string import HedString
-from hed.models.sidecar import Sidecar
-from hed.models.tabular_input import TabularInput
-from hed.schema.hed_schema_io import load_schema_version
-from hed.tools.analysis.hed_context_manager import HedContextManager
-from hed.models.df_util import get_assembled
-
-
-class Test(unittest.TestCase):
-
- @classmethod
- def setUpClass(cls):
- schema = load_schema_version(xml_version="8.1.0")
- cls.test_strings1 = [HedString('Sensory-event,(Def/Cond1,(Red, Blue),Onset),(Def/Cond2,Onset),Green,Yellow',
- hed_schema=schema),
- HedString('(Def/Cond1, Offset)', hed_schema=schema),
- HedString('White, Black', hed_schema=schema),
- HedString('', hed_schema=schema),
- HedString('(Def/Cond2, Onset)', hed_schema=schema),
- HedString('(Def/Cond3/1.3, Onset)', hed_schema=schema),
- HedString('Arm, Leg', hed_schema=schema)]
- cls.test_strings2 = [HedString('(Def/Cond3/2, Offset)', hed_schema=schema)]
- cls.test_strings3 = [HedString("Def/Cond2, (Def/Cond6/4, Onset), (Def/Cond6/7.8, Onset), Def/Cond6/Alpha",
- hed_schema=schema),
- HedString("Yellow", hed_schema=schema),
- HedString("Def/Cond2, (Def/Cond6/4, Onset)", hed_schema=schema),
- HedString("Def/Cond2, Def/Cond6/5.2 (Def/Cond6/7.8, Offset)", hed_schema=schema),
- HedString("Def/Cond2, Def/Cond6/4", hed_schema=schema)]
-
- bids_root_path = os.path.realpath(os.path.join(os.path.dirname(os.path.realpath(__file__)),
- '../../data/bids_tests/eeg_ds003645s_hed'))
- events_path = os.path.realpath(os.path.join(bids_root_path,
- 'sub-002/eeg/sub-002_task-FacePerception_run-1_events.tsv'))
- sidecar_path = os.path.realpath(os.path.join(bids_root_path, 'task-FacePerception_events.json'))
- sidecar1 = Sidecar(sidecar_path, name='face_sub1_json')
- cls.input_data = TabularInput(events_path, sidecar=sidecar1, name="face_sub1_events")
- cls.sidecar1 = sidecar1
- cls.schema = schema
-
- # def test_onset_group(self):
- # str1 = '(Def/Temper, (Label/help))'
- # str1_obj = HedString(str1)
- # grp1 = str1_obj.chilren()[0]
- # on_grp1 = OnsetGroup('this_group', x, 1)
- # self.assertIsInstance(grp1.contents, str)
- # self.assertEqual(grp1.contents, '(Def/Temper,(Label/help))')
- # str1_obj = HedString(str1)
- # grp2 =
- # self.assertIsInstance(grp2.contents, str)
- # self.assertEqual(grp2.contents, str1)
- #
- # y = HedGroup(str1)
- # grp3 = OnsetGroup('this_group', y, 0)
- # self.assertIsInstance(grp3.contents, str)
- # self.assertEqual(grp3.contents, str1)
- # grp4 = OnsetGroup('this_group', x, 0, 10)
- # self.assertIsInstance(grp4.contents, str)
- # self.assertEqual(grp4.contents, str1)
-
- def test_constructor(self):
- manager1 = HedContextManager(self.test_strings1, self.schema)
- self.assertIsInstance(manager1, HedContextManager, "The constructor should create an HedContextManager")
- self.assertEqual(len(manager1.hed_strings), 7, "The constructor should have the right number of strings")
- self.assertEqual(len(manager1.onset_list), 4, "The constructor should have right length onset list")
- self.assertIsInstance(manager1.hed_strings[1], HedString, "Constructor hed string should be a hedstring")
- self.assertFalse(manager1.hed_strings[1].children, "When no tags list HedString is empty")
- context = manager1.contexts
- self.assertIsInstance(context, list, "The constructor event contexts should be a list")
- self.assertIsInstance(context[1], HedString, "The constructor event contexts has a correct element")
-
- def test_constructor1(self):
- with self.assertRaises(ValueError) as cont:
- HedContextManager(self.test_strings1, None)
- self.assertEqual(cont.exception.args[0], "ContextRequiresSchema")
-
- def test_iter(self):
- hed_strings, definitions = get_assembled(self.input_data, self.sidecar1, self.schema, extra_def_dicts=None,
- join_columns=True, shrink_defs=True, expand_defs=False)
- manager1 = HedContextManager(hed_strings, self.schema)
- i = 0
- for hed, context in manager1.iter_context():
- self.assertEqual(hed, manager1.hed_strings[i])
- self.assertEqual(context, manager1.contexts[i])
- i = i + 1
-
- def test_constructor_from_assembled(self):
- hed_strings, definitions = get_assembled(self.input_data, self.sidecar1, self.schema, extra_def_dicts=None,
- join_columns=True, shrink_defs=True, expand_defs=False)
- manager1 = HedContextManager(hed_strings, self.schema)
- self.assertEqual(len(manager1.hed_strings), 200,
- "The constructor for assembled strings has expected # of strings")
- self.assertEqual(len(manager1.onset_list), 261,
- "The constructor for assembled strings has onset_list of correct length")
-
- def test_constructor_unmatched(self):
- with self.assertRaises(HedFileError) as context:
- HedContextManager(self.test_strings2, self.schema)
- self.assertEqual(context.exception.args[0], 'UnmatchedOffset')
-
- def test_constructor_multiple_values(self):
- manager = HedContextManager(self.test_strings3, self.schema)
- self.assertEqual(len(manager.onset_list), 3, "Constructor should have right number of onsets")
-
-
-if __name__ == '__main__':
- unittest.main()
diff --git a/tests/tools/analysis/test_hed_tag_counts.py b/tests/tools/analysis/test_hed_tag_counts.py
index 5f2eebc27..8f492466b 100644
--- a/tests/tools/analysis/test_hed_tag_counts.py
+++ b/tests/tools/analysis/test_hed_tag_counts.py
@@ -48,7 +48,7 @@ def test_constructor(self):
counts.update_event_counts(HedString(self.input_df.iloc[k]['HED_assembled'], self.hed_schema),
file_name='Base_name')
self.assertIsInstance(counts.tag_dict, dict)
- self.assertEqual(len(counts.tag_dict), 15)
+ self.assertEqual(14, len(counts.tag_dict))
def test_merge_tag_dicts(self):
counts1 = HedTagCounts('Base_name1', 50)
@@ -61,10 +61,10 @@ def test_merge_tag_dicts(self):
counts3 = HedTagCounts("All", 0)
counts3.merge_tag_dicts(counts1.tag_dict)
counts3.merge_tag_dicts(counts2.tag_dict)
- self.assertEqual(len(counts1.tag_dict), 15)
- self.assertEqual(len(counts2.tag_dict), 15)
- self.assertEqual(len(counts3.tag_dict), 15)
- self.assertEqual(counts3.tag_dict['experiment-structure'].events, 2)
+ self.assertEqual(14, len(counts1.tag_dict))
+ self.assertEqual(14, len(counts2.tag_dict))
+ self.assertEqual(14, len(counts3.tag_dict))
+ self.assertEqual(2, counts3.tag_dict['experiment-structure'].events)
def test_hed_tag_count(self):
name = 'Base_name1'
@@ -78,14 +78,14 @@ def test_organize_tags(self):
hed_strings, definitions = get_assembled(self.input_data, self.sidecar1, self.hed_schema,
extra_def_dicts=None, join_columns=True,
shrink_defs=False, expand_defs=True)
- # definitions = input_data.get_definitions().gathered_defs
+ # type_defs = input_data.get_definitions().gathered_defs
for hed in hed_strings:
counts.update_event_counts(hed, 'run-1')
self.assertIsInstance(counts.tag_dict, dict)
- self.assertEqual(len(counts.tag_dict), 47)
+ self.assertEqual(46, len(counts.tag_dict))
org_tags, leftovers = counts.organize_tags(self.tag_template)
- self.assertEqual(len(org_tags), 19)
- self.assertEqual(len(leftovers), 22)
+ self.assertEqual(19, len(org_tags))
+ self.assertEqual(21, len(leftovers))
if __name__ == '__main__':
diff --git a/tests/tools/analysis/test_hed_tag_manager.py b/tests/tools/analysis/test_hed_tag_manager.py
new file mode 100644
index 000000000..cca0b551b
--- /dev/null
+++ b/tests/tools/analysis/test_hed_tag_manager.py
@@ -0,0 +1,172 @@
+import os
+import unittest
+from pandas import DataFrame
+from hed.models import DefinitionDict
+from hed.models.hed_string import HedString
+from hed.models.tabular_input import TabularInput
+from hed.schema.hed_schema_io import load_schema_version
+from hed.tools.analysis.event_manager import EventManager
+from hed.tools.analysis.hed_tag_manager import HedTagManager
+
+
+class Test(unittest.TestCase):
+
+ @classmethod
+ def setUpClass(cls):
+ schema = load_schema_version(xml_version="8.2.0")
+ # Set up the definition dictionary
+ defs = [HedString('(Definition/Cond1, (Condition-variable/Var1, Circle, Square))', hed_schema=schema),
+ HedString('(Definition/Cond2, (condition-variable/Var2, Condition-variable/Apple, Triangle, Sphere))',
+ hed_schema=schema),
+ HedString('(Definition/Cond3/#, (Condition-variable/Var3, Label/#, Ellipse, Cross))',
+ hed_schema=schema),
+ HedString('(Definition/Cond4, (Condition-variable, Apple, Banana))', hed_schema=schema),
+ HedString('(Definition/Cond5, (Condition-variable/Lumber, Apple, Banana))', hed_schema=schema),
+ HedString('(Definition/Cond6/#, (Condition-variable/Lumber, Label/#, Apple, Banana))',
+ hed_schema=schema)]
+ def_dict = DefinitionDict()
+ for value in defs:
+ def_dict.check_for_definitions(value)
+
+ test_strings1 = ["Sensory-event,(Def/Cond1,(Red, Blue, Condition-variable/Trouble),Onset)",
+ "(Def/Cond2,Onset),Green,Yellow, Def/Cond5, Def/Cond6/4",
+ "(Def/Cond1, Offset)",
+ "White, Black, Condition-variable/Wonder, Condition-variable/Fast",
+ "",
+ "(Def/Cond2, Onset)",
+ "(Def/Cond3/4.3, Onset)",
+ "Arm, Leg, Condition-variable/Fast"]
+ test_onsets1 = [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0]
+ df1 = DataFrame(test_onsets1, columns=['onset'])
+ df1['HED'] = test_strings1
+ input_data1 = TabularInput(df1)
+ cls.event_man1 = EventManager(input_data1, schema, extra_defs=def_dict)
+ test_strings2 = ["Def/Cond2, (Def/Cond6/4, Onset), (Def/Cond6/7.8, Onset), Def/Cond6/Alpha",
+ "Yellow",
+ "Def/Cond2, (Def/Cond6/4, Onset)",
+ "Def/Cond2, Def/Cond6/5.2 (Def/Cond6/7.8, Offset)",
+ "Def/Cond2, Def/Cond6/4"]
+ test_onsets2 = [0.0, 1.0, 2.0, 3.0, 4.0]
+ df2 = DataFrame(test_onsets2, columns=['onset'])
+ df2['HED'] = test_strings2
+ input_data2 = TabularInput(df2)
+ cls.event_man2 = EventManager(input_data2, schema, extra_defs=def_dict)
+ test_strings3 = ['(Def/Cond3, Offset)']
+ test_onsets3 = [0.0]
+ df3 = DataFrame(test_onsets3, columns=['onset'])
+ df3['HED'] = test_strings3
+ cls.input_data3 = TabularInput(df3)
+ bids_root_path = os.path.realpath(os.path.join(os.path.dirname(os.path.realpath(__file__)),
+ '../../data/bids_tests/eeg_ds003645s_hed'))
+ events_path = os.path.realpath(os.path.join(bids_root_path,
+ 'sub-002/eeg/sub-002_task-FacePerception_run-1_events.tsv'))
+ sidecar_path = os.path.realpath(os.path.join(bids_root_path, 'task-FacePerception_events.json'))
+ cls.input_data = TabularInput(events_path, sidecar_path)
+ cls.schema = schema
+ cls.def_dict = def_dict
+
+ # def test_constructor(self):
+ # type_var = HedType(self.event_man1, 'test-it')
+ # self.assertIsInstance(type_var, HedType, "Constructor should create a HedType from an event manager")
+ # self.assertEqual(len(type_var._type_map), 8,
+ # "Constructor ConditionVariables should have the right length")
+
+ def test_constructor_from_tabular_input(self):
+ event_man = EventManager(self.input_data, self.schema)
+ tag_man1 = HedTagManager(EventManager(self.input_data, self.schema))
+ self.assertIsInstance(tag_man1, HedTagManager)
+ hed_objs1a = tag_man1.get_hed_objs(include_context=False, replace_defs=False)
+ hed_objs1b = tag_man1.get_hed_objs(include_context=True, replace_defs=False)
+ hed_objs1c = tag_man1.get_hed_objs(include_context=False, replace_defs=True)
+ hed_objs1d = tag_man1.get_hed_objs(include_context=True, replace_defs=True)
+ tag_man2 = HedTagManager(event_man, remove_types=['Condition-variable', 'Task'])
+ hed_objs2a = tag_man2.get_hed_objs(include_context=False, replace_defs=False)
+ hed_objs2b = tag_man2.get_hed_objs(include_context=True, replace_defs=False)
+ hed_objs1c = tag_man2.get_hed_objs(include_context=False, replace_defs=True)
+ hed_objs1d = tag_man2.get_hed_objs(include_context=True, replace_defs=True)
+ self.assertIsInstance(tag_man2, HedTagManager)
+ self.assertIsInstance(tag_man2, HedTagManager)
+
+ def test_get_hed_objs(self):
+ event_man = EventManager(self.input_data, self.schema)
+ tag_man1 = HedTagManager(EventManager(self.input_data, self.schema))
+ # tag_man = HedTagManager(event_man, remove_types=['Condition-variable', 'Task'])
+ # hed_objs = tag_man.get_hed_objs()
+ # self.assertIsInstance(hed_objs, list)
+ # self.assertEqual(len(hed_objs), len(event_man.onsets))
+
+ # def test_constructor_variable_caps(self):
+ # sidecar1 = Sidecar(self.sidecar_path, name='face_sub1_json')
+ # input_data = TabularInput(self.events_path, sidecar1, name="face_sub1_events")
+ # event_man = EventManager(input_data, self.schema)
+ # var_manager = HedType(event_man, 'run-01')
+ # self.assertIsInstance(var_manager, HedType, "Constructor should create a HedTypeManager variable caps")
+ #
+ # def test_constructor_multiple_values(self):
+ # type_var = HedType(self.event_man2, 'test-it')
+ # self.assertIsInstance(type_var, HedType, "Constructor should create a HedType from an event manager")
+ # self.assertEqual(len(type_var._type_map), 3,
+ # "Constructor should have right number of type_variables if multiple")
+ #
+ # def test_constructor_unmatched(self):
+ # with self.assertRaises(KeyError) as context:
+ # event_man = EventManager(self.input_data3, self.schema, extra_defs=self.def_dict)
+ # HedType(event_man, 'run-01')
+ # self.assertEqual(context.exception.args[0], 'cond3')
+ #
+ # def test_get_variable_factors(self):
+ # sidecar1 = Sidecar(self.sidecar_path, name='face_sub1_json')
+ # input_data = TabularInput(self.events_path, sidecar1, name="face_sub1_events")
+ # event_man = EventManager(input_data, self.schema)
+ # var_manager = HedType(event_man, 'run-01')
+ # df_new1 = var_manager.get_type_factors()
+ # self.assertIsInstance(df_new1, DataFrame)
+ # self.assertEqual(len(df_new1), 200)
+ # self.assertEqual(len(df_new1.columns), 7)
+ # df_new2 = var_manager.get_type_factors(type_values=["face-type"])
+ # self.assertEqual(len(df_new2), 200)
+ # self.assertEqual(len(df_new2.columns), 3)
+ # df_new3 = var_manager.get_type_factors(type_values=["junk"])
+ # self.assertIsNone(df_new3)
+ #
+ # def test_str(self):
+ # sidecar1 = Sidecar(self.sidecar_path, name='face_sub1_json')
+ # input_data = TabularInput(self.events_path, sidecar1, name="face_sub1_events")
+ # event_man = EventManager(input_data, self.schema)
+ # var_manager = HedType(event_man, 'run-01')
+ # new_str = str(var_manager)
+ # self.assertIsInstance(new_str, str)
+ #
+ # def test_summarize_variables(self):
+ # sidecar1 = Sidecar(self.sidecar_path, name='face_sub1_json')
+ # input_data = TabularInput(self.events_path, sidecar1, name="face_sub1_events")
+ # event_man = EventManager(input_data, self.schema)
+ # var_manager = HedType(event_man, 'run-01')
+ # summary = var_manager.get_summary()
+ # self.assertIsInstance(summary, dict, "get_summary produces a dictionary if not json")
+ # self.assertEqual(len(summary), 3, "Summarize_variables has right number of condition type_variables")
+ # self.assertIn("key-assignment", summary, "get_summary has a correct key")
+ #
+ # def test_extract_definition_variables(self):
+ # var_manager = HedType(self.event_man1, 'run-01')
+ # var_levels = var_manager._type_map['var3'].levels
+ # self.assertNotIn('cond3/7', var_levels,
+ # "_extract_definition_variables before extraction def/cond3/7 not in levels")
+ # tag = HedTag("Def/Cond3/7", hed_schema=self.schema)
+ # var_manager._extract_definition_variables(tag, 5)
+ # self.assertIn('cond3/7', var_levels,
+ # "_extract_definition_variables after extraction def/cond3/7 not in levels")
+ #
+ # def test_get_variable_names(self):
+ # conditions1 = HedType(self.event_man1, 'run-01')
+ # list1 = conditions1.get_type_value_names()
+ # self.assertEqual(len(list1), 8, "get_variable_tags list should have the right length")
+ #
+ # def test_get_variable_def_names(self):
+ # conditions1 = HedType(self.event_man1, 'run-01')
+ # list1 = conditions1.get_type_def_names()
+ # self.assertEqual(len(list1), 5, "get_type_def_names list should have the right length")
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/tests/tools/analysis/test_hed_type.py b/tests/tools/analysis/test_hed_type.py
new file mode 100644
index 000000000..662b82ccb
--- /dev/null
+++ b/tests/tools/analysis/test_hed_type.py
@@ -0,0 +1,157 @@
+import os
+import unittest
+from pandas import DataFrame
+from hed.models import DefinitionDict
+from hed.models.hed_string import HedString
+from hed.models.hed_tag import HedTag
+from hed.models.sidecar import Sidecar
+from hed.models.tabular_input import TabularInput
+from hed.schema.hed_schema_io import load_schema_version
+from hed.tools.analysis.event_manager import EventManager
+from hed.tools.analysis.hed_type import HedType
+
+
+class Test(unittest.TestCase):
+
+ @classmethod
+ def setUpClass(cls):
+ schema = load_schema_version(xml_version="8.2.0")
+ # Set up the definition dictionary
+ defs = [HedString('(Definition/Cond1, (Condition-variable/Var1, Circle, Square))', hed_schema=schema),
+ HedString('(Definition/Cond2, (condition-variable/Var2, Condition-variable/Apple, Triangle, Sphere))',
+ hed_schema=schema),
+ HedString('(Definition/Cond3/#, (Condition-variable/Var3, Label/#, Ellipse, Cross))',
+ hed_schema=schema),
+ HedString('(Definition/Cond4, (Condition-variable, Rectangle, Triangle))', hed_schema=schema),
+ HedString('(Definition/Cond5, (Condition-variable/Lumber, Action, Sensory-presentation))',
+ hed_schema=schema),
+ HedString('(Definition/Cond6/#, (Condition-variable/Lumber, Label/#, Agent, Move))',
+ hed_schema=schema)]
+ def_dict = DefinitionDict()
+ for value in defs:
+ def_dict.check_for_definitions(value)
+
+ test_strings1 = ["Sensory-event,(Def/Cond1,(Elbow, Hip, Condition-variable/Trouble),Onset)",
+ "(Def/Cond2,Onset),Green,Yellow, Def/Cond5, Def/Cond6/4",
+ "(Def/Cond1, Offset)",
+ "White, Black, Condition-variable/Wonder, Condition-variable/Fast",
+ "",
+ "(Def/Cond2, Onset)",
+ "(Def/Cond3/4.3, Onset)",
+ "Upper-arm, Head, Condition-variable/Fast"]
+ test_onsets1 = [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0]
+ df1 = DataFrame(test_onsets1, columns=['onset'])
+ df1['HED'] = test_strings1
+ input_data1 = TabularInput(df1)
+ cls.event_man1 = EventManager(input_data1, schema, extra_defs=def_dict)
+ test_strings2 = ["Def/Cond2, (Def/Cond6/4, Onset), (Def/Cond6/7.8, Onset), Def/Cond6/Alpha",
+ "Yellow",
+ "Def/Cond2, (Def/Cond6/4, Onset)",
+ "Def/Cond2, Def/Cond6/5.2 (Def/Cond6/7.8, Offset)",
+ "Def/Cond2, Def/Cond6/4"]
+ test_onsets2 = [0.0, 1.0, 2.0, 3.0, 4.0]
+ df2 = DataFrame(test_onsets2, columns=['onset'])
+ df2['HED'] = test_strings2
+ input_data2 = TabularInput(df2)
+ cls.event_man2 = EventManager(input_data2, schema, extra_defs=def_dict)
+ test_strings3 = ['(Def/Cond3, Offset)']
+ test_onsets3 = [0.0]
+ df3 = DataFrame(test_onsets3, columns=['onset'])
+ df3['HED'] = test_strings3
+ cls.input_data3 = TabularInput(df3)
+ bids_root_path = os.path.realpath(os.path.join(os.path.dirname(os.path.realpath(__file__)),
+ '../../data/bids_tests/eeg_ds003645s_hed'))
+ cls.events_path = os.path.realpath(os.path.join(bids_root_path,
+ 'sub-002/eeg/sub-002_task-FacePerception_run-1_events.tsv'))
+ cls.sidecar_path = os.path.realpath(os.path.join(bids_root_path, 'task-FacePerception_events.json'))
+ cls.schema = schema
+ cls.def_dict = def_dict
+
+ def test_constructor(self):
+ type_var = HedType(self.event_man1, 'test-it')
+ self.assertIsInstance(type_var, HedType, "Constructor should create a HedType from an event manager")
+ self.assertEqual(len(type_var._type_map), 8,
+ "Constructor ConditionVariables should have the right length")
+
+ def test_constructor_from_tabular_input(self):
+ sidecar1 = Sidecar(self.sidecar_path, name='face_sub1_json')
+ input_data = TabularInput(self.events_path, sidecar=sidecar1, name="face_sub1_events")
+ event_man = EventManager(input_data, self.schema)
+ var_man = HedType(event_man, 'face')
+ self.assertIsInstance(var_man, HedType, "Constructor should create a HedTypeManager from a tabular input")
+
+ def test_constructor_variable_caps(self):
+ sidecar1 = Sidecar(self.sidecar_path, name='face_sub1_json')
+ input_data = TabularInput(self.events_path, sidecar1, name="face_sub1_events")
+ event_man = EventManager(input_data, self.schema)
+ var_manager = HedType(event_man, 'run-01')
+ self.assertIsInstance(var_manager, HedType, "Constructor should create a HedTypeManager variable caps")
+
+ def test_constructor_multiple_values(self):
+ type_var = HedType(self.event_man2, 'test-it')
+ self.assertIsInstance(type_var, HedType, "Constructor should create a HedType from an event manager")
+ self.assertEqual(len(type_var._type_map), 3,
+ "Constructor should have right number of type_variables if multiple")
+
+ def test_constructor_unmatched(self):
+ with self.assertRaises(KeyError) as context:
+ event_man = EventManager(self.input_data3, self.schema, extra_defs=self.def_dict)
+ HedType(event_man, 'run-01')
+ self.assertEqual(context.exception.args[0], 'cond3')
+
+ def test_get_variable_factors(self):
+ sidecar1 = Sidecar(self.sidecar_path, name='face_sub1_json')
+ input_data = TabularInput(self.events_path, sidecar1, name="face_sub1_events")
+ event_man = EventManager(input_data, self.schema)
+ var_manager = HedType(event_man, 'run-01')
+ df_new1 = var_manager.get_type_factors()
+ self.assertIsInstance(df_new1, DataFrame)
+ self.assertEqual(len(df_new1), 200)
+ self.assertEqual(len(df_new1.columns), 7)
+ df_new2 = var_manager.get_type_factors(type_values=["face-type"])
+ self.assertEqual(len(df_new2), 200)
+ self.assertEqual(len(df_new2.columns), 3)
+ df_new3 = var_manager.get_type_factors(type_values=["junk"])
+ self.assertIsNone(df_new3)
+
+ def test_str(self):
+ sidecar1 = Sidecar(self.sidecar_path, name='face_sub1_json')
+ input_data = TabularInput(self.events_path, sidecar1, name="face_sub1_events")
+ event_man = EventManager(input_data, self.schema)
+ var_manager = HedType(event_man, 'run-01')
+ new_str = str(var_manager)
+ self.assertIsInstance(new_str, str)
+
+ def test_summarize_variables(self):
+ sidecar1 = Sidecar(self.sidecar_path, name='face_sub1_json')
+ input_data = TabularInput(self.events_path, sidecar1, name="face_sub1_events")
+ event_man = EventManager(input_data, self.schema)
+ var_manager = HedType(event_man, 'run-01')
+ summary = var_manager.get_summary()
+ self.assertIsInstance(summary, dict, "get_summary produces a dictionary if not json")
+ self.assertEqual(len(summary), 3, "Summarize_variables has right number of condition type_variables")
+ self.assertIn("key-assignment", summary, "get_summary has a correct key")
+
+ def test_extract_definition_variables(self):
+ var_manager = HedType(self.event_man1, 'run-01')
+ var_levels = var_manager._type_map['var3'].levels
+ self.assertNotIn('cond3/7', var_levels,
+ "_extract_definition_variables before extraction def/cond3/7 not in levels")
+ tag = HedTag("Def/Cond3/7", hed_schema=self.schema)
+ var_manager._extract_definition_variables(tag, 5)
+ self.assertIn('cond3/7', var_levels,
+ "_extract_definition_variables after extraction def/cond3/7 not in levels")
+
+ def test_get_variable_names(self):
+ conditions1 = HedType(self.event_man1, 'run-01')
+ list1 = conditions1.get_type_value_names()
+ self.assertEqual(len(list1), 8, "get_variable_tags list should have the right length")
+
+ def test_get_variable_def_names(self):
+ conditions1 = HedType(self.event_man1, 'run-01')
+ list1 = conditions1.get_type_def_names()
+ self.assertEqual(len(list1), 5, "get_type_def_names list should have the right length")
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/tests/tools/analysis/test_hed_type_counts.py b/tests/tools/analysis/test_hed_type_counts.py
index c4fd22cab..d8c380bdb 100644
--- a/tests/tools/analysis/test_hed_type_counts.py
+++ b/tests/tools/analysis/test_hed_type_counts.py
@@ -3,10 +3,9 @@
from hed.models.sidecar import Sidecar
from hed.models.tabular_input import TabularInput
from hed.schema.hed_schema_io import load_schema_version
-from hed.tools.analysis.hed_context_manager import HedContextManager
-from hed.tools.analysis.hed_type_values import HedTypeValues
+from hed.tools.analysis.event_manager import EventManager
+from hed.tools.analysis.hed_type import HedType
from hed.tools.analysis.hed_type_counts import HedTypeCount, HedTypeCounts
-from hed.models.df_util import get_assembled
class Test(unittest.TestCase):
@@ -21,10 +20,7 @@ def setUpClass(cls):
sidecar_path = os.path.realpath(os.path.join(bids_root_path, 'task-FacePerception_events.json'))
sidecar1 = Sidecar(sidecar_path, name='face_sub1_json')
input_data = TabularInput(events_path, sidecar=sidecar1, name="face_sub1_events")
- hed_strings1, definitions1 = get_assembled(input_data, sidecar1, schema, extra_def_dicts=None,
- join_columns=True, shrink_defs=True, expand_defs=False)
- cls.var_type1 = HedTypeValues(HedContextManager(hed_strings1, schema), definitions1, 'run-01',
- type_tag='condition-variable')
+ cls.var_type1 = HedType(EventManager(input_data, schema), 'run-01', type_tag='condition-variable')
def test_type_count_one_level(self):
type_counts1 = HedTypeCounts('Dummy', "condition-variable")
@@ -62,7 +58,7 @@ def test_get_summary_multiple_levels(self):
self.assertEqual(face_type.total_events, 400)
self.assertEqual(face_type.events, 104)
self.assertEqual(len(face_type.files), 2)
- counts.add_descriptions(self.var_type1.definitions)
+ counts.add_descriptions(self.var_type1.type_defs)
self.assertTrue(face_type.level_counts['famous-face-cond']['description'])
diff --git a/tests/tools/analysis/test_hed_type_definitions.py b/tests/tools/analysis/test_hed_type_definitions.py
deleted file mode 100644
index 7388d1228..000000000
--- a/tests/tools/analysis/test_hed_type_definitions.py
+++ /dev/null
@@ -1,114 +0,0 @@
-import os
-import unittest
-from hed.models import DefinitionEntry
-from hed.models.hed_string import HedString
-from hed.models.hed_tag import HedTag
-from hed.models.sidecar import Sidecar
-from hed.models.tabular_input import TabularInput
-from hed.tools.analysis.hed_type_definitions import HedTypeDefinitions
-from hed.schema.hed_schema_io import load_schema_version
-
-
-class Test(unittest.TestCase):
-
- @classmethod
- def setUpClass(cls):
- schema = load_schema_version(xml_version="8.1.0")
- cls.test_strings1 = [HedString('Sensory-event,(Def/Cond1,(Red, Blue),Onset),(Def/Cond2,Onset),Green,Yellow',
- hed_schema=schema),
- HedString('(Def/Cond1, Offset)', hed_schema=schema),
- HedString('White, Black, Condition-variable/Wonder, Condition-variable/Fast',
- hed_schema=schema),
- HedString('', hed_schema=schema),
- HedString('(Def/Cond2, Onset)', hed_schema=schema),
- HedString('(Def/Cond3/4.3, Onset)', hed_schema=schema),
- HedString('Arm, Leg, Condition-variable/Fast', hed_schema=schema)]
- def1 = HedString('(Condition-variable/Var1, Circle, Square, Description/This is def1)', hed_schema=schema)
- def2 = HedString('(condition-variable/Var2, Condition-variable/Apple, Triangle, Sphere)', hed_schema=schema)
- def3 = HedString('(Organizational-property/Condition-variable/Var3, Physical-length/#, Ellipse, Cross)',
- hed_schema=schema)
- def4 = HedString('(Condition-variable, Apple, Banana, Description/This is def4)', hed_schema=schema)
- def5 = HedString('(Condition-variable/Lumber, Apple, Banana, Description/This is def5)', hed_schema=schema)
- def6 = HedString('(Condition-variable/Lumber, Label/#, Apple, Banana, Description/This is def6)', hed_schema=schema)
- cls.definitions1 = {'Cond1': DefinitionEntry('Cond1', def1, False, None),
- 'Cond2': DefinitionEntry('Cond2', def2, False, None),
- 'Cond3': DefinitionEntry('Cond3', def3, True, None),
- 'Cond4': DefinitionEntry('Cond4', def4, False, None),
- 'Cond5': DefinitionEntry('Cond5', def5, False, None),
- 'Cond6': DefinitionEntry('Cond6', def6, True, None)
- }
- bids_root_path = os.path.realpath(os.path.join(os.path.dirname(os.path.realpath(__file__)),
- '../../data/bids_tests/eeg_ds003645s_hed'))
- events_path = os.path.realpath(os.path.join(bids_root_path,
- 'sub-002/eeg/sub-002_task-FacePerception_run-1_events.tsv'))
- sidecar_path = os.path.realpath(os.path.join(bids_root_path, 'task-FacePerception_events.json'))
- sidecar1 = Sidecar(sidecar_path, name='face_sub1_json')
- cls.input_data = TabularInput(events_path, sidecar=sidecar1, name="face_sub1_events")
- cls.schema = schema
- cls.sidecar1 = sidecar1
-
- def test_constructor(self):
- def_man = HedTypeDefinitions(self.definitions1, self.schema)
- self.assertIsInstance(def_man, HedTypeDefinitions,
- "Constructor should create a HedTypeDefinitions directly from a dict")
- self.assertEqual(len(def_man.def_map), 6, "Constructor condition_map should have the right length")
- self.assertEqual(len(def_man.def_map), len(def_man.definitions),
- "Constructor condition_map should be the same length as the definitions dictionary")
-
- def test_constructor_from_sidecar(self):
- definitions = self.sidecar1.get_def_dict(self.schema)
- def_man = HedTypeDefinitions(definitions, self.schema)
- self.assertIsInstance(def_man, HedTypeDefinitions,
- "Constructor should create a HedTypeDefinitions from a tabular input")
- self.assertEqual(len(def_man.def_map), 17, "Constructor condition_map should have the right length")
- self.assertEqual(len(def_man.def_map), len(def_man.definitions),
- "Constructor condition_map should be the same length as the definitions dictionary")
-
- def test_get_vars(self):
- def_man = HedTypeDefinitions(self.definitions1, self.schema)
- item1 = HedString("Sensory-event,((Red,Blue)),", self.schema)
- vars1 = def_man.get_type_values(item1)
- self.assertFalse(vars1, "get_type_values should return None if no condition type_variables")
- item2 = HedString(f"Sensory-event,(Def/Cond1,(Red,Blue,Condition-variable/Trouble))", self.schema)
- vars2 = def_man.get_type_values(item2)
- self.assertEqual(len(vars2), 1, "get_type_values should return correct number of condition type_variables")
- item3 = HedString(f"Sensory-event,(Def/Cond1,(Red,Blue,Condition-variable/Trouble)),"
- f"(Def/Cond2),Green,Yellow,Def/Cond5, Def/Cond6/4, Description/Tell me", self.schema)
- vars3 = def_man.get_type_values(item3)
- self.assertEqual(len(vars3), 5, "get_type_values should return multiple condition type_variables")
-
- def test_get_def_names(self):
- def_man = HedTypeDefinitions(self.definitions1, self.schema)
- a = def_man.get_def_names(HedTag('Def/Cond3/4', hed_schema=self.schema))
- self.assertEqual(len(a), 1, "get_def_names returns 1 item if single tag")
- self.assertEqual(a[0], 'cond3', "get_def_names returns the correct item if single tag")
- b = def_man.get_def_names(HedTag('Def/Cond3/4', hed_schema=self.schema), no_value=False)
- self.assertEqual(len(b), 1, "get_def_names returns 1 item if single tag")
- self.assertEqual(b[0], 'cond3/4', "get_def_names returns the correct item if single tag")
- c = def_man.get_def_names(HedString('(Def/Cond3/5,(Red, Blue))', hed_schema=self.schema))
- self.assertEqual(len(c), 1, "get_def_names returns 1 item if single group def")
- self.assertEqual(c[0], 'cond3', "get_def_names returns the correct item if single group def")
- d = def_man.get_def_names(HedString('(Def/Cond3/6,(Red, Blue, Def/Cond1), Def/Cond2)', hed_schema=self.schema),
- no_value=False)
- self.assertEqual(len(d), 3, "get_def_names returns right number of items if multiple defs")
- self.assertEqual(d[0], 'cond3/6', "get_def_names returns the correct item if multiple def")
- e = def_man.get_def_names(HedString('((Red, Blue, (Green), Black))', hed_schema=self.schema))
- self.assertFalse(e, "get_def_names returns no items if no defs")
-
- def test_split_name(self):
- name1, val1 = HedTypeDefinitions.split_name('')
- self.assertIsNone(name1, "split_name should return None split name for empty name")
- self.assertIsNone(val1, "split_name should return None split value for empty name")
- name2, val2 = HedTypeDefinitions.split_name('lumber')
- self.assertEqual(name2, 'lumber', 'split_name should return name if no split value')
- self.assertEqual(val2, '', 'split_name should return empty string if no split value')
- name3, val3 = HedTypeDefinitions.split_name('Lumber/5.23', lowercase=False)
- self.assertEqual(name3, 'Lumber', 'split_name should return name if split value')
- self.assertEqual(val3, '5.23', 'split_name should return value as string if split value')
- name4, val4 = HedTypeDefinitions.split_name('Lumber/5.23')
- self.assertEqual(name4, 'lumber', 'split_name should return name if split value')
- self.assertEqual(val4, '5.23', 'split_name should return value as string if split value')
-
-
-if __name__ == '__main__':
- unittest.main()
diff --git a/tests/tools/analysis/test_hed_type_defs.py b/tests/tools/analysis/test_hed_type_defs.py
new file mode 100644
index 000000000..9e64c3298
--- /dev/null
+++ b/tests/tools/analysis/test_hed_type_defs.py
@@ -0,0 +1,132 @@
+import os
+import unittest
+from hed.models import DefinitionDict
+from hed.models.hed_string import HedString
+from hed.models.hed_tag import HedTag
+from hed.models.sidecar import Sidecar
+from hed.models.tabular_input import TabularInput
+from hed.tools.analysis.hed_type_defs import HedTypeDefs
+from hed.schema.hed_schema_io import load_schema_version
+
+
+class Test(unittest.TestCase):
+
+ @classmethod
+ def setUpClass(cls):
+ schema = load_schema_version(xml_version="8.1.0")
+ defs = [HedString('(Definition/Cond1, (Condition-variable/Var1, Circle, Square))', hed_schema=schema),
+ HedString('(Definition/Cond2, (condition-variable/Var2, Condition-variable/Apple, Triangle, Sphere))',
+ hed_schema=schema),
+ HedString('(Definition/Cond3/#, (Condition-variable/Var3, Label/#, Ellipse, Cross))',
+ hed_schema=schema),
+ HedString('(Definition/Cond4, (Condition-variable, Rectangle, Triangle))', hed_schema=schema),
+ HedString('(Definition/Cond5, (Condition-variable/Lumber, Action, Sensory-presentation))',
+ hed_schema=schema),
+ HedString('(Definition/Cond6/#, (Condition-variable/Lumber, Label/#, Agent, Move))',
+ hed_schema=schema)]
+ def_dict = DefinitionDict()
+ for value in defs:
+ def_dict.check_for_definitions(value)
+
+ cls.test_strings1 = ["Sensory-event,(Def/Cond1,(Elbow, Hip, Condition-variable/Trouble),Onset)",
+ "(Def/Cond2,Onset),Green,Yellow, Def/Cond5, Def/Cond6/4",
+ "(Def/Cond1, Offset)",
+ "White, Black, Condition-variable/Wonder, Condition-variable/Fast",
+ "",
+ "(Def/Cond2, Onset)",
+ "(Def/Cond3/4.3, Onset)",
+ "Upper-arm, Head, Condition-variable/Fast"]
+ cls.definitions1 = def_dict
+ bids_root_path = os.path.realpath(os.path.join(os.path.dirname(os.path.realpath(__file__)),
+ '../../data/bids_tests/eeg_ds003645s_hed'))
+ events_path = os.path.realpath(os.path.join(bids_root_path,
+ 'sub-002/eeg/sub-002_task-FacePerception_run-1_events.tsv'))
+ sidecar_path = os.path.realpath(os.path.join(bids_root_path, 'task-FacePerception_events.json'))
+ sidecar1 = Sidecar(sidecar_path, name='face_sub1_json')
+ cls.input_data = TabularInput(events_path, sidecar=sidecar1, name="face_sub1_events")
+ cls.schema = schema
+ cls.sidecar1 = sidecar1
+
+ def test_constructor(self):
+ def_man = HedTypeDefs(self.definitions1)
+ self.assertIsInstance(def_man, HedTypeDefs,
+ "Constructor should create a HedTypeDefinitions directly from a dict")
+ self.assertEqual(len(def_man.def_map), 6, "Constructor condition_map should have the right length")
+ self.assertEqual(len(def_man.def_map), len(def_man.definitions),
+ "Constructor condition_map should be the same length as the type_defs dictionary")
+
+ def test_constructor_from_sidecar(self):
+ definitions = self.sidecar1.get_def_dict(self.schema)
+ def_man = HedTypeDefs(definitions)
+ self.assertIsInstance(def_man, HedTypeDefs,
+ "Constructor should create a HedTypeDefinitions from a tabular input")
+ self.assertEqual(len(def_man.def_map), 8, "Constructor condition_map should have the right length")
+ self.assertEqual(len(def_man.definitions), len(definitions))
+ defs = def_man.type_def_names
+ self.assertIsInstance(defs, list)
+ self.assertEqual(len(defs), 8)
+
+ def test_constructor_from_tabular(self):
+ def_dict = self.input_data.get_def_dict(self.schema)
+ def_man = HedTypeDefs(def_dict, type_tag="Condition-variable")
+ self.assertIsInstance(def_man, HedTypeDefs)
+ self.assertEqual(len(def_man.def_map), 8)
+ self.assertEqual(len(def_man.type_map), 3)
+ self.assertEqual(len(def_man.type_def_names), 8)
+
+ def test_get_type_values_tabular(self):
+ def_dict = self.input_data.get_def_dict(self.schema)
+ def_man = HedTypeDefs(def_dict, type_tag="Condition-variable")
+ test_str = HedString("Sensory-event, Def/Right-sym-cond", self.schema)
+ values1 = def_man.get_type_values(test_str)
+ self.assertIsInstance(values1, list)
+ self.assertEqual(1, len(values1))
+
+ def test_get_type_values(self):
+ def_man = HedTypeDefs(self.definitions1)
+ item1 = HedString("Sensory-event,((Red,Blue)),", self.schema)
+ vars1 = def_man.get_type_values(item1)
+ self.assertFalse(vars1, "get_type_values should return None if no condition type_variables")
+ item2 = HedString(f"Sensory-event,(Def/Cond1,(Red,Blue,Condition-variable/Trouble))", self.schema)
+ vars2 = def_man.get_type_values(item2)
+ self.assertEqual(1, len(vars2), "get_type_values should return correct number of condition type_variables")
+ item3 = HedString(f"Sensory-event,(Def/Cond1,(Red,Blue,Condition-variable/Trouble)),"
+ f"(Def/Cond2),Green,Yellow,Def/Cond5, Def/Cond6/4, Description/Tell me", self.schema)
+ vars3 = def_man.get_type_values(item3)
+ self.assertEqual(len(vars3), 5, "get_type_values should return multiple condition type_variables")
+
+ def test_extract_def_names(self):
+ def_man = HedTypeDefs(self.definitions1)
+ a = def_man.extract_def_names(HedTag('Def/Cond3/4', hed_schema=self.schema))
+ self.assertEqual(len(a), 1, "get_def_names returns 1 item if single tag")
+ self.assertEqual(a[0], 'cond3', "get_def_names returns the correct item if single tag")
+ b = def_man.extract_def_names(HedTag('Def/Cond3/4', hed_schema=self.schema), no_value=False)
+ self.assertEqual(len(b), 1, "get_def_names returns 1 item if single tag")
+ self.assertEqual(b[0], 'cond3/4', "get_def_names returns the correct item if single tag")
+ c = def_man.extract_def_names(HedString('(Def/Cond3/5,(Red, Blue))', hed_schema=self.schema))
+ self.assertEqual(len(c), 1, "get_def_names returns 1 item if single group def")
+ self.assertEqual(c[0], 'cond3', "get_def_names returns the correct item if single group def")
+ d = def_man.extract_def_names(HedString('(Def/Cond3/6,(Red, Blue, Def/Cond1), Def/Cond2)',
+ hed_schema=self.schema), no_value=False)
+ self.assertEqual(len(d), 3, "get_def_names returns right number of items if multiple defs")
+ self.assertEqual(d[0], 'cond3/6', "get_def_names returns the correct item if multiple def")
+ e = def_man.extract_def_names(HedString('((Red, Blue, (Green), Black))', hed_schema=self.schema))
+ self.assertFalse(e, "get_def_names returns no items if no defs")
+
+ def test_split_name(self):
+ name1, val1 = HedTypeDefs.split_name('')
+ self.assertIsNone(name1, "split_name should return None split name for empty name")
+ self.assertIsNone(val1, "split_name should return None split value for empty name")
+ name2, val2 = HedTypeDefs.split_name('lumber')
+ self.assertEqual(name2, 'lumber', 'split_name should return name if no split value')
+ self.assertEqual(val2, '', 'split_name should return empty string if no split value')
+ name3, val3 = HedTypeDefs.split_name('Lumber/5.23', lowercase=False)
+ self.assertEqual(name3, 'Lumber', 'split_name should return name if split value')
+ self.assertEqual(val3, '5.23', 'split_name should return value as string if split value')
+ name4, val4 = HedTypeDefs.split_name('Lumber/5.23')
+ self.assertEqual(name4, 'lumber', 'split_name should return name if split value')
+ self.assertEqual(val4, '5.23', 'split_name should return value as string if split value')
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/tests/tools/analysis/test_hed_type_factors.py b/tests/tools/analysis/test_hed_type_factors.py
index 378617a12..d9e47eb22 100644
--- a/tests/tools/analysis/test_hed_type_factors.py
+++ b/tests/tools/analysis/test_hed_type_factors.py
@@ -1,16 +1,14 @@
import os
import unittest
-import pandas as pd
-from hed.errors.exceptions import HedFileError
-from hed.models import DefinitionEntry
+from pandas import DataFrame
+from hed.models import DefinitionDict
from hed.models.hed_string import HedString
-from hed.models.sidecar import Sidecar
from hed.models.tabular_input import TabularInput
from hed.schema.hed_schema_io import load_schema_version
-from hed.tools.analysis.hed_context_manager import HedContextManager
-from hed.tools.analysis.hed_type_values import HedTypeValues
+from hed.tools.analysis.event_manager import EventManager
+from hed.tools.analysis.hed_type import HedType
+from hed.errors.exceptions import HedFileError
from hed.tools.analysis.hed_type_factors import HedTypeFactors
-from hed.models.df_util import get_assembled
class Test(unittest.TestCase):
@@ -19,89 +17,93 @@ class Test(unittest.TestCase):
@classmethod
def setUpClass(cls):
schema = load_schema_version(xml_version="8.1.0")
- cls.test_strings1 = [HedString("Sensory-event,(Def/Cond1,(Red, Blue, Condition-variable/Trouble),Onset),"
- "(Def/Cond2,Onset),Green,Yellow, Def/Cond5, Def/Cond6/4", hed_schema=schema),
- HedString('(Def/Cond1, Offset)', hed_schema=schema),
- HedString('White, Black, Condition-variable/Wonder, Condition-variable/Fast',
- hed_schema=schema),
- HedString('', hed_schema=schema),
- HedString('(Def/Cond2, Onset)', hed_schema=schema),
- HedString('(Def/Cond3/4.3, Onset)', hed_schema=schema),
- HedString('Arm, Leg, Condition-variable/Fast', hed_schema=schema)]
- cls.test_strings2 = [HedString("Def/Cond2, (Def/Cond6/4, Onset), (Def/Cond6/7.8, Onset), Def/Cond6/Alpha",
- hed_schema=schema),
- HedString("Yellow", hed_schema=schema),
- HedString("Def/Cond2, (Def/Cond6/4, Onset)", hed_schema=schema),
- HedString("Def/Cond2, Def/Cond6/5.2 (Def/Cond6/7.8, Offset)", hed_schema=schema),
- HedString("Def/Cond2, Def/Cond6/4", hed_schema=schema)]
-
- def1 = HedString('(Condition-variable/Var1, Circle, Square)', hed_schema=schema)
- def2 = HedString('(condition-variable/Var2, Condition-variable/Apple, Triangle, Sphere)', hed_schema=schema)
- def3 = HedString('(Organizational-property/Condition-variable/Var3, Physical-length/#, Ellipse, Cross)',
- hed_schema=schema)
- def4 = HedString('(Condition-variable, Apple, Banana)', hed_schema=schema)
- def5 = HedString('(Condition-variable/Lumber, Apple, Banana)', hed_schema=schema)
- def6 = HedString('(Condition-variable/Lumber, Label/#, Apple, Banana)', hed_schema=schema)
- cls.defs = {'Cond1': DefinitionEntry('Cond1', def1, False, None),
- 'Cond2': DefinitionEntry('Cond2', def2, False, None),
- 'Cond3': DefinitionEntry('Cond3', def3, True, None),
- 'Cond4': DefinitionEntry('Cond4', def4, False, None),
- 'Cond5': DefinitionEntry('Cond5', def5, False, None),
- 'Cond6': DefinitionEntry('Cond6', def6, True, None)
- }
-
- cls.test_strings3 = [HedString('(Def/Cond3, Offset)', hed_schema=schema)]
-
+ # Set up the definition dictionary
+ defs = [HedString('(Definition/Cond1, (Condition-variable/Var1, Circle, Square))', hed_schema=schema),
+ HedString('(Definition/Cond2, (condition-variable/Var2, Condition-variable/Apple, Triangle, Sphere))',
+ hed_schema=schema),
+ HedString(
+ '(Definition/Cond3/#, (Organizational-property/Condition-variable/Var3, Label/#, Ellipse, Cross))',
+ hed_schema=schema),
+ HedString('(Definition/Cond4, (Condition-variable, Apple, Banana))', hed_schema=schema),
+ HedString('(Definition/Cond5, (Condition-variable/Lumber, Apple, Banana))', hed_schema=schema),
+ HedString('(Definition/Cond6/#, (Condition-variable/Lumber, Label/#, Apple, Banana))',
+ hed_schema=schema)]
+ def_dict = DefinitionDict()
+ for value in defs:
+ def_dict.check_for_definitions(value)
+ test_strings1 = ["Sensory-event,(Def/Cond1,(Red, Blue, Condition-variable/Trouble),Onset)",
+ "(Def/Cond2,Onset),Green,Yellow, Def/Cond5, Def/Cond6/4",
+ "(Def/Cond1, Offset)",
+ "White, Black, Condition-variable/Wonder, Condition-variable/Fast",
+ "",
+ "(Def/Cond2, Onset)",
+ "(Def/Cond3/4.3, Onset)",
+ "Arm, Leg, Condition-variable/Fast"]
+ test_onsets1 = [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0]
+ df1 = DataFrame(test_onsets1, columns=['onset'])
+ df1['HED'] = test_strings1
+ input_data1 = TabularInput(df1)
+ cls.event_man1 = EventManager(input_data1, schema, extra_defs=def_dict)
+ cls.input_data1 = input_data1
+ test_strings2 = ["Def/Cond2, (Def/Cond6/4, Onset), (Def/Cond6/7.8, Onset), Def/Cond6/Alpha",
+ "Yellow",
+ "Def/Cond2, (Def/Cond6/4, Onset)",
+ "Def/Cond2, Def/Cond6/5.2 (Def/Cond6/7.8, Offset)",
+ "Def/Cond2, Def/Cond6/4"]
+ test_onsets2 = [0.0, 1.0, 2.0, 3.0, 4.0]
+ df2 = DataFrame(test_onsets2, columns=['onset'])
+ df2['HED'] = test_strings2
+ input_data2 = TabularInput(df2)
+ cls.event_man2 = EventManager(input_data2, schema, extra_defs=def_dict)
+ test_strings3 = ['(Def/Cond3, Offset)']
+ test_onsets3 = [0.0]
+ df3 = DataFrame(test_onsets3, columns=['onset'])
+ df3['HED'] = test_strings3
+ cls.input_data3 = TabularInput(df3)
bids_root_path = os.path.realpath(os.path.join(os.path.dirname(os.path.realpath(__file__)),
- '../../data/bids_tests/eeg_ds003645s_hed'))
+ '../../data/bids_tests/eeg_ds003645s_hed'))
events_path = os.path.realpath(os.path.join(bids_root_path,
- 'sub-002/eeg/sub-002_task-FacePerception_run-1_events.tsv'))
+ 'sub-002/eeg/sub-002_task-FacePerception_run-1_events.tsv'))
sidecar_path = os.path.realpath(os.path.join(bids_root_path, 'task-FacePerception_events.json'))
- sidecar1 = Sidecar(sidecar_path, name='face_sub1_json')
- cls.input_data = TabularInput(events_path, sidecar=sidecar1, name="face_sub1_events")
- cls.sidecar1 = sidecar1
cls.schema = schema
+ cls.tab_input = TabularInput(events_path, sidecar_path,)
def test_with_mixed(self):
- var_manager = HedTypeValues(HedContextManager(self.test_strings1, self.schema), self.defs, 'run-01')
+ var_manager = HedType(self.event_man1, 'run-01')
var_facts = var_manager.get_type_value_factors('fast')
self.assertIsInstance(var_facts, HedTypeFactors)
df = var_facts.get_factors()
- self.assertIsInstance(df, pd.DataFrame)
- self.assertEqual(len(df), len(self.test_strings1))
+ self.assertIsInstance(df, DataFrame)
+ self.assertEqual(len(df), len(self.event_man1.event_list))
self.assertEqual(len(df.columns), 1)
summary1 = var_facts.get_summary()
self.assertIsInstance(summary1, dict)
def test_tabular_input(self):
- hed_strings, definitions = get_assembled(self.input_data, self.sidecar1, self.schema, extra_def_dicts=None,
- join_columns=True, shrink_defs=True, expand_defs=False)
- var_manager = HedTypeValues(HedContextManager(hed_strings, self.schema), definitions, 'run-01')
- self.assertIsInstance(var_manager, HedTypeValues,
- "Constructor should create a HedTypeManager from a tabular input")
+ var_manager = HedType(EventManager(self.tab_input, self.schema), 'run-01')
+ self.assertIsInstance(var_manager, HedType)
var_fact = var_manager.get_type_value_factors('face-type')
self.assertIsInstance(var_fact, HedTypeFactors)
this_str = str(var_fact)
self.assertIsInstance(this_str, str)
self.assertTrue(len(this_str))
fact2 = var_fact.get_factors()
- self.assertIsInstance(fact2, pd.DataFrame)
+ self.assertIsInstance(fact2, DataFrame)
df2 = var_fact._one_hot_to_categorical(fact2, ["unfamiliar-face-cond", "baloney"])
self.assertEqual(len(df2), 200)
self.assertEqual(len(df2.columns), 1)
def test_constructor_multiple_values(self):
- var_manager = HedTypeValues(HedContextManager(self.test_strings2, self.schema), self.defs, 'run-01')
- self.assertIsInstance(var_manager, HedTypeValues,
- "Constructor should create a HedTypeManager from strings")
- self.assertEqual(len(var_manager._type_value_map), 3,
+ var_manager = HedType(self.event_man2, 'run-01')
+ self.assertIsInstance(var_manager, HedType)
+ self.assertEqual(len(var_manager._type_map), 3,
"Constructor should have right number of type_variables if multiple")
var_fact1 = var_manager.get_type_value_factors('var2')
self.assertIsInstance(var_fact1, HedTypeFactors)
var_fact2 = var_manager.get_type_value_factors('lumber')
fact2 = var_fact2.get_factors()
- self.assertIsInstance(fact2, pd.DataFrame)
- self.assertEqual(len(fact2), len(self.test_strings2))
+ self.assertIsInstance(fact2, DataFrame)
+ self.assertEqual(len(fact2), len(self.event_man2.event_list))
with self.assertRaises(HedFileError) as context:
var_fact2.get_factors(factor_encoding="categorical")
self.assertEqual(context.exception.args[0], "MultipleFactorSameEvent")
@@ -110,15 +112,14 @@ def test_constructor_multiple_values(self):
self.assertEqual(context.exception.args[0], "BadFactorEncoding")
def test_constructor_unmatched(self):
- with self.assertRaises(HedFileError) as context:
- HedTypeValues(HedContextManager(self.test_strings3, self.schema), self.defs, 'run-01')
- self.assertEqual(context.exception.args[0], 'UnmatchedOffset')
+ with self.assertRaises(KeyError) as context:
+ HedType(EventManager(self.input_data3, self.schema), 'run-01')
+ self.assertEqual(context.exception.args[0], 'cond3')
def test_variable_summary(self):
- var_manager = HedTypeValues(HedContextManager(self.test_strings2, self.schema), self.defs, 'run-01')
- self.assertIsInstance(var_manager, HedTypeValues,
- "Constructor should create a HedTypeManager from strings")
- self.assertEqual(len(var_manager._type_value_map), 3,
+ var_manager = HedType(self.event_man2, 'run-01')
+ self.assertIsInstance(var_manager, HedType)
+ self.assertEqual(len(var_manager._type_map), 3,
"Constructor should have right number of type_variables if multiple")
for variable in var_manager.get_type_value_names():
var_sum = var_manager.get_type_value_factors(variable)
@@ -126,24 +127,23 @@ def test_variable_summary(self):
self.assertIsInstance(summary, dict, "get_summary returns a dictionary summary")
def test_get_variable_factors(self):
- var_manager = HedTypeValues(HedContextManager(self.test_strings2, self.schema), self.defs, 'run-01')
- self.assertIsInstance(var_manager, HedTypeValues,
- "Constructor should create a HedTypeManager from strings")
- self.assertEqual(len(var_manager._type_value_map), 3,
+ var_manager = HedType(self.event_man2, 'run-01')
+ self.assertIsInstance(var_manager, HedType)
+ self.assertEqual(len(var_manager._type_map), 3,
"Constructor should have right number of type_variables if multiple")
for variable in var_manager.get_type_value_names():
var_sum = var_manager.get_type_value_factors(variable)
summary = var_sum.get_summary()
factors = var_sum.get_factors()
- self.assertIsInstance(factors, pd.DataFrame, "get_factors contains dataframe.")
+ self.assertIsInstance(factors, DataFrame, "get_factors contains dataframe.")
self.assertEqual(len(factors), var_sum.number_elements,
"get_factors has factors of same length as number of elements")
- if not var_manager._type_value_map[variable].levels:
+ if not var_manager._type_map[variable].levels:
self.assertEqual(len(factors.columns), 1)
else:
self.assertEqual(len(factors.columns), summary["levels"], 'get_factors has factors levels')
- self.assertEqual(len(factors.columns), len(var_manager._type_value_map[variable].levels))
+ self.assertEqual(len(factors.columns), len(var_manager._type_map[variable].levels))
def test_count_events(self):
list1 = [0, 2, 6, 1, 2, 0, 0]
@@ -158,9 +158,7 @@ def test_count_events(self):
self.assertIsNone(max_multiple2, "_count_level_events should not have a max multiple for empty list")
def test_get_summary(self):
- hed_strings, definitions = get_assembled(self.input_data, self.sidecar1, self.schema, extra_def_dicts=None,
- join_columns=True, shrink_defs=True, expand_defs=False)
- var_manager = HedTypeValues(HedContextManager(hed_strings, self.schema), definitions, 'run-01')
+ var_manager = HedType(EventManager(self.tab_input, self.schema), 'run-01')
var_key = var_manager.get_type_value_factors('key-assignment')
sum_key = var_key.get_summary()
self.assertEqual(sum_key['events'], 200, "get_summary has right number of events")
@@ -172,7 +170,8 @@ def test_get_summary(self):
self.assertEqual(sum_key['events'], 52, "get_summary has right number of events")
self.assertEqual(sum_key['max_refs_per_event'], 1, "Get_summary has right multiple maximum")
self.assertIsInstance(sum_key['level_counts'], dict, "get_summary level counts is a dictionary")
- self.assertEqual(sum_key['level_counts']['unfamiliar-face-cond'], 20, "get_summary level counts value correct.")
+ self.assertEqual(sum_key['level_counts']['unfamiliar-face-cond'],
+ 20, "get_summary level counts value correct.")
if __name__ == '__main__':
diff --git a/tests/tools/analysis/test_hed_type_manager.py b/tests/tools/analysis/test_hed_type_manager.py
index 657e9fec5..951c847a6 100644
--- a/tests/tools/analysis/test_hed_type_manager.py
+++ b/tests/tools/analysis/test_hed_type_manager.py
@@ -3,10 +3,10 @@
from hed.models.sidecar import Sidecar
from hed.models.tabular_input import TabularInput
from hed.schema.hed_schema_io import load_schema_version
-from hed.tools.analysis.hed_type_values import HedTypeValues
+from hed.tools.analysis.hed_type import HedType
+from hed.tools.analysis.event_manager import EventManager
from hed.tools.analysis.hed_type_factors import HedTypeFactors
from hed.tools.analysis.hed_type_manager import HedTypeManager
-from hed.models.df_util import get_assembled
class Test(unittest.TestCase):
@@ -20,42 +20,42 @@ def setUp(self):
sidecar_path = os.path.realpath(os.path.join(bids_root_path, 'task-FacePerception_events.json'))
sidecar1 = Sidecar(sidecar_path, name='face_sub1_json')
self.input_data = TabularInput(events_path, sidecar=sidecar1, name="face_sub1_events")
- self.hed_strings, self.definitions = get_assembled(self.input_data, sidecar1, schema,
- extra_def_dicts=None,
- join_columns=True, shrink_defs=True, expand_defs=False)
- self.sidecar1 = sidecar1
self.schema = schema
def test_constructor(self):
- var_manager = HedTypeManager(self.hed_strings, self.schema, self.definitions)
+ var_manager = HedTypeManager(EventManager(self.input_data, self.schema))
self.assertIsInstance(var_manager, HedTypeManager,
"Constructor should create a HedTypeManager from a tabular input")
- self.assertEqual(len(var_manager.context_manager.hed_strings), len(var_manager.context_manager.contexts),
+ self.assertEqual(len(var_manager.event_manager.hed_strings), len(var_manager.event_manager.onsets),
"Variable managers have context same length as hed_strings")
- self.assertFalse(var_manager._type_tag_map, "constructor has empty map")
+ self.assertFalse(var_manager._type_map, "constructor has empty map")
+
+ def test_summarize(self):
+ var_manager = HedTypeManager(EventManager(self.input_data, self.schema))
+ self.assertIsInstance(var_manager, HedTypeManager,
+ "Constructor should create a HedTypeManager from a tabular input")
+ # ToDo: Test summarize
def test_add_type_variable(self):
- var_manager = HedTypeManager(self.hed_strings, self.schema, self.definitions)
- self.assertFalse(var_manager._type_tag_map, "constructor has empty map")
- var_manager.add_type_variable("Condition-variable")
- self.assertEqual(len(var_manager._type_tag_map), 1,
+ var_manager = HedTypeManager(EventManager(self.input_data, self.schema))
+ self.assertFalse(var_manager._type_map, "constructor has empty map")
+ var_manager.add_type("Condition-variable")
+ self.assertEqual(len(var_manager._type_map), 1,
"add_type_variable has 1 element map after one type added")
- self.assertIn("condition-variable", var_manager._type_tag_map,
+ self.assertIn("condition-variable", var_manager._type_map,
"add_type_variable converts type elements to lower case")
- var_manager.add_type_variable("Condition-variable")
- self.assertEqual(len(var_manager._type_tag_map), 1,
+ var_manager.add_type("Condition-variable")
+ self.assertEqual(len(var_manager._type_map), 1,
"add_type_variable has 1 element map after same type is added twice")
- var_manager.add_type_variable("task")
- self.assertEqual(len(var_manager._type_tag_map), 2,
+ var_manager.add_type("task")
+ self.assertEqual(len(var_manager._type_map), 2,
"add_type_variable has 2 element map after two types are added")
def test_get_factor_vectors(self):
- hed_strings, definitions = get_assembled(self.input_data, self.sidecar1, self.schema, extra_def_dicts=None,
- join_columns=True, shrink_defs=True, expand_defs=False)
- base_length = len(hed_strings)
- var_manager = HedTypeManager(hed_strings, self.schema, definitions)
- var_manager.add_type_variable("Condition-variable")
- var_manager.add_type_variable("task")
+ var_manager = HedTypeManager(EventManager(self.input_data, self.schema))
+ base_length = len(self.input_data.dataframe)
+ var_manager.add_type("Condition-variable")
+ var_manager.add_type("task")
df_cond = var_manager.get_factor_vectors("condition-variable")
df_task = var_manager.get_factor_vectors("task")
self.assertEqual(len(df_cond), base_length, "get_factor_vectors returns df same length as original")
@@ -65,51 +65,40 @@ def test_get_factor_vectors(self):
df_baloney = var_manager.get_factor_vectors("baloney")
self.assertIsNone(df_baloney, "get_factor_vectors returns None if no factors")
- def test_get_type_variable(self):
- hed_strings, definitions = get_assembled(self.input_data, self.sidecar1, self.schema, extra_def_dicts=None,
- join_columns=True, shrink_defs=True, expand_defs=False)
- var_manager = HedTypeManager(hed_strings, self.schema, definitions)
- var_manager.add_type_variable("Condition-variable")
- type_var = var_manager.get_type_variable("condition-variable")
- self.assertIsInstance(type_var, HedTypeValues,
- "get_type_variable returns a HedTypeValues if the key exists")
- type_var = var_manager.get_type_variable("baloney")
+ def test_get_types(self):
+ var_manager = HedTypeManager(EventManager(self.input_data, self.schema))
+ var_manager.add_type("Condition-variable")
+ type_var = var_manager.get_type("condition-variable")
+ self.assertIsInstance(type_var, HedType, "get_type returns a HedType if the key exists")
+ type_var = var_manager.get_type("baloney")
self.assertIsNone(type_var, "get_type_variable returns None if the key does not exist")
- def test_get_type_variable_def_names(self):
- hed_strings, definitions = get_assembled(self.input_data, self.sidecar1, self.schema, extra_def_dicts=None,
- join_columns=True, shrink_defs=True, expand_defs=False)
- var_manager = HedTypeManager(hed_strings, self.schema, definitions)
- var_manager.add_type_variable("Condition-variable")
- def_names = var_manager.get_type_tag_def_names("condition-variable")
+ def test_get_type_def_names(self):
+ var_manager = HedTypeManager(EventManager(self.input_data, self.schema))
+ var_manager.add_type("Condition-variable")
+ def_names = var_manager.get_type_def_names("condition-variable")
self.assertEqual(len(def_names), 7,
"get_type_tag_def_names has right length if condition-variable exists")
self.assertIn('scrambled-face-cond', def_names,
"get_type_tag_def_names returns a list with a correct value if condition-variable exists")
- def_names = var_manager.get_type_tag_def_names("baloney")
+ def_names = var_manager.get_type_def_names("baloney")
self.assertFalse(def_names, "get_type_tag_def_names returns empty if the type does not exist")
- def test_get_variable_type_map(self):
- hed_strings, definitions = get_assembled(self.input_data, self.sidecar1, self.schema, extra_def_dicts=None,
- join_columns=True, shrink_defs=True, expand_defs=False)
- var_manager = HedTypeManager(hed_strings, self.schema, definitions)
- var_manager.add_type_variable("Condition-variable")
- this_var = var_manager.get_type_variable("condition-variable")
- self.assertIsInstance(this_var, HedTypeValues,
- "get_type_variable_map returns a non-empty map when key lower case")
+ def test_get_type(self):
+ var_manager = HedTypeManager(EventManager(self.input_data, self.schema))
+ var_manager.add_type("Condition-variable")
+ this_var = var_manager.get_type("condition-variable")
+ self.assertIsInstance(this_var, HedType, "get_type returns a non-empty map when key lower case")
self.assertEqual(len(this_var.type_variables), 3,
"get_type_variable_map map has right length when key lower case")
- this_var2 = var_manager.get_type_variable("Condition-variable")
- self.assertIsInstance(this_var2, HedTypeValues,
- "get_type_variable_map returns a non-empty map when key upper case")
+ this_var2 = var_manager.get_type("Condition-variable")
+ self.assertIsInstance(this_var2, HedType, "get_type returns a non-empty map when key upper case")
self.assertEqual(len(this_var2.type_variables), 3,
"get_type_variable_map map has right length when key upper case")
def test_get_type_variable_factor(self):
- hed_strings, definitions = get_assembled(self.input_data, self.sidecar1, self.schema, extra_def_dicts=None,
- join_columns=True, shrink_defs=True, expand_defs=False)
- var_manager = HedTypeManager(hed_strings, self.schema, definitions)
- var_manager.add_type_variable("Condition-variable")
+ var_manager = HedTypeManager(EventManager(self.input_data, self.schema))
+ var_manager.add_type("Condition-variable")
var_factor1 = var_manager.get_type_tag_factor("condition-variable", "key-assignment")
self.assertIsInstance(var_factor1, HedTypeFactors,
"get_type_tag_factor returns a HedTypeFactors if type variable factor exists")
@@ -118,29 +107,25 @@ def test_get_type_variable_factor(self):
var_factor3 = var_manager.get_type_tag_factor("baloney1", "key-assignment")
self.assertIsNone(var_factor3, "get_type_tag_factor returns None if type variable does not exist")
- def test_type_variables(self):
- hed_strings, definitions = get_assembled(self.input_data, self.sidecar1, self.schema, extra_def_dicts=None,
- join_columns=True, shrink_defs=True, expand_defs=False)
- var_manager = HedTypeManager(hed_strings, self.schema, definitions)
- vars1 = var_manager.type_variables
+ def test_types(self):
+ var_manager = HedTypeManager(EventManager(self.input_data, self.schema))
+ vars1 = var_manager.types
self.assertFalse(vars1, "type_variables is empty if no types have been added")
- var_manager.add_type_variable("Condition-variable")
- var_manager.add_type_variable("task")
- vars2 = var_manager.type_variables
+ var_manager.add_type("Condition-variable")
+ var_manager.add_type("task")
+ vars2 = var_manager.types
self.assertIsInstance(vars2, list, "type_variables returns a list ")
self.assertEqual(len(vars2), 2, "type_variables return list is right length")
def test_summarize_all(self):
- hed_strings, definitions = get_assembled(self.input_data, self.sidecar1, self.schema, extra_def_dicts=None,
- join_columns=True, shrink_defs=True, expand_defs=False)
- var_manager = HedTypeManager(hed_strings, self.schema, definitions)
+ var_manager = HedTypeManager(EventManager(self.input_data, self.schema))
summary1 = var_manager.summarize_all()
self.assertIsInstance(summary1, dict, "summarize_all returns a dictionary when nothing has been added")
self.assertFalse(summary1, "summarize_all return dictionary is empty when nothing has been added")
- vars1 = var_manager.type_variables
+ vars1 = var_manager.types
self.assertFalse(vars1, "type_variables is empty if no types have been added")
- var_manager.add_type_variable("Condition-variable")
- var_manager.add_type_variable("task")
+ var_manager.add_type("Condition-variable")
+ var_manager.add_type("task")
summary2 = var_manager.summarize_all()
self.assertIsInstance(summary2, dict, "summarize_all returns a dictionary after additions")
self.assertEqual(len(summary2), 2,
diff --git a/tests/tools/analysis/test_hed_type_values.py b/tests/tools/analysis/test_hed_type_values.py
deleted file mode 100644
index d8428e23c..000000000
--- a/tests/tools/analysis/test_hed_type_values.py
+++ /dev/null
@@ -1,171 +0,0 @@
-import os
-import unittest
-from pandas import DataFrame
-from hed.errors.exceptions import HedFileError
-from hed.models import DefinitionEntry
-from hed.models.hed_string import HedString
-from hed.models.hed_tag import HedTag
-from hed.models.sidecar import Sidecar
-from hed.models.tabular_input import TabularInput
-from hed.schema.hed_schema_io import load_schema_version
-from hed.tools.analysis.hed_context_manager import HedContextManager
-from hed.tools.analysis.hed_type_values import HedTypeValues
-from hed.models.df_util import get_assembled
-
-
-class Test(unittest.TestCase):
-
- @classmethod
- def setUpClass(cls):
- schema = load_schema_version(xml_version="8.1.0")
- cls.test_strings1 = ["Sensory-event,(Def/Cond1,(Red, Blue, Condition-variable/Trouble),Onset),"
- "(Def/Cond2,Onset),Green,Yellow, Def/Cond5, Def/Cond6/4",
- '(Def/Cond1, Offset)',
- 'White, Black, Condition-variable/Wonder, Condition-variable/Fast',
- '',
- '(Def/Cond2, Onset)',
- '(Def/Cond3/4.3, Onset)',
- 'Arm, Leg, Condition-variable/Fast']
- cls.test_strings2 = ["Def/Cond2, (Def/Cond6/4, Onset), (Def/Cond6/7.8, Onset), Def/Cond6/Alpha",
- "Yellow",
- "Def/Cond2, (Def/Cond6/4, Onset)",
- "Def/Cond2, Def/Cond6/5.2 (Def/Cond6/7.8, Offset)",
- "Def/Cond2, Def/Cond6/4"]
- cls.test_strings3 = ['(Def/Cond3, Offset)']
-
- def1 = HedString('(Condition-variable/Var1, Circle, Square)', hed_schema=schema)
- def2 = HedString('(condition-variable/Var2, Condition-variable/Apple, Triangle, Sphere)', hed_schema=schema)
- def3 = HedString('(Organizational-property/Condition-variable/Var3, Physical-length/#, Ellipse, Cross)',
- hed_schema=schema)
- def4 = HedString('(Condition-variable, Apple, Banana)', hed_schema=schema)
- def5 = HedString('(Condition-variable/Lumber, Apple, Banana)', hed_schema=schema)
- def6 = HedString('(Condition-variable/Lumber, Label/#, Apple, Banana)', hed_schema=schema)
- cls.defs = {'Cond1': DefinitionEntry('Cond1', def1, False, None),
- 'Cond2': DefinitionEntry('Cond2', def2, False, None),
- 'Cond3': DefinitionEntry('Cond3', def3, True, None),
- 'Cond4': DefinitionEntry('Cond4', def4, False, None),
- 'Cond5': DefinitionEntry('Cond5', def5, False, None),
- 'Cond6': DefinitionEntry('Cond6', def6, True, None)
- }
-
- bids_root_path = os.path.realpath(os.path.join(os.path.dirname(os.path.realpath(__file__)),
- '../../data/bids_tests/eeg_ds003645s_hed'))
- cls.events_path = os.path.realpath(os.path.join(bids_root_path,
- 'sub-002/eeg/sub-002_task-FacePerception_run-1_events.tsv'))
- cls.sidecar_path = os.path.realpath(os.path.join(bids_root_path, 'task-FacePerception_events.json'))
- cls.schema = schema
-
- def test_constructor(self):
- strings1 = [HedString(hed, hed_schema=self.schema) for hed in self.test_strings1]
- con_man = HedContextManager(strings1, hed_schema=self.schema)
- type_var = HedTypeValues(con_man, self.defs, 'run-01')
- self.assertIsInstance(type_var, HedTypeValues,
- "Constructor should create a HedTypeManager from strings")
- self.assertEqual(len(type_var._type_value_map), 8,
- "Constructor ConditionVariables should have the right length")
-
- def test_constructor_from_tabular_input(self):
- sidecar1 = Sidecar(self.sidecar_path, name='face_sub1_json')
- input_data = TabularInput(self.events_path, sidecar=sidecar1, name="face_sub1_events")
- test_strings1, definitions = get_assembled(input_data, sidecar1, self.schema, extra_def_dicts=None,
- join_columns=True, shrink_defs=True, expand_defs=False)
- var_manager = HedTypeValues(HedContextManager(test_strings1, self.schema), definitions, 'run-01')
- self.assertIsInstance(var_manager, HedTypeValues,
- "Constructor should create a HedTypeManager from a tabular input")
-
- def test_constructor_variable_caps(self):
- sidecar1 = Sidecar(self.sidecar_path, name='face_sub1_json')
- input_data = TabularInput(self.events_path, sidecar1, name="face_sub1_events")
- test_strings1, definitions = get_assembled(input_data, sidecar1, self.schema, extra_def_dicts=None,
- join_columns=True, shrink_defs=True, expand_defs=False)
- var_manager = HedTypeValues(HedContextManager(test_strings1, self.schema),
- definitions, 'run-01', type_tag="Condition-variable")
- self.assertIsInstance(var_manager, HedTypeValues,
- "Constructor should create a HedTypeManager variable caps")
-
- def test_constructor_variable_task(self):
- sidecar1 = Sidecar(self.sidecar_path, name='face_sub1_json')
- input_data = TabularInput(self.events_path, sidecar=sidecar1, name="face_sub1_events")
- test_strings1, definitions = get_assembled(input_data, sidecar1, self.schema, extra_def_dicts=None,
- join_columns=True, shrink_defs=True, expand_defs=False)
- var_manager = HedTypeValues(HedContextManager(test_strings1, self.schema),
- definitions, 'run-01', type_tag="task")
- self.assertIsInstance(var_manager, HedTypeValues,
- "Constructor should create a HedTypeManager variable task")
-
- def test_constructor_multiple_values(self):
- hed_strings = [HedString(hed, self.schema) for hed in self.test_strings2]
- var_manager = HedTypeValues(HedContextManager(hed_strings, self.schema), self.defs, 'run-01')
- self.assertIsInstance(var_manager, HedTypeValues,
- "Constructor should create a HedTypeManager from strings")
- self.assertEqual(len(var_manager._type_value_map), 3,
- "Constructor should have right number of type_variables if multiple")
-
- def test_constructor_unmatched(self):
- hed_strings = [HedString(hed, self.schema) for hed in self.test_strings3]
- with self.assertRaises(HedFileError) as context:
- HedTypeValues(HedContextManager(hed_strings, self.schema), self.defs, 'run-01')
- self.assertEqual(context.exception.args[0], 'UnmatchedOffset')
-
- def test_get_variable_factors(self):
- sidecar1 = Sidecar(self.sidecar_path, name='face_sub1_json')
- input_data = TabularInput(self.events_path, sidecar1, name="face_sub1_events")
- test_strings1, definitions = get_assembled(input_data, sidecar1, self.schema, extra_def_dicts=None,
- join_columns=True, shrink_defs=True, expand_defs=False)
- var_manager = HedTypeValues(HedContextManager(test_strings1, self.schema), definitions, 'run-01')
- df_new1 = var_manager.get_type_factors()
- self.assertIsInstance(df_new1, DataFrame)
- self.assertEqual(len(df_new1), 200)
- self.assertEqual(len(df_new1.columns), 7)
- df_new2 = var_manager.get_type_factors(type_values=["face-type"])
- self.assertEqual(len(df_new2), 200)
- self.assertEqual(len(df_new2.columns), 3)
- df_new3 = var_manager.get_type_factors(type_values=["junk"])
- self.assertIsNone(df_new3)
-
- def test_str(self):
- sidecar1 = Sidecar(self.sidecar_path, name='face_sub1_json')
- input_data = TabularInput(self.events_path, sidecar1, name="face_sub1_events")
- test_strings1, definitions = get_assembled(input_data, sidecar1, self.schema, extra_def_dicts=None,
- join_columns=True, shrink_defs=True, expand_defs=False)
- var_manager = HedTypeValues(HedContextManager(test_strings1, self.schema), definitions, 'run-01')
- new_str = str(var_manager)
- self.assertIsInstance(new_str, str)
-
- def test_summarize_variables(self):
- sidecar1 = Sidecar(self.sidecar_path, name='face_sub1_json')
- input_data = TabularInput(self.events_path, sidecar1, name="face_sub1_events")
- test_strings1, definitions = get_assembled(input_data, sidecar1, self.schema, extra_def_dicts=None,
- join_columns=True, shrink_defs=True, expand_defs=False)
- var_manager = HedTypeValues(HedContextManager(test_strings1, self.schema), definitions, 'run-01')
- summary = var_manager.get_summary()
- self.assertIsInstance(summary, dict, "get_summary produces a dictionary if not json")
- self.assertEqual(len(summary), 3, "Summarize_variables has right number of condition type_variables")
- self.assertIn("key-assignment", summary, "get_summary has a correct key")
-
- def test_extract_definition_variables(self):
- hed_strings = [HedString(hed, self.schema) for hed in self.test_strings1]
- var_manager = HedTypeValues(HedContextManager(hed_strings, self.schema), self.defs, 'run-01')
- var_levels = var_manager._type_value_map['var3'].levels
- self.assertNotIn('cond3/7', var_levels,
- "_extract_definition_variables before extraction def/cond3/7 not in levels")
- tag = HedTag("Def/Cond3/7", hed_schema=self.schema)
- var_manager._extract_definition_variables(tag, 5)
- self.assertIn('cond3/7', var_levels,
- "_extract_definition_variables after extraction def/cond3/7 not in levels")
-
- def test_get_variable_names(self):
- hed_strings = [HedString(hed, self.schema) for hed in self.test_strings1]
- conditions1 = HedTypeValues(HedContextManager(hed_strings, self.schema), self.defs, 'run-01')
- list1 = conditions1.get_type_value_names()
- self.assertEqual(len(list1), 8, "get_variable_tags list should have the right length")
-
- def test_get_variable_def_names(self):
- hed_strings = [HedString(hed, self.schema) for hed in self.test_strings1]
- conditions1 = HedTypeValues(HedContextManager(hed_strings, self.schema), self.defs, 'run-01')
- list1 = conditions1.get_type_def_names()
- self.assertEqual(len(list1), 5, "get_type_def_names list should have the right length")
-
-
-if __name__ == '__main__':
- unittest.main()
diff --git a/tests/tools/analysis/test_key_map.py b/tests/tools/analysis/test_key_map.py
index d15730928..d06300667 100644
--- a/tests/tools/analysis/test_key_map.py
+++ b/tests/tools/analysis/test_key_map.py
@@ -54,19 +54,21 @@ def test_str(self):
def test_make_template(self):
t_map = KeyMap(self.key_cols1)
- stern_df = get_new_dataframe(self.stern_map_path)
+ stern_df = get_new_dataframe(self.stern_test1_path)
t_map.update(stern_df)
- df1 = t_map.make_template()
+ df1 = t_map.make_template(show_counts=False)
self.assertIsInstance(df1, pd.DataFrame, "make_template should return a DataFrame")
self.assertEqual(len(df1.columns), 1, "make_template should return 1 column single key, no additional columns")
+ df2 = t_map.make_template()
+ self.assertEqual(len(df2.columns), 2, "make_template returns an extra column for counts")
t_map2 = KeyMap(['event_type', 'type'])
- t_map2.update(self.stern_map_path)
- df2 = t_map2.make_template()
- self.assertIsInstance(df2, pd.DataFrame, "make_template should return a DataFrame")
- self.assertEqual(len(df2.columns), 2, "make_template should return 2 columns w 2 keys, no additional columns")
+ t_map2.update(self.stern_test1_path)
+ df3 = t_map2.make_template()
+ self.assertIsInstance(df3, pd.DataFrame, "make_template should return a DataFrame")
+ self.assertEqual(len(df3.columns), 3, "make_template should return 2 columns w 2 keys, no additional columns")
df3 = t_map2.make_template(['bananas', 'pears', 'apples'])
self.assertIsInstance(df3, pd.DataFrame, "make_template should return a DataFrame")
- self.assertEqual(len(df3.columns), 5, "make_template should return 5 columns w 2 keys, 3 additional columns")
+ self.assertEqual(len(df3.columns), 6, "make_template should return 5 columns w 2 keys, 3 additional columns")
def test_make_template_key_overlap(self):
t_map = KeyMap(['event_type', 'type'])
@@ -124,21 +126,12 @@ def test_remap_files(self):
def test_update_map(self):
t_map = KeyMap(self.key_cols1, self.target_cols1)
stern_df = get_new_dataframe(self.stern_map_path)
- duplicates = t_map.update(stern_df)
+ t_map.update(stern_df)
df_map = t_map.col_map
df_dict = t_map.map_dict
self.assertEqual(len(df_map), len(stern_df), "update map should contain all the entries")
self.assertEqual(len(df_dict.keys()), len(stern_df),
"update dictionary should contain all the entries")
- self.assertFalse(duplicates, "update should not have any duplicates for stern map")
-
- def test_update_map_row_list(self):
- t_map = KeyMap(self.key_cols1, self.target_cols1)
- stern_df = get_new_dataframe(self.stern_map_path)
- duplicates1 = t_map.update(stern_df)
- duplicates2 = t_map.update(stern_df)
- self.assertFalse(duplicates1)
- self.assertFalse(duplicates2)
def test_update_map_missing(self):
keys = self.key_cols1 + ['another']
@@ -159,20 +152,12 @@ def test_update_map_missing_allowed(self):
stern_df = get_new_dataframe(self.stern_map_path)
t_map.update(stern_df, allow_missing=True)
- def test_update_map_duplicate_keys(self):
- t_map = KeyMap(self.key_cols1, self.target_cols1)
- stern_df = get_new_dataframe(self.stern_test2_path)
- duplicates = t_map.update(stern_df, keep_counts=False)
- self.assertTrue(duplicates, "update should return a list of duplicates if repeated keys")
-
def test_update_map_not_unique(self):
t_map = KeyMap(self.key_cols1, self.target_cols1)
stern_df = get_new_dataframe(self.stern_test2_path)
- duplicates = t_map.update(stern_df, keep_counts=False)
+ t_map.update(stern_df)
self.assertEqual(len(t_map.col_map.columns), 4, "update should produce correct number of columns")
- self.assertEqual(len(t_map.col_map), len(stern_df) - len(duplicates),
- "update should produce the correct number of rows")
- self.assertTrue(duplicates, "update using event file has duplicates")
+ self.assertEqual(len(t_map.col_map), len(t_map.count_dict), "update should produce the correct number of rows")
if __name__ == '__main__':
diff --git a/tests/tools/analysis/test_tabular_summary.py b/tests/tools/analysis/test_tabular_summary.py
index b983c6f8b..40c7ad8db 100644
--- a/tests/tools/analysis/test_tabular_summary.py
+++ b/tests/tools/analysis/test_tabular_summary.py
@@ -36,18 +36,25 @@ def test_extract_summary(self):
tab1 = TabularSummary()
stern_df = get_new_dataframe(self.stern_map_path)
tab1.update(stern_df)
- sum_info = tab1.get_summary()
- new_tab1 = TabularSummary.extract_summary(sum_info)
+ sum_info1 = tab1.get_summary()
+ self.assertIsInstance(sum_info1, dict)
+ self.assertEqual(len(sum_info1['Categorical columns']), 4)
+ new_tab1 = TabularSummary.extract_summary(sum_info1)
+ self.assertIsInstance(new_tab1, TabularSummary)
tab2 = TabularSummary(value_cols=['letter'], skip_cols=['event_type'])
+ sum_info2 = tab2.get_summary()
+ self.assertIsInstance(sum_info2, dict)
+ new_tab2 = TabularSummary.extract_summary(sum_info2)
+ self.assertIsInstance(new_tab2, TabularSummary)
tabular_info = {}
- new_tab = TabularSummary.extract_summary(tabular_info)
- self.assertIsInstance(new_tab, TabularSummary)
+ new_tab3 = TabularSummary.extract_summary(tabular_info)
+ self.assertIsInstance(new_tab3, TabularSummary)
def test_extract_summary_empty(self):
tabular_info = {}
new_tab = TabularSummary.extract_summary(tabular_info)
self.assertIsInstance(new_tab, TabularSummary)
-
+
def test_get_number_unique_values(self):
dict1 = TabularSummary()
wh_df = get_new_dataframe(self.wh_events_path)
@@ -218,7 +225,7 @@ def test_update_summary(self):
tab.update(df, name=name)
self.assertEqual(tab.total_events, 200)
self.assertEqual(tab.total_files, 1)
- tab_all.update_summary(tab)
+ tab_all.update_summary(tab)
self.assertEqual(len(files_bids), tab_all.total_files)
self.assertEqual(len(files_bids)*200, tab_all.total_events)
diff --git a/tests/tools/analysis/test_temporal_event.py b/tests/tools/analysis/test_temporal_event.py
index ed3523a59..cbf6cf135 100644
--- a/tests/tools/analysis/test_temporal_event.py
+++ b/tests/tools/analysis/test_temporal_event.py
@@ -1,9 +1,10 @@
import os
import unittest
-from hed import schema as hedschema
-from hed.models import HedString, HedGroup
+from hed.schema.hed_schema_io import load_schema_version
+from hed.models import HedString, HedGroup, Sidecar, TabularInput
from hed.tools.analysis.temporal_event import TemporalEvent
+from hed.tools.analysis.event_manager import EventManager
# noinspection PyBroadException
@@ -11,27 +12,49 @@ class Test(unittest.TestCase):
@classmethod
def setUpClass(cls):
- schema_path = os.path.realpath(os.path.join(os.path.dirname(os.path.realpath(__file__)),
- '../../data/schema_tests/HED8.1.0.xml'))
- cls.hed_schema = hedschema.load_schema(schema_path)
+ schema = load_schema_version(xml_version="8.1.0")
+ bids_root_path = os.path.realpath(os.path.join(os.path.dirname(os.path.realpath(__file__)),
+ '../../data/bids_tests/eeg_ds003645s_hed'))
+ events_path = os.path.realpath(os.path.join(bids_root_path,
+ 'sub-002/eeg/sub-002_task-FacePerception_run-1_events.tsv'))
+ sidecar_path = os.path.realpath(os.path.join(bids_root_path, 'task-FacePerception_events.json'))
+ sidecar1 = Sidecar(sidecar_path, name='face_sub1_json')
+ cls.input_data = TabularInput(events_path, sidecar=sidecar1, name="face_sub1_events")
+ cls.events_path = events_path
+ cls.sidecar = sidecar1
+ cls.schema = schema
def test_constructor_no_group(self):
- test1 = HedString("(Onset, Def/Blech)", hed_schema=self.hed_schema)
+ test1 = HedString("(Onset, def/blech)", hed_schema=self.schema)
groups = test1.find_top_level_tags(["onset"], include_groups=1)
te = TemporalEvent(groups[0], 3, 4.5)
self.assertEqual(te.start_index, 3)
self.assertEqual(te.start_time, 4.5)
+ self.assertEqual(te.anchor, 'Def/blech')
self.assertFalse(te.internal_group)
-
+
def test_constructor_group(self):
- test1 = HedString("(Onset, (Label/Apple, Blue), Def/Blech)", hed_schema=self.hed_schema)
+ test1 = HedString("(Onset, (Label/Apple, Blue), Def/Blech/54.3)", hed_schema=self.schema)
groups = test1.find_top_level_tags(["onset"], include_groups=1)
te = TemporalEvent(groups[0], 3, 4.5)
self.assertEqual(te.start_index, 3)
self.assertEqual(te.start_time, 4.5)
self.assertTrue(te.internal_group)
+ self.assertEqual(te.anchor, 'Def/Blech/54.3')
self.assertIsInstance(te.internal_group, HedGroup)
+ def test_constructor_on_files(self):
+ manager1 = EventManager(self.input_data, self.schema)
+ event_list = manager1.event_list
+ for events in event_list:
+ if not events:
+ continue
+ for event in events:
+ self.assertIsInstance(event, TemporalEvent)
+ self.assertGreaterEqual(event.start_index, 0)
+ self.assertGreaterEqual(event.start_time, 0)
+ self.assertGreater(event.end_index, event.start_index)
+
if __name__ == '__main__':
unittest.main()
diff --git a/tests/tools/bids/test_bids_file_dictionary.py b/tests/tools/bids/test_bids_file_dictionary.py
index ef7744feb..0262ce665 100644
--- a/tests/tools/bids/test_bids_file_dictionary.py
+++ b/tests/tools/bids/test_bids_file_dictionary.py
@@ -118,5 +118,6 @@ def test_correct_file(self):
BidsFileDictionary._correct_file(["junk.tsv"])
self.assertEqual(context.exception.args[0], "BadBidsFileArgument")
+
if __name__ == '__main__':
unittest.main()
diff --git a/tests/tools/bids/test_bids_file_group.py b/tests/tools/bids/test_bids_file_group.py
index 4d4302b72..d1a66dc0f 100644
--- a/tests/tools/bids/test_bids_file_group.py
+++ b/tests/tools/bids/test_bids_file_group.py
@@ -3,7 +3,6 @@
from hed.schema.hed_schema_io import load_schema
from hed.tools.analysis.tabular_summary import TabularSummary
from hed.tools.bids.bids_file_group import BidsFileGroup
-from hed.validator.hed_validator import HedValidator
# TODO: Add test when exclude directories have files of the type needed (such as JSON in code directory).
diff --git a/tests/tools/bids/test_bids_sidecar_file.py b/tests/tools/bids/test_bids_sidecar_file.py
index 1be5b4e02..003658afd 100644
--- a/tests/tools/bids/test_bids_sidecar_file.py
+++ b/tests/tools/bids/test_bids_sidecar_file.py
@@ -79,7 +79,7 @@ def test_set_contents(self):
self.assertFalse(sidecar1.contents, "set_contents before has no contents")
self.assertFalse(sidecar1.has_hed, "set_contents before has_hed false")
sidecar1.set_contents()
- self.assertIsInstance(sidecar1.contents, Sidecar, "set_contents creates a sidecar on setcontents")
+ self.assertIsInstance(sidecar1.contents, Sidecar, "set_contents creates a sidecar on set_contents")
self.assertTrue(sidecar1.has_hed, "set_contents before has_hed false")
a = sidecar1.contents
sidecar1.set_contents({'HED': 'xyz'})
diff --git a/tests/tools/remodeling/cli/test_run_remodel.py b/tests/tools/remodeling/cli/test_run_remodel.py
index 893794e45..a63b5be2f 100644
--- a/tests/tools/remodeling/cli/test_run_remodel.py
+++ b/tests/tools/remodeling/cli/test_run_remodel.py
@@ -5,7 +5,7 @@
from unittest.mock import patch
import zipfile
from hed.errors import HedFileError
-from hed.tools.remodeling.cli.run_remodel import parse_arguments, main
+from hed.tools.remodeling.cli.run_remodel import parse_arguments, parse_tasks, main
class Test(unittest.TestCase):
@@ -27,8 +27,13 @@ def setUpClass(cls):
'../../../data/remodel_tests/eeg_ds003645s_hed_remodel',
'derivatives/remodel/remodeling_files',
'summarize_hed_types_rmdl.json'))
- cls.bad_remodel_path = os.path.realpath(os.path.join(os.path.dirname(__file__),
+ cls.bad_model_path = os.path.realpath(os.path.join(os.path.dirname(__file__),
'../../../data/remodel_tests/bad_rename_rmdl.json'))
+ cls.files = ['/datasets/fmri_ds002790s_hed_aomic/sub-0001/func/sub-0001_task-stopsignal_acq-seq_events.tsv',
+ '/datasets/fmri_ds002790s_hed_aomic/sub-0001/func/sub-0001_task-workingmemory_acq-seq_events.tsv',
+ '/datasets/fmri_ds002790s_hed_aomic/sub-0002/func/sub-0002_task-emomatching_acq-seq_events.tsv',
+ '/datasets/fmri_ds002790s_hed_aomic/sub-0002/func/sub-0002_task-stopsignal_acq-seq_events.tsv',
+ '/datasets/fmri_ds002790s_hed_aomic/sub-0002/func/sub-0002_task-workingmemory_acq-seq_events.tsv']
def setUp(self):
with zipfile.ZipFile(self.data_zip, 'r') as zip_ref:
@@ -65,10 +70,20 @@ def test_parse_arguments(self):
self.assertIsNone(args2.extensions)
# Test not able to parse
- arg_list3 = [self.data_root, self.bad_remodel_path, '-x', 'derivatives']
+ arg_list3 = [self.data_root, self.bad_model_path, '-x', 'derivatives']
with self.assertRaises(ValueError) as context3:
parse_arguments(arg_list3)
self.assertEqual(context3.exception.args[0], "UnableToFullyParseOperations")
+
+ def test_parse_tasks(self):
+ tasks1 = parse_tasks(self.files, "*")
+ self.assertIn('stopsignal', tasks1)
+ self.assertEqual(3, len(tasks1))
+ self.assertEqual(2, len(tasks1["workingmemory"]))
+ tasks2 = parse_tasks(self.files, ["workingmemory"])
+ self.assertEqual(1, len(tasks2))
+ files2 = ['task-.tsv', '/base/']
+ tasks3 = parse_tasks(files2, "*")
def test_main_bids(self):
arg_list = [self.data_root, self.model_path, '-x', 'derivatives', 'stimuli', '-b']
@@ -79,12 +94,12 @@ def test_main_bids(self):
def test_main_bids_alt_path(self):
work_path = os.path.realpath(os.path.join(self.extract_path, 'temp'))
arg_list = [self.data_root, self.summary_model_path, '-x', 'derivatives', 'stimuli', '-r', '8.1.0',
- '-j', self.sidecar_path, '-w', work_path]
-
+ '-j', self.sidecar_path, '-w', work_path]
+
with patch('sys.stdout', new=io.StringIO()) as fp:
main(arg_list)
self.assertFalse(fp.getvalue())
-
+
def test_main_bids_verbose_bad_task(self):
arg_list = [self.data_root, self.model_path, '-x', 'derivatives', 'stimuli', '-b', '-t', 'junk', '-v']
with patch('sys.stdout', new=io.StringIO()) as fp:
diff --git a/tests/tools/remodeling/cli/test_run_remodel_restore.py b/tests/tools/remodeling/cli/test_run_remodel_restore.py
index c18dcbcfd..c3645f3ae 100644
--- a/tests/tools/remodeling/cli/test_run_remodel_restore.py
+++ b/tests/tools/remodeling/cli/test_run_remodel_restore.py
@@ -5,7 +5,6 @@
from hed.errors import HedFileError
from hed.tools.remodeling.cli.run_remodel_backup import main as back_main
from hed.tools.remodeling.cli.run_remodel_restore import main
-from hed.tools.remodeling.backup_manager import BackupManager
from hed.tools.util.io_util import get_file_list
@@ -63,13 +62,13 @@ def test_restore_alt_loc(self):
os.remove(os.path.realpath(os.path.join(self.test_root_back1, 'top_level.tsv')))
files2 = get_file_list(self.test_root_back1, exclude_dirs=['derivatives'])
self.assertFalse(files2, "run_restore starts with the right number of files.")
- arg_list = [self.test_root_back1, '-n', 'back1', '-w', alt_path,]
+ arg_list = [self.test_root_back1, '-n', 'back1', '-w', alt_path]
main(arg_list)
files3 = get_file_list(self.test_root_back1, exclude_dirs=['derivatives'])
self.assertEqual(len(files3)+1, len(files1), "run_restore restores all the files after")
if os.path.exists(alt_path):
- shutil.rmtree(alt_path)
+ shutil.rmtree(alt_path)
if __name__ == '__main__':
diff --git a/tests/tools/remodeling/operations/test_convert_columns_op.py b/tests/tools/remodeling/operations/test_convert_columns_op.py
index 01a27f949..48d177b0f 100644
--- a/tests/tools/remodeling/operations/test_convert_columns_op.py
+++ b/tests/tools/remodeling/operations/test_convert_columns_op.py
@@ -1,8 +1,5 @@
-import pandas as pd
-import numpy as np
import unittest
from hed.tools.remodeling.operations.convert_columns_op import ConvertColumnsOp
-from hed.tools.remodeling.dispatcher import Dispatcher
class Test(unittest.TestCase):
diff --git a/tests/tools/remodeling/operations/test_factor_hed_type_op.py b/tests/tools/remodeling/operations/test_factor_hed_type_op.py
index e43e0e803..8af8a3b7d 100644
--- a/tests/tools/remodeling/operations/test_factor_hed_type_op.py
+++ b/tests/tools/remodeling/operations/test_factor_hed_type_op.py
@@ -14,9 +14,11 @@ class Test(unittest.TestCase):
def setUpClass(cls):
path = os.path.realpath(os.path.join(os.path.dirname(os.path.realpath(__file__)),
'../../../data/remodel_tests/'))
- cls.data_path = os.path.realpath(os.path.join(path, 'sub-002_task-FacePerception_run-1_events.tsv'))
+ data_path = os.path.realpath(os.path.join(path, 'sub-002_task-FacePerception_run-1_events.tsv'))
cls.json_path = os.path.realpath(os.path.join(path, 'task-FacePerception_events.json'))
- cls.dispatch = Dispatcher([], data_root=None, backup_name=None, hed_versions=['8.1.0'])
+ dispatch = Dispatcher([], data_root=None, backup_name=None, hed_versions=['8.1.0'])
+ cls.df_test = dispatch.prep_data(dispatch.get_data_file(data_path))
+ cls.dispatch = dispatch
@classmethod
def tearDownClass(cls):
@@ -31,7 +33,7 @@ def setUp(self):
def test_valid(self):
# Test correct when all valid and no unwanted information
op = FactorHedTypeOp(self.base_parameters)
- df_new = op.do_op(self.dispatch, self.data_path, 'subj2_run1', sidecar=self.json_path)
+ df_new = op.do_op(self.dispatch, self.df_test, 'subj2_run1', sidecar=self.json_path)
self.assertEqual(len(df_new), 200, "factor_hed_type_op length is correct")
self.assertEqual(len(df_new.columns), 17, "factor_hed_type_op has correct number of columns")
@@ -39,10 +41,8 @@ def test_valid_specific_column(self):
parms = self.base_parameters
parms["type_values"] = ["key-assignment"]
op = FactorHedTypeOp(parms)
- dispatch = Dispatcher([], data_root=None, backup_name=None, hed_versions='8.1.0')
- df_new = dispatch.get_data_file(self.data_path)
- df_new = op.do_op(dispatch, dispatch.prep_data(df_new), 'run-01', sidecar=self.json_path)
- df_new = dispatch.post_proc_data(df_new)
+ df_new = op.do_op(self.dispatch, self.df_test, 'run-01', sidecar=self.json_path)
+ df_new = self.dispatch.post_proc_data(df_new)
self.assertEqual(len(df_new), 200, "factor_hed_type_op length is correct when type_values specified")
self.assertEqual(len(df_new.columns), 11,
"factor_hed_type_op has correct number of columns when type_values specified")
diff --git a/tests/tools/remodeling/operations/test_summarize_column_values_op.py b/tests/tools/remodeling/operations/test_summarize_column_values_op.py
index c3cc322d1..5fe53c4ab 100644
--- a/tests/tools/remodeling/operations/test_summarize_column_values_op.py
+++ b/tests/tools/remodeling/operations/test_summarize_column_values_op.py
@@ -58,6 +58,7 @@ def test_do_ops(self):
self.assertEqual(cat_len, len(self.sample_columns) - 2,
"do_ops updating does not change number of categorical columns.")
context = dispatch.summary_dicts['test summary']
+ text_sum = context.get_text_summary()
self.assertEqual(len(context.summary_dict), 2)
def test_get_summary(self):
diff --git a/tests/tools/remodeling/operations/test_summarize_hed_tags_op.py b/tests/tools/remodeling/operations/test_summarize_hed_tags_op.py
index f6f88fe5e..3e1c1d128 100644
--- a/tests/tools/remodeling/operations/test_summarize_hed_tags_op.py
+++ b/tests/tools/remodeling/operations/test_summarize_hed_tags_op.py
@@ -2,6 +2,12 @@
import os
import unittest
import pandas as pd
+from hed.models import TabularInput, Sidecar
+from hed.schema import load_schema_version
+from hed.tools.analysis.hed_tag_counts import HedTagCounts
+from hed.tools.analysis.event_manager import EventManager
+from hed.tools.analysis.hed_tag_manager import HedTagManager
+from io import StringIO
from hed.models.df_util import get_assembled
from hed.tools.remodeling.dispatcher import Dispatcher
from hed.tools.remodeling.operations.summarize_hed_tags_op import SummarizeHedTagsOp, HedTagSummary
@@ -27,8 +33,11 @@ def setUpClass(cls):
"Objects": ["Item"],
"Properties": ["Property"]
},
- "expand_context": False,
+ "include_context": False,
+ "replace_defs": False,
+ "remove_types": ["Condition-variable", "Task"]
}
+ cls.base_parameters = base_parameters
cls.json_parms = json.dumps(base_parameters)
@classmethod
@@ -39,7 +48,10 @@ def test_constructor(self):
parms = json.loads(self.json_parms)
sum_op1 = SummarizeHedTagsOp(parms)
self.assertIsInstance(sum_op1, SummarizeHedTagsOp, "constructor creates an object of the correct type")
- parms["expand_context"] = ""
+
+ def test_constructor_bad_params(self):
+ parms = json.loads(self.json_parms)
+ parms["include_context"] = ""
with self.assertRaises(TypeError) as context:
SummarizeHedTagsOp(parms)
self.assertEqual(context.exception.args[0], "BadType")
@@ -49,7 +61,7 @@ def test_constructor(self):
SummarizeHedTagsOp(parms2)
self.assertEqual(context.exception.args[0], "BadParameter")
- def test_do_op(self):
+ def test_do_op_no_replace_no_context_remove_on(self):
dispatch = Dispatcher([], data_root=None, backup_name=None, hed_versions=['8.1.0'])
parms = json.loads(self.json_parms)
sum_op = SummarizeHedTagsOp(parms)
@@ -60,17 +72,81 @@ def test_do_op(self):
self.assertEqual(10, len(df_new.columns), "summarize_hed_type_op has correct number of columns")
self.assertIn(sum_op.summary_name, dispatch.summary_dicts)
self.assertIsInstance(dispatch.summary_dicts[sum_op.summary_name], HedTagSummary)
- x = dispatch.summary_dicts[sum_op.summary_name].summary_dict['subj2_run1']
- self.assertEqual(len(dispatch.summary_dicts[sum_op.summary_name].summary_dict['subj2_run1'].tag_dict), 47)
+ counts = dispatch.summary_dicts[sum_op.summary_name].summary_dict['subj2_run1']
+ self.assertIsInstance(counts, HedTagCounts)
+ self.assertEqual(len(counts.tag_dict), 16)
+ self.assertIn('def', counts.tag_dict)
+ self.assertNotIn('task', counts.tag_dict)
+ self.assertNotIn('condition-variable', counts.tag_dict)
df_new = sum_op.do_op(dispatch, dispatch.prep_data(df), 'subj2_run2', sidecar=self.json_path)
- self.assertEqual(len(dispatch.summary_dicts[sum_op.summary_name].summary_dict['subj2_run2'].tag_dict), 47)
+ self.assertEqual(len(dispatch.summary_dicts[sum_op.summary_name].summary_dict['subj2_run2'].tag_dict), 16)
+
+ def test_do_op_options(self):
+ dispatch = Dispatcher([], data_root=None, backup_name=None, hed_versions=['8.2.0'])
+ df = pd.read_csv(self.data_path, delimiter='\t', header=0, keep_default_na=False, na_values=",null")
+
+ # # no replace, no context, types removed
+ # parms1 = json.loads(self.json_parms)
+ # parms1["summary_name"] = "tag summary 1"
+ # sum_op1 = SummarizeHedTagsOp(parms1)
+ # df_new1 = sum_op1.do_op(dispatch, dispatch.prep_data(df), 'subj2_run1', sidecar=self.json_path)
+ # self.assertIsInstance(sum_op1, SummarizeHedTagsOp, "constructor creates an object of the correct type")
+ # self.assertEqual(200, len(df_new1), "summarize_hed_type_op dataframe length is correct")
+ # self.assertEqual(10, len(df_new1.columns), "summarize_hed_type_op has correct number of columns")
+ # self.assertIn(sum_op1.summary_name, dispatch.summary_dicts)
+ # self.assertIsInstance(dispatch.summary_dicts[sum_op1.summary_name], HedTagSummary)
+ # counts1 = dispatch.summary_dicts[sum_op1.summary_name].summary_dict['subj2_run1']
+ # self.assertIsInstance(counts1, HedTagCounts)
+ # self.assertEqual(len(counts1.tag_dict), 16)
+ # self.assertNotIn('event-context', counts1.tag_dict)
+ # self.assertIn('def', counts1.tag_dict)
+ # self.assertNotIn('task', counts1.tag_dict)
+ # self.assertNotIn('condition-variable', counts1.tag_dict)
+ #
+ # # no replace, context, types removed
+ # parms2 = json.loads(self.json_parms)
+ # parms2["include_context"] = True
+ # parms2["summary_name"] = "tag summary 2"
+ # sum_op2 = SummarizeHedTagsOp(parms2)
+ # df_new2 = sum_op2.do_op(dispatch, dispatch.prep_data(df), 'subj2_run1', sidecar=self.json_path)
+ # self.assertIsInstance(sum_op2, SummarizeHedTagsOp, "constructor creates an object of the correct type")
+ # self.assertEqual(200, len(df_new2), "summarize_hed_type_op dataframe length is correct")
+ # self.assertEqual(10, len(df_new2.columns), "summarize_hed_type_op has correct number of columns")
+ # self.assertIn(sum_op2.summary_name, dispatch.summary_dicts)
+ # self.assertIsInstance(dispatch.summary_dicts[sum_op2.summary_name], HedTagSummary)
+ # counts2 = dispatch.summary_dicts[sum_op2.summary_name].summary_dict['subj2_run1']
+ # self.assertIsInstance(counts2, HedTagCounts)
+ # self.assertEqual(len(counts2.tag_dict), len(counts1.tag_dict) + 1)
+ # self.assertIn('event-context', counts2.tag_dict)
+ # self.assertIn('def', counts2.tag_dict)
+ # self.assertNotIn('task', counts2.tag_dict)
+ # self.assertNotIn('condition-variable', counts2.tag_dict)
+
+ # no replace, context, types removed
+ parms3 = json.loads(self.json_parms)
+ parms3["include_context"] = True
+ parms3["replace_defs"] = True
+ parms3["summary_name"] = "tag summary 3"
+ sum_op3 = SummarizeHedTagsOp(parms3)
+ df_new3 = sum_op3.do_op(dispatch, dispatch.prep_data(df), 'subj2_run1', sidecar=self.json_path)
+ self.assertIsInstance(sum_op3, SummarizeHedTagsOp, "constructor creates an object of the correct type")
+ self.assertEqual(200, len(df_new3), "summarize_hed_type_op dataframe length is correct")
+ self.assertEqual(10, len(df_new3.columns), "summarize_hed_type_op has correct number of columns")
+ self.assertIn(sum_op3.summary_name, dispatch.summary_dicts)
+ self.assertIsInstance(dispatch.summary_dicts[sum_op3.summary_name], HedTagSummary)
+ counts3 = dispatch.summary_dicts[sum_op3.summary_name].summary_dict['subj2_run1']
+ self.assertIsInstance(counts3, HedTagCounts)
+ self.assertEqual(33, len(counts3.tag_dict))
+ self.assertIn('event-context', counts3.tag_dict)
+ self.assertNotIn('def', counts3.tag_dict)
+ self.assertNotIn('task', counts3.tag_dict)
+ self.assertNotIn('condition-variable', counts3.tag_dict)
def test_quick3(self):
- from hed.models import TabularInput, Sidecar
- from hed.schema import load_schema_version
- from hed.tools.analysis.hed_tag_counts import HedTagCounts
- from io import StringIO
- my_schema = load_schema_version('8.1.0')
+ include_context = True
+ replace_defs = True
+ remove_types = []
+ my_schema = load_schema_version('8.2.0')
my_json = {
"code": {
"HED": {
@@ -89,19 +165,16 @@ def test_quick3(self):
data = [[0.5, 0, 'code1', 'Description/This is a test, Label/Temp, (Def/Blech1, Green)'],
[0.6, 0, 'code2', 'Sensory-event, ((Description/Animal, Condition-variable/Blech))']]
df = pd.DataFrame(data, columns=['onset', 'duration', 'code', 'HED'])
- input_data = TabularInput(df, sidecar=my_sidecar)
+ input_data = TabularInput(df, sidecar=my_sidecar, name="myName")
+ tag_man = HedTagManager(EventManager(input_data, my_schema), remove_types=remove_types)
counts = HedTagCounts('myName', 2)
summary_dict = {}
- hed_strings, definitions = get_assembled(input_data, my_sidecar, my_schema, extra_def_dicts=None, join_columns=True,
- shrink_defs=False, expand_defs=True)
- for hed in hed_strings:
- counts.update_event_counts(hed, 'myName')
- summary_dict['myName'] = counts
+ # hed_objs = tag_man.get_hed_objs(include_context=include_context, replace_defs=replace_defs)
+ # for hed in hed_objs:
+ # counts.update_event_counts(hed, 'myName')
+ # summary_dict['myName'] = counts
def test_quick4(self):
- from hed.models import TabularInput, Sidecar
- from hed.schema import load_schema_version
- from hed.tools.analysis.hed_tag_counts import HedTagCounts
path = os.path.realpath(os.path.join(os.path.dirname(os.path.realpath(__file__)),
'../../../data/remodel_tests/'))
data_path = os.path.realpath(os.path.join(path, 'sub-002_task-FacePerception_run-1_events.tsv'))
@@ -183,7 +256,7 @@ def test_sample_example(self):
"Participant-response"],
"Objects": ["Item"]
},
- "expand_context": False
+ "include_context": False
}}]
sample_data = [[0.0776, 0.5083, 'go', 'n/a', 0.565, 'correct', 'right', 'female'],
diff --git a/tests/tools/remodeling/operations/test_summarize_hed_validation_op.py b/tests/tools/remodeling/operations/test_summarize_hed_validation_op.py
index 9ae1ef776..97b87df83 100644
--- a/tests/tools/remodeling/operations/test_summarize_hed_validation_op.py
+++ b/tests/tools/remodeling/operations/test_summarize_hed_validation_op.py
@@ -5,6 +5,7 @@
from hed.tools.remodeling.dispatcher import Dispatcher
from hed.tools.remodeling.operations.summarize_hed_validation_op import SummarizeHedValidationOp, \
HedValidationSummary
+from hed.errors import error_reporter
class Test(unittest.TestCase):
@@ -74,6 +75,7 @@ def test_get_summary_details(self):
sum_context = dispatch.summary_dicts[sum_op.summary_name]
sum_obj1 = sum_context.get_summary_details()
self.assertIsInstance(sum_obj1, dict)
+ error_reporter.replace_tag_references(sum_obj1)
json_str1 = json.dumps(sum_obj1, indent=4)
self.assertIsInstance(json_str1, str)
json_obj1 = json.loads(json_str1)
@@ -81,6 +83,7 @@ def test_get_summary_details(self):
sum_op.do_op(dispatch, dispatch.prep_data(df), 'subj2_run2', sidecar=self.json_path)
sum_context2 = dispatch.summary_dicts[sum_op.summary_name]
sum_obj2 = sum_context2.get_summary_details()
+ error_reporter.replace_tag_references(sum_obj2)
json_str2 = json.dumps(sum_obj2, indent=4)
self.assertIsInstance(json_str2, str)
sum_obj3 = sum_context2.get_summary_details(include_individual=False)
diff --git a/tests/tools/remodeling/test_dispatcher.py b/tests/tools/remodeling/test_dispatcher.py
index 177a4fe43..b91a3c6f8 100644
--- a/tests/tools/remodeling/test_dispatcher.py
+++ b/tests/tools/remodeling/test_dispatcher.py
@@ -198,10 +198,16 @@ def test_save_summaries(self):
dispatch1.save_summaries()
self.assertTrue(os.path.exists(summary_path))
file_list1 = os.listdir(summary_path)
- self.assertEqual(len(file_list1), 2, "save_summaries creates correct number of summary files when run.")
+ self.assertEqual(2, len(file_list1), "save_summaries creates correct number of summary files when run.")
dispatch1.save_summaries(save_formats=[])
- file_list2 = os.listdir(summary_path)
- self.assertEqual(len(file_list2), 2, "save_summaries must have a format to save")
+ dir_list2 = os.listdir(summary_path)
+ self.assertEqual(2, len(dir_list2), "save both summaries")
+ path_before = os.path.realpath(os.path.join(summary_path, "test summary_values_before"))
+ file_list2 = [f for f in os.listdir(path_before) if os.path.isfile(os.path.join(path_before, f))]
+ self.assertEqual(2, len(file_list2))
+ dispatch1.save_summaries(task_name="task-blech")
+ file_list3 = [f for f in os.listdir(path_before) if os.path.isfile(os.path.join(path_before, f))]
+ self.assertEqual(4, len(file_list3), "saving with task has different name than without")
def test_get_summaries(self):
with open(self.summarize_excerpt) as fp:
diff --git a/tests/tools/util/test_io_util.py b/tests/tools/util/test_io_util.py
index 46373ad72..62032362f 100644
--- a/tests/tools/util/test_io_util.py
+++ b/tests/tools/util/test_io_util.py
@@ -2,7 +2,7 @@
import unittest
from hed.errors.exceptions import HedFileError
from hed.tools.util.io_util import check_filename, extract_suffix_path, clean_filename, \
- get_dir_dictionary, get_file_list, get_path_components, parse_bids_filename, \
+ get_dir_dictionary, get_file_list, get_path_components, get_task_from_file, parse_bids_filename, \
_split_entity, get_allowed, get_filtered_by_element
@@ -81,11 +81,6 @@ def test_clean_file_name(self):
# filename = clean_filename('HED7.2.0.xml', name_suffix='_blech', extension='.txt')
# self.assertEqual('HED7.2.0_blech.txt', filename, "Returns correct string when base_name has periods")
- def test_get_dir_dictionary(self):
- dir_dict = get_dir_dictionary(self.bids_dir, name_suffix="_events")
- self.assertTrue(isinstance(dir_dict, dict), "get_dir_dictionary returns a dictionary")
- self.assertEqual(len(dir_dict), 3, "get_dir_dictionary returns a dictionary of the correct length")
-
def test_get_allowed(self):
test_value = 'events.tsv'
value = get_allowed(test_value, 'events')
@@ -97,6 +92,11 @@ def test_get_allowed(self):
self.assertEqual(value1, "events", "get_allowed is case insensitive")
value2 = get_allowed(test_value1, [])
self.assertEqual(value2, test_value1)
+
+ def test_get_dir_dictionary(self):
+ dir_dict = get_dir_dictionary(self.bids_dir, name_suffix="_events")
+ self.assertTrue(isinstance(dir_dict, dict), "get_dir_dictionary returns a dictionary")
+ self.assertEqual(len(dir_dict), 3, "get_dir_dictionary returns a dictionary of the correct length")
def test_get_file_list_case(self):
dir_data = os.path.join(os.path.dirname(os.path.realpath(__file__)), '../data/sternberg')
@@ -185,6 +185,12 @@ def test_get_path_components(self):
# else:
# self.fail("parse_bids_filename should have thrown an exception")
+ def test_get_task_from_file(self):
+ task1 = get_task_from_file("H:/alpha/base_task-blech.tsv")
+ self.assertEqual("blech", task1)
+ task2 = get_task_from_file("task-blech")
+ self.assertEqual("blech", task2)
+
def test_parse_bids_filename_full(self):
the_path1 = '/d/base/sub-01/ses-test/func/sub-01_ses-test_task-overt_run-2_bold.json'
suffix1, ext1, entity_dict1 = parse_bids_filename(the_path1)
diff --git a/tests/tools/util/test_schema_util.py b/tests/tools/util/test_schema_util.py
index 8ee8d1210..4af773ab0 100644
--- a/tests/tools/util/test_schema_util.py
+++ b/tests/tools/util/test_schema_util.py
@@ -1,7 +1,5 @@
-import os
import pandas as pd
import unittest
-from hed.errors.exceptions import HedFileError
from hed.schema.hed_schema_io import load_schema_version
from hed.tools.util.schema_util import flatten_schema
diff --git a/tests/tools/visualization/test_tag_word_cloud.py b/tests/tools/visualization/test_tag_word_cloud.py
index 2b515c941..6bb940eec 100644
--- a/tests/tools/visualization/test_tag_word_cloud.py
+++ b/tests/tools/visualization/test_tag_word_cloud.py
@@ -2,12 +2,19 @@
from wordcloud import WordCloud
from hed.tools.visualization import tag_word_cloud
from hed.tools.visualization.tag_word_cloud import load_and_resize_mask
+from hed.tools.visualization.word_cloud_util import generate_contour_svg
+
import numpy as np
from PIL import Image, ImageDraw
import os
class TestWordCloudFunctions(unittest.TestCase):
+ @classmethod
+ def setUpClass(cls):
+ cls.mask_path = os.path.realpath(os.path.join(os.path.dirname(__file__),
+ '../../data/visualization/word_mask.png'))
+
def test_convert_summary_to_word_dict(self):
# Assume we have a valid summary_json
summary_json = {
@@ -40,6 +47,30 @@ def test_create_wordcloud(self):
self.assertEqual(wc.width, width)
self.assertEqual(wc.height, height)
+ def test_create_wordcloud_default_params(self):
+ word_dict = {'tag1': 5, 'tag2': 3, 'tag3': 7}
+ wc = tag_word_cloud.create_wordcloud(word_dict)
+
+ self.assertIsInstance(wc, WordCloud)
+ self.assertEqual(wc.width, 400)
+ self.assertEqual(wc.height, 200)
+
+ def test_mask_scaling(self):
+ word_dict = {'tag1': 5, 'tag2': 3, 'tag3': 7}
+ wc = tag_word_cloud.create_wordcloud(word_dict, self.mask_path, width=300, height=300)
+
+ self.assertIsInstance(wc, WordCloud)
+ self.assertEqual(wc.width, 300)
+ self.assertEqual(wc.height, 300)
+
+ def test_mask_scaling2(self):
+ word_dict = {'tag1': 5, 'tag2': 3, 'tag3': 7}
+ wc = tag_word_cloud.create_wordcloud(word_dict, self.mask_path, width=300, height=None)
+
+ self.assertIsInstance(wc, WordCloud)
+ self.assertEqual(wc.width, 300)
+ self.assertLess(wc.height, 300)
+
def test_create_wordcloud_with_empty_dict(self):
# Test creation of word cloud with an empty dictionary
word_dict = {}
@@ -54,6 +85,15 @@ def test_create_wordcloud_with_single_word(self):
# Check that the single word is in the word cloud
self.assertIn('single_word', wc.words_)
+ def test_valid_word_cloud(self):
+ word_dict = {'tag1': 5, 'tag2': 3, 'tag3': 7}
+ wc = tag_word_cloud.create_wordcloud(word_dict, mask_path=self.mask_path, width=400, height=None)
+ svg_output = tag_word_cloud.word_cloud_to_svg(wc)
+ self.assertTrue(svg_output.startswith('