Yes I was using the same ARQ with a different version of Fuseki. I think that Fuseki have the improvement in the MINUS sentence...
2012/7/5 Milorad Tosic <[email protected]> > I do not understand now what has happened? First, you said that you were > using ARQ 2.9.2 and measured 10x faster FILTER w.r.t. MINUS. Then, you > tried instead the same query but with Fuseki 0.2.3 that should be using the > same ARQ 2.9.2 version, but got the opposite result. Is that right? Looks > like you run one of the experiments with different ARQ version (unless > Fuseki does some magic :-)) > > > > >________________________________ > > From: Federico López <[email protected]> > >To: [email protected] > >Sent: Thursday, July 5, 2012 8:51 PM > >Subject: Re: I need to get the root element of a ontology > > > >I have run it with Fuseki Server 0.2.3 using the MINUS sentence an takes > >0.499 s using the same Ontology that I have used before. > > > >And when a I try with the big one FMA (1'800.000 triples) it seems like > >works faster than the FILTER sentece... > > > >2012/7/5 Federico López <[email protected]> > > > >> Well... I'm using the libraries that I get from de Maven Repository... > >> Excuse me... I just have check and I have been using ARQ 2.9.2... But > the > >> Fuseki it is the old one... I going to try with the 0.2.3 version... > >> Thanks A lot... > >> > >> > >> 2012/7/5 Stephen Allen <[email protected]> > >> > >>> Do you mind trying it with Fuseki 0.2.3? That contains ARQ 2.9.2 > >>> which has the performance improvement for MINUS queries that Andy was > >>> referring to. > >>> > >>> -Stephen > >>> > >>> [1] http://www.apache.org/dist/jena/binaries/ > >>> > >>> > >>> On Thu, Jul 5, 2012 at 10:55 AM, Federico López <[email protected]> > wrote: > >>> > Mi PC is an Intel Core 2 Quad Q2800 @2.33Ghz 2.33Ghz... And I have > 4GB > >>> of > >>> > RAM... (Excuse my poor English) > >>> > > >>> > 2012/7/5 Federico López <[email protected]> > >>> > > >>> >> I try the two queries in my Java project (I usea ARQ 2.8.8 and > Fuseki > >>> >> 0.2.2) using with JUnit test. > >>> >> With the FILTER NOT EXISTS sentece takes 0.724s (or less) querying > the > >>> >> roots in RadLex Ontology ( 234.442 triples), with the MINUS sentence > >>> >> takes 56.762s (even more)... > >>> >> > >>> >> > >>> >> 2012/7/5 Andy Seaborne <[email protected]> > >>> >> > >>> >>> On 05/07/12 18:30, Milorad Tosic wrote: > >>> >>> > >>> >>>> Would there by any differences in performance or eventually in > result > >>> >>>> set if we would substitute > >>> >>>> FILTER NOT EXISTS { ?root rdfs:subClassOf ?super } > >>> >>>> with > >>> >>>> > >>> >>>> MINUS { ?root rdfs:subClassOf ?super } > >>> >>>> in the previous query? > >>> >>>> > >>> >>>> Milorad > >>> >>>> > >>> >>> > >>> >>> Depends - also the required temporary memory needed is different. > The > >>> >>> MINUS implement is quite performant now (previously it would have > been > >>> >>> the case the FILTER version was faster). > >>> >>> > >>> >>> The FILTER version streams - constant memory overhead. > >>> >>> > >>> >>> The MINUS version uses temporary RAM - in proportion to the size of > >>> the > >>> >>> data matched. > >>> >>> > >>> >>> If there are a lot of rdfs:subClassOf, e.g. have expanded the > >>> inferences > >>> >>> previous, it could be the MINUS version is slower. > >>> >>> > >>> >>> You'll have to try to be definitive. If you try, do let us know. > >>> >>> > >>> >>> Andy > >>> >>> > >>> >>> > >>> >>> > >>> >>>> > >>> >>>> > >>> >>>> ______________________________**__ > >>> >>>>> From: Federico López <[email protected]> > >>> >>>>> To: [email protected] > >>> >>>>> Sent: Thursday, July 5, 2012 5:28 PM > >>> >>>>> Subject: Re: I need to get the root element of a ontology > >>> >>>>> > >>> >>>>> 2012/7/5 Andy Seaborne <[email protected]> > >>> >>>>> > >>> >>>>> On 05/07/12 06:49, Federico López wrote: > >>> >>>>>> > >>> >>>>>> I looking for a good quey that allows me to get the roots > >>> elements of > >>> >>>>>>> a > >>> >>>>>>> Ontology. Also, I need to know wich one of these roots have > >>> >>>>>>> children... > >>> >>>>>>> > >>> >>>>>>> > >>> >>>>>>> > >>> >>>>>>> Version of Jena used? > >>> >>>>>> I'm using fuseki 0.2.2... > >>> >>>>>> > >>> >>>>>> I have each ontology in a NAMED GRAPH.... > >>> >>>>>> > >>> >>>>>>> > >>> >>>>>>> > >>> >>>>>> And you are querying the union graph? > >>> >>>>>> > >>> >>>>> > >>> >>>>> > >>> >>>>> I'm Querying each GRAPH at time... > >>> >>>>> > >>> >>>>> > >>> >>>>>> > >>> >>>>>> > >>> >>>>>> This is what I using for it but the query is taking too much. > >>> >>>>>>> > >>> >>>>>>> > >>> >>>>>> How big is the data (in triples)? > >>> >>>>>> > >>> >>>>>> Well... I'm querying Biomedical Ontologies like FMA(1'859.969 > >>> >>>>> triples), > >>> >>>>> RadLex(234.442), ICD10(165.310)... > >>> >>>>> > >>> >>>>> > >>> >>>>>> Are you using inference? > >>> >>>>>> > >>> >>>>> > >>> >>>>> I don't.... > >>> >>>>> > >>> >>>>> > >>> >>>>>> > >>> >>>>>> > >>> >>>>>> SELECT DISTINCT ?root ?label (COUNT(?child) AS ?nChild) > >>> >>>>>>> FROM <http://ontologyURI> > >>> >>>>>>> WHERE > >>> >>>>>>> { > >>> >>>>>>> ?root a ?class . > >>> >>>>>>> ?class rdfs:subClassOf owl:Class . > >>> >>>>>>> ?root rdfs:label ?label . > >>> >>>>>>> OPTIONAL { > >>> >>>>>>> ?root rdfs:subClassOf ?super . > >>> >>>>>>> } > >>> >>>>>>> OPTIONAL { > >>> >>>>>>> ?child rdfs:subClassOf ?root . > >>> >>>>>>> } > >>> >>>>>>> FILTER (!bound(?super)) > >>> >>>>>>> } > >>> >>>>>>> GROUP BY ?root ?label > >>> >>>>>>> > >>> >>>>>>> Any idea? > >>> >>>>>>> > >>> >>>>>>> Thanks... > >>> >>>>>>> > >>> >>>>>>> > >>> >>>>>>> > >>> >>>>>>> without inference, this maybe what you want: I'm guessing from > >>> your > >>> >>>>>> description: > >>> >>>>>> > >>> >>>>>> SELECT ?root > >>> >>>>>> { > >>> >>>>>> # A root is something that is of type class > >>> >>>>>> # which has no super class mentioned. > >>> >>>>>> ?root rdf:type owl:Class . > >>> >>>>>> FILTER NOT EXISTS { ?root rdfs:subClassOf ?super } > >>> >>>>>> > >>> >>>>>> ?root rdfs:label ?label . > >>> >>>>>> } > >>> >>>>>> > >>> >>>>>> Adding in the COUNT of ?child and GROUP BY is unlikely to be > cheap. > >>> >>>>>> > >>> >>>>>> SELECT ?root (COUNT(DISTINCT ?child) AS ?nChild) > >>> >>>>>> { > >>> >>>>>> # A root is something that is of type class > >>> >>>>>> # which has no super class mentioned. > >>> >>>>>> ?root rdf:type owl:Class . > >>> >>>>>> FILTER NOT EXISTS { ?root rdfs:subClassOf ?super } > >>> >>>>>> > >>> >>>>>> ?root rdfs:label ?label . > >>> >>>>>> # Children, any depth, by property paths > >>> >>>>>> OPTIONAL { ?child rdfs:subClassOf+ ?root } > >>> >>>>>> } > >>> >>>>>> GROUP BY ?root > >>> >>>>>> Andy > >>> >>>>>> > >>> >>>>>> > >>> >>>>> And thanks, I going to try your query, but I think that is just > >>> that I > >>> >>>>> need > >>> >>>>> :D > >>> >>>>> > >>> >>>>> -- > >>> >>>>> *FEDERICO LÓPEZ GÓMEZ* > >>> >>>>> Estudiante Ingeniería de Sistemas > >>> >>>>> Universidad del Valle - Sede Tuluá > >>> >>>>> > >>> >>>>> > >>> >>>>> > >>> >>>>> > >>> >>> > >>> >>> > >>> >> > >>> >> > >>> >> -- > >>> >> *FEDERICO LÓPEZ GÓMEZ* > >>> >> Estudiante Ingeniería de Sistemas > >>> >> Universidad del Valle - Sede Tuluá > >>> >> > >>> >> > >>> > > >>> > > >>> > -- > >>> > *FEDERICO LÓPEZ GÓMEZ* > >>> > Estudiante Ingeniería de Sistemas > >>> > Universidad del Valle - Sede Tuluá > >>> > >> > >> > >> > >> -- > >> *FEDERICO LÓPEZ GÓMEZ* > >> Estudiante Ingeniería de Sistemas > >> Universidad del Valle - Sede Tuluá > >> > >> > > > > > >-- > >*FEDERICO LÓPEZ GÓMEZ* > >Estudiante Ingeniería de Sistemas > >Universidad del Valle - Sede Tuluá > > > > > > > -- *FEDERICO LÓPEZ GÓMEZ* Estudiante Ingeniería de Sistemas Universidad del Valle - Sede Tuluá
