ウィキバーシティ
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