@prefix schema: <https://schema.org/> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix ks: <https://comcomponent.com/vocab/> .

<https://comcomponent.com/blog/no-source-no-docs-system-maintenance/#article>
    schema:about <https://comcomponent.com/knowledge/legacy-system-handover/>, <https://comcomponent.com/knowledge/environment-preservation/>, <https://comcomponent.com/knowledge/spec-recovery/> ;
    schema:mentions <https://comcomponent.com/knowledge/disk2vhd/>, <https://comcomponent.com/knowledge/vss/>, <https://comcomponent.com/knowledge/asset-inventory/>, <https://comcomponent.com/knowledge/user-hearing/>, <https://comcomponent.com/knowledge/decompilation/>, <https://comcomponent.com/knowledge/ilspy/>, <https://comcomponent.com/knowledge/native-aot/>, <https://comcomponent.com/knowledge/pdb/>, <https://comcomponent.com/knowledge/vb6/>, <https://comcomponent.com/knowledge/obfuscation/>, <https://comcomponent.com/knowledge/copyright-law-article-30-4/>, <https://comcomponent.com/knowledge/eula-restriction/>, <https://comcomponent.com/knowledge/quasi-mandate-contract/>, <https://comcomponent.com/knowledge/ukeoi-contract/>, <https://comcomponent.com/knowledge/autoruns/>, <https://comcomponent.com/knowledge/procmon/>, <https://comcomponent.com/knowledge/dotnet/> .

<https://comcomponent.com/knowledge/legacy-system-handover/> a skos:Concept ;
    skos:prefLabel "ソースコード・仕様書がないシステムの引き継ぎ"@ja ;
    skos:definition "開発した会社や担当者と連絡が取れず、ソースコードも仕様書も残っていない業務システムを、動いている状態のまま引き継いで運用・保守を続けること。"@ja ;
    skos:altLabel "レガシーシステムの引き継ぎ"@ja ;
    skos:altLabel "ブラックボックス化したシステムの保守"@ja ;
    ks:requires <https://comcomponent.com/knowledge/environment-preservation/> ;
    ks:requires <https://comcomponent.com/knowledge/asset-inventory/> ;
    ks:requires <https://comcomponent.com/knowledge/spec-recovery/> .

<https://comcomponent.com/knowledge/environment-preservation/> a skos:Concept ;
    skos:prefLabel "現状の保全"@ja ;
    skos:definition "改修に着手する前に、動いている本番環境とデータベースをバックアップし、復元できることまで確認する最初の工程。"@ja ;
    skos:altLabel "環境の保全"@ja ;
    ks:shouldPrecede <https://comcomponent.com/knowledge/asset-inventory/> .

<https://comcomponent.com/knowledge/spec-recovery/> a skos:Concept ;
    skos:prefLabel "仕様の復元"@ja ;
    skos:definition "仕様書がない状態で、ヒアリング・画面や帳票・データベーススキーマ・ログ・実挙動の観測から、システムの仕様を後から組み立てる作業。"@ja ;
    skos:altLabel "仕様復元"@ja ;
    ks:uses <https://comcomponent.com/knowledge/user-hearing/> ;
    ks:uses <https://comcomponent.com/knowledge/procmon/> .

<https://comcomponent.com/knowledge/disk2vhd/> a skos:Concept ;
    skos:prefLabel "Disk2vhd"@ja ;
    skos:definition "稼働中のシステムをオンラインのままボリュームシャドウコピーサービス(VSS)で一貫性のある時点のVHD/VHDXへ変換するSysinternalsのツール。"@ja ;
    skos:altLabel "Disk2vhd (Sysinternals)" ;
    ks:uses <https://comcomponent.com/knowledge/vss/> .

<https://comcomponent.com/knowledge/vss/> a skos:Concept ;
    skos:prefLabel "VSS(ボリュームシャドウコピーサービス)"@ja ;
    skos:definition "稼働中のボリュームについて、ある時点で一貫性のあるスナップショットを取得するWindowsの仕組み。"@ja ;
    skos:altLabel "Volume Shadow Copy Service" .

<https://comcomponent.com/knowledge/asset-inventory/> a skos:Concept ;
    skos:prefLabel "構成要素の棚卸し"@ja ;
    skos:definition "実行ファイル・自動起動・スケジュールタスク・設定・連携先・アカウントなど、システムを構成する要素を機械的に洗い出して一覧化する作業。"@ja ;
    skos:altLabel "棚卸し"@ja ;
    ks:shouldPrecede <https://comcomponent.com/knowledge/spec-recovery/> .

