@prefix IAO: <http://purl.obolibrary.org/obo/IAO_> .
@prefix choco: <https://purl.org/packagegraph/ontology/chocolatey#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@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#> .

choco:ChocolateyFeature a owl:Class ;
    rdfs:label "Chocolatey Feature"@en ;
    IAO:0000115 "A configurable feature in Chocolatey that controls specific behaviors or capabilities of the package management system."@en ;
    rdfs:comment "A Chocolatey feature that affects package behavior"@en ;
    rdfs:isDefinedBy choco: ;
    rdfs:subClassOf owl:Thing .

choco:Nupkg a owl:Class ;
    rdfs:label "NuPkg File"@en ;
    IAO:0000115 "A compressed archive file with .nupkg extension that contains all the files, metadata, and scripts for a Chocolatey package."@en ;
    rdfs:comment "A .nupkg file containing a Chocolatey package"@en ;
    rdfs:isDefinedBy choco: ;
    rdfs:subClassOf choco:ChocolateyPackage .

choco:authors a owl:ObjectProperty ;
    rdfs:label "authors"@en ;
    IAO:0000115 "Specifies the original authors or creators of the software contained in the Chocolatey package."@en ;
    rdfs:comment "The authors of the package"@en ;
    rdfs:domain choco:ChocolateyPackage ;
    rdfs:isDefinedBy choco: ;
    rdfs:range pkg:Contributor .

choco:bugTrackerUrl a owl:DatatypeProperty ;
    rdfs:label "bug tracker URL"@en ;
    IAO:0000115 "The URL where users can report bugs, issues, or problems with the software."@en ;
    rdfs:comment "The URL of the bug tracker"@en ;
    rdfs:domain choco:ChocolateyPackage ;
    rdfs:isDefinedBy choco: ;
    rdfs:range xsd:anyURI .

choco:checksum a owl:DatatypeProperty,
        owl:FunctionalProperty ;
    rdfs:label "checksum"@en ;
    IAO:0000115 "A cryptographic hash value used to verify the integrity of the downloaded installer file."@en ;
    rdfs:comment "The checksum value for verification"@en ;
    rdfs:domain choco:ChocolateyPackage ;
    rdfs:isDefinedBy choco: ;
    rdfs:range xsd:string .

choco:checksum64 a owl:DatatypeProperty,
        owl:FunctionalProperty ;
    rdfs:label "64-bit checksum"@en ;
    IAO:0000115 "A cryptographic hash value used to verify the integrity of the 64-bit version of the downloaded installer file."@en ;
    rdfs:comment "The checksum value for 64-bit installers"@en ;
    rdfs:domain choco:ChocolateyPackage ;
    rdfs:isDefinedBy choco: ;
    rdfs:range xsd:string .

choco:checksumType a owl:DatatypeProperty ;
    rdfs:label "checksum type"@en ;
    IAO:0000115 "Specifies the cryptographic hash algorithm used for checksum verification, such as SHA256, MD5, or SHA1."@en ;
    rdfs:comment "The type of checksum (e.g., sha256, md5)"@en ;
    rdfs:domain choco:ChocolateyPackage ;
    rdfs:isDefinedBy choco: ;
    rdfs:range xsd:string .

choco:community a choco:ChocolateyRepository ;
    rdfs:label "Chocolatey Community Repository"@en ;
    rdfs:comment "The main community repository for Chocolatey packages"@en ;
    pkg:hasVersion [ a pkg:Version ;
            pkg:versionString "v2" ] ;
    pkg:homepage "https://community.chocolatey.org/" .

choco:copyright a owl:DatatypeProperty ;
    rdfs:label "copyright"@en ;
    IAO:0000115 "Copyright notice and ownership information for the software contained in the package."@en ;
    rdfs:comment "Copyright information for the package"@en ;
    rdfs:domain choco:ChocolateyPackage ;
    rdfs:isDefinedBy choco: ;
    rdfs:range xsd:string .

