@prefix odb: <http://example.com/ontology/odb#> .
@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#> .
@prefix geo: <http://www.opengis.net/ont/geosparql#> .
@base <http://www.w3.org/2002/07/owl#> .

<http://example.com/ontology/odb> a owl:Ontology .

#################################################################
#    Object Properties
#################################################################

###  http://example.com/ontology/odb#analysedVehicle
odb:analysedVehicle rdf:type owl:ObjectProperty ;
                    rdfs:domain odb:Vehicle ;
                    rdfs:range odb:Diagnostic ;
                    rdfs:comment "Specifies that the vehicle has been analyzed, to identify a potential problem."@en ,
                                 "Spécifie que le véhicule à été analysé, pour identifier un potentiel problème."@fr ;
                    rdfs:label "Véhicule analysé"@fr ,
                               "analysedVehicule"@en .


###  http://example.com/ontology/odb#hasComponent
odb:hasComponent rdf:type owl:ObjectProperty ;
                 rdfs:domain odb:ErrorCode ;
                 rdfs:range odb:Component ;
                 rdfs:comment "Specifies the components impacted by an error code."@en ,
                              "Spécifie le composant impacté par un code erreur."@fr ,
                              "a un composant"@fr ;
                 rdfs:label "has component"@en .


###  http://example.com/ontology/odb#parentComponent
odb:parentComponent rdf:type owl:ObjectProperty ;
                 rdfs:domain odb:Component ;
                 rdfs:range odb:Component ;
                 rdfs:comment "Specifies the component's parent (or broader item)."@en ,
                              "Spécifie le composant parent du composant (ou générique)."@fr ,
                              "a pour composant générique"@fr ;
                 rdfs:label "has broader component"@en .


###  http://example.com/ontology/odb#hasErrorCode
odb:hasErrorCode rdf:type owl:ObjectProperty ;
                 rdfs:domain odb:Error ;
                 rdfs:range odb:ErrorCode ;
                 rdfs:comment "Specifie the error code relating to an error reported during a diagnostic."@en ,
                              "Spécifie le code erreur relatif à une erreur remontée lors d'un diagnostique."@fr ;
                 rdfs:label "a un code erreur"@fr ,
                            "has error code"@en .


###  http://example.com/ontology/odb#hasManufacturer
odb:hasManufacturer rdf:type owl:ObjectProperty ;
                    rdfs:domain odb:Vehicle ;
                    rdfs:range odb:Manufacturer ;
                    rdfs:comment "Specifies the manufacturer of the vehicle."@en ,
                                 "Spécifie le constructeur d'un véhicule"@fr ,
                                 "a un constructeur"@fr ;
                    rdfs:label "has manufacturer"@en .


###  http://example.com/ontology/odb#hasSymptom
odb:hasSymptom rdf:type owl:ObjectProperty ;
               rdfs:domain odb:ErrorCode ;
               rdfs:range odb:Symptom ;
               rdfs:comment "Specifies the symptoms associated with an error code."@en ;
               rdfs:label "Spécifie le symptôme associé à un code erreur."@fr ,
                          "a un symptôme"@fr ,
                          "has symptom"@en .


###  http://example.com/ontology/odb#hasResults
odb:hasResults rdf:type owl:ObjectProperty ;
                rdfs:domain odb:Diagnostic ;
                rdfs:range odb:Error ;
                rdfs:comment "Specifies the results, from the analysis."@en ,
                             "Spécifie les résultats, issus de l'analyse."@fr ;
                rdfs:label "a des résultats"@fr ,
                           "has results"@en .


#################################################################
#    Data properties
#################################################################

###  http://example.com/ontology/manufacturer#hasName
odb:name rdf:type owl:DatatypeProperty ;
                     rdfs:domain odb:Manufacturer ;
                     rdfs:range xsd:string ;
                     rdfs:comment "Specifies the name of the manufacturer."@en ,
                                  "Spécifie le nom du constructeur"@fr ;
                     rdfs:label "a un nom"@fr ,
                                "has name"@en .


###  http://example.com/ontology/odb#alreadyRaised
odb:alreadyRaised rdf:type owl:DatatypeProperty ;
                  rdfs:domain odb:Error ;
                  rdfs:range xsd:boolean ;
                  rdfs:comment "Attribut permettant de savoir si une erreur à déjà été relevée précédemment."@fr ,
                               "Attribute indicating whether an error has already been detected previously."@en ;
                  rdfs:label "Déjà relevé"@fr ,
                             "alreadyRaised"@en .


###  http://example.com/ontology/odb#componentCode
odb:componentCode rdf:type owl:DatatypeProperty ;
                     rdfs:domain odb:Component ;
                     rdfs:range xsd:string ;
                     rdfs:comment "Specifies the unique code of the component."@en ,
                                  "Spécifie le code unique relatif à un composant."@fr ;
                     rdfs:label "a un code composant"@fr ,
                                "has component code"@en .


###  http://example.com/ontology/odb#componentCode
odb:errorCode rdf:type owl:DatatypeProperty ;
                     rdfs:domain odb:ErrorCode ;
                     rdfs:range xsd:string ;
                     rdfs:comment "Contains the error code as a character string."@en ,
                                  "Contient le code d'erreur, comme une chaine de caractères."@fr ;
                     rdfs:label "code d'erreur"@fr ,
                                "error code"@en .



