@prefix :      <http://cookingbigdata.com/linkeddata/ccinstances#> .
@prefix dc:    <http://purl.org/dc/terms/> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
@prefix foaf:  <http://xmlns.com/foaf/0.1/> .
@prefix owl:   <http://www.w3.org/2002/07/owl#> .
@prefix xsd:   <http://www.w3.org/2001/XMLSchema#> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix cc:    <http://creativecommons.org/ns#> .

:storage_technology  a  rdf:Property ;
        rdfs:comment  "Storage Technology. For instance: SSD/HDD/..."@en ;
        rdfs:domain   :storage ;
        rdfs:label    "Storage Technology"@en ;
        rdfs:range    xsd:string .

:code   a             rdf:Property ;
        rdfs:comment  "Instance group code"@en ;
        rdfs:domain   :Instance ;
        rdfs:label    "Short Code"@en ;
        rdfs:range    xsd:string .

:ram_size  a          rdf:Property ;
        rdfs:comment  "RAM size of the instance. For example: 256 GB"@en ;
        rdfs:domain   :ram ;
        rdfs:label    "RAM size"@en ;
        rdfs:range    xsd:integer .

:cpu    a                 rdfs:Class , owl:Class ;
        rdfs:comment      "CPU"@en ;
        rdfs:isDefinedBy  <http://cookingbigdata.com/linkeddata/ccinstances> ;
        rdfs:label        "CPU"@en .

:       a                owl:Ontology ;
        rdfs:label       "Cloud Instances definition"@en ;
        cc:license       <http://creativecommons.org/licenses/by/3.0/> ;
        dc:created       "2018-03-06"^^xsd:date ;
        dc:creator       :manuelparra ;
        dc:description   "Ontology for Cloud Computing Instances. Instance are classes of VM that comprise varying combinations of CPU, memory, storage, and networking capacity. This ontology allows to define the instantiation model of MVs used in large cloud computing providers such as Amazon, Azure, etc."@en ;
        dc:issued        "2018-04-20"^^xsd:date ;
        dc:modified      "2018-04-03"^^xsd:date ;
        dc:publisher     :cookingbigdata ;
        dc:rights        "Copyright © 2018 Manuel Parra-Royón" ;
        dc:title         "Ontology for Cloud Computing instances"@en ;
        owl:versionInfo  1.0 .

:hasStorage  a            rdf:Property ;
        rdfs:comment      "Specifies that the instance is provided with storage"@en ;
        rdfs:domain       :Instance ;
        rdfs:isDefinedBy  <http://cookingbigdata.com/linkeddata/ccinstances> ;
        rdfs:label        "Has storage"@en ;
        rdfs:range        :storage .

:network_bandwidth  a  rdf:Property ;
        rdfs:comment  "Network bandwidth in Mbps. For example: 1000 Mbps"@en ;
        rdfs:domain   :network ;
        rdfs:label    "Network bandwidth"@en ;
        rdfs:range    xsd:decimal .

:hasRAM  a                rdf:Property ;
        rdfs:comment      "Specifies that the instance is provided with RAM"@en ;
        rdfs:domain       :Instance ;
        rdfs:isDefinedBy  <http://cookingbigdata.com/linkeddata/ccinstances> ;
        rdfs:label        "Has RAM"@en ;
        rdfs:range        :ram .

:manuelparra  a        foaf:Person ;
        rdfs:seeAlso   <https://twitter.com/manugrapevine> ;
        foaf:homepage  <https://twitter.com/manugrapevine> ;
        foaf:mbox      "manuparra@gmail.com" ;
        foaf:name      "Manuel Parra-Royon" .

:model  a             rdf:Property ;
        rdfs:comment  "Unique identifier of the instance. It allows to know the name of the instance in a quick way. For instance: t2.medium"@en ;
        rdfs:domain   :Instance ;
        rdfs:label    "Model Code"@en ;
        rdfs:range    xsd:string .

:storage  a               rdfs:Class , owl:Class ;
        rdfs:comment      "Storage"@en ;
        rdfs:isDefinedBy  <http://cookingbigdata.com/linkeddata/ccinstances> ;
        rdfs:label        "Storage"@en .

:ram_type  a          rdf:Property ;
        rdfs:comment  "RAM Type. For example: DDR3"@en ;
        rdfs:domain   :ram ;
        rdfs:label    "RAM Type"@en ;
        rdfs:range    xsd:string .

:cpu_max_frecuency  a  rdf:Property ;
        rdfs:comment  "Max turbo frequency is the maximum single core frequency at which the processor is capable of operating using Intel® Turbo Boost Technology. Frequency is measured in gigahertz (GHz), or billion cycles per second."@en ;
        rdfs:domain   :cpu ;
        rdfs:label    "CPU Max Frecuency"@en ;
        rdfs:range    xsd:decimal .

:cpu_model  a         rdf:Property ;
        rdfs:comment  "Model of CPU. For example: 8th Generation Intel® Core™ i5 Processors"@en ;
        rdfs:domain   :cpu ;
        rdfs:label    "CPU Model"@en ;
        rdfs:range    xsd:string .

