@prefix :      <https://w3id.org/aerOS/continuum#> .
@prefix mod:   <https://w3id.org/mod#> .
@prefix owl:   <http://www.w3.org/2002/07/owl#> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix terms: <http://purl.org/dc/terms/> .
@prefix xsd:   <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
@prefix vann:  <http://purl.org/vocab/vann/> .
@prefix dc:    <http://purl.org/dc/elements/1.1/> .

:withinArea  a       owl:DatatypeProperty , owl:ObjectProperty ;
        rdfs:domain  :InfrastructureElementRequirements ;
        rdfs:label   "within area" ;
        rdfs:range   xsd:Area .

<http://schema.org/email>
        a                 owl:DatatypeProperty ;
        rdfs:isDefinedBy  <http://schema.org/> ;
        rdfs:label        "email" ;
        rdfs:range        xsd:string .

:webPage  a          owl:DatatypeProperty ;
        rdfs:domain  :ServiceType ;
        rdfs:label   "web page" ;
        rdfs:range   xsd:anyURI .

<http://www.w3.org/ns/org#Role>
        a                 owl:Class ;
        rdfs:comment      "Function or set of functions that a person can perform within an organization. In the scope of aerOS, the functions will be mapped to the capabilities exposed by the aerOS continuum." ;
        rdfs:isDefinedBy  <http://www.w3.org/ns/org#> ;
        rdfs:label        "Role" .

<http://xmlns.com/foaf/0.1/firstName>
        a                 owl:DatatypeProperty ;
        rdfs:domain       <http://xmlns.com/foaf/0.1/Person> ;
        rdfs:isDefinedBy  <http://xmlns.com/foaf/0.1/> ;
        rdfs:label        "first name" ;
        rdfs:range        xsd:string .

:UnsecureInfrastructureElement
        a       :InfrastructureElementStatus , owl:NamedIndividual .

:FarEdgeTier  a  :InfrastructureElementTier , owl:NamedIndividual .

:FunctionalDomain  a  :DomainStatus , owl:NamedIndividual .

:isEntrypoint  a     owl:DatatypeProperty ;
        rdfs:domain  :Domain ;
        rdfs:label   "is entrypoint" ;
        rdfs:range   xsd:boolean .

:averagePowerConsumption
        a            owl:DatatypeProperty ;
        rdfs:domain  :InfrastructureElement ;
        rdfs:label   "average power consumption" ;
        rdfs:range   xsd:float .

:StartingServiceComponent
        a       :ServiceComponentStatus , owl:NamedIndividual .

:envVars  a          owl:DatatypeProperty ;
        rdfs:domain  :ServiceComponent ;
        rdfs:label   "env vars" ;
        rdfs:range   xsd:string .

:CloudTier  a   :InfrastructureElementTier , owl:NamedIndividual .

:requiredCpuUsage  a  owl:DatatypeProperty ;
        rdfs:domain  :InfrastructureElementRequirements ;
        rdfs:label   "required cpu usage" ;
        rdfs:range   xsd:float .

:PreliminarDomain  a  :DomainStatus , owl:NamedIndividual .

terms:license  a          owl:ObjectProperty ;
        rdfs:domain       :ServiceType ;
        rdfs:isDefinedBy  terms: ;
        rdfs:label        "license" ;
        rdfs:range        terms:LicenseDocument .

terms:name  a             owl:DatatypeProperty ;
        rdfs:domain       :LowLevelOrchestrator ;
        rdfs:isDefinedBy  terms: ;
        rdfs:label        "name" ;
        rdfs:range        xsd:string .

terms:source  a  owl:AnnotationProperty .

<http://purl.org/NET/rdflicense/APACHE2.0>
        a       owl:NamedIndividual .

:MigratingServiceComponent
        a       :ServiceComponentStatus , owl:NamedIndividual .

:currentCpuUsage  a  owl:DatatypeProperty ;
        rdfs:domain  :InfrastructureElement ;
        rdfs:label   "current cpu usage" ;
        rdfs:range   xsd:float .

vann:preferredNamespaceUri
        a       owl:AnnotationProperty .

