Свойства полей, псевдонимы и опции отображения таблицы—Справка
У каждого поля, или столбца, в таблице атрибутов есть свойства, описывающие его содержимое, и как должны отображаться его данные. Можно просматривать и в некоторых случаях редактировать свойства для каждого поля на закладке Поля (Fields) в диалоговых окнах Свойства слоя (Layer Properties) и Свойства таблицы (Table Properties). Настройки на закладке Поля (Fields) используются для определения способа отображения атрибутов в ArcMap, в том числе в окне атрибутивной таблицы, в окне Идентифицировать (Identify) и при редактировании в окне Атрибуты (Attributes).
Например, вы можете:
- Определить, какие поля должны отображаться в таблице (видимые поля).
- Задать псевдоним для имени поля для того, чтобы поле отображалось в таблице с понятным именем. Псевдонимы полезны, т.к. вы не можете изменять имена полей в данных после их создания.
- Установить форматирование для числовых полей (денежные значения) или задать количество отображаемых знаков после запятой. Отформатированные данные отображаются в окне Идентифицировать (Identify), в окне Атрибуты (Attributes), в легендах, таблице содержания, окнах таблиц и т.д.
- Определить отображаемое поле, которое используется в окне Идентифицировать (Identify), в окне Атрибуты (Attributes) и других функциональных возможностях в ArcMap.
- Написать выражение, которое можно использовать для построения более сложного элемента строки, а не содержимого одного поля.
- Установить параметры отображения таблицы и работы со столбцами.
Некоторые свойства полей задаются в момент создания класса пространственных объектов или таблицы и их потом нельзя изменить (тип данных, точность и количество знаков).
Перемещение по списку полей на закладке Поля (Fields)
Настройки, выбранные на закладке Поля (Fields), в том числе видимость, порядок и псевдонимы полей, используются в ArcMap во всех местах работы с атрибутами – в окне атрибутивной таблицы, в окне Идентифицировать (Identify) и при редактировании в окне Атрибуты (Attributes). Эти настройки применяются также к соединенным полям, хотя редактировать их можно только когда они не присоединены, то есть, в исходных таблицах.
Левая часть закладки Поля (Fields) содержит список со всеми полями класса пространственных объектов или таблицы, в том числе все присоединенные поля. Можно отметить или убрать отметку с поля, чтобы оно было или не было видно в ArcMap. Можно переключить видимость всех полей, щелкнув Включить все поля или Выключить все поля, удерживая нажатой клавишу CTRL и щелкнув на окошке для отметок, либо нажав клавиши CTRL+SPACEBAR, если поле подсвечено в списке.
Порядок, в котором поля перечислены на закладке Поля (Fields) – это порядок отображения полей в ArcMap по умолчанию. Чтобы изменить их порядок, щелкните на поле в списке и перетащите его в нужное место, либо воспользуйтесь кнопками со стрелочками вверх и вниз для перемещения поля по списку. Можно выбрать несколько полей и изменять их порядок одновременно. Щелкая на стрелках, вы перемещаете все выбранные поля на одну позицию выше или ниже по списку. Чтобы переместить поле в самый верх или низ списка, щелкните стрелку раскрывающегося списка рядом с кнопками стрелок и воспользуйтесь командой Переместить наверх (Move To Top) или Переместить вниз (Move To Bottom).
Чтобы отсортировать список по алфавиту, нажмите кнопку Опции таблицы (Table Options) и выберите порядок по возрастанию или по убыванию. Чтобы вернуться к тому порядку, какой был у исходных данных, нажмите кнопку Опции таблицы (Table Options) и воспользуйтесь командой Восстановить порядок полей (Reset Field Order). С помощью меню Опции таблицы (Table Options) можно переключаться между отображением псевдонимов и имен полей.
Установка свойств полей
Когда вы щелкаете на поле в списке слева, свойства отдельных полей отображаются на правой части закладки (если у вас выбрано несколько полей, правая часть остается пустой). Можно изменить свойства, показываемые в разделе Внешний вид (Appearance), но нельзя изменить свойства, перечисленные в разделе Детали поля (Field Details). Если щелкнуть на строке справа, в нижней части правой панели появится строчка с описанием этого свойства.
Свойства отображения указывают, каким образом содержимое этого поля отображается в ArcMap. Псевдоним поля – это его альтернативное название, которое может быть более понятным для пользователя, чем настоящее. Если нужно отличить определенные поля – например, чтобы их было лучше видно при редактировании в окне Атрибуты (Attributes) – установите в свойстве Выделить (Highlight) значение Да. При этом изменятся цвет шрифта и фоновая тень, чтобы поля отличались от остальных. Также можно задать полю режим «только для чтения», что означает, что его можно видеть, но не редактировать, независимо от прав доступа к базе геоданных. Кроме того, если вы работаете с числовыми полями, то можно установить формат чисел, нажав кнопку многоточия в строке Числовой формат (Number Format). У каждой категории – валюта, проценты и т.д. – свой набор доступных опций форматирования.
Все элементы в списке Детали поля (Field Details) являются системными свойствами ArcGIS, к которым относятся тип данных поля, имя, точность, длина, названия доменов кодированных значений или интервалов, а также допустимо ли отсутствие значения (null). Они будут варьироваться в зависимости от источника данных (база геоданных, шейп-файл и т.д.) и типа поля (текст, длинное целое число, дата и т.д.). Так как эти свойства видны, но не редактируются, они показаны серым, а не черным цветом.
Псевдонимы полей
Псевдоним является альтернативным именем поля и представляет собой более понятное описание содержимого поля. В отличие от настоящих имен, псевдонимы могут не соответствовать ограничениям базы данных и могут содержать до 255 знаков – включая пробелы, цифры и специальные символы. Задавая псевдонимы, вы можете называть поля более информативно по сравнению с настоящими именами.
Например, вы можете задать псевдоним «Дата действия» для поля, хранящегося в базе данных как «DEED_DATE».
Существует два типа псевдонимов полей: псевдонимы полей класса пространственных объектов (только в базах геоданных) и псевдонимы полей слоя. С псевдонимами полей класса объектов вы работаете в ArcCatalog в диалоговом окне Свойства класса пространственных объектов (Feature Class Properties). Когда класс объектов базы данных добавляется в ArcMap, его псевдонимы полей изначально используются для псевдонимов полей слоя. Однако, после этого связи между двумя типами псевдонимов нет. Свойства, заданные в ArcMap, временно отменяют настройки свойства источника данных, но при этом не переносятся в источник данных. Это означает, что если вы измените псевдоним поля слоя, это не изменит псевдоним поля класса пространственных объектов, и если вы измените псевдоним поля в базе геоданных, это не обновит псевдоним поля слоя ни для какого слоя, созданного на основе этого класса объектов.
Сохранить то, что установлено на закладке Поля (Fields), можно только сохраняя документ карты или слой в файл .lyr.
Опции отображения таблицы
Когда вы открываете таблицу, вы можете настроить ее вид несколькими способами. Например, если вам не нравится шрифт таблицы, установленный по умолчанию, вы можете изменить его, а также установить другой размер шрифта. Вы можете производить изменения для всех таблиц или только для одной – каждая таблица может иметь собственные индивидуальные настройки.
При изучении содержимого таблицы вы можете менять размеры столбцов для того, чтобы лучше видеть значения в таблице. Также вы можете менять столбцы местами для более удобного сравнения значений в одном столбце со значениями в другом. Закрепление столбцов таблицы также может быть полезно при изучении содержимого таблицы. Закрепленные столбцы жестко фиксируются в таблице слева и отделяются от других столбцов толстой черной линией. При горизонтальной прокрутке таблицы все остальные столбцы передвигаются как обычно, а закрепленные столбцы остаются зафиксированными.
Некоторые параметры отображения таблицы, которые вы можете задать, включают:
- Изменение ширины видимых полей и их перестановка
- Закрепление поля для того, чтобы оно всегда было на виду при прокрутке таблицы
- Выбор показывать или нет значения или описания для полей с подтипами и доменами
- Изменение цвета или шрифта, используемых для отображения атрибутов в таблицах
- Установка высоты заголовков и ячеек
- Задание символа, который показывает, что поле проиндексировано (индексы могут улучшить скорость обработки запросов)
Установка высоты заголовков и ячеек
Вы можете изменять высоту заголовков столбцов (верхняя строка таблицы атрибутов с именами полей) и ячеек. Увеличивая высоты заголовков и ячеек, вы можете увеличить высоту строк.
Если при том значении высоты заголовка столбца или ячейки, которое вы задали, достаточно места для дополнительных линий, то имя поля внутри заголовка столбца или содержимое ячейки перенесется на следующую линию, если не поместится при текущей ширине столбца. Это может быть особенно полезно в тех случаях, когда в таблице есть поля с длинным именами или длинные текстовые поля, такие как поля с описаниями или комментариями. Увеличение высоты заголовков или ячеек таблицы облегчит работу с такими полями.
Высота по умолчанию заголовка равна 125 процентам размера шрифта. Высота ячейки по умолчанию заголовка равна 115 процентам размера шрифта. Если вы установите высоту ячейки меньше 115%, это может затруднить редактирование содержимого ячеек.
Обычно для высоты заголовков и ячеек следует оставить значения по умолчанию как 125% и 115% на закладке Таблицы в меню Настройка > диалоговое окно Опции ArcMap, чтобы для всех создаваемых новых таблиц использовались стандартные установки. Если же нужно, чтобы у какой-то определенной таблицы строки были выше, чтобы длинные текстовые поля переносились на следующие строки, как показано на рисунке выше, задайте нужную настройку в диалоговом окне Опции таблицы (Table Options) > Оформление (Appearance). В этом случае заданная высота строки будет применена только к данной конкретной таблице.
Быстрая установка свойств и псевдонимов полей
При открытом окне таблицы вы можете щелкнуть правой кнопкой мыши на заголовке поля и выбрать из меню пункт Свойства (Properties), чтобы открыть диалоговое окно, в котором можно установить и просмотреть определенные свойства этого поля. В этом диалоговом окне вы можете задать псевдоним поля, сделать поле невидимым или видимым, изменить форматирование для числовых полей и просмотреть (не изменяя) другие свойства поля, такие как разрешено ли отсутствие значений (null) в поле, точность и длина поля.
Установка ширины столбцов
В окне таблицы поля отображаются в виде столбцов. Вы можете потянуть разделители между полями влево или вправо, чтобы изменить ширину поля, вплоть до того, что поле может быть полностью скрыто.
Вы также можете автоматически восстановить ширину столбцов, чтобы отменить внесенные изменения. Команда Восстановить ширину столбцов по умолчанию (Restore Default Column Widths) в меню Опции таблицы возвращает для столбцов все значения ширины по умолчанию. Кроме того, она открывает все поля, полностью скрытые путем уменьшения их ширины до нуля. Команда Восстановить ширину столбцов по умолчанию (Restore Default Column Widths) не сбрасывает порядок столбцов, так что если столбцы были переставлены в окне таблицы, после применения этой команды их порядок не изменится.
Если какое-то поле таблицы полностью скрыто, это будет показано более толстым разделителем на месте этого поля. Таким образом, всегда легко увидеть, что одно или несколько полей скрыты. Если несколько полей скрыто на одном месте, это будет показано еще более толстой линией разделителя.
Чтобы открыть скрытое поле, потяните линию разделителя вправо, или щелкните дважды на разделителе. Чтобы открыть все спрятанные поля в таблице, используйте команду Восстановить ширину столбцов по умолчанию (Restore Default Column Widths) в меню Опции таблицы. Полное сокрытие полей в окне таблицы может быть полезно, т.к. позволяет настроить нужный вид таблицы, включая вид таблицы для печати с помощью команды Печать в меню Опции таблицы, без полного выключения полей, при котором поля выключаются и во всех других местах.
Связанные разделы
Базы данных Access. Свойства полей Access. Типы данных Access. Создание таблиц в базе данных Access.
Всем привет. В этой статье, мы поговорим на такие темы как : Базы данных access, Свойства полей Access, Типы данных Access и Создание таблиц в Access.
Access — это реляционная СУБД корпорации Microsoft. Имеет огромный список функций, включая связанные запросы, сортировку по разным полям, связь с внешними таблицами и базами данных. Его преимущество в том, что Access имеет встроенный язык VBA и в самой СУБД можно создавать приложения, которые будут работать с базами данных.
Примечание
СУБД — Система управления базами данных…
Создание таблиц в Access.
Существуют следующие способы создание таблиц в Access :
- Режим таблицы — Реализовывается путем ввода данных.
- С помощью мастера — Создания таблиц, на основе предложенного образца.
- Режим конструктора — Позволяет не только задать имена полей таблиц, но и выбрать типы данных и задать свойства полей.
Каждому способу есть соответствующий ярлык, когда вы создаете базу данных в Access, то кроме этих ярлыков ничего нет.
Примечание
Если эти ярлыки не видны, необходимо открыть окно Параметры (Options) (с помощью команды Сервис, Параметры (Tools, Option),) затем раскрыть вкладку Вид (View) и установить флажок новые ярлыки объектов (New Object Shortcuts)…
Типы данных Access.
Ниже даю вам таблицу, в которой написаны Типы данных Access, и их описание.
Название поля | Описание |
---|---|
Text (Тип данных текстовый). | Символьные, текстовые данные, объем которых недолжен, превышать 255 символов, по умолчанию 50. |
Memo (Тип данных текстовый). | Текстовый тип данных, ограничения до 64000 символов, поля этого типа не индексируются. |
Integer (Тип данных числовой). | Числовые данные, размер которых определяется, числом, указанным в свойствах полей. |
Data, Time. | Предназначен для хранения даты и времени, или их вместе. |
Денежный (Тип данных числовой). | Разновидность типа данных для хранения, денежных эквивалентов, размером 15 разрядов до запятой, и четыре разряда после. |
Счетчик (Тип данных числовой). | Является разновидностью числового типа, может иметь только целое значение, автоматически увеличивается на заданный шаг, по умолчанию +1, значения не могут повторяться. |
Логический. | Предназначен для хранения логических значений, для команд и операций : лож\истинна, да\нет, true\false, 1\0. |
Ole. | Предназначен для хранения объектов (файлов), которые созданы в других приложениях. Поле не индексируется. |
Гиперссылка | В полях храниться ссылки, представляющие собой путь к файлу на каком-либо носители, или ресурсе сети. |
Мастер подстановок. | Позволяет подставлять значение полей, в виде простого или комбинированного списка. |
Свойства полей Access.
Ниже даю вам таблицу, в которой написаны Свойства полей Access, и их описание.
Свойства поля | Описание |
---|---|
Размер поля. | Определяет максимальную длину текстового или числового поля, так как если размер подобран неоптимальное, расходуется, лишня память. |
Формат поля. | Устанавливает формат отображения данных в форме, запросе, отчете. |
Число десятичных знаков. | Количество знаков после запятой в десятичном числе. |
Маска ввода. | Задает маску (шаблон), при вводе данных в таблицу или форму. |
Значение по умолчанию. | Содержит значение, установленное по умолчанию, для всех новых записей таблицы. |
Подпись. | Задает подпись поля, которое выводиться в формах, отчетах, таблицах (не путать с именем поля). |
Условие на значение. | Позволяет задать то условие, которое проверяется при вводе данных в поле. |
Сообщение об ошибке. | Задается текст, сообщение выводится в диалоговом окне, если вводимые данные не соответствуют, заданному условию на значение. |
Обязательное поле. | Определяет, может ли поле быть пустым или нет. |
Пустые строки. | Определяет возможность ввода в поля пустых строк с пробелами. |
Индексированное поле. | Задает индексы, для ускоренного поиска информации в таблице. |
Примечание
Если в база данных включает несколько таблиц, то эти таблицы, как правило, должны быть связаны между собой. Связь организуется от родительской таблице к дочерней…
На этом данную статью я заканчиваю, надеюсь, вы полностью разобрались с Базами данных Access.
Текстовое поле/настраиваемый текст | Переменная | Отображение переменных, входящих в текстовое поле. | |
Положение | Изменение положения текстового поля выбранной переменной на мастер-странице. | ||
Размер |
|
Управление размером текстового поля переменной. | |
Шрифт | Шрифт | Выбор шрифта, доступного в системе. | |
Выбрать толщину шрифта | Изменение толщины шрифта, используемого в текстовом поле выбранной переменной. | ||
Использование в мастер-документе | Просмотр шрифтов, используемых в мастер-файле. | ||
Размер шрифта | |||
Цвет шрифта | Выбор цвета шрифта. Примечание: Цвет может быть выбран с помощью CMYK, HSL, RGB, шестнадцатеричного значения, инструмента цветовой палитры или путем добавления настраиваемого плашечного цвета. Для импорта настраиваемых плашечных цветов в формате Adobe Swatch Exchange (.ase) нажмите значок импорта на вкладке Плашечный цвет в окне выбора цвета. Сохраните Предустановленные цвета, выбрав цвет и нажав кнопку Добавить цвет. |
||
Выравнивание | Выровнять по левому краю | Выравнивание текста по левому краю текстового поля переменной. | |
По центру | Центрирование текста в текстовом поле переменной. | ||
Выровнять по правому краю | Выравнивание текста по правому краю текстового поля переменной. | ||
Угол | Угол наклона текстового поля | Задание угла наклона текстового поля переменной в градусах. | |
Заливка |
|
Установите флажок Заливка, чтобы включить заполнение фона выделенной текстовой переменной. Нажмите цвет заливки, чтобы изменить цвет фона в текстовом поле переменной.Примечание: Цвет может быть выбран с помощью CMYK, HSL, RGB, шестнадцатеричного значения, инструмента цветовой палитры или путем добавления настраиваемого плашечного цвета. Для импорта настраиваемых плашечных цветов в формате Adobe Swatch Exchange (.ase) нажмите значок импорта на вкладке Плашечный цвет в окне выбора цвета. Сохраните Предустановленные цвета, выбрав цвет и нажав кнопку Добавить цвет. |
|
Высота строки | Высота строки в текстовом поле | Управление высотой строки в текстовом поле. | |
Изображения | Положение | Расположите выбранное переменное изображение на мастер-странице, определяемое положением на осях X и Y. | |
Размер |
|
Управление размером переменного изображения. | |
Подобрать размер | Пропорционально | Использование исходных пропорций переменной изображения. | |
Растянуть | Растягивание переменной изображения для соответствия указанному размеру. Примечание: Эта настройка может исказить изображения. |
||
Сброс | Восстановление настроек изображения, импортированных из файла-источника данных. | ||
Угол | Угол изображения | Задайте угол изображения в градусах. | |
Штрихкоды | Переменная | НЕ ПРИМЕНИМО | Отображение имени переменной штрихкода. |
Положение | Изменение положения выбранной переменной штрихкода на мастер-странице. | ||
Размер |
|
Управление размером переменной штрихкода. Примечание: Это свойство доступно не для всех типов штрихкодов. |
|
Тип | Выберите один из доступных типов штрихкодов. | Установите тип штрихкода в соответствии с переменной штрихкода, содержащейся в файле-источнике данных. | |
Текст кода | НЕ ПРИМЕНИМО | Отображение текста, демонстрируемого вместе со штрихкодом. | |
Масштаб | Изменение масштаба переменной штрихкода на осях X и Y. |
Свойства и поля — Kotlin
Объявление свойств
Классы в Kotlin могут иметь свойства: изменяемые (mutable) и неизменяемые (read-only) — var и val соответственно.
public class Address {
public var name: String = ...
public var street: String = ...
public var city: String = ...
public var state: String? = ...
public var zip: String = ...
}
Для того, чтобы воспользоваться свойством, мы просто обращаемся к его имени (как в Java):
fun copyAddress(address: Address): Address {
val result = Address() // нет никакого слова `new`
result.name = address.name // вызов методов доступа
result.street = address.street
// ...
return result
}
Геттеры и сеттеры
Полный синтаксис объявления свойства выглядит так:
var <propertyName>: <PropertyType> [= <property_initializer>]
[<getter>]
[<setter>]
Инициализатор property_initializer, геттер и сеттер можно не указывать. Также необязательно указывать тип свойства, если он может быть выведен из контекста или наследован от базового класса.
Примеры:
var allByDefault: Int? // ошибка: необходима явная инициализация,
// предусмотрены стандартные геттер и сеттер
var initialized = 1 // имеет тип Int, стандартный геттер и сеттер
Синтаксис объявления констант имеет два отличия от синтаксиса объявления изменяемых переменных: во-первых, объявление константы начинается с ключевого слова val
вместо var
, а во-вторых, объявление сеттера запрещено:
val simple: Int? // имеет тип Int, стандартный геттер,
// должен быть инициализирован в конструкторе
val inferredType = 1 // имеет тип Int и стандартный геттер
Мы можем самостоятельно описать методы доступа, как и обычные функции, прямо при объявлении свойств. Например, пользовательский геттер:
val isEmpty: Boolean
get() = this.size == 0
Пользовательский сеттер выглядит примерно так:
var stringRepresentation: String
get() = this.toString()
set(value) {
setDataFromString(value) // парсит строку и устанавливает
// значения для других свойств
}
По договорённости, имя параметра сеттера — value
, но вы можете использовать любое другое.
Если вам нужно изменить область видимости метода доступа или пометить его аннотацией, при этом не внося изменения в реализацию по умолчанию, вы можете объявить метод доступа без объявления его тела:
var setterVisibility: String = "abc"
private set // сеттер имеет private доступ и стандартную реализацию
var setterWithAnnotation: Any? = null
@Inject set // аннотирование сеттера с помощью Inject
Теневые поля
Классы в Kotlin не могут иметь полей. Т.е. переменные, которые вы объявляете внутри класса только выглядят и ведут себя как поля из Java, хотя на самом деле являются свойствами, т.к. для них неявно реализуются методы get и set. А сама переменная, в которой находится значение свойства, называется теневое поле (backing field). Однако, иногда, при использовании пользовательских методов доступа, необходимо иметь доступ к теневому полю. Для этих целей Kotlin предоставляет автоматическое теневое поле, к которому можно обратиться с помощью идентификатора field
:
var counter = 0
set(value) {
if (value >= 0) field = value // значение при инициализации записывается
// прямиком в backing field
}
Идентификатор field
может быть использован только в методах доступа к свойству.
Теневое поле будет сгенерировано для свойства, если оно использует стандартную реализацию как минимум одного из методов доступа, либо если пользовательский метод доступа ссылается на него через идентификатор field
.
Например, в нижестоящем примере не будет никакого теневого поля:
val isEmpty: Boolean
get() = this.size == 0
Теневые свойства
Если вы хотите предпринять что-то такое, что выходит за рамки вышеуказанной схемы «неявного теневого поля«, вы всегда можете использовать теневое свойство (backing property):
private var _table: Map<String, Int>? = null
public val table: Map<String, Int>
get() {
if (_table == null) {
_table = HashMap() // параметры типа вычисляются автоматически
// (ориг.: "Type parameters are inferred")
}
return _table ?: throw AssertionError("Set to null by another thread")
}
Такой подход ничем не отличается от подхода в Java, так как доступ к приватным свойствам со стандартными геттерами и сеттерами оптимизируется таким образом, что вызов функции не происходит.
Константы времени компиляции
Свойства, значения которых известны во время компиляции, могут быть помечены как константы времени компиляции. Для этого используется модификатор const
. Такие свойства должны соответствовать следующим требованиям:
- Находиться на самом высоком уровне или быть членами объекта
object
- Быть проинициализированными значением типа
String
или значением примитивного типа - Не иметь переопределённого геттера
Такие свойства могут быть использованы в аннотациях:
const val SUBSYSTEM_DEPRECATED: String = "This subsystem is deprecated"
@Deprecated(SUBSYSTEM_DEPRECATED) fun foo() { ... }
Свойства с поздней инициализацией
Обычно, свойства, объявленные non-null типом, должны быть проинициализированы в конструкторе. Однако, довольно часто это неосуществимо. К примеру, свойства могут быть инициализированы через внедрение зависимостей, в установочном методе (ориг.: «setup method») юнит-теста или в методе onCreate
в Android. В таком случае вы не можете обеспечить non-null инициализацию в конструкторе, но всё равно хотите избежать проверок на null при обращении внутри тела класса к такому свойству.
Для того, чтобы справиться с такой задачей, вы можете пометить свойство модификатором lateinit
:
public class MyTest {
lateinit var subject: TestSubject
@SetUp fun setup() {
subject = TestSubject()
}
@Test fun test() {
subject.method() // объект инициализирован, проверять на null не нужно
}
}
Такой модификатор может быть использован только с var
свойствами, объявленными внутри тела класса (не в основном конструкторе, и только тогда, когда свойство не имеет пользовательских геттеров и сеттеров) и, начиная с Kotlin 1.2, со свойствами, расположенными на верхнем уровне, и локальными переменными. Тип такого свойства должен быть non-null и не должен быть примитивным.
Доступ к lateinit
свойству до того, как оно проинициализировано, выбрасывает специальное исключение, которое чётко обозначает, что свойство не было определено.
Проверка инициализации lateinit var (начиная с версии 1.2)
Чтобы проверить, было ли проинициализировано lateinit var
свойство, используйте .isInitialized
метод ссылки на это свойство:
if (foo::bar.isInitialized) {
println(foo.bar)
}
Эта проверка возможна только для лексически доступных свойств, то есть объявленных в том же типе, или в одном из внешних типов, или глобальных свойств, объявленных в том же файле.
Переопределение свойств
См. Переопределение членов класса
Делегированные свойства
Самый распространённый тип свойств просто считывает (или записывает) данные из теневого поля. Тем не менее, с пользовательскими геттерами и сеттерами мы можем реализовать совершенно любое поведение свойства. В реальности, существуют общепринятые шаблоны того, как могут работать свойства. Несколько примеров:
- Вычисление значения свойства при первом доступе к нему (ленивые свойства)
- Чтение из ассоциативного списка с помощью заданного ключа
- Доступ к базе данных
- Оповещение listener’а в момент доступа и т.п.
Такие распространённые поведения свойств могут быть реализованы в виде библиотек с помощью делегированных свойств.
Бурдьё П. Некоторые свойства полей
Синхронически поля выступают как структурированные пространства позиций (или точек), свойства которых определяются их расположением в этих пространствах и которые можно анализировать независимо от характеристик тех, кто их занимает (и кто отчасти определяется этими позициями)[1][2]. Для них характерны некоторые общие правила: несмотря на все свои различия, поле политики, поле философии или религии, имеют инвариантные законы функционирования. Это указывает на то, что создание некой общей теории уже не является чем-то безрассудным, и что отныне мы можем использовать то, что мы узнаем о функционировании каждого отдельного поля, для исследования и интерпретации других полей, преодолевая, таким образом, губительную антиномию между узким монографическим исследованием и формальной и пустой теорией. Всякий раз, когда мы исследуем новое поле, будь то поле филологии ХIХ века, современной моды или средневековой религии, мы открываем специфические особенности, свойственные каждому отдельному полю, и одновременно накапливаем знания об универсальных механизмах полей, которые специфицируются в зависимости от вторичных переменных признаков. Например, переменные, наблюдаемые в разных государствах, функционируют таким образом, что такие универсальные механизмы, как борьба между доминирующими и претендентами на их места, принимает различные формы. Но нам также известно, что в любом поле мы обнаружим борьбу, для которой каждый раз необходимо понять ее специфические формы: между новичками, пытающимся разрушить препятствия, предполагаемые правом входа, и доминирующими, пытающимися защитить монополию и исключить конкуренцию.
Любое поле — будь то научное или какое-нибудь другое — определяется, помимо всего прочего, через определение ставок [игры] и специфических интересов, несводимых к ставкам и интересам, свойственным другим полям (невозможно заставить философа участвовать в гонке со ставками географии), и воспринимаемых только теми, кто самой судьбой был предназначен для вхождения в это поле. Каждая категория интереса предполагает безразличие в отношении других интересов и других инвестиций, обреченных таким образом на то, чтобы восприниматься как абсурдные и безумные или как возвышенные и незантересованные. Чтобы такое поле функционировало, необходимо наличие ставок и индивидов, готовых играть в эту игру, а также обладающих габитусом, содержащим в себе знание и признание имманентных правил игры, ставок и т. п.
Габитус филолога есть вместе с тем некое «ремесло», набор техник и ориентиров, совокупность «верований» (например, привычка придавать заметкам такое же значение как и текстам). Это еще и свойства, связанные с историей дисциплины (национальной и мировой), с ее позицией (промежуточной) в иерархии дисциплин. Данные свойства одновременно являются и условием функционирования поля и продуктом его функционирования, однако не полностью: поле может довольствоваться одобрением и освящением определенного типа габитуса, более или менее полно сформированного помимо него.
Структура поля есть состояние соотношения сил между агентами или институтами, вовлеченными в борьбу, или, если хотите, распределение специфического капитала, который, являясь результатом предшествующей борьбы, направляет последующие стратегии. Эта структура, лежащая в основании стратегий, направленных на ее трансформацию, сама постоянно вовлечена в игру. Основной ставкой борьбы, местом которой является поле, выступает монополия на легитимное насилие (специфическую власть), которая является отличительным свойством рассматриваемого поля. То есть, в конечном счете, основной ставкой борьбы служит сохранение или разрушение структуры распределения специфического капитала. (Говорить о специфическом капитале — значит утверждать, что капитал имеет ценность, лишь находясь в отношении с некоторым полем, а, следовательно, в пределах этого поля, и что лишь при определенных условиях он обратим в другой тип капитала. Достаточно, к примеру, вспомнить о неудаче Кардена, который захотел перенести в область высокой культуры капитал, накопленный в области высокой моды: последний из критиков искусства счел своим долгом утвердить свое структурное превосходство как члена некоторого структурно более легитимного поля, утверждая, что все что делал Карден в отношении легитимного искусства было отвратительным, навязывая таким образом его капиталу заведомо максимально низкий обменный курс.)
Те, кто в определенной системе соотношения сил монополизируют (более или менее полно) специфический капитал, основу власти или специфического авторитета, свойственного полю, склонны к стратегиям сохранения — стратегиям, которые в полях производства культурных благ стремятся к защите ортодоксии, — в то время как держатели, наделенные меньшим капиталом (часто являющиеся новичками, и как следствие, в большинстве своем самые молодые) склонны к стратегиям разрушения, т. е стратегиям ереси. Эта ересь, гетеродоксия, понимаемая как критический разрыв с доксой, часто связанный с кризисом, выводит доминирующих из состояния молчания и вынуждает их выступать в защиту ортодоксии, мышления здравого [pensée droite] и с права [de droite], для восстановления молчаливого согласия с доксой.
Другое, уже менее заметное свойство поля. Все индивиды, вовлеченные в поле, объединены некоторым общим набором фундаментальных интересов, а именно тех, что связаны с существованием самого поля. Отсюда следует объективное соучастие, подразумеваемое в любом противостоянии. Часто забывают, что борьба предполагает определенное согласие между антагонистами по поводу того, чтó заслуживает борьбы и чтó оказывается вытесненным в сферу «само собой разумеющегося» и оставленным в состоянии доксы. Иными словами, речь идет всем том, что конституирует собственно поле, игру, ставки, всевозможные допущения, которые принимают неявно, даже не зная о них, уже в силу самого факта включения в игру и участия в ней. Те, кто вовлечен в борьбу, способствуют ее воспроизводству, содействуя более или менее полно в зависимости от поля, производству веры в ценность ее ставок. Новички должны оплатить свое право входа, состоящее в признании ценности игры (в ходе отбора и кооптации всегда большое внимание уделяется знакам приверженности игре и инвестициям в нее) и в практическом знании принципов ее функционирования. Они обречены на разрушающие стратегии, которые, тем не менее, ввиду угрозы исключения, остаются в пределах определенных границ. В действительности частичные революции, местом которых постоянно является поле, не ставят под вопрос сами основы игры, ее фундаментальную аксиоматику, основу предельных верований, на которых зиждется вся игра. Напротив, в полях культурного производства , в поле религии, литературы, искусства критическое ниспровержение оправдывает себя через обращение к истокам, к началу, к разуму, к сути игры, выступая против банализации и искажений, объектом которых оказывается эта игра. (Один из факторов, предохраняющих различные игры от тотальных революционных потрясений, способных разрушить не только доминирующих и их власть, но и саму игру — это, как раз, необходимость инвестиций — времени, сил и т. п., — что само по себе предполагает вхождение в игру и что, как испытания ритуалов инициации, способствует тому, чтобы сделать немыслимым на практике полное и окончательное разрушение игры. Именно таким образом оказались спасены целые культурные области — в присутствии филологов невозможно не упомянуть филологию — благодаря цене, которую предполагает накопление знаний, необходимых даже для разрушить их формы.)
Через практическое знание принципов игры, которое негласно требуется от новичков, в каждом акте игры присутствует вся ее история и все ее прошлое. И не случайно одним из наиболее верных признаков конституирования поля, помимо присутствия в произведении следов объективной связи с другими произведениями, прошлыми или настоящими, является возникновение корпуса консерваторов жизней (биографов) и произведений (филологов, историков искусства и литературы). Они начинают архивировать эскизы, наброски, рукописи, «исправлять» (право на «исправление» есть легитимное насилие со стороны филолога) и расшифровывать их — те, кто связан с консервацией всего, что производится в поле, и кто заинтересован в том, чтобы сохранять и быть сохраненным самим. Другим показателем функционирования отдельного пространства в качестве поля являются присутствие следов истории поля в самом произведении (и даже в жизни производителя). В качестве доказательства от противного следовало бы проанализировать историю отношений между так называемыми наивными (т. е. попавшими в поле как бы по недосмотру, не заплатив за право входа, уйдя от пошлины) художниками, например, таможенником Руссо, и современными ему художниками Жарри[3], Аполлинер или Пикассо, которые играют (в полном смысле этого слова — при помощи всякого рода трюков, более или менее добродушных) с тем, кто не умеет играть в игру, кто мечтает в эпоху футуризма и кубизма творить как Бугеро[4] или Бонна[5], и кто ломает игру, не желая этого, по крайней мере не зная об этом, как собака в игре в кегли, пребывая в полном неведении, в противоположность Дюшану или даже Сати[6], владеющим логикой поля настолько, чтобы противостоять ей и одновременно ее использовать. Необходимо также проанализировать историю последующих интерпретаций произведения, которая — в пользу сверхинтерпретации — ранжируют его, т. е. вводит в историю, стремясь сделать из художника-любителя сознательного и вдохновенного революционера. Эстетика его живописи, например, грубая фронтальность портретов, аналогична той, что реализуют в своих фотографиях представители народных классов.
Эффект поля проявляется в том, что мы не можем понять произведение (и его значение, т. е. веру, которой его наделяют) без знания истории поля, где оно произведено. Именно это оправдывает существование критиков, комментаторов, интерпретаторов, историков, семиологов и других представителей филологии в качестве единственно способных придать значение произведению и признать ценность, объектом которой оно является. Социология искусства или литературы, которая соотносит произведения искусства непосредственно с позицией производителей или потребителей в социальном пространстве (социальном классе), не учитывая их положения в поле производства («редукция», в крайнем случае просительная лишь для «наивных»), неявно скрывает все то, чем оно обязано полю и его истории, т. е. именно то, что делает из него произведение искусства, науки или философии. Легитимная философская (научная и т. п.) проблема есть проблема, которую философы (ученые и т. п.) признают (в двойном значении этого слова) как таковую (поскольку она вписана в логику истории поля и в их собственные диспозиции, исторически сформировавшиеся в и для поля), и которая, в силу специфического авторитета, признаваемого за ней, имеет все шансы быть признанной в качестве легитимной. В данном случае пример «наивных» очень показателен. Это люди, которые, в силу устоявшейся проблематики, о которой они ничего не знают, оказываются в позиции художников или писателей, к тому же революционных. В качестве примера можно указать на вербальные ассоциации Жана-Пьера Бриссе[7]. Его долгие ряды словесных уравнений, аллитерации и всяческий вздор, предназначавшийся им для научных обществ и академических конференций, так и остались бы вымыслами сумасшедшего, какими они и представлялись вначале, если бы «патафизика» Жарри, каламбуры Аполлинера и Дюшана, автоматическое письмо сюрреалистов, не создали проблематику, по отношению к которой — в силу погрешности поля — все это приобретало смысл. Эти поэты-объекты и художники-объекты, эти объективные революционеры позволяют проследить, на отдельном примере, способность поля к преобразованию. Эта способность оказывает влияние (хотя она менее заметна и более обоснована) на произведения профессионалов, которые, зная игру, т. е. ее историю и ее проблематику, знают (хотя это вовсе не означает, будто они циничны), что они делают. Так что необходимость, которую в легитимной проблематике обнаруживает сакрализующее чтение, не кажется настолько очевидным результатом объективного случая (каковой она также и такой же мере является, поскольку предполагает чудодейственную гармонию между философской диспозицией и состоянием ожиданий, вписанных в поле). Хайдеггер — это по большей части Шпенглер или Юнгер, прошедшие через реторту философского поля. Он говорит очень простые вещи: техника — упадок Запада, со времен Декарта все идет от плохого к худшему и т. п. Поле или, точнее, габитус профессионала, заведомо приспособленный к требованиям поля (например, к действующим определениям легитимной проблематики), будет функционировать как инструмент перевода: быть «консервативным революционером» в философии означает революционизировать образ кантовской философии, показывая, что в истоках этой философии, которая представлена как критика метафизики, лежит метафизика. Такого рода систематическая трансформация некоторых проблем и тем не является результатом сознательного поиска (рассчитанного и циничного), но есть автоматический эффект самого факта принадлежности к полю и освоения специальной истории, которые она [трансформация] предполагает. Быть философом — значит овладеть тем, чем необходимо овладеть из истории философии, чтобы уметь вести себя как философ в поле философии.
Еще раз подчеркну тот факт, что принципом философских стратегий (литературных и др.) является не циничный расчет, не сознательный поиск максимизации специфической прибыли, но бессознательное отношение между габитусом и полем. Стратегии, о которых я говорю, являются действиями, объективно ориентированными на некоторые цели, которые могут и не выступать как субъективно осознанные. В этом смысле теория габитуса направлена на создание условий возможности науки о практиках, отказавшейся от альтернативы финализма и механицизма. (Термин «интерес», который я употреблял несколько раз, также представляется весьма опасным, поскольку ассоциируется с утилитаризмом, этой нулевой степенью социологии. Иными словами, социология не может обойтись без аксиомы интереса, понятого как специфические инвестиции в ставки, который выступает одновременно и условием и результатом принадлежности полю.) Габитус — система диспозиций, приобретаемых в процессе имплицитного или эксплицитного обучения, которая функционирует как система производящих схем — есть генератор стратегий, которые могут объективно соответствовать объективным интересам их авторов, при этом не являясь специально для этого предназначенными. Необходимо провести полный процесс перевоспитания, чтобы избежать альтернативы между наивным финализмом (который мог бы, например, написать, что «революция», приводящая Аполлинера к смелым нововведениям в стихотворении «Понедельник улица Кристин»[8] и другим поэтическим ready made, была вызвана желанием встать во главе движения, намеченного Сандраром[9], футуристами или Делоне[10]), так и объяснениями механистического типа (которые рассматривали бы эту трансформацию как обычный и непосредственный результат социальных детерминаций). Поскольку достаточно лишь позволить своему габитусу подчиняться имманентной необходимости поля и удовлетворять вписанным в него [поле] требованиям (что в любом поля составляет определение совершенства), агенты абсолютно не осознают, что подчиняются каким-то обязательствам и еще менее того, что они стремятся максимизации прибыли (специфической). Таким образом они получают дополнительную выгоду воспринимать себя и быть воспринимаемыми как совершенно незаинтересованные[11].
Перевод с французского Ю.В. Марковой
[1] Сообщение сделано в Высшей Нормальной школе в ноябре 1976, по инициативе группы филологов и историков литературы.
[2] Перевод выполнен по Bourdieu Pierre, Quelques propriétés des champs // Questions de sociologie. Paris: Editions de Minuit, 1984. P. 113—120).
[3] Жарри, Альфред (1873—1907), французский писатель. Приобрёл известность гротескно-комическим фарсом «Юбю-король» (1896). Экспериментальное творчество Жарри, проникнутое духом отрицания, оказало влияние на Г. Аполлинера, Л. Арагона и др. — Прим.пер.
[4] Бугеро, Вильям (1825—1905) — французский академический художник.
[5] Бонна, Леон Жозеф Флорантен (1833—1922), французский живописец и коллекционер. Бонна писал картины на исторические сюжеты и парадные портреты. В 1905 возглавил Школу изящных искусств. — Прим. пер.
[6] Сати, Эрик Альфред Лесли (1866—1925), французский композитор. Сати поддерживал новаторские начинания «Шестёрки», в начале 20-х гг. вокруг него сгруппировались молодые французские музыканты так называемой Аркейской школы. Творческие принципы и эстетические воззрения Сати были неустойчивы: он то поддерживал импрессионизм, то нападал на его эпигонов, противопоставляя импрессионизму простоту, строгость линеарного письма. Лучшее сочинение Сати — симфоническая драма с голосом «Сократ» (на текст диалогов Платона, 1918). — Прим. пер.
[7] Бриссе, Жан-Пьер (1837—1923, по одним источника, 1845- после 1913, по другим) — французский литератор, маргинал и чудак. Его книги были высокого оценены сюрреалистами, Фуко, Делезом, Кено. — Прим. пер.
[8] «Улица Кристин» — стихотворение Г. Аполлинера, записанное на салфетках в кафе на улице Кристин, в виде обрывков только что услышанных и не связанных между собой мимолетных фраз. — Прим. пер.
[9] Сандрар, Блез (наст. имя Фредерик Луи Заузер, 1887—1961) — французский авангардный поэт и прозаик. Стремился создать социально насыщенный лирический эпос (поэмы «Пасха в Нью-Йорке», 1912; «Проза транссибирского экспресса и маленькой Жанны Французской», 1913). Сандрар отдал дань кубизму («Девятнадцать эластических стихотворений», 1919) и другим авангардистским течениям, но наряду с Г. Аполлинером явился одним из основателей «поэтического реализма» 20 в. — Прим. пер.
[10] Делоне, Робер (1885—1941), французский художник, создатель стиля «орфизм». (прим.пер.)
[11] Об этом дополнительно см. в: P. Bourdieu, Le couturier et sa griffe. Contribution à une théorie de la magie // Actes de la recherche en sciences sociales. №1. 1975. P. 7—36; L’ontologie politique de Martin Heidegger // Actes de la recherche en sciences sociales. №5—6. 1975. P. 109—156; Le sens pratique. Paris: Editions de Minuit, 1980 (русский перевод: Бурдьё П. Практический смысл. Пер. с франц. А.Т. Бикбова, Е.Д. Вознесенской, С.Н. Зенкина, Н.А. Шматко / Отв. ред. пер. и послеловие Н.А. Шматко. М.: Институт экспериментальной социологии; СПб.: Алетейя, 2000).
Свойства полей. HTML, XHTML и CSS на 100%
Читайте также
Типы полей ввода
Типы полей ввода В HTML5 стало намного больше вариантов атрибута type элемента input. Здесь нужно заасфальтировать столько тропок, что это похоже на строительные работы после того, как по лесу в панике пробежала толпа
Стили для полей и подписей
Стили для полей и подписей Первые фрагменты CSS, которые мы добавим, чтобы начать построение этой формы, будут обрабатывать элементы fieldset и label – лишь немного пространства между строками.#thing-alerts fieldset { margin: 0 0 10px 0; }#thing-alerts label { display: block; font-weight: bold; line-height: 1.4; color: #666; color: rgba(0, 0, 0,
Расчет полей
Расчет полей Базовая сетка важна для расчета полей – точно рассчитанных горизонтальных областей страницы, помогающих в размещении сгруппированных элементов вдоль вертикальной оси. Поля могут быть полезны для расчета места, которое понадобится для размещения знака
10.8.5 Общепринятое использование полей
10.8.5 Общепринятое использование полей При подготовке заголовка TCP к пересылке порядковый номер первого октета передаваемых данных указывается в поле последовательного номера (Sequence Number).Номер следующего октета, ожидаемого от партнера по соединению, заносится в поле
Свойства, доступные только для чтения, и свойства, доступные только для записи
Свойства, доступные только для чтения, и свойства, доступные только для записи При создании типов класса можно создавать свойства, доступные только для чтения. Для этого просто создайте свойство без соответствующего блока set. Точно так же, если вы хотите иметь свойство,
Отображение полей и свойств
Отображение полей и свойств Реализация ListFields() будет аналогичной. Единственным отличием будет вызов Type.GetFields(), а результирующим массивом будет FieldInfo. Для простоты мы печатаем только имена полей.// Отображение имен полей типа.public static void ListFields(Type t) { Console.WriteLine(«***** Поля
Определение полей данных
Определение полей данных Перечни, структуры и классы могут поддерживать поля данных. Во всех случаях для указания таких полей используется директива. field. Например, чтобы добавить немного сути в каркас MyEnum, давайте определим для него три пары имен и значений (заметьте, что
Разрешение автоприращения для полей
Разрешение автоприращения для полей Одной из возможностей DataColumn, которая может Вам понадобиться, будет возможность автоприращения. Автоприращение используется для того, чтобы при добавлении новой строки столбцу автоматически присваивалось значение, вычисленное на
Использование полей
Использование полей Поля в Word – это не только пустое пространство, отделяющее текст от края страницы. Существуют так называемые активные поля – особые участки, содержащие изменяемую информацию. Поля существенно упрощают работу, а иногда и выполняют операции, без них
11.1.4. Индексация полей
11.1.4. Индексация полей При работе с командой sort не следует забывать, что команда обращается к первому полю как к полю 0, следующее поле имеет номер 1 и т. д. Если номера полей не указаны, вся строка считается единым полем. Обратимся к тестовому файлу и уточним, каким образом
11.4.1. Задание разделителя полей
11.4.1. Задание разделителя полей В качестве входного файла мы возьмем файл pers из предыдущего примера, только на этот раз поля в нем будут разделены двоеточием.$ cat persP. Jones:Office Runner:ID897 S. Round:UNIX admin:ID667 L. Clip:Personl Chief:ID982Предположим, необходимо извлечь из файла список
11.5.2. Выбор разделителя полей
11.5.2. Выбор разделителя полей Если требуется создать выходной файл, в котором разделителем полей будет какой?то другой символ вместо табуляции, воспользуйтесь опцией -d. В приведенном ниже примере строки объединяемых файлов разделяются двоеточием:$ paste -d: pas2 pas1P. Jones:ID897 S.
Инициализаторы полей
Инициализаторы полей При создании объекта его поля инициализируются автоматически нулевыми значениями если они не инициализированы явно. Их инициализация может проводиться как в конструкторе, так и непосредственно при описании. Инициализация поля при описании
Свойства полей
У каждого поля есть ряд параметров. Рассмотрим их подробнее.
Название — название поля, отображаемого при добавлении/редактировании объекта сайта.
Идентификатор — при помощи него мы можем вывести значение поля на сайт. В TPL-шаблонизаторе для вывода значения поля, можно записать его в виде %identifikator% и вставить либо в шаблон либо на страницу сайта (таким же образом его можно использовать в качестве параметров для других макросов).
Примечание: поля с одинаковым идентификатором будут считаться одним и тем же полем и иметь одно и то же значение.
Подсказка — информация, введенная в это поле, будет показана в административной части рядом с самим полем при наведении на заголовок поля.
Тип — позволяет выбрать необходимый тип поля из выпадающего списка. Все типы полей описаны на странице «Типы полей».
Формат значения — для некоторых типов полей позволяет выбрать способ проверки данных, вводимых в дальнейшем в это поле. В случае, если значение не проходит проверку по указанному способу, будет выдана ошибка и запрос на повторный ввод данных.
Справочник — справочник используется только в тех видах полей, где присутствует список. Таких типов два: выпадающий список и выпадающий список с множественным выбором. Читайте о создании и назначении справочника в этих топиках.
Видимое — влияет на видимость поля в TPL шаблонизаторе, а так же добавляет полю атрибут visible в xml (для XSLT шаблонизатора).
Обязательное — поставьте эту галочку, если необходимо, чтобы это поле стало обязательным к заполнению. При отправке такое поле будет проверяться и в случае, если оно не будет заполнено, будет выдаваться ошибка.
Индексируемое — при отмеченном флажке поле будет включено в результаты поиска. При снятом флажке данное поле в результатах поиска учитываться не будет.
Фильтруемое — при отмеченном флажке посетитель сайта будет иметь возможность искать объект, используя фильтрацию по этому полю.
Важное — влияет на отображение поля на страницах редактирования элементов в новом дизайне административной панели. При нажатии на иконку «Скрыть расширенные поля» будут отображены только поля с пометкой «Важное».
Системное — влияет на отображения поля на страницах редактирования элементов. Если стоит этот флаг, то поле будет не доступно для редактирования через админку.
Свойства поля базы данных
Когда вы добавляете новые поля в свою базу данных, у вас есть ряд опций, из которых вы можете выбирать для каждого поля.
Добавить или изменить поле
Чтобы добавить или изменить поле:
Щелкните меню администратора
Разверните тему «Настройка базы данных» в левом меню
Выберите вариант настройки таблицы и поля
Выберите таблицу, которую вы хотите изменить
Нажмите кнопку «Новое поле», чтобы добавить новое поле, или
.Дважды щелкните имя существующего поля, чтобы изменить его свойства
Затем вы увидите диалоговое окно «Свойства поля»:
Тип поля
Очень важно выбрать правильный тип поля для типа данных, которые вы будете хранить в этом поле.Возможные варианты:
Boolean: Используйте это для данных «Да / Нет» или «Истина / Ложь» — это может быть только одно или другое. Логические поля отображаются в виде флажков в окне ввода данных.
Дата: если вы хотите сохранить информацию о датах, например о днях рождения, датах выпуска продукта и т. Д., Вам следует использовать поле «Дата», а не вводить даты в текстовое поле. Таким образом, вы сможете выполнять поиск (например) по датам после 1 января 2007 г. или датам до определенной даты, а также сортировать записи по дате.
Целое число: целое число (без десятичных знаков) в диапазоне ± 2 147 483 647. ПРИМЕЧАНИЕ. Если вы, вероятно, введете числа больше ± 2 147 483 647, используйте поле Real.
Реальный: число, которое содержит десятичные разряды в диапазоне ± 1,7E ± 308.
Строка: короткое текстовое поле. Строковые поля ограничены 255 символами и должны использоваться для данных, которые вы хотите отсортировать или запросить.
Текст: большое текстовое поле.Текстовые поля могут содержать до 2 ГБ текста и поэтому полезны для таких данных, как описания продуктов (см. Сравнительную таблицу для полей String и Text ниже)
Время: как и поля даты, поля времени предназначены для хранения данных определенного типа, чтобы вы могли выполнять поиск и сортировку по этому типу данных.
Имя поля
Введите описательное имя для поля. Имена полей не могут содержать определенные символы, например тире и косой черты. Они могут содержать числа и символы подчеркивания.
Обратите внимание, что имена полей не чувствительны к регистру: у вас может быть поле под названием «Имя», и оно все равно будет соответствовать ОК с
столбец с заголовком «имя» в импортируемом файле.
Размер поля
Для строковых полей измените размер поля (количество символов, которое оно может содержать), если хотите. Это ограничит количество символов, которые можно ввести в поле, и при импорте данных они будут усечены, если они будут слишком длинными для указанной длины поля.
проиндексировано
Индексированные поля быстрее ищут и сортируют. Не все типы полей можно проиндексировать.
Имя изображения
Эта опция доступна для строковых и текстовых полей. Если вы обозначите поле как поле имени изображения, оно будет доступно в качестве опции для публикации данных при создании элемента изображения в таблице стилей публикации. Кроме того, у него будут дополнительные параметры, доступные в формах ввода данных: вы можете щелкнуть правой кнопкой мыши поле изображения, выбрать изображение и предварительно просмотреть указанное изображение.
Прописные
Всегда переводить данные в этом поле в верхний регистр (полезно для таких данных, как почтовые индексы). Доступно только для строковых и текстовых полей.
Строчные
Всегда переводить данные в этом поле в нижний регистр (полезно для таких данных, как адреса электронной почты).
Доступно только для строковых и текстовых полей.
Уникальный
Разрешить только уникальные данные в этом поле. Уникальное поле должно быть проиндексировано. Доступно не для всех типов полей.Примечание — уникальность применяется только в пределах этой таблицы.
Обязательно
Если выбрана эта опция, значение ДОЛЖНО быть введено в поле для каждой записи, в противном случае запись не может быть сохранена.
Список выбора
Также известный как список выбора, его опция доступна только для строковых полей. Список выбора — это список опций, доступных для выбора для поля, например, названия стран, приветствия («Мистер», «Госпожа», «Госпожа» и т. Д.). Их цель — обеспечить последовательность ввода данных.Когда вы выбираете эту опцию, отображение немного меняется:
Выберите список выбора во всплывающем меню или создайте новый список, нажав кнопку «Новый список». Когда создается новый список выбора, он не содержит никаких опций. Есть два способа добавить новые опции:
При вводе данных вы можете ввести новую опцию в поле. CatBase спросит вас, хотите ли вы добавить его в список выбора. (Доступно только при наличии прав администратора).
Перейдите в меню администратора, разверните параметр «Списки» в левой части окна и выберите список, который нужно отредактировать. Затем вы можете добавлять, редактировать и удалять параметры в списке.
Удалить гремлины
«Гремлины» — это вымышленные персонажи, которые могут проникнуть в ваши данные и вызвать разного рода хаос. Большинство из них — непечатаемые символы, которые вообще не отображаются на экране, выглядят как маленькие прямоугольники или причудливые символы. Их любимые способы проникнуть внутрь — это случайно набрать странную комбинацию клавиш или скопировать и вставить данные из электронных писем или текстовых документов.Выберите эту опцию, и всякий раз, когда поле будет изменено, программа будет проверять наличие гремлинов и удалять все найденные. Доступно только для строковых и текстовых полей.
Проверить орфографию
Выберите этот параметр, чтобы автоматически запускать проверку орфографии при изменении поля. Вы можете указать язык средства проверки орфографии в настройках (в меню администратора). Доступны следующие языки: английский, французский, немецкий, норвежский и испанский.
закрыто
Обозначьте поле как заблокированное, и после сохранения новой записи это поле нельзя будет редактировать, если у пользователя нет прав администратора.
Включить в быстрый поиск
Если это поле, в котором вы хотите часто выполнять поиск (например, имя или, возможно, номер телефона или адрес электронной почты), выберите эту опцию. Затем это поле будет включено в поиск, когда вы введете что-то в поле быстрого поиска при отображении данных этой таблицы. (Поле быстрого поиска появляется справа от панели кнопок в окне просмотра списка данных.)
Многостильный текст
Если этот параметр выбран для поля String или Text, вы сможете выбрать стиль текста, и он будет отображаться в стиле WYSIWYG.Например, вот поле описания продукта, в котором были выбраны различные стили текста:
Для стилизации текста:
Выберите текст для стиля
Щелкните правой кнопкой мыши / щелкните, удерживая клавишу Ctrl, текст
Выберите желаемые стили во всплывающем меню:
Запуск сценария при изменении
Сценариимогут быть написаны для выполнения всех видов полезной работы от простых функций, таких как расчет налогов, до сложных функций, таких как отправка электронной почты или письма.Свяжитесь с нами для получения дополнительной информации о скриптах.
Значение по умолчанию
Вы можете ввести значение, которое будет применяться к полю при создании новой записи.
Предположим, например, что у вас есть поле для «Тип объявления», и это обязательное поле. Каждый новый листинг будет иметь тип «Базовый», если только они не решат платить за расширенный листинг. Таким образом, вы можете выбрать вариант «Значение по умолчанию» и ввести «Базовый» в текстовую область. Теперь для каждой новой записи будет выбран параметр «Базовый», если он не будет изменен.
Справка
Help Tips — это маленькие желтые текстовые поля, которые появляются, когда вы наводите указатель мыши на определенные области экрана. Вы можете создавать собственные подсказки для своих полей — просто введите подсказку в эту текстовую область. (Примечание: если подсказки справки не отображаются на экране, измените свою запись пользователя и установите флажок «Показать подсказки».)
Информация о поле
Наконец, внизу окна есть текстовое поле. Для полей, используемых системой, таких как даты ввода и изменения, будет отображаться комментарий, который нельзя изменить.Для пользовательских полей вы можете ввести здесь комментарий, чтобы напомнить себе, для чего это поле будет использоваться. Этот комментарий не будет использоваться в программе — он только для справки.
Свойства поля доступа и первичный ключ
MS-Access / Начало работыПри работе с данными в таблицах вы можете столкнуться с ситуациями, когда требуется ограничить данные или придерживаться некоторых спецификаций по умолчанию в определенные столбцы. Вы можете определить эти требования, используя свойства поля.
Свойства поля, помимо прочего, влияют на способ хранения и представления данных. Список доступных вам свойств поля зависит от по типу данных, выбранному для этого поля. Некоторые свойства поля относятся к текстовым полям, а другие — к числовым полям. Поле свойства можно найти в представлении «Дизайн». Щелкая каждое поле, вы увидите свойства этого поля.
Некоторые из наиболее важных свойств поля, на которые следует обратить внимание:
Размер поля:
Вы уже сталкивались со свойством Размер поля раньше, когда работали с числовым типом данных.Это свойство также существует для общий тип данных Text. Это позволяет вам установить максимальный размер данных, вводимых в этот столбец. Для типа данных Text размер относится к длине (количеству символов и пробелов) текстовых данных в этом столбце. Например, глядя на таблицу сотрудников, вы видите поле для состояния. Ваша фирма сообщает вам, что названия штатов следует записывать, используя их двухбуквенные обозначения. Если вы установите размер поля до 2 для столбца Состояние, пользователь не сможет вводить текст, длина которого превышает два символа.Итак, с Access вы не только возможность принудительно указать определенный тип данных в определенном столбце, вы также можете настроить этот отдельный столбец для приема данных только в жесткий формат, который вы укажете.Формат:
Это свойство позволяет вам установить точный способ, которым Access отображает или печатает данные, которые находятся в его таблицах. Как и в случае с размером поля, доступный для выбора формат зависит от типа данных этого столбца. Например, с полем «Валюта» вы может отображать данные в форме со знаком доллара, евро или вообще без знака.Сами данные не будут изменены с этими настройками, просто как данные отображаются. Еще одна очень полезная функция формата — работа с типами данных Дата / Время. Если вы хотите отобразить данные в длинном или коротком формате, это свойство позволяет вам установить эту опцию.Маска ввода:
Эта функция может быть полезна при вводе данных. Где Формат контролирует способ отображения данных, Маска ввода контролирует как данные вводятся в определенное поле. Маска ввода доступна для следующих типов данных: текст, число, дата / время и валюта.Например, если пользователю нужно ввести номер телефона, маска ввода может создать символы и структуру, с помощью которых вы все знакомы. По мере ввода пользователем номер автоматически принимает формат номера телефона: (###) ### — ####.Десятичных знаков:
В числовых полях вы можете установить количество десятичных знаков справа от десятичной точки, которое будет записано. Существует настройка «Авто», которая зависит от настройки «Формат» для определения правильного количества разрядов.Помимо Авто, вы можете выберите количество знаков после запятой от 0 до 15.Значение по умолчанию:
Важная концепция базы данных, значение по умолчанию может помочь сэкономить время в процессе ввода данных. Значение по умолчанию — автоматически помещается в этот столбец каждый раз при добавлении новой записи. Значения по умолчанию можно переопределить, поэтому столбец не будет принудительным. иметь только эту конкретную ценность.Требуется:
Еще одно важное свойство, Требуется, просто заставляет пользователя вводить какое-либо значение, используя правильный тип данных, в указанном поле.Новая запись не будет добавлена, если обязательное поле не заполнено должным образом. Как и в случае с маской ввода, это свойство отлично механизм для утверждения большего контроля над процессом ввода данных.
Первичный ключ
Ранее, при разработке таблицы, вы задавали три вопроса, чтобы определить, как должна быть создана ваша новая таблица. Третий вопрос уточнен что вам нужен способ идентифицировать или ссылаться на каждую запись. Должен быть какой-то уникальный текстовый или числовой столбец, в котором не будет повторяющихся значений.Одним из примеров этого является список номеров социального страхования. У каждого человека есть один и только один уникальный номер социального страхования. По определению, вы не можете иметь номер социального страхования, который соответствует двум людям. Этот уникальный столбец — это то, что вы называете первичным ключом, и это механизм, с помощью которого вы связать разные таблицы друг с другом.
Чтобы установить первичный ключ, щелкните правой кнопкой мыши выбранное поле и выберите Первичный ключ. Когда вы его устанавливаете, Access автоматически определяет, поле имеет любые нулевые (или пустые) значения или повторяющиеся данные (дублирование данных в нескольких записях для одного поля).Если есть пробелы или дубликаты, Access сообщит вам об ошибке. Вы должны заполнить пробелы уникальными значениями и удалить все дубликаты, если этот столбец действительно стать первичным ключом для таблицы.
Access предоставляет собственный автоматический первичный ключ с типом данных AutoNumber. AutoNumber просто увеличивает на единицу для каждой добавленной записи, поэтому дубликатов не будет. Однако предпочтительно использовать фактические данные для первичного ключа, а не просто какое-то число, которое указывает положение записей в таблице.
Если у каждого сотрудника есть уникальный номер сотрудника, это идеальный вариант для первичного ключа. Если у вас есть ситуация, когда нет единственного уникального столбца, рассмотрите используя комбинацию столбцов, которые вместе составляют уникальную запись. Вы можете установить несколько столбцов в качестве первичного ключа; это называется составным ключом. Это приводит к объединению отдельных столбцов для представления одного уникального значения.
Свойства динамического поля | Справочный центр GoFormz
Функция динамических свойств поля позволяет изменять определенные свойства поля в ответ на изменение значений поля.Это разрешено для трех свойств поля: Обязательный , Фон и Видимый *. Это позволяет уменьшить количество ошибок при заполнении формы, сделав правильные поля обязательными.
* Примечание: Свойство Visible скроет поле только из представления, в котором вы настроили это свойство. Например, если вы настроили его только в представлении формы, вы все равно будете см. поле в представлении списка и наоборот.Это свойство также не скрывает значение поля в PDF или отчетах.
Представьте себе форму запроса на ремонт оборудования, в которой вам нужно записать, какие детали были заменены.
Когда вы устанавливаете флажок, указывающий, что вы заменили деталь, вы можете динамически отображать поле для имени детали, номера и даты, когда деталь была заменена, указывая, что эти поля должны быть заполнены.
После того, как вы заполнили название детали, номер и дату, фон полей станет желтым, показывая, что поля были заполнены, и теперь можно заполнять форму.
Чтобы настроить приведенный выше пример, вам нужно создать 3 поля, а затем поместить вычисления в соответствующие свойства, чтобы они изменялись в ответ на изменение значений полей.
1. Создайте флажок с именем: «ДА»
2. Создайте текстовое поле с именем «Номер детали»
Установите значение свойства Требуется на: = IF ([YES] = «true», «true», «false»)
Установите значение свойства Background на: = IF ([Part Number] = «», «FF0000 «,» FFFF99 « )
Установите для свойства Visible значение: = IF ([YES] =» true «,» true «,» false «)
3. Создайте поле даты с именем «Дата замены»
Задайте для свойства Обязательный значение: = IF ([YES] = «true», «true», «false»)
Установите для свойства Background значение: = IF ([Replacement Date] = «», «FF0000», «FFFF99»)
Установите значение Visible свойство на: = IF ([YES] = «true», «true», «false»)
Свойства поля
Помимо имени и типа (см. Типы полей 4D), свойства поля определяют его внешний вид, а также условия ввода, отображения, редактирования и хранения данных.Свойства каждого поля в таблице можно настроить индивидуально.
Свойства поля можно указать в палитре Inspector или, в некоторых случаях, в контекстном меню, которое появляется при щелчке правой кнопкой мыши по полю.
Примечание: Вы можете изменить свойства поля, данные для которого уже были введены в базу данных. Некоторые изменения учитывают существующие данные. Например, когда вы выбираете уникальный атрибут, 4D отображает диалоговое окно с предупреждением и не позволяет включить этот атрибут, если данные этого поля содержат какие-либо повторяющиеся значения.Однако если вы измените свойства ввода данных, это не повлияет на существующие данные. Например, когда вы выбираете обязательный атрибут, будут проверяться только записи, сделанные после этого изменения; уже введенные значения могут содержать пустые поля.
В области «Определение» палитры инспектора настраиваются основные свойства поля. Некоторые свойства доступны только при выборе определенных типов полей.
Каждому полю можно присвоить цвет.Цвета можно использовать для различения полей в соответствии с их ролью или атрибутами. Например, вы можете использовать один цвет для уникальных полей, а другой — для обязательных.
Также можно назначить цвет индивидуально для каждой таблицы (см. Цвет изображения таблицы) и для каждого отношения (см. Раздел «Определение»).
Примечание : Цвет поля, установленный в редакторе структуры, не влияет на цвет полей, отображаемых в формах (см. Цвет фона и границ).
Цвет, установленный для поля, будет применен к имени поля.Чтобы установить цвет одного или нескольких полей, выберите их и выберите цвет, используя:
- Кнопка Color на панели инструментов редактора структуры,
- Команда Color в контекстном меню полей,
- Параметр «Цвет» в палитре «Инспектор».
Параметр Автоматически можно использовать для применения стандартного исходного цвета поля.
Вы можете сделать поле невидимым в среде приложения и для подключаемых модулей, выбрав свойство Invisible для этого поля.Атрибут Invisible скрывает поле от пользователя. Поле с этим атрибутом не отображается ни в каких стандартных редакторах 4D и диалоговых окнах, которые появляются в среде приложения. Кроме того, его нельзя использовать надстройками. Это касается следующих редакторов и диалоговых окон в среде приложения:
В каждом из этих мест пользователь не может видеть или выбирать поле. Например, пользователь не может выбрать невидимое поле для отчета, созданного с помощью редактора Quick Report.
Примечание: При использовании редакторов пользователи имеют возможность сохранять свои спецификации (например, созданный ими запрос или сортировку) в файлы на диске. В этом случае любые указанные поля, которые впоследствии объявляются невидимыми, по-прежнему будут использоваться в операции. Кроме того, пользователи могут вводить имена невидимых полей в редакторе формул.
Невидимые поля отображаются курсивом в окне редактора структуры.
Используйте атрибут Unique , если вы хотите быть уверены, что каждая запись имеет различное (уникальное) значение в этом поле.Атрибут Unique следует использовать для поля, которое однозначно идентифицирует каждую запись в таблице. Атрибут Уникальный полезен для проверки полей, в которых хранятся номера сотрудников, номера социального страхования, номера заказов на закупку и т. Д.
Атрибут Уникальный предотвращает дублирование пустых значений, а также фактических записей. Пустое поле не может быть продублировано в другой записи.
Информационная панель редактора структуры показывает, проверено ли свойство Уникальный для поля (см. Редактор структуры.
В 4D поля с атрибутом Unique должны быть проиндексированы:
- Визуальный сигнал указывает, что индекс будет создан (если он еще не существует) при выборе атрибута Unique для поля:
- Редактор не позволяет удалить индекс уникального поля (опция Нет или команды удаления, недоступные для индексов, когда такое поле выбрано):
Если вы хотите удалить индекс из уникального поля, вам необходимо заранее удалить атрибут Уникальный .
Этот параметр определяет, отображается ли поле в контексте запросов 4D Mobiles, отправляемых в базу данных 4D через REST. По умолчанию все таблицы и все поля отображаются в 4D Mobile.
По соображениям безопасности вы можете захотеть открыть доступ только к определенным полям вашей базы данных для вызовов 4D Mobile. Например, если вы не хотите раскрывать поле [Сотрудники] Зарплата.
Если вы не хотите раскрывать поле, вы можете снять для него флажок Expose with 4D Mobile Service .
Примечание: Вы также можете установить этот параметр на уровне таблицы, см. Свойства таблицы.
Для того, чтобы поле было доступно с помощью 4D Mobile, его родительская таблица также должна быть доступна. Если родительская таблица не отображается, ни одно из ее полей не доступно, независимо от их индивидуального статуса. Это означает, что вы можете временно включить или отключить отображение таблицы в 4D Mobile, не изменяя индивидуальное значение параметра экспонирования каждого поля.
Эта опция может использоваться в контексте функциональности «4D Mobile».Для получения дополнительной информации см. Руководство 4D Mobile.
Свойство Reject NULL value input используется для предотвращения сохранения значений NULL.
Когда этот атрибут проверяется для поля, невозможно сохранить значение NULL в этом поле. Если поле, имеющее этот атрибут, получит значение NULL, будет сгенерирована ошибка.
Это низкоуровневое свойство точно соответствует атрибуту NOT NULL SQL. Как правило, если вы хотите иметь возможность использовать значения NULL в своей базе данных 4D, рекомендуется использовать исключительно язык SQL 4D.
Примечание: В 4D поля также могут иметь атрибут «Обязательный» (см. Ниже). Эти две концепции похожи, но их область действия различна: атрибут «Обязательный» — это элемент управления вводом данных, тогда как атрибут «Отклонить ввод значения NULL» работает на уровне механизма базы данных.
Это свойство обеспечивает согласованность обработки «пустых» значений и значений NULL для поля с помощью языка 4D.
По соображениям совместимости значения NULL, хранящиеся в таблицах базы данных 4D, автоматически преобразуются в значения по умолчанию при манипулировании с помощью языка 4D.Например, в случае следующего оператора:
myAlphavar: = [mytable] MyAlphafield
… если поле MyAlphafield содержит значение NULL, переменная myAlphavar будет содержать «» (пустая строка).
Значения по умолчанию зависят от типа данных:
- Для типов данных Alpha и Text: «»
- Для типов данных Real, Integer и Long Integer: 0
- Для типа данных Date: «00/00/00»
- Для типа данных Time: «00:00:00»
- Для типа данных Boolean: False
- Для типа данных Picture: Пустое изображение
- Для типа данных BLOB: Пусто BLOB
С другой стороны С другой стороны, этот механизм в принципе не применяется к обработке, выполняемой на уровне механизма базы данных 4D, такой как запросы.Фактически, поиск «пустого» значения (например, myvalue = 0) не найдет записей, хранящих значение NULL, и наоборот. Когда оба типа значений (значения по умолчанию и NULL) присутствуют в записях для одного и того же поля, определенная обработка может быть изменена или потребовать дополнительного кода. Чтобы избежать этих неудобств, можно использовать параметр Сопоставить значения NULL с пустыми значениями параметр для стандартизации всей обработки на языке 4D. Это свойство можно использовать для расширения принципа использования значений по умолчанию для всей обработки.Поля, содержащие значения NULL, будут систематически рассматриваться как содержащие значения по умолчанию.
Это свойство учитывается на очень низком уровне ядра базы данных. В частности, он действует в отношении команды Is field value Null.
Примечание: Поля Alpha в формате UUID, которые не создаются, не считаются NULL (см. Формат UUID).
Свойство «Автоинкремент» генерирует порядковые номера в таблице. Его можно использовать с полями целочисленного, длинного целого и целочисленного 64-битных типов (см. Типы полей 4D).
Поле с этим свойством автоматически увеличивается каждый раз, когда в таблице создается запись. Порядковый номер, присвоенный полю, совпадает с порядковым номером «внутреннего счетчика» таблицы, поддерживаемого 4D. К этому внутреннему счетчику также можно получить доступ с помощью 4-мерных команд «Порядковый номер» и «Получить параметр базы данных» и с помощью маркера #N (см. «Значения по умолчанию»).
Назначенные номера никогда не используются повторно в таблице, даже если записи удалены. Номера, сгенерированные во время отмененной транзакции, «теряются».
Однако свойство «Автоинкремент» соответствует атрибуту SQL AUTO_INCREMENT и может быть указано с использованием этого языка. Метка AUTO INCREMENT также появляется в области информации SQL Инспектора для полей, имеющих этот атрибут.
Предупреждение: Хотя они уникальны в таблице при их создании, автоматически увеличивающиеся числа НЕ рекомендуется заполнять поля первичного ключа уникального идентификатора для записей, особенно когда структура используется с несколькими файлами данных, потому что в этом случае внутренний счетчик может быть рассинхронизирован.Кроме того, внутренний счетчик таблицы можно сбросить с помощью команды SET DATABASE PARAMETER. Для создания уникальных идентификаторов записей настоятельно рекомендуется использовать UUID, которые обеспечивают следующие преимущества:
- UUID генерируют идентификаторы, уникальные для всех таблиц и баз данных
- Для создания UUID вы можете смешивать Auto UUID (см. Ниже) и команду Сгенерировать UUID.
Это меню параметров доступно только для полей типа Текст, Большой двоичный объект, Изображение и Тип объекта.Вы можете установить место для хранения полевых данных. Доступны следующие параметры:
- В записи : данные сохраняются с каждой записью. Как правило, не следует выбирать этот вариант для полей, содержащих объемные данные. Однако он выбран по умолчанию для текстовых полей, поскольку этот тип хранения необходим, если вы хотите использовать «стандартные» индексы B-Tree. Меню выбора индекса скрыто, если текстовые данные хранятся вне записей.
- В файле данных : данные хранятся в файле данных, но вне каждой записи.Этот параметр выбран по умолчанию для полей BLOB, Picture и Object. Вы можете оптимизировать работу базы данных при работе с объемными данными, сохраняя тексты, изображения, BLOB-объекты и объекты вне записей.
- Внешний файл данных : данные хранятся в отдельных файлах вне файла .4DD. Эта опция описана в разделе Внешнее хранилище данных.
Примечание о совместимости: Этот параметр учитывается только для новых записей, создаваемых впоследствии в таблице.Когда вы устанавливаете эту опцию для таблицы, в которую уже были введены записи, они не изменяются, и таблица будет работать в смешанном режиме внутреннего / внешнего хранилища. Если вы хотите расширить этот режим и на существующие записи, вам необходимо сжать данные с помощью параметра Принудительное обновление записей (см. Страницу «Сжатие»).
Как описано в предыдущем разделе, в целях оптимизации по умолчанию данные полей типа BLOB, Picture, Text и Object хранятся вне записей или вне файла данных.
В этой конфигурации из соображений производительности может быть целесообразным «принудительно» сохранять данные в записях, когда их размер ограничен. Это функционирование особенно оптимизировано, когда ваше приложение обрабатывает данные больших двоичных объектов, изображений, текста или объектов несовместимых размеров.
Этот параметр доступен через параметр Максимальный размер внутренней памяти . Значение, введенное в эту область, представляет собой размер в байтах, ниже которого данные поля будут храниться в записи.Например, если вы введете 30 000 для поля изображения, изображение размером 20 КБ будет сохранено в записи, а изображение размером 40 КБ будет сохранено в месте, определенном в настройках (в файле данных или за его пределами). По умолчанию значение равно 0: все данные поля хранятся вне записей.
Это свойство доступно для полей типа Alpha. Это указывает на то, что в поле хранятся идентификаторы UUID. Сохраненные данные должны соответствовать формату UUID (сочетание 32 букв (A-F, a-f) и цифр (0-9)).Для этого вы можете использовать свойство Auto UUID, команду Generate UUID или любой настраиваемый алгоритм.
Если вы попытаетесь сохранить в этом поле строку, которая не соответствует формату UUID, 4D преобразует ее автоматически. Та же операция также применяется к содержимому существующих полей, отличных от Alpha, которые преобразуются в поля UUID: при загрузке записей значения переформатируются, а затем сохраняются еще раз.
Поля со свойством формата UUID могут отображаться в формах и оставаться доступными для ввода.Их содержимое отображается в верхнем регистре. Вы должны передать переменную, если хотите отображать символы нижнего регистра.
Примечания:
- Поля с форматом UUID не могут быть связаны ни с индексами ключевых слов, ни со списками выбора.
- Вы можете создать связь между двумя полями, которые имеют формат UUID, но вы не можете связать стандартное поле Alpha с полем, имеющим формат UUID.
- Поле UUID, которое инициализировано (сгенерировано) и имеет значение NULL, возвращает пустую строку.Поле UUID, которое не создается, не равно NULL и возвращает «000 …» (количество нулей равно количеству символов). Свойство не учитывается в несформированных полях UUID (отображение «000 …»).
Этот параметр активен только при выборе свойства Формат UUID .
Вы можете использовать свойство Auto UUID для автоматического создания номера UUID в поле.
Это число вычисляется автоматически в следующих контекстах:
- при создании записи,
- при загрузке записи, поле UUID которой содержит значение Null .В частности, это происходит для записей, созданных и сохраненных до добавления поля UUID в таблицу, когда параметр Сопоставить значения NULL с пустыми значениями был снят.
Естественно, во всех случаях запись должна быть сохранена, чтобы автоматически сгенерированный UUID был сохранен в поле.
Примечание: Когда данные импортируются, даже если это свойство выбрано, 4D не генерирует новое число, а использует импортированные значения (и при необходимости преобразует их, если формат недействителен).Однако, если значение импортированного поля пусто, автоматически создается UUID.
Примечание о совместимости : этот параметр сохранен только по соображениям совместимости и по умолчанию не действует. Чтобы использовать его, вы должны включить QuickTime в своем приложении (см. Рисунки).
Это свойство доступно для текстовых и альфа-полей. Когда вы выбираете эту опцию, запросы и сортировки, выполняемые в данных, хранящихся в поле, не принимают во внимание какие-либо теги стиля.
Эта опция связана со способностью 4D применять разные стили в одной и той же текстовой области (форматированный текст) в форме. Для получения дополнительной информации об этой функции см. ПОЛУЧИТЬ СПИСОК ИСТОЧНИКОВ ДАННЫХ.
Настройка стилей осуществляется путем вставки HTML-тегов в текст. Эти теги интерпретируются при отображении текстовой области.
Теги стилей хранятся вместе с данными. Например, если вы напишете «выходные» в текстовом поле, 4D сохранит «неделю конец ».Эта операция прозрачна для пользователя на уровне формы. Однако для запросов и сортировок необходима особая настройка, позволяющая 4D игнорировать теги стиля. Для слова «уик-энд» запрос может найти его, только если вы выбрали опцию Запросы и сортировка по тексту без тегов для поля в редакторе структуры.
Примечание: С этой опцией запрос для значения среди данных поля совпадает с выполнением этого оператора в 4D:
ЗАПРОС ПО ФОРМУЛЕ (ОБЪЕКТ Получить простой текст (поле) = "значение ")
Свойство Индекс доступно для всех типов полей, кроме больших двоичных объектов и изображений.Свойство Индекс ключевого слова доступно для полей типа Alpha, Text и Picture.
Использование индексов помогает ускорить обработку и поиск данных.
Управление индексами подробно описано в разделе Создание и изменение индексов.
Вы можете установить элементы управления вводом данных для полей и доступных для ввода объектов на уровне формы. Элементы управления вводом данных ограничивают то, что пользователь может вводить в поле или вводимый объект в определенной форме.
Если для поля установлен атрибут Обязательный , пользователь должен ввести значение в это поле во время ввода данных.4D не принимает записи, содержащие пустое обязательное поле. Вы должны установить обязательный атрибут для поля, содержащего важную информацию для вашей базы данных. Поле, которое однозначно идентифицирует каждую запись, является хорошим кандидатом на роль обязательного атрибута. Для номеров социального страхования, номеров счетов-фактур, определенных дат или номеров сотрудников может потребоваться установить атрибут «Обязательный» для защиты целостности записей.
Вы также можете установить этот атрибут для поля в определенной форме.Если вы выберете атрибут Обязательный в редакторе структуры, вы не сможете отменить его выбор в определенной форме. Однако вы можете применить атрибут Mandatory в форме к полю, не имеющему этого атрибута в редакторе структуры. Для получения информации о настройке обязательного атрибута для поля в форме см. Вводимые и обязательные атрибуты и свойства поля.
Примечание: В 4D поля также могут иметь свойство «Отклонять ввод значения NULL» (см. Выше).Эти две концепции похожи, но их область действия различна: атрибут «Обязательный» — это элемент управления вводом данных, тогда как атрибут «Отклонить ввод значения NULL» работает на уровне механизма базы данных.
Если этот атрибут установлен для поля, 4D проверяет значение, изначально введенное в поле, но не позволяет пользователю изменять значение после сохранения записи. Пользователь может редактировать запись в таком поле только во время первоначального создания записи, до того, как запись будет проверена.После того, как пользователь сохранит запись, значение в поле нельзя будет редактировать. Значение может быть изменено только методом или в среде разработки после того, как вы впервые удалили этот параметр.
Используйте «Невозможно изменить» для полей, которые должны обеспечивать контрольный журнал, например «Дата получения», «Дата оплаты» и т. Д. Атрибут «Невозможно изменить» часто используется для поля, однозначно определяющего каждую запись в таблице.
Примечание: Этот атрибут работает только с полями, отображаемыми в форме ввода в режиме страницы.В других случаях (запись в списке, запись в подчиненной форме в режиме списка или страницы) значение поля все еще может быть изменено.
Пользователь не может вводить значения с клавиатуры в поле, для которого установлен атрибут «Только отображение». Вы должны использовать значение по умолчанию для такого поля или написать метод, который вставляет значение в поле. Поле с атрибутом «Только отображение» полезно для отображения значений, которые вы не хотите, чтобы пользователи базы данных изменяли, таких как вычисленные итоги или порядковый номер, присвоенный методом.
Вы также можете сделать любое поле недоступным для ввода в определенной форме. Информацию о том, как сделать поле недоступным для ввода, см. В разделе «Вводимые и обязательные атрибуты и свойства поля».
Эта опция доступна только для полей текстового типа. Когда он установлен, текстовое поле автоматически настраивается в формах, созданных впоследствии, чтобы содержать несколько строк текста. Его характеристики по умолчанию следующие:
- Высота, соответствующая нескольким строкам,
- Горизонтальная полоса прокрутки,
- Во время выполнения возврат каретки вызывает разрыв строки.
Если этот параметр не отмечен, внешний вид текстовых полей в формах по умолчанию такой же, как и у полей Alpha: высота одной строки и отсутствие полосы прокрутки; возврат каретки переместит вас в следующее поле формы.
Можно изменить внешний вид поля по умолчанию в любое время с помощью редактора форм.
Используйте атрибут Разрешить список выбора , если вы хотите отобразить список выбора для ввода информации в поле. Чтобы использовать этот атрибут, вам сначала нужно создать список выбора с помощью редактора списков (см. Списки).
Используйте атрибут Allow Choice List , если вы хотите стандартизировать записи в поле и избежать орфографических ошибок. Используйте список выбора для поля, которое имеет ограниченное количество действительных записей или ограниченное количество обычных записей. Использование списка выбора не обязательно мешает пользователю ввести другое значение (то, которое не отображается в списке выбора).
Вы также можете назначить список выбора полю в определенной форме. Однако, когда вы назначаете список выбора только в форме, этот список не отображается в других редакторах и диалоговых окнах, таких как редактор запросов.Для получения информации об использовании списка выбора в форме см. Раздел «Управление вводом данных и помощь».
Примечание: Также можно установить списки выбора требуемых значений и исключенных значений на уровне формы.
Когда вы отметите опцию Разрешить список выбора , активируется связанное с ним прокручиваемое меню. Затем вы можете выбрать существующий список выбора, который вы хотите назначить полю, или вы можете щелкнуть [ … ], чтобы получить прямой доступ к редактору списков (см. Списки).
Вы можете предоставить пользователям дополнительную информацию о поле, добавив в это поле подсказку. Когда подсказка вводится в область подсказок, она появляется рядом с полем всякий раз, когда пользователь наводит указатель на поле в любой форме, в которую это поле включено. Совет помощи отображается на всех платформах.
Когда пользователь наводит указатель мыши на поле, под полем появляется подсказка, как показано ниже:
Вы также можете использовать подсказку для поля в определенной форме.Если вы назначите подсказку только для определенной формы, она не будет отображаться в других формах. Дополнительную информацию об использовании справочных подсказок с формами см. В разделе «Справочные сообщения».
Область комментариев палитры инспектора может использоваться для хранения дополнительной информации о поле. Эти комментарии доступны всем разработчикам.
Обратите внимание, что у каждой таблицы и отношения есть собственная область комментариев.
Область SQL палитры Inspector предоставляет различную полезную информацию о поле с точки зрения его использования через язык SQL.
Эта область более конкретно указывает, соответствует ли имя поля правилам, касающимся номенклатуры SQL (например, в отличие от 4D, SQL не позволяет имени поля содержать пробелы).
Примечание. SQL также определяет список зарезервированных слов, включая функции SQL и ключевые слова SQL. Вы можете просмотреть эти зарезервированные слова в области «Списки» редактора методов.
Для полей в области информации SQL также указываются их атрибуты SQL (тип и свойства).
Типы полей собственности в HubSpot
Когда вы создаете настраиваемое свойство в HubSpot, тип информации, которую вы хотите, чтобы свойство собирало и сохраняло, будет определять тип поля для выбора.
Обратите внимание:- Изменение существующего свойства на другой тип поля может сделать значения, хранящиеся в данный момент в свойстве, недействительными. Перед редактированием свойства рекомендуется экспортировать всю информацию.
- Тип поля свойства не может быть изменен на Оценка , Расчетный или Дата .Свойство Score , Calculated или Date свойство не может быть изменено для другого типа поля.
- Одиночный флажок: сохраняет два параметра: включено или выключено. Часто используется, если вам нужно, чтобы значение свойства было строго истинным или ложным. В формах они отображаются как один флажок.
- Несколько флажков: хранит флажки, которые содержат несколько, обычно связанных параметров, максимум 1000 вариантов. Каждый параметр может содержать не более 3000 символов, включая его метку, значение и описание.Это свойство перечисления.
- Средство выбора даты: хранит значение даты. В формах они используются, чтобы позволить посетителям вводить определенную дату в стандартном формате, чтобы не было путаницы между днем и месяцем при вводе даты.
- Файл: хранит файл, связанный с контактом. В формах они используются, чтобы позволить посетителям загружать файлы как часть их представления. После этого ссылка на загруженный файл будет доступна в контакте или записи билета.Этот тип свойства доступен только для свойств контакта и тикета.
- Число: хранит строку цифр или чисел, записанных в десятичной или экспоненциальной системе счисления. Вы можете выбрать форматирование числового свойства при создании или редактировании свойства:
- Форматировано: форматирует число с помощью запятых, например 1,000,000.
- Неформатировано: удаляет форматирование чисел, например 1000000.
- Валюта: форматирует число как валюту в соответствии с настройками валюты по умолчанию для вашей учетной записи.
Обратите внимание: вы можете настраивать списки и рабочие процессы для регистрации только на основе целых чисел, включая отрицательные числа. Однако, если в записи есть десятичное число, хранящееся в свойстве number, она по-прежнему может претендовать на списки и рабочие процессы. Например, контакт со значением -2,5 для числового свойства будет зарегистрирован в рабочем процессе, для которого триггер регистрации равен . Число, свойство меньше -2 .
- Выбор радио: хранит максимум 1000 опций, и только одна опция может быть выбрана в качестве значения.Каждый параметр может содержать не более 3000 символов, включая его метку, значение и описание. В формах они работают аналогично полям раскрывающегося списка, но выглядят иначе. Это свойство перечисления.
- Выпадающий выбор: хранит максимум 1000 опций, и только один вариант может быть выбран в качестве значения. Каждый параметр может содержать не более 3000 символов, включая его метку, значение и описание. В формах они работают аналогично полям выбора радио, но выглядят иначе.Это свойство перечисления.
- Однострочный текст: хранит строку любых буквенно-цифровых символов, таких как слово, фраза или предложение. Когда значение добавляется через CRM, максимальное количество символов составляет 65 536 символов. Когда значение отправляется через форму, ограничений нет.
- Многострочный текст: хранит несколько строк буквенно-цифровых символов, таких как абзац или список элементов. Когда значение добавляется через CRM, максимальное количество символов составляет 65 536 символов.Когда значение отправляется через форму, ограничений нет.
- Расчет: сохраняет пользовательские уравнения на основе числовых свойств. Свойства вычислений нельзя использовать в формах и доступны только в учетных записях Professional и Enterprise . Подробнее о создании расчетных свойств. После создания типом отображаемого поля свойства будет либо Equation , либо Rollup , в зависимости от выбранного вами рассчитанного типа свойства.
- Оценка: хранит число на основе настраиваемых атрибутов оценки, доступно только для контактов, компаний и сделок. Узнайте, как настроить свойства партитуры с нужными атрибутами после их создания.
Обратите внимание: количество свойств оценки, которые вы можете создать, зависит от вашей подписки. Узнайте больше об ограничениях свойств оценки для вашей подписки в каталоге продуктов и услуг HubSpot.
- Пользователь HubSpot: хранит список пользователей HubSpot в вашей учетной записи.В качестве значения можно выбрать только одного пользователя HubSpot. Это позволяет иметь настраиваемое свойство владельца, отдельное от свойства владельца по умолчанию [Object]. Вы можете создать до 30 настраиваемых свойств пользователя HubSpot. Подробнее о назначении прав собственности на записи.
Контакты Сделки Компании Билеты Настройки аккаунта
Изучение свойств рецептивного поля сложных клеток в V1
Образец цитирования: Lian Y, Almasi A, Grayden DB, Kameneva T, Burkitt AN, Meffin H (2021) Изучение свойств рецептивного поля сложных клеток в V1.PLoS Comput Biol 17 (3): e1007957. https://doi.org/10.1371/journal.pcbi.1007957
Редактор: Вольфганг Эйнхойзер, Technische Universitat Chemnitz, ГЕРМАНИЯ
Поступила: 13.05.2020; Одобрена: 9 февраля 2021 г .; Опубликован: 2 марта 2021 г.
Авторские права: © 2021 Lian et al. Это статья в открытом доступе, распространяемая в соответствии с условиями лицензии Creative Commons Attribution License, которая разрешает неограниченное использование, распространение и воспроизведение на любом носителе при условии указания автора и источника.
Доступность данных: Код доступен по адресу https://github.com/lianyunke/Learning-Receptive-Field-Properties-of-Complex-Cells-in-V1.
Финансирование: Эта работа получила финансирование от правительства Австралии через схему проектов Discovery Австралийского исследовательского совета (проект DP140102947) и грант AUSMURIB000001, связанный с грантом ONR MURI N00014-19-1-2571. HM благодарит за финансирование Центр передового опыта ARC в области интегративной функции мозга (CE140100007).Финансирующие организации не играли никакой роли в дизайне исследования, сборе и анализе данных, принятии решения о публикации или подготовке рукописи.
Конкурирующие интересы: Авторы заявили, что конкурирующих интересов не существует.
Введение
Около 60 лет назад Хьюбел и Визель идентифицировали два типа нейронов в первичной зрительной коре (V1) кошки: простые клетки и сложные клетки [1, 2]. Они классифицировали простые клетки как нейроны, которые имеют рецептивные поля (RF) с пространственной структурой, состоящей из различных светлых (ON) и темных (OFF) областей.Кроме того, RF простых клеток демонстрируют положительное суммирование в областях ON и OFF и проявляют антагонизм между областями ON и OFF. Кроме того, было возможно предсказать простые клеточные ответы на новые стимулы с помощью линейной интеграции по включенным и выключенным областям РФ. Большинство простых клеток сильно реагируют на ориентированные края или решетки, отдавая предпочтение определенной ориентации (стимулы решетки состоят из пространственно-периодических светлых и темных полос с заданной ориентацией).
Напротив, сложные ячейки демонстрируют значительную нелинейную пространственную интеграцию.Хотя они сильно реагируют на перемещение ориентированных краев, они не проявляют других характеристик простых ячеек, описанных выше. Одним из важных свойств сложных ячеек является их пространственная фазовая инвариантность; т.е. сильные отклики вызывают ориентированные решетки с преимущественной ориентацией, но для широкого диапазона пространственных фаз. Это отличает их от простых ячеек, которые избирательны по пространственной фазе. Пространственная фаза относится к положению светлых и темных полос на решетке в пределах одного периодического цикла.Пространственная фазовая инвариантность аналогична инвариантности сдвига или позиционной инвариантности, что означает, что реакция обычно нечувствительна к относительному положению стимула внутри RF сложной клетки.
Простые клеточные реакции могут быть описаны феноменологически с помощью линейно-нелинейной модели, которая имеет три стадии [3–5]. Во-первых, входное изображение линейно фильтруется с помощью одного пространственного фильтра, веса которого представляют RF ячейки. Во-вторых, выходной сигнал первого каскада, контраст функции, пропускается через статическую нелинейность (обычно одностороннюю, такую как полуволновое выпрямление), чтобы получить частоту всплесков.В-третьих, последовательность пиков генерируется с помощью процесса Пуассона с этой мгновенной скоростью пиков. Это называется линейно-нелинейной моделью Пуассона [6].
Отчасти похожая модель с линейно-нелинейной обработкой может использоваться для описания ответов сложных ячеек. Однако для сложных ячеек обычно требуется несколько линейных пространственных фильтров, и выходной сигнал каждого фильтра проходит через нелинейную функцию, которая обычно является двусторонней (например, возведение в квадрат нелинейности). После этого сигналы объединяются по каналам фильтра путем суммирования и могут быть пропущены через окончательную статическую нелинейность, чтобы получить прогнозируемую частоту всплесков [4, 5, 7].Одной из классических феноменологических моделей сложных ячеек является энергетическая модель [4, 8], в которой ответные реакции сложных ячеек представляют собой сумму квадратов выходных сигналов двух линейных пространственно-сдвинутых по фазе фильтров, как показано на рис. 1А. Для энергетической модели функция возведения в квадрат придает инвариантность полярности (неизбирательная по отношению к полярности стимула), а фильтры с разными пространственными фазами генерируют пространственную фазовую инвариантность. Хотя энергетическая модель может отражать пространственную фазовую инвариантность некоторых сложных клеток, недавние экспериментальные исследования показали, что многие сложные клетки зрительной коры головного мозга кошек имеют частоту всплесков, которые показывают большие модуляции пространственной фазы, которые не учитываются энергетической моделью [9–12]. ].
Рис 1. Энергетическая модель.
Красный и синий представляют собой ВКЛ и ВЫКЛ подобласти рецептивного поля простой клетки, соответственно. (A) Классическая энергетическая модель сложной клетки. Линейный отклик входа, свернутого с фильтром, передается двусторонней нелинейной функции (в данном случае степенной функции). Затем выходные данные двух нелинейных функций суммируются, чтобы получить ответ для сложной ячейки. (B) Эквивалентная иерархическая структура энергетической модели сложной клетки.Ответ сложной клетки складывается из ответов простых клеток.
https://doi.org/10.1371/journal.pcbi.1007957.g001
Эти типы моделей описывают только ответы нейронов на зрительные стимулы и не могут объяснить биофизические механизмы сложных клеточных ответов. Несколько моделей также исследовали различные сетевые архитектуры; их можно разделить на три категории: иерархические, параллельные и повторяющиеся (см. обзор в [13]). Понятие иерархической модели было предложено Hubel и Wiesel [2], где сложная клетка объединяет активности простых клеток с тем же предпочтением ориентации, но с разными предпочтениями пространственной фазы, так что она является селективной по ориентации, но пространственно фазоинвариантной.Позднее эта идея была подтверждена экспериментальным исследованием [7]. С точки зрения иерархической структуры энергетическая модель может быть понята как сложная ячейка, имеющая сходящиеся входы от четырех простых ячеек с различными пространственными фазовыми предпочтениями. Например, ответ сложной ячейки представляет собой взвешенную сумму четырех простых ячеек, как показано на рисунке 1B.
Концепция иерархической структуры была оспорена параллельными и рекуррентными моделями. В параллельной модели [14] предполагается, что как простые, так и сложные клетки генерируются отдельными таламокортикальными путями параллельно.Это подтверждается открытием, что некоторые сложные клетки получают прямой вход от таламуса [14]. Однако некоторые предыдущие исследования показали, что большинство сложных клеток не получают прямого входа от таламуса [15–17]. Идея рекуррентной модели подтверждается экспериментальными данными о том, что корковые клетки в основном получают большую часть своего вклада от других корковых нейронов, а не от таламуса [18]. Следовательно, ответ корковых клеток должен в первую очередь определяться повторяющимися корковыми входами [16].Тем не менее, таламокортикальные связи обладают многими особенностями, которые делают их прочными, хотя они составляют лишь небольшую часть возбуждающих синапсов, создаваемых корковыми клетками [13].
В этой статье мы исследуем, как RF сложных клеток могут быть изучены таким образом, чтобы они объясняли экспериментальные данные для сложных клеток. Мы фокусируемся на иерархической структуре между простыми и сложными ячейками. А именно, что сложные клетки объединяют прямую связь от простых клеток, что подтверждается экспериментальными результатами [19].Здесь мы обращаемся к вопросу о том, как сложные ячейки узнают, какие простые ячейки объединять. Учитывая простые ячейки с RF различной ориентации и пространственных фазовых предпочтений, существует два различных возможных механизма объединения простых ячеек для создания сложных ячеек: неразборчивое объединение и избирательное объединение.
Беспорядочное объединение означает случайное объединение любых простых клеток в локальной области корковой поверхности. Если простые ячейки со сходной ориентацией, но с разными пространственными фазами расположены в локальном регионе с помощью карты ориентации, сложные ячейки могут быть ориентировочно-избирательными, но пространственно-фазово-инвариантными за счет беспорядочного объединения этих простых ячеек.
Выборочное объединение означает объединение простых ячеек в соответствии с определенными критериями. Например, можно объединить только простые ячейки с RF одинаковой ориентации, но с разными предпочтениями пространственной фазы.
Ориентационные карты, необходимые для поддержания селективности ориентации в условиях неизбирательного объединения, распространены среди обезьян, кошек и хорьков V1 [20–22], а некоторые модели были разработаны для описания сложных клеток на основе ориентационной топографии простых клеток [23–25] .Однако есть также виды грызунов, такие как мыши и крысы, которые не имеют карт ориентации, но все же имеют сложные клетки в V1 [26, 27]. Следовательно, выборочное объединение кажется более общим принципом построения сложных ячеек путем объединения простых ячеек.
Тем не менее, вопрос о том, как синаптическая пластичность может избирательно объединять простые клеточные входы с соответствующими весами для клеток с разной ориентацией и пространственной фазовой селективностью, все еще остается. Хотя некоторые исследования обращались к этому вопросу [28–31], большинство существующих моделей упускают из виду многие детали биологической реальности.Ниже перечислены некоторые общие проблемы современных моделей сложных ячеек в этом режиме.
Во-первых, многие модели предполагают, что нелинейная функция, применяемая к выходным сигналам фильтра, является двусторонней, то есть функция возрастает от нуля как в положительном, так и в отрицательном направлениях выходного сигнала фильтра. Однако биологические простые клетки, которые формируют входы в сложную клетку, имеют одностороннюю пиковую нелинейность. Это искусственно создает инвариантность полярности к сложной модели ячейки и вносит значительный вклад в пространственную фазовую инвариантность искусственным образом.Эта проблема существует в модели независимого анализа подпространств (ISA), разработанной Хивариненом и Хойером [28], и модели анализа медленных свойств (SFA), разработанной Беркесом и Вискоттом [29]. Эти модели не объясняют, как простые клетки с одинаковой настройкой ориентации, но с противоположной селективностью полярности объединяются в процессе обучения.
Во-вторых, веса, соединяющие простые и сложные ячейки, не учатся в некоторых моделях. Веса в модели ISA [28] являются фиксированными, с учётом весов только простых ячеек.Веса в модели Хосои и Хиваринена [30] вычисляются путем сильного уменьшения размерности с использованием анализа главных компонентов (PCA), что не соответствует одной из форм синаптической пластичности.
В-третьих, процесс обучения некоторых моделей включает искусственные компоненты, которые не имеют прямой биологической реализации: модель SFA [29] решает проблему оптимизации и не предполагает синаптической пластичности Хебба, а модель, разработанная Einhäuser et al. [31] позволяет обучаться только одному нейрону-победителю в каждой итерации.Кроме того, для модели Einhäuser et al. [31], соотношение простых и сложных клеток, 60: 4, несовместимо с экспериментальными доказательствами того, что сложные клетки по крайней мере так же распространены, как простые клетки в V1 [32]. Следовательно, изучение того, как сложные свойства клеток могут быть изучены с помощью биологически вероятных правил пластичности, является открытой, но важной проблемой для понимания того, как работает мозг.
Одним из возможных механизмов решения этой проблемы является эффективное кодирование, которое может быть реализовано биологически правдоподобным образом, посредством пластичности Хеббуса, для объяснения многих экспериментальных феноменов простых клеток [33].Хотя эффективное кодирование может изучать простые ячейки, мы обнаружили, что каскадный этап эффективного кодирования не может эффективно изучать RF-свойства сложных ячеек из ответов простых ячеек (подробности см. В разделе «Обсуждение» и в приложении S2).
В этой статье мы предлагаем биологически правдоподобную модель сложных клеток, основанную на правиле синаптической пластичности Биненстока, Купера и Манро (BCM) [34, 35], и показываем, что это приводит к модели сложных клеток, которые могут объединять простые клетки. с различными пространственными фазовыми предпочтениями.Объединенные простые ячейки образуют подпространство сложной ячейки, и каждая объединенная простая ячейка является субъединицей в подпространстве. Выученное подпространство может учитывать пространственную фазовую инвариантность экспериментально зарегистрированных сложных ячеек. Дальнейший анализ модельных сложных ячеек показывает, что предложенная модель может объяснить разнообразие радиочастотных свойств сложных ячеек, обнаруженных в недавнем экспериментальном исследовании [11].
Материалы и методы
Состав модели
Предлагаемая трехуровневая сеть нейронов на основе скорости моделирует активность клеток латерального коленчатого ядра (LGN) (первый слой), простых клеток V1 (средний слой) и сложных клеток V1 (верхний слой), как показано на рис. .
Рис 2. Графическое изображение модели.
I — это единичная матрица, представляющая самовозбуждение. Красные и зеленые стрелки обозначают возбуждающие и тормозящие связи соответственно. Стрелки вверх и вниз обозначают пути прямой связи и обратной связи. Параметры определены в таблице 1.
https://doi.org/10.1371/journal.pcbi.1007957.g002
Сводка параметров модели, которая будет использоваться в этом документе, приведена в таблице 1.
Два нижних слоя реализуют двухслойную модель, которая является биологически правдоподобной и, как было ранее показано, объясняет многие экспериментальные явления [33]. Эта двухуровневая модель представляет собой вариант разреженного кодирования и включает в себя множество биологических ограничений. Динамика клеток LGN и простых клеток описывается эволюцией мембранных потенциалов, v , с последующим применением линейно-пороговой функции для получения скорости возбуждения, r : (1) а также (2) где « « «, τ L и τ S — постоянные времени мембран клеток LGN и простых клеток, r b, L — скорость фонового срабатывания LGN ячеек, а λ S — порог функции выпрямления скоростей стрельбы.представляет собой изменение мембранного потенциала, вызванное токами утечки. Детали двух нижних слоев можно найти в [33].
Ответ сложных ячеек — это просто линейное суммирование простых ячеек, к которым они подключены, как указано (3) где — неотрицательная матрица, представляющая возбуждающие связи между простыми и сложными ячейками, а x C — вход для сложной ячейки.
Модель была смоделирована в MATLAB (R2020a, США) и запущена на высокопроизводительной вычислительной платформе Spartan [36].Код доступен по адресу https://github.com/lianyunke/Learning-Receptive-Field-Properties-of-Complex-Cells-in-V1.
Ввод
Естественные изображения.
Для обучения простых ячеек набор данных, используемый в этой статье, состоит из 50 случайно выбранных изображений размером 1024 × 1536 пикселей калиброванных природных сцен из набора данных ван Хатерена [37].
Естественное видео.
Для естественных визуальных стимулов с временной информацией, таких как видео, содержимое между последующими кадрами в фиксированной области в течение короткого периода времени очень похоже, за исключением некоторых перемещений или сдвигов в положении в результате движения объекта или самого себя. движение.Следовательно, временная информация в естественном видео подобна последовательностям переведенных изображений, которые используются для исследования медленного обучения во времени [29]. В этой статье мы используем естественное видео для изучения сложных клеток. Однако аналогичные сложные ячейки также могут быть изучены с использованием последовательности естественных изображений (набор данных ван Хатерена) со случайным пространственным дрожанием для включения временной информации (подробности см. В приложении S1).
После изучения простых ячеек 2-минутное естественное видео размером 1080 × 1920 пикселей с частотой кадров 24 Гц используется для изучения связи между простыми и сложными ячейками.Для этого исследования используется центральная область видео размером 800 × 800 пикселей (https://youtu.be/K-Vr2bSMU7o, с разрешения владельца). На каждой итерации процесса обучения используются N последовательных кадра видео. Для выбранных кадров N нижняя двухуровневая модель генерирует N наборов простых ответов ячеек. Поскольку последовательные кадры N содержат аналогичные функции с пространственными сдвигами или поворотами, нейронная активность простых ячеек в ответ на кадры N также будет содержать информацию о пространственной фазе.Используя концепцию правила отслеживания, где ответ определяется текущим и прошлым ответами [38], среднее значение из N наборов ответов простых ячеек затем используется в качестве входных данных для сложных ячеек; т.е. x C = 〈 r S 〉. По нашему мнению, простые ячейки с аналогичной настройкой ориентации будут иметь аналогичные средние отклики на видеокадры N , что помогает с инвариантностью перевода, если подходящее правило обучения может объединять совместно активные входы.
Предварительная обработка естественных стимулов.
Входные пятна сначала отбеливаются для имитации обработки сетчатки перед визуальной обработкой. Этот процесс включает фильтрацию входного изображения для моделирования реакции ганглиозных клеток, RFs которых характеризуются как делительно нормализованные фильтры разности Гаусса [39, 40]. Интенсивность побеленных пикселей ( I ) в точке ( x , y ) рассчитывается по формуле (4) где I 0 , I 1 и I d — это выходные данные трех модульно-нормализованных гауссовых фильтров: центрального фильтра ( g 0 ), объемного фильтра ( g 1 ) и делительный нормализационный фильтр ( g d ), где g d захватывает локальную адаптацию ганглиозных клеток [41].Изображения свертываются с g 0 , g 1 и g d для получения 2D ретинотопного представления. Стандартное отклонение центральных фильтров установлено на 1 пиксель. Стандартное отклонение фильтров объемного звучания выбрано равным 1,5 пикселя или в 1,5 раза превышающему стандартное отклонение центрального фильтра, что согласуется с предыдущими измерениями [42]. Стандартное отклонение г d имеет тот же размер, что и г 1 [40].
Затем отбеленные изображения умножаются с помощью двухмерного гауссовского оконного фильтра со стандартными отклонениями 3 пикселя как в вертикальном, так и в горизонтальном направлениях. Цель этого шага — ограничить пространственный диапазон синаптических связей с LGN и, впоследствии, с клетками V1, аналогично подходу, используемому Linsker [43]. Он также делает больший акцент на центральной части фрагмента изображения, чтобы выученные простые RF были более централизованы в области 2D-изображения. Этот шаг также предполагает, что модели сложных ячеек объединяют локальные простые ячейки, которые имеют RF в том же регионе.
Предварительно обработанные фрагменты изображения размером M × M затем подаются в ячейки LGN на первом уровне. Если интенсивность пикселей положительна, она устанавливается как вход в ячейку ON LGN, а вход в соответствующую ячейку OFF LGN устанавливается на ноль. Если интенсивность пикселей отрицательная, абсолютное значение интенсивности устанавливается как вход в ячейку OFF LGN, а вход в соответствующую ячейку ON LGN устанавливается на ноль.
Изучение простых сотовых подключений LGN
Связи между LGN и простыми клетками изучаются на основе геббийской или анти-хеббийской пластичности, изменения синаптических весов зависят только от пре- и постсинаптической активности.Правило обучения основано на эффективном кодировании и похоже на [33], задаваемое формулой (5) где η 1 — скорость обучения, 〈⋅〉 — усредненная по ансамблю операция для пакета образцов изображений, r L — r b, L — вектор скоростей активации LGN r L , уменьшенная на спонтанную скорость r b, L , это матрица Хебба, заданная внешним произведением векторов скоростей стрельбы r L — r b, L и r S для LGN и простых клеток, соответственно, и γ 1 — константа регуляризации веса, которая предотвращает неограниченный рост веса.Обратите внимание, что изменения веса в прямом направлении (от LGN к простой ячейке; верхний индекс и ) имеют положительный знак и, таким образом, являются хеббийскими, в то время как изменения в направлении обратной связи (простая ячейка в LGN; верхний индекс d ) имеют отрицательный знак и являются таким образом, антихеббский. Возбуждающие веса A u, + и A d, + остаются неотрицательными, в то время как тормозные веса A u, — и A d, — , остаются отрицательными во время обучения.Кроме того, абсолютное значение каждого веса ограничено верхней границей, a 1, max , что представляет максимальную синаптическую эффективность. Единственное различие между предыдущими правилами обучения простых ячеек [33] и этим исследованием состоит в том, что нормализация веса заменена комбинацией членов саморегуляризации в уравнении 5 и верхней границей весов связи.
Правило обучения для простых и сложных соединений ячеек
Связи между простыми и сложными клетками изучаются на основе правила Биненштока, Купера и Манро, формы пластичности Хебба, где изменение знака и эффективности зависит не только от пре- и постсинаптической активности, но и от медленно меняющихся значений история постсинаптической активности [34].
Правило Биненштока, Купера и Манро (BCM).
Правило Биненстока, Купера и Манро (BCM) [34, 35] может изучать основные особенности из входных данных посредством конкурентного процесса между синапсами нейрона, который возникает из механизма пороговой обработки, который является частью правила обучения BCM. Однако пластичность BCM предназначена для отдельных нейронов и не создает конкуренции между нейронами сети, получающими одинаковые визуальные сигналы. Ло и Купер применили правило пластичности BCM к сети, используя естественные изображения в качестве входных стимулов, и показали, что это правило обучения может изучать RF, как и у простых клеток [44].Однако, поскольку правило пластичности BCM одинаково для каждого нейрона в сети, изученные особенности сети имеют тенденцию быть похожими [45]. За счет включения нормализации ответа, когда ответ ячейки нормализуется ответами других ячеек в сети [46], в сеть вводится «мягкая» форма конкуренции. Более того, были обнаружены убедительные экспериментальные доказательства того, что нормализация действует во всей зрительной системе, от сетчатки до зрительной коры (см. Обзор [47]).Включая пластичность и нормализацию BCM, Willmore et al. показали, что нормализованный BCM (NBCM) может изучать различные простые клеточно-подобные RF, когда модель обучается на естественных изображениях [45]. Однако правила пластичности BCM и NBCM игнорируют некоторые биологические ограничения, такие как закон Дейла [48] и неотрицательные нейронные реакции.
Для синаптических весов между простой ячейкой i и сложной ячейкой j , a i , j правило обучения BCM обновляет вес в соответствии не только с пре- и постсинаптической активностью, и, но также изученный порог для сложной ячейки j , θ j , (6) где η a и η θ — скорости обучения, которые определяют скорости изменения синаптического веса и порога.Исходное правило BCM позволяет весу a i , j изменять знаки, что не является биологически правдоподобным. Ниже представлены модифицированные правила, основанные на BCM, с учетом биологических ограничений. Обратите внимание, что исходное правило BCM приведено здесь для полноты (уравнение 6), но в этом исследовании использовались только модифицированные правила BCM и NBCM, приведенные ниже.
Измененное правило BCM.
Для модифицированного правила BCM синаптический вес между простой ячейкой i и сложной ячейкой j , a i , j , обновляется правилом обучения, (7) где γ a — константа регуляризации веса.Кроме того, связи между простыми и сложными клетками являются возбуждающими в модели, поэтому a i , j остается неотрицательным во время обучения. Верхняя граница весов соединений явно ограничена равной a 2, максимум .
Обратите внимание, что модифицированное правило обучения BCM (уравнение 7) отличается от исходного правила обучения BCM (уравнение 6) тремя способами. Во-первых, исходное правило BCM позволяет весам изменять знаки, что не разрешено в модифицированном правиле BCM.Во-вторых, a i , j ограничен максимальным весом, a 2, max . В-третьих, исходное правило BCM не имеет члена регуляризации веса, — γ a a i , j ; этот термин добавлен, чтобы предотвратить неограниченный рост веса и свести неважные веса к нулю.
Измененное правило NBCM.
Исходное правило NBCM, предложенное Willmore et al.[45] показывает, что это правило обучения может изучать различные RF для нейронов в сети. NBCM включает модель нормализации отклика, предложенную Хигером [46]. Для модели ответ сложных ячеек нормализуется, а затем нормализованный ответ используется для обновления синаптического веса и порога, заданных правилом обучения NBCM, (8) где сумма более k представляет все сложные клетки в сети, а α и β являются константами, которые определяют силу нормализованного ответа, по сравнению с ответом,.
Модифицированное правило обучения NBCM вводит больше ограничений на веса и дается выражением (9) где γ a — константа регуляризации веса. Кроме того, максимальное значение весов соединений явно ограничено как a 2, максимум . Как и выше, модифицированное правило обучения NBCM (уравнение 9) отличается от исходного правила обучения NBCM (уравнение 8) тремя способами. Во-первых, a i , j остается неотрицательным во время обучения.Во-вторых, a i , j ограничен максимальным весом соединения, a 2, max . В-третьих, есть условие регуляризации веса.
Следует отметить, что уравнение нормализации в уравнении 9 использует глобальную информацию о других активностях нейрона для вычисления нормализованных ответов постсинаптического нейрона. Это все еще согласуется с принципом пластичности Хебба, зависящей только от пре- и постсинаптической активности, поскольку активность постсинаптического нейрона является нормализованной формой активности.Такая нормализация согласуется с экспериментальными данными [47]. Механически эта нормализация может возникать биологически правдоподобным образом через латеральные рекуррентные связи в V1 с физиологически реалистичной нейронной динамикой, описываемой супралинейной стабилизированной сетевой моделью [49].
Обучение
После предварительной обработки естественных стимулов в нашей модели используются входные участки размером 16 × 16 ( M = 16), аналогично предыдущим исследованиям [33, 50, 51], в результате получается 256 ВКЛЮЧЕННЫХ и 256 ВЫКЛЮЧЕННЫХ ячеек LGN. .Мы используем 100 простых ячеек и 100 сложных ячеек во втором и третьем слоях соответственно. Постоянные времени мембраны, τ L и τ S , для LGN и простых клеток приняты равными 10 мс, что физиологически правдоподобно [52]. Частота спонтанного возбуждения, r b, L , для клеток LGN выбрана равной 0,5 Гц, хотя разные значения приводят к аналогичным результатам, потому что частота спонтанного возбуждения является только рабочей точкой для динамической модели [33].Динамическая система модели, описываемой уравнениями 1–3, численно решается с использованием метода Эйлера первого порядка. Система была разработана для 20 итерационных шагов с шагом времени интегрирования 4 мс для расчета откликов как для простых, так и для сложных ячеек. Это позволило сойтись к численно устойчивому решению.
Простые клетки.
Два нижних уровня сети обучаются сначала на наборе данных естественного изображения (набор данных ван Хатерена [37]). Так как в процессе обучения A u, + подходов — A d, — и A u, — подходов — A d, + [33], мы просто установите A u, + = — A d, — и A u, — = — A d, + в начале обучения.Верхняя граница весов связи между LGN и простыми ячейками, a 1, max , установлена на 0,3, так что веса возбуждения не могут превышать 0,3, а веса ингибирования не могут быть меньше -0,3. Уровень разреженности простых ячеек λ S установлен на 0,1. Кроме того, правило обучения (уравнение 5) использует пакет, который содержит 100 случайно выбранных фрагментов изображения размером 16 × 16, которые не имеют временной информации в каждую эпоху, чтобы ускорить процесс обучения, аналогично предыдущим исследованиям [51, 53].Константа регуляризации веса, γ 1 , является небольшой константой и в данном исследовании установлена равной 10 −3 . Скорость обучения η 1 составляет 3. В тренировочном процессе используется 10 5 эпох.
После процесса обучения простых ячеек связи между LGN и простыми ячейками, A u и A d , фиксируются. Затем связи между простыми ячейками и сложными ячейками обучаются на естественном видео с использованием правил обучения, приведенных ниже.
Применение модифицированного правила BCM для сложных ячеек.
В процессе обучения 4 × 10 6 эпох, потому что скорость обучения для весов и порога невелика, принятая равной η a = 10 −3 и η θ = 10 −3 соответственно. Константа регуляризации веса, γ a , установлена на 10 −4 . Максимальный вес соединения, a 2, max , равен 1, поэтому сила связи между простыми и сложными ячейками показывает, насколько сильно простая ячейка объединяется со сложной ячейкой.Количество видеокадров, используемых в каждой итерации, составляет N = 15. Поскольку вход для сложных ячеек, x C = 〈 r S 〉, очень мал при усреднении по N видеокадры, x C увеличивается на 10 при применении модифицированного правила BCM.
Применение модифицированного правила NBCM для сложных клеток.
Те же значения параметров, что и выше, используются для измененного правила NBCM, где это возможно. В тренировочном процессе 4 × 10 6 эпох.Скорость обучения для весов и порога составляет η a = 10 −3 и η θ = 10 −3 , соответственно. Константа регуляризации веса, γ a , равна 10 −4 , а максимальный вес соединения, a 2, max , равен 1. Количество видеокадров, N , равно 1. принято равным 15. Для параметров делительной нормализации в уравнении 9 α — небольшое число, которое позволяет избежать деления на ноль и установлено на 0.01. Коэффициент усиления нормализации, β , принимается равным трем различным значениям, 11, 12 и 13, чтобы исследовать эффект β .
Модифицированное правило NBCM также применяется к естественным изображениям (набор данных ван Хатерена) со случайным пространственным дрожанием, и получаются аналогичные результаты (подробности см. В приложении S1).
Измерение пространственной фазовой инвариантности
Пространственная фазовая инвариантность или частичная инвариантность — одна из наиболее важных характеристик сложных ячеек.Здесь синусоидальные решетки с разными пространственными фазами используются в качестве входных данных для обученной модели, чтобы проверить, инвариантны ли сложные ячейки модели к разным пространственным фазам.
Кривая настройки пространственной фазы.
Сначала проводится исчерпывающий поиск каждой сложной ячейки модели, чтобы найти предпочтительную ориентацию, пространственную частоту и пространственную фазу синусоидальной решетки, которая вызывает максимальный отклик в следующем пространстве параметров: ориентация изменяется от 0 до 180 ° с шаг 15 °; пространственная частота варьируется от 0.05 и 0,4 цикла / пиксель с шагом 0,05 цикла / пиксель; пространственная фаза изменяется от 0 до 360 ° с шагом 10 °. Затем генерируется последовательность синусоидальных решеток с предпочтительной ориентацией, пространственной частотой и пространственными фазами, охватывающими 0–360 ° с шагом 3,6 ° (100 различных пространственных фаз). Эта последовательность синусоидальных решеток аналогична дрейфующим синусоидальным решеткам, используемым в экспериментальных исследованиях. Для каждой сложной ячейки последовательность решеток с разными пространственными фазами используется как вход в модель одна за другой, при этом записывается последовательность откликов для каждой решетки.Следовательно, отклики в зависимости от пространственных фаз могут быть построены в виде кривой настройки пространственной фазы для каждой сложной ячейки. Сложная ячейка, которая полностью фазово-инвариантна, будет иметь плоскую кривую пространственной настройки фазы, в то время как ячейка, которая является избирательной по фазе, будет иметь кривую пространственной настройки фазы в форме колокола.
F 1 / F 0 соотношение.Мовшон, Томпсон и Толхерст [3, 7] обнаружили, что простые и сложные клетки имеют разную степень модуляции отклика, когда они представлены дрейфующими решетками.Впоследствии степень модуляции отклика определяется соотношением F 1 / F 0 [54], где F 1 — составляющая отклика на дрейфующую решетку при временном дрейфе. частота и F 0 — составляющая постоянного тока отклика; т.е. средний отклик во времени на дрейфующую решетку за вычетом спонтанной активности. Клетки идентифицируются как сложные, если F 1 / F 0 <1, и простые, если F 1 / F 0 > 1.Используя активность клеток в ответ на смещение решеток, соотношение F 1 / F 0 используется в качестве количественной меры пространственной фазовой инвариантности [55]. Поскольку пространственная фаза дрейфующих решеток изменяется линейно со временем (скорость изменения определяется временной частотой дрейфующих решеток), в этом исследовании для имитации дрейфующих решеток используются синусоидальные решетки с разными пространственными фазами.
Настройка ориентации при измерении
Подобно измерению пространственной настройки фазы, сначала проводится исчерпывающий поиск каждой сложной ячейки модели, чтобы найти предпочтительную пространственную частоту, ориентацию и пространственную фазу синусоидальных решеток, которые генерируют максимальный комплексный ответ ячейки.Затем синусоидальные решетки с предпочтительной частотой, все возможные фазы, охватывающие диапазон 0–360 ° с размером шага 3,6 °, и все возможные ориентации в диапазоне от 0 до 180 ° с размером шага 1,8 °, представляются модельным ячейкам. Регистрируется средний отклик, r k , на решетки со всеми возможными фазами для каждой ориентации, ϕ k . Ориентации, ϕ k , находятся в диапазоне от 0 до 180 ° с размером шага 1.8 °. Следовательно, существует 100 пар r k и ϕ k , которые генерируют кривую настройки ориентации для каждой сложной ячейки модели. Эта кривая настройки ориентации затем используется для вычисления предпочтительной ориентации и ширины полосы ориентации, как указано ниже.
Предпочтительная ориентация.
Предпочтительная ориентация сложной клетки — это ориентация, которая генерирует максимальный ответ. После получения кривой настройки ориентации предпочтительной ориентацией является просто ориентация пика кривой настройки ориентации.
Ширина полосы ориентации.
Ширина полосы ориентации, используемая в этой статье, равна половине ширины полосы , которая также использовалась в предыдущих экспериментальных исследованиях [56, 57]. Подобно Ringach et al. В [57] полученная ранее кривая настройки ориентации сначала сглаживается фильтром Хеннинга с полушириной 13,5 ° на полувысоте. Половина полосы — это просто ширина на высоте сглаженной кривой настройки ориентации, указывающая, насколько широко ячейка настроена на предпочтительную ориентацию.Ячейки с шириной полосы ориентации, близкой к 90 °, инвариантны к ориентациям.
Анализ сложных ячеек с использованием модели нелинейного ввода
Недавно Almasi et al. [11] применили структуру нелинейной входной модели (NIM) для анализа радиочастотных свойств сложных ячеек и обнаружили широкий диапазон типов нелинейных ответов в cat V1. Мотивированные этим исследованием, мы используем здесь структуру NIM, чтобы определить степень, в которой теоретически изученные модельные сложные клетки могут объяснить различные свойства ответа, наблюдаемые у кошки V1.
Модель нелинейного ввода.
Модель нелинейных входов (NIM), предложенная МакФарландом и др. [58] — это общая модель, которая предполагает минимальные, но биологически мотивированные ограничения на лежащие в основе нейронные вычисления; т.е. фильтры и нелинейности. Компоненты NIM, приспосабливаемые к данным, могут дать ценную информацию о механизме нейронных вычислений.
Структура NIM изображена на рис. 3 и предполагает иерархическую архитектуру, в которой ответ скорости всплеска, r , является нелинейной функцией входного зрительного стимула, s , заданного как [58] (10) где h k обозначает k -й пространственный RF-фильтр, а g k (⋅) обозначает нелинейную функцию (называемую входной нелинейностью), применяемую к выходному сигналу фильтра.Выход каждого фильтра является внутренним произведением стимула и каждого фильтра ( h k ⋅ s ). Модель суммирует входные данные от K параллельных входных потоков с произвольной нелинейностью, которые затем передаются через функцию пиков, которая дает скорость срабатывания для ячейки. Фильтры и входные нелинейности описываются непараметрически, в то время как функция пиков считается монотонно возрастающей пороговой функцией с формой, описываемой параметрически как (11) где σ , θ и δ — параметры, определяющие форму функции.Следует отметить, что, несмотря на биологическую мотивацию NIM, фильтры не обязательно соответствуют анатомическим клеткам (субъединицам), объединенным сложной клеткой, а скорее обеспечивают функциональную основу, которая может иметь возможные интерпретации. При подгонке используется оценка максимального правдоподобия параметров модели, включая радиочастотные фильтры, входные нелинейности и пиковую нелинейность, с учетом стимула и отклика. В целом, подгонка NIM предполагает только иерархическую структуру и общую форму пиковой нелинейности, в то время как все остальные аспекты оцениваются на основе стимула (вход) и реакции (выход).Во время процедуры подбора NIM мы предполагаем, что ВЧ-структура каждой сложной ячейки модели содержит два фильтра и, соответственно, две соответствующие входные нелинейности.
Рис. 3. Структура нелинейной входной модели (NIM).
Фильтр и нелинейности ввода определяют, как он реагирует на визуальный ввод. Сумма откликов всех фильтров затем передается нелинейной функции пиков для генерации отклика модели.
https: // doi.org / 10.1371 / journal.pcbi.1007957.g003
Ширина ориентации, ширина пространственной частоты и ширина пространственной фазы.
Обычные меры степени настройки ячеек V1 используют набор стандартных стимулов, таких как синусоидальные решетки, для оценки ширины полосы настройки для таких характеристик, как ориентация, пространственная частота и пространственная фаза. Напротив, характеристика, использованная Almasi et al. [11] оценили уникальный набор пространственных характеристик, к которым чувствительна каждая ячейка, а затем оценили степень настройки этой ячейки только на эти особенности.Это было основано на оценке нелинейного отклика на все эти особенности, при этом клетка сильно реагировала на одни и слабо на другие. Набор пространственных характеристик, к которым чувствительна ячейка, идентифицируется следующим образом. Каждый фильтр в NIM соответствует пространственному объекту, который идентичен по пространственной структуре самому фильтру. Это основная характеристика ячейки и пространственная характеристика, к которой фильтр чувствителен, когда эта функция появляется встроенной в визуальный стимул. Поскольку NIM может иметь несколько фильтров, ячейка модели может быть чувствительной к нескольким пространственным характеристикам.Набор всех функций, к которым чувствительна ячейка NIM, задается подпространством функций, охватываемым основными функциями; он включает в себя все возможные линейные комбинации основных характеристик. Полную интерпретацию NIM см. В [11].
На основе нелинейного отклика клетки на ее подпространство функций, настройка на ориентацию, пространственную частоту и пространственную фазу этих функций определяется следующим образом. Во-первых, ориентация, пространственная частота и пространственная фаза вычисляются для всех объектов в подпространстве объектов ячейки.Это получается из пика амплитуды двумерного преобразования Фурье признака (см. [11]). Затем функция, к которой ячейка наиболее чувствительна, определяется как функция из подпространства ячейки, требующая наименьшего контраста для управления ячейкой с заданной эталонной скоростью. Наконец, вычисляется ширина настройки. Например, ширина ориентации определяется как диапазон ориентаций функций из подпространства ячейки, на которые ячейка показала инвариантный ответ. Эта инвариантность для заданной эталонной скорости включает только те функции, которым для достижения этой скорости требуется менее чем вдвое больший контраст, необходимый для наиболее чувствительной функции ячейки.Аналогичный расчет применяется для ширины настройки пространственной частоты и пространственной фазы. Максимальные значения ширины ориентации, ширины пространственной частоты и ширины пространственной фазы считаются равными 180 °, 0,6 циклов в сутки (циклов на градус) и 360 ° соответственно. Гистограммы этих трех показателей как для модельных, так и для экспериментальных данных, наряду со статистическим сравнением с использованием t-критерия Велча, генерируются для исследования производительности модели.
Обсуждение
Естественное видео vs.дрожащие естественные изображения
Сложные клетки обучаются на естественном видео в этой статье и на дрожащих естественных изображениях в приложении S1. Пространственно-временная информация, содержащаяся в последовательных кадрах либо естественного видео, либо дрожащих участков естественного изображения, позволяет модели изучать сложные ячейки, которые хорошо соответствуют экспериментальным данным. Последовательные кадры видео содержат визуальную информацию в этом движущемся мире, в то время как дрожащие изображения генерируют визуальные входы, похожие на глазные саккады.
Модифицированное правило BCM против модифицированного правила NBCM
Как модифицированные правила пластичности BCM, так и модифицированные правила пластичности NBCM могут изучать входные веса сложных ячеек модели, что приводит к пространственной фазовой инвариантности и ориентационной селективности. Однако сложные клетки, которые обучались с использованием модифицированного правила BCM, были очень похожи друг на друга по своим свойствам настройки, в то время как сложные клетки, которые обучались с использованием модифицированного правила NBCM, демонстрировали большое разнообразие настройки на ориентацию и пространственную фазу.Сходство между распределениями свойств настройки в экспериментальных и модельных данных, полученных с помощью модифицированного правила NBCM, предполагает, что это правило может хорошо объяснять сложные свойства клеток и что сложные клетки могут быть изучены в биологически правдоподобной модели нейронной сети.
Нормализация ответа
Нормализация ответа была реализована в модифицированной модели NBCM как форма модуляции разделяющего усиления, зависящая от активности всех других нейронов в сети.Он играет важную роль в модели, позволяя ей изучать сложные клетки с различной настройкой, поскольку он вводит конкуренцию между клетками, которая препятствует одновременному реагированию клеток. Без нормализации модельные сложные клетки, как правило, имеют одинаковую настройку и не имеют разнообразия, наблюдаемого в экспериментальных данных. Нормализация ответов в уравнении 9 была впервые предложена Хигером [46] и считается каноническим нейронным вычислением, для которого есть веские доказательства [47]. Хотя явно разделяющую форму нормализации ответа, предложенную Хигером, трудно обосновать биофизически на уровне отдельного нейрона, Rubin et al.[49] предположили, что нормализация может быть реализована в коре с использованием стабилизированной супралинейной сети, которая использует повторяющиеся связи. Результаты, представленные в этом исследовании, показывают, что модель может изучать сложные ячейки с использованием иерархической структуры, но это не исключает важности повторяющейся структуры, поскольку повторяющиеся соединения могут быть важны для реализации нормализации в нейронных цепях.
Для нормализации в нашей модели (уравнение 9) α — это небольшая положительная константа в знаменателе, которая позволяет избежать деления на ноль при нормализации.Если α больше по сравнению с ∑ ( r C ) 2 , нормализация — это просто постоянное масштабирование нейронного ответа. Поэтому выбираем малое значение α = 0,01. Другие небольшие значения α , такие как 10 −3 , дадут аналогичные результаты (см. Пример на S1 Fig). Значение β контролирует величину ответов после нормализации. Когда & beta; велико, изученные сложные клетки объединяют меньше простых ячеек и, таким образом, менее инвариантны к пространственной фазе.Другими словами, β контролирует уровень конкуренции между клетками, и большие значения приводят к более сильной конкуренции, так что обученные клетки настраиваются более отчетливо. Взаимодействие между нормализацией и правилом обучения модели потенциально может учитывать больше экспериментальных данных с разными значениями параметров.
Расхождения между модельными и экспериментальными данными
Модель, предложенная в этой статье, может объединять входные данные простых ячеек в подпространство сложных ячеек.Однако, хотя основные черты модели качественно согласуются с экспериментальными данными, некоторые расхождения между моделью и экспериментальными данными существуют и еще предстоит изучить.
Модель может учитывать разнообразие настраивающих свойств сложных клеток зрительной коры головного мозга кошек, о которых сообщили Almasi et al. [11], но есть некоторые различия в распределении статистики населения. Кроме того, экспериментальные данные Ringach et al. [57] показывает большее разнообразие полос ориентации, чем данные модели.Это может быть связано с тем, что модельные клетки являются лишь подмножеством корковых клеток. В качестве альтернативы мы не можем исключить возможность того, что выбор свободных параметров в нашей модели может привести к результатам с большим диапазоном ширины полосы ориентации. Другая причина различий в полосе пропускания ориентации между моделью и экспериментальными данными может быть связана со зрительными стимулами и временной динамикой нервной системы. В экспериментальном исследовании, в котором измерялась избирательность ориентации у макаки V1 [57], дрейфующие синусоидальные решетки использовались в качестве визуальных стимулов, которые задействуют временную динамику клеток.Однако при расчете свойств настройки пространственной фазы ячеек модели использовались установившиеся отклики на каждую пространственную фазу дрейфующих решеток. Кроме того, текущая модель не учитывает временную динамику клеток. Исследование модели, включающей временную динамику, оставлено для будущих исследований.
Последняя модель, основанная на прогнозирующем кодировании
Franciosini et al. [59] недавно представили моделирование сложных ячеек на основе прогнозирующего кодирования.Отличие от предложенной здесь модели состоит в том, что в их модели использовались симметричные связи между входами простых ячеек и простыми ячейками, а также между входами сложных ячеек и сложными ячейками. Кроме того, существует два этапа объединения между простыми ответами ячеек и сложными входами ячеек: пространственное максимальное объединение с размером ядра 2 × 2 и групповое объединение между соседними группами. После изучения связей между входами простых ячеек и простыми ячейками, а также между входами сложных ячеек и сложными ячейками, их модель может изучить топографическую карту простых ячеек, так что модели сложных ячеек объединяют локальные простые ячейки рецептивных полей, которые похожи по настройке на ориентацию, но переменная при настройке на пространственную фазу для достижения пространственной фазовой инвариантности.Это вероятный механизм у животных, таких как кошачьи и приматы, у которых есть такие топографические карты ориентации, но не применим к животным, у которых нет этих карт в зрительной коре, например, грызунам и зайцеобразным. Обучение сложных клеток зависит от механизма объединения, но как этапы объединения в их модели реализуются биологически правдоподобным образом, не ясно. Еще одно ограничение модели состоит в том, что правило обучения не является локальным, а предполагаемые симметричные связи не являются биологически реалистичными.
Эффективное кодирование
Принцип эффективного кодирования и связанное с ним правило обучения помогает единицам модели изучать особенности, что также делает их очень избирательными по отношению к предпочтительным функциям. Конкуренция, вызванная эффективным кодированием, необходима для достижения избирательности и разнообразия ответов либо через обратную связь [33, 60], либо через боковые связи [50, 61]. Однако конкуренция также может быть очень сильной, как видно из рис. 11 из Olshausen and Field [53], где реакция с прямой связью намного сильнее, чем реакция в модели эффективного кодирования.
Основываясь на нашем предположении об иерархической структуре, мы провели обширное исследование, чтобы понять, может ли эффективное кодирование, реализованное как модель разреженного кодирования, изучить правильные входные данные простых ячеек для сложных ячеек, найдя эффективное представление естественных стимулов с временной информацией. Мы обнаружили, что модели сложных ячеек могут научиться объединять входные данные простых ячеек с широким диапазоном пространственной селективности фазы. Однако сильная конкуренция между сложными клетками, вызванная эффективным кодированием, чтобы сделать ответы разреженными, подавляет ответы модельных сложных клеток на все, кроме небольшого набора пространственных фаз.Таким образом, они ведут себя как простые клетки, которые очень избирательны по отношению к пространственной фазе (подробности см. В Приложении S2).
Однако модели на основе BCM, предложенные в этой статье, могут изучать свойства рецептивного поля сложных клеток. Модифицированное правило BCM может изучать полезные представления, а нормализация ответа вводит конкуренцию в сеть. С точки зрения конкуренции, нормализация ответа намного мягче, чем эффективное кодирование, потому что эффективное кодирование сводит активность многих ячеек к нулю, в то время как нормализация только регулирует уровни активности.Следовательно, мягкая конкуренция, вводимая нормализацией отклика, помогает модели изучать различные сложные ячейки, при этом позволяя широкую настройку на входные данные простых ячеек с различной пространственной фазовой избирательностью.
Ограничения и будущая работа
Модель обучения сложных клеток, предложенная здесь, может объяснить появление свойств рецептивного поля экспериментально зарегистрированных сложных клеток. Однако некоторые ограничения остаются в текущей модели и могут быть улучшены в дальнейшем.Во-первых, процессы обучения простых и сложных клеток раздельны; т.е. сначала обучаются простые клетки, а затем сложные. Во-вторых, сложная модель не имеет временной динамики (хотя простая клеточная модель имеет). Наконец, нормализация ответа в этой статье не имеет явной биологически правдоподобной реализации. Для будущей работы в модель можно включить более унифицированную модель с временной динамикой и нормализацией, чтобы учесть сложные клеточные ответы, что потенциально может уменьшить расхождения между моделью и экспериментальными данными.
Разница между свойствами и полями
Существует очень существенная разница между полем и свойством внутри класса. Очевидно, что оба будут открывать состояние объекта внешнему миру. Принципы объектно-ориентированного программирования гласят, что данные скрыты и защищены от случайного изменения. Скрытие данных — это ключевой термин, описывающий объектно-ориентированный язык. Это означает, что внутренняя работа класса должна быть скрыта от внешнего мира. Итак, если вы открываете поле члена, вы фактически открываете внутреннюю реализацию класса.Поэтому мы заключаем поля в свойства, чтобы дать нам возможность изменять реализацию, не нарушая код в зависимости от нас. Приведенные выше утверждения подчеркивают, что свойства должны использоваться для определения открытого интерфейса класса, в то время как поля предназначены для использования в частной, внутренней работе класса.
Свойства и поля
Поле
Поле — это переменная, объявленная непосредственно в классе или структуре. Как правило, разработчики должны использовать поля только для переменных, которые имеют частный или защищенный доступ.Поля должны (большую часть времени) оставаться закрытыми для класса и доступны через свойства get и set.
открытый класс TestClass { // Здесь объявите поле _testField, оно является частным для вашего класса и хранит фактические данные. частная строка _testField; // Поля должны быть приватными для класса и доступны через свойства get и set. публичная строка TestField { получать { return _testField; } установленный { _testField = значение; } } }Свойства
Свойство — это член, который предоставляет гибкий механизм для чтения, записи или вычисления значения частного поля.Свойства предоставляют поля, что означает, что они позволяют классу предоставлять общий способ получения и установки значений, скрывая реализацию. Свойства обеспечивают уровень абстракции, позволяющий изменять поля, не влияя при этом на внешний способ доступа к ним вещей, использующих ваш класс.
Преимущества
Свойства имеют главное преимущество, позволяя вам изменять способ доступа к данным объекта, не нарушая его общедоступный интерфейс.