choco:dependsOn a owl:ObjectProperty ;
    rdfs:label "depends on"@en ;
    IAO:0000115 "Indicates that this Chocolatey package requires another package to be installed for proper functionality."@en ;
    rdfs:comment "Package dependency relationship"@en ;
    rdfs:isDefinedBy choco: ;
    rdfs:subPropertyOf pkg:dependsOn .

choco:docsUrl a owl:DatatypeProperty ;
    rdfs:label "documentation URL"@en ;
    IAO:0000115 "The URL where users can find documentation, user guides, or help information for the software."@en ;
    rdfs:comment "The URL of the documentation"@en ;
    rdfs:domain choco:ChocolateyPackage ;
    rdfs:isDefinedBy choco: ;
    rdfs:range xsd:anyURI .

choco:exe a choco:InstallerType ;
    rdfs:label "EXE installer"@en ;
    rdfs:comment "Executable installer type"@en .

choco:hasBeforeModifyScript a owl:ObjectProperty ;
    rdfs:label "has before modify script"@en ;
    IAO:0000115 "Associates a Chocolatey package with its before modify script that is executed before package modifications."@en ;
    rdfs:comment "Links a package to its before modify script"@en ;
    rdfs:domain choco:ChocolateyPackage ;
    rdfs:isDefinedBy choco: ;
    rdfs:range choco:BeforeModifyScript .

choco:hasInstallScript a owl:ObjectProperty ;
    rdfs:label "has install script"@en ;
    IAO:0000115 "Associates a Chocolatey package with its installation script that handles the software installation process."@en ;
    rdfs:comment "Links a package to its installation script"@en ;
    rdfs:domain choco:ChocolateyPackage ;
    rdfs:isDefinedBy choco: ;
    rdfs:range choco:InstallScript .

choco:hasTools a owl:ObjectProperty ;
    rdfs:label "has tools"@en ;
    IAO:0000115 "Associates a Chocolatey package with its tools directory containing executables and scripts."@en ;
    rdfs:comment "Links a package to its tools directory"@en ;
    rdfs:domain choco:ChocolateyPackage ;
    rdfs:isDefinedBy choco: ;
    rdfs:range choco:ChocolateyTools .

choco:hasUninstallScript a owl:ObjectProperty ;
    rdfs:label "has uninstall script"@en ;
    IAO:0000115 "Associates a Chocolatey package with its uninstallation script that handles the software removal process."@en ;
    rdfs:comment "Links a package to its uninstallation script"@en ;
    rdfs:domain choco:ChocolateyPackage ;
    rdfs:isDefinedBy choco: ;
    rdfs:range choco:UninstallScript .

choco:iconUrl a owl:DatatypeProperty ;
    rdfs:label "icon URL"@en ;
    IAO:0000115 "The URL of an image file that serves as the visual icon representing the package."@en ;
    rdfs:comment "The URL of the package icon"@en ;
    rdfs:domain choco:ChocolateyPackage ;
    rdfs:isDefinedBy choco: ;
    rdfs:range xsd:anyURI .

choco:installerType a owl:DatatypeProperty ;
    rdfs:label "installer type"@en ;
    IAO:0000115 "Specifies the format or type of the installer file, such as EXE, MSI, ZIP, or portable application."@en ;
    rdfs:comment "The type of installer (e.g., exe, msi, zip)"@en ;
    rdfs:domain choco:ChocolateyPackage ;
    rdfs:isDefinedBy choco: ;
    rdfs:range xsd:string .

choco:licenseUrl a owl:ObjectProperty ;
    rdfs:label "license URL"@en ;
    IAO:0000115 "The URL where the full text of the software license can be found and reviewed."@en ;
    rdfs:comment "The URL of the license text"@en ;
    rdfs:domain choco:ChocolateyPackage ;
    rdfs:isDefinedBy choco: ;
    rdfs:range pkg:License ;
    rdfs:subPropertyOf pkg:hasLicense .