<https://comcomponent.com/knowledge/autoruns/> a skos:Concept ;
    skos:prefLabel "Autoruns"@ja ;
    skos:definition "スタートアップ・サービス・スケジュールタスクなど、Windowsの自動起動ポイントに登録されたプログラムを網羅的に一覧表示できるSysinternalsのツール。"@ja ;
    skos:altLabel "Autoruns for Windows (Sysinternals)" .

<https://comcomponent.com/knowledge/procmon/> a skos:Concept ;
    skos:prefLabel "Process Monitor(procmon.exe)"@ja ;
    skos:definition "ファイルI/O・レジストリ・プロセス/スレッド活動をリアルタイムに監視できるSysinternalsのツール。Advanced Outputを有効にすると、IRPやファストI/Oのカーネル側の語彙で操作を表示する。"@ja ;
    skos:altLabel "Procmon" ;
    skos:altLabel "Process Monitor" .

<https://comcomponent.com/knowledge/user-hearing/> a skos:Concept ;
    skos:prefLabel "業務利用者へのヒアリング"@ja ;
    skos:definition "日次・月次・年次の業務の流れに沿って、どの画面で何を入力し何が出てくるかを、実際にシステムを使っている利用者から聞き取ること。"@ja ;
    skos:altLabel "利用者ヒアリング"@ja .

<https://comcomponent.com/knowledge/decompilation/> a skos:Concept ;
    skos:prefLabel "逆コンパイル"@ja ;
    skos:definition "実行ファイルから高級言語のソースコードに近い形を再構成すること。IL(中間言語)やJavaバイトコードのように構造情報が残る形式で有効。"@ja ;
    skos:altLabel "リバースエンジニアリング(コード解析)"@ja ;
    ks:notRecommendedFor <https://comcomponent.com/knowledge/native-aot/> ;
    ks:notRecommendedFor <https://comcomponent.com/knowledge/vb6/> ;
    ks:requires <https://comcomponent.com/knowledge/copyright-law-article-30-4/> .

<https://comcomponent.com/knowledge/ilspy/> a skos:Concept ;
    skos:prefLabel "ILSpy"@ja ;
    skos:definition "オープンソースの.NETアセンブリブラウザー・逆コンパイラで、Visual Studioの逆コンパイル機能の基盤になっている。"@ja ;
    skos:altLabel ".NET逆コンパイラ"@ja .

<https://comcomponent.com/knowledge/dotnet/> a skos:Concept ;
    skos:prefLabel ".NET(Core以降)"@ja ;
    skos:definition ".NET Frameworkの後継となる、クロスプラットフォーム対応の.NETランタイム(.NET 5以降)。"@ja ;
    skos:altLabel ".NET Core" ;
    skos:altLabel "モダンな.NET"@ja .

<https://comcomponent.com/knowledge/native-aot/> a skos:Concept ;
    skos:prefLabel "Native AOT"@ja ;
    skos:definition ".NETアプリを単一のネイティブバイナリへ事前コンパイルする発行方式。非対応リストにC++/CLIが明記されている。"@ja ;
    skos:altLabel "PublishAot" .

<https://comcomponent.com/knowledge/vb6/> a skos:Concept ;
    skos:prefLabel "Visual Basic 6.0(VB6)"@ja ;
    skos:definition "COMコンポーネントを型付きで呼び出せる、レガシーなVisual Basicの開発環境・言語。"@ja ;
    skos:altLabel "VB6" .

<https://comcomponent.com/knowledge/obfuscation/> a skos:Concept ;
    skos:prefLabel "難読化(オブファスケーション)"@ja ;
    skos:definition "クラス名・メソッド名を無意味な文字列に置き換えるなどして、逆コンパイル結果を読みにくくする加工。"@ja ;
    skos:altLabel "Obfuscation" .

<https://comcomponent.com/knowledge/pdb/> a skos:Concept ;
    skos:prefLabel "PDB(プログラムデータベース)"@ja ;
    skos:definition "ビルド後の.dll/.exeと、ソースコード上の行・変数名を結びつけるデバッグ情報ファイル。アプリケーションの実行には通常不要だが、デバッグ・例外調査・ダンプ解析に使う。"@ja ;
    skos:altLabel "Program Database" ;
    skos:altLabel "シンボルファイル"@ja .