terms:LicenseDocument
        a                 owl:Class ;
        rdfs:isDefinedBy  terms: ;
        rdfs:label        "License Document" .

:portNumber  a       owl:DatatypeProperty ;
        rdfs:domain  :NetworkPort ;
        rdfs:label   "port number" ;
        rdfs:range   xsd:integer .

<http://xmlns.com/foaf/0.1/lastName>
        a                 owl:DatatypeProperty ;
        rdfs:domain       <http://xmlns.com/foaf/0.1/Person> ;
        rdfs:isDefinedBy  <http://xmlns.com/foaf/0.1/> ;
        rdfs:label        "last name" ;
        rdfs:range        xsd:string .

:DomainStatus  a      owl:Class ;
        rdfs:comment  "Represents the status of a domain. Possible types are Preliminar, Functional, Removed.Represents the status of a domain. Possible types are Preliminar, Functional, Removed." ;
        rdfs:label    "Domain Status" .

:LocatingServiceComponent
        a       :ServiceComponentStatus , owl:NamedIndividual .

:arm64Architecture  a  :CpuArchitecture , owl:NamedIndividual .

terms:created  a  owl:AnnotationProperty .

:LowLevelOrchestrator
        a             owl:Class ;
        rdfs:comment  "This element interprets the Decision Blueprint coming from the HLO and oversees the actual deployment of workloads in the selected IE(s). Being aware of the underlying container management frameworks, is able to convert the allocation order into proper deployment. Several LLOs may live in the same domain." ;
        rdfs:label    "Low Level Orchestrator" .

:InfrastructureElementTier
        a             owl:Class ;
        rdfs:comment  "Represents the computing continuum tier (cloud, edge, ...) of an IE." ;
        rdfs:label    "Infrastructure Element Tier" .

terms:creator  a  owl:AnnotationProperty .

:KubernetesOrchestration
        a       :OrchestrationType , owl:NamedIndividual .

terms:title  a            owl:DatatypeProperty ;
        rdfs:domain       :NetworkPort ;
        rdfs:isDefinedBy  terms: ;
        rdfs:label        "title" ;
        rdfs:range        xsd:string .

:serviceType  a      owl:ObjectProperty ;
        rdfs:domain  :Service ;
        rdfs:label   "service type" ;
        rdfs:range   :ServiceType .

:orchestrationType  a  owl:ObjectProperty ;
        rdfs:domain  :LowLevelOrchestrator ;
        rdfs:label   "orchestration type" ;
        rdfs:range   :OrchestrationType .

:RunningServiceComponent
        a       :ServiceComponentStatus , owl:NamedIndividual .

:location  a         owl:DatatypeProperty , owl:ObjectProperty ;
        rdfs:domain  :InfrastructureElement ;
        rdfs:label   "location" ;
        rdfs:range   xsd:Location .

:User   a                owl:Class ;
        rdfs:comment     "Person with access to the capabilities of the continuum." ;
        rdfs:label       "User" ;
        rdfs:subClassOf  <http://xmlns.com/foaf/0.1/Person> .

:InfrastructureElementStatus
        a             owl:Class ;
        rdfs:comment  "Represents the status of an IE. Possible types are READY, OVERLOAD, UNSECURE, UNTRUSTED." ;
        rdfs:label    "Infrastructure Element Status" .

:username  a         owl:DatatypeProperty ;
        rdfs:domain  :User ;
        rdfs:label   "username" ;
        rdfs:range   xsd:string .

:realTimeCapable  a  owl:DatatypeProperty ;
        rdfs:domain  :InfrastructureElementRequirements , :InfrastructureElement ;
        rdfs:label   "real time capable" ;
        rdfs:range   xsd:boolean .

dc:created  a   owl:AnnotationProperty .

:exposesNetworkPort  a  owl:ObjectProperty ;
        rdfs:domain  :ServiceComponent ;
        rdfs:label   "exposes network port" ;
        rdfs:range   :NetworkPort .

terms:contributor  a  owl:AnnotationProperty .

:operatingSystem  a  owl:ObjectProperty ;
        rdfs:domain  :InfrastructureElement ;
        rdfs:label   "operating system" ;
        rdfs:range   :OperatingSystem .

