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

SubClassOf(AlreadyExtraction Extraction)
SubObjectPropertyOf(AlreadyCompote Compote)

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

ObjectPropertyDomain(Expect Extraction)
ObjectPropertyRange(Expect Person)
ObjectPropertyDomain(Compote Extraction)
ObjectPropertyRange(Compote Wheel)
ObjectPropertyDomain(AlreadyCompote AlreadyExtraction)
ObjectPropertyRange(AlreadyCompote Wheel)
ObjectPropertyDomain(TakePlace AlreadyExtraction)
ObjectPropertyRange(TakePlace City)
ObjectPropertyDomain(Executor AlreadyExtraction)
ObjectPropertyRange(Executor Person)
ObjectPropertyDomain(Alive Wheel)
ObjectPropertyRange(Alive City)
ObjectPropertyDomain(Relatively Played)
ObjectPropertyRange(Relatively Wheel)
ObjectPropertyDomain(Do Played)
ObjectPropertyRange(Do Person)
ObjectPropertyDomain(Object Played)
ObjectPropertyRange(Object Extraction)
ObjectPropertyDomain(Make Played)
ObjectPropertyRange(Make LotteryOffice)
ObjectPropertyDomain(Born Person)
ObjectPropertyRange(Born City)
ObjectPropertyDomain(Property LotteryOffice)
ObjectPropertyRange(Property Person)
ObjectPropertyDomain(Stay LotteryOffice)
ObjectPropertyRange(Stay City)


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

SubClassOf(Extraction ObjectMinCardinality(1 Expect))
SubClassOf(AlreadyExtraction ObjectMinCardinality(1 TakePlace))
SubClassOf(AlreadyExtraction ObjectMinCardinality(1 Executor))
SubClassOf(Wheel ObjectMinCardinality(1 Alive))
SubClassOf(Played ObjectMinCardinality(1 Do))
SubClassOf(Played ObjectMinCardinality(1 Object))
SubClassOf(Played ObjectMinCardinality(1 Make))
SubClassOf(Person ObjectMinCardinality(1 Born))
SubClassOf(LotteryOffice ObjectMinCardinality(1 Property))
SubClassOf(LotteryOffice ObjectMinCardinality(1 Stay))
SubClassOf(Played ObjectMinCardinality(1 Relatively))


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

FunctionalObjectProperty(Expect)
FunctionalObjectProperty(TakePlace)
FunctionalObjectProperty(Executor)
FunctionalObjectProperty(Alive)
FunctionalObjectProperty(Do)
FunctionalObjectProperty(Object)
FunctionalObjectProperty(Make)
FunctionalObjectProperty(Born)
FunctionalObjectProperty(Property)
FunctionalObjectProperty(Stay)
FunctionalObjectProperty(Relatively)

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

DataPropertyRange(dataEx rdf:date)

DataPropertyRange(firstNumber rdf:integer)
DataPropertyRange(secondNumber rdf:integer)
DataPropertyRange(amount rdf:float)
DataPropertyRange(codPlayed rdf:string)

DataPropertyRange(year rdf:integer)
DataPropertyRange(codLotteryOffice rdf:string)

DataPropertyRange(codCity rdf:string)
DataPropertyRange(nameCity rdf:string)
DataPropertyRange(inhabitants rdf:integer)

DataPropertyRange(cf rdf:string)
DataPropertyRange(name rdf:string)
DataPropertyRange(surname rdf:string)
DataPropertyRange(birthday rdf:date)
DataPropertyRange(telNumber rdf:string)

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

DataPropertyDomain(dataEx Extraction)

DataPropertyDomain(firstNumber Played)
DataPropertyDomain(secondNumber Played)
DataPropertyDomain(amount Played)
DataPropertyDomain(codPlayed Played)

DataPropertyDomain(year LotteryOffice)
DataPropertyDomain(codLotteryOffice LotteryOffice)

DataPropertyDomain(codCity City)
DataPropertyDomain(nameCity City)
DataPropertyDomain(inhabitants City)

DataPropertyDomain(cf Person)
DataPropertyDomain(name Person)
DataPropertyDomain(surname Person)
DataPropertyDomain(birthday Person)
DataPropertyDomain(telNumber Person)

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

FunctionalDataProperty(dataEx)

FunctionalDataProperty(firtNumber)
FunctionalDataProperty(secondNumber)
FunctionalDataProperty(amount)
FunctionalDataProperty(codPlayed)

FunctionalDataProperty(year)
FunctionalDataProperty(codLotteryOffice)

FunctionalDataProperty(codCity)
FunctionalDataProperty(nameCity)
FunctionalDataProperty(inhabitants)

FunctionalDataProperty(cf)
FunctionalDataProperty(name)
FunctionalDataProperty(surname)
FunctionalDataProperty(birthday)
FunctionalDataProperty(telNumber)

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

SubClassOf(Extraction dataSomeValueFrom(dataEx xsd:anyType))

SubClassOf(Played dataSomeValueFrom(firtNumber xsd:anyType))
SubClassOf(Played dataSomeValueFrom(secondNumber xsd:anyType))
SubClassOf(Played dataSomeValueFrom(amount xsd:anyType))
SubClassOf(Played dataSomeValueFrom(codPlayed xsd:anyType))

SubClassOf(LotteryOffice dataSomeValueFrom(year xsd:anyType))
SubClassOf(LotteryOffice  dataSomeValueFrom(codLotteryOffice xsd:anyType))

SubClassOf(City dataSomeValueFrom(codCity xsd:anyType))
SubClassOf(City dataSomeValueFrom(nameCity xsd:anyType))
SubClassOf(City dataSomeValueFrom(inhabitants xsd:anyType))

SubClassOf(Person dataSomeValueFrom(cf xsd:anyType))
SubClassOf(Person dataSomeValueFrom(name xsd:anyType))
SubClassOf(Person dataSomeValueFrom(surname xsd:anyType))
SubClassOf(Person dataSomeValueFrom(birthday xsd:anyType))

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

DataProperty2Range(num1 rdf:integer)
DataProperty2Range(num2 rdf:integer)


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

DataProperty2Domain(num1 AlreadyCompote)
DataProperty2Domain(num2 AlreadyCompote)

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

FunctionalDataProperty2(num1)
FunctionalDataProperty2(num2)

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

SubObjectPropertyOf(AlreadyCompote data2SomeValueFrom(num1 xsd:anyType))
SubObjectPropertyOf(AlreadyCompote data2SomeValueFrom(num2 xsd:anyType))

Comment("----- Vincoli di chiave")
KeyFor(dataEx Extraction)
KeyFor(codPlayed,Make Played)
KeyFor(codLotteryOffice,Stay LotteryOffice)
KeyFor(codCity City)
KeyFor(cf Person)
KeyFor(City Wheel)