:hasCPU  a                rdf:Property ;
        rdfs:comment      "Specifies that the instance is provided with CPU"@en ;
        rdfs:domain       :Instance ;
        rdfs:isDefinedBy  <http://cookingbigdata.com/linkeddata/ccinstances> ;
        rdfs:label        "Has CPU"@en ;
        rdfs:range        :cpu .

:gpu    a                 rdfs:Class , owl:Class ;
        rdfs:comment      "GPU"@en ;
        rdfs:isDefinedBy  <http://cookingbigdata.com/linkeddata/ccinstances> ;
        rdfs:label        "GPU"@en ;
        rdfs:subClassOf   :cpu .

:type   a             rdf:Property ;
        rdfs:comment  "Name that groups together instances of the same or similar type under a common name; for example: Basic Group"@en ;
        rdfs:domain   :Instance ;
        rdfs:label    "Type Code"@en ;
        rdfs:range    xsd:string .

:Instance  a              rdfs:Class , owl:Class ;
        rdfs:comment      "Instance"@en ;
        rdfs:isDefinedBy  <http://cookingbigdata.com/linkeddata/ccinstances> ;
        rdfs:label        "Instance"@en .

:storage_size  a      rdf:Property ;
        rdfs:comment  "Storage size. For example: 500 GB"@en ;
        rdfs:domain   :storage ;
        rdfs:label    "Storage size"@en ;
        rdfs:range    xsd:decimal .

:ram_frecuency  a     rdf:Property ;
        rdfs:comment  "RAM frecuency in MHz. For example: 2300 MHz"@en ;
        rdfs:domain   :ram ;
        rdfs:label    "RAM frecuency"@en ;
        rdfs:range    xsd:integer .

:cpu_code  a          rdf:Property ;
        rdfs:comment  "Processor Number. For example: i5-8600T"@en ;
        rdfs:domain   :cpu ;
        rdfs:label    "CPU ID"@en ;
        rdfs:range    xsd:string .

:cpu_cache  a         rdf:Property ;
        rdfs:comment  "CPU Cache is an area of fast memory located on the processor. It refers to the architecture that allows all cores to dynamically share access to the last level cache."@en ;
        rdfs:domain   :cpu ;
        rdfs:label    "CPU Cache"@en ;
        rdfs:range    xsd:integer .

:hasNetwork  a            rdf:Property ;
        rdfs:comment      "Specifies that the instance is provided with network"@en ;
        rdfs:domain       :Instance ;
        rdfs:isDefinedBy  <http://cookingbigdata.com/linkeddata/ccinstances> ;
        rdfs:label        "Has network"@en ;
        rdfs:range        :network .

:cookingbigdata  a     foaf:Organization ;
        rdfs:seeAlso   <http://cookingbigdata.com/about> ;
        foaf:homepage  <http://cookingbigdata.com> ;
        foaf:name      "CookingBigData" .

:storage_bandwidth  a  rdf:Property ;
        rdfs:comment  "Storage bandwidth in MB/s"@en ;
        rdfs:domain   :storage ;
        rdfs:label    "Storage Bandwidth"@en ;
        rdfs:range    xsd:integer .

:cpu_spped  a         rdf:Property ;
        rdfs:comment  "A bus is a subsystem that transfers data between computer components or between computers. Types include (FSB) (DMI) (Intel I/O) (QPI)"@en ;
        rdfs:domain   :cpu ;
        rdfs:label    "CPU bus speed"@en ;
        rdfs:range    xsd:integer .

:cpu_frecuency  a     rdf:Property ;
        rdfs:comment  "Processor Base Frequency describes the rate at which the processor's transistors open and close. The processor base frequency is the operating point where TDP is defined. Frequency is measured in gigahertz (GHz), or billion cycles per second."@en ;
        rdfs:domain   :cpu ;
        rdfs:label    "CPU Frecuency"@en ;
        rdfs:range    xsd:decimal .

:ram    a                 rdfs:Class , owl:Class ;
        rdfs:comment      "RAM"@en ;
        rdfs:isDefinedBy  <http://cookingbigdata.com/linkeddata/ccinstances> ;
        rdfs:label        "RAM"@en .

:cpu_consumition  a   rdf:Property ;
        rdfs:comment  "CPU Thermal Design Power (TDP) represents the average power, in watts, the processor dissipates when operating at Base Frequency with all cores active under an Intel-defined, high-complexity workload"@en ;
        rdfs:domain   :cpu ;
        rdfs:label    "CPU TDP"@en ;
        rdfs:range    xsd:decimal .

:cpu_threads  a       rdf:Property ;
        rdfs:comment  "CPU threads"@en ;
        rdfs:domain   :cpu ;
        rdfs:label    "CPU threads"@en ;
        rdfs:range    xsd:integer .

:network  a               rdfs:Class , owl:Class ;
        rdfs:comment      "Network"@en ;
        rdfs:isDefinedBy  <http://cookingbigdata.com/linkeddata/ccinstances> ;
        rdfs:label        "Network"@en .

:cpu_cores  a         rdf:Property ;
        rdfs:comment  "Numer of physical cores. For example: 6"@en ;
        rdfs:domain   :cpu ;
        rdfs:label    "CPU cores"@en ;
        rdfs:range    xsd:integer .
