prokn

Protein Knowledge Network

The Protein Knowledge Network (ProKN) integrates protein-centric data with the genomic-centric datasets of the Common Fund Data Ecosystem (CFDE), spanning heterogeneous biological data types across multiple domains to foster CFDE re-use and collaboration through enhanced connectivity and data integration, enabling new capabilities for functional genomics and systems-level understanding of disease mechanisms.

81.9M triples
25 classes
115 properties
11.9M subjects

The Protein Knowledge Network (ProKN), developed by the University of Delaware as part of the NIH Common Fund Data Ecosystem (CFDE), is an integrative bioinformatics platform designed to harmonize and explore complex relationships within protein-related data. By utilizing a knowledge graph approach, ProKN links proteins with their post-translational modifications, genetic variants, and functional pathways, offering specialized tools like KSMoFinder for predicting kinase-substrate interactions, as well as services for ID mapping, variant mapping, and protein embeddings. The portal supports the FAIR data principles by providing advanced visualization interfaces alongside programmatic access via SPARQL and REST APIs, ultimately enabling researchers to bridge disparate datasets and generate new hypotheses for precision medicine and drug discovery.

Find genes associated with Alzheimer's disease
PREFIX ns: <https://research.bioinformatics.udel.edu/ProKN/rdf/>
PREFIX dc: <http://purl.org/dc/terms/>
PREFIX obo: <http://purl.obolibrary.org/obo/>
PREFIX upcore: <http://purl.uniprot.org/core/>
PREFIX efo: <http://www.ebi.ac.uk/efo/EFO_>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX biolink: <https://biolink.github.io/biolink-model/>

