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)



