A set of SPARQL examples that are used in different SIB resources
STR (short tandem repeat) profile of a chosen cell line
PREFIX cello: <https://purl.expasy.org/cellosaurus/rdf/ontology/>
PREFIX cvcl: <https://purl.expasy.org/cellosaurus/rdf/cvcl/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
SELECT ?cl ?cl_name ?marker ?detected ?repeat_num ?conflicting (group_concat(distinct ?source; separator=' ') as ?sources)
where {
values ?cl { cvcl:CVCL_0025 }
?cl cello:recommendedName ?cl_name .
?cl cello:hasShortTandemRepeatProfile / cello:includesObservation ?obs .
?obs rdfs:label ?obs_name .
?obs cello:conflicting ?conflict .
?obs cello:hasTarget ?trg .
optional { ?trg rdfs:label ?trg_label . }
optional { ?trg cello:markerId ?trg_id . }
bind(coalesce(?trg_label, ?trg_id) as ?marker)
optional { ?obs cello:detectedTarget ?dt . }
optional { ?obs cello:detectedAllele / cello:repeatNumber ?allele . }
optional {
?obs cello:hasSource ?s .
optional { ?s cello:originatesFrom / a ?st }.
optional { ?s cello:originatesFrom / cello:internalId ?id } # src origin is a xref or a publi
optional { ?s cello:originatesFrom / skos:prefLabel ?org } # src origin is an organization
optional { ?s rdfs:label ?lb } # src origin not specified
}
bind (coalesce(?id, ?org, ?lb, '-') as ?source)
bind (coalesce(?st, '-') as ?source_type)
bind (if(bound(?dt), if(?dt=1, 'yes', 'no'), 'n/a') as ?detected)
bind (if(bound(?allele), concat('n=',?allele), 'n/a') as ?repeat_num)
bind (if(?conflict, 'yes', 'no') as ?conflicting)
}
group by ?cl ?cl_name ?obs_name ?marker ?detected ?repeat_num ?conflicting
order by ?cl ?cl_name ?obs_name ?marker ?detected ?repeat_num ?conflicting
limit 500
graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
v14("?allele")
v8("?cl"):::projected
v2("?cl_name"):::projected
v9("?conflict")
v22("?conflicting"):::projected
v22("?detected"):::projected
v13("?dt")
v17("?id")
v19("?lb")
v13("?marker"):::projected
v8("?obs")
v3("?obs_name")
v18("?org")
v22("?repeat_num"):::projected
v15("?s")
v20("?source"):::projected
v21("?source_type")
v22("?sources")
v16("?st")
v10("?trg")
v12("?trg_id")
v11("?trg_label")
a1((" "))
a2((" "))
a3((" "))
a4((" "))
a5((" "))
bind0[/VALUES ?cl/]
bind0-->v8
bind00([https://purl.expasy.org/cellosaurus/rdf/cvcl/CVCL_0025])
bind00 --> bind0
v8 --"cello:recommendedName"--> v2
v8 --"cello:hasShortTandemRepeatProfile"--> a1
a1 --"cello:includesObservation"--> v8
v8 --"rdfs:label"--> v3
v8 --"cello:conflicting"--> v9
v8 --"cello:hasTarget"--> v10
subgraph optional0["(optional)"]
style optional0 fill:#bbf,stroke-dasharray: 5 5;
v10 -."rdfs:label".-> v11
end
subgraph optional1["(optional)"]
style optional1 fill:#bbf,stroke-dasharray: 5 5;
v10 -."cello:markerId".-> v12
end
bind1[/"?trg_label?trg_id"/]
v11 --o bind1
v12 --o bind1
bind1 --as--o v13
subgraph optional2["(optional)"]
style optional2 fill:#bbf,stroke-dasharray: 5 5;
v8 -."cello:detectedTarget".-> v13
end
subgraph optional3["(optional)"]
style optional3 fill:#bbf,stroke-dasharray: 5 5;
v8 -."cello:detectedAllele".-> a2
a2 --"cello:repeatNumber"--> v14
end
subgraph optional4["(optional)"]
style optional4 fill:#bbf,stroke-dasharray: 5 5;
v8 -."cello:hasSource".-> v15
subgraph optional5["(optional)"]
style optional5 fill:#bbf,stroke-dasharray: 5 5;
v15 -."cello:originatesFrom".-> a3
a3 --"a"--> v16
end
subgraph optional6["(optional)"]
style optional6 fill:#bbf,stroke-dasharray: 5 5;
v15 -."cello:originatesFrom".-> a4
a4 --"cello:internalId"--> v17
end
subgraph optional7["(optional)"]
style optional7 fill:#bbf,stroke-dasharray: 5 5;
v15 -."cello:originatesFrom".-> a5
a5 --"skos:prefLabel"--> v18
end
subgraph optional8["(optional)"]
style optional8 fill:#bbf,stroke-dasharray: 5 5;
v15 -."rdfs:label".-> v19
end
end
bind2[/"?id?org?lb'-'"/]
v17 --o bind2
v18 --o bind2
v19 --o bind2
bind2 --as--o v20
bind3[/"?st'-'"/]
v16 --o bind3
bind3 --as--o v21
bind4[/"if(bound(?dt),if(?dt = '1^^xsd:integer','yes','no'),'n/a')"/]
v13 --o bind4
bind4 --as--o v22
bind5[/"if(bound(?allele),concat('n=',?allele),'n/a')"/]
v14 --o bind5
bind5 --as--o v22
bind6[/"if(?conflict,'yes','no')"/]
v9 --o bind6
bind6 --as--o v22
bind8[/"?source"/]
v20 --o bind8
bind8 --as--o v22