choco:mailingListUrl a owl:DatatypeProperty ;
    rdfs:label "mailing list URL"@en ;
    IAO:0000115 "The URL for subscribing to or accessing the mailing list for discussions about the software."@en ;
    rdfs:comment "The URL of the mailing list"@en ;
    rdfs:domain choco:ChocolateyPackage ;
    rdfs:isDefinedBy choco: ;
    rdfs:range xsd:anyURI .

choco:msi a choco:InstallerType ;
    rdfs:label "MSI installer"@en ;
    rdfs:comment "Microsoft Installer package type"@en .

choco:owners a owl:ObjectProperty ;
    rdfs:label "owners"@en ;
    IAO:0000115 "Specifies the individuals or organizations who own and maintain the Chocolatey package."@en ;
    rdfs:comment "The owners of the package"@en ;
    rdfs:domain choco:ChocolateyPackage ;
    rdfs:isDefinedBy choco: ;
    rdfs:range pkg:Maintainer ;
    rdfs:subPropertyOf pkg:maintainedBy .

choco:packageSourceUrl a owl:DatatypeProperty ;
    rdfs:label "package source URL"@en ;
    IAO:0000115 "The URL where the source code or build scripts for the Chocolatey package itself can be found."@en ;
    rdfs:comment "The URL where the package source can be found"@en ;
    rdfs:domain choco:ChocolateyPackage ;
    rdfs:isDefinedBy choco: ;
    rdfs:range xsd:anyURI .

choco:portable a choco:InstallerType ;
    rdfs:label "Portable application"@en ;
    rdfs:comment "Portable application that doesn't require installation"@en .

choco:projectUrl a owl:DatatypeProperty ;
    rdfs:label "project URL"@en ;
    IAO:0000115 "The URL of the official homepage or main website for the software project."@en ;
    rdfs:comment "The URL of the project homepage"@en ;
    rdfs:domain choco:ChocolateyPackage ;
    rdfs:isDefinedBy choco: ;
    rdfs:range xsd:anyURI ;
    rdfs:subPropertyOf pkg:homepage .

choco:registryUninstallerKey a owl:DatatypeProperty ;
    rdfs:label "registry uninstaller key"@en ;
    IAO:0000115 "The Windows registry key path where uninstaller information is stored for the software."@en ;
    rdfs:comment "The registry key for the uninstaller"@en ;
    rdfs:domain choco:ChocolateyPackage ;
    rdfs:isDefinedBy choco: ;
    rdfs:range xsd:string .

choco:releaseNotes a owl:DatatypeProperty ;
    rdfs:label "release notes"@en ;
    IAO:0000115 "Detailed information about changes, improvements, and fixes included in this version of the package."@en ;
    rdfs:comment "Release notes for the package version"@en ;
    rdfs:domain choco:ChocolateyPackage ;
    rdfs:isDefinedBy choco: ;
    rdfs:range xsd:string .

choco:requireLicenseAcceptance a owl:DatatypeProperty ;
    rdfs:label "require license acceptance"@en ;
    IAO:0000115 "Indicates whether users must explicitly accept the software license before installation can proceed."@en ;
    rdfs:comment "Whether the package requires license acceptance"@en ;
    rdfs:domain choco:ChocolateyPackage ;
    rdfs:isDefinedBy choco: ;
    rdfs:range xsd:boolean .

choco:scriptContent a owl:DatatypeProperty ;
    rdfs:label "script content"@en ;
    IAO:0000115 "The actual PowerShell code content of the script that will be executed during package operations."@en ;
    rdfs:comment "The PowerShell script content"@en ;
    rdfs:domain choco:ChocolateyScript ;
    rdfs:isDefinedBy choco: ;
    rdfs:range xsd:string .

choco:scriptFile a owl:DatatypeProperty ;
    rdfs:label "script file"@en ;
    IAO:0000115 "The filename of the PowerShell script file within the package structure."@en ;
    rdfs:comment "The filename of the script"@en ;
    rdfs:domain choco:ChocolateyScript ;
    rdfs:isDefinedBy choco: ;
    rdfs:range xsd:string .

