vocabulary <http://ontology.rys.one/project/vocabulary/car#> as car {
	extends <http://www.w3.org/2001/XMLSchema#> as xsd
    //extends <http://purl.org/dc/elements/1.1/> as dc
    extends <http://www.w3.org/2000/01/rdf-schema#> as rdfs
    
    @rdfs:comment "The class of vehicles that are uniquely identified by a vehicle identification number."
    aspect Vehicle [
    	key hasVin
    ]
    aspect VPart []
    concept Car :> Vehicle []
    concept Model []
    concept Wheel :> VPart []
    concept Tire :> VPart []
	
    scalar property hasVin [
    	domain Vehicle
    	range xsd:string
    	functional
    ]
    
    scalar property hasModelName [
    	domain Model
    	range xsd:string
    ]
    
    //scalar property hasManufacturer [
    //	domain Vehicle
    //	range xsd:string
    //]
    
    scalar property hasMass [
    	domain Wheel
    	range xsd:decimal
    ]
	
	enumerated scalar TireType [
        "Winter",
        "Summer",
        "All-Season"
    ]
	
	scalar property hasTireType [
	    domain Tire
		range TireType
		functional
	]
	
	concept WinterTire :> Tire [
	    restricts scalar property hasTireType to "Winter"
	]
	    
    relation entity HasModel [
    	from Car
    	to Model
    	forward hasModel
    	reverse isModelOfCar
    ]

    relation entity HasWheel [
    	from Car
    	to Wheel
    	forward hasWheel
    	reverse isWheelOnCar
    ]
	
	relation entity HasTire [
    	from Wheel
    	to Tire
    	forward hasTire
    	reverse isTireOnWheel
    ]
}
