
W3C Semantic Web in Health Care and Life Sciences.
This work is licensed under a
Creative Commons Attribution 3.0 License,
with attribution to W3C.
Directed-labeled graph of propositions.
Bob knows Alice .Bob a Person .Person rdfs:subClassOf Mammal .Bob a Mammal .boring example here,
exciting for e.g. drug classification.
W3C Semantic Web Health Care and Life Sciences Interest Group;
a group of folks researching:
<encounter7> edns:patient <patient3> . <patient3> r:type galen:Patient ; foaf:family_name "Levin" ; foaf:firstName "Henry" .
<encounter7> edns:patient <patient3> ;
edns:screeningBP <s20090714c> .
<patient3> r:type galen:Patient ;
foaf:family_name "Levin" ;
foaf:firstName "Henry" .
<s20090714c> dc:date "2009-07-14T18:23"^^xsd:dateTime ;
edns:systolic "132"^^edns:mmHg ;
edns:diastolic "86"^^edns:mmHg .
@prefix edns: <http://www.loa-cnr.it/ontologies/ExtendedDnS.owl#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix galen: <http://www.co-ode.org/ontologies/galen#> .
@prefix snomed: <http://termhost.example/SNOMED/> .
<encounter7> edns:patient <patient3> ;
edns:screeningBP <s20090714c> .
<patient3> r:type galen:Patient ;
foaf:family_name "Levin" ;
foaf:firstName "Henry" .
<s20090714c> dc:date "2009-07-14T18:23"^^xsd:dateTime ;
edns:systolic "132"^^edns:mmHg ;
edns:diastolic "86"^^edns:mmHg .
@prefix edns: <http://www.loa-cnr.it/ontologies/ExtendedDnS.owl#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix galen: <http://www.co-ode.org/ontologies/galen#> .
@prefix snomed: <http://termhost.example/SNOMED/> .
<encounter7> edns:patient <patient3> ;
edns:screeningBP <s20090714c> .
<patient3> r:type galen:Patient ;
foaf:family_name "Levin" ;
foaf:firstName "Henry" .
<s20090714c> dc:date "2009-07-14T18:23"^^xsd:dateTime ;
edns:systolic "132"^^edns:mmHg ;
edns:diastolic "86"^^edns:mmHg ;
edns:posture snomed:_163035008 . # SNOMED:sitting
<rdf:RDF xmlns:edns="http://www.loa-cnr.it/ontologies/ExtendedDnS.owl#" xmlns:foaf: "http://xmlns.com/foaf/0.1/" . xmlns:galen: "http://www.co-ode.org/ontologies/galen#" . xmlns:snomed: "http://termhost.example/SNOMED/"> <rdf:Description rdf:about="encounter7"> <edns:patient rdf:resource="patient3"/> <edns:screeningBP>s20090714c</edns:screeningBP> </rdf:Description> <galen:Patient rdf:about="patient3" foaf:family_name="Levin" foaf:firstName="Henry"> <rdf:Description rdf:about="s20090714c"> <dc:date xsi:dt="http://www.w3.org/2001/XMLSchemadateTime">2009-07-14T18:23</dc:date> <edns:systolic xsi:dt="http://www.loa-cnr.it/ontologies/ExtendedDnS.owl#mmHg">132</edns:systolic> <edns:diastolic xsi:dt="http://www.loa-cnr.it/ontologies/ExtendedDnS.owl#mmHg">86</edns:systolic> <edns:posture rdf:resource="http://termhost.example/SNOMED/_163035008</edns:posture> <!-- SNOMED:sitting --> </rdf:Description>
PREFIX edns: <http://www.loa-cnr.it/ontologies/ExtendedDnS.owl#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX galen: <http://www.co-ode.org/ontologies/galen#>
PREFIX snomed: <http://termhost.example/SNOMED/>
SELECT ?date ?systolic ?diastolic WHERE {
?encounter edns:patient ?patient ;
edns:screeningBP ?screenBP .
?patient foaf:family_name "Levin" ;
foaf:firstName "Henry" .
?screenBP dc:date ?date ;
edns:systolic ?systolic ;
edns:diastolic ?diastolic ;
} ORDER DESC BY ?date
PREFIX edns: <http://www.loa-cnr.it/ontologies/ExtendedDnS.owl#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX galen: <http://www.co-ode.org/ontologies/galen#>
PREFIX snomed: <http://termhost.example/SNOMED/>
SELECT ?date ?systolic ?diastolic WHERE {
?encounter edns:patient ?patient ;
edns:screeningBP ?screenBP .
?patient foaf:family_name "Levin" ;
foaf:firstName "Henry" .
?screenBP dc:date ?date ;
edns:systolic ?systolic ;
edns:diastolic ?diastolic ;
edns:posture ?posture . # SNOMED:sitting
FILTER (?posture = snomed:_163035008 || ?posture = snomed:_163035009)
} ORDER DESC BY ?date
PREFIX edns: <http://www.loa-cnr.it/ontologies/ExtendedDnS.owl#> PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX galen: <http://www.co-ode.org/ontologies/galen#> PREFIX snomed: <http://termhost.example/SNOMED/> SELECT ?date ?systolic ?diastolic ?posture WHERE { ?encounter edns:patient ?patient ; edns:screeningBP ?screenBP . ?patient foaf:family_name "Levin" ; foaf:firstName "Henry" . ?screenBP dc:date ?date ; edns:systolic ?systolic ; edns:diastolic ?diastolic . OPTIONAL { ?screenBP edns:posture ?posture . } } ORDER DESC BY ?date
SELECT ?date ?systolic ?diastolic WHERE {
...
GRAPH <ER_admission_screenings.rdf> {
?sc1 edns:patient ?patient ; dc:date ?date ;
edns:systolic ?systolic ; edns:diastolic ?diastolic .
}
SERVICE <http://countyHospital.example/SPARQL> {
?sc2 edns:patient ?patient ; dc:date ?date ;
edns:systolic ?systolic ; edns:diastolic ?diastolic .
}
SERVICE <http://countyHospital.example/SPARQL> {
?patient foo:screening ?sc3 . ?sc3 foo:patient ; dc:date ?date ;
foo:BPmeasurement ( ?systolic , ?diastolic )
}
}
3 types of queries:
SELECT and ASK results can be returned as XML or JSON. CONSTRUCT and DESCRIBE results can be returned via any RDF serialization (e.g. RDF/XML or Turtle).
HTTP protocol, marshaling consistent with HTML forms.
SPARQL URL =
http://example.org/sparql)named-graph-uri=http://example.org/reviews/ebertquery=SELECT+%3Fpatient…)http://example.org/sparql?named-graph-uri=http%3A%2F%2Fexample.orgm%2F reviews%2Febert&query=SELECT+%3Freview_graph+WHERE+%7B%0D%0A++GRAPH+%3Frev iew_graph+%7B%0D%0A+++++%3Freview+rev%3Arating+10+.%0D%0A++%7D%0D%0A%7D
http://someheathprovider.example/patientVisits/C1#infohttp://someheathprovider.example/patientVisits/C1#infoprovider:C1 role:patient provider:P1 .provider:C1 role:patient provider:P1 .http://someheathprovider.example/roles#patientISO 8601 datetimesprovider:P1 role:birthdate "1946-11-03"^^xsd:date .
PREFIX :mydb <http://cityhospital.example/dbs>
CONSTRUCT { ?o a study:SubjectObservation .
?o study:subject ?p .
?o study:clinician ?d .
?d :foaf:name ?dName }
WHERE { ?o mydb:patient ?p .
?o mydb:doctor ?d .
?d mydb:name ?dName }
PREFIX db: <…>
SELECT ?o ?d
WHERE {
?o db:onPatient <Bob> .
?o db:byDoctor ?d .
}
PREFIX db: <…> SELECT observations... doctors... FROM observations, patients ON id=observations.patient ... WHERE patients.name = "Bob" }
Class(a:MGHcharlstStPatient partial a:MGHpatient)
Class(a:MGHcharlstStPatient complete
restriction(a:physician
allValuesFrom(unionOf(a:MGHcharlesStOncologist a:MGHcharlesStOptician))))_:MCSO rdfs:subClassOf :MGHpatient . _:MCSO rdfs:subClassOf _:physType . _:physType owl:onProperty :physician . _:physType owl:allValuesFrom _:list1 . _:list1 rdf:first :MGHcharlesStOncologist . _:list1 rdf:rest _:list2 . _:list2 rdf:first :MGHcharlesStOptician . _:list2 rdf:rest rdf:nil . _:MCSO owl:equivalentClass :MGHcharlstStPatient .
We want your help
join per <http://www.w3.org/2001/sw/hcls/#Participation>.
