Re: fuseki ontmodel capacity

2015-06-25 Thread Paul Tyson
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 ;
> 
> Well, depending on the frequencies of
> 
> ?  ex:p1 "v1"
> and
> ?  ex:p2 
> 
> 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.

> 
> > # ...all properties of _:a
> > .
> > }
> >
> > Is there hope of fast performance in this scenario?
> 
> Yes.

To be clear, my class definitions are like:
 owl:equivalentClass [owl:intersectionOf (
  [owl:unionOf (  ...)]
  [owl:unionOf (  ...)]
  )];
 owl:equivalentClass [owl:Restriction;
  owl:onProperty ex:p1;
  owl:hasValue "v1"].
 owl:equivalentClass [owl:Restriction;
  owl:onProperty ex:p2;
  owl:hasValue "v2"].

I expect to find ,, 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
> >
> 




Re: fuseki2 ontmodel config

2015-06-25 Thread Paul Tyson
Thanks Andy. Simple fix, noted below.

However, it turns out I have OWL2 constructs (datatype restrictions)
that apparently are not handled by the Jena OWL reasoners.

On Thu, 2015-06-25 at 12:56 +0100, Andy Seaborne wrote:
> Hi Paul,
> 
> On 25/06/15 03:42, Paul Tyson wrote:
> > I cannot piece together a workable configuration for fuseki2 with an
> > OntModel.
> >
> > Combining the config-tdb-dir template with info from
> > http://jena.markmail.org/message/wr3f6gy5orxbszyd I get the config shown
> > below.
> >
> > When I put this as file "tdb-owl.ttl" in the FUSEKI_BASE/configuration
> > directory, fuseki says "Can't find .../tdb-owl.ttl" on startup. When I
> > point to it with --config option on fuseki-server.bat command line,
> > fuseki starts but the dataset does not appear.
> 
> In each case, what does the log file show?
> 
> For the --config case do you get these two lines adjacent?
> 
> [...] Config INFO  Configuration file: config.ttl
> [...] Server INFO  Started 2015/06/25 12:45:20 BST on port 3030
> 
> >
> 
> This config will not work with v2.0.0 and --config because it is missing:
> 
> 
> [ ja:loadClass  "com.hp.hpl.jena.tdb.TDB" ] .
> 
> tdb:DatasetTDB  rdfs:subClassOf  ja:RDFDataset .
> tdb:GraphTDB  rdfs:subClassOf  ja:Model .
> 

I had that much.

> 
> [] rdf:type fuseki:Server ;
>fuseki:services (
>   <#service_tdb>
> ) .

Ah, I was missing the fuseki:services property. That fixed it.

> 
> 
> (the development version does not need this)
> 
> 
> I can't tell what the "Can't find .../tdb-owl.ttl" but it might be a 
> now-fixed-bug JENA-915
> 
> Would it be possible for you to try the development build v2.3.0 (Java8 
> required).
> 
> https://repository.apache.org/content/groups/snapshots/org/apache/jena/jena-fuseki/2.3.0-SNAPSHOT/
> 

Unfortunately, not at this time, as I must work through remaining issues
on this proof-of-concept.

Regards,
--Paul

>   Andy
> 
> > <#service_tdb> rdf:type fuseki:Service ;
> >  rdfs:label  "TDB DB" ;
> >  fuseki:name "db" ;
> >  fuseki:serviceQuery "query" ;
> >  fuseki:serviceQuery "sparql" ;
> >  fuseki:serviceUpdate"update" ;
> >  fuseki:serviceUpload"upload" ;
> >  fuseki:serviceReadWriteGraphStore  "data" ;
> >  # A separate read-only graph store endpoint:
> >  fuseki:serviceReadGraphStore   "get" ;
> >  fuseki:dataset   <#dataset> ;
> >  .
> >
> > <#dataset> rdf:type   ja:RDFDataset ;
> > ja:defaultGraph   <#model_inf> ;
> >  .
> >
> > <#model_inf> rdf:type ja:OntModel ;
> >  ja:baseModel <#tdbGraph> ;
> >  ja:ontModelSpec ja:OWL_DL_MEM_RULE_INF;
> > .
> >
> > <#tdbDataset> rdf:type tdb:DatasetTDB ;
> > tdb:location "DB" ;
> > .
> >
> > <#tdbGraph> rdf:type tdb:GraphTDB ;
> > tdb:dataset <#tdbDataset>
> > .
> >
> > Thanks,
> > --Paul
> >
> 




Re: fuseki2 ontmodel config

2015-06-25 Thread Andy Seaborne

Hi Paul,

On 25/06/15 03:42, Paul Tyson wrote:

I cannot piece together a workable configuration for fuseki2 with an
OntModel.

Combining the config-tdb-dir template with info from
http://jena.markmail.org/message/wr3f6gy5orxbszyd I get the config shown
below.

When I put this as file "tdb-owl.ttl" in the FUSEKI_BASE/configuration
directory, fuseki says "Can't find .../tdb-owl.ttl" on startup. When I
point to it with --config option on fuseki-server.bat command line,
fuseki starts but the dataset does not appear.


In each case, what does the log file show?

For the --config case do you get these two lines adjacent?

[...] Config INFO  Configuration file: config.ttl
[...] Server INFO  Started 2015/06/25 12:45:20 BST on port 3030





This config will not work with v2.0.0 and --config because it is missing:


[ ja:loadClass  "com.hp.hpl.jena.tdb.TDB" ] .

tdb:DatasetTDB  rdfs:subClassOf  ja:RDFDataset .
tdb:GraphTDB  rdfs:subClassOf  ja:Model .


[] rdf:type fuseki:Server ;
  fuseki:services (
 <#service_tdb>
   ) .


(the development version does not need this)


I can't tell what the "Can't find .../tdb-owl.ttl" but it might be a 
now-fixed-bug JENA-915


Would it be possible for you to try the development build v2.3.0 (Java8 
required).


https://repository.apache.org/content/groups/snapshots/org/apache/jena/jena-fuseki/2.3.0-SNAPSHOT/

Andy


<#service_tdb> rdf:type fuseki:Service ;
 rdfs:label  "TDB DB" ;
 fuseki:name "db" ;
 fuseki:serviceQuery "query" ;
 fuseki:serviceQuery "sparql" ;
 fuseki:serviceUpdate"update" ;
 fuseki:serviceUpload"upload" ;
 fuseki:serviceReadWriteGraphStore  "data" ;
 # A separate read-only graph store endpoint:
 fuseki:serviceReadGraphStore   "get" ;
 fuseki:dataset   <#dataset> ;
 .

<#dataset> rdf:type   ja:RDFDataset ;
ja:defaultGraph   <#model_inf> ;
 .

<#model_inf> rdf:type ja:OntModel ;
 ja:baseModel <#tdbGraph> ;
 ja:ontModelSpec ja:OWL_DL_MEM_RULE_INF;
.

<#tdbDataset> rdf:type tdb:DatasetTDB ;
tdb:location "DB" ;
.

<#tdbGraph> rdf:type tdb:GraphTDB ;
tdb:dataset <#tdbDataset>
.

Thanks,
--Paul