@prefix : <https://paitools.github.io/DBCOntology/DBC.owl#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@base <https://paitools.github.io/DBCOntology/DBC.owl#> .

<https://paitools.github.io/DBCOntology/DBC.owl> rdf:type owl:Ontology ;
                                                  owl:imports <http://qudt.org/3.0.0/schema/qudt> ,
                                                              <http://www.w3.org/ns/sosa/> ,
                                                              <http://www.w3.org/ns/ssn/> ;
                                                  <http://purl.org/dc/terms/bibliographicCitation> "Pavle Ivanovic, Maria Maleshkova (2025): DBC – CAN Database Ontology. https://doi.org/10.5281/zenodo.17671851" ;
                                                  <http://purl.org/dc/terms/created> "2025-06-16"^^xsd:date ;
                                                  <http://purl.org/dc/terms/creator> _:genid1 ,
                                                                                     _:genid2 ;
                                                  <http://purl.org/dc/terms/license> <https://creativecommons.org/licenses/by/4.0/> ;
                                                  <http://purl.org/dc/terms/title> "DBC – CAN Database Ontology" ;
                                                  <http://purl.org/ontology/bibo/doi> "10.5281/zenodo.17671851" ;
                                                  rdfs:comment "The DBC Ontology provides a semantic model for representing CAN bus messaging, encoding, and observations. It extends the W3C SSN/SOSA ontology to capture CAN database (DBC)-specific concepts such as messages, signals, logs, and ECUs. Designed for the transportation domain, the ontology supports advanced analytics, condition monitoring, predictive maintenance, and real-time diagnostics."@en ;
                                                  <http://xmlns.com/foaf/0.1/fundedBy> <http://example.org/individuals#DTEC> .

_:genid1 rdf:type <http://xmlns.com/foaf/0.1/Person> ;
          <http://xmlns.com/foaf/0.1/homepage> <https://orcid.org/0000-0001-7757-094X> ;
          <http://xmlns.com/foaf/0.1/mbox> <mailto:ivanovip@hsu-hh.de> ;
          <http://xmlns.com/foaf/0.1/name> "Pavle Ivanovic" .

_:genid2 rdf:type <http://xmlns.com/foaf/0.1/Person> ;
          <http://xmlns.com/foaf/0.1/homepage> <https://orcid.org/0000-0003-3458-4748> ;
          <http://xmlns.com/foaf/0.1/mbox> <mailto:maleshkm@hsu-hh.de> ;
          <http://xmlns.com/foaf/0.1/name> "Maria Maleshkova" .

#################################################################
#    Annotation properties
#################################################################

###  http://purl.org/dc/terms/bibliographicCitation
<http://purl.org/dc/terms/bibliographicCitation> rdf:type owl:AnnotationProperty .


###  http://purl.org/ontology/bibo/doi
<http://purl.org/ontology/bibo/doi> rdf:type owl:AnnotationProperty .


###  http://xmlns.com/foaf/0.1/fundedBy
<http://xmlns.com/foaf/0.1/fundedBy> rdf:type owl:AnnotationProperty .


###  http://xmlns.com/foaf/0.1/homepage
<http://xmlns.com/foaf/0.1/homepage> rdf:type owl:AnnotationProperty .


###  http://xmlns.com/foaf/0.1/mbox
<http://xmlns.com/foaf/0.1/mbox> rdf:type owl:AnnotationProperty .


#################################################################
#    Object Properties
#################################################################

###  http://qudt.org/schema/qudt/byteOrder
<http://qudt.org/schema/qudt/byteOrder> rdf:type owl:ObjectProperty ;
                                        rdfs:domain :SignalEncoding ;
                                        rdfs:range <http://qudt.org/schema/qudt/EndianType> .


###  http://qudt.org/schema/qudt/hasUnit
<http://qudt.org/schema/qudt/hasUnit> rdf:type owl:ObjectProperty ;
                                      rdfs:domain :Signal ;
                                      rdfs:label "has unit" .


###  http://www.w3.org/ns/sosa/hosts
<http://www.w3.org/ns/sosa/hosts> rdf:type owl:ObjectProperty ;
                                  rdfs:domain <http://www.w3.org/ns/sosa/Platform> ;
                                  rdfs:range <http://www.w3.org/ns/sosa/Sensor> ;
                                  rdfs:label "hosts" .


