From andre.scholz at mathematik.tu-chemnitz.de Mon Jul 21 17:22:14 2008 From: andre.scholz at mathematik.tu-chemnitz.de (=?iso-8859-1?q?Andr=E9_Scholz?=) Date: Mon, 21 Jul 2008 17:22:14 +0200 Subject: [Hets-users] Ambiguous types Message-ID: <200807211722.14749.andre.scholz@mathematik.tu-chemnitz.de> Hello, running http://die.in-chemnitz.de/schola/OntoSpace/Ontologien/Changes/minimal_example.casl through hets, i get the following error message: Ambigous types found for pred 'sampleRelation' in cardinalty constraint: (showing only two of them) 'Car * Boat', 'Car * Car' I think, there is no error because forall x: Car . cardinality[sampleRelation](x,1) should only say, that for each x in car there exists at least one y in Thing with sampleRelation(x, y). This problem seems related to that i have to state the domains of a relation when i define an implication like forall x: Car; y: Boat . sampleRelation(x,y) => anotherRelation(x,y) I think it should be possible to write forall t, t0: Thing: . sampleRelation(t, t0) => someOtherRelation(t, t0) independent of the domains of both relations. These are defined elsewhere anyway. Greetings, Andr? From andre.scholz at mathematik.tu-chemnitz.de Mon Jul 21 18:59:33 2008 From: andre.scholz at mathematik.tu-chemnitz.de (=?iso-8859-1?q?Andr=E9_Scholz?=) Date: Mon, 21 Jul 2008 18:59:33 +0200 Subject: [Hets-users] bye the way... Message-ID: <200807211859.33990.andre.scholz@mathematik.tu-chemnitz.de> The word "ambigous" in the error message is misspelled: The correct spelling is "ambiguous". Cheers, Andr? From luecke at informatik.uni-bremen.de Tue Jul 22 11:51:37 2008 From: luecke at informatik.uni-bremen.de (Dominik Luecke) Date: Tue, 22 Jul 2008 11:51:37 +0200 Subject: [Hets-users] Ambiguous types In-Reply-To: <200807211722.14749.andre.scholz@mathematik.tu-chemnitz.de> References: <200807211722.14749.andre.scholz@mathematik.tu-chemnitz.de> Message-ID: <4885ADA9.1080904@informatik.uni-bremen.de> Hello Andr?, after analysing our example I have to come to the conclusion that Hets behaves correctly. The SHOIN cardinality restriction is ambiguous, since it is impossible to decide, which of the relations you restrict in the end. You need to disambiguate by hand or switch to SROIQ's qualified cardinality restrictions. Regards, Dominik Andr? Scholz wrote: > Hello, > > running > > http://die.in-chemnitz.de/schola/OntoSpace/Ontologien/Changes/minimal_example.casl > > through hets, i get the following error message: > > Ambigous types found for > pred 'sampleRelation' in cardinalty constraint: (showing only two of them) > 'Car * Boat', 'Car * Car' > > I think, there is no error because > > forall x: Car > . cardinality[sampleRelation](x,1) > > should only say, that for each x in car there exists at least one y in Thing > with sampleRelation(x, y). > > This problem seems related to that i have to state the domains of a relation > when i define an implication like > > forall x: Car; y: Boat > . sampleRelation(x,y) => anotherRelation(x,y) > > I think it should be possible to write > > forall t, t0: Thing: > . sampleRelation(t, t0) => someOtherRelation(t, t0) > > independent of the domains of both relations. These are defined elsewhere > anyway. > > Greetings, > Andr? > _______________________________________________ > Hets-users mailing list > Hets-users at mailhost.informatik.uni-bremen.de > http://www.informatik.uni-bremen.de/mailman/listinfo/hets-users -- Dominik Luecke Phone +49-421-218-64265 Dept. of Computer Science Fax +49-421-218-9864265 University of Bremen luecke at informatik.uni-bremen.de P.O.Box 330440, D-28334 Bremen PGP-Key ID 0x766B1F6B From andre.scholz at mathematik.tu-chemnitz.de Tue Jul 22 16:09:53 2008 From: andre.scholz at mathematik.tu-chemnitz.de (=?utf-8?q?Andr=C3=A9_Scholz?=) Date: Tue, 22 Jul 2008 16:09:53 +0200 Subject: [Hets-users] Ambiguous types In-Reply-To: <4885ADA9.1080904@informatik.uni-bremen.de> References: <200807211722.14749.andre.scholz@mathematik.tu-chemnitz.de> <4885ADA9.1080904@informatik.uni-bremen.de> Message-ID: <200807221609.53747.andre.scholz@mathematik.tu-chemnitz.de> > The SHOIN cardinality restriction is ambiguous, since > it is impossible to decide, which of the relations you restrict in the end. Ah, so in preds sampleRelation : Car * Boat; sampleRelation : Car * Car; the overloading creates two different relations? I thought there was the "same name, same thing" rule in CASL, so i assumed, that in CASL overloading would extend the domain of the relation and not create a different one. If i remember correctly, in SHOIN(D) it is not possible to have an unnamed union of concepts. So i cannot write something like preds sampleRelation : Car * (Boat u Car); where "u" is the union operator. Is that right? Do i have to declare a concept like free type BoatCar ::= sorts Boat, Car and use this or is there another way? Thanks for your help. Andr? From andre.scholz at mathematik.tu-chemnitz.de Tue Jul 22 19:21:28 2008 From: andre.scholz at mathematik.tu-chemnitz.de (=?utf-8?q?Andr=C3=A9_Scholz?=) Date: Tue, 22 Jul 2008 19:21:28 +0200 Subject: [Hets-users] Ambiguous types In-Reply-To: <4885EBB9.3090509@informatik.uni-bremen.de> References: <200807211722.14749.andre.scholz@mathematik.tu-chemnitz.de> <200807221609.53747.andre.scholz@mathematik.tu-chemnitz.de> <4885EBB9.3090509@informatik.uni-bremen.de> Message-ID: <200807221921.28424.andre.scholz@mathematik.tu-chemnitz.de> Now again for the list :) I have got all kinds of relations including some with Car as their first domain. Now i have one particular relation which i want to define over Car x ( Boat u Car ), so that Car is it?s first domain and the union of Boat and Car is it?s second domain. Now i want to restrict the cardinality of THAT particular relation over it?s entire domain, that is Car and the union of Boat and Car. Working on that i hit these questions: 1.) How do you write "Boat u Car", where "u" is the union operator, in CASL-DL. I didn?t find that in the documentation. I want to write something like this: sampleRelation : Car * ( Boat u Car ); 2.) What exactly happens, when i overload a relation as in: sampleRelation : Car * Boat; sampleRelation : Car * Car; Does this create two different relations? Or do i still have one relation "sampleRelation" with an extended domain? 3.) This question deals with a different thing, but it is important to me: Why do i have to state the domains of a relation when i define an implication like: forall x: Car; y: Boat . sampleRelation(x,y) => someOtherRelation(x,y) I think it should be possible to write: forall t, t0: Thing: . sampleRelation(t, t0) => someOtherRelation(t, t0) independent of the domains of both relations. These are defined elsewhere anyway. Is this necessary in description logic? Greetings, Andr? Am Dienstag 22 Juli 2008 16:16:25 schrieben Sie: > Hello Andr?, > > sorry I do not really see your Problem at this point. Maybe just tell me > what you really want to do to enlighten me. Do you want to restrict the > cardinality of a relation between Car and Car or between a relation > between Car and Boat, or the cardinality of all relations with subject car? > > I did not design CASL-DL myself, but I think that unnamed unions should > be possible here. > > Regards, > Dominik > > Andr? Scholz wrote: > >> The SHOIN cardinality restriction is ambiguous, since > >> it is impossible to decide, which of the relations you restrict in the > >> end. > > > > Ah, so in > > > > preds > > sampleRelation : Car * Boat; > > sampleRelation : Car * Car; > > > > the overloading creates two different relations? I thought there was the > > "same name, same thing" rule in CASL, so i assumed, that in CASL > > overloading would extend the domain of the relation and not create a > > different one. > > > > If i remember correctly, in SHOIN(D) it is not possible to have an > > unnamed union of concepts. So i cannot write something like > > > > preds > > sampleRelation : Car * (Boat u Car); > > > > where "u" is the union operator. Is that right? Do i have to declare a > > concept like > > > > free type BoatCar ::= sorts Boat, Car > > > > and use this or is there another way? > > > > Thanks for your help. > > Andr? > > _______________________________________________ > > Hets-users mailing list > > Hets-users at mailhost.informatik.uni-bremen.de > > http://www.informatik.uni-bremen.de/mailman/listinfo/hets-users From luecke at informatik.uni-bremen.de Thu Jul 24 12:39:56 2008 From: luecke at informatik.uni-bremen.de (Dominik Luecke) Date: Thu, 24 Jul 2008 12:39:56 +0200 Subject: [Hets-users] Ambiguous types In-Reply-To: <200807221921.28424.andre.scholz@mathematik.tu-chemnitz.de> References: <200807211722.14749.andre.scholz@mathematik.tu-chemnitz.de> <200807221609.53747.andre.scholz@mathematik.tu-chemnitz.de> <4885EBB9.3090509@informatik.uni-bremen.de> <200807221921.28424.andre.scholz@mathematik.tu-chemnitz.de> Message-ID: <48885BFC.8060307@informatik.uni-bremen.de> Hello, Andr? Scholz wrote: > Now again for the list :) > > I have got all kinds of relations including some with Car as their first > domain. Now i have one particular relation which i want to define over > Car x ( Boat u Car ), so that Car is it?s first domain and the union of Boat > and Car is it?s second domain. > > Now i want to restrict the cardinality of THAT particular relation over it?s > entire domain, that is Car and the union of Boat and Car. > > Working on that i hit these questions: > > 1.) How do you write "Boat u Car", where "u" is the union operator, in > CASL-DL. I didn?t find that in the documentation. I want to write something > like this: > > > sampleRelation : Car * ( Boat u Car ); > > You can solve your Problem as: library minimal_example logic CASL_DL spec example = sorts Car, Boat < Thing forall x : Car . not(x in Boat); sorts BoatCar < Thing forall x : BoatCar . x in Car \/ x in Boat preds sampleRelation : Car * BoatCar; then forall x: Car . cardinality[sampleRelation](x,1) end or even better as: library minimal_example logic CASL_DL spec example = sorts Car, Boat < Thing forall x : Car . not(x in Boat); sorts BoatCar < Thing free type BoatCar ::= sort Boat | sort Car preds sampleRelation : Car * BoatCar; then forall x: Car . cardinality[sampleRelation](x,1) end > 2.) What exactly happens, when i overload a relation as in: > > sampleRelation : Car * Boat; > sampleRelation : Car * Car; > > > Does this create two different relations? Or do i still have one > relation "sampleRelation" with an extended domain? In fact you have two different relations with the same name that are distinguished by their respective types. > 3.) This question deals with a different thing, but it is important to me: > Why do i have to state the domains of a relation when i define an implication > like: > > > forall x: Car; y: Boat > . sampleRelation(x,y) => someOtherRelation(x,y) > > > I think it should be possible to write: > > > forall t, t0: Thing: > . sampleRelation(t, t0) => someOtherRelation(t, t0) > > > independent of the domains of both relations. These are defined elsewhere > anyway. > Is this necessary in description logic? This arises from the strong typing discipline of CASL, that is much more than a description logic. You are therefore forced to supply the "correct" types mit only a supertype. > Greetings, > Andr? > > Am Dienstag 22 Juli 2008 16:16:25 schrieben Sie: >> Hello Andr?, >> >> sorry I do not really see your Problem at this point. Maybe just tell me >> what you really want to do to enlighten me. Do you want to restrict the >> cardinality of a relation between Car and Car or between a relation >> between Car and Boat, or the cardinality of all relations with subject car? >> >> I did not design CASL-DL myself, but I think that unnamed unions should >> be possible here. >> >> Regards, >> Dominik >> >> Andr? Scholz wrote: >>>> The SHOIN cardinality restriction is ambiguous, since >>>> it is impossible to decide, which of the relations you restrict in the >>>> end. >>> Ah, so in >>> >>> preds >>> sampleRelation : Car * Boat; >>> sampleRelation : Car * Car; >>> >>> the overloading creates two different relations? I thought there was the >>> "same name, same thing" rule in CASL, so i assumed, that in CASL >>> overloading would extend the domain of the relation and not create a >>> different one. >>> >>> If i remember correctly, in SHOIN(D) it is not possible to have an >>> unnamed union of concepts. So i cannot write something like >>> >>> preds >>> sampleRelation : Car * (Boat u Car); >>> >>> where "u" is the union operator. Is that right? Do i have to declare a >>> concept like >>> >>> free type BoatCar ::= sorts Boat, Car >>> >>> and use this or is there another way? >>> >>> Thanks for your help. >>> Andr? >>> _______________________________________________ >>> Hets-users mailing list >>> Hets-users at mailhost.informatik.uni-bremen.de >>> http://www.informatik.uni-bremen.de/mailman/listinfo/hets-users > > > _______________________________________________ > Hets-users mailing list > Hets-users at mailhost.informatik.uni-bremen.de > http://www.informatik.uni-bremen.de/mailman/listinfo/hets-users Regards, Dominik -- Dominik Luecke Phone +49-421-218-64265 Dept. of Computer Science Fax +49-421-218-9864265 University of Bremen luecke at informatik.uni-bremen.de P.O.Box 330440, D-28334 Bremen PGP-Key ID 0x766B1F6B