You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jena.apache.org by Jerven Bolleman <je...@sib.swiss> on 2019/10/23 14:42:00 UTC

IllegalStateException: Duplicate key rdf

Hi All,

I have a set of queries and I keep on getting this kind of stacktrace 
with fuseki 3.13.1.

java.lang.IllegalStateException: Duplicate key rdf (attempted merging 
values http://www.w3.org/1999/02/22-rdf-syntax-ns# and 
http://www.w3.org/1999/02/22-rdf-syntax-ns)
         at 
java.base/java.util.stream.Collectors.duplicateKeyException(Collectors.java:133)
         at 
java.base/java.util.stream.Collectors.lambda$uniqKeysMapAccumulator$1(Collectors.java:180)
         at 
java.base/java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
         at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
         at 
java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
         at 
java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
         at 
java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
         at 
java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
         at 
java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
         at 
java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
         at 
org.apache.jena.dboe.storage.prefixes.PrefixMapBase.getMappingCopy(PrefixMapBase.java:44)
         at 
org.apache.jena.dboe.storage.prefixes.PrefixMappingOverPrefixMapI.getNsPrefixMap(PrefixMappingOverPrefixMapI.java:97)
         at 
org.apache.jena.rdf.model.impl.ModelCom.getNsPrefixMap(ModelCom.java:1083)
         at 
org.apache.jena.shared.impl.PrefixMappingImpl.setNsPrefixes(PrefixMappingImpl.java:138)
         at 
org.apache.jena.rdf.model.impl.ModelCom.setNsPrefixes(ModelCom.java:1055)
         at 
org.apache.jena.sparql.engine.QueryExecutionBase.insertPrefixesInto(QueryExecutionBase.java:611)
         at 
org.apache.jena.sparql.engine.QueryExecutionBase.insertPrefixesInto(QueryExecutionBase.java:624)
         at 
org.apache.jena.sparql.engine.QueryExecutionBase.execConstructDataset(QueryExecutionBase.java:272)
         at 
org.apache.jena.sparql.engine.QueryExecutionBase.execConstructDataset(QueryExecutionBase.java:264)

one of the construct queries triggering this

PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>PREFIX 
uniprot:<http://purl.uniprot.org/uniprot/>PREFIX 
sequence:<http://purl.uniprot.org/sequences/>PREFIX 
unirule:<http://purl.uniprot.org/unirules/>PREFIX 
taxon:<http://purl.uniprot.org/taxonomy/>PREFIX 
GO:<http://purl.obolibrary.org/obo/GO_>PREFIX 
rdfs:<http://www.w3.org/2000/01/rdf-schema#>PREFIX 
up:<http://purl.uniprot.org/core/>PREFIX 
faldo:<http://biohackathon.org/resource/faldo#>PREFIX 
edam:<http://edamontology.org/>PREFIX 
keyword:<http://purl.uniprot.org/keywords/>PREFIX 
owl:<http://www.w3.org/2002/07/owl#>PREFIX 
skos:<http://www.w3.org/2004/02/skos/core#>PREFIX 
proteome:<http://purl.uniprot.org/proteomes/>PREFIX 
signature:<http://purl.uniprot.org/hamap/>PREFIX 
chebi:<http://purl.obolibrary.org/obo/CHEBI_>PREFIX 
eco:<http://purl.obolibrary.org/obo/ECO_>PREFIX 
annotation:<http://purl.uniprot.org/annotation/>PREFIX 
isoform:<http://purl.uniprot.org/isoforms/>PREFIX 
xsd:<http://www.w3.org/2001/XMLSchema#>CONSTRUCT { _:167 up:source 
unirule:MF_00001 ._:168 up:source unirule:MF_00001 ._:169 up:source 
unirule:MF_00001 ._:170 up:source unirule:MF_00001 ._:171 up:source 
unirule:MF_00001 ._:172 up:source unirule:MF_00001 ._:173 up:source 
unirule:MF_00001 ._:174 up:source unirule:MF_00001 ._:175 up:source 
unirule:MF_00001 ._:176 up:source unirule:MF_00001 .?this 
up:alternativeName ?h1 ; up:annotation ?j3 , ?l5 , ?m6 ; 
up:classifiedWith GO:0004070 , GO:0006221 , keyword:665 , keyword:808 ; 
up:recommendedName ?g0 .?g0 up:ecName '2.1.3.2' ; up:fullName 'Aspartate 
carbamoyltransferase' ; rdf:type up:Structured_Name .?h1 up:fullName 
'Aspartate transcarbamylase' ; up:shortName 'ATCase' ; rdf:type 
up:Structured_Name .?i2 skos:prefLabel 'pyrB' .?j3 up:activity ?k4 ; 
rdf:type up:Catalytic_Activity_Annotation .?k4 up:catalyticActivity 
<http://rdf.rhea-db.org/20013>; up:enzymeClass 
<http://purl.uniprot.org/enzyme/2.1.3.2>.?l5 a up:Pathway_Annotation ; 
rdfs:comment 'Pyrimidine metabolism; UMP biosynthesis via de novo 
pathway; (S)-dihydroorotate from bicarbonate: step 2/3.' .?m6 a 
up:Similarity_Annotation ; rdfs:comment 'Belongs to the ATCase/OTCase 
family.' . _:177 a rdf:Statement ; up:attribution _:167 ; rdf:subject 
?this ; rdf:predicate up:recommendedName ; rdf:object ?g0 . _:178 a 
rdf:Statement ; up:attribution _:168 ; rdf:subject ?this ; rdf:predicate 
up:alternativeName ; rdf:object ?h1 . _:179 a rdf:Statement ; 
up:attribution _:169 ; rdf:subject ?i2 ; rdf:predicate up:encodedBy ; 
rdf:object ?i2 . _:180 a rdf:Statement ; up:attribution _:170 ; 
rdf:subject ?this ; rdf:predicate up:annotation ; rdf:object ?j3 . _:181 
a rdf:Statement ; up:attribution _:171 ; rdf:subject ?this ; 
rdf:predicate up:annotation ; rdf:object ?l5 . _:182 a rdf:Statement ; 
up:attribution _:172 ; rdf:subject ?this ; rdf:predicate up:annotation ; 
rdf:object ?m6 . _:183 a rdf:Statement ; up:attribution _:173 ; 
rdf:subject ?this ; rdf:predicate up:classifiedWith ; rdf:object 
keyword:665 . _:184 a rdf:Statement ; up:attribution _:174 ; rdf:subject 
?this ; rdf:predicate up:classifiedWith ; rdf:object keyword:808 . _:185 
a rdf:Statement ; up:attribution _:175 ; rdf:subject ?this ; 
rdf:predicate up:classifiedWith ; rdf:object GO:0004070 . _:186 a 
rdf:Statement ; up:attribution _:176 ; rdf:subject ?this ; rdf:predicate 
up:classifiedWith ; rdf:object GO:0006221 . } WHERE { VALUES ?v88 
{taxon:2 taxon:2157} ?this up:organism ?thisOrganism ; rdfs:seeAlso 
signature:MF_00001 .?thisOrganism rdfs:subClassOf+ ?v88 . 
BIND(URI(CONCAT(STR(?this), '#MF_00001a0')) AS ?g0) 
.BIND(URI(CONCAT(STR(?this), '#MF_00001a1')) AS ?h1) 
.BIND(URI(CONCAT(STR(?this), '#MF_00001a3')) AS ?j3) 
.BIND(URI(CONCAT(STR(?this), '#MF_00001a5')) AS ?l5) 
.BIND(URI(CONCAT(STR(?this), '#MF_00001a6')) AS ?m6) .OPTIONAL { ?this a 
up:Protein . ?this up:organism ?thisOrganism .?thisOrganism 
rdfs:subClassOf+ taxon:2157 . BIND(?this AS ?n7) .} }


