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 <fic...@gmail.com>

> 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 <sal...@apache.org>
>
>> 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 <fic...@gmail.com> 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 <fic...@gmail.com>
>> >
>> >> 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 <a...@apache.org>
>> >>
>> >>> 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 <fic...@gmail.com>
>> >>>>> To: users@jena.apache.org
>> >>>>> 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 <a...@apache.org>
>> >>>>>
>> >>>>>  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á

Reply via email to