###  http://example.com/ontology/odb#VIN
odb:VIN rdf:type owl:DatatypeProperty ;
           rdfs:domain odb:Vehicle ;
           rdfs:range xsd:string ;
           rdfs:comment "Specifies the Vehicle Identification Number (VIN) of the vehicle."@en ,
                        "Spécifie le numéro d'identification du véhicule (VIN)"@fr ;
           rdfs:label "a un code VIN"@fr ,
                      "has VIN"@en .


###  http://example.com/ontology/odb#componentCode
odb:weightInKg rdf:type owl:DatatypeProperty ;
                     rdfs:domain odb:Vehicke ;
                     rdfs:range xsd:integer ;
                     rdfs:comment "Weight of a vehicle in kilogram"@en ,
                                  "Poids d'un véhicule en kg"@fr ;
                     rdfs:label "poids en kg"@fr ,
                                "wight in kg"@en .

###  http://example.com/ontology/odb#diagnosticDate
odb:diagnosticDate rdf:type owl:DatatypeProperty ;
                 rdfs:domain odb:Diagnostic ;
                 rdfs:range xsd:dateTime ;
                 rdfs:comment "Defines the date on which the diagnosis occurs."@en ,
                              "Défini la date à laquelle le diagnostique à eu lieu."@fr ;
                 rdfs:label "a une date de diagnostique"@fr ,
                            "has DiagDate"@en .


###  http://example.com/ontology/odb#diagnosticPlace
odb:diagnosticPlace rdf:type owl:DatatypeProperty ;
                 rdfs:domain odb:Diagnostic ;
                 rdfs:range geo:wktLiteral ;
                 rdfs:comment "Defines the place where the diagnosis occurs."@en ,
                              "Définit le lieu où le diagnostic a été effectué."@fr ;
                 rdfs:label "a pour lieu de diagnostic"@fr ,
                            "has DiagPlace"@en .



#################################################################
#    Classes
#################################################################

###  http://example.com/ontology/odb#Component
odb:Component rdf:type owl:Class ;
              rdfs:comment "A class representing a component of a vehicle."@en ,
                           "Une classe représentant un composant d'un véhicule"@fr ;
              rdfs:label "Component"@en ,
                         "Composant"@fr .


###  http://example.com/ontology/odb#Diagnostic
odb:Diagnostic rdf:type owl:Class ;
               rdfs:comment "A diagnosis identifies a possible problem on your vehicle. You can request a diagnosis when you suspect a breakdown or malfunction. Using an auto diagnostic kit, the mechanic identifies the problem with your vehicle."@en ,
                            "Un diagnostique permet d'identifier un éventuel problème sur votre véhicule. Vous pouvez demander un diagnostic quand vous suspectez une panne ou un dysfonctionnement. A l'aide d'une valise de diagnostic auto, le mécanicien identifie le problème subi par votre véhicule."@fr ;
               rdfs:label "Diagnostic"@en ,
                          "Diagnostique"@fr .


###  http://example.com/ontology/odb#Error
odb:Error rdf:type owl:Class ;
          rdfs:comment "An error is an element that comes up during a diagnosis, which indicates that the vehicle on which the analysis was carried out is encountering a problem."@en ,
                       "Une erreur est un élément qui remonte lors d'un diagnostique, qui indique que le véhicule sur lequel on as fait l'analyse rencontre un problème."@fr ;
          rdfs:label "Erreur"@fr ,
                     "Error"@en .


###  http://example.com/ontology/odb#ErrorCode
odb:ErrorCode rdf:type owl:Class ;
              rdfs:comment "An error code is a set of numbers following a letter corresponding to a problem detected on your vehicle. The letter gives an indication of the family of the defect."@en ,
                           "Un code erreur, est un ensemble de chiffres suivant une lettre correspondant à un problème détecté sur votre véhicule. La lettre donne une indication la famille du défaut."@fr ;
              rdfs:label "Code erreur"@fr ,
                         "Error Code"@en .


###  http://example.com/ontology/odb#Manufacturer
odb:Manufacturer rdf:type owl:Class ;
                 rdfs:comment "A car manufacturer is a company whose main activity is the design, construction and marketing of cars."@en ,
                              "Un constructeur automobile est une entreprise qui a pour activité principale la conception, la construction et la commercialisation de voitures."@fr ;
                 rdfs:label "Constructeur"@fr ,
                            "Manufacturer"@en .


###  http://example.com/ontology/odb#Symptom
odb:Symptom rdf:type owl:Class ;
            rdfs:comment "a symptom is a phenomenon, perceptible or observable character linked to a state, a problem that it allows to detect, of which it is the sign."@en ,
                         "un symptome est un Phénomène, caractère perceptible ou observable lié à un état, un problème qu'il permet de déceler, dont il est le signe."@fr ;
            rdfs:label "Symptom"@en ,
                       "Symptôme"@fr .


###  http://example.com/ontology/odb#Vehicle
odb:Vehicle rdf:type owl:Class ;
            rdfs:comment "A vehicule is a car model for a specific brand."@en ,
                         "Un véhicule est un modèle de voiture pour une marque spécifique."@fr ;
            rdfs:label "Vehicle"@en ,
                       "Véhicule"@fr .