You can subscribe to this list here.
2008 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(2) |
Jun
(11) |
Jul
(3) |
Aug
(1) |
Sep
|
Oct
(1) |
Nov
(8) |
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2010 |
Jan
|
Feb
(2) |
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Marian H. <ha...@Ma...> - 2010-03-16 16:20:11
|
Hi Folks, there seems to be a problem with the LogicalExpressionVariableVisitor in the new v0.7.0. When I visit a LogicalExpression like myPredicate(?one, ?two). with le.accept(levv), levv.getFreeVariables(le) returns null. I fixed the issue by implementing the visitAtom method, which has a "TODO: auto-generated" mark in your source code... public class MyLogicalExpressionVariableVisitor extends LogicalExpressionVariableVisitor { @Override public void visitAtom(Atom expr) { handleAtom(expr); } } After I make that change everything seems to work fine so far. I hope this helps. Cheers Marian |
From: Barry B. <bar...@st...> - 2010-02-22 13:21:39
|
Hello again, Marian! Two points: 1. Query containment *should* return true if and only if the results of the first query are always contained in the results of the second query, no matter what ground statements are present in the knowledge base. In other words, whether one query contains the results of another is computed using only axioms and not any other statements. So without seeing your ontology and the relationship between http://ecg.med.sws.fb12.de#EDFData and http://ecg.med.sws.fb12.de#ECGData, it is not possible for me to say if one query should contain the other. 2. Unfortunately, there are a couple of problems with the query containment algorithm implemented in WSML2Reasoner. Firstly, it only works when there is no negation or use of built-in predicates. Secondly, the algorithm itself has a bug. IRIS (the Datalog reasoner) has a query containment method that works correctly, however during translation from WSML to Datalog the WSML meta-modelling breaks things. We are still working on a fix for this, so in the meantime, query containment can not be relied upon in all circumstances. I hope this helps, barry Marian Harbach wrote: > Hi, > > I'm currently working on my thesis and I'm using WSML2Reasoner to do some > workflow validation. I was experimenting with query containment when I came > across something I can't quite understand. In my mind a query containment is > true if the first query's result is always contained in the second's. Now I > run the following code: > > //get a reasoner > reasoner = getLPReasoner( BuiltInReasoner.IRIS_WELL_FOUNDED ); > > //load my Ontology > Set<Ontology> ontologies = loadOntologies(new File("ontologies")); > Ontology fb12ecg = null; > for (Ontology o : ontologies) { > if(o.getIdentifier().toString().contains("ecg")){ > fb12ecg = o; > } > } > reasoner.registerOntology(fb12ecg); > > //list all subconceptOf relationships > > System.out.println(reasoner.executeQuery(leFactory.createLogicalExpression(" > ?var subConceptOf {?var2}",fb12ecg))); > > //and check this query containment > > System.out.println(reasoner.getQueryContainment(leFactory.createLogicalExpre > ssion("?var0 memberOf _\"http://ecg.med.sws.fb12.de#EDFData\"", fb12ecg), > leFactory.createLogicalExpression("?var1 memberOf > _\"http://ecg.med.sws.fb12.de#ECGData\"", fb12ecg))); > > I get this output: > > [{?var=http://ecg.med.sws.fb12.de#MITData, > ?var2=http://ecg.med.sws.fb12.de#MITData}, > {?var=http://ecg.med.sws.fb12.de#EDFData, > ?var2=http://ecg.med.sws.fb12.de#ECGData}, > {?var=http://ecg.med.sws.fb12.de#ECGAnnotationData, > ?var2=http://ecg.med.sws.fb12.de#ECGData}, > {?var=http://ecg.med.sws.fb12.de#QRSAnnotationData, > ?var2=http://ecg.med.sws.fb12.de#ECGAnnotationData}, > {?var=http://ecg.med.sws.fb12.de#QRSAnnotationData, > ?var2=http://ecg.med.sws.fb12.de#QRSAnnotationData}, > {?var=http://ecg.med.sws.fb12.de#BinaryQSAnnotationData, > ?var2=http://ecg.med.sws.fb12.de#BinaryQSAnnotationData}, > {?var=http://ecg.med.sws.fb12.de#EDFData, > ?var2=http://ecg.med.sws.fb12.de#ECGSampleData}, > {?var=http://ecg.med.sws.fb12.de#BinaryQSAnnotationData, > ?var2=http://ecg.med.sws.fb12.de#ECGAnnotationData}, > {?var=http://ecg.med.sws.fb12.de#ECGSampleData, > ?var2=http://ecg.med.sws.fb12.de#ECGSampleData}, > {?var=http://ecg.med.sws.fb12.de#ECGChannel, > ?var2=http://ecg.med.sws.fb12.de#ECGChannel}, > {?var=http://ecg.med.sws.fb12.de#QSAnnotationData, > ?var2=http://ecg.med.sws.fb12.de#QSAnnotationData}, > {?var=http://ecg.med.sws.fb12.de#ECGData, > ?var2=http://ecg.med.sws.fb12.de#ECGData}, > {?var=http://ecg.med.sws.fb12.de#QRSAnnotationData, > ?var2=http://ecg.med.sws.fb12.de#ECGData}, > {?var=http://ecg.med.sws.fb12.de#TextualQSAnnotationData, > ?var2=http://ecg.med.sws.fb12.de#QSAnnotationData}, > {?var=http://ecg.med.sws.fb12.de#ApnoeAnnotationData, > ?var2=http://ecg.med.sws.fb12.de#ECGAnnotationData}, > {?var=http://ecg.med.sws.fb12.de#TextualQSAnnotationData, > ?var2=http://ecg.med.sws.fb12.de#ECGData}, > {?var=http://ecg.med.sws.fb12.de#ECGAnnotationData, > ?var2=http://ecg.med.sws.fb12.de#ECGAnnotationData}, > {?var=http://ecg.med.sws.fb12.de#TextualQSAnnotationData, > ?var2=http://ecg.med.sws.fb12.de#ECGAnnotationData}, > {?var=http://ecg.med.sws.fb12.de#EDFData, > ?var2=http://ecg.med.sws.fb12.de#EDFData}, > {?var=http://ecg.med.sws.fb12.de#ECGSampleData, > ?var2=http://ecg.med.sws.fb12.de#ECGData}, > {?var=http://ecg.med.sws.fb12.de#QSAnnotationData, > ?var2=http://ecg.med.sws.fb12.de#ECGData}, > {?var=http://ecg.med.sws.fb12.de#MITData, > ?var2=http://ecg.med.sws.fb12.de#ECGSampleData}, > {?var=http://ecg.med.sws.fb12.de#QSAnnotationData, > ?var2=http://ecg.med.sws.fb12.de#ECGAnnotationData}, > {?var=http://ecg.med.sws.fb12.de#BinaryQSAnnotationData, > ?var2=http://ecg.med.sws.fb12.de#ECGData}, > {?var=http://ecg.med.sws.fb12.de#BinaryQSAnnotationData, > ?var2=http://ecg.med.sws.fb12.de#QSAnnotationData}, > {?var=http://ecg.med.sws.fb12.de#ApnoeAnnotationData, > ?var2=http://ecg.med.sws.fb12.de#ApnoeAnnotationData}, > {?var=http://ecg.med.sws.fb12.de#TextualQSAnnotationData, > ?var2=http://ecg.med.sws.fb12.de#TextualQSAnnotationData}, > {?var=http://ecg.med.sws.fb12.de#MITData, > ?var2=http://ecg.med.sws.fb12.de#ECGData}, > {?var=http://ecg.med.sws.fb12.de#ApnoeAnnotationData, > ?var2=http://ecg.med.sws.fb12.de#ECGData}] > [] > > So, while all the subConcept relations are correct, the query containment > evaluates to false. Can anyone give me a hint on this issue? > > Cheers > Marian > > > > ------------------------------------------------------------------------------ > Download Intel® Parallel Studio Eval > Try the new software tools for yourself. Speed compiling, find bugs > proactively, and fine-tune applications for parallel performance. > See why Intel Parallel Studio got high marks during beta. > http://p.sf.net/sfu/intel-sw-dev > _______________________________________________ > wsml2reasoner-support mailing list > wsm...@li... > https://lists.sourceforge.net/lists/listinfo/wsml2reasoner-support -- Barry Bishop Semantic Technology Institute (STI) University of Innsbruck, Austria ----------------------------------- E-Mail: bar...@st... Tel: +43 512 507 6469 ----------------------------------- |
From: Marian H. <ha...@Ma...> - 2010-02-22 09:07:25
|
Hi, I'm currently working on my thesis and I'm using WSML2Reasoner to do some workflow validation. I was experimenting with query containment when I came across something I can't quite understand. In my mind a query containment is true if the first query's result is always contained in the second's. Now I run the following code: //get a reasoner reasoner = getLPReasoner( BuiltInReasoner.IRIS_WELL_FOUNDED ); //load my Ontology Set<Ontology> ontologies = loadOntologies(new File("ontologies")); Ontology fb12ecg = null; for (Ontology o : ontologies) { if(o.getIdentifier().toString().contains("ecg")){ fb12ecg = o; } } reasoner.registerOntology(fb12ecg); //list all subconceptOf relationships System.out.println(reasoner.executeQuery(leFactory.createLogicalExpression(" ?var subConceptOf {?var2}",fb12ecg))); //and check this query containment System.out.println(reasoner.getQueryContainment(leFactory.createLogicalExpre ssion("?var0 memberOf _\"http://ecg.med.sws.fb12.de#EDFData\"", fb12ecg), leFactory.createLogicalExpression("?var1 memberOf _\"http://ecg.med.sws.fb12.de#ECGData\"", fb12ecg))); I get this output: [{?var=http://ecg.med.sws.fb12.de#MITData, ?var2=http://ecg.med.sws.fb12.de#MITData}, {?var=http://ecg.med.sws.fb12.de#EDFData, ?var2=http://ecg.med.sws.fb12.de#ECGData}, {?var=http://ecg.med.sws.fb12.de#ECGAnnotationData, ?var2=http://ecg.med.sws.fb12.de#ECGData}, {?var=http://ecg.med.sws.fb12.de#QRSAnnotationData, ?var2=http://ecg.med.sws.fb12.de#ECGAnnotationData}, {?var=http://ecg.med.sws.fb12.de#QRSAnnotationData, ?var2=http://ecg.med.sws.fb12.de#QRSAnnotationData}, {?var=http://ecg.med.sws.fb12.de#BinaryQSAnnotationData, ?var2=http://ecg.med.sws.fb12.de#BinaryQSAnnotationData}, {?var=http://ecg.med.sws.fb12.de#EDFData, ?var2=http://ecg.med.sws.fb12.de#ECGSampleData}, {?var=http://ecg.med.sws.fb12.de#BinaryQSAnnotationData, ?var2=http://ecg.med.sws.fb12.de#ECGAnnotationData}, {?var=http://ecg.med.sws.fb12.de#ECGSampleData, ?var2=http://ecg.med.sws.fb12.de#ECGSampleData}, {?var=http://ecg.med.sws.fb12.de#ECGChannel, ?var2=http://ecg.med.sws.fb12.de#ECGChannel}, {?var=http://ecg.med.sws.fb12.de#QSAnnotationData, ?var2=http://ecg.med.sws.fb12.de#QSAnnotationData}, {?var=http://ecg.med.sws.fb12.de#ECGData, ?var2=http://ecg.med.sws.fb12.de#ECGData}, {?var=http://ecg.med.sws.fb12.de#QRSAnnotationData, ?var2=http://ecg.med.sws.fb12.de#ECGData}, {?var=http://ecg.med.sws.fb12.de#TextualQSAnnotationData, ?var2=http://ecg.med.sws.fb12.de#QSAnnotationData}, {?var=http://ecg.med.sws.fb12.de#ApnoeAnnotationData, ?var2=http://ecg.med.sws.fb12.de#ECGAnnotationData}, {?var=http://ecg.med.sws.fb12.de#TextualQSAnnotationData, ?var2=http://ecg.med.sws.fb12.de#ECGData}, {?var=http://ecg.med.sws.fb12.de#ECGAnnotationData, ?var2=http://ecg.med.sws.fb12.de#ECGAnnotationData}, {?var=http://ecg.med.sws.fb12.de#TextualQSAnnotationData, ?var2=http://ecg.med.sws.fb12.de#ECGAnnotationData}, {?var=http://ecg.med.sws.fb12.de#EDFData, ?var2=http://ecg.med.sws.fb12.de#EDFData}, {?var=http://ecg.med.sws.fb12.de#ECGSampleData, ?var2=http://ecg.med.sws.fb12.de#ECGData}, {?var=http://ecg.med.sws.fb12.de#QSAnnotationData, ?var2=http://ecg.med.sws.fb12.de#ECGData}, {?var=http://ecg.med.sws.fb12.de#MITData, ?var2=http://ecg.med.sws.fb12.de#ECGSampleData}, {?var=http://ecg.med.sws.fb12.de#QSAnnotationData, ?var2=http://ecg.med.sws.fb12.de#ECGAnnotationData}, {?var=http://ecg.med.sws.fb12.de#BinaryQSAnnotationData, ?var2=http://ecg.med.sws.fb12.de#ECGData}, {?var=http://ecg.med.sws.fb12.de#BinaryQSAnnotationData, ?var2=http://ecg.med.sws.fb12.de#QSAnnotationData}, {?var=http://ecg.med.sws.fb12.de#ApnoeAnnotationData, ?var2=http://ecg.med.sws.fb12.de#ApnoeAnnotationData}, {?var=http://ecg.med.sws.fb12.de#TextualQSAnnotationData, ?var2=http://ecg.med.sws.fb12.de#TextualQSAnnotationData}, {?var=http://ecg.med.sws.fb12.de#MITData, ?var2=http://ecg.med.sws.fb12.de#ECGData}, {?var=http://ecg.med.sws.fb12.de#ApnoeAnnotationData, ?var2=http://ecg.med.sws.fb12.de#ECGData}] [] So, while all the subConcept relations are correct, the query containment evaluates to false. Can anyone give me a hint on this issue? Cheers Marian |
From: Barry B. <bar...@st...> - 2008-11-12 07:22:16
|
Mark Evenson wrote: > Barry Bishop wrote: >> Hi Mark! >> >> This is intended behaviour, I'm afraid. >> >> If the starting point for a logic program (the facts and rules from an >> ontology) are changed then the model of the resulting logic program can >> be arbitrarily different. > > What about just adding instances of ontological data? Didn't you > implement that "bridge to a arbitrary source" interface for this sort of > situation? I can't seem to find that code in wsml2reasoner, but I think > this is what exists in IRIS in org.deri.iris.storage For this we created the org.wsml.reasoner.api.data.ExternalDataSource interface. It is possible to create a class that implements this interface and give it to the WSML reasoner when it is created - you pass a data source in the params object to one of the factory methods. However, this remains a proof of concept rather than an efficient implementation. I believe it attempts to read in all memberOf and hasValue assertions at start up, rather than as required during evaluation. Regards, barry |
From: Mark E. <eve...@gm...> - 2008-11-11 17:04:20
|
Barry Bishop wrote: > Hi Mark! > > This is intended behaviour, I'm afraid. > > If the starting point for a logic program (the facts and rules from an > ontology) are changed then the model of the resulting logic program can > be arbitrarily different. What about just adding instances of ontological data? Didn't you implement that "bridge to a arbitrary source" interface for this sort of situation? I can't seem to find that code in wsml2reasoner, but I think this is what exists in IRIS in org.deri.iris.storage Mark -- "No, this is not a disentanglement from, but a progressive /knotting-into/ […]" |
From: Barry B. <bar...@st...> - 2008-11-11 15:21:49
|
Hi Mark! This is intended behaviour, I'm afraid. If the starting point for a logic program (the facts and rules from an ontology) are changed then the model of the resulting logic program can be arbitrarily different. So there is not much to be gained by loading/unloading individual ontology objects into/from the reasoner. Any query execution will have to start from scratch anyway. The only thing that could be saved is the normalisation time (the time it takes to convert a WSML ontology in to Datalog), but this is pretty fast anyway. Parsing WSML from a file is much slower. I hope this helps, barry Alessio Carenini wrote: > Hi Mark, > with the turnk version of wsml2reasoner is not possible to do what you > ask (Barry or wsml2reasoner maintainers can explain better than me why). > I dealt with this problem in the sRBE tool, so if you want to have a > peek at the code I can help you. > > Cheers > > Alessio > > [Tue, Nov 11, 2008 at 03:44:45PM +0100] - Mark Evenson scrive: >> Working with WSML-Flight against the wsml2reasoner SVN HEAD, I would >> like to be able to incrementally add ontologies to an IRIS reasoner >> instance (the ontologies represent events that occur in the execution of >> a business process). >> >> It seems that all of the various register*() methods on >> org.wsml.reasoner.api.WSMLReasoner unload all of the previous loaded >> ontological information even though registerOntologyNoVerification() >> claims in the javadoc "If the ontology is already registered, updates >> the ontology content." Is the intent of all these calls to reset the >> reasoner as if unregister() had been called or is this a bug? >> >> Mark <eve...@gm...> >> >> -- >> "No, this is not a disentanglement from, but a progressive >> /knotting-into/ […]" >> >> >> ------------------------------------------------------------------------- >> This SF.Net email is sponsored by the Moblin Your Move Developer's challenge >> Build the coolest Linux based applications with Moblin SDK & win great prizes >> Grand prize is a trip for two to an Open Source event anywhere in the world >> http://moblin-contest.org/redirect.php?banner_id=100&url=/ >> _______________________________________________ >> wsml2reasoner-support mailing list >> wsm...@li... >> https://lists.sourceforge.net/lists/listinfo/wsml2reasoner-support > > -- > -------------------------------------------- > Alessio Carenini > CEFRIEL * Politecnico di Milano > Via Fucini, 2 * 20133 Milano (Italy) > email: ale...@ce... > -------------------------------------------- > > Le informazioni contenute in questa comunicazione e negli allegati sono riservate; e' vietato a soggetti diversi dai destinatari qualsiasi uso, copia, diffusione di quanto in essi contenuto. > Se avete ricevuto questa copia per errore, vi preghiamo di distruggerla immediatamente ed informarci via e-mail. > > Prima di stampare questa e-mail consideratene l’impatto sull’ambiente. Grazie per la collaborazione. > > > This e-mail and any attachment(s) are strictly confidential. This message must not be copied, disclosed or used by anybody other than the intended recipient(s). > If you are not the intended recipient, please inform the sender by e-mail and destroy this message immediately. > > Please consider the environment before printing this e-mail. Thank you for your cooperation. > > ------------------------------------------------------------------------- > This SF.Net email is sponsored by the Moblin Your Move Developer's challenge > Build the coolest Linux based applications with Moblin SDK & win great prizes > Grand prize is a trip for two to an Open Source event anywhere in the world > http://moblin-contest.org/redirect.php?banner_id=100&url=/ > _______________________________________________ > wsml2reasoner-support mailing list > wsm...@li... > https://lists.sourceforge.net/lists/listinfo/wsml2reasoner-support -- Barry Bishop Senior Scientific Programmer Semantic Technology Institute (STI) University of Innsbruck, Austria ----------------------------------- E-Mail: bar...@st... Tel: +43 512 507 96873 ----------------------------------- |
From: Alessio C. <ale...@ce...> - 2008-11-11 15:01:28
|
Hi Mark, with the turnk version of wsml2reasoner is not possible to do what you ask (Barry or wsml2reasoner maintainers can explain better than me why). I dealt with this problem in the sRBE tool, so if you want to have a peek at the code I can help you. Cheers Alessio [Tue, Nov 11, 2008 at 03:44:45PM +0100] - Mark Evenson scrive: > Working with WSML-Flight against the wsml2reasoner SVN HEAD, I would > like to be able to incrementally add ontologies to an IRIS reasoner > instance (the ontologies represent events that occur in the execution of > a business process). > > It seems that all of the various register*() methods on > org.wsml.reasoner.api.WSMLReasoner unload all of the previous loaded > ontological information even though registerOntologyNoVerification() > claims in the javadoc "If the ontology is already registered, updates > the ontology content." Is the intent of all these calls to reset the > reasoner as if unregister() had been called or is this a bug? > > Mark <eve...@gm...> > > -- > "No, this is not a disentanglement from, but a progressive > /knotting-into/ […]" > > > ------------------------------------------------------------------------- > This SF.Net email is sponsored by the Moblin Your Move Developer's challenge > Build the coolest Linux based applications with Moblin SDK & win great prizes > Grand prize is a trip for two to an Open Source event anywhere in the world > http://moblin-contest.org/redirect.php?banner_id=100&url=/ > _______________________________________________ > wsml2reasoner-support mailing list > wsm...@li... > https://lists.sourceforge.net/lists/listinfo/wsml2reasoner-support -- -------------------------------------------- Alessio Carenini CEFRIEL * Politecnico di Milano Via Fucini, 2 * 20133 Milano (Italy) email: ale...@ce... -------------------------------------------- Le informazioni contenute in questa comunicazione e negli allegati sono riservate; e' vietato a soggetti diversi dai destinatari qualsiasi uso, copia, diffusione di quanto in essi contenuto. Se avete ricevuto questa copia per errore, vi preghiamo di distruggerla immediatamente ed informarci via e-mail. Prima di stampare questa e-mail consideratene l’impatto sull’ambiente. Grazie per la collaborazione. This e-mail and any attachment(s) are strictly confidential. This message must not be copied, disclosed or used by anybody other than the intended recipient(s). If you are not the intended recipient, please inform the sender by e-mail and destroy this message immediately. Please consider the environment before printing this e-mail. Thank you for your cooperation. |
From: Mark E. <eve...@gm...> - 2008-11-11 14:45:00
|
Working with WSML-Flight against the wsml2reasoner SVN HEAD, I would like to be able to incrementally add ontologies to an IRIS reasoner instance (the ontologies represent events that occur in the execution of a business process). It seems that all of the various register*() methods on org.wsml.reasoner.api.WSMLReasoner unload all of the previous loaded ontological information even though registerOntologyNoVerification() claims in the javadoc "If the ontology is already registered, updates the ontology content." Is the intent of all these calls to reset the reasoner as if unregister() had been called or is this a bug? Mark <eve...@gm...> -- "No, this is not a disentanglement from, but a progressive /knotting-into/ […]" |
From: Mark E. <eve...@gm...> - 2008-11-08 14:08:49
|
Barry Bishop wrote: > Hi Mark, > > It seems something untoward was checked in to WSMl2Reasoner a few days > ago. I have reverted the change, so you should be ok now. > > Let me know asap if this or a similar problem persists. Confirmed that r1173 fixes my reported problem. Thanks, as always, for the quick turnaround, Mark -- "No, this is not a disentanglement from, but a progressive /knotting-into/ […]" |
From: Barry B. <bar...@st...> - 2008-11-08 13:59:44
|
Hi Mark, It seems something untoward was checked in to WSMl2Reasoner a few days ago. I have reverted the change, so you should be ok now. Let me know asap if this or a similar problem persists. Regards, barry Mark Evenson wrote: > Working against wsml2reasoner SVN trunk r1172, I get a > NullPointerException wrapper around the message "The literal must not be > null" when invoking registerOntology(). > > For the full error stack see the attached 'error.log'. > > I reproduced a standalone test case based on the code in your junit > tests in BaseReasonerTest which can be run by: > > 1. place 'Main.java' in WSML2REASONER/src/at/etel/wsml2reasoner/test > > 2. place 'boot.wsml' and 'etel-build.xml' in WSML2REASONER > > 3. adjust the parameter to load() on line 34 of Main.java to reflect > the absolute path of 'boot.wsml' > > 4. run the test via > > cmd$ ant at.etel.test > > It's not just 'boot.wsml' that fails to register, but any WSML onotology > that I have tried. > > Interestingly, when I run the included wsml2reasoner unit tests show the > same sort of failures (see attached PDF), whereas the [ones STI posts > online][1] don't seem to fail in this manner. This made me suspect that > somehow I have some weird line-endings, but I ran the test on both OSX > and UNIX with the same results. > > Any ideas? > > > [1]: http://tools.sti-innsbruck.at/wsml2reasoner/snapshot/report/unit_test/ > -- Barry Bishop Senior Scientific Programmer Semantic Technology Institute (STI) University of Innsbruck, Austria ----------------------------------- E-Mail: bar...@st... Tel: +43 512 507 96873 ----------------------------------- |
From: Mark E. <eve...@gm...> - 2008-11-07 16:02:08
|
Working against wsml2reasoner SVN trunk r1172, I get a NullPointerException wrapper around the message "The literal must not be null" when invoking registerOntology(). For the full error stack see the attached 'error.log'. I reproduced a standalone test case based on the code in your junit tests in BaseReasonerTest which can be run by: 1. place 'Main.java' in WSML2REASONER/src/at/etel/wsml2reasoner/test 2. place 'boot.wsml' and 'etel-build.xml' in WSML2REASONER 3. adjust the parameter to load() on line 34 of Main.java to reflect the absolute path of 'boot.wsml' 4. run the test via cmd$ ant at.etel.test It's not just 'boot.wsml' that fails to register, but any WSML onotology that I have tried. Interestingly, when I run the included wsml2reasoner unit tests show the same sort of failures (see attached PDF), whereas the [ones STI posts online][1] don't seem to fail in this manner. This made me suspect that somehow I have some weird line-endings, but I ran the test on both OSX and UNIX with the same results. Any ideas? [1]: http://tools.sti-innsbruck.at/wsml2reasoner/snapshot/report/unit_test/ -- "No, this is not a disentanglement from, but a progressive /knotting-into/ […]" |
From: Alex S. <ale...@on...> - 2008-10-16 15:31:35
|
----- Original Message ----- From: Alex Simov To: bar...@st... Sent: Friday, October 10, 2008 11:17 AM Subject: Wsml2reasoner vs. kaon2 Hi Barry, I'm not sure I have to address you, but your name appears on the top of the list of active developers:-) I received a bug report from WSMO studio's tracker which states that kaon2.jar can don be deployed successfully. Digging in the problem I discovered that the kaon facade is missing (org.wsml.reasoner.builtin.kaon2.Kaon2Facade) from both the GPL and the LGPL distributions of the Wsml2Reasoner Framework. Is this a mistake or I'm just not looking in the correct distributions? Thanks in advance! Alex |
From: sukesh j. <jai...@ho...> - 2008-08-22 14:47:13
|
Hi, I would like to know does WSML2Reasoner support the WSML built-in predicates. The list of WSML built-in predicates can be found at http://www.wsmo.org/TR/d16/d16.1/v1.0/#cha:built-ins I am adding the following namespace in my ontology to use WSML built-in predicates in query(for eg wsml#numericEqual(?x,?y)) namespace { wsml _"http://www.wsmo.org/wsml-syntax#" } I am using WSML Flight variant. Eventhough the values for the variables ?x, ?y are same in ontology but still I dont get the mapping for ?x, ?y. Kindly also let me know if this correct or if I am missing something. Also let me know if all the WSML built-in predicates are supported or not. Thanks & Regards, Sukesh. _________________________________________________________________ Chose your Life Partner? Join MSN Matrimony FREE http://www.shaadi.com/msn/matrimony.php |
From: sukesh j. <jai...@ho...> - 2008-07-16 13:33:25
|
Hi all I have multipleontologies say Ontology o1 which contains the concept and relationdefinition namely C1, C2 and R1(C1,C2). I have second ontology o2 whichdefines instances I1 memberOf C1, I2 memberOf C2 and relationInstance R1(I1,I2). The second Ontology also imports first ontology. I loadboth ontologies and register to the reasoner at the same time. Now Iwant to find the relation between two instances I1 and I2 using query.I tried with the query [R1(?x,?y)] but there is no result found even though Ihave defined the relationInstance in ontology o2. Can we define relation in one ontology and relation instance in another ontology?? If so then let me know what needs to be done to get the result. Kindly let me know if I am doing something wrong. I created an example of the above scenario from the online demo on the wsml2reasoner site. I even tried to use thesame namespace for both the ontologies which I created from the demo.I just placed all the concepts and relation definition in the ontologyAboutHumans with the namespace _'http://www.example.org#' and all the instances of the concepts and relation in another onotology named HumanInstance with the same namespace _'http://www.example.org#'and imported the AboutHumans ontology in it. But still when I query forthe instances which are related using the relation definition definedin the first ontology (AboutHumans) and relationInstance in secondontology (HumanInstance), I get no results. I am attaching both the wsml files of ontologies (AboutHumans, HumanInstanceOntology) and source code in this mail. It would be ofgreat help if someone can provide a sample working example (wsml fileswith namespace and source code) for such a scenario or links to where Ican find one. Hope to receive an early and positive reply from you. Thanks & Regards, Sukesh. Windows Live Messenger just got better with Messenger TV. Share your favourite videos online with your near and dear ones. Check it out! _________________________________________________________________ Searching for the best deals on travel? Visit MSN Travel. http://msn.coxandkings.co.in/cnk/cnk.do |
From: Stadlhofer B. <Ber...@fh...> - 2008-07-15 08:14:12
|
Danke für die rasche Antwort! Ist für mich so verständlich, dass der Grund der Violation bei einer NamedUserConstraintViolation prinzipiell beliebig kompliziert sei kann. In unserem Fall sind die formulierten Constraints jedoch meistens sehr einfach gestrickt und beschränken sich im Regelfall auf ein Concept wie zB axiom NonNegativeDecimalConstraint_floorHeight definedBy !- ?buildings[floorHeight hasValue ?floorHeight] memberOf Buildings and ?floorHeight =< 0. welches bestimmt, dass die Raumhöhe eines Gebäudes nicht negativ sein kann. Für mich ist es wichtig zur Laufzeit festzustellen, welche konkrete Instance vom Concept Buildings diese Constraint-Verletzung begeht. Kann jemand einen Workaround (zB Query) empfehlen, wenn das mit der Wsml2Reasoner Api auch prinzipiell nicht möglich ist? Vielen Dank für Ihre Hilfe! Mfg Bernd Stadlhofer -----Ursprüngliche Nachricht----- Von: Florian Fischer [mailto:flo...@st...] Gesendet: Dienstag, 15. Juli 2008 01:22 An: Stadlhofer Bernd Cc: bar...@st...; uwe...@st... Betreff: Re: WSML2Reasoner Framework - NamedUserConstraintViolation allo! Bei AttributeTypeViolation und CardinalityViolation ist es einfach zu sagen wo der Fehler liegt. Z.B.: Bei einerm Attribute Constraint der Form B[a ofType K]liegt eine Verletzung vor, wenn eine Instanz von B einern Wert X für das Attribut A hat, und nicht abgeleitet werden kann das X zu Typ K gehört. Attribut A, Instanz B und Wert X sind klar bestimmbar. Bei CardinalityViolation ist dies ähnlich möglich, und solche Constraints können auch in einfache Regeln für den in Wsml2Reasoner arbeitenden Reasoner runtergebrochen werden. Bei einer NamedUserConstraintViolation ist dies allerdings generell _nicht_ so einfach. Beispiel: axiom humanBMIConstraint definedBy !- naf bodyMassIndex[bmi hasValue ?b, length hasValue ?l, weight hasValue ?w] and ?x memberOf Human and ?x[length hasValue ?l, weight hasValue ?w, bmi hasValue ?b]. oder generell !- alphe is a formula in L(V). (siehe Def 2.3, 2.4 in http://www.wsmo.org/TR/d16/d16.1/v0.3/). Alpha kann hierbei sehr komplex sein und es kann im allgemeinen Fall (rein prinzipiell) die Violation nicht an einer Instanz festgemacht werden (?b, ?l, ?w, ?x, bodyMassIndex stehen alle für Instanzen). Daher ist es in so einem Fall nur möglich das problematische Axiom zu finden, da der restliche Grund für die Violation eine beliebig komplizierte Kombination sein kann. Schöne Grüße, Florian Fischer ps: Am einfachsten/schnellsten sind die passenden Personen, was wsml2reasoner angeht, über die Mailinglist wsm...@li... zu erreichen :) Stadlhofer Bernd wrote: > Hallo! > > > > Ich habe Sie schon einmal kontaktiert bezüglich eines Problems mit dem > WSML2Reasoner Framework bzw. dem IRIS Reasoner, welche wir in einem > Forschungsprojekt im Einsatz haben. > > > > Jetzt habe ich eine neue Frage: > > Wie ist es für mich möglich, bei einer "NamedUserConstraintViolation" > einer WSML-Instanz auf die jeweilige diesen Constraint verletzende > Instanz zu kommen? Bei allen anderen Arten von "ConsistencyViolation"s > wie zB einer "MinCardinalityViolation" od. "MaxCardinalityViolation" > bekomme ich die jeweilige Instanz durch die "getTerm()" Methode. Bei > einer "NamedUserConstraintViolation" habe ich bis jetzt leider nichts > Vergleichbares gefunden. > > > > Diese Funktionalität wäre für mich jedoch sehr wichtig, weil wir ein > Multi-User System im Einsatz haben, wo es essentiell ist, dass die > jeweiligen Constraint-Verletzungen eindeutig einer WSML-Instanz > zugeordnet werden können. > > > > Vielen Dank für Ihre Hilfe! > > > > Mfg > > Bernd Stadlhofer > > > > ______________________________________________________________________ > _______ > > DI (FH) Bernd Stadlhofer > > Department of Information Management > > FH JOANNEUM, University of Applied Sciences > > Alte Poststraße 149, 8020 Graz, Austria > > > > http://www.fh-joanneum.at <http://www.fh-joanneum.at/> > > mailto:ber...@fh... > > Phone: +43/(0)316 5453-8525 > > Fax: +43/(0)316 5453-8501 > ______________________________________________________________________ > _______ > > > > *Von:* Stadlhofer Bernd > *Gesendet:* Mittwoch, 26. März 2008 09:37 > *An:* 'ric...@st...'; 'flo...@st...'; > 'bar...@st...'; 'uwe...@st...'; > 'nat...@st...'; 'hol...@de...' > *Betreff:* IRIS Reasoner > > > > Hallo! > > > > Wir arbeiten gerade an einem Forschungsprojekt im E-Government > Bereich, wo wir WSML/WSMO in Zusammenarbeit mit Ihrem IRIS Reasoner > im Einsatz haben. > > > > Bei der Definition von Axiomen sind wir nun leider auf ein Problem > gestoßen. Und zwar haben wir entdeckt dass der IRIS Reasoner in > Version > 0.5.7 die WSML Builtins rund um den Vergleich von Datumswerten (zB > wsml#dateLessThan(A,B), wsml#dateTimeLessThan(A,B)) noch nicht > implementiert hat. > > Können Sie mir sagen, wann es geplant ist, diese WSML Builtins in den > Reasoner zu integrieren, bzw. können Sie mir inzwischen einen > Workaround empfehlen, wie trotzdem Datumswerte in einem Axiom verglichen werden können? > > > > Hier ein Testaxiom wie wir es in Verwendung haben: > > > > *axiom* DateGreaterTodayConstraint_testDate > > *definedBy* > > !- ?x[testDate *hasValue* ?testDate] *memberOf* Buildings > > *and* wsml#dateTimeLessThan(?testDate,wsml#currentDate()). > > > > > > Vielen Dank für Ihre Antwort! > > > > Mfg > > Bernd Stadlhofer > > > > ______________________________________________________________________ > _______ > > DI (FH) Bernd Stadlhofer > > Department of Information Management > > FH JOANNEUM, University of Applied Sciences > > Alte Poststraße 149, 8020 Graz, Austria > > > > http://www.fh-joanneum.at <http://www.fh-joanneum.at/> > > mailto:ber...@fh... > > Phone: +43/(0)316 5453-8525 > > Fax: +43/(0)316 5453-8501 > ______________________________________________________________________ > _______ > > > > > FH JOANNEUM Gesellschaft mbH > Rechtsform/Legal form: GmbH > Firmenbuchgericht/Court of registry: Landesgericht für ZRS Graz > Firmenbuchnummer/Company registration: FN 125888 f > DVR: 0813559 > UID-Nr.: ATU 42361001 _____________________________________________________________________________ DI (FH) Bernd Stadlhofer Department of Information Management FH JOANNEUM, University of Applied Sciences Alte Poststraße 149, 8020 Graz, Austria http://www.fh-joanneum.at <http://www.fh-joanneum.at/> mailto:ber...@fh... Phone: +43/(0)316 5453-8525 Fax: +43/(0)316 5453-8501 _____________________________________________________________________________ |
From: Stadlhofer B. <Ber...@fh...> - 2008-07-15 07:46:53
|
Danke für die rasche Antwort! Ist für mich so verständlich, dass der Grund der Violation bei einer NamedUserConstraintViolation prinzipiell beliebig kompliziert sei kann. In unserem Fall sind die formulierten Constraints jedoch meistens sehr einfach gestrickt und beschränken sich im Regelfall auf ein Concept wie zB axiom NonNegativeDecimalConstraint_floorHeight definedBy !- ?buildings[floorHeight hasValue ?floorHeight] memberOf Buildings and ?floorHeight =< 0. welches bestimmt, dass die Raumhöhe eines Gebäudes nicht negativ sein kann. Für mich ist es wichtig zur Laufzeit festzustellen, welche konkrete Instance vom Concept Buildings diese Constraint-Verletzung begeht. Kann jemand einen Workaround (zB Query) empfehlen, wenn das mit der Wsml2Reasoner Api auch prinzipiell nicht möglich ist? Vielen Dank für Ihre Hilfe! Mfg Bernd Stadlhofer -----Ursprüngliche Nachricht----- Von: Florian Fischer [mailto:flo...@st...] Gesendet: Dienstag, 15. Juli 2008 01:22 An: Stadlhofer Bernd Cc: bar...@st...; uwe...@st... Betreff: Re: WSML2Reasoner Framework - NamedUserConstraintViolation allo! Bei AttributeTypeViolation und CardinalityViolation ist es einfach zu sagen wo der Fehler liegt. Z.B.: Bei einerm Attribute Constraint der Form B[a ofType K]liegt eine Verletzung vor, wenn eine Instanz von B einern Wert X für das Attribut A hat, und nicht abgeleitet werden kann das X zu Typ K gehört. Attribut A, Instanz B und Wert X sind klar bestimmbar. Bei CardinalityViolation ist dies ähnlich möglich, und solche Constraints können auch in einfache Regeln für den in Wsml2Reasoner arbeitenden Reasoner runtergebrochen werden. Bei einer NamedUserConstraintViolation ist dies allerdings generell _nicht_ so einfach. Beispiel: axiom humanBMIConstraint definedBy !- naf bodyMassIndex[bmi hasValue ?b, length hasValue ?l, weight hasValue ?w] and ?x memberOf Human and ?x[length hasValue ?l, weight hasValue ?w, bmi hasValue ?b]. oder generell !- alphe is a formula in L(V). (siehe Def 2.3, 2.4 in http://www.wsmo.org/TR/d16/d16.1/v0.3/). Alpha kann hierbei sehr komplex sein und es kann im allgemeinen Fall (rein prinzipiell) die Violation nicht an einer Instanz festgemacht werden (?b, ?l, ?w, ?x, bodyMassIndex stehen alle für Instanzen). Daher ist es in so einem Fall nur möglich das problematische Axiom zu finden, da der restliche Grund für die Violation eine beliebig komplizierte Kombination sein kann. Schöne Grüße, Florian Fischer ps: Am einfachsten/schnellsten sind die passenden Personen, was wsml2reasoner angeht, über die Mailinglist wsm...@li... zu erreichen :) Stadlhofer Bernd wrote: > Hallo! > > > > Ich habe Sie schon einmal kontaktiert bezüglich eines Problems mit dem > WSML2Reasoner Framework bzw. dem IRIS Reasoner, welche wir in einem > Forschungsprojekt im Einsatz haben. > > > > Jetzt habe ich eine neue Frage: > > Wie ist es für mich möglich, bei einer „NamedUserConstraintViolation“ > einer WSML-Instanz auf die jeweilige diesen Constraint verletzende > Instanz zu kommen? Bei allen anderen Arten von „ConsistencyViolation“s > wie zB einer „MinCardinalityViolation“ od. „MaxCardinalityViolation“ > bekomme ich die jeweilige Instanz durch die „getTerm()“ Methode. Bei > einer „NamedUserConstraintViolation“ habe ich bis jetzt leider nichts > Vergleichbares gefunden. > > > > Diese Funktionalität wäre für mich jedoch sehr wichtig, weil wir ein > Multi-User System im Einsatz haben, wo es essentiell ist, dass die > jeweiligen Constraint-Verletzungen eindeutig einer WSML-Instanz > zugeordnet werden können. > > > > Vielen Dank für Ihre Hilfe! > > > > Mfg > > Bernd Stadlhofer > > > > _____________________________________________________________________________ > > DI (FH) Bernd Stadlhofer > > Department of Information Management > > FH JOANNEUM, University of Applied Sciences > > Alte Poststraße 149, 8020 Graz, Austria > > > > http://www.fh-joanneum.at <http://www.fh-joanneum.at/> > > mailto:ber...@fh... > > Phone: +43/(0)316 5453-8525 > > Fax: +43/(0)316 5453-8501 > _____________________________________________________________________________ > > > > *Von:* Stadlhofer Bernd > *Gesendet:* Mittwoch, 26. März 2008 09:37 > *An:* 'ric...@st...'; 'flo...@st...'; > 'bar...@st...'; 'uwe...@st...'; > 'nat...@st...'; 'hol...@de...' > *Betreff:* IRIS Reasoner > > > > Hallo! > > > > Wir arbeiten gerade an einem Forschungsprojekt im E-Government Bereich, > wo wir WSML/WSMO in Zusammenarbeit mit Ihrem IRIS Reasoner im Einsatz > haben. > > > > Bei der Definition von Axiomen sind wir nun leider auf ein Problem > gestoßen. Und zwar haben wir entdeckt dass der IRIS Reasoner in Version > 0.5.7 die WSML Builtins rund um den Vergleich von Datumswerten (zB > wsml#dateLessThan(A,B), wsml#dateTimeLessThan(A,B)) noch nicht > implementiert hat. > > Können Sie mir sagen, wann es geplant ist, diese WSML Builtins in den > Reasoner zu integrieren, bzw. können Sie mir inzwischen einen Workaround > empfehlen, wie trotzdem Datumswerte in einem Axiom verglichen werden können? > > > > Hier ein Testaxiom wie wir es in Verwendung haben: > > > > *axiom* DateGreaterTodayConstraint_testDate > > *definedBy* > > !- ?x[testDate *hasValue* ?testDate] *memberOf* Buildings > > *and* wsml#dateTimeLessThan(?testDate,wsml#currentDate()). > > > > > > Vielen Dank für Ihre Antwort! > > > > Mfg > > Bernd Stadlhofer > > > > _____________________________________________________________________________ > > DI (FH) Bernd Stadlhofer > > Department of Information Management > > FH JOANNEUM, University of Applied Sciences > > Alte Poststraße 149, 8020 Graz, Austria > > > > http://www.fh-joanneum.at <http://www.fh-joanneum.at/> > > mailto:ber...@fh... > > Phone: +43/(0)316 5453-8525 > > Fax: +43/(0)316 5453-8501 > _____________________________________________________________________________ > > > > > FH JOANNEUM Gesellschaft mbH > Rechtsform/Legal form: GmbH > Firmenbuchgericht/Court of registry: Landesgericht für ZRS Graz > Firmenbuchnummer/Company registration: FN 125888 f > DVR: 0813559 > UID-Nr.: ATU 42361001 |
From: Graham H. <gra...@st...> - 2008-06-23 10:35:28
|
Ok - back online. http://tools.sti-innsbruck.at/wsml2reasoner/ext/wsml2reasoner-ext-kaon2.jar Sorry for the downtime. Cheers, Graham On Jun 23, 2008, at 11:07 AM, Graham Hench wrote: > Hey Alessio, > Yep, still active ~ not sure why it's not there? > > I'll check it out and get back to you. > > Sorry for the complications. > > Cheers, > Graham > > On Jun 20, 2008, at 10:15 AM, Alessio Carenini wrote: > >> Hi, >> I tried to rebuild the whole wsml2reasoner also with kaon2, but the >> link >> to wsml2reasoner-ext-kaon2.jar seems to be broken (neither >> http://tools.deri.org/wsml2reasoner/ext/wsml2reasoner-ext-kaon2.jar >> nor >> http://tools.sti-innsbruck.at/wsml2reasoner/ext/wsml2reasoner-ext-kaon2.jar >> exist). Is support for kaon2 in wsml2reasoner still active? >> >> Regards, >> Alessio >> -- >> -------------------------------------------- >> Alessio Carenini >> CEFRIEL * Politecnico di Milano >> Via Fucini, 2 * 20133 Milano (Italy) >> email: ale...@ce... >> -------------------------------------------- >> >> Le informazioni contenute in questa comunicazione e negli allegati >> sono riservate; e' vietato a soggetti diversi dai destinatari >> qualsiasi uso, copia, diffusione di quanto in essi contenuto. >> Se avete ricevuto questa copia per errore, vi preghiamo di >> distruggerla immediatamente ed informarci via e-mail. >> >> Prima di stampare questa e-mail consideratene l’impatto >> sull’ambiente. Grazie per la collaborazione. >> >> >> This e-mail and any attachment(s) are strictly confidential. This >> message must not be copied, disclosed or used by anybody other than >> the intended recipient(s). >> If you are not the intended recipient, please inform the sender by >> e-mail and destroy this message immediately. >> >> Please consider the environment before printing this e-mail. Thank >> you for your cooperation. >> >> ------------------------------------------------------------------------- >> Check out the new SourceForge.net Marketplace. >> It's the best place to buy or sell services for >> just about anything Open Source. >> http://sourceforge.net/services/buy/index.php >> _______________________________________________ >> Wsml2reasoner-support mailing list >> Wsm...@li... >> https://lists.sourceforge.net/lists/listinfo/wsml2reasoner-support > |
From: Graham H. <gra...@st...> - 2008-06-23 09:07:42
|
Hey Alessio, Yep, still active ~ not sure why it's not there? I'll check it out and get back to you. Sorry for the complications. Cheers, Graham On Jun 20, 2008, at 10:15 AM, Alessio Carenini wrote: > Hi, > I tried to rebuild the whole wsml2reasoner also with kaon2, but the > link > to wsml2reasoner-ext-kaon2.jar seems to be broken (neither > http://tools.deri.org/wsml2reasoner/ext/wsml2reasoner-ext-kaon2.jar > nor > http://tools.sti-innsbruck.at/wsml2reasoner/ext/wsml2reasoner-ext-kaon2.jar > exist). Is support for kaon2 in wsml2reasoner still active? > > Regards, > Alessio > -- > -------------------------------------------- > Alessio Carenini > CEFRIEL * Politecnico di Milano > Via Fucini, 2 * 20133 Milano (Italy) > email: ale...@ce... > -------------------------------------------- > > Le informazioni contenute in questa comunicazione e negli allegati > sono riservate; e' vietato a soggetti diversi dai destinatari > qualsiasi uso, copia, diffusione di quanto in essi contenuto. > Se avete ricevuto questa copia per errore, vi preghiamo di > distruggerla immediatamente ed informarci via e-mail. > > Prima di stampare questa e-mail consideratene l’impatto > sull’ambiente. Grazie per la collaborazione. > > > This e-mail and any attachment(s) are strictly confidential. This > message must not be copied, disclosed or used by anybody other than > the intended recipient(s). > If you are not the intended recipient, please inform the sender by e- > mail and destroy this message immediately. > > Please consider the environment before printing this e-mail. Thank > you for your cooperation. > > ------------------------------------------------------------------------- > Check out the new SourceForge.net Marketplace. > It's the best place to buy or sell services for > just about anything Open Source. > http://sourceforge.net/services/buy/index.php > _______________________________________________ > Wsml2reasoner-support mailing list > Wsm...@li... > https://lists.sourceforge.net/lists/listinfo/wsml2reasoner-support |
From: Alessio C. <ale...@ce...> - 2008-06-20 08:20:15
|
Hi, I tried to rebuild the whole wsml2reasoner also with kaon2, but the link to wsml2reasoner-ext-kaon2.jar seems to be broken (neither http://tools.deri.org/wsml2reasoner/ext/wsml2reasoner-ext-kaon2.jar nor http://tools.sti-innsbruck.at/wsml2reasoner/ext/wsml2reasoner-ext-kaon2.jar exist). Is support for kaon2 in wsml2reasoner still active? Regards, Alessio -- -------------------------------------------- Alessio Carenini CEFRIEL * Politecnico di Milano Via Fucini, 2 * 20133 Milano (Italy) email: ale...@ce... -------------------------------------------- Le informazioni contenute in questa comunicazione e negli allegati sono riservate; e' vietato a soggetti diversi dai destinatari qualsiasi uso, copia, diffusione di quanto in essi contenuto. Se avete ricevuto questa copia per errore, vi preghiamo di distruggerla immediatamente ed informarci via e-mail. Prima di stampare questa e-mail consideratene l’impatto sull’ambiente. Grazie per la collaborazione. This e-mail and any attachment(s) are strictly confidential. This message must not be copied, disclosed or used by anybody other than the intended recipient(s). If you are not the intended recipient, please inform the sender by e-mail and destroy this message immediately. Please consider the environment before printing this e-mail. Thank you for your cooperation. |
From: Barry B. <bar...@st...> - 2008-06-18 16:17:46
|
Hi Alessio, Sorry to hear that you are having problems. It is hard to say what the issue could be without something to examine. Please could you send me a minimal example? Then I can investigate, because we haven't seen anything like this before. Thanks, barry Alessio Carenini wrote: > Hi, > I'm having an issue with loading an ontology containing instances, > concepts and axioms. When I load the ontology as it is and then issue a > "getAllConcepts", I get an empty result. When I comment out all the > axioms, I get the results that I want. Note that I don't get any error > from the wsmo4j parser, nor any error from "registerOntologies". > I don't know if it is a known issue or if I have to use the bug > tracking, let me know. > > Thank you in advance, > Alessio > > -- > -------------------------------------------- > Alessio Carenini > CEFRIEL * Politecnico di Milano > Via Fucini, 2 * 20133 Milano (Italy) > email: ale...@ce... > -------------------------------------------- > > Le informazioni contenute in questa comunicazione e negli allegati sono riservate; e' vietato a soggetti diversi dai destinatari qualsiasi uso, copia, diffusione di quanto in essi contenuto. > Se avete ricevuto questa copia per errore, vi preghiamo di distruggerla immediatamente ed informarci via e-mail. > > Prima di stampare questa e-mail consideratene l’impatto sull’ambiente. Grazie per la collaborazione. > > > This e-mail and any attachment(s) are strictly confidential. This message must not be copied, disclosed or used by anybody other than the intended recipient(s). > If you are not the intended recipient, please inform the sender by e-mail and destroy this message immediately. > > Please consider the environment before printing this e-mail. Thank you for your cooperation. > > ------------------------------------------------------------------------- > Check out the new SourceForge.net Marketplace. > It's the best place to buy or sell services for > just about anything Open Source. > http://sourceforge.net/services/buy/index.php > _______________________________________________ > Wsml2reasoner-support mailing list > Wsm...@li... > https://lists.sourceforge.net/lists/listinfo/wsml2reasoner-support |
From: Alessio C. <ale...@ce...> - 2008-06-18 15:25:24
|
Hi, I'm having an issue with loading an ontology containing instances, concepts and axioms. When I load the ontology as it is and then issue a "getAllConcepts", I get an empty result. When I comment out all the axioms, I get the results that I want. Note that I don't get any error from the wsmo4j parser, nor any error from "registerOntologies". I don't know if it is a known issue or if I have to use the bug tracking, let me know. Thank you in advance, Alessio -- -------------------------------------------- Alessio Carenini CEFRIEL * Politecnico di Milano Via Fucini, 2 * 20133 Milano (Italy) email: ale...@ce... -------------------------------------------- Le informazioni contenute in questa comunicazione e negli allegati sono riservate; e' vietato a soggetti diversi dai destinatari qualsiasi uso, copia, diffusione di quanto in essi contenuto. Se avete ricevuto questa copia per errore, vi preghiamo di distruggerla immediatamente ed informarci via e-mail. Prima di stampare questa e-mail consideratene l’impatto sull’ambiente. Grazie per la collaborazione. This e-mail and any attachment(s) are strictly confidential. This message must not be copied, disclosed or used by anybody other than the intended recipient(s). If you are not the intended recipient, please inform the sender by e-mail and destroy this message immediately. Please consider the environment before printing this e-mail. Thank you for your cooperation. |
From: Barry B. <bar...@st...> - 2008-06-17 15:02:38
|
Hi Alessio, Just to check, when you say 'load an ontology', I think you mean load/parse the ontology from a file/URL etc. So if you have the ontologies loaded in memory (a collection of org.omwg.ontology.Ontology objects) then you just have to register them with an instance of a WSML reasoner - no need to create a dummy ontology that imports all the others. i.e. if you have Ontology a, b, c, d; /*... load the ontologies ...*/ then you can do something like this: WSMLReasonerFactory factory = DefaultWSMLReasonerFactory.getFactory(); Set<Ontology> ontologies = new HashSet<Ontology>(); ontologies.add( a ); ontologies.add( c ); WSMLRuleReasoner r1 = factory.createWSMLRuleReasoner(); r1.registerOntologies(ontologies) ontologies.add( b ); WSMLRuleReasoner r2 = factory.createWSMLRuleReasoner(); r2.registerOntologies(ontologies) ontologies.clear(); ontologies.add( a ); ontologies.add( d ); WSMLRuleReasoner r3 = factory.createWSMLRuleReasoner(); r3.registerOntologies(ontologies) and then reason with ontologies: a and b with r1 a, b and c with r2 a and d in r3 etc So any time you discover that you need to reason with a new combination of ontologies, you just need to register the new combination with a reasoner. To answer your question regarding IRIS, the question is the same as asking: "why can't arbitrary rules and facts be added to a datalog program efficiently"? The reason is simply that datalog with negation is non-monotonic. IRIS happens to (usually) compute the minimal model of a datalog program and execute queries against this model. Adding new facts and rules will result in a new model where some conclusions that appeared in the first model might not appear in the second model. Hence there is no possibility to calculate back from the first model to the second. Rather the new model must be calculated from scratch. Even if IRIS were to use a top-down evaluation strategy (which it will likely do in the near future) where no computation of a minimal model is required, there would still be nothing to gain from incrementally adding new facts and rules. Regards, barry Alessio Carenini wrote: > Hi Barry, > before the change it was possible to achieve a result from a query on more > than one ontology with a hack: you loaded all the ontologies and then > create a new ontology that imported all the others. In that way, > querying that ontology resulted in getting back results also from the > imported ontologies. That hack allowed also to dynamically load and > unload knowledge, by deleting the import from the main ontology and > re-issuing the registerOntology. > Obviously I can adapt my code to follow the current behaviour of > wsml2reasoner, but I'm concerned about loading time. In SRBE, the > process flow is: > * select a "question" (a wsml relation) > * create the instances to bind the parameters of the relation > * evaluate the wsml relation > So that would require that for each query evaluation I should unload and > reload all the ontologies plus the single (or set of) instance. I can > try to reduce the number of these "wipe and recreate", but you'll agree > that some time is wasted in these repetitive operations. > > What does prevent IRIS to be able to load new data in different moments? > Is that something that we can work on and improve? > > Regards > Alessio > > [Tue, Jun 17, 2008 at 02:58:26PM +0200] - Barry Bishop scrive: >> Hi Alessio, >> >> Actually the last version of wsml2reasoner only appeared to work as you >> describe, when in fact it did not. The interface was changed to better >> reflect what was happening underneath. >> >> What it used to do was create a separate underlying reasoner (IRIS) for >> each new ontology as it was loaded. This was the reason for having the >> ontologyIRI argument for every query method, because this was used to >> select the correct IRIS reasoner associated with a particular ontology. >> >> So the interface to wsml2reasoner has been changed to avoid this >> confusion. From now on, there is only one IRIS reasoner associated with >> each WSML reasoner. >> >> No functionality has been taken away. In fact, some functionality has >> actually been added, because now you really can do reasoning over >> several ontologies 'merged' together. Before this was not possible. >> >> Hence the ontologyIRI argument is no longer needed and the methods that >> take this are now deprecated. A new set of methods without this argument >> should be used from now on. >> >> Please get back to me if any of this is confusing! >> >> Regards, >> barry >> > -- > -------------------------------------------- > Alessio Carenini > CEFRIEL * Politecnico di Milano > Via Fucini, 2 * 20133 Milano (Italy) > email: ale...@ce... > -------------------------------------------- > > Le informazioni contenute in questa comunicazione e negli allegati sono riservate; e' vietato a soggetti diversi dai destinatari qualsiasi uso, copia, diffusione di quanto in essi contenuto. > Se avete ricevuto questa copia per errore, vi preghiamo di distruggerla immediatamente ed informarci via e-mail. > > Prima di stampare questa e-mail consideratene l’impatto sull’ambiente. Grazie per la collaborazione. > > > This e-mail and any attachment(s) are strictly confidential. This message must not be copied, disclosed or used by anybody other than the intended recipient(s). > If you are not the intended recipient, please inform the sender by e-mail and destroy this message immediately. > > Please consider the environment before printing this e-mail. Thank you for your cooperation. -- Barry Bishop Senior Scientific Programmer Semantic Technology Institute (STI) University of Innsbruck, Austria ----------------------------------- E-Mail: bar...@st... Tel: +43 512 507 96873 ----------------------------------- |
From: Alessio C. <Ale...@ce...> - 2008-06-17 13:49:55
|
Hi Barry, before the change it was possible to achieve a result from a query on more than one ontology with a hack: you loaded all the ontologies and then create a new ontology that imported all the others. In that way, querying that ontology resulted in getting back results also from the imported ontologies. That hack allowed also to dynamically load and unload knowledge, by deleting the import from the main ontology and re-issuing the registerOntology. Obviously I can adapt my code to follow the current behaviour of wsml2reasoner, but I'm concerned about loading time. In SRBE, the process flow is: * select a "question" (a wsml relation) * create the instances to bind the parameters of the relation * evaluate the wsml relation So that would require that for each query evaluation I should unload and reload all the ontologies plus the single (or set of) instance. I can try to reduce the number of these "wipe and recreate", but you'll agree that some time is wasted in these repetitive operations. What does prevent IRIS to be able to load new data in different moments? Is that something that we can work on and improve? Regards Alessio [Tue, Jun 17, 2008 at 02:58:26PM +0200] - Barry Bishop scrive: > Hi Alessio, > > Actually the last version of wsml2reasoner only appeared to work as you > describe, when in fact it did not. The interface was changed to better > reflect what was happening underneath. > > What it used to do was create a separate underlying reasoner (IRIS) for > each new ontology as it was loaded. This was the reason for having the > ontologyIRI argument for every query method, because this was used to > select the correct IRIS reasoner associated with a particular ontology. > > So the interface to wsml2reasoner has been changed to avoid this > confusion. From now on, there is only one IRIS reasoner associated with > each WSML reasoner. > > No functionality has been taken away. In fact, some functionality has > actually been added, because now you really can do reasoning over > several ontologies 'merged' together. Before this was not possible. > > Hence the ontologyIRI argument is no longer needed and the methods that > take this are now deprecated. A new set of methods without this argument > should be used from now on. > > Please get back to me if any of this is confusing! > > Regards, > barry > -- -------------------------------------------- Alessio Carenini CEFRIEL * Politecnico di Milano Via Fucini, 2 * 20133 Milano (Italy) email: ale...@ce... -------------------------------------------- Le informazioni contenute in questa comunicazione e negli allegati sono riservate; e' vietato a soggetti diversi dai destinatari qualsiasi uso, copia, diffusione di quanto in essi contenuto. Se avete ricevuto questa copia per errore, vi preghiamo di distruggerla immediatamente ed informarci via e-mail. Prima di stampare questa e-mail consideratene l’impatto sull’ambiente. Grazie per la collaborazione. This e-mail and any attachment(s) are strictly confidential. This message must not be copied, disclosed or used by anybody other than the intended recipient(s). If you are not the intended recipient, please inform the sender by e-mail and destroy this message immediately. Please consider the environment before printing this e-mail. Thank you for your cooperation. |
From: Barry B. <bar...@st...> - 2008-06-17 12:59:11
|
Hi Alessio, Actually the last version of wsml2reasoner only appeared to work as you describe, when in fact it did not. The interface was changed to better reflect what was happening underneath. What it used to do was create a separate underlying reasoner (IRIS) for each new ontology as it was loaded. This was the reason for having the ontologyIRI argument for every query method, because this was used to select the correct IRIS reasoner associated with a particular ontology. So the interface to wsml2reasoner has been changed to avoid this confusion. From now on, there is only one IRIS reasoner associated with each WSML reasoner. No functionality has been taken away. In fact, some functionality has actually been added, because now you really can do reasoning over several ontologies 'merged' together. Before this was not possible. Hence the ontologyIRI argument is no longer needed and the methods that take this are now deprecated. A new set of methods without this argument should be used from now on. Please get back to me if any of this is confusing! Regards, barry Alessio Carenini wrote: > Hi Barry, > could you explain me the rationale behind this decision? The last > released version of wsml2reasoner allowed loading ontologies in > different moments, what caused this change of behaviour? Actually, for > the SRBE tool in Super I was relying on the possibility of loading new > data inside the KB without reloading everything (as iris (if it hasn't > changed meanwhile) is a backward-chaining reasoner there is no cache > that has to be kept updated). As I need also WSML-A queries I have to > use the newer wsml2reasoner, so I really need to understand how it works > now. > > Cheers, > Alessio > > [Tue, Jun 17, 2008 at 02:05:37PM +0200] - Barry Bishop scrive: >> Hi Alessio! >> >> registerOntologyNoVerification() also over-writes what is loaded in to >> that reasoner instance. >> >> The only way to load multiple ontologies in to an instance of a WSML >> reasoner is to load them at the same time with registerOntologies(). >> >> This may sound strange, but it is actually very complicated to add an >> ontology to an existing reasoner. For instance, adding a new ontology >> could invalidate previous conclusions drawn from the first ontology (a >> non-monotonic function). >> >> So if you have been reasoning with ontology A and then decide to start >> reasoning with ontologies A + B, you would need to instantiate a new >> reasoner and load A + B simultaneously. (Or just unregister everything >> from the first reasoner and re-use it) >> >> I hope this helps, >> barry >> > -- > -------------------------------------------- > Alessio Carenini > CEFRIEL * Politecnico di Milano > Via Fucini, 2 * 20133 Milano (Italy) > email: ale...@ce... > -------------------------------------------- > > Le informazioni contenute in questa comunicazione e negli allegati sono riservate; e' vietato a soggetti diversi dai destinatari qualsiasi uso, copia, diffusione di quanto in essi contenuto. > Se avete ricevuto questa copia per errore, vi preghiamo di distruggerla immediatamente ed informarci via e-mail. > > Prima di stampare questa e-mail consideratene l’impatto sull’ambiente. Grazie per la collaborazione. > > > This e-mail and any attachment(s) are strictly confidential. This message must not be copied, disclosed or used by anybody other than the intended recipient(s). > If you are not the intended recipient, please inform the sender by e-mail and destroy this message immediately. > > Please consider the environment before printing this e-mail. Thank you for your cooperation. -- Barry Bishop Senior Scientific Programmer Semantic Technology Institute (STI) University of Innsbruck, Austria ----------------------------------- E-Mail: bar...@st... Tel: +43 512 507 96873 ----------------------------------- |
From: Alessio C. <Ale...@ce...> - 2008-06-17 12:45:02
|
Hi Barry, could you explain me the rationale behind this decision? The last released version of wsml2reasoner allowed loading ontologies in different moments, what caused this change of behaviour? Actually, for the SRBE tool in Super I was relying on the possibility of loading new data inside the KB without reloading everything (as iris (if it hasn't changed meanwhile) is a backward-chaining reasoner there is no cache that has to be kept updated). As I need also WSML-A queries I have to use the newer wsml2reasoner, so I really need to understand how it works now. Cheers, Alessio [Tue, Jun 17, 2008 at 02:05:37PM +0200] - Barry Bishop scrive: > Hi Alessio! > > registerOntologyNoVerification() also over-writes what is loaded in to > that reasoner instance. > > The only way to load multiple ontologies in to an instance of a WSML > reasoner is to load them at the same time with registerOntologies(). > > This may sound strange, but it is actually very complicated to add an > ontology to an existing reasoner. For instance, adding a new ontology > could invalidate previous conclusions drawn from the first ontology (a > non-monotonic function). > > So if you have been reasoning with ontology A and then decide to start > reasoning with ontologies A + B, you would need to instantiate a new > reasoner and load A + B simultaneously. (Or just unregister everything > from the first reasoner and re-use it) > > I hope this helps, > barry > -- -------------------------------------------- Alessio Carenini CEFRIEL * Politecnico di Milano Via Fucini, 2 * 20133 Milano (Italy) email: ale...@ce... -------------------------------------------- Le informazioni contenute in questa comunicazione e negli allegati sono riservate; e' vietato a soggetti diversi dai destinatari qualsiasi uso, copia, diffusione di quanto in essi contenuto. Se avete ricevuto questa copia per errore, vi preghiamo di distruggerla immediatamente ed informarci via e-mail. Prima di stampare questa e-mail consideratene l’impatto sull’ambiente. Grazie per la collaborazione. This e-mail and any attachment(s) are strictly confidential. This message must not be copied, disclosed or used by anybody other than the intended recipient(s). If you are not the intended recipient, please inform the sender by e-mail and destroy this message immediately. Please consider the environment before printing this e-mail. Thank you for your cooperation. |