@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/onedrive-files-on-demand-business-apps/#article>
    schema:about <https://comcomponent.com/knowledge/onedrive-files-on-demand/>, <https://comcomponent.com/knowledge/placeholder-file/> ;
    schema:mentions <https://comcomponent.com/knowledge/known-folder-move/>, <https://comcomponent.com/knowledge/cloud-files-api/>, <https://comcomponent.com/knowledge/hydration/>, <https://comcomponent.com/knowledge/recall-on-data-access/>, <https://comcomponent.com/knowledge/pinned-unpinned-attribute/>, <https://comcomponent.com/knowledge/file-flag-open-no-recall/>, <https://comcomponent.com/knowledge/cloud-file-provider-not-running/>, <https://comcomponent.com/knowledge/storage-sense/>, <https://comcomponent.com/knowledge/onedrive-sync-policy/>, <https://comcomponent.com/knowledge/group-policy/>, <https://comcomponent.com/knowledge/intune/>, <https://comcomponent.com/knowledge/filesystemwatcher/>, <https://comcomponent.com/knowledge/file-sharing-violation/>, <https://comcomponent.com/knowledge/ntfs/>, <https://comcomponent.com/knowledge/onedrive-sync-failure/>, <https://comcomponent.com/knowledge/user-folder-path-change/>, <https://comcomponent.com/knowledge/automatic-dehydration/>, <https://comcomponent.com/knowledge/local-content-retention/> .

<https://comcomponent.com/knowledge/onedrive-files-on-demand/> a skos:Concept ;
    skos:prefLabel "OneDriveのファイルオンデマンド"@ja ;
    skos:definition "実データが手元にないクラウド上のファイルをプレースホルダー(リパースポイント)としてローカルに見せ、アクセス時にクラウドフィルターが実体を取得する仕組み。"@ja ;
    skos:altLabel "Files On-Demand" ;
    skos:altLabel "クラウドファイル"@ja ;
    skos:broader <https://comcomponent.com/knowledge/reparse-point/> ;
    ks:uses <https://comcomponent.com/knowledge/cloud-files-api/> .

<https://comcomponent.com/knowledge/placeholder-file/> a skos:Concept ;
    skos:prefLabel "プレースホルダー"@ja ;
    skos:definition "ファイル名・サイズ・タイムスタンプなどのメタデータ(約1KB)だけを持ち、中身のデータを持たないリパースポイント。"@ja ;
    ks:uses <https://comcomponent.com/knowledge/ntfs/> ;
    ks:mayCause <https://comcomponent.com/knowledge/hydration/> ;
    ks:verifiedBy <https://comcomponent.com/knowledge/recall-on-data-access/> ;
    ks:configuredBy <https://comcomponent.com/knowledge/pinned-unpinned-attribute/> .

<https://comcomponent.com/knowledge/known-folder-move/> a skos:Concept ;
    skos:prefLabel "KFM(既知のフォルダーの移動)"@ja ;
    skos:definition "デスクトップ・ドキュメント・ピクチャをOneDrive配下へ移動する仕組み。プロンプト・サイレント適用のいずれでも構成できる。"@ja ;
    skos:altLabel "KFM" .

<https://comcomponent.com/knowledge/user-folder-path-change/> a skos:Concept ;
    skos:prefLabel "ユーザーフォルダーのパス変更"@ja ;
    skos:definition "デスクトップ・ドキュメント・ピクチャなどの既知のフォルダーの実体パスが移動されること。固定パスを前提にしたアプリの想定を壊す。"@ja .

<https://comcomponent.com/knowledge/cloud-files-api/> a skos:Concept ;
    skos:prefLabel "Cloud Files API(cldflt.sys)"@ja ;
    skos:definition "プレースホルダーを支えるWindowsの仕組みと、その実働部隊であるファイルシステムミニフィルター。OneDriveはこのAPIを使う同期プロバイダーのひとつ。"@ja ;
    ks:implements <https://comcomponent.com/knowledge/placeholder-file/> .

<https://comcomponent.com/knowledge/ntfs/> a skos:Concept ;
    skos:prefLabel "NTFS"@ja ;
    skos:definition "現行のWindowsが標準で使うファイルシステム。MFT(マスターファイルテーブル)などの構造でボリューム上のファイルを管理する。"@ja ;
    skos:altLabel "New Technology File System" .

<https://comcomponent.com/knowledge/hydration/> a skos:Concept ;
    skos:prefLabel "ハイドレーション"@ja ;
    skos:definition "プレースホルダーの中身を同期プロバイダーから取り寄せること。逆にローカルの実体を捨ててプレースホルダーへ戻すのがデハイドレーション。"@ja ;
    skos:altLabel "デハイドレーション"@ja .

