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

Reply via email to