@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/alire-getting-started/#article>
    schema:about <https://comcomponent.com/knowledge/alire/> ;
    schema:mentions <https://comcomponent.com/knowledge/ada/>, <https://comcomponent.com/knowledge/gnat/>, <https://comcomponent.com/knowledge/gprbuild/>, <https://comcomponent.com/knowledge/alire-manifest/>, <https://comcomponent.com/knowledge/semver/>, <https://comcomponent.com/knowledge/alire-build-profile/>, <https://comcomponent.com/knowledge/design-by-contract/>, <https://comcomponent.com/knowledge/gnatprove/>, <https://comcomponent.com/knowledge/spark/>, <https://comcomponent.com/knowledge/msys2/> .

<https://comcomponent.com/knowledge/alire/> a skos:Concept ;
    skos:prefLabel "Alire"@ja ;
    skos:definition "Ada/SPARKのパッケージマネージャー兼ビルドツールで、ツールチェーン(GNAT)の取得・管理も担う。"@ja ;
    skos:altLabel "alr" ;
    ks:uses <https://comcomponent.com/knowledge/gprbuild/> ;
    ks:uses <https://comcomponent.com/knowledge/alire-manifest/> .

<https://comcomponent.com/knowledge/ada/> a skos:Concept ;
    skos:prefLabel "Ada(プログラミング言語)"@ja ;
    skos:definition "1970年代後半にアメリカ国防総省の主導で標準化された、強い型付けと高信頼性を重視する汎用プログラミング言語。最新標準はAda 2022。"@ja ;
    skos:altLabel "Ada言語"@ja ;
    skos:altLabel "Ada 2022" .

<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/gprbuild/> a skos:Concept ;
    skos:prefLabel "GPRbuild"@ja ;
    skos:definition "GNATのプロジェクトファイル(.gpr)を読み、Adaや他言語のソースのコンパイル、バインド、リンクを行うAdaCoreのビルドツール。静的・共有ライブラリも作れる。"@ja ;
    skos:altLabel "gprbuild" .

<https://comcomponent.com/knowledge/alire-manifest/> a skos:Concept ;
    skos:prefLabel "Alireのマニフェスト(alire.toml)"@ja ;
    skos:definition "クレートのルートに置くTOML形式のファイルで、名前・バージョン・依存するクレート・ビルドプロファイルなど、Alireが扱うクレートの情報を書く。"@ja ;
    skos:altLabel "alire.toml" ;
    skos:altLabel "Alire manifest" ;
    ks:uses <https://comcomponent.com/knowledge/semver/> .

<https://comcomponent.com/knowledge/semver/> a skos:Concept ;
    skos:prefLabel "セマンティックバージョニング(semver)"@ja ;
    skos:definition "互換性のない変更でMAJOR、後方互換のある機能追加でMINOR、後方互換のあるバグ修正でPATCHを上げるという、バージョン番号の付け方の規約。"@ja ;
    skos:altLabel "Semantic Versioning" ;
    skos:altLabel "SemVer" .

<https://comcomponent.com/knowledge/alire-build-profile/> a skos:Concept ;
    skos:prefLabel "ビルドプロファイル(Alire)"@ja ;
    skos:definition "Alireがクレートごとに選ぶコンパイラスイッチの組で、Development・Release・Validationの3つがある。既定ではルートのクレートがDevelopment、依存クレートがReleaseになる。"@ja ;
    skos:altLabel "build profile" ;
    skos:altLabel "Development / Release / Validation" ;
    ks:configuredBy <https://comcomponent.com/knowledge/alire-manifest/> .

<https://comcomponent.com/knowledge/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 "事前条件・事後条件"@ja ;
    skos:broader <https://comcomponent.com/knowledge/ada/> ;
    ks:verifiedBy <https://comcomponent.com/knowledge/gnatprove/> .

<https://comcomponent.com/knowledge/gnatprove/> a skos:Concept ;
    skos:prefLabel "GNATprove"@ja ;
    skos:definition "AdaCoreが提供する、SPARKコードの契約や表明を自動証明器で検証するコマンドラインツールである。"@ja ;
    skos:altLabel "gnatprove コマンド"@ja ;
    skos:broader <https://comcomponent.com/knowledge/spark/> ;
    ks:configuredBy <https://comcomponent.com/knowledge/alire/> .

<https://comcomponent.com/knowledge/spark/> a skos:Concept ;
    skos:prefLabel "SPARK"@ja ;
    skos:definition "プログラムの性質を数学的に証明できるように設計された、Adaのサブセット(部分言語)とそのツール群。"@ja ;
    skos:altLabel "SPARK Ada" ;
    skos:altLabel "GNATprove" ;
    ks:uses <https://comcomponent.com/knowledge/gnatprove/> .

