Post

個人的な技術情報整理のための分類の調査

個人的な技術情報整理のための分類の調査

個人的な技術情報整理のための分類の調査

結論

結論としては、技術情報の整理にはCPU棚分類をベースにするのが良さそう。Amazon.com, 情報・経営工学書目録も分類としては良かったが、CPU棚分類は逆分類表があるのでそこも加点自由。

とはいえ、CPU棚分類も万能ではなく、例えば、大分類名:パソコン一般という名称で情報技術関連の読み物などをまとめて扱っていて少し不適切に感じたり、大分類名:ネットワーク・サーバの中でセキュリティが取り扱われていたりする点はちょっと微妙なところ。

他にも、Web制作、Webプログラミング、プログラミング・開発の3つのカテゴリがあった場合に、フロントエンド系の内容はどこに置くべきなのか、が悩ましい。

これらを踏まえ、CPU棚分類に対応するAmazon.comの英語を当てつつ、足りない項目名を補足した現時点での最終形は次のような分類にしてみた。

  • Operating System
  • Creative & Design
  • Internet Service
  • Development Management, Support & Tools
  • Computer Science
  • Database & Data Processing
  • Server Operation & Mainteinance (network, security, monitoring etc.)
  • Hardware
  • General
  • Programming & Programming Language
  • Certification

以下は、経緯と実際に検討した内容。

(少々長いです。まだ完全にしっくりきている状態ではないため、こんな分類も参考になるのでは、という観点などのコメント、お待ちしています。

マークダウンで技術メモを残して自分のためのKnowledge Baseを作成しようとしている方には、ぜひ参考にしていただきつつ、より良い方法についてアドバイスをいただけると幸いです。)

経緯

経緯としては、まず、自身の持つ情報技術関連のメモなどの整理手段を考えていたというところ。コンテンツ数としては、100ファイル、約10000行に渡るもの。

その中で、コンテンツの書き方自体は、LwDITA(Lightweight DITA)に従って、DITA Open Toolkitを使って変換すれば、マークダウンで書ける上に、管理もしやすそうでいいなと思っていた。

では、そのコンテンツをどのように管理・分類し、書くときにはどこに書くか迷うことなく、探すときにはどこを探すか迷うことのないようにする方法を模索していた。

ちなみに、整理前はこんな感じの構成だった。

  • architecture
  • backend
  • bigdata
  • bugs
  • frontend
  • infra
  • java
  • linux
  • misc
  • mobile
  • python
  • template
  • snippet

このような分類でもそれなりによかったものの、成り行きで足した関係などもあり、自身が納得しきれていない局面などがあった。(backendとinfraで迷ったり、frontendとbackendにしているせいでJavaScriptとして共通で使える項目がfrontendとbackendとに散っている点に迷ったり)

そこでITSS, ECDL, 投稿サイトのタグ, Amazonやジュンク堂などのWeb Bookstore上のカテゴリ, 図書館の分類(NDC), 分野別図書目録, CPU棚分類コードなどを確認した。

ITSS

ITスキル標準V3ダウンロード:IPA 独立行政法人 情報処理推進機構

若干多いのと、重なりがあるように思えて、どこに分類するか迷いそうな部分がありそうなのとで若干気になった。

  • マーケティングマネジメント
  • 販売チャネル戦略
  • マーケットコミュニケーション
  • 訪問型コンサルティングセールス
  • 訪問型製品セールス
  • メディア利用型セールス
  • インダストリ
  • ビジネスファンクション
  • アプリケーションアーキテクチャ
  • インテグレーションアーキテクチャ
  • インフラストラクチャアーキテクチャ
  • システム開発
  • ITアウトソーシング
  • ネットワークサービス
  • ソフトウェア製品開発
  • プラットフォーム
  • ネットワーク
  • データベース
  • アプリケーション共通基盤
  • システム管理
  • セキュリティ
  • 業務システム
  • 業務パッケージ
  • 基本ソフト
  • ミドルソフト
  • 応用ソフト
  • ハードウェア
  • ソフトウェア
  • ファシリティマネジメント
  • 運用管理
  • システム管理
  • オペレーション
  • サービスデスク
  • 研修企画
  • インストラクション

ちなみに、近頃は、ITSS+というのが公開になったようで、ITSSだけではカバーできていない領域などについて補足している模様。

具体的には、IoT、アジャイル、データサイエンス、セキュリティについて補足がされている。

ITSS+(プラス):IPA 独立行政法人 情報処理推進機構

ECDL Foundation