choco:silentArgs a owl:DatatypeProperty ;
    rdfs:label "silent arguments"@en ;
    IAO:0000115 "Command-line arguments passed to the installer to enable silent or unattended installation without user interaction."@en ;
    rdfs:comment "Arguments for silent installation"@en ;
    rdfs:domain choco:ChocolateyPackage ;
    rdfs:isDefinedBy choco: ;
    rdfs:range xsd:string .

choco:softwareDisplayName a owl:DatatypeProperty ;
    rdfs:label "software display name"@en ;
    IAO:0000115 "The name of the software as it appears in Windows Add/Remove Programs or Programs and Features."@en ;
    rdfs:comment "The display name of the software in Add/Remove Programs"@en ;
    rdfs:domain choco:ChocolateyPackage ;
    rdfs:isDefinedBy choco: ;
    rdfs:range xsd:string .

choco:softwareDisplayVersion a owl:DatatypeProperty ;
    rdfs:label "software display version"@en ;
    IAO:0000115 "The version string of the software as it appears in Windows Add/Remove Programs or Programs and Features."@en ;
    rdfs:comment "The display version in Add/Remove Programs"@en ;
    rdfs:domain choco:ChocolateyPackage ;
    rdfs:isDefinedBy choco: ;
    rdfs:range xsd:string .

choco:softwareName a owl:DatatypeProperty ;
    rdfs:label "software name"@en ;
    IAO:0000115 "The actual name of the software application that is installed by this Chocolatey package."@en ;
    rdfs:comment "The name of the underlying software"@en ;
    rdfs:domain choco:ChocolateyPackage ;
    rdfs:isDefinedBy choco: ;
    rdfs:range xsd:string .

choco:softwareVersion a owl:DatatypeProperty ;
    rdfs:label "software version"@en ;
    IAO:0000115 "The version number of the actual software application that is installed by this package."@en ;
    rdfs:comment "The version of the underlying software"@en ;
    rdfs:domain choco:ChocolateyPackage ;
    rdfs:isDefinedBy choco: ;
    rdfs:range xsd:string .

choco:summary a owl:DatatypeProperty ;
    rdfs:label "summary"@en ;
    IAO:0000115 "A brief summary description of the package's purpose and functionality."@en ;
    rdfs:comment "A short summary of the package"@en ;
    rdfs:domain choco:ChocolateyPackage ;
    rdfs:isDefinedBy choco: ;
    rdfs:range xsd:string ;
    rdfs:subPropertyOf pkg:description .

choco:tags a owl:DatatypeProperty ;
    rdfs:label "tags"@en ;
    IAO:0000115 "A space-separated list of keywords or tags that help categorize and make the package discoverable in searches."@en ;
    rdfs:comment "Space-delimited list of tags for the package"@en ;
    rdfs:domain choco:ChocolateyPackage ;
    rdfs:isDefinedBy choco: ;
    rdfs:range xsd:string .

choco:title a owl:DatatypeProperty ;
    rdfs:label "title"@en ;
    IAO:0000115 "A human-readable title or display name for the package that may be more descriptive than the package ID."@en ;
    rdfs:comment "The human-readable title of the package"@en ;
    rdfs:domain choco:ChocolateyPackage ;
    rdfs:isDefinedBy choco: ;
    rdfs:range xsd:string .

choco:uninstallRegistryKey a owl:DatatypeProperty ;
    rdfs:label "uninstall registry key"@en ;
    IAO:0000115 "An alternative reference to the Windows registry key path where uninstaller information is stored."@en ;
    rdfs:comment "Alternative name for registry uninstaller key"@en ;
    rdfs:domain choco:ChocolateyPackage ;
    rdfs:isDefinedBy choco: ;
    rdfs:range xsd:string .

choco:unzipLocation a owl:DatatypeProperty ;
    rdfs:label "unzip location"@en ;
    IAO:0000115 "Specifies the directory path where ZIP archive packages should be extracted during installation."@en ;
    rdfs:comment "Location where ZIP packages should be extracted"@en ;
    rdfs:domain choco:ChocolateyPackage ;
    rdfs:isDefinedBy choco: ;
    rdfs:range xsd:string .

