From Till.Mossakowski at dfki.de Mon Mar 3 10:39:40 2008 From: Till.Mossakowski at dfki.de (Till Mossakowski) Date: Mon, 03 Mar 2008 10:39:40 +0100 Subject: [Hets-users] [Hets-devel] Modularer Aufbau von Ontologien In-Reply-To: <200803030123.04219.andre.scholz@mathematik.tu-chemnitz.de> References: <200803030123.04219.andre.scholz@mathematik.tu-chemnitz.de> Message-ID: <47CBC75C.2070503@dfki.de> Hi Andr?, the right list is hets-users, and both lists are in English (I hope that this is not a problem for you). You want to add new subsorts of Vehicle in S1 and have these automatically disjoint to Car in S2. But Car also is a new subsort of Vehicle (although in S2, not in S1). Hence the subsorts of Boat and Plane of Vehicle in S1 are of a special status; at least, they are different from the subsort Car of Vehicle declared in S2. Hence, you have to make this special status (of "non-car-ness") explicit, say: spec S1 = sorts Vehicle < Thing sorts Boat, Car, Plane < Vehicle sorts NonCar < Vehicle sorts Boat, Plane < NonCar forall x : Boat . not(x in Car \/ x in Plane) forall x : Car . not(x in Plane) spec S2 = S1 with Car |-> NormalCar then sorts Car < Vehicle sorts NormalCar, SpecialCar < Car forall x : NormalCar . not(x in SpecialCar) forall x : Car . not(x in NonCar) Greetings, Till Andr? Scholz schrieb: > Hallo, > > ich ?bersetze gerade eine Ontologie von OWL-DL nach CASL-DL und bin auf > folgendes Problem gesto?en: Ich habe diese Spezifikation: > > spec S1 = > sorts Vehicle < Thing > sorts Boat, Car, Plane < Vehicle > forall x : Boat . not(x in Car \/ x in Plane) > forall x : Car . not(x in Plane) > > spec S2 = S1 with Car |-> NormalCar > then > sorts Car < Vehicle > sorts NormalCar, SpecialCar < Car > forall x : NormalCar . not(x in SpecialCar) > > Wie gebe ich an, dass SpecialCar (oder das neue Car in S2) disjunkt zu Boat > und Plane sind, ohne Boat und Plane explizit angeben zu m?ssen? > Mein Ziel ist es, in S1 neue Vehicle-Subsorten angeben zu k?nnen, ohne diese > auch in S2 mit angeben zu m?ssen. > > Sch?ne Gr??e > Andr? Scholz > > P.S.: Ist die devel-Liste oder die user-Liste die richtige Anlaufstelle f?r > diese Art Fragen? > _______________________________________________ > Hets-devel mailing list > Hets-devel at mailhost.informatik.uni-bremen.de > http://www.informatik.uni-bremen.de/mailman/listinfo/hets-devel > -- Till Mossakowski Cartesium, room 2.051 Phone +49-421-218-64226 DFKI Lab Bremen Fax +49-421-218-9864226 Safe & Secure Cognitive Systems Till.Mossakowski at dfki.de Enrique-Schmidt-Str. 5, D-28359 Bremen http://www.dfki.de/sks/till Deutsches Forschungszentrum fuer Kuenstliche Intelligenz GmbH principal office, *not* the address for mail etc.!!!: Trippstadter Str. 122, D-67663 Kaiserslautern management board: Prof. Wolfgang Wahlster (chair), Dr. Walter Olthoff supervisory board: Prof. Hans A. Aukes (chair) Amtsgericht Kaiserslautern, HRB 2313 From Till.Mossakowski at dfki.de Tue Mar 11 21:54:33 2008 From: Till.Mossakowski at dfki.de (Till Mossakowski) Date: Tue, 11 Mar 2008 21:54:33 +0100 Subject: [Hets-users] hets - CASL - development graph question In-Reply-To: <47D6DDF4.8070206@swansea.ac.uk> References: <47D6DDF4.8070206@swansea.ac.uk> Message-ID: <47D6F189.3050106@dfki.de> Hi Markus, I cc this to hets-users, so I will stay in English. An %implies annotation like in spec sp = sp1 then %implies sp2 end always needs to prove the sp2 axioms within sp1. This is not what you want. You want to have the sp2 axioms as proof obligations in different context. This can be achieved with views that start from sp (or in your case, Validation). Greetings, Till Markus Roggenbach schrieb: > Dear Till, > > I have a small problem with > > hets-0.80 > > see the sample file below. > > There, I use the specification "Validation" three times, namely in > "FirstDB", in "SecondDB", and in "ThirdDB". > > My expectation was - as I have 3 different settings in which I want to > check for my proof obligations - that I should get 3 different proof > obligations. However, hets maps them into "one arrow." > > Now I wonder: is my understanding of "implies" in a structured setting > wrong, or is there a mistake in the way hets maps specifiations into > development graphs. > > All the best, > Markus > > P.S.: Keine Ahnung, ob es besser ist, sowas auf Deutsch oder Englisch zu > schreiben - aber da Englisch weitere Kontexte erlaubt ... > > ------------------ > > library filesystem > > spec DatabaseSignature = > sort Database, String, Nat > ops initial: Database; > look_up: Database * String ->? Nat; > update: Database * String * Nat -> Database > end > > spec Validation = > sorts Database, String, Nat > ops initial: Database; > look_up: Database * String ->? Nat; > update: Database * String * Nat -> Database > ops Hugo, Erna: String; > N4711, N17: Nat > then %implies > axioms > look_up(initial,Hugo) = N4711 > %(lookup on initial = 4711)%; > not look_up(initial,Hugo) = N17 > %(lookup on initial not equal to 17)%; > not def look_up(initial,Hugo) > %(lookup on initial defined)%; > look_up(update(initial,Hugo,N4711),Hugo) = N4711 > %(lookup stores values)%; > look_up( > update(update(initial,Erna,N17), Hugo,N4711), > Erna) = N17 > %(lookup does not overwrite)%; > not def(look_up(update(initial,Erna,N4711),Hugo)) > %(lookup is not defined without update)%; > end > > spec FirstDb= > DatabaseSignature > then > Validation > end > > spec DatabaseWithProperties = > DatabaseSignature > then > forall db:Database; name,name1,name2:String; number: Nat > . not def look_up(initial, name) > . name1 = name2 => > look_up(update(db,name1,number), name2) = number > . not (name1 = name2) => > look_up(update(db,name1,number), name2) = > look_up(db, name2) > end > > spec SecondDb = > DatabaseWithProperties > then > Validation > end > > spec DatabaseWithMoreProperties = > DatabaseWithProperties > then > axioms > forall x,y: String . x = y; > forall i,j: Nat . i=j > end > > spec UselessDatabase = > DatabaseWithMoreProperties > then > Validation > end > -- Till Mossakowski Cartesium, room 2.051 Phone +49-421-218-64226 DFKI Lab Bremen Fax +49-421-218-9864226 Safe & Secure Cognitive Systems Till.Mossakowski at dfki.de Enrique-Schmidt-Str. 5, D-28359 Bremen http://www.dfki.de/sks/till Deutsches Forschungszentrum fuer Kuenstliche Intelligenz GmbH principal office, *not* the address for mail etc.!!!: Trippstadter Str. 122, D-67663 Kaiserslautern management board: Prof. Wolfgang Wahlster (chair), Dr. Walter Olthoff supervisory board: Prof. Hans A. Aukes (chair) Amtsgericht Kaiserslautern, HRB 2313