Intermediate Modules - ICDL - International Computer Driving Licence

定義があってわかりやすいのと、イメージがしやすかった。各項目はさらに細分化されていて、例えばWeb Editingなら、Web Concepts, HTML, Web Authoring, Using Objects, Styles, Preparing Uploadのようになっているのでそこそこいい構成のように感じた。

一方で、Computingに入ることになる項目が大きそうだったりするので、使う上での粒度は若干気になった。

  • Presentation – create professional standard presentations. Perform tasks such as creating, formatting, modifying and preparing presentations using different slide layouts for display and printed distribution.
  • Using Databases – use a desktop database effectively. Understand the main concepts of databases and demonstrate the ability to use a database application: creating and modifying tables, queries, forms and reports, and preparing outputs ready for distribution. Learning to relate tables and to retrieve and manipulate information from a database by using query and sort tools.
  • IT Security – learn how to keep your and your organisation’s data safe, and how to be safe online, including secure social media use.
  • Online Collaboration – develops the concepts and skills relating to the setup and use of online collaborative tools, calendars, social media, web meetings, learning environments, mobile technology, and cloud computing.
  • Image Editing – acquire the skills and knowledge to use a variety of programmes to manipulate images, and prepare an image for printing or for publishing on the Web.
  • Web Editing – enables you to understand the key web editing and publishing concepts, and to design, create, upload, and maintain a static website.
  • Project Planning – learn to use project management software to prepare project plans and monitor projects including planning and managing time, costs, tasks, and resources.
  • 2D Computer Aided Design – provides the skills for the creation and manipulation of objects or elements in two-dimensional design. Learn how to change object properties, and about the printing or plotting of outputs.
  • Health Information Systems Usage – aimed at users of patient data systems, such as doctors, nurses and healthcare support staff. It defines the skills necessary for staff to operate a health information system (HIS) efficiently and securely.
  • ICT in Education – learn how to engage in the pedagogically effective use of ICT to support and enhance teaching, learning and assessment in the classroom.
  • Digital Marketing – learn essential concepts and skills relating to the fundamentals of digital marketing.
  • Computing - Learn skills relating to the use of computational thinking and coding to create simple computer programs.
  • Information Literacy - Learn essential concepts and skills relating to identifying, searching, evaluating, organising and communicating online information.
  • Data Protection- Learn essential knowledge relating to data protection concepts and principles, data subject rights, the implementation of data protection policies and measures, and regulatory compliance.

技術投稿サイトのタグ

グルーピングされていない上、タグはユーザー起因のため、自由度が高すぎて整理・分類に使うのは難しそう。

ジュンク堂のWebストア

“コンピュータ・IT・情報科学”に関連するコンピュータ・IT・情報科学の紙の本の一覧 - honto本の通販ストア

タグ一覧では細かすぎるので、本屋ならどうか、ということでジュンク堂。割とこれくらいの方がちょうど良いような。

  • 情報理論・情報科学
  • 情報セキュリティ
  • ハードウェア
  • IT産業
  • コンピュータ資格
  • コンピュータ・情報科学読みもの
  • システム開発・設計
  • プログラミング言語
  • オペレーティングシステム
  • ソフトウェア
  • データベース
  • ネットワーク
  • インターネット

Amazon.co.jpでの分類

コンピュータ・IT 本 通販 | Amazon

URLが長い。また、日本語で表示しているせいだとは思いますが、「言語別」が2つ表示されているのが気になる。(恐らく実装上のミス) 入門書という部分を除けば、大体ジュンク堂と同じような構成だが、プログラミング言語別も用意しているのは良い点。

ジャンル別:

  • 入門書
  • プログラミング
  • アプリケーション
  • OS
  • Web作成・開発
  • ネットワーク
  • データベース
  • パソコン・周辺機器
  • モバイル・タブレット
  • コンピュータサイエンス
  • インターネット・eビジネス
  • グラフィックス・DTP・音楽
  • コンピュータアート
  • 各種試験対策

言語別:

  • BASIC
  • Visual BASIC
  • C
  • C++
  • HTML・XHTML
  • Java
  • Lisp
  • Perl
  • PHP
  • Ruby
  • XML
  • プログラミング入門書

言語別(OS別?):

  • Windows
  • Macintosh
  • 製品情報
  • OS・プログラミング

Amazon.comでの分類

Amazon.com: Computers and Technology

こちらは少し表記が違う。記載していないが、Audienceという分類もあった。 少し日本よりも細かな分類となっているが、具体的で想像しやすいので、後出のCPU棚分類と同じくらい気に入っている。

