@prefix IAO: <http://purl.obolibrary.org/obo/IAO_> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix flatpak: <https://purl.org/packagegraph/ontology/flatpak#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix pkg: <https://purl.org/packagegraph/ontology/core#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

flatpak:appId a owl:DatatypeProperty,
        owl:FunctionalProperty ;
    rdfs:label "application ID"@en ;
    IAO:0000115 "Reverse-DNS application identifier (e.g., 'org.mozilla.Firefox')."@en ;
    rdfs:domain flatpak:FlatpakApp ;
    rdfs:isDefinedBy flatpak: ;
    rdfs:range xsd:string .

flatpak:branch a owl:DatatypeProperty ;
    rdfs:label "branch"@en ;
    IAO:0000115 "The Flatpak branch (typically 'stable', 'beta', or a version like '23.08')."@en ;
    rdfs:domain flatpak:FlatpakApp ;
    rdfs:isDefinedBy flatpak: ;
    rdfs:range xsd:string .

flatpak:command a owl:DatatypeProperty ;
    rdfs:label "command"@en ;
    IAO:0000115 "The main executable command run when the application is launched."@en ;
    rdfs:domain flatpak:FlatpakApp ;
    rdfs:isDefinedBy flatpak: ;
    rdfs:range xsd:string .

flatpak:commitHash a owl:DatatypeProperty ;
    rdfs:label "commit hash"@en ;
    IAO:0000115 "The OSTree commit hash identifying the exact installed version of the application."@en ;
    rdfs:domain flatpak:FlatpakApp ;
    rdfs:isDefinedBy flatpak: ;
    rdfs:range xsd:string .

flatpak:finishArg a owl:DatatypeProperty ;
    rdfs:label "finish arg"@en ;
    IAO:0000115 "A --finish-args flag specifying a sandbox permission (e.g., '--share=network', '--filesystem=home', '--socket=wayland')."@en ;
    rdfs:domain flatpak:Permission ;
    rdfs:isDefinedBy flatpak: ;
    rdfs:range xsd:string .

flatpak:hasExtension a owl:ObjectProperty ;
    rdfs:label "has extension"@en ;
    IAO:0000115 "Associates an application or runtime with an extension."@en ;
    rdfs:domain flatpak:FlatpakApp ;
    rdfs:isDefinedBy flatpak: ;
    rdfs:range flatpak:Extension .

flatpak:hasPermission a owl:ObjectProperty ;
    rdfs:label "has permission"@en ;
    IAO:0000115 "Associates an application with a sandbox permission."@en ;
    rdfs:domain flatpak:FlatpakApp ;
    rdfs:isDefinedBy flatpak: ;
    rdfs:range flatpak:Permission .

flatpak:installedSize a owl:DatatypeProperty ;
    rdfs:label "installed size"@en ;
    IAO:0000115 "The installed size of the application in bytes."@en ;
    rdfs:domain flatpak:FlatpakApp ;
    rdfs:isDefinedBy flatpak: ;
    rdfs:range xsd:integer .

flatpak:publishedOn a owl:ObjectProperty ;
    rdfs:label "published on"@en ;
    IAO:0000115 "Associates an application with the remote it is distributed through."@en ;
    rdfs:domain flatpak:FlatpakApp ;
    rdfs:isDefinedBy flatpak: ;
    rdfs:range flatpak:Remote .

flatpak:runtimeVersion a owl:DatatypeProperty ;
    rdfs:label "runtime version"@en ;
    IAO:0000115 "The version of the runtime required by the application (e.g., '46' for GNOME 46)."@en ;
    rdfs:domain flatpak:FlatpakApp ;
    rdfs:isDefinedBy flatpak: ;
    rdfs:range xsd:string .

flatpak:usesRuntime a owl:ObjectProperty ;
    rdfs:label "uses runtime"@en ;
    IAO:0000115 "Associates an application with the runtime it requires."@en ;
    rdfs:domain flatpak:FlatpakApp ;
    rdfs:isDefinedBy flatpak: ;
    rdfs:range flatpak:Runtime .

flatpak:usesSdk a owl:ObjectProperty ;
    rdfs:label "uses SDK"@en ;
    IAO:0000115 "Associates an application with the SDK used to build it."@en ;
    rdfs:domain flatpak:FlatpakApp ;
    rdfs:isDefinedBy flatpak: ;
    rdfs:range flatpak:Runtime .

flatpak:Extension a owl:Class ;
    rdfs:label "Extension"@en ;
    IAO:0000115 "An add-on that extends a runtime or application with additional functionality (e.g., GL drivers, codecs, language packs)."@en ;
    rdfs:comment "A Flatpak extension adding capabilities to a runtime or app"@en ;
    rdfs:isDefinedBy flatpak: .

flatpak:Remote a owl:Class ;
    rdfs:label "Remote"@en ;
    IAO:0000115 "An OSTree-based repository serving Flatpak applications and runtimes, such as Flathub or a self-hosted remote."@en ;
    rdfs:comment "A Flatpak remote repository (e.g., Flathub)"@en ;
    rdfs:isDefinedBy flatpak: ;
    rdfs:subClassOf pkg:Repository .

flatpak:Permission a owl:Class ;
    rdfs:label "Permission"@en ;
    IAO:0000115 "A sandbox permission granted to the application via --finish-args, controlling access to devices, filesystems, D-Bus services, and network."@en ;
    rdfs:comment "A sandbox permission (finish-arg)"@en ;
    rdfs:isDefinedBy flatpak: .

flatpak:Runtime a owl:Class ;
    rdfs:label "Runtime"@en ;
    IAO:0000115 "A base platform providing shared libraries, frameworks, and a filesystem root for Flatpak applications (e.g., org.gnome.Platform, org.kde.Platform)."@en ;
    rdfs:comment "A Flatpak runtime providing shared libraries"@en ;
    rdfs:isDefinedBy flatpak: .

flatpak:FlatpakApp a owl:Class ;
    rdfs:label "Flatpak Application"@en ;
    IAO:0000115 "A desktop application packaged in Flatpak format, identified by a reverse-DNS application ID (e.g., org.mozilla.Firefox), running in a Bubblewrap sandbox."@en ;
    rdfs:comment "A sandboxed application distributed via Flatpak"@en ;
    rdfs:isDefinedBy flatpak: ;
    rdfs:subClassOf pkg:BinaryPackage .

flatpak: a owl:Ontology ;
    rdfs:label "Flatpak Application Ontology"@en ;
    dcterms:abstract "Models Flatpak's sandboxed application distribution including application IDs, runtimes, SDK extensions, finish-args (sandbox permissions), and Flathub remotes. Captures the application-level packaging model distinct from system-level package managers." ;
    dcterms:created "2026-04-14"^^xsd:date ;
    dcterms:license <https://creativecommons.org/publicdomain/zero/1.0/> ;
    dcterms:modified "2026-04-21"^^xsd:date ;
    rdfs:comment "Ontology for representing Flatpak applications, runtimes, and remotes"@en ;
    rdfs:isDefinedBy flatpak: ;
    rdfs:seeAlso <https://purl.org/packagegraph/ontology/flatpak/shapes> ;
    owl:imports pkg: ;
    owl:priorVersion <https://purl.org/packagegraph/ontology/flatpak/0.6.0> ;
    owl:versionIRI <https://purl.org/packagegraph/ontology/flatpak/0.7.0> ;
    owl:versionInfo "0.7.0" .