<https://comcomponent.com/knowledge/msys2/> a skos:Concept ;
    skos:prefLabel "MSYS2"@ja ;
    skos:definition "Windowsのネイティブなソフトウェアをビルド・インストール・実行するためのツールとライブラリの集まりで、パッケージ管理にPacmanを使う。"@ja ;
    skos:altLabel "msys2" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/ada/> ;
    rdf:predicate ks:configuredBy ;
    rdf:object <https://comcomponent.com/knowledge/alire/> ;
    schema:description "AlireはAdaとSPARKのパッケージマネージャーで、プロジェクト(クレート)の作成、依存の取得、ツールチェーンの取得、ビルドと実行をalrコマンドで扱う。Adaの開発環境を作る手段の一つである"@ja ;
    ks:evidence <https://alire.ada.dev/docs/> ;
    ks:verifiedAt "2026-11-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/gnat/> ;
    rdf:predicate ks:configuredBy ;
    rdf:object <https://comcomponent.com/knowledge/alire/> ;
    schema:description "ツールチェーンが選ばれていなければ、Alireは最初のビルドでgnat_nativeを選んでダウンロードし、alr toolchain --selectで別のバージョンを選べる。システムにあるGNATを使う構成もある"@ja ;
    ks:evidence <https://github.com/alire-project/alire/blob/v2.1.0/doc/getting-started.md>, <https://github.com/alire-project/alire/blob/v2.1.0/doc/toolchains.md> ;
    ks:verifiedAt "2026-11-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/alire/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/gprbuild/> ;
    schema:description "alr buildはGPR_PROJECT_PATHなどの環境変数を整えてからGPRbuildを呼び出してビルドする"@ja ;
    ks:evidence <https://github.com/alire-project/alire/blob/v2.1.0/doc/getting-started.md> ;
    ks:verifiedAt "2026-11-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/alire/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/alire-manifest/> ;
    schema:description "Alireはクレートのルートにあるalire.tomlから名前・バージョン・依存するクレートを読み、alr withやalr pinはそこに依存や固定を書き足す"@ja ;
    ks:evidence <https://alire.ada.dev/docs/>, <https://github.com/alire-project/alire/blob/v2.1.0/doc/catalog-format-spec.md> ;
    ks:verifiedAt "2026-11-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/alire-manifest/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/semver/> ;
    schema:description "マニフェストのバージョンはセマンティックバージョニングで、依存は^(同じメジャー番号の中)や~(同じマイナー番号の中)の範囲で書く。1.0より前のバージョンでは^と~に特別な扱いはない"@ja ;
    ks:evidence <https://github.com/alire-project/alire/blob/v2.1.0/doc/catalog-format-spec.md> ;
    ks:verifiedAt "2026-11-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/alire-build-profile/> ;
    rdf:predicate ks:configuredBy ;
    rdf:object <https://comcomponent.com/knowledge/alire-manifest/> ;
    schema:description "クレートごとのビルドプロファイルはマニフェストの[build-profiles]表で指定でき、ルートのクレートはalr buildの--release・--validation・--developmentでも変えられる"@ja ;
    ks:evidence <https://github.com/alire-project/alire/blob/v2.1.0/doc/catalog-format-spec.md> ;
    ks:verifiedAt "2026-11-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/design-by-contract/> ;
    rdf:predicate ks:configuredBy ;
    rdf:object <https://comcomponent.com/knowledge/alire-build-profile/> ;
    schema:description "Alireが生成するスイッチのうち、事前条件・事後条件を有効にする-gnataを含むのはValidationだけで、既定のDevelopmentとReleaseでは契約が実行時に検査されない(alr 2.1で確認)"@ja ;
    ks:evidence <https://github.com/alire-project/alire/blob/v2.1.0/doc/catalog-format-spec.md>, <https://gcc.gnu.org/onlinedocs/gnat_ugn/Alphabetical-List-of-All-Switches.html> ;
    ks:verifiedAt "2026-11-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/gnatprove/> ;
    rdf:predicate ks:configuredBy ;
    rdf:object <https://comcomponent.com/knowledge/alire/> ;
    schema:description "GNATproveはalr with gnatproveでクレートとして依存に加えられ、alrに組み込まれた別名alr gnatprove(alr exec -P1 -- gnatprove)で実行できる"@ja ;
    ks:evidence <https://alire.ada.dev/docs/> ;
    ks:verifiedAt "2026-11-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/design-by-contract/> ;
    rdf:predicate ks:verifiedBy ;
    rdf:object <https://comcomponent.com/knowledge/gnatprove/> ;
    schema:description "Pre/Post契約が満たされることはGNATproveの証明で確認できる。事前条件を満たさない呼び出しは実行せずに指摘される"@ja ;
    ks:evidence <https://docs.adacore.com/spark2014-docs/html/ug/> ;
    ks:verifiedAt "2026-11-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/spark/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/gnatprove/> ;
    schema:description "SPARKコードの検証には、AdaCoreが提供するGNATproveというツールを使う"@ja ;
    ks:evidence <https://docs.adacore.com/spark2014-docs/html/ug/> ;
    ks:verifiedAt "2026-11-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/alire/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/msys2/> ;
    schema:description "Windowsでは、最初にalrを実行するとMSYS2を入れるかを聞かれ、Alireはgitやmakeなどのツールと一部のクレートが使う外部ライブラリをMSYS2から入れる。pacmanがPATHにあれば既存のMSYS2を使う"@ja ;
    ks:evidence <https://github.com/alire-project/alire/blob/v2.1.0/doc/getting-started.md> ;
    ks:verifiedAt "2026-11-01" ;
    ks:certainty "context-dependent" .
