You can subscribe to this list here.
| 2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(2) |
Sep
|
Oct
|
Nov
|
Dec
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2008 |
Jan
|
Feb
(1) |
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2009 |
Jan
|
Feb
|
Mar
(11) |
Apr
(1) |
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2010 |
Jan
|
Feb
(7) |
Mar
|
Apr
(2) |
May
|
Jun
(3) |
Jul
|
Aug
(2) |
Sep
(3) |
Oct
|
Nov
|
Dec
|
| 2011 |
Jan
|
Feb
|
Mar
(3) |
Apr
(7) |
May
(3) |
Jun
(2) |
Jul
(12) |
Aug
(19) |
Sep
(3) |
Oct
(8) |
Nov
(6) |
Dec
(1) |
| 2012 |
Jan
(17) |
Feb
|
Mar
(7) |
Apr
(7) |
May
(1) |
Jun
(5) |
Jul
(1) |
Aug
|
Sep
(2) |
Oct
(3) |
Nov
(2) |
Dec
|
| 2013 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(2) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2014 |
Jan
(2) |
Feb
(5) |
Mar
(1) |
Apr
(7) |
May
(4) |
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
(2) |
Nov
|
Dec
(5) |
| 2015 |
Jan
(2) |
Feb
(6) |
Mar
(2) |
Apr
(7) |
May
|
Jun
|
Jul
(3) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
| 2016 |
Jan
(9) |
Feb
(5) |
Mar
|
Apr
|
May
(2) |
Jun
(2) |
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
(3) |
| 2017 |
Jan
(2) |
Feb
|
Mar
(9) |
Apr
(3) |
May
(13) |
Jun
(2) |
Jul
|
Aug
|
Sep
(1) |
Oct
(4) |
Nov
|
Dec
(2) |
| 2018 |
Jan
(1) |
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Jens L. <le...@in...> - 2014-02-25 12:05:11
|
Hello, Am 22.02.2014 21:35, schrieb Giuseppe Cota: > Hi Everyone, > I'd like to report a little bug. In > org.dllearner.learningproblems.ClassLearningMethod.java the setter and > the getter for accuracyMethod are missing. Thanks for pointing this out. I added the methods. If you are interested in contributing to DL-Learner yourself, please drop me a mail describing what you are working on and I can grant you SVN access. Kind regards, Jens -- Dr. Jens Lehmann AKSW Group, Department of Computer Science, University of Leipzig Homepage: http://www.jens-lehmann.org GPG Key: http://jens-lehmann.org/jens_lehmann.asc |
|
From: Giuseppe C. <gi...@gm...> - 2014-02-22 20:35:43
|
Hi Everyone, I'd like to report a little bug. In org.dllearner.learningproblems.ClassLearningMethod.java the setter and the getter for accuracyMethod are missing. Greetings, Giuseppe Cota |
|
From: Lorenz B. <spo...@st...> - 2014-02-04 19:31:39
|
Hi Giuseppe, thanks for the hint. Regards, Lorenz Bühmann On 02/04/2014 06:40 PM, Giuseppe Cota wrote: > To whom it may concern, > I would like to advise a little bug on line 120 of > org.dllearner.algorithms.PCELOE.java, in that line you redifine the > field bestEvaluatedDescriptions, when you run the algorithm the field > bestEvaluatedDescriptions of PCELOE have elements, but the homonymous > field of his superclass (AbstractCELA) is empty. Therefore when you > invoke the method AbstractCELA#getSolutionString(), it does not print > anything. I think you should just comment the line 120. > > Greetings, > Giuseppe Cota > > ------------------------------------------------------------------------------ > Managing the Performance of Cloud-Based Applications > Take advantage of what the Cloud has to offer - Avoid Common Pitfalls. > Read the Whitepaper. > http://pubads.g.doubleclick.net/gampad/clk?id=121051231&iu=/4140/ostg.clktrk > _______________________________________________ > dl-learner-discussion mailing list > dl-...@li... > https://lists.sourceforge.net/lists/listinfo/dl-learner-discussion > |
|
From: Lorenz B. <spo...@st...> - 2014-02-04 19:30:35
|
Hello Giuseppe, basically the core components are still KnowledgeSource, ReasonerComponent, LearningProblem, LearningAlgorithm. Do you think about any other components? For the learning taks itself, these are at least the ones needed and how it's done in DL-Learner. Regards, Lorenz On 01/27/2014 05:36 PM, Giuseppe Cota wrote: > To Whom It May Concern, > I would like to develop some new components and I have a couple of > questions to ask (If I may). > > 1. I have read the manual and it says that to create a concrete > component I have to implement one of the following interfaces: > KnowledgeSource, ReasonerComponent, LearningProblem, > LearningAlgorithm, but It says also that the list is incomplete. > Which are all the interfaces and/or abstract classes that I can > implement for the creation of a new component? > 2. I have read the old code, contained in the "Build 2010-08-07" > directory, and the new one. I saw that the management of > configuration options of the components changed. Now, for example > my component has an option called 'testOption' of String type, I > created the setter and getter methods, but I want to set a set of > allowed values. With the old version of DLLearner I could do it > with StringConfigOption#setAllowedValues method, but how can I do > it now with the new policy? > > Greetings, > Giuseppe > > > > ------------------------------------------------------------------------------ > CenturyLink Cloud: The Leader in Enterprise Cloud Services. > Learn Why More Businesses Are Choosing CenturyLink Cloud For > Critical Workloads, Development Environments & Everything In Between. > Get a Quote or Start a Free Trial Today. > http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk > > > _______________________________________________ > dl-learner-discussion mailing list > dl-...@li... > https://lists.sourceforge.net/lists/listinfo/dl-learner-discussion |
|
From: Giuseppe C. <gi...@gm...> - 2014-02-04 17:40:44
|
To whom it may concern, I would like to advise a little bug on line 120 of org.dllearner.algorithms.PCELOE.java, in that line you redifine the field bestEvaluatedDescriptions, when you run the algorithm the field bestEvaluatedDescriptions of PCELOE have elements, but the homonymous field of his superclass (AbstractCELA) is empty. Therefore when you invoke the method AbstractCELA#getSolutionString(), it does not print anything. I think you should just comment the line 120. Greetings, Giuseppe Cota |
|
From: Giuseppe C. <gi...@gm...> - 2014-01-27 17:37:37
|
To Whom It May Concern,
I would like to develop some new components and I have a couple of
questions to ask (If I may).
1. I have read the manual and it says that to create a concrete
component I have to implement one of the following interfaces:
KnowledgeSource, ReasonerComponent, LearningProblem,
LearningAlgorithm, but It says also that the list is incomplete.
Which are all the interfaces and/or abstract classes that I can
implement for the creation of a new component?
2. I have read the old code, contained in the "Build 2010-08-07"
directory, and the new one. I saw that the management of
configuration options of the components changed. Now, for example my
component has an option called 'testOption' of String type, I
created the setter and getter methods, but I want to set a set of
allowed values. With the old version of DLLearner I could do it with
StringConfigOption#setAllowedValues method, but how can I do it now
with the new policy?
Greetings,
Giuseppe
|
|
From: Giuseppe C. <giu...@st...> - 2014-01-27 17:36:18
|
To Whom It May Concern,
I would like to develop some new components and I have a couple of
questions to ask (If I may).
1. I have read the manual and it says that to create a concrete
component I have to implement one of the following interfaces:
KnowledgeSource, ReasonerComponent, LearningProblem,
LearningAlgorithm, but It says also that the list is incomplete.
Which are all the interfaces and/or abstract classes that I can
implement for the creation of a new component?
2. I have read the old code, contained in the "Build 2010-08-07"
directory, and the new one. I saw that the management of
configuration options of the components changed. Now, for example my
component has an option called 'testOption' of String type, I
created the setter and getter methods, but I want to set a set of
allowed values. With the old version of DLLearner I could do it with
StringConfigOption#setAllowedValues method, but how can I do it now
with the new policy?
Greetings,
Giuseppe
|
|
From: Lorenz B. <spo...@st...> - 2013-05-03 06:31:55
|
Hi, can you provide us the ontology such that we can reproduce the strange appearance of rdfs:Resource? Unfortunately, NodeSet as well as Node objects use HashSets internally, thus a non-determinsm might occur in the OWLAPIReasoner. I guess we'll have to wrap it into TreeSets. Thanks for the bug report. Regards, Lorenz On 05/03/2013 12:49 AM, Donnie Rivera wrote: > > To Whom It May Concern: > > My name is Donnie Rivera, and I work at Intelligent Software > Solutions. I've taken over Chris Shellenbarger's project over the last > year which I've completed several changes to the software. One of the > changes included moving from Java 1.6 to Java 1.7 which was the cause > for the DL Learner bug to appear. Our software still utilizes DL > Learner for what we call the "Hypothesis Refinement" process. During > this process DL Learner used to find specific types. Unfortunately > with all the changes, DL Learner stopped learning these concepts. > > After looking into the problem, I've discovered a bug within DL > Learner, but also wanted to get input from the side effect for the > current working around. > > The issue starts with an assumption made within the OWLAPIReasoner. > The getSuperClassesImp() assumes that an ordered > NodeSet<OWLClass> will be return from the PelletReasoner. This is true > with Java 1.6, but not Java 1.7. That assumption is what leads to the > bug within DL Learner's ClassHierarchy. thinOutSubsumptionHierarchy() > process. > > During the cloneAndRestrict() restrict process, DL Learner's > OWLAPIReasoner. getFirstClasses() grabs the first node from the > NodeSet<OWLClass> that was returned from the PelletReasoner. This is > the cause of the problem because classes are getting mapped to both > owl:Thing and rdfs:Resource in Java 1.7 whereas in Java .1.6 they were > only getting mapped to owl:Thing. Then during the > thinOutSubsumptionHierarchy() process, the upward mapping gets horked > which is why DL Learner stopped learning specific types. > > This is easily worked around by setting the > improveSubsumptionHierarchy attribute to false, but what are the side > effects from doing so? > > Regards, > > Donnie Rivera > > Software Engineer > > Intelligent Software Solutions (ISS) > > Work: (719) 457-0228 > > Moblie: (719) 242-8522 > > Email: don...@is... <mailto:don...@is...> > > > > ------------------------------------------------------------------------------ > Get 100% visibility into Java/.NET code with AppDynamics Lite > It's a free troubleshooting tool designed for production > Get down to code-level detail for bottlenecks, with <2% overhead. > Download for free and get started troubleshooting in minutes. > http://p.sf.net/sfu/appdyn_d2d_ap2 > > > _______________________________________________ > dl-learner-discussion mailing list > dl-...@li... > https://lists.sourceforge.net/lists/listinfo/dl-learner-discussion |
|
From: Donnie R. <don...@is...> - 2013-05-02 23:05:19
|
To Whom It May Concern: My name is Donnie Rivera, and I work at Intelligent Software Solutions. I've taken over Chris Shellenbarger's project over the last year which I've completed several changes to the software. One of the changes included moving from Java 1.6 to Java 1.7 which was the cause for the DL Learner bug to appear. Our software still utilizes DL Learner for what we call the "Hypothesis Refinement" process. During this process DL Learner used to find specific types. Unfortunately with all the changes, DL Learner stopped learning these concepts. After looking into the problem, I've discovered a bug within DL Learner, but also wanted to get input from the side effect for the current working around. The issue starts with an assumption made within the OWLAPIReasoner. The getSuperClassesImp() assumes that an ordered NodeSet<OWLClass> will be return from the PelletReasoner. This is true with Java 1.6, but not Java 1.7. That assumption is what leads to the bug within DL Learner's ClassHierarchy. thinOutSubsumptionHierarchy() process. During the cloneAndRestrict() restrict process, DL Learner's OWLAPIReasoner. getFirstClasses() grabs the first node from the NodeSet<OWLClass> that was returned from the PelletReasoner. This is the cause of the problem because classes are getting mapped to both owl:Thing and rdfs:Resource in Java 1.7 whereas in Java .1.6 they were only getting mapped to owl:Thing. Then during the thinOutSubsumptionHierarchy() process, the upward mapping gets horked which is why DL Learner stopped learning specific types. This is easily worked around by setting the improveSubsumptionHierarchy attribute to false, but what are the side effects from doing so? Regards, Donnie Rivera Software Engineer Intelligent Software Solutions (ISS) Work: (719) 457-0228 Moblie: (719) 242-8522 Email: don...@is...<mailto:don...@is...> |
|
From: Jens L. <le...@in...> - 2012-11-29 15:36:00
|
Dear June, Am 09.11.2012 16:36, schrieb June: > Hi all, > > I am a little confused about the calculation of predictive accuracy > here. It will be quite grateful if someone in this list can kick out my > troubles~ > > Suppose we are doing a leave one out validation, and we want to learn > the description for concept Female. > The knowledge base has Female(ANNE), and ANNE is the one left out for > testing. > The result of DLLearner is (not Male) in this case, which is quite > ideal. But how to test whether ANNE is correctly classified? Do we need > to ask the knowledge base whether (not Male(ANNE)) is true? But the > knowledge base will always return false for these negated concepts. In most DL-Learner algorithms, the reasoner and the learning problem is configurable. You can find a list of components and options here: http://dl-learner.svn.sourceforge.net/viewvc/dl-learner/trunk/interfaces/doc/configOptions.html (also linked from http://dl-learner.org) Please also have a look at this paper (and later ones by d'Amato, Fanizzi and Esposito: http://sunsite.informatik.rwth-aachen.de/Publications/CEUR-WS/Vol-426/swap2008_submission_14.pdf In essence, there are different heuristics for measuring the accuracy of concepts. Some of them take specifically the open world assumption of OWL into account (which basically results in ternary classification), whereas others are standard binary classification methods (predictive accuracy, F-measure). DL-Learner can be configured to use different measures - the exact details depend on your specific requirements. Another directly related issue are the reasoners: You can either use a standard OWL reasoner (which by default assumes an open world), but you could also use the incomplete "fast instance checker" in DL-Learner, which makes a closed world assumption (in a nutshell, it computes basic inferences on the background ontologies using a standard OWL reasoner, but then applies simplified fast instance check algorithms on top of the obtained inferences). By the way, DL-Learner already has an included mechanism for measuring cross validation accuracy: http://dl-learner.svn.sourceforge.net/viewvc/dl-learner/trunk/examples/cross-validation/ (It can also be extended to support "leave one out".) It's a somewhat lengthy answer, but I hope it helps. Kind regards, Jens -- Dr. Jens Lehmann Head of AKSW/MOLE group, University of Leipzig Homepage: http://www.jens-lehmann.org GPG Key: http://jens-lehmann.org/jens_lehmann.asc |
|
From: June <zhu...@gm...> - 2012-11-09 15:37:00
|
Hi all, I am a little confused about the calculation of predictive accuracy here. It will be quite grateful if someone in this list can kick out my troubles~ Suppose we are doing a leave one out validation, and we want to learn the description for concept Female. The knowledge base has Female(ANNE), and ANNE is the one left out for testing. The result of DLLearner is (not Male) in this case, which is quite ideal. But how to test whether ANNE is correctly classified? Do we need to ask the knowledge base whether (not Male(ANNE)) is true? But the knowledge base will always return false for these negated concepts. Thanks a lot! best regards, June On 09/22/2012 07:51 AM, Jens Lehmann wrote: > > Hi June, > > Am 22.09.2012 05:23, schrieb June: >> Hi, Jens, >> >> I have already posted the question to dl-learner mail list, but I have >> not received the reply yet. >> >> I want to check whether the question was received by the mail list. I >> also checked my status of membership in the mail list, and the result >> appears I am indeed a member~~ > > I did reply to the question. Here is the online archive of the list: > http://sourceforge.net/mailarchive/forum.php?thread_name=505B29B9.9080106%40informatik.uni-leipzig.de&forum_name=dl-learner-discussion > > > Maybe, the mail went to your spam folder. > > Kind regards, > > Jens > > |
|
From: Sebastian H. <hel...@in...> - 2012-10-17 21:02:13
|
Here are a lot of learning problems for DL-Learner and DBpedia ;) http://xkcd.com/1122/ I have to admit, that we might need some additional data, such as election outcomes and such. -- Dipl. Inf. Sebastian Hellmann Department of Computer Science, University of Leipzig Events: * http://sabre2012.infai.org/mlode (Leipzig, Sept. 23-24-25, 2012) * http://wole2012.eurecom.fr (*Deadline: July 31st 2012*) Projects: http://nlp2rdf.org , http://dbpedia.org Homepage: http://bis.informatik.uni-leipzig.de/SebastianHellmann Research Group: http://aksw.org |
|
From: nobody <spo...@st...> - 2012-10-17 14:53:46
|
Hi June, your prefix declaration in the config file is wrong. You have to set the prefixes which are used in the ontology, and not a path to the file. For the positive examples the prefix must be http://www.Department0.University0.edu/ . For the negative examples this is much more difficult because it seems that the namespace of the publications depends on the professor. For example http://www.Department0.University0.edu/AssociateProfessor1/Publication8. It seems to me that you added all instances which are not positive as negative examples? You could also use a learning algorithm which only needs the positive examples. DL-Learner provides an option for default negation. Regards, Lorenz > Hi list, > > I am trying to use DLLearner now, and the version I am using is 1.0 > beta 2, the latest release on the dllearner webpage. But I encountered > some exceptions. Could anyone here help me to solve this problem? What > might be the problems with the conf file? Attached are the conf file I > am using, the error log, and the ontology. > > Another question I'd like to know is that in DLLearner is it the case > that when an instance can not be known (by reasoning maybe) to be an > individual of a concept, it is not then. > > Many thanks! > > Best regards, > > June > > > ------------------------------------------------------------------------------ > Everyone hates slow websites. So do we. > Make your web apps faster with AppDynamics > Download AppDynamics Lite for free today: > http://p.sf.net/sfu/appdyn_sfd2d_oct > > > _______________________________________________ > dl-learner-discussion mailing list > dl-...@li... > https://lists.sourceforge.net/lists/listinfo/dl-learner-discussion |
|
From: June <zhu...@gm...> - 2012-10-17 13:06:32
|
Hi list, I am trying to use DLLearner now, and the version I am using is 1.0 beta 2, the latest release on the dllearner webpage. But I encountered some exceptions. Could anyone here help me to solve this problem? What might be the problems with the conf file? Attached are the conf file I am using, the error log, and the ontology. Another question I'd like to know is that in DLLearner is it the case that when an instance can not be known (by reasoning maybe) to be an individual of a concept, it is not then. Many thanks! Best regards, June |
|
From: Jens L. <le...@in...> - 2012-09-20 14:35:44
|
Hello June, Am 20.09.2012 14:44, schrieb June: > Hi, Jens, > > I am a little confused about how the accuracy is measured in your paper > "concept learning in DLs using refinement operator(machine learning > journal)". > > In the API dllearner-1.0-beta-2, suppose 10 solutions can be found with > 100% accuracy and f-measure for the definition of each concept, and > together there are 5 concept. How did you calculate your accuracy > measure in the experiment? > > Did you calculate the correct definitions manually in the total 50 > solutions, and then divide by 50? Or select at most one correct > definition from the solutions for one concept, and calculate the count > divide by 5? Or else? In the experiments in the paper [1], we used cross validation [2]. For each fold in the validation, we measured (predictive) accuracy [3], i.e. the percentage of correctly classified examples (positives and negatives). For this, we always only picked the single best solution generated by an algorithm. The DL-Learner commandline interface usually displays several solutions, but for the experiments only the first one is taken into account. I hope this clarifies the issue. Kind regards, Jens [1] http://jens-lehmann.org/files/2010/concept_learning_mlj.pdf [2] http://en.wikipedia.org/wiki/Cross-validation_%28statistics%29 [3] http://en.wikipedia.org/wiki/Accuracy_and_precision#In_binary_classification -- Dr. Jens Lehmann Head of AKSW/MOLE group, University of Leipzig Homepage: http://www.jens-lehmann.org GPG Key: http://jens-lehmann.org/jens_lehmann.asc |
|
From: June <zhu...@gm...> - 2012-09-20 12:44:44
|
Hi, Jens, I am a little confused about how the accuracy is measured in your paper "concept learning in DLs using refinement operator(machine learning journal)". In the API dllearner-1.0-beta-2, suppose 10 solutions can be found with 100% accuracy and f-measure for the definition of each concept, and together there are 5 concept. How did you calculate your accuracy measure in the experiment? Did you calculate the correct definitions manually in the total 50 solutions, and then divide by 50? Or select at most one correct definition from the solutions for one concept, and calculate the count divide by 5? Or else? Sorry for asking such a trivial question~ best regards, June |
|
From: Jens L. <le...@in...> - 2012-07-12 11:43:24
|
Hello Matthew, sorry for the very late reply. Am 29.06.2012 18:37, schrieb Matthew Byrne: > Hi All > > I'm trying to experiment with modifications to DL-Learner initially by > experimenting with different Refinement Operators. To get the ball > rolling, I copied RhoDRDown.java and: > - changed the name to MpbVersion1 and adjusted the annotation to "mpb" > (where previously there was "rho") > - included a reference to my new file in the "componentClassNames" list > of AnnComponentManager.java > - then tried to run it by changing rho to mpb in an already-working con > file. > > However it does not work. Any ideas how I can make it work? In general what you did is correct. However, not all DL-Learner components are actually implemented in a flexible way. You got the exception, because the used learning algorithm only accepted the RhoDRDown refinement operator instead of using an interface. I just spend some time to abstract away from this for the CELOE learning algorithm, so your problem should now be solved. I added some documentation here during implementation: http://dl-learner.org/wiki/WritingComponents We appreciate further feedback and also source code contributions. Sorry again for the delay. Usually, we are faster in replying mails. Kind regards, Jens -- Dr. Jens Lehmann Head of AKSW/MOLE group, University of Leipzig Homepage: http://www.jens-lehmann.org GPG Key: http://jens-lehmann.org/jens_lehmann.asc |
|
From: Matthew B. <mat...@gm...> - 2012-06-29 17:05:16
|
Hi Sebastian! That's right, we met in Dublin last week. It would be great if I could commit, yes, but there is quite a good chance that I may not produce something that is a worthy improvement upon the work... Thanks - M. On Fri, Jun 29, 2012 at 6:55 PM, Sebastian Hellmann < hel...@in...> wrote: > ** Hi, you were the Matthew i met last week in Dublin right? sorry that i > forgot to introduce you. i didnt have your email address and i didnt want > to bother dave and dominic, seeing how busy they are at the moment. > welcome to the project however. please tell us if we should add your sf > account to the project so you can commit. > all the best, sebastian > -- > Sent with my mobile phone, please excuse my brevity, Sebastian > > > Matthew Byrne <mat...@gm...> wrote: >> >> Hi All >> >> I'm trying to experiment with modifications to DL-Learner initially by >> experimenting with different Refinement Operators. To get the ball rolling, >> I copied RhoDRDown.java and: >> - changed the name to MpbVersion1 and adjusted the annotation to "mpb" >> (where previously there was "rho") >> - included a reference to my new file in the "componentClassNames" list >> of AnnComponentManager.java >> - then tried to run it by changing rho to mpb in an already-working con >> file. >> >> However it does not work. Any ideas how I can make it work? >> >> Thanks in advance, >> >> Matthew >> >> Below is the error that is thrown: >> >> Initializing Component "mpb refinement operator"... OK (11ms) >> >> An Error Has Occurred During Processing. >> Cannot convert value of type >> [org.dllearner.refinementoperators.MpbVersion1] to required type >> [org.dllearner.refinementoperators.RhoDRDown] for property 'operator': no >> matching editors or conversion strategy found >> Stack Trace: >> java.lang.RuntimeException: >> org.springframework.beans.factory.BeanCreationException: Error creating >> bean with name 'alg': Initialization of bean failed; nested exception is >> org.springframework.beans.ConversionNotSupportedException: Failed to >> convert property value of type >> 'org.dllearner.refinementoperators.MpbVersion1' to required type >> 'org.dllearner.refinementoperators.RhoDRDown' for property 'operator'; >> nested exception is java.lang.IllegalStateException: Cannot convert value >> of type [org.dllearner.refinementoperators.MpbVersion1] to required type >> [org.dllearner.refinementoperators.RhoDRDown] for property 'operator': no >> matching editors or conversion strategy found >> at >> org.dllearner.configuration.spring.DefaultApplicationContextBuilder.buildApplicationContext(DefaultApplicationContextBuilder.java:62) >> at org.dllearner.cli.CLI.main(CLI.java:185) >> Caused by: org.springframework.beans.factory.BeanCreationException: Error >> creating bean with name 'alg': Initialization of bean failed; nested >> exception is org.springframework.beans.ConversionNotSupportedException: >> Failed to convert property value of type >> 'org.dllearner.refinementoperators.MpbVersion1' to required type >> 'org.dllearner.refinementoperators.RhoDRDown' for property 'operator'; >> nested exception is java.lang.IllegalStateException: Cannot convert value >> of type [org.dllearner.refinementoperators.MpbVersion1] to required type >> [org.dllearner.refinementoperators.RhoDRDown] for property 'operator': no >> matching editors or conversion strategy found >> at >> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:527) >> at >> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) >> at >> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294) >> at >> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225) >> at >> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291) >> at >> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) >> at >> org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585) >> at >> org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913) >> at >> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464) >> at >> org.dllearner.configuration.spring.DefaultApplicationContextBuilder.buildApplicationContext(DefaultApplicationContextBuilder.java:60) >> ... 1 more >> Caused by: org.springframework.beans.ConversionNotSupportedException: >> Failed to convert property value of type >> 'org.dllearner.refinementoperators.MpbVersion1' to required type >> 'org.dllearner.refinementoperators.RhoDRDown' for property 'operator'; >> nested exception is java.lang.IllegalStateException: Cannot convert value >> of type [org.dllearner.refinementoperators.MpbVersion1] to required type >> [org.dllearner.refinementoperators.RhoDRDown] for property 'operator': no >> matching editors or conversion strategy found >> at >> org.springframework.beans.BeanWrapperImpl.convertIfNecessary(BeanWrapperImpl.java:485) >> at >> org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:516) >> at >> org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:510) >> at >> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.convertForProperty(AbstractAutowireCapableBeanFactory.java:1406) >> at >> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1365) >> at >> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1118) >> at >> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517) >> ... 10 more >> Caused by: java.lang.IllegalStateException: Cannot convert value of type >> [org.dllearner.refinementoperators.MpbVersion1] to required type >> [org.dllearner.refinementoperators.RhoDRDown] for property 'operator': no >> matching editors or conversion strategy found >> at >> org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:241) >> at >> org.springframework.beans.BeanWrapperImpl.convertIfNecessary(BeanWrapperImpl.java:470) >> ... 16 more >> Terminating DL-Learner...and writing stacktrace to: log/error.log >> > |
|
From: Sebastian H. <hel...@in...> - 2012-06-29 17:00:10
|
Hi, you were the Matthew i met last week in Dublin right? sorry that i forgot to introduce you. i didnt have your email address and i didnt want to bother dave and dominic, seeing how busy they are at the moment. welcome to the project however. please tell us if we should add your sf account to the project so you can commit. all the best, sebastian -- Sent with my mobile phone, please excuse my brevity, Sebastian Matthew Byrne <mat...@gm...> wrote: Hi All I'm trying to experiment with modifications to DL-Learner initially by experimenting with different Refinement Operators. To get the ball rolling, I copied RhoDRDown.java and: - changed the name to MpbVersion1 and adjusted the annotation to "mpb" (where previously there was "rho") - included a reference to my new file in the "componentClassNames" list of AnnComponentManager.java - then tried to run it by changing rho to mpb in an already-working con file. However it does not work. Any ideas how I can make it work? Thanks in advance, Matthew Below is the error that is thrown: Initializing Component "mpb refinement operator"... OK (11ms) An Error Has Occurred During Processing. Cannot convert value of type [org.dllearner.refinementoperators.MpbVersion1] to required type [org.dllearner.refinementoperators.RhoDRDown] for property 'operator': no matching editors or conversion strategy found Stack Trace: java.lang.RuntimeException: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'alg': Initialization of bean failed; nested exception is org.springframework.beans.ConversionNotSupportedException: Failed to convert property value of type 'org.dllearner.refinementoperators.MpbVersion1' to required type 'org.dllearner.refinementoperators.RhoDRDown' for property 'operator'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [org.dllearner.refinementoperators.MpbVersion1] to required type [org.dllearner.refinementoperators.RhoDRDown] for property 'operator': no matching editors or conversion strategy found at org.dllearner.configuration.spring.DefaultApplicationContextBuilder.buildApplicationContext(DefaultApplicationContextBuilder.java:62) at org.dllearner.cli.CLI.main(CLI.java:185) Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'alg': Initialization of bean failed; nested exception is org.springframework.beans.ConversionNotSupportedException: Failed to convert property value of type 'org.dllearner.refinementoperators.MpbVersion1' to required type 'org.dllearner.refinementoperators.RhoDRDown' for property 'operator'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [org.dllearner.refinementoperators.MpbVersion1] to required type [org.dllearner.refinementoperators.RhoDRDown] for property 'operator': no matching editors or conversion strategy found at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:527) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464) at org.dllearner.configuration.spring.DefaultApplicationContextBuilder.buildApplicationContext(DefaultApplicationContextBuilder.java:60) ... 1 more Caused by: org.springframework.beans.ConversionNotSupportedException: Failed to convert property value of type 'org.dllearner.refinementoperators.MpbVersion1' to required type 'org.dllearner.refinementoperators.RhoDRDown' for property 'operator'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [org.dllearner.refinementoperators.MpbVersion1] to required type [org.dllearner.refinementoperators.RhoDRDown] for property 'operator': no matching editors or conversion strategy found at org.springframework.beans.BeanWrapperImpl.convertIfNecessary(BeanWrapperImpl.java:485) at org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:516) at org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:510) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.convertForProperty(AbstractAutowireCapableBeanFactory.java:1406) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1365) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1118) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517) ... 10 more Caused by: java.lang.IllegalStateException: Cannot convert value of type [org.dllearner.refinementoperators.MpbVersion1] to required type [org.dllearner.refinementoperators.RhoDRDown] for property 'operator': no matching editors or conversion strategy found at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:241) at org.springframework.beans.BeanWrapperImpl.convertIfNecessary(BeanWrapperImpl.java:470) ... 16 more Terminating DL-Learner...and writing stacktrace to: log/error.log |
|
From: Matthew B. <mat...@gm...> - 2012-06-29 16:37:28
|
Hi All I'm trying to experiment with modifications to DL-Learner initially by experimenting with different Refinement Operators. To get the ball rolling, I copied RhoDRDown.java and: - changed the name to MpbVersion1 and adjusted the annotation to "mpb" (where previously there was "rho") - included a reference to my new file in the "componentClassNames" list of AnnComponentManager.java - then tried to run it by changing rho to mpb in an already-working con file. However it does not work. Any ideas how I can make it work? Thanks in advance, Matthew Below is the error that is thrown: Initializing Component "mpb refinement operator"... OK (11ms) An Error Has Occurred During Processing. Cannot convert value of type [org.dllearner.refinementoperators.MpbVersion1] to required type [org.dllearner.refinementoperators.RhoDRDown] for property 'operator': no matching editors or conversion strategy found Stack Trace: java.lang.RuntimeException: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'alg': Initialization of bean failed; nested exception is org.springframework.beans.ConversionNotSupportedException: Failed to convert property value of type 'org.dllearner.refinementoperators.MpbVersion1' to required type 'org.dllearner.refinementoperators.RhoDRDown' for property 'operator'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [org.dllearner.refinementoperators.MpbVersion1] to required type [org.dllearner.refinementoperators.RhoDRDown] for property 'operator': no matching editors or conversion strategy found at org.dllearner.configuration.spring.DefaultApplicationContextBuilder.buildApplicationContext(DefaultApplicationContextBuilder.java:62) at org.dllearner.cli.CLI.main(CLI.java:185) Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'alg': Initialization of bean failed; nested exception is org.springframework.beans.ConversionNotSupportedException: Failed to convert property value of type 'org.dllearner.refinementoperators.MpbVersion1' to required type 'org.dllearner.refinementoperators.RhoDRDown' for property 'operator'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [org.dllearner.refinementoperators.MpbVersion1] to required type [org.dllearner.refinementoperators.RhoDRDown] for property 'operator': no matching editors or conversion strategy found at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:527) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464) at org.dllearner.configuration.spring.DefaultApplicationContextBuilder.buildApplicationContext(DefaultApplicationContextBuilder.java:60) ... 1 more Caused by: org.springframework.beans.ConversionNotSupportedException: Failed to convert property value of type 'org.dllearner.refinementoperators.MpbVersion1' to required type 'org.dllearner.refinementoperators.RhoDRDown' for property 'operator'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [org.dllearner.refinementoperators.MpbVersion1] to required type [org.dllearner.refinementoperators.RhoDRDown] for property 'operator': no matching editors or conversion strategy found at org.springframework.beans.BeanWrapperImpl.convertIfNecessary(BeanWrapperImpl.java:485) at org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:516) at org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:510) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.convertForProperty(AbstractAutowireCapableBeanFactory.java:1406) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1365) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1118) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517) ... 10 more Caused by: java.lang.IllegalStateException: Cannot convert value of type [org.dllearner.refinementoperators.MpbVersion1] to required type [org.dllearner.refinementoperators.RhoDRDown] for property 'operator': no matching editors or conversion strategy found at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:241) at org.springframework.beans.BeanWrapperImpl.convertIfNecessary(BeanWrapperImpl.java:470) ... 16 more Terminating DL-Learner...and writing stacktrace to: log/error.log |
|
From: Lorenz B. <spo...@st...> - 2012-06-21 19:54:06
|
Hi An, it is difficult to say what going wrong without having your code or at least a runnable, minimal example and maybe some error stack trace. Why do you need a default constructor for the PelletReasoner class? As far as I know, the class works based on the knowledge sources which are given by the constructor. Kind regards, Lorenz > Hi all, > > I tried to use Pellet reasoner with DL-Learner but could not get success. > The original Pellet reasoner wrapper class lacks of the default > constructor (constructor with no parameter). > I tried to add a default constructor and the reasoner can be initialised > and it can load the ontology successfully. > However, a null pointer exception occurred when the hasTypeImpl() method > is called > (e.g. by the learning problem component for the coverage/accuracy > calculation). > > Are there anyone can use this reasoner? I would appreciate for your help > so much if you can help me > to make use of this reasoner in Dl-Learner. > > I am trying to use this reasoner because the fast instance checker seems > to be very slow when I tried to load > the ontology in the showering-duration example in DL-Learner repository. > It took minutes to load this ontology > while the Pellet reasoner takes only several seconds (usually less than > 10s). > > Thanks, > An. > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > dl-learner-discussion mailing list > dl-...@li... > https://lists.sourceforge.net/lists/listinfo/dl-learner-discussion > |
|
From: Tran C. An <tc...@gm...> - 2012-06-21 11:13:45
|
Hi all, I tried to use Pellet reasoner with DL-Learner but could not get success. The original Pellet reasoner wrapper class lacks of the default constructor (constructor with no parameter). I tried to add a default constructor and the reasoner can be initialised and it can load the ontology successfully. However, a null pointer exception occurred when the hasTypeImpl() method is called (e.g. by the learning problem component for the coverage/accuracy calculation). Are there anyone can use this reasoner? I would appreciate for your help so much if you can help me to make use of this reasoner in Dl-Learner. I am trying to use this reasoner because the fast instance checker seems to be very slow when I tried to load the ontology in the showering-duration example in DL-Learner repository. It took minutes to load this ontology while the Pellet reasoner takes only several seconds (usually less than 10s). Thanks, An. |
|
From: Lorenz B. <spo...@st...> - 2012-05-02 06:33:17
|
Hello, sorry for the long delay. Can you please try this version: Protege plugin 0.7beta <http://sourceforge.net/projects/dl-learner/files/Protege%20DL-Learner%20Plugin/0.7/Protege-DL-Learner-plugin-0.7-beta.jar/download> - it is currently in Beta status, but should work with Protege 4.2beta. Regards, Lorenz On 18.04.2012 20:15, soroosh samadian wrote: > Hi All, > > I'm new to DL-Learner. As part of my experiment I need to integrate > some components from DL-Learner into Protege. > > As easy as it may seem I am having difficulty installing the plugin. I > am using Protege_4.2_alpha on windows 7. I downloaded the link but > unzipping the folder will not yield any DL-learner*.jar to be put in > Protege's plugin folder. Also when I tried to do it directly from > Protege-> Preference... DL-learner plugin does not show on the list of > available plugins. > > I also downloaded the previous version jar > (DL-Learner-protege-plugin.jar) and placed it in the plugin folders. > But after editing the (EquivalentTo) nothing related to DL-learner > shows up (tried it with both Protege4.2. alpha and beta) > > Help is much appreciated. > > Thank you, > > Soroush > > > ------------------------------------------------------------------------------ > Better than sec? Nothing is better than sec when it comes to > monitoring Big Data applications. Try Boundary one-second > resolution app monitoring today. Free. > http://p.sf.net/sfu/Boundary-dev2dev > > > _______________________________________________ > dl-learner-discussion mailing list > dl-...@li... > https://lists.sourceforge.net/lists/listinfo/dl-learner-discussion |
|
From: Sebastian H. <hel...@in...> - 2012-04-19 21:03:48
|
Hm, yes, there are actually two use cases: 1. Finding bottlenecks and improve performance, for this we can really use the tools you are suggesting. I used VisualVM sometimes, but I always forget that it exists and code without it ^^ So, I guess this is tackled, well. I might apply for yourkit as well. 2. Whenever we are measuring times, however, to put them in a paper we will probably need something else than a profiler. On the other hand this part is highly client specific and the script that runs the experiment should probably do the measurements. Then everybody can use the prefered library. Thanks, Chris, for clarifying this. I will try and remove all the time logging from the core code and put it in interfaces and use Yourkit instead. VisualVM also does not need an eclipse plugin. I think it is a standalone app also. All the best, Sebastian On 04/19/2012 10:19 PM, Chris Shellenbarger wrote: > Hi Sebastian, > > It sounds like what you're trying to accomplish is to determine bottlenecks in the DL-Learner software in order to increase performance/reduce memory footprint. I think this is a really great idea that all projects should do but very few actually think about. > > Spring is the object factory responsible for the instantiation of the high level components (KS, LearningProblem, LearningAlgorithm, Reasoners,etc) and their configured dependencies. So, we could hook into the object instantiation code and pass any instantiated object to the Jamon MonitorFactory. The downside of this is that it will only monitor the methods defined on an interface as it's using Java dynamic proxies. So, we'd be able to see performance characteristics at the interface method level. Basically, we'd see that LearningAlgorithm.start() would take a lot of time, but not the individual components. > > If we want to identify bottlenecks in DL-Learner, why don't we use a profiling tool to profile the application? This would give us performance metrics for every method called during program execution regardless of whether it was behind an interface or not. Also, there would be no modifications to code to achieve this - we just run the app with the profiler attached. VisualVM provides this functionality and plugs in with Eclipse (http://bit.ly/JoAv2X). Personally, I use YourKit (http://yourkit.com/) which is available for free to open source application developers by following the instructions at (http://bit.ly/JoBsse). It is an incredible tool which I use for all of my programs that I write. > > I don't prefer one metrics library over another - I just want to separate the metrics concern away from the algorithms themselves. This keeps the code lean and easy to understand/maintain. We've done a lot in the last year towards to further this goal by removing the configuration from the algorithms. > > Please let me know what you think about these points and if I'm misunderstanding something. > > Thanks, > Chris > > > -----Original Message----- > From: Sebastian Hellmann [mailto:hel...@in...] > Sent: Thursday, April 19, 2012 9:37 AM > To: Chris Shellenbarger > Cc: dl-...@li... > Subject: Re: [DL-Learner discussion] Jamon logging > > The general problem I have with AOP is that it adds quite a technology stack on top of DL-Learner. Normally, you will need to install additional eclipse plugins and whatnot to weave the aspect into the program and I would not do this for logging alone. > > Jamon is fairly easy to use, but needs some extra cross concern code. On their site however, they state that: > http://jamonapi.sourceforge.net/#jamonmisc > "In fact when totally disabled there is NO PERFORMANCE IMPACT whatsoever, as the actual object is returned and not a monitored object." > > I really don't care, where we insert the time profiling code, but we should decide on one framework to use and then use it consistently. > > I am not so much concerned about third parties in general. DL-Learner's impact would benefit greatly from better speed performance compared to the disadvantage of some cross_cutting Jamon code here and there. I would always opt for the ease of faster finding bottlenecks. > > Have you ever used the Metrics system? The page looks nice, but so does the page of http://projectlombok.org/ (with many disadvantages in the end). Compatibility with VisualVM is also a plus, but I can not judge, whether it is unnecessary overhead. > > All th best, > Sebastian > > > > On 04/19/2012 04:53 PM, Chris Shellenbarger wrote: >> Hi Sebastian, >> I think leveraging metrics is a good idea, and along with other cross cutting concerns<http://bit.ly/JnbghC>, I think we need to be careful and not let it into the components-core main library. A better place for it is up at the interfaces(CLI, etc) level as these are the clients which leverage the core library and do all of the instantiation of the objects they require. The same goes for third parties who are leveraging just the core jar - the responsibility is on the client to inject these types of concerns at runtime. This is important for various reasons, but an important reason that affects third parties is that some may want to use another metrics library like Metrics<http://metrics.codahale.com/> rather than Jamon. Some may want no metrics at all - this is a client specific choice and shouldn't be at the library level. >> >> A nice way of implementing cross cutting concerns like these is to use dynamic proxies/aspect oriented programming (AOP). We can inject these in behind any interface without changing any code. For the clients produced by the DL-Learner team, this can be injected as an aspect to wrap all interfaces instantiated by the Spring ApplicationContext with monitoring code. >> >> Jamon looks like it's using dynamic proxies to wrapper implementations of interfaces - this typically means it can only monitor methods which are on interfaces. The same holds true for Spring's dynamic proxies - you can't inject proxies with abstract or concrete classes other than through some byte code manipulation (compile time weaving). A lot of DL-Learner's methods are defined at the Abstract class level - we can probably analyze these and move the appropriate methods up to an interface. There will be other benefits to components interacting only with interfaces as well. >> >> So, to summarize, in our clients (CLI, etc) we can inject an aspect to leverage Jamon monitoring, but we can't monitor methods which aren't defined in an interface. I believe the client is the place for this type of code to go as it is responsible for instantiating objects- DL-Learner uses Spring for that, but that's not a requirement for third parties. >> >> Please let me know your thoughts on this. >> >> Thanks, >> Chris >> >> From: Sebastian Hellmann [mailto:hel...@in...] >> Sent: Wednesday, April 18, 2012 11:55 PM >> To: dl-...@li... >> Subject: [DL-Learner discussion] Jamon logging >> >> Hi all, >> maybe we can add these three lines, at a place where all the objects such as Knowledgesources are created? >> http://jamonapi.sourceforge.net/#monitoringinterfaces >> >> import com.jamonapi.proxy.*; >> >> >> >> // The MyObject() class has to implement MyInterface for monitoring to work. >> >> MyInterface myObject = (MyInterface) MonProxyFactory.monitor(new >> MyObject()); >> >> myObject.myMethod();// method call will be monitored with JAMon. >> >> >> All the best, >> Sebastian >> >> >> >> -- >> >> Dipl. Inf. Sebastian Hellmann >> >> Department of Computer Science, University of Leipzig >> >> Projects: http://nlp2rdf.org , http://dbpedia.org >> >> Homepage: http://bis.informatik.uni-leipzig.de/SebastianHellmann >> >> Research Group: http://aksw.org >> > > -- > Dipl. Inf. Sebastian Hellmann > Department of Computer Science, University of Leipzig > Projects: http://nlp2rdf.org , http://dbpedia.org > Homepage: http://bis.informatik.uni-leipzig.de/SebastianHellmann > Research Group: http://aksw.org > > > > -- Dipl. Inf. Sebastian Hellmann Department of Computer Science, University of Leipzig Projects: http://nlp2rdf.org , http://dbpedia.org Homepage: http://bis.informatik.uni-leipzig.de/SebastianHellmann Research Group: http://aksw.org |
|
From: Chris S. <chr...@is...> - 2012-04-19 20:20:11
|
Hi Sebastian, It sounds like what you're trying to accomplish is to determine bottlenecks in the DL-Learner software in order to increase performance/reduce memory footprint. I think this is a really great idea that all projects should do but very few actually think about. Spring is the object factory responsible for the instantiation of the high level components (KS, LearningProblem, LearningAlgorithm, Reasoners,etc) and their configured dependencies. So, we could hook into the object instantiation code and pass any instantiated object to the Jamon MonitorFactory. The downside of this is that it will only monitor the methods defined on an interface as it's using Java dynamic proxies. So, we'd be able to see performance characteristics at the interface method level. Basically, we'd see that LearningAlgorithm.start() would take a lot of time, but not the individual components. If we want to identify bottlenecks in DL-Learner, why don't we use a profiling tool to profile the application? This would give us performance metrics for every method called during program execution regardless of whether it was behind an interface or not. Also, there would be no modifications to code to achieve this - we just run the app with the profiler attached. VisualVM provides this functionality and plugs in with Eclipse (http://bit.ly/JoAv2X). Personally, I use YourKit (http://yourkit.com/) which is available for free to open source application developers by following the instructions at (http://bit.ly/JoBsse). It is an incredible tool which I use for all of my programs that I write. I don't prefer one metrics library over another - I just want to separate the metrics concern away from the algorithms themselves. This keeps the code lean and easy to understand/maintain. We've done a lot in the last year towards to further this goal by removing the configuration from the algorithms. Please let me know what you think about these points and if I'm misunderstanding something. Thanks, Chris -----Original Message----- From: Sebastian Hellmann [mailto:hel...@in...] Sent: Thursday, April 19, 2012 9:37 AM To: Chris Shellenbarger Cc: dl-...@li... Subject: Re: [DL-Learner discussion] Jamon logging The general problem I have with AOP is that it adds quite a technology stack on top of DL-Learner. Normally, you will need to install additional eclipse plugins and whatnot to weave the aspect into the program and I would not do this for logging alone. Jamon is fairly easy to use, but needs some extra cross concern code. On their site however, they state that: http://jamonapi.sourceforge.net/#jamonmisc "In fact when totally disabled there is NO PERFORMANCE IMPACT whatsoever, as the actual object is returned and not a monitored object. " I really don't care, where we insert the time profiling code, but we should decide on one framework to use and then use it consistently. I am not so much concerned about third parties in general. DL-Learner's impact would benefit greatly from better speed performance compared to the disadvantage of some cross_cutting Jamon code here and there. I would always opt for the ease of faster finding bottlenecks. Have you ever used the Metrics system? The page looks nice, but so does the page of http://projectlombok.org/ (with many disadvantages in the end). Compatibility with VisualVM is also a plus, but I can not judge, whether it is unnecessary overhead. All th best, Sebastian On 04/19/2012 04:53 PM, Chris Shellenbarger wrote: > Hi Sebastian, > I think leveraging metrics is a good idea, and along with other cross cutting concerns<http://bit.ly/JnbghC>, I think we need to be careful and not let it into the components-core main library. A better place for it is up at the interfaces(CLI, etc) level as these are the clients which leverage the core library and do all of the instantiation of the objects they require. The same goes for third parties who are leveraging just the core jar - the responsibility is on the client to inject these types of concerns at runtime. This is important for various reasons, but an important reason that affects third parties is that some may want to use another metrics library like Metrics<http://metrics.codahale.com/> rather than Jamon. Some may want no metrics at all - this is a client specific choice and shouldn't be at the library level. > > A nice way of implementing cross cutting concerns like these is to use dynamic proxies/aspect oriented programming (AOP). We can inject these in behind any interface without changing any code. For the clients produced by the DL-Learner team, this can be injected as an aspect to wrap all interfaces instantiated by the Spring ApplicationContext with monitoring code. > > Jamon looks like it's using dynamic proxies to wrapper implementations of interfaces - this typically means it can only monitor methods which are on interfaces. The same holds true for Spring's dynamic proxies - you can't inject proxies with abstract or concrete classes other than through some byte code manipulation (compile time weaving). A lot of DL-Learner's methods are defined at the Abstract class level - we can probably analyze these and move the appropriate methods up to an interface. There will be other benefits to components interacting only with interfaces as well. > > So, to summarize, in our clients (CLI, etc) we can inject an aspect to leverage Jamon monitoring, but we can't monitor methods which aren't defined in an interface. I believe the client is the place for this type of code to go as it is responsible for instantiating objects- DL-Learner uses Spring for that, but that's not a requirement for third parties. > > Please let me know your thoughts on this. > > Thanks, > Chris > > From: Sebastian Hellmann [mailto:hel...@in...] > Sent: Wednesday, April 18, 2012 11:55 PM > To: dl-...@li... > Subject: [DL-Learner discussion] Jamon logging > > Hi all, > maybe we can add these three lines, at a place where all the objects such as Knowledgesources are created? > http://jamonapi.sourceforge.net/#monitoringinterfaces > > import com.jamonapi.proxy.*; > > > > // The MyObject() class has to implement MyInterface for monitoring to work. > > MyInterface myObject = (MyInterface) MonProxyFactory.monitor(new > MyObject()); > > myObject.myMethod();// method call will be monitored with JAMon. > > > All the best, > Sebastian > > > > -- > > Dipl. Inf. Sebastian Hellmann > > Department of Computer Science, University of Leipzig > > Projects: http://nlp2rdf.org , http://dbpedia.org > > Homepage: http://bis.informatik.uni-leipzig.de/SebastianHellmann > > Research Group: http://aksw.org > -- Dipl. Inf. Sebastian Hellmann Department of Computer Science, University of Leipzig Projects: http://nlp2rdf.org , http://dbpedia.org Homepage: http://bis.informatik.uni-leipzig.de/SebastianHellmann Research Group: http://aksw.org |