choco:url a owl:DatatypeProperty ;
    rdfs:label "download URL"@en ;
    IAO:0000115 "The URL from which the software installer or archive can be downloaded."@en ;
    rdfs:comment "The URL to download the software installer"@en ;
    rdfs:domain choco:ChocolateyPackage ;
    rdfs:isDefinedBy choco: ;
    rdfs:range xsd:anyURI .

choco:url64bit a owl:DatatypeProperty ;
    rdfs:label "64-bit download URL"@en ;
    IAO:0000115 "The URL from which the 64-bit version of the software installer can be downloaded."@en ;
    rdfs:comment "The URL to download the 64-bit software installer"@en ;
    rdfs:domain choco:ChocolateyPackage ;
    rdfs:isDefinedBy choco: ;
    rdfs:range xsd:anyURI .

choco:validExitCodes a owl:DatatypeProperty ;
    rdfs:label "valid exit codes"@en ;
    IAO:0000115 "A list of exit codes that the installer may return to indicate successful installation completion."@en ;
    rdfs:comment "Exit codes that indicate successful installation"@en ;
    rdfs:domain choco:ChocolateyPackage ;
    rdfs:isDefinedBy choco: ;
    rdfs:range xsd:string .

choco:zip a choco:InstallerType ;
    rdfs:label "ZIP archive"@en ;
    rdfs:comment "ZIP archive package type"@en .

choco:BeforeModifyScript a owl:Class ;
    rdfs:label "Before Modify Script"@en ;
    IAO:0000115 "A PowerShell script that is executed before any modification operations on a Chocolatey package, used for preparation tasks or validation."@en ;
    rdfs:comment "PowerShell script executed before package modification"@en ;
    rdfs:isDefinedBy choco: ;
    rdfs:subClassOf choco:ChocolateyScript .

choco:ChocolateyRepository a owl:Class ;
    rdfs:label "Chocolatey Repository"@en ;
    IAO:0000115 "A repository that hosts Chocolatey packages and can be accessed by the Chocolatey package manager for package discovery and installation."@en ;
    rdfs:comment "A repository containing Chocolatey packages"@en ;
    rdfs:isDefinedBy choco: ;
    rdfs:subClassOf pkg:Repository .

choco:ChocolateyTools a owl:Class ;
    rdfs:label "Chocolatey Tools"@en ;
    IAO:0000115 "A directory within a Chocolatey package that contains executable files, scripts, and other tools specific to the packaged software."@en ;
    rdfs:comment "Tools directory containing package-specific executables and scripts"@en ;
    rdfs:isDefinedBy choco: ;
    rdfs:subClassOf owl:Thing .

choco:InstallScript a owl:Class ;
    rdfs:label "Install Script"@en ;
    IAO:0000115 "A PowerShell script that is executed during the installation of a Chocolatey package to perform setup tasks and configuration."@en ;
    rdfs:comment "PowerShell script executed during package installation"@en ;
    rdfs:isDefinedBy choco: ;
    rdfs:subClassOf choco:ChocolateyScript .

choco:Nuspec a owl:Class ;
    rdfs:label "NuSpec File"@en ;
    IAO:0000115 "An XML file with .nuspec extension that contains metadata about a Chocolatey package including dependencies, version information, and descriptions."@en ;
    rdfs:comment "A .nuspec XML file containing package metadata"@en ;
    rdfs:isDefinedBy choco: ;
    rdfs:subClassOf owl:Thing .

choco:UninstallScript a owl:Class ;
    rdfs:label "Uninstall Script"@en ;
    IAO:0000115 "A PowerShell script that is executed during the uninstallation of a Chocolatey package to perform cleanup tasks and remove configurations."@en ;
    rdfs:comment "PowerShell script executed during package uninstallation"@en ;
    rdfs:isDefinedBy choco: ;
    rdfs:subClassOf choco:ChocolateyScript .

