This page is intended as suplemental material for the JBI submission "vSPARQL: A View Definition Language for the Semantic Web". Included are the URL of a vSPARQL demo interface, for query testing, a brief descriptions of each use case in the paper, and a runable query demonstrating each case. You may cut and paste queries found here into the vSPARQL interface below.
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#> PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX owl:<http://www.w3.org/2002/07/owl#> PREFIX gleen:<java:edu.washington.sig.gleen.> PREFIX reactome:<http://purl.org/science/ontology/reactome/> CONSTRUCT { ?a ?b ?c. ?a rdfs:label ?a_label. ?c rdfs:label ?c_label. } FROM <http://purl.org/science/ontology/reactome> FROM NAMED <mitotic_cell_cycle> [ CONSTRUCT {?b reactome:componentOf ?a} FROM <http://purl.org/science/ontology/reactome> WHERE { ?a rdfs:label "mitotic cell cycle". ?b reactome:componentOf ?a . } UNION CONSTRUCT {?c reactome:componentOf ?b} FROM <http://purl.org/science/ontology/reactome> FROM NAMED <mitotic_cell_cycle> WHERE { GRAPH <mitotic_cell_cycle> {?b reactome:componentOf ?a}. ?c reactome:componentOf ?b . } ] WHERE { GRAPH <mitotic_cell_cycle> {?a ?b ?c}. ?a rdfs:label ?a_label. ?c rdfs:label ?c_label. }
# Get all of the spatial relationships associated with the organs in # the gastrointestinal tract. PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#> PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX owl:<http://www.w3.org/2002/07/owl#> PREFIX gleen:<java:edu.washington.sig.gleen.> PREFIX temp:<http://sig.biostr.washington.edu/temp#> PREFIX fma:<http://sig.biostr.washington.edu/fma3.0#> CONSTRUCT { ?organ_part ?spatial_rel ?spatial_value . ?fmlive ?fmlive_p ?fmlive_o . ?fmlive2 ?fmlive_p2 ?fmlive_o2 } FROM NAMED <gi_parts> [ CONSTRUCT { temp:set temp:member ?parts } FROM <http://sig.biostr.washington.edu/fma3.0> WHERE { ?parts gleen:OnPath ("([fma:regional_part_of]|[fma:constitutional_part_of]|[fma:systemic_part_of])*" fma:Gastrointestinal_tract) . } ] FROM NAMED <organ_parts> [ CONSTRUCT { temp:set temp:member ?gi_part } FROM <http://sig.biostr.washington.edu/fma3.0> WHERE { ?gi_part gleen:OnPath ("([rdfs:subClassOf])*" fma:Organ) . } ] FROM <http://sig.biostr.washington.edu/fma3.0> WHERE { GRAPH <gi_parts> { ?a ?b ?organ_part } . GRAPH <organ_parts> { ?c ?d ?organ_part } . ?organ_part ?spatial_rel ?spatial_value . FILTER ( (?spatial_rel = fma:orientation) || (?spatial_rel = fma:continuous_with) || (?spatial_rel = fma:continuous_with_distally) || (?spatial_rel = fma:continuous_with_proximally) || (?spatial_rel = fma:attributed_continuous_with) || (?spatial_rel = fma:contained_in) ) . OPTIONAL { ?organ_part fma:orientation ?fmlive . ?fmlive ?fmlive_p ?fmlive_o . } OPTIONAL { ?organ_part fma:attributed_continuous_with ?fmlive2 . ?fmlive2 ?fmlive_p2 ?fmlive_o2 . } }
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#> PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX owl:<http://www.w3.org/2002/07/owl#> PREFIX gleen:<java:edu.washington.sig.gleen.> PREFIX temp:<http://sig.biostr.washington.edu/temp#> PREFIX fma:<http://sig.biostr.washington.edu/fma3.0#> #################################################################################### # Generate the NeuroFMA #################################################################################### CONSTRUCT { ?x ?y ?z } FROM <http://sig.biostr.washington.edu/fma3.0> # all parts recursively of neuraxis FROM NAMEDV <top_pre_neuraxis_parts> [ CONSTRUCT {temp:set temp:member ?part} FROM <http://sig.biostr.washington.edu/fma3.0> WHERE {fma:Neuraxis gleen:OnPath ("([fma:regional_part]|[fma:constitutional_part])*" ?part)} ] FROM NAMEDV <pre_neuraxis_parts> [ CONSTRUCT {temp:set temp:member ?part . temp:set temp:member ?c. } FROM NAMEDV <top_pre_neuraxis_parts> FROM <http://sig.biostr.washington.edu/fma3.0> WHERE { GRAPH <top_pre_neuraxis_parts> { ?a ?b ?part } . OPTIONAL { ?part rdf:type ?c } } ] # get all inter-part attributed relationship instances (and rels) FROM NAMEDV <neuraxis_attr_rels_in> [ CONSTRUCT {?p ?rel ?q} FROM <http://sig.biostr.washington.edu/fma3.0> WHERE { GRAPH <pre_neuraxis_parts> {temp:set temp:member ?p.}. ?p ?rel ?q. OPTIONAL {?q rdfs:subClassOf ?super}. FILTER(!bound(?super)). FILTER((?rel = fma:attributed_part) || (?rel = fma:related_part)). } ] # get all inter-part attributed relationship instances (and rels) FROM NAMEDV <neuraxis_attr_rels_out> [ CONSTRUCT {?q ?rel2 ?p2.} FROM <http://sig.biostr.washington.edu/fma3.0> WHERE { GRAPH <pre_neuraxis_parts> {temp:set temp:member ?p2.}. ?q ?rel2 ?p2. OPTIONAL {?q rdfs:subClassOf ?super}. FILTER(!bound(?super)). FILTER((?rel2 = fma:attributed_part) || (?rel2 = fma:related_part)). } ] # get all inter-part attributed relationship instances (and rels) FROM NAMEDV <neuraxis_attr_rels> [ CONSTRUCT {temp:set temp:member ?q. temp:rel_set temp:member ?rel. temp:rel_set temp:member ?rel2.} FROM <http://sig.biostr.washington.edu/fma3.0> WHERE { GRAPH <neuraxis_attr_rels_in> {?p ?rel ?q.}. GRAPH <neuraxis_attr_rels_out> {?q ?rel2 ?p2.}. } ] # get all inter-part attributed instances types FROM NAMEDV <neuraxis_parts> [ CONSTRUCT {temp:set temp:member ?p. temp:set temp:member fma:Concept_name. temp:set temp:member fma:Query_Atlas_term. temp:set temp:member fma:Neurolex_term. temp:set temp:member fma:AAL_term. } FROM <http://sig.biostr.washington.edu/fma3.0> WHERE { { GRAPH <pre_neuraxis_parts> {temp:set temp:member ?p} } UNION { GRAPH <neuraxis_attr_rels> {temp:set temp:member ?q.} ?q rdf:type ?p. } } ] # build graph containing all properties of all classes identified so far FROM NAMEDV <neuraxis_parts_graph> [ CONSTRUCT {?p ?rel ?obj} FROM <http://sig.biostr.washington.edu/fma3.0> WHERE {GRAPH <neuraxis_parts> {temp:set temp:member ?p}. ?p ?rel ?obj .} ] # get all properties which either connect two of the parts above or connects a part to a literal FROM NAMEDV <neuraxis_parts_props> [ CONSTRUCT { temp:set temp:member ?b. temp:set temp:member ?e. temp:set temp:member ?rel. temp:set temp:member fma:Preferred_name. temp:set temp:member fma:Synonym. temp:set temp:member fma:Non-English_equivalent. temp:set temp:member fma:Query_Atlas. temp:set temp:member fma:Neurolex. temp:set temp:member fma:AAL. } FROM <http://sig.biostr.washington.edu/fma3.0> WHERE { { GRAPH <neuraxis_parts_graph> {?a ?b ?c}. FILTER isLiteral(?c) } UNION { GRAPH <neuraxis_parts_graph> {?d ?e ?f}. GRAPH <neuraxis_parts> {temp:set temp:member ?f}. } UNION { GRAPH <neuraxis_attr_rels> {temp:rel_set temp:member ?rel.} } } ] # Our view only includes a small number of Non-physical_anatomical_entity_template # (and subClass) instances. Build up a list of things to exclude. FROM NAMEDV <stoppingPoint> [ CONSTRUCT { temp:set temp:member ?a .} FROM <http://sig.biostr.washington.edu/fma3.0> WHERE { ?a gleen:OnPath ("[rdfs:subClassOf]*" fma:Non-physical_anatomical_entity_template) . } ] FROM NAMEDV <exclusionTypes> [ CONSTRUCT { temp:set temp:member ?b } FROM <http://sig.biostr.washington.edu/fma3.0> WHERE { GRAPH <stoppingPoint> { ?ts ?tm ?a . } ?b rdf:type ?a . FILTER ( ?b != fma:AAL_term && ?b != fma:Concept_name && ?b != fma:Neuro_term && ?b != fma:Neurolex_term && ?b != fma:Non-physical_anatomical_entity_template && ?b != fma:Organ_part_of_relationship_value && ?b != fma:Organ_subdivision_part_of_relationship_value && ?b != fma:Part_of_relationship_value && ?b != fma:Query_Atlas_term && ?b != fma:Structural_relationship_value ) . } ] # determine superclasses, superproperties, and types # add nodes connected to blank nodes and recurse on these FROM NAMEDV <pre_neuraxis_parts_ext> [ CONSTRUCT {temp:set temp:member ?c.} FROM <http://sig.biostr.washington.edu/fma3.0> FROM NAMEDV <exclusionTypes> WHERE { { GRAPH <neuraxis_parts> {temp:set temp:member ?c}. OPTIONAL {GRAPH <exclusionTypes> {?ts temp:member ?c}.}. FILTER (!bound(?ts)) . } UNION { GRAPH <neuraxis_parts_props> {temp:set temp:member ?c}. OPTIONAL {GRAPH <exclusionTypes> {?ts temp:member ?c}.}. FILTER (!bound(?ts)) . } } UNION CONSTRUCT {temp:set temp:member ?v.} FROM <http://sig.biostr.washington.edu/fma3.0> FROM NAMEDV <exclusionTypes> FROM NAMEDV <pre_neuraxis_parts_ext> WHERE { GRAPH <pre_neuraxis_parts_ext> {temp:set temp:member ?c.} {?c rdf:type ?v.} UNION {?c rdfs:subClassOf ?v} UNION {?c rdfs:subPropertyOf ?v} UNION {?c ?rel ?v. FILTER (isBlank(?c) && !isLiteral(?v)).}. OPTIONAL {GRAPH <exclusionTypes> {?ts temp:member ?v}.} . FILTER (!bound(?ts)) . } ] # add in attributed instances FROM NAMEDV <neuraxis_parts_ext> [ CONSTRUCT {temp:set temp:member ?p. temp:set temp:member ?q. temp:set temp:member ?cn.} FROM <http://sig.biostr.washington.edu/fma3.0> WHERE { { GRAPH <pre_neuraxis_parts_ext> {temp:set temp:member ?p}. OPTIONAL { {?p fma:Preferred_name ?cn.}UNION {?p fma:Synonym ?cn.}UNION {?p fma:Non-English_equivalent ?cn.}UNION {?p fma:Query_Atlas ?cn.}UNION {?p fma:Neurolex ?cn.}UNION {?p fma:AAL ?cn.} } } UNION { GRAPH <neuraxis_attr_rels> {temp:set temp:member ?q}. } } ] # build graph containing all properties of all classes identified so far FROM NAMEDV <neuraxis_parts_ext_graph> [ CONSTRUCT {?p ?rel ?obj} FROM <http://sig.biostr.washington.edu/fma3.0> WHERE {GRAPH <neuraxis_parts_ext> {temp:set temp:member ?p}. ?p ?rel ?obj .} ] # build graph containing only properties connecting two classes in ext or a class in ext to a literal FROM NAMEDV <neuraxis_view_wo_props> [ CONSTRUCT {?a ?b ?c. ?d ?e ?f.} FROM <http://sig.biostr.washington.edu/fma3.0> WHERE { { GRAPH <neuraxis_parts_ext_graph> {?a ?b ?c}. FILTER isLiteral(?c) } UNION { GRAPH <neuraxis_parts_ext_graph> {?d ?e ?f}. GRAPH <neuraxis_parts_ext> {temp:set temp:member ?f}. } } ] # determine superclasses, superproperties, and types # add nodes connected to blank nodes and recurse on these FROM NAMEDV <pre_neuraxis_parts_props_ext> [ CONSTRUCT {temp:set temp:member ?c.} FROM <http://sig.biostr.washington.edu/fma3.0> WHERE { { # we need to define all of the properties that are going to be held in the result graph GRAPH <neuraxis_view_wo_props> { ?uns ?c ?uno } } UNION { # see if we had any restrictions on properties; if we did, we need to define those properties fully GRAPH <pre_neuraxis_parts_ext> {temp:set temp:member ?c}. ?r rdf:type owl:Restriction . ?r owl:onProperty ?c . } UNION { GRAPH <neuraxis_parts_props> {temp:set temp:member ?c}. } } UNION CONSTRUCT {temp:set temp:member ?v.} FROM <http://sig.biostr.washington.edu/fma3.0> FROM NAMEDV <pre_neuraxis_parts_props_ext> WHERE { GRAPH <pre_neuraxis_parts_props_ext> {temp:set temp:member ?c.} {?c rdf:type ?v.} UNION {?c rdfs:subClassOf ?v} UNION {?c rdfs:subPropertyOf ?v} UNION {?c ?rel ?v. FILTER (isBlank(?c) && !isLiteral(?v)).}. } ] FROM NAMEDV <rec_pre_neuraxis_parts_props_ext> [ CONSTRUCT { ?c ?d ?e } FROM <http://sig.biostr.washington.edu/fma3.0> WHERE { GRAPH <pre_neuraxis_parts_props_ext> { temp:set temp:member ?c } . ?c ?d ?e . OPTIONAL {GRAPH <neuraxis_parts_ext> { ?ts temp:member ?e } } . FILTER (isBlank(?e) || isLiteral(?e) || bound(?ts) || (!bound(?ts) && !regex(str(?e),"http://sig.biostr.washington.edu/fma3.0")) ). } UNION CONSTRUCT { ?e ?f ?g } FROM <http://sig.biostr.washington.edu/fma3.0> FROM NAMEDV <rec_pre_neuraxis_parts_props_ext> WHERE { GRAPH <rec_pre_neuraxis_parts_props_ext> { ?c ?d ?e } .FILTER isBlank(?e) . ?e ?f ?g . OPTIONAL {GRAPH <neuraxis_parts_ext> { ?ts temp:member ?g } .} . FILTER (isBlank(?g) || isLiteral(?g) || bound(?ts) || (!bound(?ts) && !regex(str(?g),"http://sig.biostr.washington.edu/fma3.0")) ). } ] FROM NAMEDV <neuraxis_view> [ CONSTRUCT {?a ?b ?c. ?d ?e ?f. ?ontS ?ontP owl:Ontology . ?ontS ?anyOntP ?anyOntO . } FROM <http://sig.biostr.washington.edu/fma3.0> WHERE { { GRAPH <neuraxis_view_wo_props> {?a ?b ?c}. } UNION { GRAPH <rec_pre_neuraxis_parts_props_ext> {?d ?e ?f}. } UNION { ?ontS ?ontP owl:Ontology . OPTIONAL { ?ontS ?anyOntP ?anyOntO . } } } ] #################################################################################### # Fixup the generated NeuroFMA #################################################################################### # Find all of the RDF list nodes that do not have an element; # recursively follow the list until it either hits a node with # an element or it hits rdf:nil. Track the node that points # to this errant list and the entire set of reachable nodes # before the errant list has an element. FROM NAMEDV <identify_rdfListEmptyNodes> [ CONSTRUCT { ?a rdf:rest ?b . # to be changed ?b temp:rest ?c . # to be deleted ?a temp:starts ?b . # first node in rest list ?a temp:reaches ?c . # reachability list } FROM NAMEDV <neuraxis_view> WHERE { GRAPH <neuraxis_view> { ?a rdf:first ?noop . ?a rdf:rest ?b . OPTIONAL { ?b rdf:first ?a_bogus } . FILTER(!bound(?a_bogus)) . ?b rdf:rest ?c . } } UNION CONSTRUCT { ?a ?pred ?b . # to be changed ?b temp:rest ?c . # to be deleted ?a temp:starts ?b . # first node in rest list ?a temp:reaches ?c . # reachability list } FROM NAMEDV <neuraxis_view> WHERE { GRAPH <neuraxis_view> { ?a ?pred ?b . FILTER(?pred != rdf:rest) . ?b rdf:rest ?c . OPTIONAL { ?b rdf:first ?b_bogus } . FILTER(!bound(?b_bogus)) . } } UNION CONSTRUCT { ?c temp:rest ?d . # to be deleted ?a temp:reaches ?d . # reachability list } FROM NAMEDV <identify_rdfListEmptyNodes> FROM NAMEDV <neuraxis_view> WHERE { GRAPH <identify_rdfListEmptyNodes> { ?a temp:reaches ?c . } . GRAPH <neuraxis_view> { OPTIONAL { ?c rdf:first ?noop } . FILTER(!bound(?noop)) . ?c rdf:rest ?d . } } ] # Eliminate all of the edges corresponding to RDF lists elements with no value FROM NAMEDV <remove_rdfListEmptyNodes> [ CONSTRUCT { ?x ?y ?z . } FROM NAMEDV <identify_rdfListEmptyNodes> FROM NAMEDV <neuraxis_view> WHERE { GRAPH <neuraxis_view> { ?x ?y ?z . } OPTIONAL { GRAPH <identify_rdfListEmptyNodes> { ?x ?ynot ?z } . FILTER(?ynot=temp:rest && ?y=rdf:rest) } . FILTER(!bound(?ynot)) . } ] # Remove all of the edges to the start of RDF lists containing empty nodes; # we replace these edges with new edges in <add_startEdgeRdfListEmptyNodes> FROM NAMEDV <remove_startEdgeRdfListEmptyNodes> [ CONSTRUCT { ?q ?r ?s .} FROM NAMEDV <identify_rdfListEmptyNodes> FROM NAMEDV <remove_rdfListEmptyNodes> WHERE { GRAPH <remove_rdfListEmptyNodes> { ?q ?r ?s . } . OPTIONAL { GRAPH <identify_rdfListEmptyNodes> { ?q ?r ?t } . FILTER(?s = ?t) } . FILTER(!bound(?t)) . } ] # Add in the new edges to the RDF lists containing empty nodes FROM NAMEDV <add_startEdgeRdfListEmptyNodes> [ CONSTRUCT { ?t ?u ?v . ?a2 ?pred2 ?d2 . } FROM NAMEDV <identify_rdfListEmptyNodes> FROM NAMEDV <remove_startEdgeRdfListEmptyNodes> FROM NAMEDV <neuraxis_view> WHERE { { GRAPH <remove_startEdgeRdfListEmptyNodes> { ?t ?u ?v } } UNION { GRAPH <identify_rdfListEmptyNodes> { ?a2 temp:starts ?b2 . ?a2 ?pred2 ?gone2 . FILTER(!REGEX(str(?pred2),"http://sig.biostr.washington.edu/temp#") ) . ?a2 temp:reaches ?d2 . } GRAPH <neuraxis_view> { OPTIONAL { ?d2 rdf:first ?nxt2 } . } FILTER( (?d2 = rdf:nil) || bound(?nxt2) ) . } } ] ######################################################################################## ######################################################################################## # Find owl:unionOf statements that have RDF lists of 0 or 1 elements. # Replace the owl:unionOf statements with either the element or rdf:nil. FROM NAMEDV <removed_shortUnionOfs> [ CONSTRUCT { ?q ?r ?s . ?before1 ?pred1 ?c1 . ?before2 ?pred2 rdf:nil . } FROM NAMEDV <add_startEdgeRdfListEmptyNodes> # Find owl:unionOfs that have 0 or 1 element. FROM NAMEDV <identify_shortUnionOfs> [ CONSTRUCT { ?before1 ?pred1 ?a1 . ?a1 owl:unionOf ?b1 . ?a1 rdf:type owl:Class . ?b1 rdf:first ?c1 . ?b1 rdf:rest rdf:nil . ?before2 ?pred2 ?a2 . ?a2 owl:unionOf ?b2 . ?a2 rdf:type owl:Class . ?b2 rdf:rest rdf:nil . } FROM NAMEDV <add_startEdgeRdfListEmptyNodes> WHERE { { GRAPH <add_startEdgeRdfListEmptyNodes> { ?before1 ?pred1 ?a1 . ?a1 owl:unionOf ?b1 . ?a1 rdf:type owl:Class . ?b1 rdf:first ?c1 . ?b1 rdf:rest rdf:nil . } } UNION { GRAPH <add_startEdgeRdfListEmptyNodes> { ?before2 ?pred2 ?a2 . ?a2 owl:unionOf ?b2 . ?a2 rdf:type owl:Class . OPTIONAL { ?b2 rdf:first ?c2 . } . FILTER(!bound(?c2)) . ?b2 rdf:rest rdf:nil . } } } ] WHERE { { GRAPH <add_startEdgeRdfListEmptyNodes> { ?q ?r ?s . } OPTIONAL { GRAPH <identify_shortUnionOfs> { ?q ?r ?t . FILTER(?s = ?t) } } FILTER(!bound(?t)) . } UNION { GRAPH <identify_shortUnionOfs> { ?before1 ?pred1 ?a1 . ?a1 owl:unionOf ?b1 . ?b1 rdf:first ?c1 . ?b1 rdf:rest rdf:nil . } } UNION { GRAPH <identify_shortUnionOfs> { ?before2 ?pred2 ?a2 . ?a2 owl:unionOf ?b2 . OPTIONAL { ?b2 rdf:first ?c2 . } . FILTER(!bound(?c2)) . } ?b2 rdf:rest rdf:nil . } } ] ######################################################################################## ######################################################################################## # Remove all owl:allValuesFrom that have empty owl:unionOf lists. FROM NAMEDV <remove_emptyAllValuesFrom> [ CONSTRUCT { ?a ?b ?c . } FROM NAMEDV <removed_shortUnionOfs> # identify allValuesFrom with empty RDF lists FROM NAMEDV <identify_emptyAllValuesFrom> [ CONSTRUCT { ?x owl:allValuesFrom ?allB . ?allB rdf:type owl:Class . ?allB owl:unionOf rdf:nil . } FROM NAMEDV <removed_shortUnionOfs> WHERE { GRAPH <removed_shortUnionOfs> { ?x owl:allValuesFrom ?allB . ?allB rdf:type owl:Class . ?allB owl:unionOf rdf:nil . } } ] WHERE { GRAPH <removed_shortUnionOfs> { ?a ?b ?c . } OPTIONAL { GRAPH <identify_emptyAllValuesFrom> { ?a ?b ?cnot . FILTER(?c=?cnot) } } . FILTER(!bound(?cnot)) . } ] ######################################################################################## ######################################################################################## # remove the set of owl:Restrictions that do not have values associated with # owl:onProperty restrictions FROM NAMEDV <remove_emptyOwlOnPropertyRestrictions> [ CONSTRUCT { ?a ?b ?c . } FROM NAMEDV <remove_emptyAllValuesFrom> # identify the set of owl:Restrictions that do not have values associated with # owl:onProperty restrictions FROM NAMEDV <identify_emptyOwlOnPropertyRestrictions> [ CONSTRUCT { ?x rdfs:subClassOf ?owlrestrict . ?owlrestrict rdf:type owl:Restriction . ?owlrestrict owl:onProperty ?onprop . } FROM NAMEDV <remove_emptyAllValuesFrom> WHERE { GRAPH <remove_emptyAllValuesFrom> { ?x rdfs:subClassOf ?owlrestrict . ?owlrestrict rdf:type owl:Restriction . ?owlrestrict owl:onProperty ?onprop . OPTIONAL { ?owlrestrict ?anyp ?anyo . FILTER((?anyp!=rdf:type)&&(?anyp!=owl:onProperty)) . } FILTER(!bound(?anyp)) . } } ] WHERE { GRAPH <remove_emptyAllValuesFrom> { ?a ?b ?c . } OPTIONAL { GRAPH <identify_emptyOwlOnPropertyRestrictions> { ?a ?b ?cnot . FILTER(?c=?cnot) } } . FILTER(!bound(?cnot)) . } ] WHERE { GRAPH <remove_emptyOwlOnPropertyRestrictions> { ?x ?y ?z } }
PREFIX nci: <http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#> PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#> PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX owl:<http://www.w3.org/2002/07/owl#> PREFIX gleen:<java:edu.washington.sig.gleen.> PREFIX user:<http://localhost/userFriendlyNCIT#> CONSTRUCT { ?selected user:simplified_relationship [[user:relationship(?sel_label,?prop_label,?val_label)]] . [[user:relationship(?sel_label,?prop_label,?val_label)]] user:label ?sel_label . [[user:relationship(?sel_label,?prop_label,?val_label)]] user:propertyLabel ?prop_label . [[user:relationship(?sel_label,?prop_label,?val_label)]] user:valueLabel ?val_label . } FROM <http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl> WHERE { ?selected rdfs:label "Gastric Mucosa-Associated Lymphoid Tissue Lymphoma" . ?selected gleen:OnPath ( "(([rdfs:subClassOf]|[owl:equivalentClass])/([owl:intersectionOf]/[rdf:rest]*/[rdf:first])?)+" ?restriction ) . ?restriction owl:onProperty ?prop . ?restriction gleen:OnPath ( "([owl:someValuesFrom]|[owl:allValuesFrom])" ?val ). ?selected rdfs:label ?sel_label. ?prop rdfs:label ?prop_label. ?val rdfs:label ?val_label }
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#> PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX owl:<http://www.w3.org/2002/07/owl#> PREFIX gleen:<java:edu.washington.sig.gleen.> PREFIX set:<http://sig.biostr.washington.edu/set#> PREFIX fma:<http://sig.biostr.washington.edu/fma3.0#> PREFIX tst:<http://localhost/tst#> PREFIX tmp:<http://localhost/tmp#> PREFIX view:<http://localhost/view#> CONSTRUCT { ?a ?b ?c } FROM NAMED <bob> [ CONSTRUCT { ?a view:part ?c. } FROM <http://sig.biostr.washington.edu/fma3.0> FROM NAMED <input_list> [ CONSTRUCT { set:set1 set:member fma:Blood_in_left_ventricle. set:set1 set:member fma:Mitral_valve. set:set1 set:member fma:Wall_of_left_ventricle. set:set1 set:member fma:Aortic_valve. set:set1 set:member fma:Blood_in_left_atrium. set:set1 set:member fma:Wall_of_left_atrium. } FROM <http://sig.biostr.washington.edu/fma3.0> WHERE{} ] FROM NAMED <temp_hierarchy> [ CONSTRUCT { ?z tst:edge ?x. } FROM NAMED <input_list> FROM <http://sig.biostr.washington.edu/fma3.0> WHERE { GRAPH <input_list> {set:set1 set:member ?a.} (?a "(([fma:regional_part_of]|[fma:constitutional_part_of])|[fma:contained_in])+" ?b) gleen:Subgraph (?x ?y ?z). } ] FROM NAMED <restructure> [ CONSTRUCT { fma:Human_body tmp:inter ?b1 . } FROM <temp_hierarchy> WHERE { fma:Human_body tst:edge ?b1 } UNION CONSTRUCT { ?a1 view:part ?b1 . ?b1 tmp:inter ?c1 . ?b1 tmp:inter ?c2 . ?a1 tmp:inter ?d1 . ?a1 view:part ?b3 . } FROM <temp_hierarchy> FROM NAMED <restructure> WHERE { { GRAPH <restructure> { ?a1 tmp:inter ?b1 } . ?b1 tst:edge ?c1 . ?b1 tst:edge ?c2 . FILTER(?c1 != ?c2) } UNION { GRAPH <restructure> { ?a1 tmp:inter ?b2 } . ?b2 tst:edge ?d1 . OPTIONAL { ?b2 tst:edge ?d2 . FILTER(?d1 != ?d2) } FILTER( !bound(?d2) ) } UNION { GRAPH <restructure> { ?a1 tmp:inter ?b3 } . OPTIONAL { ?b3 tst:edge ?e1 } FILTER( !bound(?e1) ) . } } ] WHERE { GRAPH <restructure> { ?a view:part ?c } } ] WHERE { GRAPH <bob> { ?a ?b ?c } }
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#> PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX owl:<http://www.w3.org/2002/07/owl#> PREFIX gleen:<java:edu.washington.sig.gleen.> PREFIX fma:<http://sig.biostr.washington.edu/fma3.0#> CONSTRUCT { ?a ?b ?c . } FROM NAMED <heart_parts> [ CONSTRUCT {fma:Heart fma:part ?object} FROM <http://sig.biostr.washington.edu/fma3.0> WHERE { {fma:Heart fma:regional_part ?object} UNION {fma:Heart fma:constitutional_part ?object} } UNION CONSTRUCT {?a fma:part ?object. ?b fma:part ?object} FROM <http://sig.biostr.washington.edu/fma3.0> FROM NAMED <heart_parts> WHERE { GRAPH <heart_parts> {?a fma:part ?b} . {?b fma:regional_part ?object} UNION {?b fma:constitutional_part ?object} } ] FROM NAMED <heart_containments> [ CONSTRUCT {?a fma:contains ?c . ?b fma:contains ?c} FROM <http://sig.biostr.washington.edu/fma3.0> FROM NAMED <heart_parts> WHERE { GRAPH <heart_parts> {?a fma:part ?b} . ?b fma:contains ?c . } ] WHERE { GRAPH <heart_containments> {?a ?b ?c} }
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#> PREFIX fma:<http://sig.biostr.washington.edu/fma3.0#> CONSTRUCT { ?d ?part_var ?f . ?g rdfs:subClassOf fma:Organ . ?i rdfs:subClassOf ?j . } FROM NAMED <extracted_ontology> [ CONSTRUCT { ?t ?u ?v . } FROM NAMED <liver_with_superclasses> [ CONSTRUCT { ?m ?n ?o . } FROM NAMED <liver_with_classes> [ CONSTRUCT { ?j ?part_var ?k . ?k rdfs:subClassOf ?l . fma:Liver rdfs:subClassOf ?lc . } FROM NAMED <subclass> [ CONSTRUCT {?x rdfs:subClassOf fma:Organ . fma:Organ rdfs:subClassOf ?w . ?y rdfs:subClassOf fma:Cardinal_organ_part . fma:Cardinal_organ_part rdfs:subClassOf ?z . } FROM <http://sig.biostr.washington.edu/fma3.0> WHERE { { ?x rdfs:subClassOf fma:Organ . FILTER(!isBlank(?x)) . fma:Organ rdfs:subClassOf ?w . FILTER(!isBlank(?w)) . } UNION { ?y rdfs:subClassOf fma:Cardinal_organ_part . FILTER(!isBlank(?y)) . fma:Cardinal_organ_part rdfs:subClassOf ?z . FILTER(!isBlank(?z)) . } } UNION CONSTRUCT {?sub ?b ?a .} FROM NAMED <subclass> FROM NAMED <http://sig.biostr.washington.edu/fma3.0> WHERE { GRAPH <subclass> { ?a ?b ?c . } . GRAPH <http://sig.biostr.washington.edu/fma3.0> { ?sub ?b ?a . FILTER(!isBlank(?sub)) } . } ] FROM NAMED <liver> [ CONSTRUCT {fma:Liver ?part_var ?obj . } FROM <http://sig.biostr.washington.edu/fma3.0> WHERE { fma:Liver ?part_var ?obj . FILTER((?part_var =fma:regional_part)||(?part_var=fma:constitutional_part)||(?part_var=fma:systemic_part)) . } UNION CONSTRUCT {?c ?part_var ?d} FROM NAMED <liver> FROM NAMED <http://sig.biostr.washington.edu/fma3.0> WHERE { GRAPH <liver> { ?a ?b ?c . } . GRAPH <http://sig.biostr.washington.edu/fma3.0> { ?c ?part_var ?d . } . FILTER((?part_var =fma:regional_part)||(?part_var=fma:constitutional_part)||(?part_var=fma:systemic_part)) . } ] FROM <http://sig.biostr.washington.edu/fma3.0> WHERE { { GRAPH <liver> { ?j ?part_var ?k . } . GRAPH <subclass> { ?k rdfs:subClassOf ?l . FILTER(!isBlank(?l)) .} . } UNION { fma:Liver rdfs:subClassOf ?lc . FILTER(!isBlank(?lc)) . } } ] WHERE { GRAPH <liver_with_classes> { ?m ?n ?o . } } UNION CONSTRUCT {?r rdfs:subClassOf ?s} FROM NAMED <liver_with_superclasses> FROM NAMED <http://sig.biostr.washington.edu/fma3.0> WHERE { GRAPH <liver_with_superclasses> { ?p rdfs:subClassOf ?r . } . GRAPH <http://sig.biostr.washington.edu/fma3.0> { ?r rdfs:subClassOf ?s . FILTER(!isBlank(?s)) . } . } ] WHERE { GRAPH <liver_with_superclasses> { ?t ?u ?v . } . } ] WHERE { GRAPH <extracted_ontology> { { ?d ?part_var ?f . FILTER((?part_var =fma:regional_part)||(?part_var=fma:constitutional_part)||(?part_var=fma:systemic_part)) .} UNION { ?g rdfs:subClassOf ?h . FILTER ((?h = fma:Cavitated_organ || ?h = fma:Solid_organ)) . } UNION { ?i rdfs:subClassOf ?j . FILTER ((?j != fma:Cavitated_organ && ?j != fma:Solid_organ) && (?i != fma:Cavitated_organ) && (?i != fma:Solid_organ)). } } }
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#> PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX gleen:<java:edu.washington.sig.gleen.> PREFIX fma:<http://sig.biostr.washington.edu/fma3.0#> PREFIX opb:<http://sig.biostr.washington.edu/OPB-01.owl#> PREFIX annot_view:<http://sig.biostr.washington.edu/annot_v1.0#> CONSTRUCT { [[annot_view:annotation(?pob,?property)]] rdf:type rdf:Statement. [[annot_view:annotation(?pob,?property)]] rdf:subject ?pob . [[annot_view:annotation(?pob,?property)]] rdf:predicate opb:hasProperty. [[annot_view:annotation(?pob,?property)]] rdf:object ?property . } FROM NAMED <http://sig.biostr.washington.edu/fma3.0> FROM NAMED <http://sig.biostr.washington.edu/~detwiler/OntViews/OPB/OPB-01.owl> WHERE { GRAPH <http://sig.biostr.washington.edu/fma3.0> { ?pob gleen:OnPath ("[rdfs:subClassOf]+" fma:Portion_of_blood). } GRAPH <http://sig.biostr.washington.edu/~detwiler/OntViews/OPB/OPB-01.owl> { ?property gleen:OnPath ("[rdfs:subClassOf]+" opb:Kinetic_property) . ?property opb:Physical_domain_class opb:Fluid_domain . } }