﻿<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>http://xn--90aogluj.xn--p1ai/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3AWikidata%2FP512</id>
	<title>Модуль:Wikidata/P512 - История изменений</title>
	<link rel="self" type="application/atom+xml" href="http://xn--90aogluj.xn--p1ai/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3AWikidata%2FP512"/>
	<link rel="alternate" type="text/html" href="http://xn--90aogluj.xn--p1ai/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Wikidata/P512&amp;action=history"/>
	<updated>2026-04-27T18:25:33Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.34.0</generator>
	<entry>
		<id>http://xn--90aogluj.xn--p1ai/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Wikidata/P512&amp;diff=9988&amp;oldid=prev</id>
		<title>Peandre2: 1 версия импортирована</title>
		<link rel="alternate" type="text/html" href="http://xn--90aogluj.xn--p1ai/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Wikidata/P512&amp;diff=9988&amp;oldid=prev"/>
		<updated>2020-03-04T21:15:24Z</updated>

		<summary type="html">&lt;p&gt;1 версия импортирована&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Версия 21:15, 4 марта 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Peandre2</name></author>
		
	</entry>
	<entry>
		<id>http://xn--90aogluj.xn--p1ai/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Wikidata/P512&amp;diff=9987&amp;oldid=prev</id>
		<title>ru&gt;Ghuron: ошибка см. Чейн, Эрнст Борис</title>
		<link rel="alternate" type="text/html" href="http://xn--90aogluj.xn--p1ai/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Wikidata/P512&amp;diff=9987&amp;oldid=prev"/>
		<updated>2018-08-13T11:38:17Z</updated>

		<summary type="html">&lt;p&gt;ошибка см. &lt;a href=&quot;/index.php?title=%D0%A7%D0%B5%D0%B9%D0%BD,_%D0%AD%D1%80%D0%BD%D1%81%D1%82_%D0%91%D0%BE%D1%80%D0%B8%D1%81&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Чейн, Эрнст Борис (страница не существует)&quot;&gt;Чейн, Эрнст Борис&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
  Функция формирует строку с викиразметкой для переданного свойства&lt;br /&gt;
  &lt;br /&gt;
  Принимает: объект контекста для вызова форматтеров и таблицу настройек&lt;br /&gt;
  Возвращает: вики-форматированную строку&lt;br /&gt;
 ]]&lt;br /&gt;
function p.formatAcademicDegree( context, options )&lt;br /&gt;
	if ( not context ) then error( 'context not specified' ); end;&lt;br /&gt;
	if ( not options ) then error( 'options not specified' ); end;&lt;br /&gt;
	if ( not options.entity ) then error( 'options.entity missing' ); end;&lt;br /&gt;
 &lt;br /&gt;
    local claims = context.selectClaims( options, options.property );&lt;br /&gt;
    if (claims == nil) then&lt;br /&gt;
        return ''&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local blackList = p.getPreviousDegrees( claims )&lt;br /&gt;
    local formattedClaims = {}&lt;br /&gt;
 &lt;br /&gt;
    for i, claim in ipairs(claims) do&lt;br /&gt;
    	if (claim.mainsnak.datavalue and not blackList[claim.mainsnak.datavalue.value['numeric-id']]) then&lt;br /&gt;
	        local formattedStatement = context.formatStatement( options, claim )&lt;br /&gt;
&lt;br /&gt;
	        if (formattedStatement) then&lt;br /&gt;
	            formattedStatement = '&amp;lt;span class=&amp;quot;wikidata-claim&amp;quot;' .. &lt;br /&gt;
		            ' data-wikidata-property-id=&amp;quot;' .. &lt;br /&gt;
		            string.upper( options.property ) .. &lt;br /&gt;
		            '&amp;quot; data-wikidata-claim-id=&amp;quot;' .. &lt;br /&gt;
		            claim.id .. '&amp;quot;&amp;gt;' ..&lt;br /&gt;
		            formattedStatement .. '&amp;lt;/span&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
	            if (claim.qualifiers) then&lt;br /&gt;
	            	formattedStatement = formattedStatement .. &lt;br /&gt;
	            		p.formatQualifier( context, options, claim.qualifiers.P585 )&lt;br /&gt;
	            end&lt;br /&gt;
	            formattedStatement = formattedStatement .. &lt;br /&gt;
	            	p.formatCorrespondingCategory( claim )&lt;br /&gt;
&lt;br /&gt;
	            table.insert( formattedClaims, formattedStatement )&lt;br /&gt;
	        end&lt;br /&gt;
	    end&lt;br /&gt;
    end&lt;br /&gt;
 &lt;br /&gt;
	-- создание текстовой строки со списком оформленых заявлений из таблицы  &lt;br /&gt;
    return mw.text.listToText( formattedClaims, options.separator, options.conjunction );	&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
  Функция помещает в скобки текст первого квалификатора из переданной таблицы&lt;br /&gt;
  &lt;br /&gt;
  Принимает: объект контекста для вызова форматтеров, таблицу настроеки &lt;br /&gt;
  и таблицу квалификаторов&lt;br /&gt;
  Возвращает: отформатированная строка с квалификатором&lt;br /&gt;
 ]]&lt;br /&gt;