Platform:

  • Windows
  • Linux & Unix
  • Macintosh
  • iPhone & iOS
  • Android

Computers & Technology:

  • Business Technology
  • Certification
  • Computer Science
  • Databases & Big Data
  • Digital Audio, Video & Photography
  • Games & Strategy Guides
  • Graphics & Design
  • Hardware & DIY
  • History & Culture
  • Internet & Social Media
  • Mobile Phones, Tablets & E-Readers
  • Networking & Cloud Computing
  • Operating Systems
  • Programming
  • Programming Languages
  • Security & Encryption
  • Software
  • Web Development & Design

図書館での分類

007が情報科学だとわかるが、それ以上の分類がない。国際的な分類でも似たような形。 書店を参考にできるなら、図書館での分類を参考にしたら良いのではないか、と考えた上でのアプローチだったが筋が悪かったらしい。

分野別図書目録

その他、分野別図書目録なるものがあることも判明。 400円弱で買えて、毎年更新されている模様。内容を理解せずに購入したが、期待に沿うものだった。(Amazonでは2015年のもの以外は全て売り切れていたが、紀伊国屋書店で取り寄せ注文はできるようだった。 情報・経営工学書目録 2018年版 - 紀伊國屋書店ウェブストア )

2015年版の分類は次の通り。情報・経営工学なので品質管理のような項目も入っている。記載の内容のほか、中分類も存在する。 なお、人工知能系はシステム応用に分類され、クラウド関連については、その内容に応じて情報科学一覧やシステム応用、経営・管理工学などに分類されている。

  • 情報科学一般
  • 情報処理・リテラシー
  • ハードウェア
  • ソフトウェア
  • OS
  • 言語/プログラミング
  • アプリケション
  • 情報ネットワーク
  • システム応用
  • 資格・試験
  • 経営・管理工学
  • 経営数学
  • 生産管理
  • 品質管理

CPU棚分類コード

【棚分類コード2018/CPU棚挿しプレート】ダウンロード-コンピューター出版販売研究機構

ジュンク堂だとざっくりとしすぎているし、ITSSだと細かすぎるし、といったときにこれがいい塩梅に思えた。 コードが体系化され、逆引き表も用意されているのが素晴らしい。ちなみにそれぞれ中分類もある。

  • Linux・UNIX
  • Mac
  • Web制作
  • Webプログラミング
  • Windows
  • インターネット
  • 開発管理
  • クリエイティブ
  • 人工知能・機械学習
  • データサイエンス
  • データベース
  • ネットワーク・サーバ
  • ハードウェア・自作
  • パソコンソフト
  • パソコン一般
  • プログラミング・開発
  • モバイル
  • 資格試験

比較検討

ここまでの結果から、CPU棚分類をベースにしつつ、Amazon.com, 工学書目録をそれぞれ参考に統合を進めることにした。

情報の整理のしやすさ、言い換えれば、コンテンツを追加する際の迷いにくさとコンテンツを取得する際の迷いにくさを考慮し、次のように組み替えた。

記載するコンテンツをDITA形式に従わせる場合、比較的ファイル数が多くなりがちなので、コンテンツの数が目立つものからさらに分類化して対応する。

構成の遷移

結果として、構成は次のように遷移した。基本的にはマッピングし直しただけなので、今後コンテンツの中身を分解して再配置することも必要。

また、DITAに関連する話だが、各ディレクトリにmapファイルを配置し、そのディレクトリ以下にある各ファイルをmap内に記載、上位ディレクトリでは各ディレクトリに配置したmapファイルを読み込むことで、メンテナンスしやすい状態でmarkdownをhtmlのセットやGitBookのコンテンツとして出力することができた。

今後の運用

何を書くか、どう書くか、どこに書くか、という点で見たとき、どこに書くかが、分類を見直すことで以前よりもスムーズになった。

一方で、カテゴリによってはコンテンツに偏りがあり、また、実際にこのカテゴリを前提に運用していると、まだ改善の余地があるように感じている。

どう書くかについても、DITA形式に沿わせることで、メンテナビリティが高くて、また知りたいことだけが書いてあるコンテンツにたどり着きやすくなるので良いというメリットは見えているものの、既存コンテンツをその分類に沿わせるための労力が見合うのかなどは、やり方を含め検討中。(変換については、Makefileとshellscriptによって自動化は実施済み)

また、mapの作成についても現状は手動になってしまっているため、何らかの自動化を図るなどの検討の余地あり。