@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/ada-2022-new-features/#article>
    schema:about <https://comcomponent.com/knowledge/ada-declare-expression/>, <https://comcomponent.com/knowledge/ada-delta-aggregate/>, <https://comcomponent.com/knowledge/ada-put-image/>, <https://comcomponent.com/knowledge/jorvik-profile/>, <https://comcomponent.com/knowledge/ada-parallel-block-statement/> ;
    schema:mentions <https://comcomponent.com/knowledge/ada-parallel-loop/>, <https://comcomponent.com/knowledge/ada-conflict-check-policy/>, <https://comcomponent.com/knowledge/data-race/>, <https://comcomponent.com/knowledge/ada-reduction-expression/>, <https://comcomponent.com/knowledge/ada-iterator-filter/>, <https://comcomponent.com/knowledge/ada-big-integers/>, <https://comcomponent.com/knowledge/ada-user-defined-literals/>, <https://comcomponent.com/knowledge/ada-design-by-contract/>, <https://comcomponent.com/knowledge/ravenscar-profile/>, <https://comcomponent.com/knowledge/gnat/> .

<https://comcomponent.com/knowledge/ada-declare-expression/> a skos:Concept ;
    skos:prefLabel "宣言式(declare expression)"@ja ;
    skos:definition "式の中で、制限型でない定数と名前の付け替えを宣言して使えるAda 2022の式。"@ja ;
    skos:altLabel "declare expression" .

<https://comcomponent.com/knowledge/ada-delta-aggregate/> a skos:Concept ;
    skos:prefLabel "差分集成体(delta aggregate)"@ja ;
    skos:definition "元の値の写しから一部の成分だけを変えた複合型の値を作る、Ada 2022の集成体。レコードと配列に使える。"@ja ;
    skos:altLabel "delta aggregate" ;
    skos:altLabel "with delta" .

<https://comcomponent.com/knowledge/ada-put-image/> a skos:Concept ;
    skos:prefLabel "Put_Image"@ja ;
    skos:definition "型の値を人が読む文字列としてテキストバッファに書く手続きで、Ada 2022ではどの型の'Imageもこれを通して定義される。アスペクトで型ごとに差し替えられる。"@ja ;
    skos:altLabel "Put_Image aspect" ;
    skos:altLabel "'Image" ;
    skos:altLabel "Image属性"@ja .

<https://comcomponent.com/knowledge/jorvik-profile/> a skos:Concept ;
    skos:prefLabel "Jorvikプロファイル"@ja ;
    skos:definition "Ravenscarプロファイルから6つの制限を外し、Simple_BarriersをPure_Barriersに置き換えた、Ada 2022で標準に加わったタスク機能のプロファイル。"@ja ;
    skos:altLabel "Jorvik" ;
    skos:altLabel "pragma Profile (Jorvik)" ;
    ks:inherits <https://comcomponent.com/knowledge/ravenscar-profile/> .

<https://comcomponent.com/knowledge/ada-parallel-block-statement/> a skos:Concept ;
    skos:prefLabel "並列ブロック文(parallel block statement)"@ja ;
    skos:definition "andで区切った複数の文の並びを、それぞれ独立した論理的な制御の流れとして並行に進めるAda 2022の文。"@ja ;
    skos:altLabel "parallel do" ;
    skos:altLabel "並列ブロック"@ja ;
    ks:verifiedBy <https://comcomponent.com/knowledge/ada-conflict-check-policy/> .

<https://comcomponent.com/knowledge/ada-design-by-contract/> a skos:Concept ;
    skos:prefLabel "契約による設計(Pre/Post条件)"@ja ;
    skos:definition "サブプログラムに事前条件(Pre)・事後条件(Post)・型不変条件を言語機能として付与できる、Ada 2012で導入された仕組み。"@ja ;
    skos:altLabel "Design by Contract" ;
    skos:altLabel "Ada 2012契約"@ja ;
    ks:uses <https://comcomponent.com/knowledge/ada-declare-expression/> ;
    ks:uses <https://comcomponent.com/knowledge/ada-delta-aggregate/> .

<https://comcomponent.com/knowledge/ada-big-integers/> a skos:Concept ;
    skos:prefLabel "Big_Integers"@ja ;
    skos:definition "桁数の上限がない整数の型Big_Integerを定める、Ada 2022の標準ライブラリのパッケージ。"@ja ;
    skos:altLabel "Ada.Numerics.Big_Numbers.Big_Integers" ;
    skos:altLabel "Big_Integer" ;
    ks:uses <https://comcomponent.com/knowledge/ada-put-image/> ;
    ks:uses <https://comcomponent.com/knowledge/ada-user-defined-literals/> .

