У меня есть тройки, утверждающие, что два разных человека (B и C) имеют по одной роли пациента. Эти роли реализуются в трех медицинских встречах каждый. Есть граница процесса, которая запускает каждую встречу, и данные измерения времени, которые находятся на каждой границе процесса. Данные измерения времени имеют значения xsd:date
, подтвержденные предикатом ns1:TURBO_0010094
. Смотрите конец поста.
Я хотел бы построить график, в котором каждому медицинскому событию может предшествовать максимум одно другое "принадлежание" одному и тому же человеку. У меня есть оператор, который создает операторы «встреча с X предшествует встреча с Y», но он, очевидно, генерирует следующее (используя некоторые ad-hoc аббревиатуры):
- HCE_B1 предшествует HCE_B2
- HCE_B1 предшествует HCE_B3
- HCE_B2 предшествует HCE_B3
Я только хочу сказать
- HCE_B1 предшествует HCE_B2
- HCE_B2 предшествует HCE_B3
Есть ли шанс, что это можно сделать в одном construct
утверждении? Вот что у меня есть:
PREFIX obo: <http://purl.obolibrary.org/obo/>
PREFIX ns1: <http://transformunify.org/ontologies/>
construct {
?hce1 obo:BFO_0000063 ?hce2
}
WHERE {
?person rdf:type obo:NCBITaxon_9606 .
?patrole rdf:type obo:OMRSE_00000011 ;
obo:RO_0000052 ?person .
?hce1 rdf:type obo:OGMS_0000097 ;
obo:BFO_0000055 ?patrole .
?hce2 rdf:type obo:OGMS_0000097 ;
obo:BFO_0000055 ?patrole .
?procbound1 rdf:type obo:BFO_0000035 ;
obo:RO_0002223 ?hce1 .
?procbound2 rdf:type obo:BFO_0000035 ;
obo:RO_0002223 ?hce2 .
?tmd1 rdf:type obo:IAO_0000416 ;
obo:IAO_0000136 ?procbound1 ;
ns1:TURBO_0010094 ?dateval1 .
?tmd2 rdf:type obo:IAO_0000416 ;
obo:IAO_0000136 ?procbound2 ;
ns1:TURBO_0010094 ?dateval2 .
filter(?dateval2 > ?dateval1)
}
Данные:
prefix obo: <http://purl.obolibrary.org/obo/>
prefix ns1: <http://transformunify.org/ontologies/>
prefix ns2: <http://example.org/temporality_support/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
obo:HTN_00000010
a obo:NCBITaxon_9606 ;
rdfs:label "Basil" .
obo:HTN_00000011
a obo:NCBITaxon_9606 ;
rdfs:label "Clara" .
obo:HTN_00000019
a obo:OGMS_0000097 ;
obo:BFO_0000055 obo:HTN_00000029 ;
rdfs:label "Basil's first health care encounter" .
obo:HTN_00000029
a obo:OMRSE_00000011 ;
obo:RO_0000052 obo:HTN_00000010 ;
rdfs:label "Basil's patient role" .
obo:HTN_00000020
a obo:OGMS_0000097 ;
obo:BFO_0000055 obo:HTN_00000029 ;
rdfs:label "Basil's second health care encounter" .
ns2:9be7ae98-44f6-4d95-9938-4a91e1ade556
a obo:OGMS_0000097 ;
obo:BFO_0000055 obo:HTN_00000029 ;
rdfs:label "Basil's third health care encounter" .
ns2:c75d9821-fa00-449c-9d0b-791c1bbbc07e
a obo:BFO_0000035 ;
obo:RO_0002223 ns2:9be7ae98-44f6-4d95-9938-4a91e1ade556 ;
rdfs:label "B HCE 3 start" .
ns2:ed7bbf74-60c3-4fd7-b46f-d3fa1771e219
a obo:IAO_0000416 ;
obo:IAO_0000136 ns2:c75d9821-fa00-449c-9d0b-791c1bbbc07e ;
ns1:TURBO_0010094 "2019-01-22"^^xsd:date ;
rdfs:label "B HCE 3 start date" .
obo:HTN_00000023
a obo:OGMS_0000097 ;
obo:BFO_0000055 obo:HTN_00000030 ;
rdfs:label "Clara's first health care encounter" .
obo:HTN_00000030
a obo:OMRSE_00000011 ;
obo:RO_0000052 obo:HTN_00000011 ;
rdfs:label "Clara's patient role" .
ns2:5121d5e2-41ed-48e1-9253-0aa1830c3f00
a obo:OGMS_0000097 ;
obo:BFO_0000055 obo:HTN_00000029 ;
rdfs:label "Clara's third health care encounter" .
ns2:bc09fab9-76fb-4072-af37-f52b49ba9c64
a obo:BFO_0000035 ;
obo:RO_0002223 ns2:5121d5e2-41ed-48e1-9253-0aa1830c3f00 ;
rdfs:label "C HCE 3 start" .
ns2:881afd3a-cf77-4365-b54f-6c7c99fd1e4b
a obo:IAO_0000416 ;
obo:IAO_0000136 ns2:bc09fab9-76fb-4072-af37-f52b49ba9c64 ;
ns1:TURBO_0010094 "2019-01-23"^^xsd:date ;
rdfs:label "C HCE 3 start date" .
obo:HTN_00000025
a obo:OGMS_0000097 ;
obo:BFO_0000055 obo:HTN_00000030 ;
rdfs:label "Clara's second health care encounter" .
ns2:IAO_0000416_2
a obo:IAO_0000416 ;
obo:IAO_0000136 ns2:BFO_0000035_2 ;
ns1:TURBO_0010094 "2019-01-15"^^xsd:date ;
rdfs:label "B HCE 2 start date" .
ns2:BFO_0000035_2
a obo:BFO_0000035 ;
obo:RO_0002223 obo:HTN_00000020 ;
rdfs:label "B HCE 2 start" .
ns2:IAO_0000416_3
a obo:IAO_0000416 ;
obo:IAO_0000136 ns2:BFO_0000035_3 ;
ns1:TURBO_0010094 "2019-01-09"^^xsd:date ;
rdfs:label "C HCE 1 start date" .
ns2:BFO_0000035_3
a obo:BFO_0000035 ;
obo:RO_0002223 obo:HTN_00000023 ;
rdfs:label "C HCE 1 start" .
ns2:IAO_0000416_4
a obo:IAO_0000416 ;
obo:IAO_0000136 ns2:BFO_0000035_4 ;
ns1:TURBO_0010094 "2019-01-16"^^xsd:date ;
rdfs:label "C HCE 2 start date" .
ns2:BFO_0000035_4
a obo:BFO_0000035 ;
obo:RO_0002223 obo:HTN_00000025 ;
rdfs:label "C HCE 2 start" .
ns2:IAO_0000416_7
a obo:IAO_0000416 ;
obo:IAO_0000136 ns2:BFO_0000035_7 ;
ns1:TURBO_0010094 "2019-01-08"^^xsd:date ;
rdfs:label "B HCE 1 start date" .
ns2:BFO_0000035_7
a obo:BFO_0000035 ;
obo:RO_0002223 obo:HTN_00000019 ;
rdfs:label "B HCE 1 start" .