Comment("---- Entità / Concetti")

SubClassOf(PartEngine Part)

Comment("----- Relazioni / Ruoli")

ObjectPropertyDomain(Object Intervention)
ObjectPropertyRange(Object Airplane)
ObjectPropertyDomain(Need Intervention)
ObjectPropertyRange(Need Part)
ObjectPropertyDomain(Played Intervention)
ObjectPropertyRange(Played City)
ObjectPropertyDomain(Builder Airplane)
ObjectPropertyRange(Builder Company)
ObjectPropertyDomain(Housing Company)
ObjectPropertyRange(Housing City)
ObjectPropertyDomain(Builds Part)
ObjectPropertyRange(Builds Company)

Comment("----- Cardinalità Minima Ruoli")

SubClassOf(Airplane ObjectMinCardinality(1 Builder))

SubClassOf(Intervention ObjectMinCardinality(1 Object))
SubClassOf(Intervention ObjectMinCardinality(1 Played))

SubClassOf(Company ObjectMinCardinality(1 Housing))

SubClassOf(Part ObjectMinCardinality(1 Builds))

Comment("----- Cardinalità Massima Ruoli")

FunctionalObjectProperty(Builder)
FunctionalObjectProperty(Object)
FunctionalObjectProperty(Played)
FunctionalObjectProperty(Housing)
FunctionalObjectProperty(Builds)

Comment("----- Attributi di Concetto")

DataPropertyRange(numberAirplane rdf:string)
DataPropertyRange(model rdf:string)

DataPropertyRange(data rdf:date)
DataPropertyRange(costInt rdf:float)

DataPropertyRange(cf rdf:string)
DataPropertyRange(employees rdf:string)

DataPropertyRange(codPart rdf:string)
DataPropertyRange(costPart rdf:float)

DataPropertyRange(name rdf:string)
DataPropertyRange(state rdf:string)
DataPropertyRange(inhabitants rdf:integer)

DataPropertyRange(reliability rdf:string)
DataPropertyRange(discount rdf:float)

Comment("----- Dominio Attributi di Concetto")

DataPropertyDomain(numberAirplane Airplane)

DataPropertyDomain(model Airplane)

DataPropertyDomain(data Intervention)
DataPropertyDomain(costInt Intervention)

DataPropertyDomain(cf Company)
DataPropertyDomain(employees Company)

DataPropertyDomain(codPart Part)
DataPropertyDomain(costPart Part)

DataPropertyDomain(name City)
DataPropertyDomain(state City)
DataPropertyDomain(inhabitants City)

DataPropertyDomain(reliability PartEngine)
DataPropertyDomain(discount PartEngine)

Comment("----- Cardinalità Massima Attributi Concetto")

FunctionalDataProperty(numberAirplane)
FunctionalDataProperty(model)

FunctionalDataProperty(data)
FunctionalDataProperty(costInt)

FunctionalDataProperty(cf)
FunctionalDataProperty(employees)

FunctionalDataProperty(codPart)
FunctionalDataProperty(costPart)

FunctionalDataProperty(name)
FunctionalDataProperty(state)
FunctionalDataProperty(inhabitants)

FunctionalDataProperty(reliability)
FunctionalDataProperty(discount)

Comment("----- Cardinalità Minima Attributi Concetto")

SubClassOf(Airplane dataSomeValueFrom(numberAirplane xsd:anyType))
SubClassOf(Airplane dataSomeValueFrom(model xsd:anyType))
SubClassOf(Intervention dataSomeValueFrom(data xsd:anyType))
SubClassOf(Intervention dataSomeValueFrom(costInt xsd:anyType))
SubClassOf(Company dataSomeValueFrom(cf xsd:anyType))
SubClassOf(Company dataSomeValueFrom(employees xsd:anyType))
SubClassOf(Part dataSomeValueFrom(codPart xsd:anyType))
SubClassOf(Part dataSomeValueFrom(costPart xsd:anyType))
SubClassOf(City dataSomeValueFrom(name xsd:anyType))
SubClassOf(City dataSomeValueFrom(state xsd:anyType))
SubClassOf(City dataSomeValueFrom(inhabitants xsd:anyType))
SubClassOf(PartEngine dataSomeValueFrom(reliability xsd:anyType))
SubClassOf(PartEngine dataSomeValueFrom(discount xsd:anyType))

Comment("----- Attributi di Ruolo")

DataProperty2Range(year rdf:integer)
DataProperty2Range(amount rdf:integer)


Comment("----- Dominio Attributi di Ruolo")

DataProperty2Domain(year Builder)
DataProperty2Domain(amount Need)

Comment("----- Cardinalità Massima Attributi Ruolo")

FunctionalDataProperty2(year)
FunctionalDataProperty2(amount)

Comment("----- Cardinalità Minima Attributi Ruolo")

SubObjectPropertyOf(Builder data2SomeValueFrom(year xsd:anyType))
SubObjectPropertyOf(Need data2SomeValueFrom(amount xsd:anyType))

Comment("----- Vincoli di chiave")
KeyFor(numberAirplane Airplane)
KeyFor(data,Object Intervention)
KeyFor(cf Company)
KeyFor(codPart Part)
KeyFor(name,state City)