@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/dsc-windows-declarative-iac/#article>
    schema:about <https://comcomponent.com/knowledge/microsoft-dsc-v3/>, <https://comcomponent.com/knowledge/dsc-configuration-document/>, <https://comcomponent.com/knowledge/idempotency/> ;
    schema:mentions <https://comcomponent.com/knowledge/powershell-dsc/>, <https://comcomponent.com/knowledge/dsc-resource/>, <https://comcomponent.com/knowledge/dsc-adapter-resource/>, <https://comcomponent.com/knowledge/winget-configuration/>, <https://comcomponent.com/knowledge/configuration-drift/>, <https://comcomponent.com/knowledge/dsc-config-test/>, <https://comcomponent.com/knowledge/local-configuration-manager/>, <https://comcomponent.com/knowledge/azure-machine-configuration/>, <https://comcomponent.com/knowledge/winget/>, <https://comcomponent.com/knowledge/task-scheduler/>, <https://comcomponent.com/knowledge/powershell-7/>, <https://comcomponent.com/knowledge/windows-powershell-5-1/>, <https://comcomponent.com/knowledge/admin-rights/>, <https://comcomponent.com/knowledge/plaintext-secret-storage-risk/>, <https://comcomponent.com/knowledge/windows-registry/>, <https://comcomponent.com/knowledge/bat-file/>, <https://comcomponent.com/knowledge/microsoft-store/> .

<https://comcomponent.com/knowledge/microsoft-dsc-v3/> a skos:Concept ;
    skos:prefLabel "Microsoft DSC v3"@ja ;
    skos:definition "PowerShellに依存しない独立したコマンド（dsc.exe）として書き直された宣言的構成管理プラットフォーム。構成をYAML/JSONのデータとして記述し、Linux・macOS・Windowsで動作する。"@ja ;
    skos:altLabel "dsc.exe" ;
    skos:altLabel "DSC v3" ;
    ks:succeeds <https://comcomponent.com/knowledge/powershell-dsc/> ;
    ks:uses <https://comcomponent.com/knowledge/dsc-configuration-document/> ;
    ks:uses <https://comcomponent.com/knowledge/dsc-resource/> ;
    ks:implements <https://comcomponent.com/knowledge/idempotency/> ;
    ks:uses <https://comcomponent.com/knowledge/dsc-adapter-resource/> .

<https://comcomponent.com/knowledge/dsc-configuration-document/> a skos:Concept ;
    skos:prefLabel "DSC構成ドキュメント"@ja ;
    skos:definition "システムのあるべき状態をリソースインスタンスの集合として宣言するYAML/JSONのデータファイル。$schemaとresourcesを必須プロパティとして持つ。"@ja ;
    skos:altLabel "configuration document" ;
    ks:uses <https://comcomponent.com/knowledge/dsc-resource/> .

<https://comcomponent.com/knowledge/idempotency/> a skos:Concept ;
    skos:prefLabel "冪等性"@ja ;
    skos:definition "同じ処理を何度実行しても結果が変わらない性質。キッティングスクリプトでは、現在の状態を確認してから変更することで実現する。"@ja ;
    skos:altLabel "Idempotency" .

<https://comcomponent.com/knowledge/powershell-dsc/> a skos:Concept ;
    skos:prefLabel "PowerShell DSC"@ja ;
    skos:definition "望ましい状態を宣言的に記述し、その状態に収束させるPowerShellの構成管理の仕組み。WinGet Configurationが内部で利用する。"@ja ;
    skos:altLabel "Desired State Configuration" .

<https://comcomponent.com/knowledge/dsc-resource/> a skos:Concept ;
    skos:prefLabel "DSCリソース"@ja ;
    skos:definition "レジストリ値やWindows機能など構成対象1種類ごとの標準化されたインターフェイス。状態の取得（Get）はすべてのリソースが実装し、判定（Test）は未実装ならDSCが合成テストで代行、適用（Set）は状態を強制できるリソースだけが実装する。"@ja ;
    skos:altLabel "DSC Resource" .

