Here are some sample queries, separated by lines of = signs. The queries are in SPARQL. ===================== SELECT ?syndrome ?name WHERE { syi:Alopecia syo:featureOf ?syndrome. ?syndrome syo:name ?name. } ===================== SELECT ?o ?name WHERE { syi:Hypotonia syo:featureOf ?o. syi:SparseHair syo:featureOf ?o. ?o syo:name ?name. } ==================== SELECT distinct ?if_patient_has ?it_might_be WHERE { # input syi:Hypotonia syo:featureOf ?syndrome. syi:MentalRetardation syo:featureOf ?syndrome. # part that doesn't change ?syndrome syo:name ?it_might_be. ?if_patient_has syo:featureOf ?syndrome. } ORDER BY ?if_patient_has ===================== SELECT distinct ?category ?if_patient_has ?it_might_be WHERE { # input ?s syo:featureOf ?syndrome. FILTER (regex(str(?s), "(?i)retard")) ?t syo:featureOf ?syndrome. FILTER (regex(str(?t), "(?i)hypotonia")) ?u syo:featureOf ?syndrome. FILTER (regex(str(?u), "(?i)clino")) # part that doesn't change ?syndrome syo:name ?it_might_be. ?if_patient_has syo:featureOf ?syndrome. ?if_patient_has syo:inCategory ?category } ORDER BY ?category ==================== SELECT distinct ?category ?if_patient_has ?it_might_be WHERE { # input syi:Hypospadias syo:featureOf ?syndrome. ?s syo:featureOf ?syndrome. FILTER (regex(str(?s), "(?i)enceph")) # part that doesn't change ?syndrome syo:name ?it_might_be. ?if_patient_has syo:featureOf ?syndrome. ?if_patient_has syo:inCategory ?category } ORDER BY ?category ================= SELECT distinct ?category ?if_patient_has ?it_might_be WHERE { # input syi:Hypotonia syo:featureOf ?syndrome. ?s syo:featureOf ?syndrome. FILTER (regex(str(?s), "(?i)clinod")) # part that doesn't change ?syndrome syo:name ?it_might_be. ?if_patient_has syo:featureOf ?syndrome. ?if_patient_has syo:inCategory ?category } ORDER BY ?it_might_be |