stringtranslate.com

Реификация (информатика)

Реификация — это процесс, посредством которого абстрактная идея компьютерной программы превращается в явную модель данных или другой объект, созданный на языке программирования . Вычислимый/адресуемый объект – ресурс – создается в системе как прокси для невычислимого/адресуемого объекта. Посредством овеществления нечто, что ранее было неявным, невыраженным и, возможно, невыразимым, явно формулируется и становится доступным для концептуальных (логических или вычислительных) манипуляций. Неофициально овеществление часто называют «превращением чего-либо в первоклассного гражданина » в рамках конкретной системы. Некоторые аспекты системы могут быть реализованы во время разработки языка , что связано с отражением в языках программирования. Его можно применять в качестве поэтапного усовершенствования во время проектирования системы . Реификация — один из наиболее часто используемых методов концептуального анализа и представления знаний .

Рефлексивные языки программирования

В контексте языков программирования овеществление — это процесс, посредством которого пользовательская программа или любой аспект языка программирования, который был неявно заложен в переведенной программе и системе времени выполнения, выражаются в самом языке. Этот процесс делает их доступными для программы, которая может проверять все эти аспекты как обычные данные . В рефлексивных языках данные овеществления причинно связаны с соответствующим овеществленным аспектом, так что модификация одного из них влияет на другой. Следовательно, данные овеществления всегда являются точным представлением соответствующего аспекта овеществления [ необходимы пояснения ] . Часто говорят , что данные реификации становятся объектом первого класса . На сегодняшний день реификация, по крайней мере частично, наблюдается во многих языках: в ранних диалектах Лиспа и в современных диалектах Пролога программы рассматривались как данные, хотя причинно-следственная связь часто оставлялась на усмотрение программиста. В Smalltalk -80 компилятор исходного текста в байт-код был частью системы времени выполнения с самых первых реализаций языка. [1]

Реификация данных и уточнение данных

Реификация данных ( поэтапное уточнение ) предполагает поиск более конкретного представления абстрактных типов данных, используемых в формальной спецификации .

Реификация данных — это терминология Венского метода разработки (VDM), которую большинство людей назвали бы уточнением данных. Примером может служить шаг к реализации путем замены представления данных, не имеющего аналога на предполагаемом языке реализации, например наборов, на представление данных, у которого есть аналог (например, карты с фиксированными доменами, которые могут быть реализованы с помощью массивов), или по крайней мере тот, который ближе к аналогу, например последовательности. Сообщество VDM предпочитает слово «реификация» слову «уточнение», поскольку этот процесс больше связан с конкретизацией идеи, чем с ее уточнением. [4]

Похожие значения см. в Реификация (лингвистика) .

В концептуальном моделировании

Реификация широко используется в концептуальном моделировании . [5] Реификация отношений означает рассмотрение их как сущности. Цель овеществления отношения — сделать его явным, когда к нему необходимо добавить дополнительную информацию. Учитывайте тип отношений IsMemberOf(member:Person, Committee). Экземпляром IsMemberOfявляется связь, которая отражает тот факт, что человек является членом комитета. На рисунке ниже показан пример совокупности IsMemberOfотношений в табличной форме. Лицо П1 является членом комитетов С1 и С2 . Лицо P2 является членом только комитета C1 .

Пример совокупности IsMemberOfотношений в табличной форме. Лицо П1 является членом комитетов С1 и С2. Лицо P2 является членом только комитета C1.

Однако тот же факт можно рассматривать и как сущность. Рассматривая отношения как сущность, можно сказать, что сущность овеществляет отношения. Это называется овеществлением отношений. Как и любая другая сущность, она должна быть экземпляром типа сущности. В данном примере тип сущности получил имя Membership. Для каждого экземпляра IsMemberOfсуществует один и только один экземпляр Membership, и наоборот. Теперь становится возможным добавить больше информации к исходным отношениям. В качестве примера можно выразить тот факт, что «лицо p1 было номинировано в члены комитета с1 лицом p2». Реифицированное отношение Membershipможет быть использовано как источник нового отношения IsNominatedBy(Membership, Person).

Связанное использование см. в Reification (представление знаний) .

На унифицированном языке моделирования (UML)