choco:hasNuspec a owl:ObjectProperty ;
    rdfs:label "has nuspec"@en ;
    IAO:0000115 "Associates a Chocolatey package with its NuSpec metadata file containing package information."@en ;
    rdfs:comment "Links a package to its nuspec file"@en ;
    rdfs:domain choco:ChocolateyPackage ;
    rdfs:isDefinedBy choco: ;
    rdfs:range choco:Nuspec .

choco:packageId a owl:DatatypeProperty,
        owl:FunctionalProperty ;
    rdfs:label "package ID"@en ;
    IAO:0000115 "A unique string identifier that distinguishes this package from all other packages in the Chocolatey ecosystem."@en ;
    rdfs:comment "The unique identifier of the package"@en ;
    rdfs:domain choco:ChocolateyPackage ;
    rdfs:isDefinedBy choco: ;
    rdfs:range xsd:string .

choco:InstallerType a owl:Class ;
    rdfs:label "Installer Type"@en ;
    IAO:0000115 "A classification that identifies the specific type of installer or packaging format used for a Chocolatey package, such as MSI, EXE, ZIP, or portable applications."@en ;
    rdfs:comment "A type of installer for a Chocolatey package"@en ;
    rdfs:isDefinedBy choco: ;
    rdfs:subClassOf owl:Thing .

choco:ChocolateyScript a owl:Class ;
    rdfs:label "Chocolatey Script"@en ;
    IAO:0000115 "A PowerShell script that is executed during various Chocolatey package operations such as installation, uninstallation, or modification."@en ;
    rdfs:comment "A PowerShell script executed during package operations"@en ;
    rdfs:isDefinedBy choco: ;
    rdfs:subClassOf owl:Thing .

choco:ChocolateyPackage a owl:Class ;
    rdfs:label "Chocolatey Package"@en ;
    IAO:0000115 "A software package in Chocolatey format (.nupkg) that can be installed and managed on Windows systems using the Chocolatey package manager. Chocolatey packages are pre-built binaries with PowerShell install scripts."@en ;
    rdfs:comment "A package in Chocolatey/NuGet format for Windows software management"@en ;
    rdfs:isDefinedBy choco: ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:cardinality 1 ;
            owl:onProperty choco:packageId ],
        [ a owl:Restriction ;
            owl:cardinality 1 ;
            owl:onProperty pkg:hasVersion ],
        [ a owl:Restriction ;
            owl:cardinality 1 ;
            owl:onProperty choco:hasNuspec ],
        pkg:BinaryPackage .

choco: a owl:Ontology ;
    rdfs:label "Chocolatey Package Ontology"@en ;
    dcterms:abstract "The Chocolatey extension models Windows package management through Chocolatey and NuGet. It captures NuSpec metadata, PowerShell install/uninstall scripts, installer types (MSI, EXE, InnoSetup), registry keys, and shim generation, enabling cross-platform package comparisons between Windows and Linux ecosystems." ;
    dcterms:created "2025-09-05"^^xsd:date ;
    dcterms:creator <https://packagegraph.github.io/> ;
    dcterms:description "A comprehensive ontology for modeling Chocolatey packages, NuGet packages, PowerShell scripts, and Windows software management including installation scripts, dependencies, and package metadata." ;
    dcterms:license <https://creativecommons.org/publicdomain/zero/1.0/> ;
    dcterms:modified "2026-04-21"^^xsd:date ;
    dcterms:title "Chocolatey Package Ontology" ;
    rdfs:comment "Ontology for representing Chocolatey packages and repositories on Windows"@en ;
    rdfs:isDefinedBy choco: ;
    rdfs:seeAlso <https://purl.org/packagegraph/ontology/chocolatey/shapes> ;
    owl:imports pkg: ;
    owl:priorVersion <https://purl.org/packagegraph/ontology/chocolatey/0.6.0> ;
    owl:versionIRI <https://purl.org/packagegraph/ontology/chocolatey/0.7.0> ;
    owl:versionInfo "0.7.0" .