###  http://www.w3.org/ns/sosa/isHostedBy
<http://www.w3.org/ns/sosa/isHostedBy> rdf:type owl:ObjectProperty ;
                                       rdfs:domain <http://www.w3.org/ns/sosa/Sensor> ;
                                       rdfs:range <http://www.w3.org/ns/sosa/Platform> ;
                                       rdfs:label "is hosted by" .


###  http://www.w3.org/ns/sosa/isObservedBy
<http://www.w3.org/ns/sosa/isObservedBy> rdf:type owl:ObjectProperty ;
                                         rdfs:domain <http://www.w3.org/ns/sosa/ObservableProperty> ;
                                         rdfs:range <http://www.w3.org/ns/sosa/Sensor> ;
                                         rdfs:label "is observed by" .


###  http://www.w3.org/ns/sosa/madeBySensor
<http://www.w3.org/ns/sosa/madeBySensor> rdf:type owl:ObjectProperty ;
                                         rdfs:domain <http://www.w3.org/ns/sosa/Observation> ;
                                         rdfs:range <http://www.w3.org/ns/sosa/Sensor> ;
                                         rdfs:label "made by sensor" .


###  http://www.w3.org/ns/sosa/madeObservation
<http://www.w3.org/ns/sosa/madeObservation> rdf:type owl:ObjectProperty ;
                                            rdfs:domain <http://www.w3.org/ns/sosa/Sensor> ;
                                            rdfs:range <http://www.w3.org/ns/sosa/Observation> ;
                                            rdfs:label "made observation" .


###  http://www.w3.org/ns/sosa/observedProperty
<http://www.w3.org/ns/sosa/observedProperty> rdf:type owl:ObjectProperty ;
                                             rdfs:domain <http://www.w3.org/ns/sosa/Observation> ;
                                             rdfs:range <http://www.w3.org/ns/sosa/ObservableProperty> ;
                                             rdfs:label "observed property" .


###  http://www.w3.org/ns/sosa/observes
<http://www.w3.org/ns/sosa/observes> rdf:type owl:ObjectProperty ;
                                     rdfs:domain <http://www.w3.org/ns/sosa/Sensor> ;
                                     rdfs:range <http://www.w3.org/ns/sosa/ObservableProperty> ;
                                     rdfs:label "observes" .


###  https://paitools.github.io/DBCOntology/DBC.owl#decodedFrom
:decodedFrom rdf:type owl:ObjectProperty ;
             rdfs:domain :SignalLog ;
             rdfs:range :MessageLog ;
             rdfs:comment "Indicates that a SignalLog is derived by decoding a specific MessageLog observation." ;
             rdfs:label "decoded from" .


###  https://paitools.github.io/DBCOntology/DBC.owl#decodedVia
:decodedVia rdf:type owl:ObjectProperty ;
            rdfs:domain :Signal ;
            rdfs:range :SignalEncoding ;
            rdfs:comment "Links a CAN signal definition to the SignalEncoding that defines how its bit-level representation is decoded into a physical or logical value." ;
            rdfs:label "decoded via" .


###  https://paitools.github.io/DBCOntology/DBC.owl#encodedVia
:encodedVia rdf:type owl:ObjectProperty ;
            rdfs:domain :Message ;
            rdfs:range :SignalEncoding ;
            rdfs:comment "Links a CAN message definition to the SignalEncoding that specifies how its payload bytes are structured and interpreted." ;
            rdfs:label "encoded via" .


###  https://paitools.github.io/DBCOntology/DBC.owl#hasReceiver
:hasReceiver rdf:type owl:ObjectProperty ;
             rdfs:domain :Signal ;
             rdfs:range :Node ;
             rdfs:comment "Links a CAN signal definition to the node (ECU) that consumes or interprets this signal." ;
             rdfs:label "has receiver" .


###  https://paitools.github.io/DBCOntology/DBC.owl#hasSignal
:hasSignal rdf:type owl:ObjectProperty ;
           rdfs:domain :Message ;
           rdfs:range :Signal ;
           rdfs:comment "Indicates that a CAN message contains a particular signal within its payload structure." ;
           rdfs:label "has signal" .