What is the silly thing that I am doing wrong?
Explicitly binding the rdf prefix again should be ok right?

Regards,
Jerven

Re: IllegalStateException: Duplicate key rdf

Posted by Jerven Tjalling Bolleman <Je...@sib.swiss>.
Hi Andy, All,

As discussed offline.

Yes, this surfaces because my code has a bug too.

Fixed in.
https://github.com/JervenBolleman/pftools3/commit/db26152e5acdc346ccf6d81cd8c63ade62a2c1d9

So that makes it a non urgent bug.

Regards,
Jerven


On 2019-10-23 17:57, Andy Seaborne wrote:
> Hi Jerven,
> 
> I can only recreate this if the data has:
> 
> PREFIX  rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
> PREFIX  rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns>
> 
> i.e. same prefix, two settings, different URiIs
> and it is TDB2 specific.
> 
> In the stacktrace:
>> java.lang.IllegalStateException: Duplicate key rdf (attempted merging
>> values http://www.w3.org/1999/02/22-rdf-syntax-ns# and
>> http://www.w3.org/1999/02/22-rdf-syntax-ns)
> 
> the URIs are different by a #.
> 
> When run from the command line it shows as a warning and the query
> does execute albeit results without prefixes.
> 
> WARN  Exception in insertPrefixes: Duplicate key ex (attempted merging
> values http://example/ns1# and http://example/ns2/)
> 
> Is that what you see?
> 
> Recorded as:
> https://issues.apache.org/jira/browse/JENA-1773
> 
>     Andy
> 
> On 23/10/2019 15:42, Jerven Bolleman wrote:
>> Hi All,
>> 
>> I have a set of queries and I keep on getting this kind of stacktrace 
>> with fuseki 3.13.1.
>> 
>> java.lang.IllegalStateException: Duplicate key rdf (attempted merging 
>> values http://www.w3.org/1999/02/22-rdf-syntax-ns# and 
>> http://www.w3.org/1999/02/22-rdf-syntax-ns)
>>          at 
>> java.base/java.util.stream.Collectors.duplicateKeyException(Collectors.java:133) 
>>          at 
>> java.base/java.util.stream.Collectors.lambda$uniqKeysMapAccumulator$1(Collectors.java:180) 
>>          at 
>> java.base/java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169) 
>>          at 
>> java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
>>          at 
>> java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801) 
>>          at 
>> java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) 
>>          at 
>> java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) 
>>          at 
>> java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913) 
>>          at 
>> java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) 
>>          at 
>> java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578) 
>>          at 
>> org.apache.jena.dboe.storage.prefixes.PrefixMapBase.getMappingCopy(PrefixMapBase.java:44) 
>>          at 
>> org.apache.jena.dboe.storage.prefixes.PrefixMappingOverPrefixMapI.getNsPrefixMap(PrefixMappingOverPrefixMapI.java:97) 
>>          at 
>> org.apache.jena.rdf.model.impl.ModelCom.getNsPrefixMap(ModelCom.java:1083)
>>          at 
>> org.apache.jena.shared.impl.PrefixMappingImpl.setNsPrefixes(PrefixMappingImpl.java:138) 
>>          at 
>> org.apache.jena.rdf.model.impl.ModelCom.setNsPrefixes(ModelCom.java:1055)
>>          at 
>> org.apache.jena.sparql.engine.QueryExecutionBase.insertPrefixesInto(QueryExecutionBase.java:611) 
>>          at 
>> org.apache.jena.sparql.engine.QueryExecutionBase.insertPrefixesInto(QueryExecutionBase.java:624) 
>>          at 
>> org.apache.jena.sparql.engine.QueryExecutionBase.execConstructDataset(QueryExecutionBase.java:272) 
>>          at 
>> org.apache.jena.sparql.engine.QueryExecutionBase.execConstructDataset(QueryExecutionBase.java:264) 
>> one of the construct queries triggering this
>> 
>> PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>PREFIX 
>> uniprot:<http://purl.uniprot.org/uniprot/>PREFIX 
>> sequence:<http://purl.uniprot.org/sequences/>PREFIX 
>> unirule:<http://purl.uniprot.org/unirules/>PREFIX 
>> taxon:<http://purl.uniprot.org/taxonomy/>PREFIX 
>> GO:<http://purl.obolibrary.org/obo/GO_>PREFIX 
>> rdfs:<http://www.w3.org/2000/01/rdf-schema#>PREFIX 
>> up:<http://purl.uniprot.org/core/>PREFIX 
>> faldo:<http://biohackathon.org/resource/faldo#>PREFIX 
>> edam:<http://edamontology.org/>PREFIX 
>> keyword:<http://purl.uniprot.org/keywords/>PREFIX 
>> owl:<http://www.w3.org/2002/07/owl#>PREFIX 
>> skos:<http://www.w3.org/2004/02/skos/core#>PREFIX 
>> proteome:<http://purl.uniprot.org/proteomes/>PREFIX 
>> signature:<http://purl.uniprot.org/hamap/>PREFIX 
>> chebi:<http://purl.obolibrary.org/obo/CHEBI_>PREFIX 
>> eco:<http://purl.obolibrary.org/obo/ECO_>PREFIX 
>> annotation:<http://purl.uniprot.org/annotation/>PREFIX 
>> isoform:<http://purl.uniprot.org/isoforms/>PREFIX 
>> xsd:<http://www.w3.org/2001/XMLSchema#>CONSTRUCT { _:167 up:source 
>> unirule:MF_00001 ._:168 up:source unirule:MF_00001 ._:169 up:source 
>> unirule:MF_00001 ._:170 up:source unirule:MF_00001 ._:171 up:source 
>> unirule:MF_00001 ._:172 up:source unirule:MF_00001 ._:173 up:source 
>> unirule:MF_00001 ._:174 up:source unirule:MF_00001 ._:175 up:source 
>> unirule:MF_00001 ._:176 up:source unirule:MF_00001 .?this 
>> up:alternativeName ?h1 ; up:annotation ?j3 , ?l5 , ?m6 ; 
>> up:classifiedWith GO:0004070 , GO:0006221 , keyword:665 , keyword:808 
>> ; up:recommendedName ?g0 .?g0 up:ecName '2.1.3.2' ; up:fullName 
>> 'Aspartate carbamoyltransferase' ; rdf:type up:Structured_Name .?h1 
>> up:fullName 'Aspartate transcarbamylase' ; up:shortName 'ATCase' ; 
>> rdf:type up:Structured_Name .?i2 skos:prefLabel 'pyrB' .?j3 
>> up:activity ?k4 ; rdf:type up:Catalytic_Activity_Annotation .?k4 
>> up:catalyticActivity <http://rdf.rhea-db.org/20013>; up:enzymeClass 
>> <http://purl.uniprot.org/enzyme/2.1.3.2>.?l5 a up:Pathway_Annotation ; 
>> rdfs:comment 'Pyrimidine metabolism; UMP biosynthesis via de novo 
>> pathway; (S)-dihydroorotate from bicarbonate: step 2/3.' .?m6 a 
>> up:Similarity_Annotation ; rdfs:comment 'Belongs to the ATCase/OTCase 
>> family.' . _:177 a rdf:Statement ; up:attribution _:167 ; rdf:subject 
>> ?this ; rdf:predicate up:recommendedName ; rdf:object ?g0 . _:178 a 
>> rdf:Statement ; up:attribution _:168 ; rdf:subject ?this ; 
>> rdf:predicate up:alternativeName ; rdf:object ?h1 . _:179 a 
>> rdf:Statement ; up:attribution _:169 ; rdf:subject ?i2 ; rdf:predicate 
>> up:encodedBy ; rdf:object ?i2 . _:180 a rdf:Statement ; up:attribution 
>> _:170 ; rdf:subject ?this ; rdf:predicate up:annotation ; rdf:object 
>> ?j3 . _:181 a rdf:Statement ; up:attribution _:171 ; rdf:subject ?this 
>> ; rdf:predicate up:annotation ; rdf:object ?l5 . _:182 a rdf:Statement 
>> ; up:attribution _:172 ; rdf:subject ?this ; rdf:predicate 
>> up:annotation ; rdf:object ?m6 . _:183 a rdf:Statement ; 
>> up:attribution _:173 ; rdf:subject ?this ; rdf:predicate 
>> up:classifiedWith ; rdf:object keyword:665 . _:184 a rdf:Statement ; 
>> up:attribution _:174 ; rdf:subject ?this ; rdf:predicate 
>> up:classifiedWith ; rdf:object keyword:808 . _:185 a rdf:Statement ; 
>> up:attribution _:175 ; rdf:subject ?this ; rdf:predicate 
>> up:classifiedWith ; rdf:object GO:0004070 . _:186 a rdf:Statement ; 
>> up:attribution _:176 ; rdf:subject ?this ; rdf:predicate 
>> up:classifiedWith ; rdf:object GO:0006221 . } WHERE { VALUES ?v88 
>> {taxon:2 taxon:2157} ?this up:organism ?thisOrganism ; rdfs:seeAlso 
>> signature:MF_00001 .?thisOrganism rdfs:subClassOf+ ?v88 . 
>> BIND(URI(CONCAT(STR(?this), '#MF_00001a0')) AS ?g0) 
>> .BIND(URI(CONCAT(STR(?this), '#MF_00001a1')) AS ?h1) 
>> .BIND(URI(CONCAT(STR(?this), '#MF_00001a3')) AS ?j3) 
>> .BIND(URI(CONCAT(STR(?this), '#MF_00001a5')) AS ?l5) 
>> .BIND(URI(CONCAT(STR(?this), '#MF_00001a6')) AS ?m6) .OPTIONAL { ?this 
>> a up:Protein . ?this up:organism ?thisOrganism .?thisOrganism 
>> rdfs:subClassOf+ taxon:2157 . BIND(?this AS ?n7) .} }
>> 
>> 
>> What is the silly thing that I am doing wrong?
>> Explicitly binding the rdf prefix again should be ok right?
>> 
>> Regards,
>> Jerven

