УПРАВЛЕНИЕ ВЕРСИЯМИ ПРЕЦЕДЕНТОВ
MANAGING VERSIONS OF CASES

УРОВЕНЬ ТЕХНИКИ
Пользователи сложных технических программных систем, таких как используемые для моделирования нефтегазовых систем, часто создают несколько прецедентов или сценариев для учета неопределенности в известных входных параметрах для программной системы или для испытания различных версий вариаций входных параметров в анализе возможных вариантов. Часто программные системы выполняют операции над входными данными прецедента и создают выходные данные. Управление получающимися в результате версиями прецедентов и получающимися в результате выходными данными может представлять сложности.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг. 1 изображает иллюстрацию способа согласно предшествующему уровню техники управления версиями прецедентов.
Фиг. 2 изображает иллюстрацию системы для создания и управления прецедентами.
Фиг. 3, 4A, 4B, 5 и 6 изображают операцию слоя интеллектуального перевода.
Фиг. 7 изображает признаки системы для создания и управления прецедентами.
Фиг. 8 изображает файл изменений и одну запись из файла изменений.
Фиг. 9 изображает файл прецедентов и одну запись из файла прецедентов.
Фиг. 10-14 и 16 изображают иерархию среди прецедентов.
Фиг. 15 и 17 изображают иерархию среди прецедентов в полях имени и родителя записи файла прецедентов.
Фиг. 18 изображает иерархический результат поиска.
Фиг. 19 изображает отображение изменений от родительского прецедента к дочернему прецеденту.
Фиг. 20 изображает выбор прецедентов.
Фиг. 21 изображает вид различия между двумя прецедентами.
Фиг. 22 изображает блок-схему.
ПОДРОБНОЕ ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
Способ 105 согласно предшествующему уровню техники для управления версиями прецедентов, иллюстрируемый на фиг. 1, включает в себя идентификацию прецедента. "Прецедент" определяется как набор входных данных, таких как входной файл(ы) 110, используемый для приведения в действие средства моделирования, такого как программные средства 115, которое производит выходные данные, такие как выходной файл(ы) 120. Некоторые программные средства обеспечивают возможность пользователю программных средств вводить примечания или комментарии о прецеденте, которые видны, когда пользователь открывает прецедент для анализа в другой раз. Некоторые программные средства, такие как программные средства моделирования резервуара NEXUS патентообладателя по настоящей заявке, обеспечивают возможность пользователям вручную создавать иерархическую систему прецедентов. Пользователь отслеживает отношение между прецедентами (например, прецедент B создан путем копирования прецедента A) и изменения в прецедентах (например, температура резервуара изменяется до 200 градусов Цельсия) путем записи такой информации в лабораторный журнал 125.
Будет полезно выполнить поиск среди прецедентов, каждый из которых может иметь множество вариаций, относящихся к множеству различных проектов, сохраненных в лабораторном журнале 125. Дополнительно, будет полезно иметь возможность категоризации прецедентов с использованием особенностей прецедентов, сохраненных в лабораторном журнале 125. Например, пользователь может хотеть увидеть прецеденты или сценарии (т.е. наборы связанных прецедентов), над которыми он работал за последние шесть месяцев, которые редактировались за последние пять недель. Еще дополнительно, программные средства 115 могли использовать один или несколько внешних компьютерных файлов 130 в обработке прецедента. Например, пользователь может принимать динамическую таблицу, файл изображения или документ другого типа, который содержит данные или информацию, относящуюся к прецеденту или сценарию. Пользователь может найти полезным знать, какой внешний файл(ы) 130 использовали в обработке прецедента или сценария. Пользователь может дополнительно найти полезным сохранить копию внешнего файла(-ов) 130 так, чтобы обработка прецедента или сценария могла быть воспроизведена точнее.
Один вариант осуществления системы 205 для создания и управления прецедентами и сценариями показан на фиг. 2. Далее техническое описание будет рассматривать создание и управление прецедентами. Следует понимать, что создание и управление сценариями использует схожие методики.
В одном варианте осуществления система 205 включает в себя слой 210 интеллектуального перевода, который принимает "пользовательские данные" и/или "технические данные" 215 через пользовательский интерфейс и преобразует их, через изменения формата, вычисления, переупорядочение и/или подобные операции, в форму, которая соответствует входной спецификации программных средств 115 (т.е. требуемые модельные данные 220, которые входят в состав стека 225 технологий).
В одном варианте осуществления слой 230 управления данными создает и управляет прецедентами, как рассмотрено более подробно ниже. В одном варианте осуществления слой вычисления 235 выполняет вычисления, например, модели с использованием программных средств 115. В одном варианте осуществления другие слои 240 выполняют другие функции, такие как отображение модельных данных на присоединенных мониторах, осуществление связи с другими системами через сети, такие как локальная сеть или Интернет, распечатка модельных данных и другие подобные функции.
Примеры операции согласно одному варианту осуществления слоя 210 интеллектуального перевода показаны на фиг. 3, 4A, 4B и 5. Слой 210 интеллектуального перевода обеспечивает возможность пользователю системы 205 вводить "пользовательские данные" и/или технические данные 215 с использованием параметров и единиц, которые знакомы пользователю. Например, в одном варианте осуществления, показанном на фиг. 3, пользователь ввел параметры на экране 305, который отображается на компьютерном мониторе и управление которым обеспечивается с использованием компьютера и его периферийных устройств, таких как клавиатура, мышь, графический планшет и т.д. Эти параметры, такие как длина резервуара, ширина резервуара и т.д., знакомы геологам и инженерам-нефтяникам, которые с большой вероятностью будут использовать такую систему. В одном варианте осуществления слой 210 интеллектуального перевода получает значения параметров температуры резервуара и относительной плотности газа, введенных пользователем, что выделено пунктирной рамкой на экране 305, и вычисляет данные в выходном файле "давление-объем-температура" ("PVT"), показанном внизу на фиг. 3, который является данными, полезными для программных средств 115.
Подобным образом в одном варианте осуществления слой 210 интеллектуального перевода принимает пользовательский ввод длины резервуара, ширины резервуара, площади резервуара и толщины резервуара, показанных выделенными верхней пунктирной рамкой на фиг. 4A, и количество ступеней трещин, расстояние между трещинами, половинную длину трещин, ширину трещин и высоту трещин, указанных нижней пунктирной рамкой на фиг. 4A, все из которых являются знакомыми параметрами для геологов и инженеров-нефтяников, и вычисляет сеточный файл, как показано на фиг. 4B, который является данными, полезными для программных средств 115.
Подобным образом, в одном варианте осуществления слой 210 интеллектуального перевода комбинирует данные резервуара, показанные на фиг. 3, 4A и 4B, и данные скважины, показанные на фиг. 5, в частности длину стороны скважины, местоположение скважины и направление скважины, выделенные пунктирной рамкой на фиг. 5, и вычисляет файл скважины, показанный внизу на фиг. 5, который является данными, полезными для программных средств 115.
В одном варианте осуществления конечный результат пользовательского ввода "пользовательских данных" и "технических данных", как показано на фиг. 6, является автоматически генерируемой локально повторно заполняемой сеткой на основе данных трещин.
В одном варианте осуществления слой 230 управления данными управляет созданием прецедента путем обеспечения пользователя экраном, через который имя прецедента может быть введено. В одном варианте осуществления "пользовательские данные" и/или "технические данные", введенные в поля ввода данных, такие как показаны на фиг. 3, 4A и 5, когда прецедент создается, ассоциированы с именем прецедента. В одном варианте осуществления данными, ассоциированными с именем прецедента, являются "пользовательские данные" и/или "технические данные" 215. В одном варианте осуществления данными, ассоциированными с именем прецедента, являются требуемые модельные данные 220. В одном варианте осуществления данные, ассоциированные с именем прецедента, включают в себя "пользовательские данные" и/или "технические данные" 215 и требуемые модельные данные 220.
В одном варианте осуществления в составе пользовательского интерфейса система 205 предлагает создать имя для создаваемого прецедента с использованием, например, временной метки, вычисленной из текущего времени, локального или иного, когда прецедент был создан.
В одном варианте осуществления слой 230 управления данными отслеживает состояние набора входных значений для прецедента. Слой 230 управления данными не является системой управления версии программной разработки для управления, например, разработкой программных средств 115. Цель системы управления данных состоит в управлении созданием и развитием прецедентов.
В общем случае, как показано на фиг. 7, слой 230 управления данными обеспечивает несколько признаков. Слой 230 управления данными отслеживает прецеденты 705. В одном варианте осуществления слой 230 управления данными отслеживает данные и время, в которое прецеденты создаются, путем, например, хранения временной метки, отражающей дату и время создания, когда прецедент создается.
В одном варианте осуществления слой 230 управления данными отслеживает отношение прецедентов друг к другу в том смысле, например, ассоциированы ли прецеденты с одним и тем же месторождением или шахтой, различия во входных данных и различия в выходных данных. В одном варианте осуществления слой 230 управления данными выполняет эту функцию путем хранения данных, относящихся к этим точкам сравнения, с каждым прецедентом и обеспечения инструментов, таких как системы запросов базы данных или подобное, чтобы обеспечить возможность сравнений данных между прецедентами.
В одном варианте осуществления слой 230 управления данными обеспечивает возможность пользователю осуществлять поиск прецедента 710 с использованием, например, географического местоположения и/или моделируемых шахты или резервуара путем указания диапазона значений параметров прецедента путем определения прецедента и запроса "родственных" прецедентов (где, в одном варианте осуществления, "родственный" ссылается на отношения "родитель - дочерний элемент" или одноуровневые отношения, рассмотренные ниже), или путем определения прецедента и запроса "подобных" прецедентов (где, в одном варианте осуществления, "подобный" ссылается на подобие между прецедентами, как рассмотрено ниже). В одном варианте осуществления слой 230 управления данными выполняет эту функцию путем хранения данных, относящихся к этим точкам поиска с каждым прецедентом, и обеспечения инструментов, таких как системы запросов базы данных или подобное, чтобы обеспечить возможность поиска прецедентов.
В одном варианте осуществления слой 230 управления данными обеспечивает возможность пользователю категоризировать прецеденты 715. В одном варианте осуществления прецеденты могут быть категоризированы в определяемые пользователем "папки", которые могут соответствовать или не соответствовать папкам операционной системы, как, например, по географическому местоположению, участку скважины, значению геологического параметра или некоторой другой категории. В одном варианте осуществления слой 230 управления данными обеспечивает возможность пользователю определить "избранные" прецеденты, которые, например, пользователь нашел полезными или целесообразными в создании других прецедентов. В одном варианте осуществления слой 230 управления данными автоматически создает "папки", которые могут соответствовать или не соответствовать папкам операционной системы, которые содержат прецеденты, родственные по дате, географической области или некоторому другому сходству. В одном варианте осуществления создание таких автоматических папок может определяться пользователем через интерфейс "предпочтений".
В одном варианте осуществления слой 230 управления данными обеспечивает поддержку для внешних файлов 720. В одном варианте осуществления это включает в себя вырезание данных или файлов из операционной системы (например, из списка файлов в директории, хранилище или местоположения облака) и сохранение их в "ящике быстрого доступа", который является папкой или другой методикой организации файлов, которая удерживает файлы данных и другие материалы, которые пользователь нашел полезными. В одном варианте осуществления слой 230 управления данными обеспечивает возможность материалам из ящика быстрого доступа перетаскиваться или копироваться и ассоциироваться с прецедентом или прецедентами. В одном варианте осуществления слой 230 управления данными обеспечивает возможность определяемым пользователем метаданным, таким как комментарии, источники, история изменений, полезность в испытании и т.д., быть ассоциированным с внешним файлом, когда он ассоциирован с прецедентом. В одном варианте осуществления метаданные включают в себя "пользовательский рейтинг", который отражает полезность прецедента, степень, с которой прецедент был использован, или другую подобную метрику. Например, пользователь может использовать рейтинг от одного до пяти звезд. В одном варианте осуществления рейтинг в пять звезд указывает, что прецедент очень полезный или имеет очень высокое качество, и может быть назначен прецеденту, который был представлен клиенту или руководству. В одном варианте осуществления рейтинг в одну звезду указывает, что прецедент имеет низкое качество, по мнению пользователя. В одном варианте осуществления "пользовательский рейтинг" может быть использован в качестве поискового параметра в локализации прецедентов. Примером одного варианта осуществления такого поиска является "поиск всех прецедентов, которые имеют 4 звезды и выше, с шахтой с длинами сторон между 1500 футов и 3000 футов, пробуренной в резервуарах с глубиной до верха, превосходящей 6000 футов". В одном варианте осуществления выход такого поиска будет ограничен случаями, в которых "пользовательский рейтинг" равен четырем или более звездам.
В одном варианте осуществления слой 230 управления данными обеспечивает иерархический вид прецедентов 725. В одном варианте осуществления такой вид включает в себя отношение "родитель - дочерний элемент" или одноуровневое отношение прецедентов, как рассмотрено более подробно ниже. В одном варианте осуществления такой вид представляет прецеденты в контексте их происхождения, как они распространяются к потомкам и одноуровневым элементам и, как описано ниже, как они отличаются от родителей, потомков и дочерних элементов. В одном варианте осуществления слой 230 управления данными обеспечивает возможность фильтрации просматриваемых прецедентов на основе, например, категорий, рассмотренных выше. В одном варианте осуществления слой 230 управления данными обеспечивает возможность выбора для сравнения прецедентов, отображаемых в иерархическом виде, путем, например, последовательных правых щелчков на отображаемых прецедентах для сравнения. В одном варианте осуществления, как только прецеденты, которые должны быть сравнены, выбираются, кнопка "сравнить" на экране может быть нажата или щелкнута, и сравнение прецедентов будет быть обеспечено.
В одном варианте осуществления слой управления данными обеспечивает шаблон, выбранный из нескольких шаблонов по умолчанию, пустого шаблона и настраиваемых шаблонов, которые включают в себя точки ввода данных для "пользовательских данных" и/или "технических данных" 215. Экраны на фиг. 3, 4A и 5 иллюстрируют несколько примерных шаблонов. В одном варианте осуществления данные в выбранном шаблоне могут редактироваться при желании пользователем, сохраняться в качестве прецедента, и вычисления для требуемых модельных данных 220 будут выполняться над этими данными.
В одном варианте осуществления слой 230 управления данными обеспечивает возможность прецеденту быть "загруженным" и "выгруженным". В одном варианте осуществления, когда прецедент "выгружен", пользователь может модифицировать "пользовательские данные" и/или "технические данные" 215, ассоциированные с этим прецедентом. В одном варианте осуществления, когда прецедент "загружен", "пользовательские данные" и/или "технические данные" 215, ассоциированные с этим прецедентом, блокируются и не могут быть модифицированы. В одном варианте осуществления слой 230 управления данными сохраняет данные, касающиеся прецедента, когда он "загружен" после "выгрузки". В одном варианте осуществления слой 230 управления данными сохраняет данные, касающиеся прецедента, периодически, например каждые 10 минут или каждый час, когда прецедент "выгружен". В одном варианте осуществления слой 230 управления данными сохраняет данные, касающиеся прецедента, всегда, когда изменение, касающееся этого прецедента, происходит, как, например, когда делается изменение одного из параметров, показанных на фиг. 3, 4A и 5.
В одном варианте осуществления слой 230 управления данными управляет набором пользователей и привилегиями согласно каждому из пользователей, касающимися того, имеет или нет конкретный пользователь привилегию "выгружать" прецедент, копировать прецедент или выполнять другие операции по отношению к прецеденту.
В одном варианте осуществления входные данные, ассоциированные с прецедентом, обслуживаются слоем 230 управления данными непрерывным образом, например путем сохранения структуры данных, ассоциированной с прецедентом, на жесткий диск, даже когда они копируются, редактируются, переименовываются или стираются, и поддерживает иерархическое представление прецедентов на основе дочерних, родительских и одноуровневых отношений, как рассмотрено ниже.
В одном варианте осуществления данные изменений для каждого прецедента сохраняются в отдельный файл. В одном варианте осуществления изменения, сделанные для создания прецедента из его родителя, хранятся в одном файле, а изменения, сделанные над прецедентом после его создания, хранятся в другом файле. В одном варианте осуществления все из изменений над прецедентом хранятся в единственном файле. В одном варианте осуществления изменения, сделанные над всеми прецедентами, хранятся в единственном файле с обновлениями, организованными в связанном списке, как показано на фиг. 8. Фиг. 8 изображает одну запись 805 файла изменений файла 810 изменений со связанным списком. В одном варианте осуществления запись 805 включает в себя поле 815 уникального идентификатора прецедента, который может отличаться от имени прецедента, установленного пользователем. В одном варианте осуществления поле 815 уникального идентификатора прецедента включает в себя временную метку, ассоциированную с датой и временем, когда прецедент был создан.
В одном варианте осуществления запись 805 файла изменений включает в себя поле 820 типа изменения. В одном варианте осуществления поле 820 типа изменения имеет одно значение (например, "исходный" или "o") если изменение отражает изменение относительно родительского прецедента, когда прецедент был создан, и другое значение (например, "обновление" или "r"), если изменение отражает изменение над прецедентом, сделанное после того, как прецедент был создан. В одном варианте осуществления поле 820 типа изменения включает в себя временную метку для времени, когда изменение было сделано.
В одном варианте осуществления запись 805 файла изменений включает в себя поле 820 изменения, которое содержит сделанное изменение. Например, в одном варианте осуществления поле изменения включает в себя идентификатор изменяемого поля (например "длина резервуара" или код, представляющий это поле). В одном варианте осуществления поле 820 изменения включает в себя старое значение изменяемого поля. В одном варианте осуществления поле 820 изменения включает в себя новое значение изменяемого поля.
В одном варианте осуществления запись 805 включает в себя восходящую ссылку на предыдущее изменение для этого прецедента 830. В одном варианте осуществления восходящая ссылка 830 является указателем на другую запись в файле 810 изменений. В одном варианте осуществления восходящая ссылка является указателем на запись в другом файле.
В одном варианте осуществления запись 805 включает в себя нисходящую ссылку на следующее изменение для этого прецедента 835. В одном варианте осуществления нисходящая ссылка 835 является указателем на другую запись в файле 810 изменений. В одном варианте осуществления нисходящая ссылка 835 является указателем на запись в другом файле.
В одном варианте осуществления слой 230 управления данными обслуживает файл изменений 810.
В одном варианте осуществления слой 230 управления данными обслуживает запись 905 прецедента, такую как запись 905 прецедента, показанная на фиг. 9, для каждого прецедента. В одном варианте осуществления записи 905 прецедентов для всех прецедентов сохраняются в файле 910 прецедентов. В одном варианте осуществления запись 905 прецедента включает в себя одно или несколько полей 915 заголовка. В одном варианте осуществления поле 915 заголовка включает в себя имя прецедента, которое может быть уникальным идентификатором прецедента, рассмотренным в связи с фиг. 8, дату, когда прецедент был создан, родителя прецедента (описанного ниже), географическое местоположение, ассоциированное с прецедентом, и месторождение, резервуар и/или шахту, ассоциированную с прецедентом.
В одном варианте осуществления запись 905 прецедента включает в себя одно или несколько полей 920 входных данных. В одном варианте осуществления поля 920 входных данных включают в себя сами входные данные, список файлов входных данных, указатель на список файлов входных данных, указатель на связанный список файлов входных данных и/или указатель на файлы, которыми, в одном варианте осуществления, являются внешние файлы, такие как внешний файл(ы) 130, ассоциированный с прецедентом.
В одном варианте осуществления запись 905 прецедента включает в себя одно или несколько полей 920 выходных данных. В одном варианте осуществления поля 920 выходных данных включают в себя сами выходные данные, список файлов выходных данных, указатель на список файлов выходных данных и/или указатель на связанный список файлов выходных данных.
В одном варианте осуществления запись 905 прецедента включает в себя одно или несколько полей 930 данных обновления. В одном варианте осуществления поле 930 данных обновления включает в себя поле, содержащее обновление от родителя при создании, поле, содержащее данные обновления после создания, включающие в себя сами данные обновления и/или указатель на связанный список данных обновления. В одном варианте осуществления обновления для прецедента записываются с использованием записей, подобных записи 805, показанной на фиг. 8.
В одном варианте осуществления слой 230 управления данными обслуживает иерархическое отношение среди прецедентов. Например, в одном варианте осуществления шаблон T1 1005, показанный на фиг. 10, доступен в качестве исходной точки для выстраивания прецедента. В одном варианте осуществления прецедент C1 1105 создается из шаблона T1 1005. В одном варианте осуществления слой 230 управления данными записывает прецедент C1 1105 в качестве дочернего для шаблона T1 1005, и шаблон T1 1005 в качестве родителя прецедента C1 1105. В одном варианте осуществления различия между шаблоном T1 1005 и прецедентом C1 1105 записываются в записи 805 изменения в файле 810 изменений, таком как показан на фиг. 8, или в данных 930 обновления записи 905 прецедента, такой как показана на фиг. 9.
В одном варианте осуществления, если изменение выполняется над прецедентом C1 1105, изменение записывается в ассоциированной записи 905 прецедента и/или в файле 810 изменений, рассмотренном в связи с фиг. 8, но никакие изменения в отношениях не записываются, поскольку не являются необходимыми.
В одном варианте осуществления копия прецедента C1 1105 делается для создания прецедента C11 1205, как показано на фиг. 12. Прецедент C11 1205 записывается как дочерний для прецедента C1 1105, и прецедент C1 1105 записывается как дочерний для прецедента C11 1205, и любое различие между прецедентом C11 1205 и прецедентом C1 1105 записывается в записи 805 изменения для прецедента C11 1205 в файле 810 изменений или в данных 930 обновления записи 905 прецедента, ассоциированной с прецедентом C11 1205.
В одном варианте осуществления пользователь переименовывает прецедент C11 1205 как прецедент C11B 1205, как показано на фиг. 13. В одном варианте осуществления изменение имени записывается в надлежащей записи 905 прецедента, и отношения обновляются; например прецедент C1 1105 обновляется, чтобы быть родителем прецедента C11B 1205, и прецедент C11B 1205 обновляется, чтобы быть дочерним для прецедента C1 1105. В одном варианте осуществления изменение имени записывается в файл 810 изменений и/или в данные 930 обновления записи 905 прецедента для прецедента C11 1205.
В одном варианте осуществления копия прецедента C1 1105 делается и получает имя прецедента C12 1405, как показано на фиг. 14. Прецедент C12 1405 записывается как дочерний для прецедента C1 1105, и прецедент C1 1105 записывается как родитель прецедента C12 1405, и любое различие между прецедентом C12 1405 и прецедентом C1 1105 записывается в записи 805 изменения для прецедента C12 1405 в файле 810 изменений или данных 930 обновления записи 905 прецедента, ассоциированной с прецедентом C12 1405. Как можно увидеть на фиг. 14, прецедент C11B 1205 является одноуровневым для прецедента C12 1405.
В одном варианте осуществления отношения между шаблоном и прецедентами, показанными на фиг. 14, осуществляются в частях "имя" и "родитель" полей 915 заголовков в записях 905 прецедентов для каждого из прецедентов, как показано на фиг. 15. В одном варианте осуществления одноуровневое отношение между прецедентом C11B 1205 и прецедентом C12 1405 обнаруживается путем запрашивания таблицы, показанной на фиг. 15, для всех прецедентов, в которой прецедент C1 1105 является родителем. В качестве альтернативы, в одном варианте осуществления связанный список одноуровневых полей, подобно полям 830 и 835 связанного списка в файле 810 изменений, показанном на фиг. 8, добавляется к записи 905 прецедента, и одноуровневые отношения могут обнаруживаться с использованием этих полей.
В одном варианте осуществления, показанном на фиг. 16, прецедент C11C добавляется как дочерний для прецедента C11B, прецедент C13 добавляется как дочерний для прецедента C1, и прецедент C13A добавляется как дочерний для прецедента C13. Прецедент C13 1605 записывается как дочерний для прецедента C1 1105, и прецедент C1 1105 записывается как родитель прецедента C13 1605, и любое различие между прецедентом C13 1605 и прецедентом C1 1105 записывается в записи 805 изменения для прецедента C13 1605 в файле 810 изменений или в данных 930 обновления записи 905 прецедента, ассоциированной с прецедентом C13 1605. Прецедент C13A 1610 записывается как дочерний для прецедента C13 1605, и прецедент C13 1605 записывается как родитель прецедента C13A 1610, и любое различие между прецедентом C13A 1610 и прецедентом C13 1605 записывается в записи 805 изменения для прецедента C13A 1610 в файле 810 изменений или в данных 930 обновления записи 905 прецедента, ассоциированной с прецедентом C13A 1610. Получающаяся в результате таблица отношений показана на фиг. 17.
В одном варианте осуществления слой управления данными обеспечивает возможность по файлу 910 прецедентов, который содержит записи 905 прецедентов, осуществлять поиск с использованием любого из доступных алгоритмов поиска для реакции на поисковые запросы. Поисковый запрос может быть основан на одном или нескольких критериях, таких как имя прецедента, географическое местоположение моделируемых данных, даты, в которые прецедент был создан или модифицирован, или любое из полей в записи 905 прецедента или комбинация перечисленного.
Например, фиг. 18 изображает экран 1805 дисплея, отображающий результат следующего запроса: "Длина резервуара <5000 футов, площадь резервуара <200 акров, пористость резервуара <5%, я владелец". Как можно увидеть на фиг. 18, в одном варианте осуществления прецеденты, которые удовлетворяют критериям поиска, отображаются и показаны в иерархии, установленной, когда прецеденты были созданы.
Кроме того, в одном варианте осуществления различия между прецедентами могут быть обнаружены путем, например, наведения курсора на линию, соединяющую родителя и дочерний элемент, как показано на фиг. 19. На фиг. 19 курсор наведен на линяю, соединяющую прецедент C1 и прецедент C13, и всплывающее окно указывает, что, когда прецедент C13 был создан из прецедента C1, значение параметра температуры резервуара изменилось с 200 градусов до 250 градусов. В одном варианте осуществления эта информация извлекается из записи 905 прецедента, рассмотренной в связи с фиг. 9, и/или файла изменений 810, рассмотренного в связи с фиг. 8.
В одном варианте осуществления изменения, которые были сделаны над конкретным прецедентом, могут быть обнаружены путем, например, двойного щелчка на представлении этого прецедента на фиг. 18, после чего появится всплывающее окно, описывающее изменения, которые были сделаны над прецедентом с момента его создания.
В одном варианте осуществления выходные данные программных средств 115 обслуживаются слоем 230 управления данными, как рассмотрено выше в отношении фиг. 9. В одном варианте осуществления это делает простым сравнение выходных данных вычислений для двух или более прецедентов.
В одном варианте осуществления, если изменение сделано над конкретными параметрами родительского прецедента, такого как прецедент C11B 1205 (см. фиг. 16), слой 230 управления данными делает те же самые изменения над тем же самым параметром во всех дочерних прецедентах этого родительского прецедента, например, в прецеденте C11C 1205. Например, если параметр длины резервуара изменяется с 1000 футов до 1100 футов в прецеденте C11B 1205, то же самое изменение будет сделано в прецеденте C11C 1205. В одном варианте осуществления слой 230 управления данными спрашивает пользователя, должно ли изменение над родительским прецедентом также быть сделано над дочерним прецедентом. В одном варианте осуществления слой 230 управления данными перечисляет или отображает изменяемые дочерние прецеденты родительского прецедента и спрашивает, какой из дочерних прецедентов должен иметь то же самое изменение. В одном варианте осуществления "конкретные параметры" не включают в себя такие параметры, как параметры имени, даты создания и родителя в полях 915 заголовка записи прецедента. В одном варианте осуществления слой управления данными отслеживает такие изменения в файле изменений 810 и/или в данных обновления 930 записи 905 прецедента для подвергшихся влиянию прецедентов в файле 910 прецедентов.
В одном варианте осуществления категоризация подобным образом выполняется путем обслуживания в записях 905 прецедентов записей даты создания, даты модификации, частоты использования каждого прецедента, введенного пользователем статуса избранного и т.д. В одном варианте осуществления мера подобия для каждый пары или группы прецедентов вычисляется автоматически и является основой для категоризации прецедентов автоматически или быстрого определения подобных или неподобных прецедентов автоматически.
В одном варианте осуществления мера подобия, означающая несхожесть прецедентов, оценивается для пары прецедентов, чтобы быть мерой расстояния между набором входных переменных для каждого прецедента. В одном варианте осуществления пользователю предоставляется выбор мер расстояния. В одном варианте осуществления пользователь может выбирать из любых стандартных мер расстояния, таких как евклидово расстояние, расстояние Канберра, нормализованное квадратичное евклидово расстояние, расстояние Брея-Кертиса и так далее, или может определять новую меру расстояния. В одном варианте осуществления пользователь также будет иметь возможность выбирать весовые значения для использования при вычислении меры расстояния для каждой отдельной входной переменной, которая определяет прецедент, или для группы входных переменных, например параметров резервуара, которые могут включать в себя отдельные входные переменные, такие как длина, ширина и высота для модели резервуара параллелепипедной формы.
Один вариант осуществления вычисления расстояния иллюстрируется на фиг. 20 и 21. В одном варианте осуществления, иллюстрируемом на фиг. 21, пользователь выбирает прецедент C12 и прецедент C11C путем щелчка на них, как указано более темной штриховкой на рамках, представляющих эти два прецедента. В одном варианте осуществления нажимается кнопка 2005 "сравнить", показанная в верхнем правом углу на фиг. 20, и появляется представление расстояния между двумя прецедентами, как показано на фиг. 21. В одном варианте осуществления два прецедента представляются в виде векторов, и расстояние между ними показано как векторная разность между двумя векторами. В одном варианте осуществления элементы различия между двумя прецедентами могут быть обнаружены путем, например, наведения курсора на вектор разницы. На иллюстрации, показанной на фиг. 21, представляются только два измерения: температура резервуара и относительная плотность газа. На иллюстрации всплывающее окно указывает, что температура газа резервуара одна и та же в двух прецедентах, но что относительная плотность газа в прецеденте C12 равна 0,54, в то время как относительная плотность газа в прецеденте C11C равна 0,62. В одном варианте осуществления одна и та же информация представляется в табличной форме.
В одном варианте осуществления мера подобия может также быть вычислена для трех или более прецедентов одновременно. Точно так же, эта мера обозначает, насколько неподобны, или "далеки", прецеденты друг от друга или от группы прецедентов, или является быстрой оценкой того, насколько подобны или неподобны два прецедента или группа прецедентов. В одном варианте осуществления мера является количественной; т.е. она является числом, таким как 100, представляющим идентичность, или 75, 50 и 25, представляющими постепенное снижение степеней подобия. В одном варианте осуществления мера является качественной; т.е. мера представлена как оценка в диапазоне от "далекие" для очень низкой меры подобия, до "очень неподобные", "несколько неподобные", "подобные", "очень подобные" и "идентичные", представляющих постепенное повышение степеней подобия.
В одном варианте осуществления мера подобия между двумя прецедентами, показанными на иерархическом виде, таком как на фиг. 19, отображается во всплывающем окне, таком как показанное на фиг. 19, с текстом во всплывающем окне, описывающим меру подобия вместо различия между двумя прецедентами. Например, в одном варианте осуществления текст во всплывающем окне на фиг. 19 говорит "мера подобия =75", что означает, что подобие между прецедентом C1 и прецедентом C13 было вычислено равным 75.
В одном варианте осуществления расстояние прецедента от группы или группы прецедентов от другой группы может быть вычислено как расстояние между центроидами этих групп. Точно так же, в одном варианте осуществления пользователь может выбирать из различных мер расстояния, таких как перечисленные ранее или других, которые имеют большую целесообразность для группы точек, таких как расстояние Махаланобиса. В одном варианте осуществления вычисление расстояния включает в себя булевские данные (которые принимают только два допустимых значения или состояния) или строки, использующие такие меры, как расстояние Хемминга, расстояние преобразования и т.д. Точно так же, в одном варианте осуществления пользователь может обеспечивать весовые значения для входной переменной или группы входных переменных по собственному предпочтению.
В одном варианте осуществления другие виды обеспечены, через которые пользователь может просматривать, выбирать и/или взаимодействовать с прецедентами. В одном варианте осуществления прецеденты показаны в виде "списка", в котором прецеденты перечисляются вместе с подробностями о каждом прецеденте. В одном варианте осуществления может быть выбрано количество обеспечиваемых подробностей о каждом прецеденте (т.е. от "грубых подробностей", которые исключают некоторые из менее запрашиваемых подробностей о прецедентах, до "тонких подробностей", которые включает в себя все или большинство подробностей о прецедентах). В одном варианте осуществления обеспечен вид папки, в котором папки, содержащие прецеденты, показаны символически (т.е. каждая папка представлена пиктограммой "папки") на экране. В одном варианте осуществления щелчок по или иной выбор папки будет обеспечивать отображение содержимого выбранной папки, которым может быть дополнительная папка или папки, список прецедентов, назначенных папке, список прецедентов, назначенных папке, с подробностями о каждом из прецедентов, или иерархический вид прецедентов в папке.
В одном варианте осуществления файлы, внешние для приложения, могут быть выбраны, даже когда приложение не запущено, быть посланы к приложению, чтобы быть ассоциированными с конкретной категорией (или папкой) в приложении, или к приложению без какого-либо технического описания. В последнем событии в одном варианте осуществления, когда приложение открыто пользователем, он может избрать ассоциировать все неассоциированные внешние файлы с одним или несколькими прецедентами. В одном варианте осуществления эти внешние файлы будут заархивированы приложением (системой управления прецедентами), и структура данных будет обслуживать ссылки на все отдельные внешние файлы, как они ассоциированы с прецедентами. В результате в одном варианте осуществления пользователь может легко осуществлять доступ не только к входным данным для каждого прецедента, но, если они доступны, также и к результатам вычислений и ассоциированным внешним файлам.
В одном варианте осуществления использования, как изображено на фиг. 22, слой 230 управления данными записывает множество прецедентов, включая, для каждого прецедента, входные данные и идентификацию родительского прецедента, если только прецедент не является исходным прецедентом, таким как шаблон T1 1005 или прецедент C1 1105 (блок 2205). В одном варианте осуществления прецеденты обеспечены в множестве сообщений от другой системы, такой как слой 210 интеллектуального перевода. В одном варианте осуществления каждое из множества сообщений содержит прецедент или модификацию для прецедента.
В одном варианте осуществления слой 230 управления данными создает иерархию отношений "родитель - дочерний элемент" среди множества прецедентов (блок 2210), как, например, показано на фиг. 10-17. В одном варианте осуществления иерархией является список, вроде показанного на фиг. 15 и 17. В одном варианте осуществления иерархия включает в себя использование связанных списков для связывания родителей с дочерними элементами и/или для связывания одноуровневых элементов.
В одном варианте осуществления слой 230 управления данными отображает поднабор множества прецедентов в ответ на поиск множества прецедентов (блок 2215). В одном варианте осуществления отображение поднабора множества прецедентов включает в себя отображение поднабора множества прецедентов таким образом, что различия между каждым из поднабора множества прецедентов могут быть идентифицированы, как, например, показано на фиг. 19. В одном варианте осуществления отображение поднабора множества прецедентов включает в себя отображение поднабора множества прецедентов таким образом, что показана иерархия "родитель - дочерний элемент" среди поднабора множества прецедентов, как, например, показано на фиг. 18, 19 и 20. В одном варианте осуществления отображение поднабора множества прецедентов включает в себя определение поднабора множества прецедентов с использованием запроса. В одном варианте осуществления отображение поднабора множества прецедентов включает в себя отображение поднабора множества прецедентов, иерархически следующих иерархии "родитель - дочерний элемент". В одном варианте осуществления отображение поднабора множества прецедентов включает в себя отображение различия между двумя из прецедентов в поднаборе множества прецедентов, как, например, показано на фиг. 21. В одном варианте осуществления отображение различия между двумя из прецедентов в поднаборе множества прецедентов содержит выполнение анализа подобия между двумя прецедентами.
В одном варианте осуществления слой 230 управления данными обеспечивает возможность пользователю выбирать меньший поднабор множества прецедентов в качестве избранной модели для среды, в которой нефтяное месторождение следует бурить (блок 220). В одном варианте осуществления меньший поднабор множества прецедентов является одним прецедентом. В одном варианте осуществления меньший поднабор множества прецедентов содержит больше одного прецедента; например один прецедент, используемый для одной части резервуара, и другой прецедент, используемый для другой части того же самого резервуара.
В одном варианте осуществления избранная модель используется для планирования бурения нефтяной шахты для создания плана бурения (блок 2225). В одном варианте осуществления план бурения используется для бурения нефтяной шахты (блок 2230).
В одном варианте осуществления слой 230 управления данными ассоциирует с прецедентом выходные данные, созданные программной системой, когда прецедент обеспечен программной системе в качестве входных данных, такие как выходные файлы 120.
Система 205 и слой 230 управления данными, в частности, не ограничиваются использованием в планировании бурения нефтяной скважины. Они могут быть использованы в других сценариях разработки нефтегазовых месторождений, таких как конфигурация поверхностной трубопроводной сети для поля с множеством шахт, оптимизация размера компрессоров на шахтах или в трубопроводе, оптимизация емкости газоперерабатывающих заводов для обработки добытого газа, калибрование повторного закачивания части газа или добытой воды и т.д. Кроме того, они могут быть использованы в других ситуациях, в которых полезно отслеживать развитие данных испытаний, введенных в программную систему, и получающихся в результате выходных данных, таких как прогноз погоды, моделирование трафика, оптимизация компьютерной сети и т.д.
Вышеприведенный текст описывает один или несколько конкретных вариантов осуществления более широкого изобретения. Изобретение также осуществляется во множестве различных альтернативных вариантов осуществления и, таким образом, не ограничивается описанными здесь. Вышеупомянутое описание предпочтительного варианта осуществления изобретения было представлено в целях иллюстрации и описания. Оно не подразумевается как всеобъемлющее или ограничивающее изобретение конкретной раскрытой формулой. Множество модификаций и вариаций возможны в свете вышеописанной идеи. Предполагается, что объем изобретения ограничивается не этим подробным описанием, а формулой изобретения, приложенной здесь.