Help:プロパティ制約
プロパティ制約はプロパティにおけるルールで、プロパティをどのように使うべきか規定します。ウィキデータのモデルそのものはたいへん柔軟で、例えばUniverse (Q1)をhead of government (P6)に追加することは可能です。しかしながら、プロパティ制約のおかげで、通常はhead of government (P6)が人間であるということがわかります。
制約はヒントであって厳格な制限ではなく、編集者にとって助けやガイドになるように作られています。例外もあり、例えばTalkeetna (Q668224)という都市ではStubbs (Q7627362)というネコが名誉市長でした。
いくつかの制約型(現在はone-of constraintとallowed qualifiers constraint)は文を編集するときにサジェストを提供するためにも使用されます。
注記:技術的にはプロパティ制約はproperty constraint (P2302)を用いて指定される、(プロパティにおける)特定の制約型の文です。したがって厳密にいえば、制約と制約型は二つの異なるものを指しますが、このページでは簡潔さのために制約型のことを単に制約と呼ぶことがあります。
よく使われる制約型
データ型に依存しない制約
プロパティを追加してもよい場所を限定する制約
- property scope constraint
- このプロパティは特定の場所で(主値として、出典として、修飾子として)のみ使用されるべきです。
- allowed-entity-types constraint
- このプロパティは特定の型のエンティティ(実体)に対してのみ使用されるべきです。例:Wikidata property example (P1855) (プロパティ)。
- subject type constraint
- このプロパティを持つ項目は特定の型を持つべきです。例:date of birth (P569)を持つ項目はinstance of (P31) human (Q5)あるいはanimal (Q729)であるべきです。
- conflicts-with constraint
- このプロパティを持つ項目は、特定の他のプロパティや文を持つべきではありません。例:sex or gender (P21)と競合するauthor (P50)は、同様にしてinstance of (P31)human (Q5)と競合します。
- item-requires-statement constraint
- このプロパティを使う項目は他の特定の文も持つべきです。例えばkilled by (P157)を採用する項目はplace of death (P20)、date of death (P570)、manner of death (P1196)homicide (Q149086)を伴うべきです。
- contemporary constraint
- このプロパティを持つ項目と、このプロパティの値は、時間軸のいずれかの時点で共存すべきです。例:mother (P25)、country of citizenship (P27)。
- label in language constraint
- このプロパティを使っている項目は、特定の言語のラベルも持つべきです。例えば、Vietnamese middle name (P8500)を使っている項目はベトナム語のラベルを持つべきです。
- description in language constraint
- このプロパティを使っているアイテムは特定言語の説明を持つべきです。
- lexeme requires language constraint
- このプロパティは特定の言語の語彙素において使われるべきです。例えば、Gran Enciclopèdia Catalana ID (former scheme) (P1296)はCatalan (Q7026)の語彙素において使われるべきです。
- lexeme requires lexical category constraint
- …
- lexeme value requires lexical category constraint
- …
値の数に関わる制約
- single-value constraint
- 項目はこのプロパティに対してひとつしか文を持つべきではありません。しばしば、識別子に対して使われますが、他の多くのプロパティでも使われます。例えば、人間は一般的にplace of birth (P19)やplace of death (P20)をひとつだけ持ちます。
- single-best-value constraint
- 項目はこのプロパティに対する「最良の」文をひとつ持つべきです。しばしば、時間と共に変化しうる項目に対して使われます。例えば、都市や国にはたいてい「現在の」head of government (P6)がひとりいます。
- multi-value constraint
- 項目はこのプロパティに対してひとつよりも多くの文を持つべきです(さもなくば何も持つべきではありません)。滅多に使われませんが、cast member (P161)、has tense (P3103)そしてhas grammatical mood (P3161)といった例があります。
- distinct-values constraint
- 別称、ユニーク値あるいは固有値。どの2つの項目も1つの値をこのプロパティについて共有すべきではありません。つまり、各項目の値はウィキデータ全体のこのプロパティに対するすべての文にわたってユニーク(唯一)であるべきです。識別子(ISBN, freebase ID, …)はユニークに(一意に)エンティティを識別すべきなので、ほとんどすべての識別子プロパティはこの制約を持ちます。他の例としてflag (P163)やanthem (P85)があります。
修飾子に関わる制約
- allowed qualifiers constraint
- このプロパティに対する文は、列挙されたもの以外の修飾子を持つべきではありません。例:continent (P30)は修飾子start time (P580)とend time (P582)を伴い、Freebase ID (P646)は何の修飾子も伴いません。
- required qualifier constraint
- このプロパティに対する文は一覧にあるすべての修飾子を伴う必要があります。例:stock exchange (P414)にはticker symbol (P249)とstart time (P580)を伴います。
出典に関わる制約
- citation needed constraint
- このプロパティに対する文は、少なくとも1つの出典を持つべきです。例:異議を唱えられる可能性の高いプロパティ。
データ型特有の制約
データ型 項目/エンティティに対する制約
- value-type constraint
- このプロパティに対する値は特定の型を持つべきです。例:mother (P25)はinstance of (P31) human (Q5)あるいはanimal (Q729)であるべきです。
- one-of constraint
- このプロパティに対する値は、与えられた項目たちのうちのいずれかひとつであるべきです。例:driving side (P1622)は、left (Q13196750)またはright (Q14565199)のいずれかであるべきです。
- none-of constraint
- このプロパティに対する値は、与えられた項目たちのうちのいずれかであってはなりません。例:instance of (P31)はwoman (Q467)であってはなりません。
- value-requires-statement constraint
- 別称、文を必要とする対象。このプロパティに対する値は、特定の他の文も持つべきです。例えば、screenwriter (P58)の値は、sex or gender (P21)とoccupation (P106)screenwriter (Q28389)を持つべきです。
- symmetric constraint
- このプロパティを使用している文は、常に双方に存在するべきです。例:sibling (P3373)、twinned administrative body (P190)。
- inverse constraint
- このプロパティを用いる文は常に逆の文を伴うべきです。例:father (P22)/mother (P25)に伴うのはchild (P40)。
- complex constraint value label
- このプロパティに対する値は特定の形式に一致する特定の言語のラベルを持たなければなりません。
Quantityに対する制約
- integer constraint
- このプロパティの値は小数点数以下の桁を持たない整数であるべきです。
- allowed units constraint
- この文に対する値は、特定の単位(あるいは単位なしで)のみ使われるべきです。例: term length of office (P2097)(単位: year (Q577))、population (P1082)(単位なし)。
- no-bounds constraint
- このプロパティに対する値は、上限や下限を使うべきではありません。これは、不確実さの概念が定義されていない、たいていの物理量ではない数量データ型プロパティに適用されます。
- range constraint
- このプロパティに対する値は特定の範囲や区間の中にあるべきです。例: flattening (P1102)は常に0と1の間です。UTC date of spacecraft launch (P619)はよりも前であってはなりません。
- difference-within-range constraint
- 別称、差の範囲。このプロパティに対する値ともうひとつのプロパティに対する値の差異は、 特定の範囲もしくは間隔に収まるべきです。例えば、date of birth (P569)とdate of death (P570)の差異は0年から150年の間であるべきです。
Timeに対する制約
- range constraint
- このプロパティに対する値は特定の範囲や区間の中にあるべきです。例: flattening (P1102)は常に0と1の間です。UTC date of spacecraft launch (P619)はよりも前であってはなりません。
- difference-within-range constraint
- 別称、差の範囲。このプロパティに対する値ともうひとつのプロパティに対する値の差異は、 特定の範囲もしくは間隔に収まるべきです。例えば、date of birth (P569)とdate of death (P570)の差異は0年から150年の間であるべきです。
文字列に基づくデータ型に対する制約
この節で列挙する制約型は文字列に基づくデータ型を持つプロパティに対して使用することができます。
- format constraint
- このプロパティの値は特定の形式であるべきです。多くは識別子に対して使われます("n"桁の数字、特定の文字から始まる、数字のみを含むなど…)。
コモンズへのリンクに対する制約
- Commons link constraint
- この文に対する値は、ウィキメディアコモンズへの有効なリンクであるべきです。例:image (P18) (“File” 名前空間)、Commons category (P373) (“Category” 名前空間)。
アルファベット順の制約
いくつかの制約には、それ自身のあらかじめ定義されたテンプレートがあり、Help:Property constraints/list of constraintsに列挙されています。
利用の手順
制約のレポートは、ログイン利用者がエンティティのページを訪れると表示されます。
ある項目に対するすべての制約をSpecial:ConstraintReportで確かめることもできます。このページはWikibaseQualityConstraints(別称「制約の拡張機能」constraints extension)によって生成されます。制約違反を管理するボットもあります。ウィキデータ全体にわたる違反のまとめはWikidata:Database reports/Constraint violationsをご参照ください。
制約型の項目
例えば、subject type constraint (Q21503250)のように各々の制約型に対して項目があります。
プロパティにおける制約文
プロパティに対する制約は、property constraint (P2302)と制約型の項目を使用して、プロパティにおける文として規定されます。 例: sibling (P3373)property constraint (P2302)symmetric constraint (Q21510862)。 非推奨の文は無視されるため、制約文のランクを「非推奨」に変更することで、制約を完全に除去することなく一時的に無効にすることができます。
制約パラメータ
多くの制約は設定を変更可能です: 選択制約(one of)は許容される値の一覧を持ち、 クラス制約(type constraint)は型(type)を含むなど。 制約を変更するこれらの設定はパラメータと呼ばれます。
制約パラメータは文の修飾子として規定されます。 例えば、
relation (P2309) ⟨ instance of (Q21503252) ⟩
class (P2308) ⟨ human (Q5) ⟩
いかなる制約文に対しても追加することができる一般的なパラメータがいくつかあります:
- constraint status (P2316)
- mandatory constraint (Q21502408)を値とすることで、このパラメータは制約が「必須」であることを示すために使うことができます。必須制約違反は必須でない制約違反よりも深刻です。必須でない制約はsuggestion constraint (Q62026391)を値とすべきです。
- exception to constraint (P2303)
- 制約に対する既知の例外を列挙します。このパラメータ以下に列挙された項目について、制約はチェックされません。
- group by (P2304)
- その値によって制約違反がグループ化されるべきであるプロパティが含まれます。つまり、データベースレポートが(すべての項目に対して)制約違反を列挙するとき、group by (P2304)パラメータで与えられたプロパティについて違反のある項目がそれらが持つ値によってグループ化されます。(制約拡張機能はこのパラメータを使用しません。)
- constraint scope (P4680)
- 制約を文のどの部分に適用するのかを3つの特別な値、constraint checked on main value (Q46466787)とconstraint checked on qualifiers (Q46466783)そしてconstraint checked on references (Q46466805)を使用して規定します。3つの値を任意の組み合わせで使用して、制約がどこでチェックされるべきなのかを規定します。パラメータが指定されていない場合、デフォルトの範囲は制約型に依存します。(データベースレポートは文の主値における違反しか列挙しないことに注意してください。)
- constraint clarification (P6607)
- この制約の目的(なぜそれが存在するのか)そして制約を解決するために推奨される行動について簡単な説明を提示します。
制約がチェックされない場合
個々の制約は制約パラメータ(上記参照)に例外を列挙することができます。これにより、その項目のあらゆる文においてその制約は全くチェックされなくなります。(現在のところ他のエンティティ型を例外として指定、あるいは別の方法で例外を列挙する仕組みはありません。)
Wikidata property example (P1855)やWikidata property example for properties (P2271)などのようなwgWBQualityConstraintsPropertiesWithViolatingQualifiers
で定義されているプロパティでは、すべての修飾子に対する制約のチェックはスキップされます。これらのプロパティに対して、修飾子は通常とは異なる意味を持ち、その文の修飾子というよりむしろ主文に近いものとなるため、これらの修飾子の制約をチェックすることには全く意味がありません。
WikibaseQualityConstraintsは標準ランクと推奨ランクの制約文のみを使い、非推奨ランクのものを無視するため、制約のランクを非推奨に設定することでWikibaseQualityConstraintsから制約を「隠す」ことができます。 (KrBotはランクに関係なくすべての制約文を使用します。)
カスタム制約
SPARQLの知識があれば、上述の制限を超えて、特定のプロパティに関する非常に複雑な制約を作成することができます。詳細な情報はTemplate:Complex constraintをご参照ください。レポートは第三者(サードパーティ)のボットが管理し、ウィキベースのソフトウェアに属するものではありません。複雑な制約を使用しているプロパティの一覧も合わせてご参照ください。
関連項目
- Wikidata:Curious Facts - 制約違反をランダムに表示するツール