:serviceComponentStatus
        a            owl:ObjectProperty ;
        rdfs:domain  :ServiceComponent ;
        rdfs:label   "service component status" ;
        rdfs:range   :ServiceComponentStatus .

dc:creator  a   owl:AnnotationProperty .

mod:createdWith  a  owl:AnnotationProperty .

<http://www.w3.org/ns/org#Membership>
        a                 owl:Class ;
        rdfs:isDefinedBy  <http://www.w3.org/ns/org#> ;
        rdfs:label        "Membership" .

<http://www.w3.org/ns/org#member>
        a                 owl:ObjectProperty ;
        rdfs:domain       <http://www.w3.org/ns/org#Membership> ;
        rdfs:isDefinedBy  <http://www.w3.org/ns/org#> ;
        rdfs:label        "member" ;
        rdfs:range        <http://xmlns.com/foaf/0.1/Person> .

:availableRam  a     owl:DatatypeProperty ;
        rdfs:domain  :InfrastructureElement ;
        rdfs:label   "available ram" ;
        rdfs:range   xsd:integer .

:containerImage  a   owl:DatatypeProperty ;
        rdfs:domain  :ServiceComponent ;
        rdfs:label   "container image" ;
        rdfs:range   xsd:string .

<http://www.w3.org/ns/org#Organization>
        a                 owl:Class ;
        rdfs:comment      "Group of people that work together towards a business goal. In the scope of aerOS, an organization is accountable for the management of an aerOS domain as part of a continuum." ;
        rdfs:isDefinedBy  <http://www.w3.org/ns/org#> ;
        rdfs:label        "Organization" .

:ramCapacity  a      owl:DatatypeProperty ;
        rdfs:domain  :InfrastructureElement ;
        rdfs:label   "ram capacity" ;
        rdfs:range   xsd:integer .

:ContainerdOrchestration
        a       :OrchestrationType , owl:NamedIndividual .

terms:identifier  a       owl:DatatypeProperty ;
        rdfs:domain       :ServiceType , :ServiceComponent , :Service , :Domain , <http://www.w3.org/ns/org#Organization> ;
        rdfs:isDefinedBy  terms: ;
        rdfs:label        "identifier" ;
        rdfs:range        xsd:string .

:macAddress  a       owl:DatatypeProperty ;
        rdfs:domain  :InfrastructureElement ;
        rdfs:label   "mac address" ;
        rdfs:range   xsd:string .

:arm32Architecture  a  :CpuArchitecture , owl:NamedIndividual .

<http://schema.org/url>
        a                 owl:DatatypeProperty ;
        rdfs:domain       :LowLevelOrchestrator ;
        rdfs:isDefinedBy  <http://schema.org/> ;
        rdfs:label        "url" ;
        rdfs:range        xsd:anyURI .

:infrastructureElementTier
        a            owl:ObjectProperty ;
        rdfs:domain  :InfrastructureElement ;
        rdfs:label   "infrastructure element tier" ;
        rdfs:range   :InfrastructureElementTier .

:OpenstackOrchestration
        a       :OrchestrationType , owl:NamedIndividual .

xsd:date  a     rdfs:Datatype .

:       a                              owl:Ontology , owl:NamedIndividual ;
        rdfs:label                     "aerOS Continuum Ontology"@en ;
        terms:contributor              "Andreu Belsa Pellicer" , "Rafael Vaño Garcia" ;
        terms:created                  "2024-02-14"^^xsd:date ;
        terms:creator                  "Ignacio Dominguez Martinez-Casanueva" ;
        terms:description              "\n                                    Ontology for the orchestration of the aerOS continuum.\n                                    " ;
        terms:license                  <http://purl.org/NET/rdflicense/APACHE2.0> ;
        terms:modified                 "2024-08-23"^^xsd:date ;
        terms:source                   <https://gitlab.aeros-project.eu/wp4/t4.1/aeros-continuum> ;
        terms:title                    "aerOS Continuum Ontology" ;
        vann:preferredNamespacePrefix  "aeros" ;
        vann:preferredNamespaceUri     : ;
        owl:versionIRI                 <https://w3id.org/aerOS/continuum> ;
        owl:versionInfo                "1.1.0" ;
        mod:createdWith                <https://chowlk.linkeddata.es/> .

