174_pdb_structures_via_pdbj_federation
- PDB
- federated query
- PDBj
Starting from human tumor suppressor TP53 (P04637), federate live with PDBj/RDF Portal's wwPDB RDF to list the extended, versioned wwPDB identifier (e.g. pdb_00002bq0, not the legacy 4-character code) of every PDB entry that has been experimentally solved for it. This goes through PDBj's own pdbo:link_to_uniprot cross-reference rather than UniProt's local rdfs:seeAlso/database cross-reference, so it is a genuine two-endpoint federated query, not a locally-built PDB identifier
Use at
PREFIX up: <http://purl.uniprot.org/core/>
PREFIX uniprotkb: <http://purl.uniprot.org/uniprot/>
PREFIX pdbo: <http://rdf.wwpdb.org/schema/pdbx-with-vrptx-v50.owl#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
SELECT
?extendedPdbId
#?pdb
WHERE {
BIND(uniprotkb:P04637 AS ?protein)
# Compare with cross-reference stored in UniProtKB
#?protein rdfs:seeAlso ?pdb .
#?pdb up:database <http://purl.uniprot.org/database/wwPDB>
SERVICE <https://rdfportal.org/pdb/sparql> {
?structRef pdbo:link_to_uniprot ?protein .
?pdbEntry pdbo:has_struct_refCategory/pdbo:has_struct_ref ?structRef .
# Entries carry both their legacy 4-character code and the newer,
# extended/versioned wwPDB identifier as skos:altLabel; the extended
# one is the only one starting with "pdb_".
?pdbEntry skos:altLabel ?extendedPdbId .
FILTER(STRSTARTS(?extendedPdbId, "pdb_"))
}
}
graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
v2("?extendedPdbId"):::projected
v4("?pdbEntry")
v1("?protein")
v3("?structRef")
a1((" "))
bind0[/"'uniprotkb:P04637'"/]
bind0 --as--o v1
subgraph s1["https://rdfportal.org/pdb/sparql"]
style s1 stroke-width:4px;
f1[["starts-with(?extendedPdbId,'pdb_')"]]
f1 --> v2
v3 --http://rdf.wwpdb.org/schema/pdbx-with-vrptx-v50.owl#link_to_uniprot--> v1
v4 --http://rdf.wwpdb.org/schema/pdbx-with-vrptx-v50.owl#has_struct_refCategory--> a1
a1 --http://rdf.wwpdb.org/schema/pdbx-with-vrptx-v50.owl#has_struct_ref--> v3
v4 --"skos:altLabel"--> v2
end