###  https://paitools.github.io/DBCOntology/DBC.owl#hasTransmitter
:hasTransmitter rdf:type owl:ObjectProperty ;
                rdfs:domain :Message ;
                rdfs:range :Node ;
                rdfs:comment "Links a CAN message definition to the node (ECU) responsible for transmitting it on the bus." ;
                rdfs:label "has transmitter" .


###  https://paitools.github.io/DBCOntology/DBC.owl#isPartOf
:isPartOf rdf:type owl:ObjectProperty ;
          rdfs:domain :Signal ;
          rdfs:range :Message ;
          rdfs:comment "Indicates that a signal is a structural component of a particular CAN message definition." ;
          rdfs:label "is part of" .


###  https://paitools.github.io/DBCOntology/DBC.owl#observedOn
:observedOn rdf:type owl:ObjectProperty ;
            rdfs:domain :MessageLog ;
            rdfs:range <http://www.w3.org/ns/sosa/Platform> ;
            rdfs:comment "Links a MessageLog observation to the CAN bus (modeled as a sosa:Platform) on which the message was observed." ;
            rdfs:label "observed on" .


#################################################################
#    Data properties
#################################################################

###  http://qudt.org/schema/qudt/byteOrder
<http://qudt.org/schema/qudt/byteOrder> rdf:type owl:DatatypeProperty .


###  http://qudt.org/schema/qudt/conversionMultiplier
<http://qudt.org/schema/qudt/conversionMultiplier> rdf:type owl:DatatypeProperty ;
                                                   rdfs:label "conversion multiplier" .


###  http://qudt.org/schema/qudt/conversionOffset
<http://qudt.org/schema/qudt/conversionOffset> rdf:type owl:DatatypeProperty ;
                                               rdfs:label "conversion offset" .


###  http://qudt.org/schema/qudt/maxInclusive
<http://qudt.org/schema/qudt/maxInclusive> rdf:type owl:DatatypeProperty ;
                                           rdfs:label "max inclusive" .


###  http://qudt.org/schema/qudt/minInclusive
<http://qudt.org/schema/qudt/minInclusive> rdf:type owl:DatatypeProperty ;
                                           rdfs:label "min inclusive" .


###  http://www.w3.org/ns/sosa/hasSimpleResult
<http://www.w3.org/ns/sosa/hasSimpleResult> rdf:type owl:DatatypeProperty ;
                                            rdfs:domain <http://www.w3.org/ns/sosa/Observation> ;
                                            rdfs:label "has simple result" .


###  http://www.w3.org/ns/sosa/resultTime
<http://www.w3.org/ns/sosa/resultTime> rdf:type owl:DatatypeProperty ;
                                       rdfs:domain <http://www.w3.org/ns/sosa/Observation> ;
                                       rdfs:range xsd:dateTime ;
                                       rdfs:label "result time" .


###  https://paitools.github.io/DBCOntology/DBC.owl#bitLength
:bitLength rdf:type owl:DatatypeProperty ;
           rdfs:domain :SignalEncoding ;
           rdfs:range xsd:integer ;
           rdfs:comment "Specifies the size of the signal in bits within the CAN message payload." ;
           rdfs:label "bit length" .


###  https://paitools.github.io/DBCOntology/DBC.owl#bitStart
:bitStart rdf:type owl:DatatypeProperty ;
          rdfs:domain :SignalEncoding ;
          rdfs:range xsd:integer ;
          rdfs:comment "Specifies the starting bit position of the signal within the raw CAN message payload." ;
          rdfs:label "bit start" .


###  https://paitools.github.io/DBCOntology/DBC.owl#dataLength
:dataLength rdf:type owl:DatatypeProperty ;
            rdfs:domain :Message ;
            rdfs:range xsd:integer ;
            rdfs:comment "Specifies the payload length of the CAN message in bytes." ;
            rdfs:label "data length" .


###  https://paitools.github.io/DBCOntology/DBC.owl#hasDecID
:hasDecID rdf:type owl:DatatypeProperty ;
          rdfs:domain :Message ;
          rdfs:range xsd:integer ;
          rdfs:comment "Assigns the CAN identifier of the message in decimal notation." ;
          rdfs:label "decimal ID" .


###  https://paitools.github.io/DBCOntology/DBC.owl#hasHexID
:hasHexID rdf:type owl:DatatypeProperty ;
          rdfs:domain :MessageLog ;
          rdfs:range xsd:string ;
          rdfs:comment "Stores the CAN identifier of a logged message in hexadecimal notation, as extracted from the CAN frame." ;
          rdfs:label "hexadecimal ID" .