<https://comcomponent.com/knowledge/ada-user-defined-literals/> a skos:Concept ;
    skos:prefLabel "ユーザー定義リテラル(user-defined literals)"@ja ;
    skos:definition "Integer_Literal・Real_Literal・String_Literalのアスペクトで、リテラルを型の値に変換する関数を指定するAda 2022の仕組み。"@ja ;
    skos:altLabel "Integer_Literal" ;
    skos:altLabel "Real_Literal" ;
    skos:altLabel "String_Literal" .

<https://comcomponent.com/knowledge/ada-reduction-expression/> a skos:Concept ;
    skos:prefLabel "簡約式(reduction expression)"@ja ;
    skos:definition "値の列を2項の演算と初期値で1つの値に畳み込む、ReduceまたはParallel_Reduce属性で書くAda 2022の式。"@ja ;
    skos:altLabel "'Reduce" ;
    skos:altLabel "'Parallel_Reduce" .

<https://comcomponent.com/knowledge/ada-iterator-filter/> a skos:Concept ;
    skos:prefLabel "反復子のフィルタ(iterator filter)"@ja ;
    skos:definition "ループや反復子付きの集成体で、whenの後の条件を満たす要素だけを対象にするAda 2022の構文。"@ja ;
    skos:altLabel "iterator filter" ;
    skos:altLabel "for ... when" .

<https://comcomponent.com/knowledge/ravenscar-profile/> a skos:Concept ;
    skos:prefLabel "Ravenscarプロファイル"@ja ;
    skos:definition "動的タスク生成やselect文などを禁止し、Adaのタスク機能を静的解析可能で決定論的なサブセットに制限するプロファイル。"@ja ;
    skos:altLabel "Ravenscar" .

<https://comcomponent.com/knowledge/gnat/> a skos:Concept ;
    skos:prefLabel "GNAT"@ja ;
    skos:definition "GCCに含まれる無償のAdaコンパイラで、Adaの代表的な処理系。"@ja ;
    skos:altLabel "GNATコンパイラ"@ja .

<https://comcomponent.com/knowledge/ada-conflict-check-policy/> a skos:Concept ;
    skos:prefLabel "Conflict_Check_Policy(衝突検査の方針)"@ja ;
    skos:definition "並列の構文やタスクの中で衝突しうる読み書きを、どこまでコンパイル時に禁止するかを決めるAda 2022のプラグマと方針。既定は並列の構文に対してAll_Parallel_Conflict_Checks。"@ja ;
    skos:altLabel "pragma Conflict_Check_Policy" ;
    skos:altLabel "All_Parallel_Conflict_Checks" ;
    ks:prevents <https://comcomponent.com/knowledge/data-race/> .

<https://comcomponent.com/knowledge/ada-parallel-loop/> a skos:Concept ;
    skos:prefLabel "並列ループ(parallel loop)"@ja ;
    skos:definition "反復の各回を並列に実行できるものとして書くAda 2022のループ文。チャンクの数の上限を指定できる。"@ja ;
    skos:altLabel "parallel for" ;
    ks:verifiedBy <https://comcomponent.com/knowledge/ada-conflict-check-policy/> .