Диаграмма классов UML для примера членства.

UML предоставляет конструкцию класса ассоциации для определения типов конкретных отношений. Класс ассоциации — это единый элемент модели, который является одновременно разновидностью ассоциации [6] и разновидностью класса. [7]

Ассоциация и тип объекта, который реифицирует, являются одним и тем же элементом модели. Обратите внимание, что атрибуты не могут быть реифицированы.

В семантической сети

РДФ и СОВА

В языках семантической сети , таких как платформа описания ресурсов (RDF) и язык веб-онтологий (OWL), оператор представляет собой бинарное отношение. Он используется для связи двух людей или человека и ценности. Приложениям иногда необходимо описывать другие утверждения RDF, например, для записи информации, например, когда утверждения были сделаны или кто их сделал, что иногда называют информацией « происхождения ». Например, мы можем захотеть представить свойства отношения, такие как наша уверенность в нем, серьезность или сила отношения, релевантность отношения и т. д.

Пример из раздела концептуального моделирования описывает конкретного человека с URIref person:p1, который является членом committee:c1. Тройка RDF из этого описания равна

 человек : комитет p1  : isMemberOf комитет : c1 .  

Рассмотрите возможность сохранения двух дополнительных фактов: (i) записать, кто выдвинул этого конкретного человека в этот комитет (заявление о самом членстве), и (ii) записать, кто добавил факт в базу данных (заявление о заявлении).

Первый случай — это случай классической реификации, как указано выше в UML: материализовать членство и сохранить его атрибуты и роли и т. д.:

 комитет : Членство  РДФ : тип  сова : Класс  .  комитет : членство12345  rdf : тип  комитета : Членство  .  комитет : членство12345  комитет : Лицо  персона : p1  .  комитет : членство12345  комитет : inКомитет  комитета : c1  .  человек : комитет p2  : назначенный комитет : членство12345 .  

Кроме того, RDF предоставляет встроенный словарь, предназначенный для описания операторов RDF. Описание высказывания с использованием этого словаря называется овеществлением высказывания. Словарь реификации RDF состоит из типа rdf:Statementи свойств rdf:subject, rdf:predicateи rdf:object. [8]

Используя словарь овеществления, овеществление утверждения о членстве человека будет дано путем присвоения этому утверждению URIref, например, committee:membership12345чтобы описывающие утверждения можно было записать следующим образом:

 комитет : членство12345Stat  rdf : тип  rdf : Statement  .  комитет : членство12345Stat  rdf : субъект  : p1 .комитет : членство12345Stat rdf : комитет предикатов : isMemberOf . комитет : членство12345Stat rdf : объектный комитет : c1 .         

В этих утверждениях говорится, что ресурс, идентифицируемый с помощью URIref committee:membership12345StatRDF, что субъект утверждения относится к ресурсу, указанному с помощью person:p1, предикат утверждения относится к ресурсу, указанному с помощью committee:isMemberOf, а объект оператора ссылается на ресурс committee:c1. Предполагая, что исходное утверждение действительно идентифицируется как committee:membership12345, при сравнении исходного утверждения с овеществлением должно быть ясно, что овеществление действительно его описывает. Традиционное использование словаря реификации RDF всегда предполагает описание утверждения с использованием четырех операторов в этом шаблоне. Поэтому их иногда называют «квадратом реификации». [8]

Используя реификацию в соответствии с этим соглашением, мы могли бы записать факт person:p3добавления оператора в базу данных, выполнив

 человек : комитет p3  : добавлен в базу данных комитет : членство12345Stat .  

Важно отметить, что при обычном использовании овеществления предполагается, что субъект троек овеществления идентифицирует конкретный экземпляр тройки в конкретном документе RDF, а не некую произвольную тройку, имеющую один и тот же субъект, предикат и объект. Это конкретное соглашение используется, поскольку реификация предназначена для выражения таких свойств, как даты составления и исходная информация, как в уже приведенных примерах, и эти свойства необходимо применять к конкретным экземплярам троек. Заметим, что сама описанная тройка (subject predicate object)не подразумевается такой реификационной четверкой (и не обязательно, что она действительно существует в базе данных). Это также позволяет использовать этот механизм для выражения того, какие тройки не выполняются.

