A set of SPARQL examples that are used in different SIB resources
Returns the list of isomeric subspecies that contain the same fatty acid component(s) at the same position(s) as a user-defined lipid. The user supplies a lipid ID, from which we first retrieve the fatty acids and their positions, after which we search for other lipids with the same combination of fatty acids at the same positions. This query could be useful in the website (classification tab): for a given lipid, provide a list of the other lipids with the same “tail” e.g. for PA(16:0/18:1(9Z)) => hexadecanoate@sn1 AND (9Z)-octadecenoate@sn2 => PC(16:0/18:1(9Z)), PE(16:0/18:1(9Z)), PG(16:0/18:1(9Z)), PI(16:0/18:1(9Z)), PIP3, PIP4, PIP5, PI2P3,4, PI2P4,5, PI2P3,5, PI3P3,4,5, PS(16:0/18:1(9Z))… Output should include the corresponding SwissLipids ID(s) and name(s).
PREFIX SWISSLIPID: <https://swisslipids.org/rdf/SLM_>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
# Example 37
SELECT ?startId ?startName ?tail1 ?tailName1 ?tail2 ?tailName2 ?id ?name
WHERE {
VALUES ?startId { SWISSLIPID:000121946 }
?startId rdfs:label ?startName .
# tail components
?startId SWISSLIPID:haspart ?tail1 .
?startId SWISSLIPID:haspart ?tail2 .
FILTER(!sameTerm(?tail1, ?tail2))
?tail1 rdfs:label ?tailName1 .
?tail2 rdfs:label ?tailName2 .
# Retrieve lipids with similar tails
?id SWISSLIPID:haspart ?tail1 , ?tail2 .
# Restrict to isomeric subspecies with PubMed citation(s)
?id SWISSLIPID:rank SWISSLIPID:Isomeric_Subspecies .
# Retrieve name
?id rdfs:label ?name .
}
ORDER BY ?id ?tail1 ?tail2
graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
v1("?id"):::projected
v8("?name"):::projected
v4("?startId"):::projected
v5("?startName"):::projected
v2("?tail1"):::projected
v3("?tail2"):::projected
v6("?tailName1"):::projected
v7("?tailName2"):::projected
c4(["SWISSLIPID:Isomeric_Subspecies"]):::iri
f0[["not sameterm(?tail1,?tail2)"]]
f0 --> v2
f0 --> v3
bind1[/VALUES ?startId/]
bind1-->v4
bind10(["SWISSLIPID:000121946"])
bind10 --> bind1
v4 --"rdfs:label"--> v5
v4 --"SWISSLIPID:haspart"--> v2
v4 --"SWISSLIPID:haspart"--> v3
v2 --"rdfs:label"--> v6
v3 --"rdfs:label"--> v7
v1 --"SWISSLIPID:haspart"--> v2
v1 --"SWISSLIPID:haspart"--> v3
v1 --"SWISSLIPID:rank"--> c4
v1 --"rdfs:label"--> v8