<https://comcomponent.com/knowledge/dsc-adapter-resource/> a skos:Concept ;
    skos:prefLabel "アダプタリソース"@ja ;
    skos:definition "コマンド型でないリソースをDSC v3から利用可能にするリソース。Microsoft.Adapter/PowerShellなどが既存のPSDSCリソースの発見と呼び出しを担う。"@ja ;
    skos:altLabel "adapter resource" ;
    ks:uses <https://comcomponent.com/knowledge/powershell-dsc/> .

<https://comcomponent.com/knowledge/winget-configuration/> a skos:Concept ;
    skos:prefLabel "WinGet Configuration"@ja ;
    skos:definition "最終的にあるべき状態をYAMLファイルで宣言し、PowerShell DSCを通じて適用するwingetの仕組み。アプリの導入とWindows・アプリの設定を1ファイルで表現できる。"@ja ;
    skos:altLabel "winget configure" .

<https://comcomponent.com/knowledge/configuration-drift/> a skos:Concept ;
    skos:prefLabel "構成ドリフト"@ja ;
    skos:definition "適用済みの構成が、手作業の変更などによって時間とともに「あるべき状態」からずれていくこと。"@ja ;
    skos:altLabel "configuration drift" ;
    ks:verifiedBy <https://comcomponent.com/knowledge/dsc-config-test/> .

<https://comcomponent.com/knowledge/dsc-config-test/> a skos:Concept ;
    skos:prefLabel "dsc config test"@ja ;
    skos:definition "構成ドキュメントの各リソースインスタンスが望む状態にあるかを、システムに変更を加えずに検証するDSC v3のコマンド。"@ja .

<https://comcomponent.com/knowledge/local-configuration-manager/> a skos:Concept ;
    skos:prefLabel "LCM"@ja ;
    skos:definition "PSDSC v1.1で構成の保持・定期適用・自動修復を担った常駐エージェント。Microsoft DSC v3はLCMを含まず、コマンドとして起動される。"@ja ;
    skos:altLabel "Local Configuration Manager" .

<https://comcomponent.com/knowledge/azure-machine-configuration/> a skos:Concept ;
    skos:prefLabel "Azure Machine Configuration"@ja ;
    skos:definition "Azure PolicyのMachine Configuration機能。Azure仮想マシンとAzure Arc対応サーバーに対して、OS内の設定の監査と構成をマネージドに行う。"@ja ;
    skos:altLabel "Machine Configuration" .

<https://comcomponent.com/knowledge/winget/> a skos:Concept ;
    skos:prefLabel "winget"@ja ;
    skos:definition "Windowsクライアントでの推奨インストール方法として案内される、Microsoft製のパッケージマネージャー。"@ja ;
    ks:implements <https://comcomponent.com/knowledge/winget-configuration/> .

<https://comcomponent.com/knowledge/powershell-7/> a skos:Concept ;
    skos:prefLabel "PowerShell 7"@ja ;
    skos:definition "PowerShell Core系譜の最新世代で、.NET(Core以降)上に構築されたPowerShellのエディション。実行ファイルはpwsh.exeで5.1のpowershell.exeとサイドバイサイドに共存し、Out-File・Set-Content・Export-Csvなどの既定書き込みencodingはBOMなしUTF-8である。"@ja .

<https://comcomponent.com/knowledge/windows-powershell-5-1/> a skos:Concept ;
    skos:prefLabel "Windows PowerShell 5.1"@ja ;
    skos:definition "Windowsに標準で同梱されている、.NET Framework上に構築されたレガシー世代のPowerShell(5.1系)のランタイム。実行ファイルはpowershell.exeで、.NETアプリからはMicrosoft.PowerShell.5.1.ReferenceAssembliesを介して呼び出せる。"@ja ;
    skos:altLabel "Microsoft.PowerShell.5.1.ReferenceAssemblies" .

<https://comcomponent.com/knowledge/task-scheduler/> a skos:Concept ;
    skos:prefLabel "タスクスケジューラの無人実行"@ja ;
    skos:definition "指定したアカウントで、スケジュールやログオンなどのトリガーに従いプログラムを実行するWindowsの仕組み。ログオン種別(対話トークン・パスワード保存・S4Uなど)の設定によっては、ユーザーがログオンしていなくても実行できる。"@ja ;
    ks:automates <https://comcomponent.com/knowledge/dsc-config-test/> .

