ウィキバーシティ jawikiversity https://ja.wikiversity.org/wiki/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8 MediaWiki 1.47.0-wmf.18 first-letter メディア 特別 トーク 利用者 利用者・トーク Wikiversity Wikiversity・トーク ファイル ファイル・トーク MediaWiki MediaWiki・トーク テンプレート テンプレート・トーク ヘルプ ヘルプ・トーク カテゴリ カテゴリ・トーク School School‐ノート Portal Portal‐ノート Topic Topic‐ノート Transwiki Transwiki‐ノート TimedText TimedText talk モジュール モジュール・トーク Event Event talk Wikiversity・トーク:基本方針とガイドライン 5 539 23245 23240 2026-09-03T13:20:07Z 水野春彦 19032 /* 公式化に向けた改定議論 */ 返信 23245 wikitext text/x-wiki == フッタのリンク先 == 微妙にトピずれかもしれませんが、必要になりそうな文書が並んでいるページなのでここに書き加えておきます。[[User:Marine-Blue|Marine-Blue]]さんの編集を見ていて思ったのですが、フッタ(でいいのかな? Monobookで画面の最下部に表示されるもの)にあるリンク先の[[Wikiversity:ウィキバーシティについて]]と[[Wikiversity:免責事項]]は早めに作成した方がいいかもしれませんね。あと、プライバシー・ポリシーのリンク先([[MediaWiki:privacypage]]だと思うのですが未確認)は、ほかの日本語版プロジェクトと同じく、財団のポリシーページ(日本語ページ)にすればいいと思います。--[[利用者:Happy B.|Happy B.]] 2008年5月28日 (水) 06:32 (UTC) :対処しました。サイドバーの寄付に関するリンク先も変なのですが、これはMediaWiki側の問題だと思うので、あえてデフォルトのままにしてMediaWiki.orgかbetawikiで訪ねたほうがいいかもしれません。--[[User:Marine-Blue|Marine-Blue]] <small>[ [[User talk:Marine-Blue|会話]] [[Special:Contributions/Marine-Blue|履歴]] [[Special:Emailuser/Marine-Blue|電信]] ]</small> 2008年5月29日 (木) 01:00 (UTC) ::早速の対応ありがとうございました。[[Wikiversity:ウィキバーシティについて]]ですが、[[:en:Wikiversity:About]]は[[:en:Wikiversity:FAQ]]へのリダイレクトでした。日本語版でも同様にすることを考えましたが、[[Help:FAQ/Ja]]はベータ時代の内容を引きずっているので、ひとまず[[Wikiversity:ウィキバーシティとは何か]]へのリダイレクトにしてみました。--<span style="font-style:italic;" >[[User:Happy B.|Happy B.]]</span> 2008年5月29日 (木) 21:14 (UTC) == 項目名の付け方 == [[:en:Wikiversity:Naming conventions]]を[[Wikiversity:項目名の付け方]]として翻訳しました。英語苦手なので間違ってる部分とかありましたら直してくれると幸いです。--[[利用者:アルトクール|アルトクール]] 2010年1月24日 (日) 04:19 (UTC) == 基本方針とガイドラインに関する議論について == 日本語版ウィキバーシティで独自に必要なページのみを作成し、残りは日本語版ウィキペディアへの直リンクという形にするべきだと思いますが、いかがでしょうか。--[[利用者:Wish peace88|Wish peace88]] 2010年2月10日 (水) 17:58 (UTC) *「日本語版ウィキバーシティ」を作り上げていくには、プロジェクト独自のルールが必要です。しかし、全てを一から議論していくのは大変な作業です。そこで、今回の提案を行うに至りました。--[[利用者:Wish peace88|Wish peace88]] 2010年2月10日 (水) 17:58 (UTC) **とりあえずそれを作ってからというのはいいと思います。ただし、いつかはウィキペディアの直リンクではない日本語版ウィキバーシティーの独自のものを作成すべきであると考えます。--[[利用者:Heisyu|Heisyu]] ([[利用者・トーク:Heisyu|トーク]]) 2015年11月1日 (日) 11:29 (UTC) == 公式化に向けた改定議論 == [[Wikiversity:基本方針とガイドライン]](以下「本文書」といいます。)の位置づけを決めるべく、議論を提起します。 本文書は、事実上、ウィキバーシティ日本語版における方針・ガイドライン作成の根拠として機能しています。これが草案のままでは、本文書以外の方針・ガイドラインの位置づけも曖昧で不安定な状況が続きます。 現行の本文書のタイトルは「基本方針とガイドライン」ですが、履歴を追う限り、当初は、[[:en:Wikiversity:Policies]]の翻訳で、基本方針とされる文書へのリンク集でした。2016年11月16日に現行のスタイルとなり、当初あった内容は[[Wikiversity:方針とガイドラインの一覧|Wikiversity:方針とガイドライン]]に移っています。 経緯はどうであれ、約10年にわたり半ば受けいれられてきたことを考慮すると、現時点では、手続きに関する合意と公式化を優先し、[[Wikiversity:ウィキバーシティとは何か]]などが固まれば、それも踏まえて再度改定していくというプロセスにするのが現実的だと思います。 公式化に向け、提案者として一応の[[利用者:水野春彦/基本方針とガイドライン改定叩き台|叩き台]]です。叩き台のため文中のリンクなどは省略しています。提案者としては、以下の点を重視しています。文章表現にこだわりもなく、本文書のタイトルをどうするかを含め、強いこだわりはありません。 # 方針なる文書があることを規定する # 方針は合意によって決まることを規定する # 本文書を公式化することで既に運用されている草案が一律に無効化することがないようにする # (少なくとも現時点では)ウィキペディアのような沈黙を合意とみなし得る運用はリスクがあるため避ける # 草案が無秩序に増えていかないようにする 4点目、5点目の補足です。現行の本文書はおそらくウィキペディアの規定をベースにしていますが、ウィキペディアのようにアクティブな利用者が多ければ、明らかにおかしな草案、必要性が乏しい草案、ウィキメディアプロジェクトのグレーゾーンを攻めるような草案などが出てきたとしても、コミュニティの自浄作用で明確に弾かれるか穏当なものに落ち着くと思います。ただ、現実として、ウィキバーシティ日本語版のアクティブな利用者は僅少ですし、廃墟に近いような時期もあります。そのような時期に、攻めすぎた草案ができて既成事実化する、変えるに変えられない状況に陥るということは避けたいというものです。 以上、叩き台の文章含め、ご意見お願いします。叩き台は考慮に値しないが、本文書の公式化に向けた議論は否定しないということであれば、それだけでも教えていただければ幸いです。--[[利用者:水野春彦|水野春彦]] ([[利用者・トーク:水野春彦|トーク]]) 2026年9月1日 (火) 13:35 (UTC) :{{コメント}} 議論の提起ありがとうございます。叩き台を拝見いたしました。新規に方針文書を提案する際には、提案者がまず「(たとえば)仮草案(もっとはっきり言えば『叩き台』)」としてコミュニティに提示し、合意の度合いによって「公式」もしくは「草案」の方針として採用され、合意がなければ「叩き台」のままということですね。今までの草案は草案として残しつつ、新規提案とも区別できる良い案だと思います。そうであれば、文書内に「『草案』には事実上の拘束力がありますが引き続き『公式』にするための議論が必要です」「『叩き台』には拘束力がありません」のようなことを明記してもよいかと思います。--[[利用者:Shokupan|Shokupan]] ([[利用者・トーク:Shokupan|トーク]]) 2026年9月2日 (水) 13:10 (UTC) ::コメントありがとうございます。既にある「草案」はとりあえず現状と同じ位置づけで残すが、今後はこれまでのように曖昧なまま放置されていくという流れは断ち切るという点は伝わって良かったです。 ::「『草案』には事実上の拘束力がある」と一律に認めるのは個人的にはネガティブです。既にある「草案」の中にそのようなものがあるのは認めるのですが、本来はガイドラインレベルではというものもあれば、問題はあるかもしれないが現状は何の意味もないがゆえに実害も生じておらず何かの歯止めぐらいにはなっているかもしれない程度のものもあるのでは、というのが正直な印象だからです。 ::一旦、折衷案的なものを叩き台に落とし込みました。文言の挿入など文意を変えている部分は見分けられるように斜線・太字にしています(今さら気づいた自分の誤字脱字衍字もこの際修正します。推敲甘く申し訳ございません。まだあるかもしれません。)。 ::草案の文脈の中で「拘束力」という表現には抵抗感あり、ガイドラインや尊重すべき慣習的なものも飲み込める「規範」という表現にしていますが、既存の草案群を早期に議論し、公式化すべきものは公式化し、早期に合意できそうにもなく当面なくても困らない草案は格付けを落としと整理を進めていく前提であれば、受け入れられます。 ::また、叩き台的なものを新たに作らなくても議論と合意形成が可能なものもあると思うので、必須ではなく、手法の例示的な形にしてみました。たとえば、英語版のAという方針は翻訳するだけで日本語版でも使えそうだと議論して合意に至る、細かな訳語は議論があるかもしれず運用して気づくこともあるから翻訳直後は草案にしようと合意に至るケースも有効なのではないかと。--[[利用者:水野春彦|水野春彦]] ([[利用者・トーク:水野春彦|トーク]]) 2026年9月3日 (木) 13:20 (UTC) 7krjw4jh3unt38lqufaaavmuor5q0b0 モジュール:TableTools 828 3783 23242 13183 2026-09-03T12:56:18Z Hamish 6866 Update from [[d:Special:GoToLinkedPage/enwiki/Q15408619|master]] using [[mw:Synchronizer| #Synchronizer]] 23242 Scribunto text/plain ------------------------------------------------------------------------------------ -- TableTools -- -- -- -- This module includes a number of functions for dealing with Lua tables. -- -- It is a meta-module, meant to be called from other Lua modules, and should not -- -- be called directly from #invoke. -- ------------------------------------------------------------------------------------ local libraryUtil = require('libraryUtil') local p = {} -- Define often-used variables and functions. local floor = math.floor local infinity = math.huge local checkType = libraryUtil.checkType local checkTypeMulti = libraryUtil.checkTypeMulti ------------------------------------------------------------------------------------ -- isPositiveInteger -- -- This function returns true if the given value is a positive integer, and false -- if not. Although it doesn't operate on tables, it is included here as it is -- useful for determining whether a given table key is in the array part or the -- hash part of a table. ------------------------------------------------------------------------------------ function p.isPositiveInteger(v) return type(v) == 'number' and v >= 1 and floor(v) == v and v < infinity end ------------------------------------------------------------------------------------ -- isNan -- -- This function returns true if the given number is a NaN value, and false if -- not. Although it doesn't operate on tables, it is included here as it is useful -- for determining whether a value can be a valid table key. Lua will generate an -- error if a NaN is used as a table key. ------------------------------------------------------------------------------------ function p.isNan(v) return type(v) == 'number' and v ~= v end ------------------------------------------------------------------------------------ -- shallowClone -- -- This returns a clone of a table. The value returned is a new table, but all -- subtables and functions are shared. Metamethods are respected, but the returned -- table will have no metatable of its own. ------------------------------------------------------------------------------------ function p.shallowClone(t) checkType('shallowClone', 1, t, 'table') local ret = {} for k, v in pairs(t) do ret[k] = v end return ret end ------------------------------------------------------------------------------------ -- removeDuplicates -- -- This removes duplicate values from an array. Non-positive-integer keys are -- ignored. The earliest value is kept, and all subsequent duplicate values are -- removed, but otherwise the array order is unchanged. ------------------------------------------------------------------------------------ function p.removeDuplicates(arr) checkType('removeDuplicates', 1, arr, 'table') local isNan = p.isNan local ret, exists = {}, {} for _, v in ipairs(arr) do if isNan(v) then -- NaNs can't be table keys, and they are also unique, so we don't need to check existence. ret[#ret + 1] = v elseif not exists[v] then ret[#ret + 1] = v exists[v] = true end end return ret end ------------------------------------------------------------------------------------ -- numKeys -- -- This takes a table and returns an array containing the numbers of any numerical -- keys that have non-nil values, sorted in numerical order. ------------------------------------------------------------------------------------ function p.numKeys(t) checkType('numKeys', 1, t, 'table') local isPositiveInteger = p.isPositiveInteger local nums = {} for k in pairs(t) do if isPositiveInteger(k) then nums[#nums + 1] = k end end table.sort(nums) return nums end ------------------------------------------------------------------------------------ -- affixNums -- -- This takes a table and returns an array containing the numbers of keys with the -- specified prefix and suffix. For example, for the table -- {a1 = 'foo', a3 = 'bar', a6 = 'baz'} and the prefix "a", affixNums will return -- {1, 3, 6}. ------------------------------------------------------------------------------------ function p.affixNums(t, prefix, suffix) checkType('affixNums', 1, t, 'table') checkType('affixNums', 2, prefix, 'string', true) checkType('affixNums', 3, suffix, 'string', true) local function cleanPattern(s) -- Cleans a pattern so that the magic characters ()%.[]*+-?^$ are interpreted literally. return s:gsub('([%(%)%%%.%[%]%*%+%-%?%^%$])', '%%%1') end prefix = prefix or '' suffix = suffix or '' prefix = cleanPattern(prefix) suffix = cleanPattern(suffix) local pattern = '^' .. prefix .. '([1-9]%d*)' .. suffix .. '$' local nums = {} for k in pairs(t) do if type(k) == 'string' then local num = mw.ustring.match(k, pattern) if num then nums[#nums + 1] = tonumber(num) end end end table.sort(nums) return nums end ------------------------------------------------------------------------------------ -- numData -- -- Given a table with keys like {"foo1", "bar1", "foo2", "baz2"}, returns a table -- of subtables in the format -- {[1] = {foo = 'text', bar = 'text'}, [2] = {foo = 'text', baz = 'text'}}. -- Keys that don't end with an integer are stored in a subtable named "other". The -- compress option compresses the table so that it can be iterated over with -- ipairs. ------------------------------------------------------------------------------------ function p.numData(t, compress) checkType('numData', 1, t, 'table') checkType('numData', 2, compress, 'boolean', true) local ret = {} for k, v in pairs(t) do local prefix, num = mw.ustring.match(tostring(k), '^([^0-9]*)([1-9][0-9]*)$') if num then num = tonumber(num) local subtable = ret[num] or {} if prefix == '' then -- Positional parameters match the blank string; put them at the start of the subtable instead. prefix = 1 end subtable[prefix] = v ret[num] = subtable else local subtable = ret.other or {} subtable[k] = v ret.other = subtable end end if compress then local other = ret.other ret = p.compressSparseArray(ret) ret.other = other end return ret end ------------------------------------------------------------------------------------ -- compressSparseArray -- -- This takes an array with one or more nil values, and removes the nil values -- while preserving the order, so that the array can be safely traversed with -- ipairs. ------------------------------------------------------------------------------------ function p.compressSparseArray(t) checkType('compressSparseArray', 1, t, 'table') local ret = {} local nums = p.numKeys(t) for _, num in ipairs(nums) do ret[#ret + 1] = t[num] end return ret end ------------------------------------------------------------------------------------ -- sparseIpairs -- -- This is an iterator for sparse arrays. It can be used like ipairs, but can -- handle nil values. ------------------------------------------------------------------------------------ function p.sparseIpairs(t) checkType('sparseIpairs', 1, t, 'table') local nums = p.numKeys(t) local i = 0 local lim = #nums return function () i = i + 1 if i <= lim then local key = nums[i] return key, t[key] else return nil, nil end end end ------------------------------------------------------------------------------------ -- size -- -- This returns the size of a key/value pair table. It will also work on arrays, -- but for arrays it is more efficient to use the # operator. ------------------------------------------------------------------------------------ function p.size(t) checkType('size', 1, t, 'table') local i = 0 for _ in pairs(t) do i = i + 1 end return i end local function defaultKeySort(item1, item2) -- "number" < "string", so numbers will be sorted before strings. local type1, type2 = type(item1), type(item2) if type1 ~= type2 then return type1 < type2 elseif type1 == 'table' or type1 == 'boolean' or type1 == 'function' then return tostring(item1) < tostring(item2) else return item1 < item2 end end ------------------------------------------------------------------------------------ -- keysToList -- -- Returns an array of the keys in a table, sorted using either a default -- comparison function or a custom keySort function. ------------------------------------------------------------------------------------ function p.keysToList(t, keySort, checked) if not checked then checkType('keysToList', 1, t, 'table') checkTypeMulti('keysToList', 2, keySort, {'function', 'boolean', 'nil'}) end local arr = {} local index = 1 for k in pairs(t) do arr[index] = k index = index + 1 end if keySort ~= false then keySort = type(keySort) == 'function' and keySort or defaultKeySort table.sort(arr, keySort) end return arr end ------------------------------------------------------------------------------------ -- sortedPairs -- -- Iterates through a table, with the keys sorted using the keysToList function. -- If there are only numerical keys, sparseIpairs is probably more efficient. ------------------------------------------------------------------------------------ function p.sortedPairs(t, keySort) checkType('sortedPairs', 1, t, 'table') checkType('sortedPairs', 2, keySort, 'function', true) local arr = p.keysToList(t, keySort, true) local i = 0 return function () i = i + 1 local key = arr[i] if key ~= nil then return key, t[key] else return nil, nil end end end ------------------------------------------------------------------------------------ -- isArray -- -- Returns true if the given value is a table and all keys are consecutive -- integers starting at 1. ------------------------------------------------------------------------------------ function p.isArray(v) if type(v) ~= 'table' then return false end local i = 0 for _ in pairs(v) do i = i + 1 if v[i] == nil then return false end end return true end ------------------------------------------------------------------------------------ -- isArrayLike -- -- Returns true if the given value is iterable and all keys are consecutive -- integers starting at 1. ------------------------------------------------------------------------------------ function p.isArrayLike(v) if not pcall(pairs, v) then return false end local i = 0 for _ in pairs(v) do i = i + 1 if v[i] == nil then return false end end return true end ------------------------------------------------------------------------------------ -- invert -- -- Transposes the keys and values in an array. For example, {"a", "b", "c"} -> -- {a = 1, b = 2, c = 3}. Duplicates are not supported (result values refer to -- the index of the last duplicate) and NaN values are ignored. ------------------------------------------------------------------------------------ function p.invert(arr) checkType("invert", 1, arr, "table") local isNan = p.isNan local map = {} for i, v in ipairs(arr) do if not isNan(v) then map[v] = i end end return map end ------------------------------------------------------------------------------------ -- listToSet -- -- Creates a set from the array part of the table. Indexing the set by any of the -- values of the array returns true. For example, {"a", "b", "c"} -> -- {a = true, b = true, c = true}. NaN values are ignored as Lua considers them -- never equal to any value (including other NaNs or even themselves). ------------------------------------------------------------------------------------ function p.listToSet(arr) checkType("listToSet", 1, arr, "table") local isNan = p.isNan local set = {} for _, v in ipairs(arr) do if not isNan(v) then set[v] = true end end return set end ------------------------------------------------------------------------------------ -- deepCopy -- -- Recursive deep copy function. Preserves identities of subtables. ------------------------------------------------------------------------------------ local function _deepCopy(orig, includeMetatable, already_seen) if type(orig) ~= "table" then return orig end -- already_seen stores copies of tables indexed by the original table. local copy = already_seen[orig] if copy ~= nil then return copy end copy = {} already_seen[orig] = copy -- memoize before any recursion, to avoid infinite loops for orig_key, orig_value in pairs(orig) do copy[_deepCopy(orig_key, includeMetatable, already_seen)] = _deepCopy(orig_value, includeMetatable, already_seen) end if includeMetatable then local mt = getmetatable(orig) if mt ~= nil then setmetatable(copy, _deepCopy(mt, true, already_seen)) end end return copy end function p.deepCopy(orig, noMetatable, already_seen) checkType("deepCopy", 3, already_seen, "table", true) return _deepCopy(orig, not noMetatable, already_seen or {}) end ------------------------------------------------------------------------------------ -- sparseConcat -- -- Concatenates all values in the table that are indexed by a number, in order. -- sparseConcat{a, nil, c, d} => "acd" -- sparseConcat{nil, b, c, d} => "bcd" ------------------------------------------------------------------------------------ function p.sparseConcat(t, sep, i, j) local arr = {} local arr_i = 0 for _, v in p.sparseIpairs(t) do arr_i = arr_i + 1 arr[arr_i] = v end return table.concat(arr, sep, i, j) end ------------------------------------------------------------------------------------ -- length -- -- Finds the length of an array, or of a quasi-array with keys such as "data1", -- "data2", etc., using an exponential search algorithm. It is similar to the -- operator #, but may return a different value when there are gaps in the array -- portion of the table. Intended to be used on data loaded with mw.loadData. For -- other tables, use #. -- Note: #frame.args in frame object always be set to 0, regardless of the number -- of unnamed template parameters, so use this function for frame.args. ------------------------------------------------------------------------------------ function p.length(t, prefix) -- requiring module inline so that [[Module:Exponential search]] which is -- only needed by this one function doesn't get millions of transclusions local expSearch = require("Module:Exponential search") checkType('length', 1, t, 'table') checkType('length', 2, prefix, 'string', true) return expSearch(function (i) local key if prefix then key = prefix .. tostring(i) else key = i end return t[key] ~= nil end) or 0 end ------------------------------------------------------------------------------------ -- inArray -- -- Returns true if searchElement is a member of the array, and false otherwise. -- Equivalent to JavaScript array.includes(searchElement) or -- array.includes(searchElement, fromIndex), except fromIndex is 1 indexed ------------------------------------------------------------------------------------ function p.inArray(array, searchElement, fromIndex) checkType("inArray", 1, array, "table") -- if searchElement is nil, error? fromIndex = tonumber(fromIndex) if fromIndex then if (fromIndex < 0) then fromIndex = #array + fromIndex + 1 end if fromIndex < 1 then fromIndex = 1 end for _, v in ipairs({unpack(array, fromIndex)}) do if v == searchElement then return true end end else for _, v in pairs(array) do if v == searchElement then return true end end end return false end ------------------------------------------------------------------------------------ -- merge -- -- Given the arrays, returns an array containing the elements of each input array -- in sequence. ------------------------------------------------------------------------------------ function p.merge(...) local arrays = {...} local ret = {} for i, arr in ipairs(arrays) do checkType('merge', i, arr, 'table') for _, v in ipairs(arr) do ret[#ret + 1] = v end end return ret end ------------------------------------------------------------------------------------ -- extend -- -- Extends the first array in place by appending all elements from the second -- array. ------------------------------------------------------------------------------------ function p.extend(arr1, arr2) checkType('extend', 1, arr1, 'table') checkType('extend', 2, arr2, 'table') for _, v in ipairs(arr2) do arr1[#arr1 + 1] = v end end return p 4n03zk6kcoeg4gz82mieeh94c1szcjy 利用者:水野春彦/基本方針とガイドライン改定叩き台 2 6981 23243 23234 2026-09-03T13:05:56Z 水野春彦 19032 議論の一部反映・折衷案 23243 wikitext text/x-wiki ウィキバーシティ日本語版は、利用者の学習支援を目的としたウィキメディアプロジェクトです。利用者が共同で学習支援のためのコンテンツを作成・編集し、時には、プロジェクトの運営や学習のための議論を交わしていきます。方針とガイドラインは、共同編集や議論を円滑に行うための規範を文書で示したものです。 == 位置づけ == === 方針 === 方針は、すべての利用者が編集・議論の前提にすべきことやウィキバーシティ日本語版の運営で必要となる手続きを整理したものです。方針に沿わない編集や行動は、その結果を無効と判断されたり、編集内容の削除や投稿ブロックの根拠になることもあります。 === ガイドライン === ガイドラインは、各分野・各場面において、利用者に期待する行動や望ましい方法を整理したものです。利用者はガイドラインに沿った行動や方法をとることが推奨されますが、方針のような拘束力はありません。方針に反しなければ、個別の事情に応じて、ガイドラインに寄らない行動や方法をとってもかまいません。ガイドラインが方針と衝突する場合には、方針を優先します。 (私論は削る) 以上のほか、(以降元イキ) == 実施方法 == (要素を他節に散らして削る) == 内容 == 方針とガイドラインは、ウィキメディア財団の利用規約と矛盾しないことが求められます。また、内容は以下のようにすべきです。 (箇条書き部分は元イキ) == 方針・ガイドラインのステータス == 方針・ガイドラインは、コミュニティの合意の度合いによって、公式・草案に区別されます。 「公式方針」、「公式ガイドライン」は、コミュニティの合意に基づき採用されたものです。すべての方針はCategory:公式な基本方針、すべてのガイドラインはCategory:ウィキバーシティのガイドラインにあります。 「方針の草案」、「ガイドラインの草案」は、コミュニティの合意が'''''限定的な状態にあるものです。'''''<s>明確には得られていない段階のものです。</s>ただし、ウィキメディア財団の利用規約やグローバル基準に対応したものなど、内容そのものには議論の余地がないものも含まれます。草案であることは、内容の一部に議論の余地が残されていることを示したにすぎず、'''''コミュニティが草案として受け入れている以上は、一定の規範として意味を持ちます。'''''<s>無視・軽視してよいものであることを示したものではありません。</s>このステータスの方針やガイドラインはCategory:草案にあります。 == 方針を決める方法 == (要素を他節に散らして削る) == 提案と採用 == 新しい方針・ガイドラインの採用には、コミュニティの議論を通じた合意が必要です。議論の場所を決めた上で、トークページや談話室で告知したり、ウィキバーシティからのお知らせに掲載したりするなどして、コミュニティに対して議論に参加するよう呼びかけます。 提案者は、議論にあたって、方針・ガイドラインで示す内容とその必要性を具体的に示す必要があります。'''''標準名前空間以外の適当な場所に叩き台や論点ペーパーのような文書を作成してもかまいません。ただし、それが既に草案であるかと誤認させるような示し方はしないでください。''''' 議論には、提案者以外の参加者が少なくとも1名以上必要です。議論によって合意に至ったなら、公式方針・公式ガイドラインとして採用されます。採用された文書には、方針にはPolicyテンプレート、ガイドラインにはGuidelineテンプレートを貼り付けます。 大部分は合意に至ったが一部に議論の余地が残るものや、試行期間を必要とするものには、合意に基づき、公式方針・公式ガイドラインではなく草案のステータスで採用することができます。方針の草案にはProposedテンプレート、ガイドラインの草案にはGuideline Proposedテンプレートを貼り付けます。 合意に至っていない文書に、'''''草案を含め'''''方針・ガイドラインであることを示すテンプレートが貼り付られていたとしても効力を有しません。'''''議論を通じて叩き台や論点ペーパーが洗練されていったとしても、合意プロセスの確認ができない文書に、草案を含め方針・ガイドラインであることを示すテンプレートを貼り付けることはできません。'''''ただし、○○年○○月○○日'''''時点で'''''Proposedテンプレートが貼り付られていた文書については、ウィキバーシティ日本語版で事実上の規範として機能していたことに鑑み、ステータスの変更や廃止手続きがされない限りは、草案としての効力を有します。 == 改定 == すべての方針・ガイドラインは、改定することができます。 書式や文法の修正など実質的な内容の変更を伴わない編集は、いつ行ってもかまいません。 草案を公式にするといったステータスの変更や実質的な内容の変更を伴う編集は、提案と採用に準じた手続きをとります。廃止手続きも同様です。廃止された場合には、方針・ガイドラインであることを示すテンプレートを除去してください。 2lycqnk9cv6baqn1q29u4ean08hgw2d 23244 23243 2026-09-03T13:14:08Z 水野春彦 19032 折衷案 23244 wikitext text/x-wiki ウィキバーシティ日本語版は、利用者の学習支援を目的としたウィキメディアプロジェクトです。利用者が共同で学習支援のためのコンテンツを作成・編集し、時には、プロジェクトの運営や学習のための議論を交わしていきます。方針とガイドラインは、共同編集や議論を円滑に行うための規範を文書で示したものです。 == 位置づけ == === 方針 === 方針は、すべての利用者が編集・議論の前提にすべきことやウィキバーシティ日本語版の運営で必要となる手続きを整理したものです。方針に沿わない編集や行動は、その結果を無効と判断されたり、編集内容の削除や投稿ブロックの根拠になることもあります。 === ガイドライン === ガイドラインは、各分野・各場面において、利用者に期待する行動や望ましい方法を整理したものです。利用者はガイドラインに沿った行動や方法をとることが推奨されますが、方針のような拘束力はありません。方針に反しなければ、個別の事情に応じて、ガイドラインに寄らない行動や方法をとってもかまいません。ガイドラインが方針と衝突する場合には、方針を優先します。 (私論は削る) 以上のほか、(以降元イキ) == 実施方法 == (要素を他節に散らして削る) == 内容 == 方針とガイドラインは、ウィキメディア財団の利用規約と矛盾しないことが求められます。また、内容は以下のようにすべきです。 (箇条書き部分は元イキ) == 方針・ガイドラインのステータス == 方針・ガイドラインは、コミュニティの合意の度合いによって、公式・草案に区別されます。 「公式方針」、「公式ガイドライン」は、コミュニティの合意に基づき採用されたものです。すべての方針はCategory:公式な基本方針、すべてのガイドラインはCategory:ウィキバーシティのガイドラインにあります。 「方針の草案」、「ガイドラインの草案」は、コミュニティの合意が'''''限定的な状態にあるものです。'''''<s>明確には得られていない段階のものです。</s>ただし、ウィキメディア財団の利用規約やグローバル基準に対応したものなど、内容そのものには議論の余地がないものも含まれます。草案であることは、内容の一部に議論の余地が残されていることを示したにすぎず、'''''コミュニティが草案として受け入れている以上は、一定の規範として意味を持ちます。'''''<s>無視・軽視してよいものであることを示したものではありません。</s>このステータスの方針やガイドラインはCategory:草案にあります。 == 方針を決める方法 == (要素を他節に散らして削る) == 提案と採用 == 新しい方針・ガイドラインの採用には、コミュニティの議論を通じた合意が必要です。議論の場所を決めた上で、トークページや談話室で告知したり、ウィキバーシティからのお知らせに掲載したりするなどして、コミュニティに対して議論に参加するよう呼びかけます。 提案者は、議論にあたって、方針・ガイドラインで示す内容とその必要性を具体的に示す必要があります。'''''標準名前空間以外の適当な場所に叩き台や論点ペーパーのような文書を作成してもかまいません。ただし、それが既に草案であるかと誤認させるような示し方はしないでください。''''' 議論には、提案者以外の参加者が少なくとも1名以上必要です。議論によって合意に至ったなら、公式方針・公式ガイドラインとして採用されます。採用された文書には、方針にはPolicyテンプレート、ガイドラインにはGuidelineテンプレートを貼り付けます。 大部分は合意に至ったが一部に議論の余地が残るものや、試行期間を必要とするものには、合意に基づき、公式方針・公式ガイドラインではなく草案のステータスで採用することができます。方針の草案にはProposedテンプレート、ガイドラインの草案にはGuideline Proposedテンプレートを貼り付けます。'''''草案であっても一定の規範として意味を持ちますが、草案のまま運用し続けることは好ましくありません。公式方針・公式ガイドラインとして採用するか、あるいは運用を中止・廃止するか、引き続き草案のステータスを解消するための議論が必要です。''''' 合意に至っていない文書に、'''''草案を含め'''''方針・ガイドラインであることを示すテンプレートが貼り付られていたとしても効力を有しません。'''''議論を通じて叩き台や論点ペーパーが洗練されていったとしても、合意プロセスの確認ができない文書に、草案を含め方針・ガイドラインであることを示すテンプレートを貼り付けることはできません。'''''ただし、○○年○○月○○日'''''時点で'''''Proposedテンプレートが貼り付られていた文書については、ウィキバーシティ日本語版で事実上の規範として機能していたことに鑑み、ステータスの変更や廃止手続きがされない限りは、草案としての効力を有します。 == 改定 == すべての方針・ガイドラインは、改定することができます。 書式や文法の修正など実質的な内容の変更を伴わない編集は、いつ行ってもかまいません。 草案を公式にするといったステータスの変更や実質的な内容の変更を伴う編集は、提案と採用に準じた手続きをとります。廃止手続きも同様です。廃止された場合には、方針・ガイドラインであることを示すテンプレートを除去してください。 p6gbhytwri9f61orxmrttwb23wz4fbe モジュール:Exponential search 828 6982 23246 2026-09-03T22:13:14Z Hamish 6866 [IPE-NEXT] Quick edit imported from [[:w:en:Module:Exponential search]] 23246 Scribunto text/plain -- This module provides a generic exponential search algorithm. require[[strict]] local checkType = require('libraryUtil').checkType local floor = math.floor local function midPoint(lower, upper) return floor(lower + (upper - lower) / 2) end local function search(testFunc, i, lower, upper) if testFunc(i) then if i + 1 == upper then return i end lower = i if upper then i = midPoint(lower, upper) else i = i * 2 end return search(testFunc, i, lower, upper) else upper = i i = midPoint(lower, upper) return search(testFunc, i, lower, upper) end end return function (testFunc, init) checkType('Exponential search', 1, testFunc, 'function') checkType('Exponential search', 2, init, 'number', true) if init and (init < 1 or init ~= floor(init) or init == math.huge) then error(string.format( "invalid init value '%s' detected in argument #2 to " .. "'Exponential search' (init value must be a positive integer)", tostring(init) ), 2) end init = init or 2 if not testFunc(1) then return nil end return search(testFunc, init, 1, nil) end jqqi8l27tb73lglksbukg2g3bzt3fmv