
ウェブサイトの作り方/動かし方を、ドキュメントとデータベースを中心にみていきますーーまた、知識をつなぐ現代の意味ネットワークについても考えます。[※1]
- ※1
- とくに既存のパッケージでは対応できないような、独自の簡潔なコンテンツ管理やウェブサービスを、オープンソースのルールとツールで実現する手法を考えていきます。
さまざまなデータベースの形式
- ◯
- しくみ

データ形式:ツリー構造:XML, JSON, YAML

データ形式:関係モデル:RDB

データ形式:関係モデル以外:NoSQL

データ操作:ツリー構造の検索 〜 関数型プログラミング言語:XPath, XSLT

データ操作:関係モデルの検索と更新:SQL
- ◯
- つくる

XML文書を作る/XSLTインタプリタを使う:xsltproc

データベースサーバ(関係モデル)を設定する:PostgreSQL, MySQL/MariaDB

データベースサーバ(関係モデル以外)を設定する:Redis, MongoDB
さまざまなプログラミング言語
- ◯
- しくみ

項書き換えとS式:Wolfram, Lisp (Scheme)

関数型プログラミング言語とイミュータブルな設計:Haskell

論理型プログラミング言語と制約プログラム:Prolog (SWI-Prolog)

手続型プログラミング言語と2系統のオブジェクト指向:Smalltalk (Squeak) , Objective-C, C++, Ruby

手続型プログラミング言語でビジュアルプログラミング:Scratch
- ◯
- つくる

システム管理を楽にする:sh, PowerShell, Perl, AWK

アプリケーションを作る:Java, C++

アプリケーションを作る(OSネイティブ):C#, Kotlin, Java, Swift, Objective-C

アプリケーションを作る(バックエンド系):Go, Rust
文書の管理
- ◯
- しくみ

中間文書を作る(なぜ独自のタグを作るのか 〜 名前をつけて中身は柔軟にコントロール)

手間を最小にするコンテンツ管理(シングルソース・マルチユース)

単独のサイトから各種メディア連携へ(アーンドメディア、オウンドメディア)

文書のリンクから知識のリンクへ(ハイパーリンク、セマンティックウェブ)
文書の処理
- ◯
- しくみ

文書処理とパイプライン

フィルタとデバイス
- ◯
- つくる

シェルのパイプライン:sh, PowerShell

その他のパイプライン:Haskell, Ruby, JavaScript
静的なコンテンツ生成:中間文書を作る
- ◯
- しくみ
- ◯
- つくる

ひとつのツリーにまとめる(サイト/ブックの全テキストを1枚のファイルに):x:site, x:book

XSLとスイッチ変数(サイトの全スタイルを1枚のファイルに)

ページに分ける:x:page

アーティクルの分割と共有:x:note

ヘッダ/フッタの共有:x:head, x:foot

メニューの自動生成:メニュー、サイトマップ、パンくずリスト:x:menu

文書の細かい要素を、独自に定義する(段落、台詞、強調、表組、一覧、……)

内容がすこしだけ違う版のサイト群を生成する

多言語対応:x:lang
静的なコンテンツ生成:多メディア対応
- ◯
- つくる

メールの定型文を生成する:TEXT

スタイルシートを生成する(数値計算のあるテキスト):CSS

各種フレームワークのテンプレートを生成する:...

マークダウン文書を生成する:...

MSオフィス文書の一部を更新する:ワード/エクセル/パワーポイント:ODF

ページ単位の文書を生成する:XSL-FO, PDF

電子書籍を生成する:EPUB

図形や動画を生成する:SVG

機械学習(教師あり学習)のデータを生成する
静的なコンテンツ生成:知識を共有する
- ◯
- しくみ

文書情報と一般情報

データ形式:リソース記述(主語・述語・目的語):RDF

データ操作:リソース記述の検索:SPARQL

リソース記述と構造化データ:RDF, JSON-LD

記述論理と現代の意味ネットワーク=セマンティックウェブ:OWL

語彙の共有:Dublin Core, Schema.org
- ◯
- つくる
動的なコンテンツ生成:バックエンドとフロントエンド
- ◯
- しくみ

動的コンテンツのための8つの基本フィルタ/デバイス(インタラクティブなウェブ)

バックエンドのプログラミング言語:Ruby, Python

フロントエンドのプログラミング言語:JavaScript (TypeScript)

バックエンドとフロントエンドの連携:CGI, Ajax
- ◯
- つくる

バックエンドのウェブフレームワーク:Ruby (Rails) , Python (Flask, Django)

バックエンドとフロントエンドの統一:JavaScript (Node.js (Express, React))

インライン編集(見たまま編集/WYSIWYG )画面を作る:TinyMCE

各種SNSとの連携:Twitter, Facebook, Instagram
動的なコンテンツ生成:ウェブサービスのパーツを作る
- ◯
- しくみ

処理と表示を分ける(MVC、ビジネスロジック/プレゼンテーションロジック)
- ◯
- つくる

ユーザ認証

フォーム入力画面を作る

メールフォームを作る(メールとの連携)

ブログシステムを作る

掲示板を作る

スケジュール管理システムを作る

SNSを作る
コンテンツ管理の効率を上げる
- ◯
- しくみ

適切な権限付与

デザインポリシー適用の自動化 〜 画面デザインからフォルダ構成まで

CMSのCMS(管理システム全体のメタ情報の管理)
- ◯
- つくる

ワンクリックで生成する:AppleScript, VBScript

中間文書を複数のファイルに分ける(権限別/用途別):XSLT

変換ライブラリを抽象度に応じて階層化する:XSLT

ファイルのバージョンを管理する(ローカルのみ〜リポジトリの共有):Git

ウェブサイトの統合(各種フレームワーク、各種CMSの統合運用)