:InfrastructureElement
        a             owl:Class ;
        rdfs:comment  "\"The fundamental building block within aerOS Meta-OS. A physical or virtual computing resource providing the necessary processing power, storage capacity, and network connectivity to support containerised workloads and services.\n\nExposes aerOS runtime on top of provided capabilities being thus the minimum execution unit within the IoT-Edge-Cloud continuum.\"" ;
        rdfs:label    "Infrastructure Element" .

:Windows  a     :OperatingSystem , owl:NamedIndividual .

:Domain  a            owl:Class ;
        rdfs:comment  "A set of one or more IEs, functionally connected and sharing a common instance of aerOS basic services among them, constituting an administrative domain able to be managed and orchestrated by aerOS Meta-OS and thus be part of the IoT-Edge-Cloud continuum." ;
        rdfs:label    "Domain" .

:FinishedServiceComponent
        a       :ServiceComponentStatus , owl:NamedIndividual .

:ServiceComponent  a  owl:Class ;
        rdfs:comment  "Individual, deployable units that together constitute a Service in the aerOS ecosystem, each with a specific role or function." ;
        rdfs:label    "Service Component" .

:OrchestrationType  a  owl:Class ;
        rdfs:comment  "Container orchestration technology." ;
        rdfs:label    "Orchestration Type" .

:OverloadInfrastructureElement
        a       :InfrastructureElementStatus , owl:NamedIndividual .

:ReadyInfrastructureElement
        a       :InfrastructureElementStatus , owl:NamedIndividual .

:domainStatus  a     owl:ObjectProperty ;
        rdfs:domain  :Domain ;
        rdfs:label   "domain status" ;
        rdfs:range   :DomainStatus .

:FailedServiceComponent
        a       :ServiceComponentStatus , owl:NamedIndividual .

:currentRamUsage  a  owl:DatatypeProperty ;
        rdfs:domain  :InfrastructureElement ;
        rdfs:label   "current ram usage" ;
        rdfs:range   xsd:integer .

:belongsTo  a        owl:ObjectProperty ;
        rdfs:domain  :LowLevelOrchestrator ;
        rdfs:label   "belongs to" ;
        rdfs:range   :Domain .

:cpuCores  a         owl:DatatypeProperty ;
        rdfs:domain  :InfrastructureElement ;
        rdfs:label   "cpu cores" ;
        rdfs:range   xsd:integer .

:infrastructureElementRequirements
        a            owl:ObjectProperty ;
        rdfs:domain  :ServiceComponent ;
        rdfs:label   "infrastructure element requirements" ;
        rdfs:range   :InfrastructureElementRequirements .

:Service  a           owl:Class ;
        rdfs:comment  "Represents a single instance of an IoT service with a unique identifier. A service is composed by one or some ServiceComponents." ;
        rdfs:label    "Service" .

:Linux  a       :OperatingSystem , owl:NamedIndividual .

:NetworkPort  a     owl:Class ;
        rdfs:label  "Network Port" .

:cliArgs  a          owl:DatatypeProperty ;
        rdfs:domain  :ServiceComponent ;
        rdfs:label   "cli args" ;
        rdfs:range   xsd:string .

:owner  a            owl:ObjectProperty ;
        rdfs:domain  :Domain ;
        rdfs:label   "owner" ;
        rdfs:range   <http://www.w3.org/ns/org#Organization> .

:requiredRam  a      owl:DatatypeProperty ;
        rdfs:domain  :InfrastructureElementRequirements ;
        rdfs:label   "required ram" ;
        rdfs:range   xsd:integer .

:sla    a            owl:DatatypeProperty ;
        rdfs:domain  :ServiceComponent ;
        rdfs:label   "sla" ;
        rdfs:range   xsd:string .

terms:modified  a  owl:AnnotationProperty .

:InfrastructureElementRequirements
        a             owl:Class ;
        rdfs:comment  "Represents the IE requirements for running a service component." ;
        rdfs:label    "Infrastructure Element Requirements" .

owl:versionInfo  a  owl:AnnotationProperty .

xsd:Area  a     owl:Class .

