Thanks Andy. It's working well. Frank.
Andy Seaborne <[email protected]> wrote on 06/29/2011 03:33:29 PM: > [image removed] > > Re: Possible ARQ bug? > > Andy Seaborne > > to: > > jena-users > > 06/29/2011 03:34 PM > > Please respond to jena-users > > I've added the necessary processing to check in the base data and to > calculate the inferred rdfs:member triples. > > Code in the latest snapshot build. > > Andy > > On 15/06/11 19:05, Frank Budinsky wrote: > > Hi Andy, > > > >> So far - one off list, two on-list and one [email protected] emails > >> about this, all in less than 4 hours. :-) > > > > Sorry about the extra noise. Looks like Arthur and I were independently > > pursuing the same issue. > > > >> Would you like to propose a patch? (it'll get done quicker > >> that way) > >> > >> See > >> ... pfunction/function/container.java > > > > I'll be on vacation for a few days, starting tomorrow, but I'll try to play > > around with it when I get back. > > > > Thanks, > > Frank. > > > > > > Andy Seaborne<[email protected]> wrote on 06/15/2011 12:45:01 > > PM: > > > >> [image removed] > >> > >> Re: Possible ARQ bug? > >> > >> Andy Seaborne > >> > >> to: > >> > >> jena-users > >> > >> 06/15/2011 12:45 PM > >> > >> Please respond to jena-users > >> > >> So far - one off list, two on-list and one [email protected] emails > >> about this, all in less than 4 hours. :-) > >> > >> On 15/06/11 16:53, Frank Budinsky wrote: > >>> > >>> > >>> Hi, > >>> > >>> I'm having a problem querying for rdfs:member predicates. Here is a > > test > >>> program: > >>> > >>> public static void main( String[] args ) > >>> { > >>> Dataset dataset = TDBFactory.createDataset(); > >>> Model model = dataset.getDefaultModel(); > >>> //PropertyFunctionRegistry.get().remove(RDFS.member.getURI ()) ; > >>> String xml = > >>> "<?xml version=\"1.0\"?>" + > >>> "<rdf:RDF xmlns:rdf= > >>> \"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" " + > >>> " xmlns:rdfs= > >>> \"http://www.w3.org/2000/01/rdf-schema#\">" + > >>> "<rdf:Description rdf:about= > >>> \"http://example.com/query\">" + > >>> "<rdfs:member rdf:resource= > >>> \"http://example.com/bugs/5\" />" + > >>> "<rdfs:member rdf:resource= > >>> \"http://example.com/bugs/4\" />" + > >>> "<rdfs:member rdf:resource= > >>> \"http://example.com/bugs/3\" />" + > >>> "<rdfs:member rdf:resource= > >>> \"http://example.com/bugs/2\" />" + > >>> "<rdfs:member rdf:resource= > >>> \"http://example.com/bugs/1\" />" + > >>> "</rdf:Description>" + > >> > >> Out of curiousity, why not use a container? > >> > >> (OK - they aren't nice but then none of the datastructures are nice) > >> > >>> "</rdf:RDF>"; > >>> model.read(new ByteArrayInputStream(xml.getBytes()), null); > >>> String queryString = > >>> "PREFIX rdf: > >>> <http://www.w3.org/1999/02/22-rdf-syntax-ns#> " + > >>> "PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#> " + > >>> "SELECT ?resource ?member WHERE { " + > >>> " ?resource rdfs:member ?member " + > >>> " } "; > >>> > >>> Query query = QueryFactory.create(queryString); > >>> QueryExecution qexec = QueryExecutionFactory.create(query, > >>> dataset); > >>> ResultSet result = qexec.execSelect(); > >>> ResultSetFormatter.out(System.out, result, query); > >>> qexec.close(); > >>> } > >>> > >>> When I run it, I'm getting no results. > >>> > >>> If I uncomment this line: > >>> > >>> //PropertyFunctionRegistry.get().remove(RDFS.member.getURI ()) ; > >>> > >>> then it returns the 5 expected results. > >>> > >>> It seems that when rdfs:member inferencing is enabled, it no longer > > matches > >>> concrete rdfs:member predicates. Is that not an ARQ bug? > >> > >> There's no reason I can think of why it shouldn't also look for > >> rdfs:member. Would you like to propose a patch? (it'll get done quicker > >> that way) > >> > >> See > >> ... pfunction/function/container.java > >> > >> (there is a small issue about cardinality of mixed use over rules but > >> this does not really makes it worse or better) > >> > >> An idiomatic trick is: > >> > >> { ?s ?p ?o . FILTER(?p = rdfs:member) } > >> > >> and it scales, oddly, because identify optimization happens after > >> property function spotting. > >> > >> Andy > >> > >>> > >>> Thanks, > >>> Frank