<https://comcomponent.com/knowledge/copyright-law-article-30-4/> a skos:Concept ;
    skos:prefLabel "著作権法第30条の4"@ja ;
    skos:definition "プログラムの調査解析のような、著作物に表現された思想または感情の享受を目的としない利用を、必要と認められる限度で原則として許容する平成30年改正の権利制限規定。"@ja ;
    skos:altLabel "著作物の享受を目的としない利用"@ja .

<https://comcomponent.com/knowledge/eula-restriction/> a skos:Concept ;
    skos:prefLabel "使用許諾契約(EULA)の解析禁止条項"@ja ;
    skos:definition "パッケージソフトや納品物の使用許諾契約に含まれる、リバースエンジニアリングや解析を禁じる条項。その効力をどう考えるかは契約上の論点として残る。"@ja ;
    skos:altLabel "EULA解析禁止条項"@ja .

<https://comcomponent.com/knowledge/quasi-mandate-contract/> a skos:Concept ;
    skos:prefLabel "準委任契約"@ja ;
    skos:definition "専門家として業務を行うことに対して報酬を支払う契約類型。受託側は完成責任を負わず、善管注意義務を負う。"@ja ;
    skos:altLabel "準委任"@ja ;
    skos:altLabel "Quasi-Mandate Contract" ;
    ks:shouldPrecede <https://comcomponent.com/knowledge/ukeoi-contract/> .