xsd:Location  a  owl:Class .

vann:preferredNamespacePrefix
        a       owl:AnnotationProperty .

:ServiceType  a       owl:Class ;
        rdfs:comment  "Identifies the services such as a \"catalogue\"." ;
        rdfs:label    "Service Type" .

:cpuArchitecture  a  owl:ObjectProperty ;
        rdfs:domain  :InfrastructureElement ;
        rdfs:label   "cpu architecture" ;
        rdfs:range   :CpuArchitecture .

:OperatingSystem  a  owl:Class ;
        rdfs:label  "Operating System" .

<http://xmlns.com/foaf/0.1/Person>
        a                 owl:Class ;
        rdfs:isDefinedBy  <http://xmlns.com/foaf/0.1/> ;
        rdfs:label        "Person" .

<http://www.w3.org/ns/org#organization>
        a                 owl:ObjectProperty ;
        rdfs:domain       <http://www.w3.org/ns/org#Membership> ;
        rdfs:isDefinedBy  <http://www.w3.org/ns/org#> ;
        rdfs:label        "organization" ;
        rdfs:range        <http://www.w3.org/ns/org#Organization> .

:x64Architecture  a  :CpuArchitecture , owl:NamedIndividual .

:internalIpAddress  a  owl:DatatypeProperty ;
        rdfs:domain  :InfrastructureElement ;
        rdfs:label   "internal ip address" ;
        rdfs:range   xsd:string .

:infrastructureElementStatus
        a            owl:ObjectProperty ;
        rdfs:domain  :InfrastructureElement ;
        rdfs:label   "infrastructure element status" ;
        rdfs:range   :InfrastructureElementStatus .

:DockerOrchestration  a  :OrchestrationType , owl:NamedIndividual .

:UntrustedInfrastructureElement
        a       :InfrastructureElementStatus , owl:NamedIndividual .

:RemovedDomain  a  :DomainStatus , owl:NamedIndividual .

terms:description  a      owl:DatatypeProperty ;
        rdfs:domain       :Service , :Domain ;
        rdfs:isDefinedBy  terms: ;
        rdfs:label        "description" ;
        rdfs:range        xsd:string .

dc:contributor  a  owl:AnnotationProperty .

:domain  a           owl:ObjectProperty ;
        rdfs:domain  :InfrastructureElement ;
        rdfs:label   "domain" ;
        rdfs:range   :Domain .

:isPartOfService  a  owl:ObjectProperty ;
        rdfs:domain  :ServiceComponent ;
        rdfs:label   "is part of service" ;
        rdfs:range   :Service .

:RemovingServiceComponent
        a       :ServiceComponentStatus , owl:NamedIndividual .

:OverloadServiceComponent
        a       :ServiceComponentStatus , owl:NamedIndividual .

:publicUrl  a        owl:DatatypeProperty ;
        rdfs:domain  :Domain ;
        rdfs:label   "public url" ;
        rdfs:range   xsd:anyURI .

:deployedOnServiceComponent
        a            owl:ObjectProperty ;
        rdfs:domain  :InfrastructureElement ;
        rdfs:label   "deployed on service component" ;
        rdfs:range   :ServiceComponent .

dc:title  a     owl:AnnotationProperty .

:IotTier  a     :InfrastructureElementTier , owl:NamedIndividual .

:EdgeTier  a    :InfrastructureElementTier , owl:NamedIndividual .

:CpuArchitecture  a  owl:Class ;
        rdfs:label  "Cpu Architecture" .

:ServiceComponentStatus
        a           owl:Class ;
        rdfs:label  "Service Component Status" .

:currentPowerConsumption
        a            owl:DatatypeProperty ;
        rdfs:domain  :InfrastructureElement ;
        rdfs:label   "current power consumption" ;
        rdfs:range   xsd:float .

<http://www.w3.org/ns/org#role>
        a                 owl:ObjectProperty ;
        rdfs:domain       <http://www.w3.org/ns/org#Membership> ;
        rdfs:isDefinedBy  <http://www.w3.org/ns/org#> ;
        rdfs:label        "role" ;
        rdfs:range        <http://www.w3.org/ns/org#Role> .
