Hi Andy, further questions below.

On Fri, 2015-06-26 at 18:47 +0100, Andy Seaborne wrote:
> On 25/06/15 17:35, Paul Tyson wrote:
> > Hi Andy, no joy yet.
> >
> > On Wed, 2015-06-24 at 22:36 +0100, Andy Seaborne wrote:
> >> On 24/06/15 21:37, Paul Tyson wrote:
> >>> Before working through the configuration of an ontology model in
> >>> fuseki2, I wanted to ask if anyone has experience with large models.
> >>>
> >>> I estimate there will be 250K class definitions, about 40M triples.
> >>
> >> That's not that large :-)
> >> (There are installations I've worked with x10 that many triples).
> >>
> >> What hardware are you running on?
> >
> > I just took a small sample (500 class definitions), and am running on a
> > Windows laptop with 4Gb memory.
> >
> >>
> >>>
> >>> My queries will be for instance checking:
> >>>
> >>> select ?class
> >>> where {
> >>> _:a rdf:type ?class;
> >>>    ex:p1 "v1";
> >>>    ex:p2 <R1>;
> >>
> >> Well, depending on the frequencies of
> >>
> >> ?  ex:p1 "v1"
> >> and
> >> ?  ex:p2 <R1>
> >>
> >> that query will be quite fast.  i.e. if there is a property-object that
> >> selects a few resources (100s), then that 's no much of a stress test
> >> should work fine.
> >
> > I specified OWL_MEM_MICRO_RULE_INF for the OntModel. Fuseki grinds on
> > this query for a long time (more than 30 minutes) and consumes all
> > memory and cpu.
> 
> That's because there is inference as well as storage.  Ontology model 
> don't have to have inference.
> 
> The rule engine and TDB can interact badly, especially as the database 
> grows relative to the available RAM.

Is there a configuration to avoid this bad behavior?

> 
> Which of the micro rules do you have a requirement for?

At this point I only need someValuesFrom, allValuesFrom, intersectionOf,
unionOf, hasValue, equivalentClass. I see a comment in one of the rules
files that intersectionOf is implemented procedurally. What triggers the
intersectionOf functionality, in case of a customized ruleset?

I also need datatype restrictions from OWL2. I started to write rules
for it, but the owl:withRestrictions facet list seems to present the
same problem as intersectionOf, as it requires iterating through a list.
I could brute-force it by writing explicit rules to cover all the
possible patterns in my data.

Regards,
--Paul

> 
>       Andy
> 
> 
> 
> >
> >>
> >>> # ...all properties of _:a
> >>> .
> >>> }
> >>>
> >>> Is there hope of fast performance in this scenario?
> >>
> >> Yes.
> >
> > To be clear, my class definitions are like:
> > <Class1> owl:equivalentClass [owl:intersectionOf (
> >    [owl:unionOf (<A1> <A2> ...)]
> >    [owl:unionOf (<B1> <B2> ...)]
> >    )];
> > <A1> owl:equivalentClass [owl:Restriction;
> >    owl:onProperty ex:p1;
> >    owl:hasValue "v1"].
> > <B1> owl:equivalentClass [owl:Restriction;
> >    owl:onProperty ex:p2;
> >    owl:hasValue "v2"].
> >
> > I expect to find <Class1>,<A1>,<B1> as a rdf:types of [ex:p1 "v1";ex:p2
> > "v2"].
> >
> > Eventually I need to use OWL2 datatype restrictions, so it doesn't
> > appear the current Jena OWL reasoner will get me there, but I wanted to
> > explore the capabilities.
> >
> > I need to get some other tools to validate the ontology to make sure
> > there's nothing pathological, but on inspection it looks OK.
> >
> > Regards,
> > --Paul
> >
> >>
> >>>
> >>> Any other approaches for better performance?
> >>>
> >>> Thanks,
> >>> --Paul
> >>>
> >>
> >
> >
> 


Reply via email to