-- 
Jerven Tjalling Bolleman
SIB | Swiss Institute of Bioinformatics
CMU - 1, rue Michel Servet - 1211 Geneva 4
t: +41 22 379 58 85 - f: +41 22 379 58 58
Jerven.Bolleman@sib.swiss - http://www.sib.swiss


Re: IllegalStateException: Duplicate key rdf

Posted by Andy Seaborne <an...@apache.org>.
Hi Jerven,

I can only recreate this if the data has:

PREFIX  rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX  rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns>

i.e. same prefix, two settings, different URiIs
and it is TDB2 specific.

In the stacktrace:
 > java.lang.IllegalStateException: Duplicate key rdf (attempted merging
 > values http://www.w3.org/1999/02/22-rdf-syntax-ns# and
 > http://www.w3.org/1999/02/22-rdf-syntax-ns)

the URIs are different by a #.

When run from the command line it shows as a warning and the query does 
execute albeit results without prefixes.

WARN  Exception in insertPrefixes: Duplicate key ex (attempted merging 
values http://example/ns1# and http://example/ns2/)

Is that what you see?

Recorded as:
https://issues.apache.org/jira/browse/JENA-1773

     Andy

On 23/10/2019 15:42, Jerven Bolleman wrote:
> Hi All,
> 
> I have a set of queries and I keep on getting this kind of stacktrace 
> with fuseki 3.13.1.
> 
> java.lang.IllegalStateException: Duplicate key rdf (attempted merging 
> values http://www.w3.org/1999/02/22-rdf-syntax-ns# and 
> http://www.w3.org/1999/02/22-rdf-syntax-ns)
>          at 
> java.base/java.util.stream.Collectors.duplicateKeyException(Collectors.java:133) 
> 
>          at 
> java.base/java.util.stream.Collectors.lambda$uniqKeysMapAccumulator$1(Collectors.java:180) 
> 
>          at 
> java.base/java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169) 
> 
>          at 
> java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
>          at 
> java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801) 
> 
>          at 
> java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) 
> 
>          at 
> java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) 
> 
>          at 
> java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913) 
> 
>          at 
> java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) 
> 
>          at 
> java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578) 
> 
>          at 
> org.apache.jena.dboe.storage.prefixes.PrefixMapBase.getMappingCopy(PrefixMapBase.java:44) 
> 
>          at 
> org.apache.jena.dboe.storage.prefixes.PrefixMappingOverPrefixMapI.getNsPrefixMap(PrefixMappingOverPrefixMapI.java:97) 
> 
>          at 
> org.apache.jena.rdf.model.impl.ModelCom.getNsPrefixMap(ModelCom.java:1083)
>          at 
> org.apache.jena.shared.impl.PrefixMappingImpl.setNsPrefixes(PrefixMappingImpl.java:138) 
> 
>          at 
> org.apache.jena.rdf.model.impl.ModelCom.setNsPrefixes(ModelCom.java:1055)
>          at 
> org.apache.jena.sparql.engine.QueryExecutionBase.insertPrefixesInto(QueryExecutionBase.java:611) 
> 
>          at 
> org.apache.jena.sparql.engine.QueryExecutionBase.insertPrefixesInto(QueryExecutionBase.java:624) 
> 
>          at 
> org.apache.jena.sparql.engine.QueryExecutionBase.execConstructDataset(QueryExecutionBase.java:272) 
> 
>          at 
> org.apache.jena.sparql.engine.QueryExecutionBase.execConstructDataset(QueryExecutionBase.java:264) 
> 
> 
> one of the construct queries triggering this
> 
> PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>PREFIX 
> uniprot:<http://purl.uniprot.org/uniprot/>PREFIX 
> sequence:<http://purl.uniprot.org/sequences/>PREFIX 
> unirule:<http://purl.uniprot.org/unirules/>PREFIX 
> taxon:<http://purl.uniprot.org/taxonomy/>PREFIX 
> GO:<http://purl.obolibrary.org/obo/GO_>PREFIX 
> rdfs:<http://www.w3.org/2000/01/rdf-schema#>PREFIX 
> up:<http://purl.uniprot.org/core/>PREFIX 
> faldo:<http://biohackathon.org/resource/faldo#>PREFIX 
> edam:<http://edamontology.org/>PREFIX 
> keyword:<http://purl.uniprot.org/keywords/>PREFIX 
> owl:<http://www.w3.org/2002/07/owl#>PREFIX 
> skos:<http://www.w3.org/2004/02/skos/core#>PREFIX 
> proteome:<http://purl.uniprot.org/proteomes/>PREFIX 
> signature:<http://purl.uniprot.org/hamap/>PREFIX 
> chebi:<http://purl.obolibrary.org/obo/CHEBI_>PREFIX 
> eco:<http://purl.obolibrary.org/obo/ECO_>PREFIX 
> annotation:<http://purl.uniprot.org/annotation/>PREFIX 
> isoform:<http://purl.uniprot.org/isoforms/>PREFIX 
> xsd:<http://www.w3.org/2001/XMLSchema#>CONSTRUCT { _:167 up:source 
> unirule:MF_00001 ._:168 up:source unirule:MF_00001 ._:169 up:source 
> unirule:MF_00001 ._:170 up:source unirule:MF_00001 ._:171 up:source 
> unirule:MF_00001 ._:172 up:source unirule:MF_00001 ._:173 up:source 
> unirule:MF_00001 ._:174 up:source unirule:MF_00001 ._:175 up:source 
> unirule:MF_00001 ._:176 up:source unirule:MF_00001 .?this 
> up:alternativeName ?h1 ; up:annotation ?j3 , ?l5 , ?m6 ; 
> up:classifiedWith GO:0004070 , GO:0006221 , keyword:665 , keyword:808 ; 
> up:recommendedName ?g0 .?g0 up:ecName '2.1.3.2' ; up:fullName 'Aspartate 
> carbamoyltransferase' ; rdf:type up:Structured_Name .?h1 up:fullName 
> 'Aspartate transcarbamylase' ; up:shortName 'ATCase' ; rdf:type 
> up:Structured_Name .?i2 skos:prefLabel 'pyrB' .?j3 up:activity ?k4 ; 
> rdf:type up:Catalytic_Activity_Annotation .?k4 up:catalyticActivity 
> <http://rdf.rhea-db.org/20013>; up:enzymeClass 
> <http://purl.uniprot.org/enzyme/2.1.3.2>.?l5 a up:Pathway_Annotation ; 
> rdfs:comment 'Pyrimidine metabolism; UMP biosynthesis via de novo 
> pathway; (S)-dihydroorotate from bicarbonate: step 2/3.' .?m6 a 
> up:Similarity_Annotation ; rdfs:comment 'Belongs to the ATCase/OTCase 
> family.' . _:177 a rdf:Statement ; up:attribution _:167 ; rdf:subject 
> ?this ; rdf:predicate up:recommendedName ; rdf:object ?g0 . _:178 a 
> rdf:Statement ; up:attribution _:168 ; rdf:subject ?this ; rdf:predicate 
> up:alternativeName ; rdf:object ?h1 . _:179 a rdf:Statement ; 
> up:attribution _:169 ; rdf:subject ?i2 ; rdf:predicate up:encodedBy ; 
> rdf:object ?i2 . _:180 a rdf:Statement ; up:attribution _:170 ; 
> rdf:subject ?this ; rdf:predicate up:annotation ; rdf:object ?j3 . _:181 
> a rdf:Statement ; up:attribution _:171 ; rdf:subject ?this ; 
> rdf:predicate up:annotation ; rdf:object ?l5 . _:182 a rdf:Statement ; 
> up:attribution _:172 ; rdf:subject ?this ; rdf:predicate up:annotation ; 
> rdf:object ?m6 . _:183 a rdf:Statement ; up:attribution _:173 ; 
> rdf:subject ?this ; rdf:predicate up:classifiedWith ; rdf:object 
> keyword:665 . _:184 a rdf:Statement ; up:attribution _:174 ; rdf:subject 
> ?this ; rdf:predicate up:classifiedWith ; rdf:object keyword:808 . _:185 
> a rdf:Statement ; up:attribution _:175 ; rdf:subject ?this ; 
> rdf:predicate up:classifiedWith ; rdf:object GO:0004070 . _:186 a 
> rdf:Statement ; up:attribution _:176 ; rdf:subject ?this ; rdf:predicate 
> up:classifiedWith ; rdf:object GO:0006221 . } WHERE { VALUES ?v88 
> {taxon:2 taxon:2157} ?this up:organism ?thisOrganism ; rdfs:seeAlso 
> signature:MF_00001 .?thisOrganism rdfs:subClassOf+ ?v88 . 
> BIND(URI(CONCAT(STR(?this), '#MF_00001a0')) AS ?g0) 
> .BIND(URI(CONCAT(STR(?this), '#MF_00001a1')) AS ?h1) 
> .BIND(URI(CONCAT(STR(?this), '#MF_00001a3')) AS ?j3) 
> .BIND(URI(CONCAT(STR(?this), '#MF_00001a5')) AS ?l5) 
> .BIND(URI(CONCAT(STR(?this), '#MF_00001a6')) AS ?m6) .OPTIONAL { ?this a 
> up:Protein . ?this up:organism ?thisOrganism .?thisOrganism 
> rdfs:subClassOf+ taxon:2157 . BIND(?this AS ?n7) .} }
> 
> 
> What is the silly thing that I am doing wrong?
> Explicitly binding the rdf prefix again should be ok right?
> 
> Regards,
> Jerven