<https://comcomponent.com/knowledge/recall-on-data-access/> a skos:Concept ;
    skos:prefLabel "FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS"@ja ;
    skos:definition "中身の一部または全部がローカルになく、読むとリモートからの取り寄せが発生することを示すファイル属性。"@ja ;
    ks:notRecommendedFor <https://comcomponent.com/knowledge/hydration/> .

<https://comcomponent.com/knowledge/pinned-unpinned-attribute/> a skos:Concept ;
    skos:prefLabel "PINNED / UNPINNED属性"@ja ;
    skos:definition "ユーザーが常にローカルへ保持したいのか(PINNED)、実体を持たなくてよいのか(UNPINNED)という意図を表すファイル属性。attribではPとUで見える。"@ja .

<https://comcomponent.com/knowledge/cloud-file-provider-not-running/> a skos:Concept ;
    skos:prefLabel "0x8007016A(クラウド ファイル プロバイダーが実行されていません)"@ja ;
    skos:definition "OneDriveが構成不良・停止しているときにクラウドファイルの操作が返すエラー。"@ja ;
    ks:prevents <https://comcomponent.com/knowledge/hydration/> .

<https://comcomponent.com/knowledge/file-flag-open-no-recall/> a skos:Concept ;
    skos:prefLabel "FILE_FLAG_OPEN_NO_RECALL"@ja ;
    skos:definition "要求されたデータをローカルストレージへ移送し戻さず、リモート側に置いたまま開くことを指示するCreateFileのフラグ。"@ja ;
    ks:prevents <https://comcomponent.com/knowledge/local-content-retention/> .

<https://comcomponent.com/knowledge/local-content-retention/> a skos:Concept ;
    skos:prefLabel "ローカルへの実体保持"@ja ;
    skos:definition "取り寄せたファイル内容をローカルストレージへ移送して保持し続けること。データを読みつつローカルには残さない開き方も選べる。"@ja .

<https://comcomponent.com/knowledge/filesystemwatcher/> a skos:Concept ;
    skos:prefLabel "FileSystemWatcher"@ja ;
    skos:definition ".NETが提供する、ファイル・ディレクトリの作成・変更・削除・名前変更をイベントで通知するAPI。ディレクトリ通知はアプリが動いている間しか受け取れず、内部バッファのoverflowで個別通知を取りこぼすことがある。"@ja ;
    skos:altLabel "System.IO.FileSystemWatcher" .

<https://comcomponent.com/knowledge/file-sharing-violation/> a skos:Concept ;
    skos:prefLabel "共有違反(ERROR_SHARING_VIOLATION)"@ja ;
    skos:definition "既存のハンドルの共有モードと競合するアクセスを要求したオープンが失敗すること。"@ja ;
    ks:mayCause <https://comcomponent.com/knowledge/onedrive-sync-failure/> .

<https://comcomponent.com/knowledge/onedrive-sync-failure/> a skos:Concept ;
    skos:prefLabel "OneDrive同期の失敗"@ja ;
    skos:definition "同期クライアントがファイルをアップロード・更新できない状態。他のアプリが排他ロックで開いている間などに起きる。"@ja .

<https://comcomponent.com/knowledge/storage-sense/> a skos:Concept ;
    skos:prefLabel "ストレージセンサー"@ja ;
    skos:definition "一定日数開かれていないクラウドファイルを自動でオンライン専用に戻せる機能。既定値は0(自動では戻さない)。"@ja .

<https://comcomponent.com/knowledge/automatic-dehydration/> a skos:Concept ;
    skos:prefLabel "自動オンライン専用化"@ja ;
    skos:definition "しばらく使われていないローカル実体を自動でクラウドのみの状態に戻すこと。Storage Senseの空き容量確保などが行う。"@ja .

<https://comcomponent.com/knowledge/onedrive-sync-policy/> a skos:Concept ;
    skos:prefLabel "OneDrive同期アプリのポリシー"@ja ;
    skos:definition "FilesOnDemandEnabled・KFMSilentOptIn・KFMBlockOptIn・KFMBlockOptOut・DehydrateSyncedTeamSitesなど、同期の挙動をグループポリシーやIntuneで構成する設定群。"@ja ;
    ks:configuredBy <https://comcomponent.com/knowledge/group-policy/> .

<https://comcomponent.com/knowledge/group-policy/> a skos:Concept ;
    skos:prefLabel "グループポリシー"@ja ;
    skos:definition "Active Directoryドメイン環境でWindowsの設定を集中構成する仕組み。"@ja ;
    skos:altLabel "GPO" ;
    skos:altLabel "Group Policy" .