SELECT DISTINCT
(?gene AS ?GeneURI)
(?geneLabel AS ?GeneName)
(?gSAB AS ?GeneSource)
(?disease AS ?DiseaseURI)
(?diseaseLabel AS ?DiseaseName)
(?dSAB AS ?DiseaseSource)
WHERE {
  # Find the Alzheimer's disease by its label
        ?disease a ?diseaseType ;
    rdfs:label ?diseaseLabel ;
    dc:source ?dSAB.
        FILTER((?diseaseType = upcore:Disease || ?diseaseType = efo:0000651) && CONTAINS(LCASE(?diseaseLabel), "alzheimer"))

  # Find genes associated with this disease
        ?gene biolink:associated_with ?disease ;
    a upcore:Gene;
    rdfs:label ?geneLabel ;
    dc:source ?gSAB.
}
ORDER BY ?geneLabel
graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
  v12("?DiseaseName")
  v13("?DiseaseSource")
  v11("?DiseaseURI")
  v9("?GeneName")
  v10("?GeneSource")
  v8("?GeneURI")
  v5("?dSAB"):::projected 
  v4("?disease"):::projected 
  v3("?diseaseLabel"):::projected 
  v2("?diseaseType")
  v7("?gSAB"):::projected 
  v6("?gene"):::projected 
  v1("?geneLabel"):::projected 
  c8([http://purl.uniprot.org/core/Gene]):::iri 
  f0[["(?diseaseType = http://purl.uniprot.org/core/Disease || ?diseaseType = http://www.ebi.ac.uk/efo/EFO_0000651)contains(lower-case(?diseaseLabel),'alzheimer')"]]
  f0 --> v2
  f0 --> v3
  v4 --"a"-->  v2
  v4 --"rdfs:label"-->  v3
  v4 --"dct:source"-->  v5
  v6 --"https://biolink.github.io/biolink-model/associated_with"-->  v4
  v6 --"a"-->  c8
  v6 --"rdfs:label"-->  v1
  v6 --"dct:source"-->  v7
  bind1[/"?gene"/]
  v6 --o bind1
  bind1 --as--o v8
  bind2[/"?geneLabel"/]
  v1 --o bind2
  bind2 --as--o v9
  bind3[/"?gSAB"/]
  v7 --o bind3
  bind3 --as--o v10
  bind4[/"?disease"/]
  v4 --o bind4
  bind4 --as--o v11
  bind5[/"?diseaseLabel"/]
  v3 --o bind5
  bind5 --as--o v12
  bind6[/"?dSAB"/]
  v5 --o bind6
  bind6 --as--o v13
Find Properties and Relationships Associated with a Specific Gene(e.g., APOE)
PREFIX ns: <https://research.bioinformatics.udel.edu/ProKN/rdf/>
PREFIX upcore: <http://purl.uniprot.org/core/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

SELECT DISTINCT 
(?Subject   AS ?SubjectURI)
(?Predicate AS ?PredicateURI)
(?Object    AS ?ObjectValue)
WHERE {
  ?Subject a upcore:Gene;
    rdfs:label "APOE".
  ?Subject ?Predicate ?Object
}
ORDER BY ?Subject
graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
  v3("?Object"):::projected 
  v6("?ObjectValue")
  v2("?Predicate"):::projected 
  v5("?PredicateURI")
  v1("?Subject"):::projected 
  v4("?SubjectURI")
  c2([http://purl.uniprot.org/core/Gene]):::iri 
  c4(["APOE"]):::literal 
  v1 --"a"-->  c2
  v1 --"rdfs:label"-->  c4
  v1 -->v2--> v3
  bind0[/"?Subject"/]
  v1 --o bind0
  bind0 --as--o v4
  bind1[/"?Predicate"/]
  v2 --o bind1
  bind1 --as--o v5
  bind2[/"?Object"/]
  v3 --o bind2
  bind2 --as--o v6
Find phosphorylation sites that are likely to be downregulated by a perturbagen
PREFIX fma: <http://sig.uw.edu/fma#>
PREFIX up: <http://purl.uniprot.org/core/>
PREFIX bao: <http://www.bioassayontology.org/bao#BAO_>
PREFIX allotrope: <http://purl.allotrope.org/ontologies/result#>
PREFIX biolink: <https://biolink.github.io/biolink-model/>
PREFIX so: <http://purl.obolibrary.org/obo/SO_>
PREFIX obo: <http://purl.obolibrary.org/obo/>
PREFIX eco: <http://purl.obolibrary.org/obo/ECO_>
PREFIX ns: <https://research.bioinformatics.udel.edu/ProKN/rdf/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX dc: <http://purl.org/dc/terms/>
PREFIX upcore: <http://purl.uniprot.org/core/>
PREFIX schema: <http://schema.org/>
PREFIX reproduceme: <https://w3id.org/reproduceme#>

SELECT DISTINCT (?pert as ?Perturbagen)(?pertLabel as ?PerturbagenLabel)(?oph as ?Phosphorylation)(?ophLabel as ?PhosphorylationLabel)
WHERE {

    ## ================================================
    ## VALUES block for specifying perturbagen of interest
    ## ================================================
    VALUES ?pertLabel { "Selumetinib" }  # Can add more perturbagens here

    {
        ## ================================================
        ## BLOCK 1: LINCS P100 data - driven approach
        ## This block finds phosphorylation sites experimentally observed 
        ## to be downregulated in LINCS P100 phosphoproteomics data
        ## ================================================

        ## 1. Identify the perturbagen entity
        ?pert a bao:0003059;                # Instance of Perturbagen class
              rdfs:label ?pertLabel.        # With matching label

        ## 2. Link perturbagen to experiment via ECO:9000000(perturbagen used in)
        ?r rdf:subject ?pert ;
           rdf:predicate eco:9000000;       # "perturbagen used in" relation
           rdf:object ?e.
        ?e a reproduceme:Experiment.        # Experiment entity

        ## 3. Retrieve LINCS phosphosite perturbation effects
        ?r1 rdf:subject ?lincs ;
            rdf:predicate biolink:affected_by;   # "is result of" relation
            rdf:object ?e ;
            ns:log2Ratio ?diff_val.               # Experimental log2 fold-change

        # FILTER for downregulation (≤ -1 log2 fold-change)
        FILTER(xsd:decimal(?diff_val) <= -1.0)

        ## 4. Connect LINCS phosphosite to its protein (bidirectional relation)
        { ?r2 rdf:subject ?lincs ; rdf:object ?lincssub. }    # Site → Protein
        UNION
        { ?r2 rdf:subject ?lincssub ; rdf:object ?lincs. }    # Protein → Site
        ?lincssub a upcore:Protein.                # Protein entity

        ## 5. Map to iPTMnet phosphorylation annotation
        ## Bidirectional connection between protein and PTM annotation
        { ?r5 rdf:subject ?lincssub ; rdf:object ?iptm. }
        UNION
        { ?r5 rdf:subject ?iptm ; rdf:object ?lincssub. }
        
        ?iptm a upcore:PTM_Annotation;             # iPTMnet modification annotation
               dc:source "iPTMnet";                 # From iPTMnet database
               dc:type "PHOSPHORYLATION";           # Specifically phosphorylation
               upcore:Site_Annotation ?lincs_site_id. # Matches LINCS site ID

        ## 6. Identify kinase catalyzing this phosphorylation
        ?r6 rdf:subject ?k ;
            rdf:predicate biolink:catalyzes;        # Kinase catalyzes the PTM
            rdf:object ?iptm.

        ?k a upcore:Protein;                        # Kinase protein
           dc:source ?k_sab.                         # Source database
        FILTER(STR(?k_sab) IN ("UniProtKB", "iPTMnet"))  # From trusted sources

        ## 7. Expand to other phosphorylation targets of the same kinase
        ## (optional - find additional sites that might be affected)
        OPTIONAL {
            ?r7 rdf:subject ?k ;                     # Same kinase
                rdf:predicate biolink:catalyzes;     # Catalyzes relation
                rdf:object ?oph.                      # Other phosphorylation site

            ?oph a upcore:PTM_Annotation;             # Another iPTMnet annotation
                 dc:source "iPTMnet";
                 rdfs:label ?ophLabel ;               # Site label/identifier
                 dc:type "PHOSPHORYLATION".
        }
    }

    UNION 
    {
        ## ================================================
        ## BLOCK 2: Pharmacological knowledge - driven approach
        ## This block finds phosphorylation sites based on known 
        ## drug - protein inhibition relationships from pharmacology
        ## ================================================

        ## Perturbagen with PubChem cross-reference
        ?pert a bao:0003059;
              rdfs:label ?pertLabel ;
              obo:has_dbxref ?pubchemCid.     # Cross-reference to PubChem
        
        ## Drug entity sharing same PubChem CID
        ?drug a schema:Drug;
              rdfs:seeAlso ?pubchemCid.       # Links to same PubChem ID

        ## Drug - protein inhibition mechanism (bidirectional)
        { ?drug obo:RO_0002436 ?protein }     # Drug → Protein mechanism
        UNION
        { ?protein obo:RO_0002436 ?drug } .   # Protein → Drug mechanism

        ?mechRel rdf:subject ?drug ;
                 rdf:object ?protein ;
                 allotrope:AFR_0003142 "INHIBITOR".   # Specifically inhibition action

        ?protein a upcore:Protein.            # Target protein (likely a kinase)

        ## Protein catalyzes phosphorylation (bidirectional)
        { ?protein biolink:catalyzes ?ptm }    # Protein → PTM catalysis
        UNION
        { ?ptm biolink:catalyzes ?protein } .  # PTM → Protein catalysis

        ?ptm a upcore:PTM_Annotation;                        # PTM entity
             dc:type "PHOSPHORYLATION".                       # Specifically phosphorylation

        ## OPTIONAL: Find downstream iPTMnet phosphorylations catalyzed by same protein
        OPTIONAL {
            ?r7 rdf:subject ?protein ;           # Same protein/kinase
                rdf:predicate biolink:catalyzes; # Catalyzes relation
                rdf:object ?oph.                  # Other phosphorylation site

            ?oph a ns:PTM;
                 dc:source "iPTMnet";            # From iPTMnet database
                 rdfs:label ?ophLabel ;          # Site label/identifier
                 dc:type "PHOSPHORYLATION".
        }
    }
}
LIMIT 500  # Return at most 500 results
graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
  v24("?Perturbagen")
  v25("?PerturbagenLabel")
  v26("?Phosphorylation")
  v27("?PhosphorylationLabel")
  v3("?diff_val")
  v20("?drug")
  v6("?e")
  v12("?iptm")
  v15("?k")
  v2("?k_sab")
  v8("?lincs")
  v13("?lincs_site_id")
  v10("?lincssub")
  v22("?mechRel")
  v17("?oph"):::projected 
  v18("?ophLabel"):::projected 
  v4("?pert"):::projected 
  v1("?pertLabel"):::projected 
  v21("?protein")
  v23("?ptm")
  v19("?pubchemCid")
  v5("?r")
  v7("?r1")
  v9("?r2")
  v11("?r5")
  v14("?r6")
  v16("?r7")
  c15([http://purl.uniprot.org/core/PTM_Annotation]):::iri 
  c18(["PHOSPHORYLATION"]):::literal 
  c27([https://research.bioinformatics.udel.edu/ProKN/rdf/PTM]):::iri 
  c5([http://www.bioassayontology.org/bao#BAO_0003059]):::iri 
  c11([https://w3id.org/reproduceme#Experiment]):::iri 
  c12([https://biolink.github.io/biolink-model/affected_by]):::iri 
  c26(["INHIBITOR"]):::literal 
  c20([https://biolink.github.io/biolink-model/catalyzes]):::iri 
  c9([obo:ECO_9000000]):::iri 
  c2(["iPTMnet"]):::literal 
  c22([schema:Drug]):::iri 
  c14([http://purl.uniprot.org/core/Protein]):::iri 
  bind0[/VALUES ?pertLabel/]
  bind0-->v1
  bind00(["Selumetinib"])
  bind00 --> bind0
  subgraph union0[" Union "]
  subgraph union0l[" "]
    style union0l fill:#abf,stroke-dasharray: 3 3;
    v4 --"a"-->  c5
    v4 --"rdfs:label"-->  v1
    v4 --"obo:has_dbxref"-->  v19
    v20 --"a"-->  c22
    v20 --"rdfs:seeAlso"-->  v19
    subgraph union1[" Union "]
    subgraph union1l[" "]
      style union1l fill:#abf,stroke-dasharray: 3 3;
      v21 --"obo:RO_0002436"-->  v20
    end
    subgraph union1r[" "]
      style union1r fill:#abf,stroke-dasharray: 3 3;
      v20 --"obo:RO_0002436"-->  v21
    end
    union1r <== or ==> union1l
    end
    v22 --"rdf:subject"-->  v20
    v22 --"rdf:object"-->  v21
    v22 --"http://purl.allotrope.org/ontologies/result#AFR_0003142"-->  c26
    v21 --"a"-->  c14
    subgraph union2[" Union "]
    subgraph union2l[" "]
      style union2l fill:#abf,stroke-dasharray: 3 3;
      v23 -->c20--> v21
    end
    subgraph union2r[" "]
      style union2r fill:#abf,stroke-dasharray: 3 3;
      v21 -->c20--> v23
    end
    union2r <== or ==> union2l
    end
    v23 --"a"-->  c15
    v23 --"dct:type"-->  c18
    subgraph optional0["(optional)"]
    style optional0 fill:#bbf,stroke-dasharray: 5 5;
      v16 -."rdf:subject".->  v21
      v16 --"rdf:predicate"-->  c20
      v16 --"rdf:object"-->  v17
      v17 --"a"-->  c27
      v17 --"dct:source"-->  c2
      v17 --"rdfs:label"-->  v18
      v17 --"dct:type"-->  c18
    end
  end
  subgraph union0r[" "]
    style union0r fill:#abf,stroke-dasharray: 3 3;
    list0c1(["UniProtKB"]):::literal 
    list0c2(["iPTMnet"]):::literal 
    list0c1 --o f1
    list0c2 --o f1
    f1[[" in "]]
    f1 --> v2
    f2[["xsd:decimal(?diff_val) <= '-1.0^^xsd:decimal'"]]
    f2 --> v3
    v4 --"a"-->  c5
    v4 --"rdfs:label"-->  v1
    v5 --"rdf:subject"-->  v4
    v5 --"rdf:predicate"-->  c9
    v5 --"rdf:object"-->  v6
    v6 --"a"-->  c11
    v7 --"rdf:subject"-->  v8
    v7 --"rdf:predicate"-->  c12
    v7 --"rdf:object"-->  v6
    v7 --"https://research.bioinformatics.udel.edu/ProKN/rdf/log2Ratio"-->  v3
    subgraph union3[" Union "]
    subgraph union3l[" "]
      style union3l fill:#abf,stroke-dasharray: 3 3;
      v9 --"rdf:subject"-->  v10
      v9 --"rdf:object"-->  v8
    end
    subgraph union3r[" "]
      style union3r fill:#abf,stroke-dasharray: 3 3;
      v9 --"rdf:subject"-->  v8
      v9 --"rdf:object"-->  v10
    end
    union3r <== or ==> union3l
    end
    v10 --"a"-->  c14
    subgraph union4[" Union "]
    subgraph union4l[" "]
      style union4l fill:#abf,stroke-dasharray: 3 3;
      v11 --"rdf:subject"-->  v12
      v11 --"rdf:object"-->  v10
    end
    subgraph union4r[" "]
      style union4r fill:#abf,stroke-dasharray: 3 3;
      v11 --"rdf:subject"-->  v10
      v11 --"rdf:object"-->  v12
    end
    union4r <== or ==> union4l
    end
    v12 --"a"-->  c15
    v12 --"dct:source"-->  c2
    v12 --"dct:type"-->  c18
    v12 --"http://purl.uniprot.org/core/Site_Annotation"-->  v13
    v14 --"rdf:subject"-->  v15
    v14 --"rdf:predicate"-->  c20
    v14 --"rdf:object"-->  v12
    v15 --"a"-->  c14
    v15 --"dct:source"-->  v2
    subgraph optional1["(optional)"]
    style optional1 fill:#bbf,stroke-dasharray: 5 5;
      v16 -."rdf:subject".->  v15
      v16 --"rdf:predicate"-->  c20
      v16 --"rdf:object"-->  v17
      v17 --"a"-->  c15
      v17 --"dct:source"-->  c2
      v17 --"rdfs:label"-->  v18
      v17 --"dct:type"-->  c18
    end
  end
  union0r <== or ==> union0l
  end
  bind3[/"?pert"/]
  v4 --o bind3
  bind3 --as--o v24
  bind4[/"?pertLabel"/]
  v1 --o bind4
  bind4 --as--o v25
  bind5[/"?oph"/]
  v17 --o bind5
  bind5 --as--o v26
  bind6[/"?ophLabel"/]
  v18 --o bind6
  bind6 --as--o v27
Find LINCS 1000 compounds that positively or negatively regulates at least one kinase gene, and is also perturbed in LINCS P100
PREFIX ns: <https://research.bioinformatics.udel.edu/ProKN/rdf/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX bao: <http://www.bioassayontology.org/bao#BAO_>
PREFIX ncit: <http://purl.obolibrary.org/obo/NCIT_>
PREFIX upcore: <http://purl.uniprot.org/core/>
PREFIX ro: <http://purl.obolibrary.org/obo/RO_>
PREFIX sio: <http://semanticscience.org/resource/SIO_>
PREFIX dc: <http://purl.org/dc/terms/>
PREFIX obo: <http://purl.obolibrary.org/obo/>
PREFIX edam: <http://edamontology.org/>

SELECT DISTINCT ?compoundLabel ?pubchemURI
WHERE {
  # Perturbagen
  ?pert rdf:type bao:0003059 ;
            dc:source "LINCS_P100" ;
            obo:has_dbxref ?pubchemURI.

  # Compound
  ?comp rdf:type ncit:C43366 ;
            dc:source "LINCS" ;
            rdfs:label ?compoundLabel.
   optional {
  		?comp rdfs:seeAlso ?pubchemURI .
  }

  # Relationship: Compound -> Gene
  { ?comp ro:0002213 ?kgene. } # POSITIVELY_REGULATES
  UNION
  { ?comp ro:0002212 ?kgene. } # NEGATIVELY_REGULATES

  # Gene
  ?kgene rdf:type upcore:Gene.

  # Relationship: Gene -> Protein(IS_PROTEIN)
  ?kgene sio:010078 ?pr.

  # Protein
  ?pr rdf:type upcore:Protein ;
    edam:data_1011 ?ecNumber.

  FILTER regex(?ecNumber, "(^|;)2\\.7[^;]*")
}
ORDER BY ?compoundLabel ?pubchemURI
graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
  v5("?comp")
  v1("?compoundLabel"):::projected 
  v3("?ecNumber")
  v6("?kgene")
  v4("?pert")
  v7("?pr")
  v2("?pubchemURI"):::projected 
  c5(["LINCS_P100"]):::literal 
  c8(["LINCS"]):::literal 
  c7([obo:NCIT_C43366]):::iri 
  c3([http://www.bioassayontology.org/bao#BAO_0003059]):::iri 
  c13([http://purl.uniprot.org/core/Gene]):::iri 
  c15([http://purl.uniprot.org/core/Protein]):::iri 
  f0[["regex(?ecNumber,'(^|;)2\.7#91;^;#93;*')"]]
  f0 --> v3
  v4 --"a"-->  c3
  v4 --"dct:source"-->  c5
  v4 --"obo:has_dbxref"-->  v2
  v5 --"a"-->  c7
  v5 --"dct:source"-->  c8
  v5 --"rdfs:label"-->  v1
  subgraph optional0["(optional)"]
  style optional0 fill:#bbf,stroke-dasharray: 5 5;
    v5 -."rdfs:seeAlso".->  v2
  end
  subgraph union0[" Union "]
  subgraph union0l[" "]
    style union0l fill:#abf,stroke-dasharray: 3 3;
    v5 --"obo:RO_0002212"-->  v6
  end
  subgraph union0r[" "]
    style union0r fill:#abf,stroke-dasharray: 3 3;
    v5 --"obo:RO_0002213"-->  v6
  end
  union0r <== or ==> union0l
  end
  v6 --"a"-->  c13
  v6 --"http://semanticscience.org/resource/SIO_010078"-->  v7
  v7 --"a"-->  c15
  v7 --"http://edamontology.org/data_1011"-->  v3
List All Diseases and Their Names and Sources
PREFIX ns: <https://research.bioinformatics.udel.edu/ProKN/rdf/>
PREFIX dc: <http://purl.org/dc/terms/>
PREFIX obo: <http://purl.obolibrary.org/obo/>
PREFIX upcore: <http://purl.uniprot.org/core/>
PREFIX efo: <http://www.ebi.ac.uk/efo/EFO_>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

SELECT DISTINCT 
(?disease AS ?DiseaseURI)
(?label AS ?Name)
(?SAB AS ?Source)
WHERE {
  ?disease a ?diseaseType.

  # Filter for both Disease and DiseaseOrPhenotype types
    FILTER(?diseaseType = upcore:Disease || ?diseaseType = efo:0000651)

        ?disease rdfs:label ?label.
  ?disease dc:source ?SAB.
}
graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
  v5("?DiseaseURI")
  v6("?Name")
  v4("?SAB"):::projected 
  v7("?Source")
  v2("?disease"):::projected 
  v1("?diseaseType")
  v3("?label"):::projected 
  f0[["(?diseaseType = http://purl.uniprot.org/core/Disease || ?diseaseType = http://www.ebi.ac.uk/efo/EFO_0000651)"]]
  f0 --> v1
  v2 --"a"-->  v1
  v2 --"rdfs:label"-->  v3
  v2 --"dct:source"-->  v4
  bind1[/"?disease"/]
  v2 --o bind1
  bind1 --as--o v5
  bind2[/"?label"/]
  v3 --o bind2
  bind2 --as--o v6
  bind3[/"?SAB"/]
  v4 --o bind3
  bind3 --as--o v7
Find protein kinases in ProKN.
PREFIX upcore: <http://purl.uniprot.org/core/>
PREFIX dc: <http://purl.org/dc/terms/>
PREFIX edam: <http://edamontology.org/>
PREFIX obo: <http://purl.obolibrary.org/obo/>

SELECT ?kinase ?accession ?ecNumber WHERE {
    ?kinase a upcore:Protein ;
            dc:source "UniProtKB" ;
            obo:NCIT_C25402 ?accession ;
            edam:data_1011 ?ecNumber .
    FILTER regex(?ecNumber, "(^|;)2\\.7[^;]*")
}
graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
  v3("?accession"):::projected 
  v1("?ecNumber"):::projected 
  v2("?kinase"):::projected 
  c5(["UniProtKB"]):::literal 
  c3([http://purl.uniprot.org/core/Protein]):::iri 
  f0[["regex(?ecNumber,'(^|;)2\.7#91;^;#93;*')"]]
  f0 --> v1
  v2 --"a"-->  c3
  v2 --"dct:source"-->  c5
  v2 --"obo:NCIT_C25402"-->  v3
  v2 --"http://edamontology.org/data_1011"-->  v1
Find Properties and Relationships Associated with a Specific Protein(e.g., APOE)
PREFIX ns: <https://research.bioinformatics.udel.edu/ProKN/rdf/>
PREFIX obo: <http://purl.obolibrary.org/obo/>
PREFIX upcore: <http://purl.uniprot.org/core/>

SELECT DISTINCT 
(?Subject   AS ?SubjectURI)
(?Predicate AS ?PredicateURI)
(?Object    AS ?ObjectValue)
WHERE {
  ?Subject a upcore:Protein;
    obo:NCIT_C164806 "TP53".
  ?Subject ?Predicate ?Object
}
ORDER BY ?Subject
graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
  v3("?Object"):::projected 
  v6("?ObjectValue")
  v2("?Predicate"):::projected 
  v5("?PredicateURI")
  v1("?Subject"):::projected 
  v4("?SubjectURI")
  c2([http://purl.uniprot.org/core/Protein]):::iri 
  c4(["TP53"]):::literal 
  v1 --"a"-->  c2
  v1 --"obo:NCIT_C164806"-->  c4
  v1 -->v2--> v3
  bind0[/"?Subject"/]
  v1 --o bind0
  bind0 --as--o v4
  bind1[/"?Predicate"/]
  v2 --o bind1
  bind1 --as--o v5
  bind2[/"?Object"/]
  v3 --o bind2
  bind2 --as--o v6
SPARQL Endpoint https://frink.apps.renci.org/prokn/sparql
Triple Pattern Fragments https://frink.apps.renci.org/ldf/prokn
ClassEntities
PropertyTriples