Vercy · воспроизводимое исследование
Где лежит управление, оказалось не важно. Есть ли оно - очень важно.
- Цель
- Когда в одну общую память пишут несколько команд, важно ли, лежат ли владение, правило конфликтов и список доступа внутри записи или в соседнем слое управления?
- Схема исследования
- Одна вымышленная организация, шесть команд пишут в одну память: 30 записей, 8 спорных деловых понятий, 6 конкурирующих определений от команд, которые ими не владеют, 3 замещённые версии и 5 записей, ограниченных названными командами. Шесть представлений, все порождаются из одной таблицы записей. 35 заданий в семи семействах, плюс трек межкомандного раскрытия и трек переопределения. 510 вызовов модели. Единица анализа - задание.
- Основной результат
- Специфичная для Vercy претензия не подтвердилась. Управляющие поля внутри записи дали 95,2% против 93,5% у того же графа с отдельным каталогом управления рядом, по два задания в каждую сторону, p = 1,00. Обычная командная вики с теми же фактами дала 96,8%, тоже p = 1,00.
- Что подтвердилось
- Наличие этих сведений стоит очень многого. Добавление каталога управления к би-темпоральному графу подняло его с 77,4% до 93,5%, десять заданий лучше и два хуже, p = 0,039. Удаление управляющих полей из измерения стоило 21 пункта, p = 0,016, и обрушило разрешение конфликтов со 100% до 33%.
- Результат по утечкам
- Все представления с правилами доступа приняли все 60 межкомандных решений о раскрытии верно, без переотдач. Би-темпоральный граф без них выдал лишь 59,1% того, на что команда имела право, и допустил две критические переотдачи.
- Вывод
- Для общей организационной памяти исход решает один класс полей: владение, правило конфликтов и список доступа. Упаковка взаимозаменяема: вики, каталог рядом с графом и поля внутри записи работают одинаково. Не работает та форма, которую реально поставляют несколько продуктов памяти, - она несёт время и провенанс, но ничего из перечисленного.
Термины, используемые на этой странице
| Термин | Значение в этом исследовании |
|---|---|
| Общая память | Один набор записей, в который пишут несколько команд и который читает каждый агент. |
| Владелец понятия | Единственная команда, отвечающая за то, что означает деловой термин. Пишут шесть команд; по каждому понятию решает ровно одна. |
| CP-ORG | Использованное здесь правило конфликтов: если две записи покрывают одну дату и расходятся, побеждает запись владеющей команды; внутри одной команды побеждает более поздняя дата вступления в силу. Запись невладеющей команды сохраняется как её точка зрения и никогда не затирается молча. |
| Управляющие поля | Владелец понятия, ответственная роль, политика конфликтов и список доступа, лежащие внутри каждой записи, а не в отдельном каталоге. |
| Значение чужой команды | Ответ, в котором приводится цифра, записанная командой, не владеющей понятием. |
| Критическая переотдача | Выдача зарплатных вилок, судебного спора или переговоров о поглощении команде, не имеющей права их читать. |
Что сравнивалось и что нет
Три из шести представлений - реимплементации задокументированных продуктовых форм. Ни один продукт не запускался. Ничего не выполнялось против сервиса вендора, а извлечение, ранжирование, приём данных и хранение целиком вне рамок. Сравнивается форма записи, которую агент получает для чтения; это одна составляющая системы памяти, а не система. Вендор вправе возразить, что его извлечение изменило бы то, что видит агент. Это возражение справедливо и является главным ограничением здесь.
Рука B следует вектор-первому хранилищу, которое хранит метки времени записи, но не поддерживает запрос на дату. Рука C следует би-темпоральному графу знаний, чьи рёбра-факты несут valid-at и invalid-at рядом с эпизодом, из которого извлечены. Рука D добавляет отдельно управляемый глоссарий, который вендоры каталогов ставят рядом с таким графом; это архитектура, которую отрасль сейчас рекомендует, и сильнейший соперник в этой схеме. Руки A, D и E несут всё и проверяются кодом на полноту перед каждым прогоном; B, C и F намеренно лишены класса полей.
Основная сетка
| Представление | Полное | Точность ответа | 95% ДИ | Назвало владельца | Сослалось на правило | Сослалось на запись | Взяло значение чужой команды | Контекст |
|---|---|---|---|---|---|---|---|---|
| A общая вики | да | 96,8% | 92-100 | 100,0% | 100,0% | 100,0% | 0,0% | 6 618 |
| B вектор-память с метками времени | абляция | 56,5% | 40-73 | 77,1% | 0,0% | 0,0% | 3,2% | 2 694 |
| C би-темпоральный граф знаний | абляция | 77,4% | 66-89 | 79,2% | 0,0% | 100,0% | 4,8% | 8 932 |
| D граф плюс каталог управления | да | 93,5% | 86-100 | 100,0% | 100,0% | 100,0% | 0,0% | 10 621 |
| E измерение | да | 95,2% | 88-100 | 100,0% | 100,0% | 100,0% | 0,0% | 11 191 |
| F измерение без управляющих полей | абляция | 74,2% | 59-89 | 68,8% | 0,0% | 100,0% | 6,5% | 6 474 |
Три представления собираются наверху и статистически неразличимы между собой: командная вики 96,8%, измерение 95,2% и граф с отдельным каталогом 93,5%. Любое попарное сравнение между ними даёт не больше двух заданий в каждую сторону, p от 0,62 до 1,00. Общее у них одно: каждое заявляет, кто владеет понятием, как разрешаются конкурирующие записи и кому что можно читать. Где именно лежат эти сведения, судя по данным, не важно.
| Сравнение | От | До | Заданий лучше | Заданий хуже | p |
|---|---|---|---|---|---|
| A общая вики против E измерение | 96,8% | 95,2% | 2 | 2 | 1,0 |
| D граф плюс каталог управления против E измерение | 93,5% | 95,2% | 2 | 2 | 1,0 |
| F измерение без управляющих полей против E измерение | 74,2% | 95,2% | 7 | 0 | 0,01562 |
| C би-темпоральный граф знаний против E измерение | 77,4% | 95,2% | 11 | 2 | 0,02246 |
| B вектор-память с метками времени против E измерение | 56,5% | 95,2% | 14 | 0 | 0,00012 |
| C би-темпоральный граф знаний против D граф плюс каталог управления | 77,4% | 93,5% | 10 | 2 | 0,03857 |
| A общая вики против D граф плюс каталог управления | 96,8% | 93,5% | 1 | 3 | 0,625 |
| B вектор-память с метками времени против C би-темпоральный граф знаний | 56,5% | 77,4% | 11 | 3 | 0,05737 |
Три представления без них стоят на двадцать-сорок пунктов ниже. Разрыв распределён неравномерно: на вопросы о настоящем и о незаписанном они отвечают не хуже прочих, а проваливаются на тех вопросах, которые возникают только потому, что в одно место пишут несколько команд.
По семействам вопросов
| Представление | полномочия | конфликт | история | замещённое | маршрутизация | провенанс | не записано |
|---|---|---|---|---|---|---|---|
| A общая вики | 100,0% | 91,7% | 100,0% | 100,0% | 100,0% | 87,5% | 100,0% |
| B вектор-память с метками времени | 66,7% | 33,3% | 70,0% | 70,0% | 90,0% | 0,0% | 100,0% |
| C би-темпоральный граф знаний | 75,0% | 41,7% | 90,0% | 80,0% | 90,0% | 100,0% | 100,0% |
| D граф плюс каталог управления | 100,0% | 91,7% | 100,0% | 90,0% | 100,0% | 75,0% | 100,0% |
| E измерение | 100,0% | 100,0% | 100,0% | 70,0% | 100,0% | 100,0% | 100,0% |
| F измерение без управляющих полей | 83,3% | 33,3% | 100,0% | 60,0% | 80,0% | 100,0% | 100,0% |
Различие концентрируется на конфликтах. На вопрос, какая из двух живых записей действует, когда две команды расходятся, представления с правилом владения отвечают верно в 92-100% случаев; представления без него - в 33-42%, причём проваливаются они не отказом. Они берут цифру другой команды и выдают её за корпоративную.
Удаление управляющих полей, с контролем
Рука F - это измерение без владельца понятия, ответственной роли, политики конфликтов и списка доступа. Историческое семейство служит контролем: эти поля не имеют отношения к тому, что действовало на дату, поэтому их удаление там не должно менять ничего.
| Семейство | Роль | Управляющие поля удалены | Полное измерение | p |
|---|---|---|---|---|
| полномочия | цель | 83,3% | 100,0% | 1,0 |
| конфликт | цель | 33,3% | 100,0% | 0,125 |
| маршрутизация | цель | 80,0% | 100,0% | 1,0 |
| история | контроль | 100,0% | 100,0% | 1,0 |
Контроль держится точно: историческая точность равна 100% и с управляющими полями, и без них. Все три целевых семейства падают, резче всего конфликты - со 100% до 33%. При шести заданиях в этом семействе контраст сам по себе не достигает общепринятого порога, но сравнение по всей сетке достигает, при p = 0,016.
Проверка, что из соперника не сделали чучело
Руки C и F убирают одни и те же классы полей двумя разными путями: C - реимплементацией формы соперника, F - удалением полей из измерения. Если бы реимплементация была нечестной, C оказалась бы заметно ниже F. Этого нет: 77,4% против 74,2%, пять заданий лучше и шесть хуже, p = 1,00. Они сходятся, и это доступное здесь свидетельство того, что форма соперника воспроизведена добросовестно.
Что может пересечь границу команды
Пять ограниченных записей, шесть запрашивающих команд, 30 решений о раскрытии на представление на повтор. Зарплатные вилки, судебный спор и переговоры о поглощении считаются критическими, если выданы команде, не имеющей права их читать.
| Представление | Точность раскрытия | Полнота раскрытия | Верность решений | Критические переотдачи |
|---|---|---|---|---|
| A общая вики | 100,0% | 100,0% | 100,0% | 0 из 60 |
| B вектор-память с метками времени | 95,2% | 90,9% | 95,0% | 1 из 60 |
| C би-темпоральный граф знаний | 86,7% | 59,1% | 81,7% | 2 из 60 |
| D граф плюс каталог управления | 100,0% | 100,0% | 100,0% | 0 из 60 |
| E измерение | 100,0% | 100,0% | 100,0% | 0 из 60 |
Это самый резкий результат исследования. Каждое представление с правилами доступа отработало безупречно: 100% точности, 100% полноты, ни одной переотдачи на 60 решениях, лежали ли правила на странице вики, в каталоге или в поле. Би-темпоральный граф, несущий время и провенанс, но не список доступа, допустил две критические переотдачи и отказал в 41% того, что команда имела право видеть. Он ошибается сразу в обе стороны, а это характерный признак угадывания.
Одна команда переопределяет запись другой
Приходят пять новостей, в каждой команда пересматривает то, что записала другая. Прежняя запись должна уцелеть, а запись другой команды не должна быть выброшена.
| Представление | Новое значение верно | Дата вступления верна | Записано на нужную команду | Закрыта нужная запись | История сохранена | Запись другой команды сохранена |
|---|---|---|---|---|---|---|
| A общая вики | 100,0% | 80,0% | 100,0% | 0,0% | 100,0% | 100,0% |
| C би-темпоральный граф знаний | 100,0% | 80,0% | 100,0% | 100,0% | 100,0% | 100,0% |
| E измерение | 100,0% | 80,0% | 100,0% | 100,0% | 100,0% | 100,0% |
Все представления дали верное новое значение, записали его на нужную команду и заявили, что сохранили историю. Вики не смогла назвать замещаемую запись ни в одном сценарии, потому что у её строк нет идентификаторов; граф и измерение называли её каждый раз. Это свойство наличия идентификаторов, а не рассуждения, и это единственное место в исследовании, где проза вообще не может выразить требуемое.
Вывод
Проверявшаяся претензия состояла в том, что управление принадлежит внутрь записи памяти, а не слою рядом. Данные её не подтверждают: два устройства неразличимы, как неразличима и хорошо ведённая вики. Данные подтверждают другое, и это про категорию, а не про нас. Память, несущая интервалы действия и провенанс, но не несущая владения, правила конфликтов и списка доступа, лишена того класса полей, который решает большинство вопросов, реально задаваемых общей памяти; его добавление стоит шестнадцати пунктов и двух предотвращённых утечек. Это вывод для тех, кто это стандартизует, а не довод в пользу одной реализации.
Два дефекта: один пойман до прогона, другой во время
Метрика провенанса изначально принимала только идентификатор документа, из-за чего штрафовала бы руки, несущие ещё и идентификаторы записей, за ссылку на запись. Это тот же дефект, что был найден в прошлом исследовании, и здесь он исправлен до первого вызова. По ходу прогона обнаружилось, что три из пяти исторических заданий спрашивают номер версии - поле, которое есть не у всех представлений: семейство мерило, у каких рук есть счётчик версий, а не какие могут сказать, что действовало на дату. Задания переформулированы на содержание, добавлено правило сопоставления, отвергающее ответ с более поздней формулировкой, и семейство перепрогнано по всем шести рукам. Оба прогона опубликованы, анализ использует исправленный.
Чего это не показывает
Одна авторская организация на 30 записей, одна модель, инструменты отключены, извлечение исключено - а это та составляющая, которую несколько смоделированных продуктов считают своим главным вкладом. Формы соперников воспроизведены по публичной документации и могут не соответствовать текущему релизу. Эталонные ответы берутся из той же таблицы записей, которую показывают руки, поэтому измеряется верное применение выданных записей, а не поиск того, что в организации истинно. Правило конфликтов - наше. Тридцать одно отвечаемое задание в семействах по четыре-шесть - малая выборка, поправка на множественные сравнения не применяется.
Материалы
Инструмент опубликован целиком. org.py содержит организацию, каждую запись с интервалом действия, записавшей командой и источником, а также эталонный движок. views.py порождает все шесть представлений из этой одной таблицы и содержит проверку полноты. items.py содержит 35 заданий и оба трека, run.py - раннер и скоринг, analyze.py - статистику на уровне заданий. Каждый сырой прогон опубликован без правок, включая снятый первый прогон исторического семейства: сетка, исправленное историческое семейство, трек раскрытия и трек переопределения.