Hello all.

I have the following statements;

<http://www.example.org/ooo/id/operator/example>
                rdfs:label "No language tag" ;
                rdfs:label "@en language tag"@en ;
                rdfs:label "Another @en language tag"@en ;
                rdfs:label "@fr language tag"@fr ;
                rdfs:label "test"@x ;
                rdfs:label "test"@y .

I'm using the following code to create a new model containing a filtered set of 
statements based on the language tag;

                public String getLabel(String language) {
                                Model m = 
ModelFactory.createDefaultModel().add(this.model.listStatements(this.resource, 
RDFS.label, (String)null, language));
                                System.out.println(m.size());
                                StmtIterator i = m.listStatements();
                                Statement s;
                                while (i.hasNext()) {
                                                s = i.nextStatement();
                                                
System.out.println(s.toString());
                                }
                }

However if I pass in "en" I get a model with 6 statements..?

[http://www.example.org/ooo/id/operator/example, 
http://www.w3.org/2000/01/rdf-schema#label, "@en language tag"@en]
[http://www.example.org/ooo/id/operator/example, 
http://www.w3.org/2000/01/rdf-schema#label, "Another @en language tag"@en]
[http://www.example.org/ooo/id/operator/example, 
http://www.w3.org/2000/01/rdf-schema#label, "@fr language tag"@fr]
[http://www.example.org/ooo/id/operator/example, 
http://www.w3.org/2000/01/rdf-schema#label, "No language tag"]
[http://www.example.org/ooo/id/operator/example, 
http://www.w3.org/2000/01/rdf-schema#label, "test"@x]
[http://www.example.org/ooo/id/operator/example, 
http://www.w3.org/2000/01/rdf-schema#label, "test"@y]

If execute the following I get 0 statements;

this.model.listStatements(this.resource, RDFS.label, "test", (String)null)

If I execute the following I get 1 statement;

this.model.listStatements(this.resource, RDFS.label, "test", "x")

The javadoc states that the subject/predicate/object will match all if null. 
But it doesn't mention the language.

Can I get an iterator over the statements which match a subject/predicate and 
language tag or do I need to do my own filtering..?

Reply via email to