<https://comcomponent.com/knowledge/data-race/> a skos:Concept ;
    skos:prefLabel "データ競合(data race)"@ja ;
    skos:definition "複数のタスクが同じメモリ位置に同時アクセスし、少なくとも一方が書き込みであるために結果が未定義になる状態である。"@ja ;
    skos:altLabel "Data Race" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/ada-design-by-contract/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/ada-declare-expression/> ;
    schema:description "宣言式は丸括弧で囲めば式を書ける場所ならどこにでも置けるので、事前条件・事後条件の中でも使える。"@ja ;
    ks:evidence <https://ada-lang.io/docs/arm/AA-4/AA-4.5/> ;
    ks:verifiedAt "2026-11-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/ada-design-by-contract/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/ada-delta-aggregate/> ;
    schema:description "差分集成体は式なので事後条件に書ける。C = (C'Old with delta Verbose => True) のように、呼び出しで変わる成分だけを示し、ほかの成分が変わらないことを表せる。"@ja ;
    ks:evidence <https://ada-lang.io/docs/arm/AA-4/AA-4.3/>, <https://learn.adacore.com/courses/whats-new-in-ada-2022/chapters/delta_aggregates.html> ;
    ks:verifiedAt "2026-11-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/ada-big-integers/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/ada-put-image/> ;
    schema:description "RMのBig_Integerの宣言にはPut_Imageが指定されており、Big_Integerの'Imageは10進の数字の文字列になる。"@ja ;
    ks:evidence <https://ada-lang.io/docs/arm/AA-A/AA-A.5/>, <https://ada-lang.io/docs/arm/AA-4/AA-4.10/> ;
    ks:verifiedAt "2026-11-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/ada-big-integers/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/ada-user-defined-literals/> ;
    schema:description "RMのBig_Integerの宣言にはInteger_Literal => From_Universal_Imageが指定されており、整数のリテラルをそのままBig_Integerの値として書ける。"@ja ;
    ks:evidence <https://ada-lang.io/docs/arm/AA-A/AA-A.5/>, <https://ada-lang.io/docs/arm/AA-4/AA-4.2/> ;
    ks:verifiedAt "2026-11-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/ada-reduction-expression/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/ada-iterator-filter/> ;
    schema:description "簡約式の値の列には反復子のフィルタを書け、[for V of Values when V mod 2 = 0 => V * V]'Reduce (\"+\", 0) のように条件を満たす要素だけを畳み込める。フィルタは省略できる。"@ja ;
    ks:evidence <https://ada-lang.io/docs/arm/AA-4/AA-4.5/>, <https://ada-lang.io/docs/arm/AA-5/AA-5.5/> ;
    ks:verifiedAt "2026-11-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/jorvik-profile/> ;
    rdf:predicate ks:inherits ;
    rdf:object <https://comcomponent.com/knowledge/ravenscar-profile/> ;
    schema:description "JorvikはRavenscarから6つの制限(No_Implicit_Heap_Allocations、No_Relative_Delay、Max_Entry_Queue_Length => 1、Max_Protected_Entries => 1、Ada.Calendarと Ada.Synchronous_Barriersへの依存の禁止)を外し、Simple_BarriersをPure_Barriersに置き換えたもので、残りの制限は同じ。Ravenscarを満たすユニットはJorvikも満たす。"@ja ;
    ks:evidence <https://ada-lang.io/docs/arm/AA-D/AA-D.13/> ;
    ks:verifiedAt "2026-11-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/jorvik-profile/> ;
    rdf:predicate ks:configuredBy ;
    rdf:object <https://comcomponent.com/knowledge/gnat/> ;
    schema:description "GNATではgnat.adcにpragma Profile (Jorvik);を書いて有効にできる。GNAT 13.3と15.3のデスクトップ向けの通常のランタイムで、エントリを2つ持つ保護オブジェクトと相対遅延のdelayがJorvikでは通り、Ravenscarでは制限違反になった。"@ja ;
    ks:evidence <https://docs.adacore.com/gnat_rm-docs/html/gnat_rm/gnat_rm/implementation_of_ada_2022_features.html> ;
    ks:verifiedAt "2026-11-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/ada-parallel-block-statement/> ;
    rdf:predicate ks:verifiedBy ;
    rdf:object <https://comcomponent.com/knowledge/ada-conflict-check-policy/> ;
    schema:description "既定の方針All_Parallel_Conflict_Checksでは、並列ブロックの中から外側の変数を読み書きすることを、同期オブジェクトでない限りコンパイル時に禁止する。"@ja ;
    ks:evidence <https://ada-lang.io/docs/arm/AA-9/AA-9.10/> ;
    ks:verifiedAt "2026-11-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/ada-parallel-loop/> ;
    rdf:predicate ks:verifiedBy ;
    rdf:object <https://comcomponent.com/knowledge/ada-conflict-check-policy/> ;
    schema:description "既定の方針All_Parallel_Conflict_Checksでは、並列ループの中から外側の変数を読み書きすることを禁止する。例外は同期オブジェクトと、ループの変数を添字にした配列の要素。"@ja ;
    ks:evidence <https://ada-lang.io/docs/arm/AA-9/AA-9.10/> ;
    ks:verifiedAt "2026-11-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/ada-conflict-check-policy/> ;
    rdf:predicate ks:prevents ;
    rdf:object <https://comcomponent.com/knowledge/data-race/> ;
    schema:description "衝突検査の方針は、並列の構文の中で衝突しうる読み書きをコンパイル時に禁止し、データ競合を避ける。"@ja ;
    ks:evidence <https://ada-lang.io/docs/arm/AA-9/AA-9.10/> ;
    ks:verifiedAt "2026-11-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/ada-parallel-block-statement/> ;
    rdf:predicate ks:incompatibleWith ;
    rdf:object <https://comcomponent.com/knowledge/gnat/> ;
    schema:description "GNAT 13.3と15.3はどちらもparallel doを構文エラーにした。GNATリファレンスマニュアルの実装済みのAda 2022機能の一覧にも、並列ブロックと並列ループを定めたAI12-0119は載っていない。"@ja ;
    ks:evidence <https://docs.adacore.com/gnat_rm-docs/html/gnat_rm/gnat_rm/implementation_of_ada_2022_features.html> ;
    ks:verifiedAt "2026-11-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/ada-parallel-loop/> ;
    rdf:predicate ks:incompatibleWith ;
    rdf:object <https://comcomponent.com/knowledge/gnat/> ;
    schema:description "GNAT 13.3と15.3はどちらもparallel forを構文エラーにした。並列版の簡約式'Parallel_Reduceも未知の属性として扱われた。"@ja ;
    ks:evidence <https://docs.adacore.com/gnat_rm-docs/html/gnat_rm/gnat_rm/implementation_of_ada_2022_features.html> ;
    ks:verifiedAt "2026-11-01" ;
    ks:certainty "context-dependent" .