function p.formatQualifier( context, options, qualifiers )&lt;br /&gt;
	if (qualifiers~=nil and qualifiers[1] ~= nil) then&lt;br /&gt;
		return ' (' .. context.formatSnak( options, qualifiers[1] ) .. ')'&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return ''&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
  Функция формирует список соответствующих ученых степеней нижней ступени (P155)&lt;br /&gt;
  Например, для &amp;quot;доктор искусствоведения&amp;quot; это будет &amp;quot;кандидат искусствоведения&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  Принимает: объект таблицу сущностей - академических степеней персоны (P512)&lt;br /&gt;
  Возвращает: объект таблицу идентификаторов степеней нижней ступени&lt;br /&gt;
 ]]&lt;br /&gt;
function p.getPreviousDegrees( claims )&lt;br /&gt;
	-- Пока нет нормальной возможности загружать элементы c кэшем&lt;br /&gt;
	-- снаружи Module:Wikidata, мы эти соответствия захардкодим (без Q)&lt;br /&gt;
	local correspondingCandidates = {&lt;br /&gt;
		[16698078] = 19610224, -- архитектор&lt;br /&gt;
		[17281188] = 19610186, -- биолог&lt;br /&gt;
		[17281187] = 19610187, -- ветеринар&lt;br /&gt;
		[17281186] = 19610193, -- военный&lt;br /&gt;
		[16698080] = 19610195, -- географ&lt;br /&gt;
		[16698082] = 19610197, -- гео-мин&lt;br /&gt;
		[17281180] = 18523814, -- искусствовед&lt;br /&gt;
		[12101789] = 18523811, -- историк&lt;br /&gt;
		[16698084] = 19610200, -- культуролог&lt;br /&gt;
		[17281165] = 19610203, -- медик&lt;br /&gt;
		[17281161] = 19610206, -- педагог&lt;br /&gt;
		[12101787] = 4212319,  -- политолог&lt;br /&gt;
		[17281156] = 19610208, -- психолог&lt;br /&gt;
		[17281153] = 19610210, -- сель-хоз&lt;br /&gt;
		[17281152] = 19610212, -- социолог&lt;br /&gt;
		[17281125] = 18071588, -- техник&lt;br /&gt;
		[17281115] = 19610228, -- фармацевт&lt;br /&gt;
		[17281097] = 18002832, -- физ-мат&lt;br /&gt;
		[17281087] = 19603970, -- филолог&lt;br /&gt;
		[17281084] = 19603972, -- философ&lt;br /&gt;
		[17281079] = 19610312, -- химик&lt;br /&gt;
		[17281072] = 17744738, -- экономист&lt;br /&gt;
		[18745564] = 19610320  -- юрист&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	local previousElements = {}&lt;br /&gt;
	for i, claim in ipairs(claims) do&lt;br /&gt;
		if(claim.mainsnak.datavalue) then&lt;br /&gt;
			local entityId = claim.mainsnak.datavalue.value['numeric-id']&lt;br /&gt;
			if (entityId) then&lt;br /&gt;
				if correspondingCandidates[entityId] then&lt;br /&gt;
					previousElements[correspondingCandidates[entityId]] = true&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return previousElements&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[ &lt;br /&gt;
  Функция формирует вики-разметку категории, соответствующей ученой степени&lt;br /&gt;
&lt;br /&gt;
  Принимает: объект таблицу утверждения&lt;br /&gt;
  Возвращает: строку оформленного текста либо пустую строку&lt;br /&gt;
 ]]&lt;br /&gt;
function p.formatCorrespondingCategory (claim)&lt;br /&gt;
	if ( not claim ) then return '' end;&lt;br /&gt;
	if ( not claim.mainsnak ) then return '' end;&lt;br /&gt;
	&lt;br /&gt;
	local label = mw.wikibase.label(&amp;quot;Q&amp;quot; .. claim.mainsnak.datavalue.value['numeric-id'])&lt;br /&gt;
	if not label then label = '' end&lt;br /&gt;
		&lt;br /&gt;
	local result, changes = string.gsub(label, &amp;quot;доктор &amp;quot;, &amp;quot;Категория:Доктора &amp;quot;)&lt;br /&gt;
	if (changes == 1) then&lt;br /&gt;
		return '[[' .. result .. ']]'&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	result, changes = string.gsub(label, &amp;quot;кандидат &amp;quot;, &amp;quot;Категория:Кандидаты &amp;quot;)&lt;br /&gt;
	if (changes == 1) then&lt;br /&gt;
		return '[[' .. result .. ']]'&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return ''&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>ru&gt;Ghuron</name></author>
		
	</entry>
</feed>