###  https://paitools.github.io/DBCOntology/DBC.owl#signed
:signed rdf:type owl:DatatypeProperty ;
        rdfs:domain :SignalEncoding ;
        rdfs:range xsd:boolean ;
        rdfs:comment "Indicates whether the encoded signal uses signed numerical representation (true) or unsigned (false)." ;
        rdfs:label "signed" .


#################################################################
#    Classes
#################################################################

###  http://qudt.org/schema/qudt/EndianType
<http://qudt.org/schema/qudt/EndianType> rdf:type owl:Class ;
                                         rdfs:label "Endian Type" .


###  http://www.w3.org/ns/sosa/ObservableProperty
<http://www.w3.org/ns/sosa/ObservableProperty> rdf:type owl:Class ;
                                               rdfs:subClassOf <http://www.w3.org/ns/ssn/Property> ;
                                               rdfs:label "ObservableProperty" .


###  http://www.w3.org/ns/sosa/Observation
<http://www.w3.org/ns/sosa/Observation> rdf:type owl:Class ;
                                        rdfs:label "Observation" .


###  http://www.w3.org/ns/sosa/Platform
<http://www.w3.org/ns/sosa/Platform> rdf:type owl:Class ;
                                     rdfs:label "Platform" .


###  http://www.w3.org/ns/sosa/Sensor
<http://www.w3.org/ns/sosa/Sensor> rdf:type owl:Class ;
                                   rdfs:subClassOf <http://www.w3.org/ns/ssn/System> ;
                                   rdfs:label "Sensor" .


###  http://xmlns.com/foaf/0.1/Person
<http://xmlns.com/foaf/0.1/Person> rdf:type owl:Class .


###  https://paitools.github.io/DBCOntology/DBC.owl#Message
:Message rdf:type owl:Class ;
         rdfs:subClassOf <http://www.w3.org/ns/sosa/ObservableProperty> ;
         owl:disjointWith :Signal ;
         rdfs:comment "Represents a CAN message definition, including its structure and the set of signals it contains." ;
         rdfs:label "Message" .


###  https://paitools.github.io/DBCOntology/DBC.owl#MessageLog
:MessageLog rdf:type owl:Class ;
            rdfs:subClassOf <http://www.w3.org/ns/sosa/Observation> ;
            owl:disjointWith :SignalLog ;
            rdfs:comment "Represents an observation of a CAN message in raw, encoded form as captured from the bus, including timestamp, identifier, and payload bytes." ;
            rdfs:label "Message Log" .


###  https://paitools.github.io/DBCOntology/DBC.owl#Node
:Node rdf:type owl:Class ;
      rdfs:comment "Represents an ECU or logical node on the CAN network that transmits or receives messages or signals." ;
      rdfs:label "Node" .


###  https://paitools.github.io/DBCOntology/DBC.owl#Signal
:Signal rdf:type owl:Class ;
        rdfs:subClassOf <http://www.w3.org/ns/sosa/ObservableProperty> ;
        rdfs:comment "Represents a decoded physical or logical quantity encoded inside a CAN message. Each signal corresponds to an observable property that can be measured and interpreted." ;
        rdfs:label "Signal" .


###  https://paitools.github.io/DBCOntology/DBC.owl#SignalEncoding
:SignalEncoding rdf:type owl:Class ;
                rdfs:comment "Describes the metadata required to interpret and decode a CAN signal, including bit position, length, signedness, byte order, and scaling parameters." ;
                rdfs:label "Signal Encoding" .


###  https://paitools.github.io/DBCOntology/DBC.owl#SignalLog
:SignalLog rdf:type owl:Class ;
           rdfs:subClassOf <http://www.w3.org/ns/sosa/Observation> ;
           rdfs:comment "Represents a decoded observation of a specific CAN signal, derived from a raw MessageLog entry and expressing a physical value with units." ;
           rdfs:label "Signal Log" .


#################################################################
#    Annotations
#################################################################

<http://qudt.org/schema/qudt/byteOrder> rdfs:label "byte order" .


###  Generated by the OWL API (version 5.1.18) https://github.com/owlcs/owlapi/