<https://comcomponent.com/knowledge/ukeoi-contract/> a skos:Concept ;
    skos:prefLabel "請負契約"@ja ;
    skos:definition "仕事を完成させることを約束し、その結果に対して報酬が支払われる契約類型。"@ja ;
    skos:altLabel "請負"@ja ;
    skos:altLabel "Contract for Work" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/legacy-system-handover/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/environment-preservation/> ;
    schema:description "何もない状態からシステムを引き継いだら、改修より先に動いている環境そのものを保全することが最初の作業になる"@ja ;
    ks:evidence <https://learn.microsoft.com/sysinternals/downloads/disk2vhd> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/environment-preservation/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/disk2vhd/> ;
    schema:description "本番環境をディスクイメージとして丸ごと保全する場合、Sysinternalsが提供するDisk2vhdを使う"@ja ;
    ks:evidence <https://learn.microsoft.com/sysinternals/downloads/disk2vhd> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/disk2vhd/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/vss/> ;
    schema:description "Disk2vhdは稼働中のシステムをオンラインのまま、VSS(ボリュームシャドウコピーサービス)で一貫性のある時点のVHD/VHDXに変換する"@ja ;
    ks:evidence <https://learn.microsoft.com/windows-server/storage/file-server/volume-shadow-copy-service> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/legacy-system-handover/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/asset-inventory/> ;
    schema:description "現状保全の次に、実行ファイル・自動起動・タスク・設定・連携先・アカウントを機械的に棚卸しする工程が必要になる"@ja ;
    ks:evidence <https://learn.microsoft.com/sysinternals/downloads/autoruns> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/asset-inventory/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/autoruns/> ;
    schema:description "自動起動する項目の洗い出しに絞る場合、SysinternalsのAutorunsを使う"@ja ;
    ks:evidence <https://learn.microsoft.com/sysinternals/downloads/autoruns> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/asset-inventory/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/procmon/> ;
    schema:description "設定ファイルや出力先の場所が分からない場合は、Process Monitorでファイル・レジストリアクセスを観測するのが早道になる"@ja ;
    ks:evidence <https://learn.microsoft.com/sysinternals/downloads/procmon> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/legacy-system-handover/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/spec-recovery/> ;
    schema:description "仕様書がなくても、ヒアリングや実挙動の観察から仕様を復元する工程が引き継ぎには必要になる"@ja ;
    ks:evidence <https://learn.microsoft.com/sysinternals/downloads/procmon> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/spec-recovery/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/user-hearing/> ;
    schema:description "最大の仕様書は、毎日そのシステムを使っている業務利用者の頭の中にあり、ヒアリングが仕様復元の主要な材料になる"@ja ;
    ks:evidence <https://www.ipa.go.jp/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/spec-recovery/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/procmon/> ;
    schema:description "実挙動の観測(ファイル・レジストリ・ネットワークのアクセス)にProcess Monitorを使い、入出力の対応関係をソースコードなしで裏付ける"@ja ;
    ks:evidence <https://learn.microsoft.com/sysinternals/downloads/procmon> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/spec-recovery/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/decompilation/> ;
    schema:description "実行ファイルの中身の挙動を理解する材料として、技術スタックが許す場合は逆コンパイルが仕様復元の選択肢になる"@ja ;
    ks:evidence <https://learn.microsoft.com/visualstudio/debugger/decompilation> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/decompilation/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/ilspy/> ;
    schema:description "Visual Studioに内蔵の逆コンパイル機能を使う場合、それはオープンソースのILSpyに基づく"@ja ;
    ks:evidence <https://github.com/icsharpcode/ILSpy> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/decompilation/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/dotnet/> ;
    schema:description "通常のIL形式で配置された.NET製アプリの場合、逆コンパイルで得られるC#コードは処理の理解に十分実用的な水準になる"@ja ;
    ks:evidence <https://learn.microsoft.com/visualstudio/debugger/decompilation> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/decompilation/> ;
    rdf:predicate ks:notRecommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/native-aot/> ;
    schema:description "Native AOTで発行されたバイナリはILを含まずネイティブコードに変換済みのため、逆コンパイラでのC#復元は期待できない"@ja ;
    ks:evidence <https://learn.microsoft.com/dotnet/core/deploying/native-aot/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/decompilation/> ;
    rdf:predicate ks:notRecommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/vb6/> ;
    schema:description "VB6の実行ファイルは元ソースに近い形への機械的な復元が現実的でなく、挙動ベースの解析と部分的な再実装が中心になる"@ja ;
    ks:evidence <https://learn.microsoft.com/previous-versions/visualstudio/visual-basic-6/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/obfuscation/> ;
    rdf:predicate ks:mitigates ;
    rdf:object <https://comcomponent.com/knowledge/decompilation/> ;
    schema:description "難読化が施されている場合、逆コンパイルによって処理の内容を読み取れる度合いが大きく下がる"@ja ;
    ks:evidence <https://learn.microsoft.com/visualstudio/debugger/decompilation> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/pdb/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/decompilation/> ;
    schema:description "実行ファイルと一緒にPDB(シンボルファイル)が残っていれば、関数名や埋め込みソースまで復元できる場合があり、解析の助けになる"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/dotnet/core/diagnostics/symbols> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/decompilation/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/copyright-law-article-30-4/> ;
    schema:description "逆コンパイルを含む調査解析は、著作権法第30条の4が定める『著作物の享受を目的としない利用』の範囲に収まるかどうかの確認を要する"@ja ;
    ks:evidence <https://laws.e-gov.go.jp/law/345AC0000000048> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/eula-restriction/> ;
    rdf:predicate ks:incompatibleWith ;
    rdf:object <https://comcomponent.com/knowledge/decompilation/> ;
    schema:description "使用許諾契約(EULA)に解析禁止条項が含まれる場合、逆コンパイルの実施可否に契約上の制約がかかりうる"@ja ;
    ks:evidence <https://laws.e-gov.go.jp/law/345AC0000000048> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/legacy-system-handover/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/quasi-mandate-contract/> ;
    schema:description "外部に保守を依頼する場合、中身の分からないシステムの調査には完成責任を約束できないため、調査フェーズは請負ではなく準委任契約で進めるのが基本になる。社内担当者による引き継ぎのように契約が発生しない場合は当てはまらない"@ja ;
    ks:evidence <https://laws.e-gov.go.jp/law/129AC0000000089> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/quasi-mandate-contract/> ;
    rdf:predicate ks:shouldPrecede ;
    rdf:object <https://comcomponent.com/knowledge/ukeoi-contract/> ;
    schema:description "調査フェーズは準委任で進め、仕様が固まった後の個別改修フェーズになって初めて請負(または成果完成型準委任)へ切り替えるのがフェーズ分けの原則"@ja ;
    ks:evidence <https://laws.e-gov.go.jp/law/129AC0000000089> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/environment-preservation/> ;
    rdf:predicate ks:shouldPrecede ;
    rdf:object <https://comcomponent.com/knowledge/asset-inventory/> ;
    schema:description "変更凍結とバックアップによる現状保全を終えてから、構成要素の棚卸しに進む順序が実務の型になる"@ja ;
    ks:evidence <https://learn.microsoft.com/sysinternals/downloads/disk2vhd> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/asset-inventory/> ;
    rdf:predicate ks:shouldPrecede ;
    rdf:object <https://comcomponent.com/knowledge/spec-recovery/> ;
    schema:description "棚卸しを先に短期間で終えて対象の本数を数えることが、見積もりの精度を上げる近道になるため、仕様復元より先に切り上げるべき工程とされる"@ja ;
    ks:evidence <https://learn.microsoft.com/sysinternals/downloads/procmon> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .
