MediaWikiのセマンティックフォヌム

前回、Semantic MediaWikiプラグむンの機胜に぀いお説明したした。これにより、システム内の構造化デヌタを管理し、それに基づいおさたざたな衚珟を䜜成できたす。 ここでの軟膏のフラむは、ナヌザヌが远加のマヌクアップ芁玠を孊ぶ必芁があるずいうこずです。
今日は、 Semantic Formsの拡匵機胜に぀いお説明したす。これにより、Wikiずはたったく異なるWikiを䜜成し、より倚くのナヌザヌを仕事に匕き付けるこずができたす。



Semantic MediaWikiの䞭心はセマンティックプロパティのメカニズムであるこずを思い出させおください。 セマンティックプロパティをペヌゞに割り圓おたすが、Wikiリンクを䜜成するように芋えたす[[ :: | ]] [[ :: | ]] 、しかし、それにもかかわらず、これは新しい構文です。 さらに、ナヌザヌがプロパティ䜜成のガむドを読んで掘り䞋げるほど芏埋がある堎合でも、すべおの甚語に同じ方法で名前を付けるこずはほずんどありたせん。
私の歎史的なパヌ゜ナリティwikiでは、人々の半分は たでに蚘述され、他の参加者は 蚘述され、3番目は 蚘述し 。 さお、歎史䞊の人物のリストを取埗し、生幎月日を衚瀺するには、1぀ではなく3぀のク゚リを蚘述する必芁がありたす。

 {{#ask:[[  ]] | ?  }} {{#ask:[[  ]] | ?  }} {{#ask:[[  ]] | ?  }} 

これらの問題を解決するには、テンプレヌトずフォヌムが䜿甚されたす。

パタヌン


パタヌン りィキペディアで読む 実装の詳现を隠しながら、Wiki蚘事で耇雑なマヌクアップを䜿甚するためによく䜿甚されたす。 テンプレヌトの良い䟋は、りィキペディアの情報ボックスです。 経隓豊富な゚ディタヌはhtmlを䜿甚しおテンプレヌトを䜜成し、むンフォボックスのすべおの色ずパディングが目に芋えるようにしたす。䞀方、通垞の蚘事の䜜成者は次の簡単な構文を䜿甚しお、Wikiペヌゞにむンフォボックスを挿入したす

 {{  | 1=  1 | 2=  2 | 3=  3 }} 


小さな䟋レオナルドダノィンチのロシア語版りィキペディアペヌゞで[ 線集 ]ボタンをクリックしたす。 コヌルテンプレヌト 、玠晎らしいむンフォボックスに倉換されたす。 テンプレヌト自䜓は、色、フォント、むンデントなど、デザむンに関連するものを定矩したす。



テンプレヌトの実装は、テンプレヌト名前空間に保存されたす。 名前付きテンプレヌトパラメヌタは、3぀の䞭括匧で囲たれ、呌び出し時には、パラメヌタ倀が適切な堎所で眮き換えられたす。 テンプレヌトを䜿甚するず、情報ボックスだけでなく均䞀に実行できたす。 テンプレヌトを䜿甚しお、日付ず生幎月日によっおデヌタをdiv芁玠にラップされたフレヌズずしおデザむンする小さな䟋を次に瀺したす。
テンプレヌトコヌド結果
 <div class="awesomebox">{{{}}}  {{{ }}}.    {{{ }}}</div> 
     15.4.1452.      


セマンティックテンプレヌト


私たちにずっお興味深いのは、テンプレヌトテキストにセマンティックプロパティが配眮されおいる堎合、テンプレヌトを䜿甚するすべおのペヌゞにこのプロパティが蚭定されるこずです。 Historical Personsを䜿甚した䟋にこのアプロヌチを適甚しおみたしょう。 パラメヌタを䜿甚しお同じ名前のテンプレヌトを䜜成したす。
テンプレヌトコヌド結果
 <div class="awesomebox">{{{}}}  [[ ::{{{ }}}]]... 
     15.4.1452... 


悪くない オブゞェクトを説明するずきにナヌザヌが混乱するこずはありたせん。テンプレヌトを䜿甚するすべおのペヌゞには、 プロパティがありたす。 これから2぀の重芁な点が続きたす。
  1. りィキの䜜成者は、セマンティックプロパティに぀いお䜕も知る必芁がなくなりたした。 圌らはただパタヌンを䜿甚したす。
  2. SMWをむンストヌルする前に テンプレヌトが既に存圚しおいた堎合、単にセマンティックプロパティを远加しお、ナヌザヌが䜕も気付かないように構造化デヌタの線成を利甚できたす。 これは、痛みを䌎わないセマンティフィケヌションに最適な方法です。

ただし、テンプレヌトは同じデヌタを異なる方法で曞き蟌む問題を解決できたせん。 24 1893 .ような を瀺すものもあれば、 . 1349 . . .などのレコヌドを䜿甚するものもありたす. 1349 . . . . 1349 . . . たたはさらに悪いこずに、 . . 。の . . 誰がどの圢匏で日付を瀺しおいるかを远跡し、 #askリク゚ストでの䜿甚に適したフォヌムに手動で#askする必芁が#askたす。

意味圢匏




これが意味圢匏が救いをもたらす堎所です。 匷力で巚倧なプラグむンSemantic Formsは、りィキ䜜成者にさたざたな入力芁玠を提䟛するため、コミュニティはデヌタを手動で統合する時間を無駄にしたせんでした。 セマンティックフォヌムの構文はMediaWikiの構文党䜓ず同じくらいugいですが、フォヌムを手動で䜜成しないようにする方法はたくさんありたす。 最も䞀般的なポむントから始めたしょう。

フォヌムは、html、wikiマヌクアップ、および特別なタグを䜿甚しお、 Form名前空間のwikiペヌゞに蚘述されたす。 他のWikiペヌゞず同様に線集できたす。 フォヌムはテンプレヌトに蚘入する手段です;䜜成するずきは、たずテンプレヌトパラメヌタに぀いお考えおください

通垞、フォヌムテキストは次の構造になっおいたすわかりやすくするためにコヌドをフォヌマットしようずしたしたが、MediaWikiでは蚱可されおいないこずに泚意しおください。

 {{{info| < [ ]> }}} <!--    :     ,         . --> {{{for template |  }}} <!--, ,     --> {{{field |   | input type=text }}} <!--   --> {{{field |   | input type=calendar}}} {{{field |   | input type=calendar}}} {{{field |  | input type=textarea}}} {{{end template}}} <!--   --> {{{standard input|save}}} {{{standard input|cancel}}} <!--  , ,    --> 


Semantic Formsで最も重芁なタグは、もちろんfieldです。 入力芁玠を圢成したす。テキストフィヌルド、ドロップダりンリスト、日付を入力するためのカレンダヌなどです。入力芁玠の名前は、テンプレヌトパラメヌタの名前ず䞀臎する必芁がありたす。たずえば、カレンダヌ{{{field | | input type=calendar}}} {{{field | | input type=calendar}}} {{{field | | input type=calendar}}}は、 テンプレヌトのパラメヌタヌ{{{ }}}したす。 このタグにはさたざたなパラメヌタがあり、デフォルトのテキストを入力にプリロヌドしたり、必須にしたり、有効な倀のリストを蚭定したりするこずができたす。 完党なドキュメントはヘルプペヌゞにありたす。

セマンティックフォヌムの堎合、非垞に倚くの皮類の入力が蚘述されおいたす。 それらのいく぀かはセマンティックフォヌムに盎接配眮され、いく぀かはセマンティックフォヌム入力の別々の拡匵で取り出されたす。 暙準のチェックボックス、ラゞオボタン、入力フィヌルド、リストに加えお、より興味深い入力を自由に䜿甚できたす独自の蚘述をしたい堎合は、マニュアルを参照しおください。

入力の名前説明どのタむプの写真
デむトピッカヌ日付遞択カレンダヌ日付
タむムピッカヌタむミングのためのツヌルあなたはより良い名前を付けるこずはできたせん日付画像
2぀のリストボックス巊のリストの倀は、クリックするず右にスロヌされたす任意のタむプ。 可胜な倀は、 valuesオプションを䜿甚しおプリロヌドする必芁がありたす画像
メニュヌ遞択ツリヌメニュヌから倀を遞択する任意のタむプ。 可胜な倀は、 structureパラメヌタヌにプリロヌドされおいたす。画像

離れおいるのは、地理座暙を入力するための入力です。 マップ䞊の特定の堎所を突くこずにより、座暙を指定できたす。


通垞、フォヌムはタブレットの圢で構成されたす。 入力芁玠のラベルは、通垞のwikiマヌクアップたたはhtmlを䜿甚しお䜜成されたす。 MediaWikiテヌブル構文を䜿甚するフォヌムの実際のコヌド䟋は次のずおりです。

ナニットコヌドフォヌム暙準
 <noinclude>   « ».       ,    ;       ,        . {{#forminput:form= |autocomplete on category= }} </noinclude><includeonly> {{{info|page name=< []>|create title=  }}} <div id="wikiPreview" style="display: none; padding-bottom: 25px; margin-bottom: 25px; border-bottom: 1px solid #AAAAAA;"></div> {{{for template| }}} {| class="formtable" ! : | {{{field||input type=text}}} |- !  :<br><p class="sfFieldDescription" style="font-size:0.7em; color:gray;">   .        .   .</p> | {{{field| |input type=textarea with autocomplete|Description=   .        .   .|rows=10}}} |- !  :<br><p class="sfFieldDescription" style="font-size:0.7em; color:gray;">   .        .   .</p> | {{{field| |input type=textarea with autocomplete|Description=   .        .   .|rows=10}}} |- !  :<br><p class="sfFieldDescription" style="font-size:0.7em; color:gray;">   .        .   .</p> | {{{field| |input type=textarea with autocomplete|Description=   .        .   .|rows=10}}} |- !   : | {{{field|  |input type=textarea}}} |- !   : | {{{field|  |input type=textarea with autocomplete}}} |- ! style="display:none" |  : | {{{field| |hidden|TextBeforeField=style="display:none" | }}} |} {{{end template}}} {{{standard input|summary}}} {{{standard input|save}}} {{{standard input|cancel}}} 


そのため、小さなフォヌムを䜜成したしたが、それをなんずか実行する必芁がありたす。

実行䞭のフォヌム



Form名前空間のペヌゞは、 Form単なる゜ヌスコヌドです。 フォヌムを実行するにはこのプロセスを解釈ず考えたす、いく぀かの方法がありたす。


フォヌム生成


最初からセマンティックフォヌムを蚘述するこずは、感謝のない䞍快なこずです。 通垞のwikiマヌクアップ゚ディタヌがない堎合 WikEdを詊しおみたい人はこれが最高です、゚ラヌの可胜性は非垞に高くなりたす。 そのため、フォヌムおよびテンプレヌトを生成するこずをお勧めしたす。私たちには、いく぀かのツヌルが甚意されおいたす。

たず、セマンティックフォヌムは、テンプレヌト、セマンティックプロパティずフォヌムの説明を生成するように蚭蚈されたいく぀かのサヌビスペヌゞを提䟛したす。 これらのペヌゞはSpecial:CreateProperty 、 Special:CreateTemplateおよびSpecial:CreateFormず呌ばれたす。 圌らはあなたの人生を倧いに簡玠化したす。 Special:CreateClassは、オブゞェクトのクラスを䞀挙に蚘述するSpecial:CreateClassができSpecial:CreateClass 。必芁なすべおのプロパティ、テンプレヌト、フォヌムを䜜成したす。


これらすべおの特別なペヌゞの問題は、既存のテンプレヌトずフォヌムの線集が蚱可されないこずです。フォヌムむンタヌフェヌスを䜜成する最初のステップは簡単にできたすが、MediaWikiテヌブルの構文を発明した人たちに䞍芪切な蚀葉で芚えお、手動で埮調敎する必芁がありたす。 新しいテンプレヌトオプションず入力芁玠を远加するには、耇数のペヌゞ間をゞャンプする必芁がありたす。 だからそれは陀去です。

スキヌマペヌゞスキヌマ拡匵



より高床なアプロヌチでは、 Page Schemasプラグむンをむンストヌルする必芁がありたす 。 スキヌマは、カテゎリに関連付けられたXMLの説明であり、カテゎリに属する​​オブゞェクトのプロパティ、スキヌマの説明に䜿甚されるテンプレヌト、およびこれらのテンプレヌトが入力するフォヌムに関する指瀺が含たれたす。

ペヌゞスキヌマを䜿甚するず、新しい色が生たれたす。 [ : ]ペヌゞに移動し、[ Create Schema ]ボタンをクリックしたす。 私のサヌビスでは、同じ名前のテンプレヌトに入力する フォヌムを䜜成する必芁があるず蚀うスキヌムのビゞュアル゚ディタヌです。 すぐに4぀のフィヌルド 、 、 日、 を䜜成し、䜜成する必芁があるセマンティックプロパティ、䜿甚する入力芁玠、およびそれらに指定する远加のパラメヌタヌを説明したす。

゚ディタヌは画面䞊の倚くのスペヌスを占有するため、1぀のフィヌルド 線集のみを衚瀺したす。


スキヌマ゚ディタヌはXMLドキュメントを生成したす。これは、 カテゎリのペヌゞに保存されたす。 [ Generate pagesのGenerate pages ]ボタンをクリックするず、ペヌゞスキヌマによっお必芁なすべおのペヌゞフォヌム、テンプレヌト、プロパティが生成されたす。 フィヌルドを远加する堎合、テンプレヌトを手動で線集し、フォヌムを線集しお、プロパティ出生地ペヌゞを䜜成する必芁はありたせん。 私は単に カテゎリヌペヌゞに戻り、 Edit schemaクリックしお新しいフィヌルドを远加したす。 その埌、曎新されたスキヌムに埓っお、興味のあるすべおのペヌゞを再生成するようペヌゞスキヌマに䟝頌したす。

ビゞュアルむンタヌフェむスを説明するために、スクリヌンキャストはテキストシヌトよりもはるかに優れおいるため、䞀床に短いビデオを録画したした。 レコヌディング以来、ペヌゞスキヌマに倚くの新機胜を远加するこずができ、さらに倚くの機胜を远加する予定です。



䜿甚䟋


フォヌム入力ず動的に曎新されるデヌタの組み合わせにより、MediaWikiをすぐに認識できない倚くのWebシステムが生たれたした。 SMWコミュニティは、最も興味深いセマンティックWikiが毎月遞択されるWiki of the Monthコンテストのホストを開始したした。 経隓によれば、フォヌムを䜿甚するず、ナヌザヌ入力のしきい倀を倧幅に䞋げるこずができ、悪倢のような線集者でさえ想像できない人々をりィキに匕き付けるこずができたす。

さたざたなりィキで実際に䜿甚されおいるいく぀かのフォヌムを次に瀺したす。 Gardenology wikiで怍物を蚘述するための耇雑なフォヌム



しかし、私たちはすでに技術的な先芋の明を扱うためにこのフォヌムを䜜成したした。



おわりに


あたり語りたせんでした たずえば、フォヌムはペヌゞを䜜成する手段ずしおだけでなく、セマンティックク゚リのフォヌムずしおも䜿甚できるずいう事実。 フォヌムを再利甚する方法、線集プロセス䞭にフォヌムを再構築する方法、それらに基づいお簡単な投祚投祚を䜜成する方法に぀いお。 今埌の蚘事で芋たいものを曞いおください

参照資料



vedmaka 、最初の絵の完党な哀osに感謝したす
すべおの図面をCC-BY 3.0ラむセンスで公開したす

Source: https://habr.com/ru/post/J181474/


All Articles