- From: Reto Bachmann-Gmür <reto@gmuer.ch>
- Date: Thu, 24 Nov 2005 08:16:26 +0100
- To: Reto Bachmann-Gmür <reto@gmuer.ch>
- CC: Joshua Tauberer <tauberer@for.net>, yzqu@seu.edu.cn, semantic-web at W3C <semantic-web@w3c.org>
I've implemented the algorithm I described yesterday for jena (with litle fixes). The source is here: http://gmuer.ch/2005/11/24/leanifier A jar containing source, classes and junit-test ist here: http://gmuer.ch/2005/11/24/rdf-leanifier I'm happy to add new tests while I hope someone finds a way to make things faster. Just to get an idea on how long it takes: It took 27ms to find out that a 2 statements model is lean It took 22831ms to find out that a 253 statements model is lean It took 5ms to reduce a model from 4 to 2 statements It took 1ms to reduce a model from 4 to 2 statements Guess, how long will it take to leanify a model with 150278 statements (that's the size of the model of the website at http://www.osar.ch/)? reto Reto Bachmann-Gmür schrieb: > Just saw the first (fixable) bug, see below > > I wrote: > >> .... >> >>boolean implies(Node n1, Node n2, List history1, List history2, Set knownNotImplying, Set conditionalImplications) { >>..... >> for every other statement (n2, p, o2) or (o2, p, n2) in p2 check if there is a statement (n1, p, o1) respectively (o1, p, n1) in p1 with the same predicate and for which implies(o1, o2, history1.clone(),history2.clone(), knownNotImplying, conditionalImplications) is true, otherwise add {n1, n2} to knownNotImpying an return false; >> conditionalImplications.add({n1, n2}) and return true; >> >> > The recursive call to implies(...) may add elements to > conditionalImplications which should be removed when the mehod return > false, so before every "return false" the conditionalImplications-set > should be reset to the same values as when the method was invoked. > > probably not the last bug.... > > > reto
Received on Thursday, 24 November 2005 07:17:30 UTC