Возможности словаря реификации в RDF ограничены отсутствием встроенных средств для присвоения URIref операторам, поэтому для выражения информации о «происхождении» такого типа в RDF необходимо использовать некоторый механизм (вне RDF). ), чтобы назначить URI отдельным операторам RDF, а затем сделать дальнейшие утверждения об этих отдельных утверждениях, используя их URI для их идентификации. [8]

В тематических картах

В карте тем XML (XTM) только тема может иметь имя или играть роль в ассоциации. Можно использовать ассоциацию, чтобы сделать утверждение по теме, но нельзя напрямую делать утверждения об этом утверждении. Однако можно создать тему, которая воплощает в карте нетопическую конструкцию, что позволяет назвать ассоциацию и рассматривать ее как саму тему. [9]

н-арные отношения

В языках семантической сети, таких как RDF и OWL, свойство — это бинарное отношение, используемое для связи двух индивидуумов или индивидуума и значения. Однако в некоторых случаях естественным и удобным способом представления определенных концепций является использование отношений, связывающих человека с несколькими людьми или ценностями. Эти отношения называются n-арными отношениями . Примеры представляют отношения между несколькими людьми, такими как комитет, лицо, которое является членом комитета, и другое лицо, которое назначило первого человека членом комитета, или покупатель, продавец и объект, который был куплен при описании. покупка книги.

Более общий подход к материализации заключается в создании явного нового класса и n новых свойств для представления n -арного отношения, делая экземпляр отношения, связывающего n индивидуумов, экземпляром этого класса. Этот подход также можно использовать для представления информации о происхождении и других свойств для отдельного экземпляра отношения. [10]

 : p1  a  : Человек  ;  : has_membership  _ : членство_12345  .  _ : членство_12345  а  : Членство  ;  : комитет  : с1 ;  : nomination_by  : p2  .

Против. цитата

Также важно отметить, что описанная здесь реификация — это не то же самое, что «цитата», встречающаяся в других языках. Вместо этого овеществление описывает отношения между конкретным экземпляром тройки и ресурсами, на которые эта тройка ссылается. Реификацию можно интуитивно прочитать как «эта тройка RDF говорит об этих вещах», а не (как в цитате) «эта тройка RDF имеет эту форму». Например, в примере реификации, использованном в этом разделе, тройка:

 комитет : членство12345  rdf : субъект  : p1 . 

В описании rdf:subjectисходного утверждения говорится, что субъектом утверждения является ресурс (человек), идентифицируемый URIref person:p1. В нем не говорится, что предметом оператора является сам URIref (т. е. строка, начинающаяся с определенных символов), как это было бы в кавычках.

Смотрите также

Рекомендации

  1. ^ Ж. Маленфант, М. Жак и Ф.-Н. Демерс, Учебное пособие по поведенческой рефлексии и ее реализации. Архивировано 28 мая 2010 г. в Wayback Machine.
  2. ^ Спецификация языка Java, раздел 4.7, Java SE 7 Edition.
  3. ^ "Блоки и замыкания Smalltalk" . C2.com. 15 октября 2009 г. Проверено 9 октября 2010 г.
  4. ^ Формальные методы в Европе, Часто задаваемые вопросы, часть 13. Архивировано 12 марта 2005 г. в Wayback Machine .
  5. ^ Антони Оливе, Концептуальное моделирование информационных систем, Springer Verlag, 2007.
  6. ^ «Ассоциации». Единый язык моделирования 2.5.1. Официальный номер документа OMG /05.12.2017. Организация по разработке стандартов группы управления объектами (OMG SDO). Декабрь 2017. с. 199.
  7. ^ «Классы». Единый язык моделирования 2.5.1. Официальный номер документа OMG /05.12.2017. Организация по разработке стандартов группы управления объектами (OMG SDO). Декабрь 2017. с. 194.
  8. ^ abc "Букварь RDF". W3.org . Проверено 9 октября 2010 г.
  9. ^ Практическое введение в тематические карты. Архивировано 3 февраля 2009 г. в Wayback Machine .
  10. ^ «W3C Определение N-арных отношений в семантической сети» . W3.org . Проверено 9 октября 2010 г.