<https://comcomponent.com/knowledge/admin-rights/> a skos:Concept ;
    skos:prefLabel "管理者権限"@ja ;
    skos:definition "コンピューター全体の設定を変更できる権限。"@ja ;
    skos:altLabel "昇格"@ja .

<https://comcomponent.com/knowledge/plaintext-secret-storage-risk/> a skos:Concept ;
    skos:prefLabel "秘密情報の平文保存リスク"@ja ;
    skos:definition "接続文字列やトークンなどの秘密情報を設定ファイルへ平文のまま保存し、読み取られるリスクにさらすこと。"@ja ;
    skos:altLabel "平文保存"@ja .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/microsoft-dsc-v3/> ;
    rdf:predicate ks:succeeds ;
    rdf:object <https://comcomponent.com/knowledge/powershell-dsc/> ;
    schema:description "PowerShellへの依存を切り離して書き直された独立プロダクトで、PSDSCの後継に当たる。"@ja ;
    ks:evidence <https://learn.microsoft.com/powershell/scripting/dsc/overview?view=powershell-7.6>, <https://learn.microsoft.com/powershell/dsc/overview?view=dsc-3.0> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/microsoft-dsc-v3/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/dsc-configuration-document/> ;
    schema:description "あるべき状態は構成ドキュメントとして記述され、dsc configコマンドのget・test・set・exportで処理される。"@ja ;
    ks:evidence <https://learn.microsoft.com/powershell/dsc/concepts/configuration-documents/overview?view=dsc-3.0> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/microsoft-dsc-v3/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/dsc-resource/> ;
    schema:description "構成対象ごとの状態の取得・判定・適用はリソースが実装し、DSCはそれを宣言に従って呼び出す。"@ja ;
    ks:evidence <https://learn.microsoft.com/powershell/dsc/concepts/resources/overview?view=dsc-3.0> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/dsc-configuration-document/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/dsc-resource/> ;
    schema:description "構成ドキュメントはリソースインスタンス（name・type・properties）の集合としてあるべき状態を宣言する。"@ja ;
    ks:evidence <https://learn.microsoft.com/powershell/dsc/concepts/configuration-documents/overview?view=dsc-3.0> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/microsoft-dsc-v3/> ;
    rdf:predicate ks:implements ;
    rdf:object <https://comcomponent.com/knowledge/idempotency/> ;
    schema:description "dsc config setではDSCが各インスタンスをtest（または合成テスト）し、望む状態にないものだけをsetするため、同じ構成の適用を繰り返しても安全になる。単体のdsc resource setは常にsetを呼び、事前テストはリソースのimplementsPretest実装に依存する。"@ja ;
    ks:evidence <https://learn.microsoft.com/powershell/dsc/reference/cli/resource/set?view=dsc-3.0> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/microsoft-dsc-v3/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/dsc-adapter-resource/> ;
    schema:description "コマンド型でないリソースはアダプタリソースを介して利用する。"@ja ;
    ks:evidence <https://learn.microsoft.com/powershell/dsc/concepts/resources/overview?view=dsc-3.0> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/dsc-adapter-resource/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/powershell-dsc/> ;
    schema:description "Microsoft.Adapter/PowerShellとMicrosoft.Adapter/WindowsPowerShellが既存のPSDSCリソースを発見・呼び出しし、DSC v3から再利用可能にする。"@ja ;
    ks:evidence <https://learn.microsoft.com/powershell/dsc/reference/resources/microsoft/adapter/windowspowershell/?view=dsc-3.0> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/winget-configuration/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/microsoft-dsc-v3/> ;
    schema:description "v3スキーマ（WinGet 1.11以降）の構成ファイルは、dscv3プロセッサとしてDSC v3を構成の評価・適用の処理系に使う。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/package-manager/configuration/create-v3> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/configuration-drift/> ;
    rdf:predicate ks:verifiedBy ;
    rdf:object <https://comcomponent.com/knowledge/dsc-config-test/> ;
    schema:description "testは変更を加えずに各インスタンスが望む状態かを報告するため、定期実行すればドリフトの検出になる。"@ja ;
    ks:evidence <https://learn.microsoft.com/powershell/dsc/concepts/configuration-documents/overview?view=dsc-3.0> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/local-configuration-manager/> ;
    rdf:predicate ks:mitigates ;
    rdf:object <https://comcomponent.com/knowledge/configuration-drift/> ;
    schema:description "PSDSC v1.1では常駐するLCMが構成を保持し、定期的な適用と自動修復でドリフトを抑えた。Microsoft DSC v3はLCMを含まない。"@ja ;
    ks:evidence <https://learn.microsoft.com/powershell/dsc/overview?view=dsc-3.0> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/azure-machine-configuration/> ;
    rdf:predicate ks:mitigates ;
    rdf:object <https://comcomponent.com/knowledge/configuration-drift/> ;
    schema:description "Azure仮想マシンとAzure Arc対応サーバーに対するOS内設定の監査・構成のマネージドな受け皿として、ドリフトの検出と修復を担える。"@ja ;
    ks:evidence <https://learn.microsoft.com/azure/governance/machine-configuration/overview> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/winget/> ;
    rdf:predicate ks:implements ;
    rdf:object <https://comcomponent.com/knowledge/winget-configuration/> ;
    schema:description "wingetはconfigureサブコマンドとしてWinGet Configurationの実装を担い、v3スキーマではその処理系にdscv3プロセッサ（DSC v3）を使う。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/package-manager/winget/configure>, <https://learn.microsoft.com/windows/package-manager/configuration/create-v3> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/dsc-adapter-resource/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/powershell-7/> ;
    schema:description "Microsoft.Adapter/PowerShellはPowerShell 7（pwsh）上で、クラスベースの既存PSDSCリソースを発見・実行する。"@ja ;
    ks:evidence <https://learn.microsoft.com/powershell/dsc/reference/resources/microsoft/adapter/powershell/?view=dsc-3.0> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/dsc-adapter-resource/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/windows-powershell-5-1/> ;
    schema:description "Microsoft.Adapter/WindowsPowerShellはWindows PowerShell 5.1（powershell.exe）と内蔵のPSDesiredStateConfiguration 1.1モジュールの上で、MOFベース・スクリプトベースの既存PSDSCリソースを実行する。"@ja ;
    ks:evidence <https://learn.microsoft.com/powershell/dsc/reference/resources/microsoft/adapter/windowspowershell/?view=dsc-3.0> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/task-scheduler/> ;
    rdf:predicate ks:automates ;
    rdf:object <https://comcomponent.com/knowledge/dsc-config-test/> ;
    schema:description "LCMを持たないDSC v3での継続的なドリフト検出は、タスクスケジューラの無人実行（サーバー群ならCI）でdsc config testを定期実行する形で自動化する。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/taskschd/security-contexts-for-running-tasks>, <https://learn.microsoft.com/powershell/dsc/reference/cli/config/test?view=dsc-3.0> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/dsc-resource/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/admin-rights/> ;
    schema:description "HKLMやWindows機能などマシン全体に関わるリソースのsetには昇格が必要で、Windows PowerShell系のPSDSCリソースをアダプタ経由で使う場合も管理者権限のターミナルが前提になる。"@ja ;
    ks:evidence <https://learn.microsoft.com/powershell/dsc/get-started/?view=dsc-3.0> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/dsc-configuration-document/> ;
    rdf:predicate ks:mayCause ;
    rdf:object <https://comcomponent.com/knowledge/plaintext-secret-storage-risk/> ;
    schema:description "構成ドキュメントはGitに入れるデータなので、パスワードやAPIキーを直書きすると平文のまま保存される。パラメーターとして分離し実行時に渡すことで避ける。"@ja ;
    ks:evidence <https://learn.microsoft.com/powershell/dsc/reference/schemas/config/parameter?view=dsc-3.0> ;
    ks:verifiedAt "2026-08-28" ;
    ks:certainty "context-dependent" .
