
@prefix bdo: <https://paul.ti.rw.fau.de/~jo00defe/ble/bdo#> .
@prefix dct: <http://purl.org/dc/terms/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> 
.@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sbo: <https://paul.ti.rw.fau.de/~jo00defe/ble/sbo#> .
@prefix vann: <http://purl.org/vocab/vann/> .
@prefix voaf: <http://purl.org/vocommons/voaf#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<https://paul.ti.rw.fau.de/~jo00defe/ble/sbo#> dct:created "2022-09-15"^^xsd:date ;
dct:creator "Michael Freund" ;
dct:title "Simple Bluetooth Ontology"@en ;
vann:preferredNamespacePrefix "sbo" ;
vann:preferredNamespaceUri "https://paul.ti.rw.fau.de/~jo00defe/ble/sbo#" ;
rdf:type voaf:Vocabulary ,
owl:Ontology ;
rdfs:comment "This ontology aims to describe a Bluetooth Low Energy device." ;
owl:versionInfo "0.21" .

sbo:BluetoothLEDevice rdf:type rdfs:Class ;
rdfs:comment "A device that is able to communicate via Bluetooth Low Energy and implements GATT." ;
rdfs:label "BluetoothLEDevice" .

sbo:Broadcaster rdf:type rdfs:Class ;
rdfs:comment "A device in the GAP role broadcaster." ;
rdfs:label "Broadcaster" ;
rdfs:subClassOf sbo:GAPRole .

sbo:Central rdf:type rdfs:Class ;
rdfs:comment "A device in the GAP role central." ;
rdfs:label "Central" ;
rdfs:subClassOf sbo:GAPRole .

sbo:Characteristic rdf:type rdfs:Class ;
rdfs:comment "A characteristic provided by GATT." ;
rdfs:label "Characteristic" .

sbo:dataFormat rdf:type rdf:Property ;
rdfs:comment "Indicates the data format of the characteristic."@en ;
rdfs:domain sbo:Characteristic ;
rdfs:label "hasBinaryData" ;
rdfs:range bdo:BinaryData .

sbo:Descriptor rdf:type rdfs:Class ;
rdfs:comment "A descriptor provided by GATT that provides additional information about a characteristic." ;
rdfs:label "Descriptor" .

sbo:GAPRole rdf:type rdfs:Class ;
rdfs:comment "A role provided by GAP." ;
rdfs:label "GAPRole" .

sbo:GATTRole rdf:type rdfs:Class ;
rdfs:comment "The of the devivce in the GATT context." ;
rdfs:label "GATTRole" .

sbo:GATTMethod rdf:type rdfs:Class ;
rdfs:comment "A method provided by GATT" ;
rdfs:label "GATTMethod" .

sbo:hasAdvertisingInterval rdf:type rdf:Property ;
rdfs:comment "Indicates the advertising interval of a device."@en ;
rdfs:domain sbo:Peripheral ;
rdfs:label "hasAdvertisingInterval" ;
rdfs:range xsd:float .

sbo:hasCharacteristic rdf:type rdf:Property ;
rdfs:comment "Indicates if a device has a characteristic."@en ;
rdfs:domain sbo:Service ;
rdfs:label "hasCharacteristic" ;
rdfs:range sbo:Characteristic .

sbo:hasDescriptor rdf:type rdf:Property ;
rdfs:comment "Indicates if a device has a descriptor."@en ;
rdfs:domain sbo:Characteristic ;
rdfs:label "hasDescriptor" ;
rdfs:range sbo:Descriptor .

sbo:hasGAPRole rdf:type rdf:Property ;
rdfs:comment "Indicates GAP role of device."@en ;
rdfs:domain sbo:BluetoothLEDevice ;
rdfs:label "hasGAPRole" ;
rdfs:range sbo:GAPRole .

sbo:hasGATTRole rdf:type rdf:Property ;
rdfs:comment "Indicates GATT role of device."@en ;
rdfs:domain sbo:BluetoothLEDevice ;
rdfs:label "hasGATTRole" ;
rdfs:range sbo:GATTRole .

sbo:hasScanInterval rdf:type rdf:Property ;
rdfs:comment "Indicates the scanInterval of a device."@en ;
rdfs:domain sbo:Central ;
rdfs:label "hasScanInterval" ;
rdfs:range xsd:float .

sbo:hasScanWindow rdf:type rdf:Property ;
rdfs:comment "Indicates the scanWindow of a device."@en ;
rdfs:domain sbo:Central ;
rdfs:label "hasScanWindow" ;
rdfs:range xsd:float .

sbo:hasService rdf:type rdf:Property ;
rdfs:comment "Indicates if a device has a service."@en ;
rdfs:domain sbo:BluetoothLEDevice ;
rdfs:label "hasService" ;
rdfs:range sbo:Service .

sbo:hasUUID rdf:type rdf:Property ;
rdfs:comment "Indicates the universally unique identifier (UUID) of the service, the characteristic or the descriptor."@en ;
rdfs:domain [
rdf:type owl:Class ;
owl:unionOf ( sbo:Service sbo:Characteristic sbo:Descriptor )
] ;
rdfs:label "hasUUID" ;
rdfs:range sbo:UUID .

sbo:isConnectable rdf:type rdf:Property ;
rdfs:comment "Indicates if a device is connectable."@en ;
rdfs:domain sbo:BluetoothLEDevice ;
rdfs:label "isConnectable" ;
rdfs:range xsd:boolean .

sbo:methodName rdf:type rdf:Property ;
rdfs:comment "The name of the method to be executed." ;
rdfs:domain sbo:Characteristic ;
rdfs:label "methodName" ;
rdfs:range sbo:GATTMethod .

sbo:notify rdf:type sbo:GATTMethod ;
rdfs:comment "A notify operation that can be executed on a characteristic and enables asynchronous event notifications." ;
rdfs:label "notify" .

sbo:Observer rdf:type rdfs:Class ;
rdfs:comment "A device in the GAP role observer." ;
rdfs:label "Observer" ;
rdfs:subClassOf sbo:GAPRole .

sbo:Peripheral rdf:type rdfs:Class ;
rdfs:comment "A device in the GAP role peripheral." ;
rdfs:label "Peripheral" ;
rdfs:subClassOf sbo:GAPRole .

sbo:Server rdf:type rdfs:Class ;
rdfs:comment "A device in the GATT role server." ;
rdfs:label "Server" ;
rdfs:subClassOf sbo:GATTRole .

sbo:Client rdf:type rdfs:Class ;
rdfs:comment "A device in the GATT role client." ;
rdfs:label "Client" ;
rdfs:subClassOf sbo:GATTRole .

sbo:read rdf:type sbo:GATTMethod ;
rdfs:comment "A read operation that can be executed on a characteristic." ;
rdfs:label "read" .

sbo:Service rdf:type rdfs:Class ;
rdfs:comment "A service provided by GATT." ;
rdfs:label "Service" .

sbo:UUID rdf:type rdfs:Class ;
rdfs:comment "The universally unique identifier (UUID) of the service, the characteristic or the descriptor." ;
rdfs:label "UUID" .

sbo:write rdf:type sbo:GATTMethod ;
rdfs:comment "A write operation that can be executed on a characteristic; expects a confirmation response." ;
rdfs:label "write" .

<https://freumi.inrupt.net/SimpleBluetoothOntology.ttl#write-without-response> rdf:type sbo:GATTMethod ;
rdfs:comment "A write operation that can be executed on a characteristic; expects no confirmation response." ;
rdfs:label "write-without-response" .