<https://comcomponent.com/knowledge/intune/> a skos:Concept ;
    skos:prefLabel "Microsoft Intune"@ja ;
    skos:definition "クラウドからPC・モバイルデバイスを管理するMicrosoftのMDMサービス。"@ja ;
    skos:altLabel "Intune" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/known-folder-move/> ;
    rdf:predicate ks:mayCause ;
    rdf:object <https://comcomponent.com/knowledge/user-folder-path-change/> ;
    schema:description "KFMはデスクトップ・ドキュメント・ピクチャをOneDrive配下へ移動する。新PCの初期セットアップで有効化されやすく、組織ではポリシーで一斉適用もできるため、固定パスを前提にしたアプリはここで壊れる。"@ja ;
    ks:evidence <https://learn.microsoft.com/sharepoint/redirect-known-folders> ;
    ks:verifiedAt "2026-08-22" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/onedrive-files-on-demand/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/cloud-files-api/> ;
    schema:description "ファイル オンデマンドはCloud Files APIというOSの仕組みの上に実装され、ファイルシステム側の実働部隊はcldflt.sysというミニフィルターである。OneDriveはこのAPIを使う同期プロバイダーのひとつにすぎない。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/cfapi/build-a-cloud-file-sync-engine>, <https://learn.microsoft.com/sharepoint/files-on-demand-windows> ;
    ks:verifiedAt "2026-08-22" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/placeholder-file/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/ntfs/> ;
    schema:description "プレースホルダーは技術的にはリパースポイントで、ファイルシステム上には約1KBのメタデータだけが存在し中身のデータはない。エクスプローラーのプロパティでは「サイズ」に本来のサイズが出るのに「ディスク上のサイズ」がほぼ0になる。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/cfapi/build-a-cloud-file-sync-engine> ;
    ks:verifiedAt "2026-08-22" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/cloud-files-api/> ;
    rdf:predicate ks:implements ;
    rdf:object <https://comcomponent.com/knowledge/placeholder-file/> ;
    schema:description "Cloud Files APIはプレースホルダーを作成・管理し、互換性のため、同期エンジンと%systemroot%配下のプロセス以外にはリパースポイントであることを隠す。普通のアプリからは少し開くのが遅いだけの普通のファイルに見えるため、アプリが気づかないまま前提を壊される。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/cfapi/build-a-cloud-file-sync-engine> ;
    ks:verifiedAt "2026-08-22" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/placeholder-file/> ;
    rdf:predicate ks:mayCause ;
    rdf:object <https://comcomponent.com/knowledge/hydration/> ;
    schema:description "アプリがファイルを開いて読むとミニフィルターが要求を検知し、同期プロバイダーにデータ転送を指示してダウンロード完了を待ってから読み取りが進む。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/cfapi/build-a-cloud-file-sync-engine> ;
    ks:verifiedAt "2026-08-20" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/placeholder-file/> ;
    rdf:predicate ks:verifiedBy ;
    rdf:object <https://comcomponent.com/knowledge/recall-on-data-access/> ;
    schema:description "RECALL_ON_DATA_ACCESSは中身の一部または全部がローカルにないことを示す。属性の確認だけならダウンロードは発生しないので、調査や一括チェックに安心して使える。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/fileio/file-attribute-constants>, <https://learn.microsoft.com/sharepoint/files-on-demand-windows> ;
    ks:verifiedAt "2026-08-20" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/placeholder-file/> ;
    rdf:predicate ks:configuredBy ;
    rdf:object <https://comcomponent.com/knowledge/pinned-unpinned-attribute/> ;
    schema:description "ファイル オンデマンドの状態はPINNED(常に利用可能)・どちらでもない(ローカルで利用可能)・UNPINNED(オンライン専用)で表され、attrib +p / -p / +uで設定する。オンライン専用から戻すときは-pだけではUが残るので、+p -uのように反対側の属性も同時に外す。"@ja ;
    ks:evidence <https://learn.microsoft.com/sharepoint/files-on-demand-windows>, <https://learn.microsoft.com/windows-server/administration/windows-commands/attrib> ;
    ks:verifiedAt "2026-08-20" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/cloud-file-provider-not-running/> ;
    rdf:predicate ks:prevents ;
    rdf:object <https://comcomponent.com/knowledge/hydration/> ;
    schema:description "OneDriveが停止・サインアウト・一時停止しているときや、ネットワークが不調なときは取り寄せができず、「存在するのに開けないファイル」になる。存在確認や属性・サイズの取得は成功するため、存在確認は通ったのに読み取りで失敗するというエラーパターンになる。"@ja ;
    ks:evidence <https://learn.microsoft.com/troubleshoot/sharepoint/sync/copy-files-error-0x8007016a>, <https://learn.microsoft.com/windows/win32/cfapi/build-a-cloud-file-sync-engine> ;
    ks:verifiedAt "2026-08-22" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/file-flag-open-no-recall/> ;
    rdf:predicate ks:prevents ;
    rdf:object <https://comcomponent.com/knowledge/local-content-retention/> ;
    schema:description "FILE_FLAG_OPEN_NO_RECALLは要求されたデータをローカルストレージへ移送し戻さず、リモート側に置いたまま開くことを指示する。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/api/fileapi/nf-fileapi-createfilew> ;
    ks:verifiedAt "2026-08-22" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/recall-on-data-access/> ;
    rdf:predicate ks:notRecommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/hydration/> ;
    schema:description "この属性が付いたファイルへ不用意な読み書きを発行しないようガイダンスが明記している。カーネルドライバー向けの文書だが、属性が付いたファイルの中身に触れれば取り寄せコストが発生するという原則はユーザーモードのアプリにも当てはまる。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows-hardware/drivers/ifs/placeholders_guidance> ;
    ks:verifiedAt "2026-08-20" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/hydration/> ;
    rdf:predicate ks:mayCause ;
    rdf:object <https://comcomponent.com/knowledge/filesystemwatcher/> ;
    schema:description "OneDrive配下を監視すると、他のデバイスでの変更が同期されるたび、ハイドレーション・デハイドレーションで属性やサイズが変わるたびにChangedイベントが発生し得る。取り込んだ結果を同じフォルダーへ書き戻す設計では変更通知のループになる。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/cfapi/build-a-cloud-file-sync-engine> ;
    ks:verifiedAt "2026-08-22" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/file-sharing-violation/> ;
    rdf:predicate ks:mayCause ;
    rdf:object <https://comcomponent.com/knowledge/onedrive-sync-failure/> ;
    schema:description "業務アプリがファイルを排他ロックで開いている間、同期アプリはそのファイルをアップロードも更新もできない。長時間ロックを保持するアプリをOneDrive配下に置くと同期エラーが常態化する。"@ja ;
    ks:evidence <https://learn.microsoft.com/troubleshoot/sharepoint/sync/copy-files-error-0x8007016a> ;
    ks:verifiedAt "2026-08-22" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/storage-sense/> ;
    rdf:predicate ks:mayCause ;
    rdf:object <https://comcomponent.com/knowledge/placeholder-file/> ;
    schema:description "ストレージセンサーは一定日数開かれていないクラウドファイルを自動でオンライン専用に戻せる。既定値は0(自動では戻さない)だが、ユーザーが有効化していたり組織で構成していたりすると「先週まで開けたファイルが雲マークに戻っている」が正常動作として起こる。ピン留めされたファイルは対象外になる。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/client-management/mdm/policy-csp-storage>, <https://learn.microsoft.com/sharepoint/ideal-state-configuration> ;
    ks:verifiedAt "2026-08-20" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/pinned-unpinned-attribute/> ;
    rdf:predicate ks:prevents ;
    rdf:object <https://comcomponent.com/knowledge/automatic-dehydration/> ;
    schema:description "業務アプリが読むフォルダーをピン留めしておけば実体がローカルに保証され、自動オンライン専用化の対象からも外れる。"@ja ;
    ks:evidence <https://learn.microsoft.com/sharepoint/files-on-demand-windows>, <https://learn.microsoft.com/sharepoint/ideal-state-configuration> ;
    ks:verifiedAt "2026-08-22" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/onedrive-sync-policy/> ;
    rdf:predicate ks:configuredBy ;
    rdf:object <https://comcomponent.com/knowledge/group-policy/> ;
    schema:description "FilesOnDemandEnabled・KFMSilentOptIn・KFMBlockOptIn・KFMBlockOptOut・DehydrateSyncedTeamSitesなどをグループポリシーで構成し、「気づいたら有効」ではなく意図して構成する。"@ja ;
    ks:evidence <https://learn.microsoft.com/sharepoint/use-group-policy> ;
    ks:verifiedAt "2026-08-20" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/onedrive-sync-policy/> ;
    rdf:predicate ks:configuredBy ;
    rdf:object <https://comcomponent.com/knowledge/intune/> ;
    schema:description "同じポリシー群はIntuneからも配布できる。"@ja ;
    ks:evidence <https://learn.microsoft.com/sharepoint/use-group-policy> ;
    ks:verifiedAt "2026-08-20" ;
    ks:certainty "context-dependent" .
