Hi
I'm wonder about child parent in rr:joinCondition in R2RML generated by
virtuoso, suppose I have tow tables patient and Diagnose

Patient (ID, name, country....) -- ID is PK
Diagnose (DiagnosesID, DiseaseID, PatientID,....) DiagnosesID is PK ,
PatientID is FK to patient table

I have imported the tow tables by virtuoso wizard and it generate to me
R2RML

<#TriplesMapDiagnoses> a rr:TriplesMap; rr:logicalTable [ rr:tableSchema
"emr" ; rr:tableOwner "emr-ODBC" ; rr:tableName "Diagnoses" ];
rr:subjectMap [ rr:termType rr:IRI  ; rr:template "
http://localhost:8890/emr/diagnoses/DiagnosesID={DiagnosesID}";; rr:class
DB:Diagnoses; rr:graph <http://localhost:8890/DB#> ];
rr:predicateObjectMap [ rr:predicateMap [ rr:constant DB:diagnosesid ] ;
rr:objectMap [ rr:column "DiagnosesID" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant
DB:diagnoses_has_disease ] ; rr:objectMap [ rr:termType rr:IRI ;
rr:template "http://localhost:8890/emr/disease/DiseaseID={DiseaseID}"; ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant
DB:diagnoses_has_patient ] ; rr:objectMap [ rr:termType rr:IRI ;
rr:template "http://localhost:8890/emr/patient/PatientID={PatientID}"; ]; ] .

--patient
<#TriplesMapPatient> a rr:TriplesMap; rr:logicalTable [ rr:tableSchema
"emr" ; rr:tableOwner "emr-ODBC" ; rr:tableName "Patient" ];
rr:subjectMap [ rr:termType rr:IRI  ; rr:template "
http://localhost:8890/emr/patient/ID={ID}";; rr:class DB:Patient; rr:graph <
http://localhost:8890/DB#> ];
rr:predicateObjectMap [ rr:predicateMap [ rr:constant DB:id ] ;
rr:objectMap [ rr:column "ID" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant DB:firstname ] ;
rr:objectMap [ rr:column "FirstName" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant DB:dead ] ;
rr:objectMap [ rr:column "Dead" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant DB:dead_date ] ;
rr:objectMap [ rr:column "Dead_Date" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant
DB:patient_has_disease ] ; rr:objectMap [ rr:termType rr:IRI ; rr:template "
http://localhost:8890/emr/disease/Cause_Dead={Cause_Dead}"; ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant
DB:patient_of_diagnoses ] ; rr:objectMap [ rr:parentTriplesMap
<#TriplesMapDiagnoses>;  rr:joinCondition [ r*r:child "ID" ; rr:parent
"PatientID" *] ; ]; ] .

the file R2RML attached also by this mail


I want understand why the output R2RML in patient make the child is patient
and parent is dianoses.?????
diagnoses table it is has FK so I thinks it is a child and Patient it 's a
parent, opposite to output !!!
-----------------------------------
> Eng.Bassam Najeeb.
>Software Engineer.
@prefix rr: <http://www.w3.org/ns/r2rml#> .
@prefix DB: <http://localhost:8890/schemas/DB/> .
@prefix db-stat: <http://localhost:8890/DB/stat#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix void: <http://rdfs.org/ns/void#> .
@prefix scovo: <http://purl.org/NET/scovo#> .
@prefix aowl: <http://bblfish.net/work/atom-owl/2006-06-06/> .


<#TriplesMapDiagnoses> a rr:TriplesMap; rr:logicalTable [ rr:tableSchema "emr" 
; rr:tableOwner "emr-ODBC" ; rr:tableName "Diagnoses" ]; 
rr:subjectMap [ rr:termType rr:IRI  ; rr:template 
"http://localhost:8890/emr/diagnoses/DiagnosesID={DiagnosesID}";; rr:class 
DB:Diagnoses; rr:graph <http://localhost:8890/DB#> ];
rr:predicateObjectMap [ rr:predicateMap [ rr:constant DB:diagnosesid ] ; 
rr:objectMap [ rr:column "DiagnosesID" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant DB:encounterid ] ; 
rr:objectMap [ rr:column "EncounterID" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant DB:orderid ] ; 
rr:objectMap [ rr:column "OrderID" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant DB:date ] ; rr:objectMap 
[ rr:column "Date" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant DB:diagnoses_has_disease 
] ; rr:objectMap [ rr:termType rr:IRI ; rr:template 
"http://localhost:8890/emr/disease/DiseaseID={DiseaseID}"; ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant DB:diagnoses_has_patient 
] ; rr:objectMap [ rr:termType rr:IRI ; rr:template 
"http://localhost:8890/emr/patient/PatientID={PatientID}"; ]; ] .

<#TriplesMapDisease> a rr:TriplesMap; rr:logicalTable [ rr:tableSchema "emr" ; 
rr:tableOwner "emr-ODBC" ; rr:tableName "Disease" ]; 
rr:subjectMap [ rr:termType rr:IRI  ; rr:template 
"http://localhost:8890/emr/disease/ID={ID}";; rr:class DB:Disease; rr:graph 
<http://localhost:8890/DB#> ];
rr:predicateObjectMap [ rr:predicateMap [ rr:constant DB:id ] ; rr:objectMap [ 
rr:column "ID" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant DB:name ] ; rr:objectMap 
[ rr:column "Name" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant DB:shortname ] ; 
rr:objectMap [ rr:column "ShortName" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant DB:description ] ; 
rr:objectMap [ rr:column "Description" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant DB:name_doid ] ; 
rr:objectMap [ rr:column "Name_DOID" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant DB:disease_of_diagnoses ] 
; rr:objectMap [ rr:parentTriplesMap <#TriplesMapDiagnoses>;  rr:joinCondition 
[ rr:child "ID" ; rr:parent "DiseaseID" ] ; ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant DB:disease_of_patient ] ; 
rr:objectMap [ rr:parentTriplesMap <#TriplesMapPatient>;  rr:joinCondition [ 
rr:child "ID" ; rr:parent "Cause_Dead" ] ; ]; ] .

<#TriplesMapPatient> a rr:TriplesMap; rr:logicalTable [ rr:tableSchema "emr" ; 
rr:tableOwner "emr-ODBC" ; rr:tableName "Patient" ]; 
rr:subjectMap [ rr:termType rr:IRI  ; rr:template 
"http://localhost:8890/emr/patient/ID={ID}";; rr:class DB:Patient; rr:graph 
<http://localhost:8890/DB#> ];
rr:predicateObjectMap [ rr:predicateMap [ rr:constant DB:id ] ; rr:objectMap [ 
rr:column "ID" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant DB:firstname ] ; 
rr:objectMap [ rr:column "FirstName" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant DB:middlename ] ; 
rr:objectMap [ rr:column "MiddleName" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant DB:lastname ] ; 
rr:objectMap [ rr:column "LastName" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant DB:gender ] ; 
rr:objectMap [ rr:column "Gender" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant DB:birthdate ] ; 
rr:objectMap [ rr:column "BirthDate" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant DB:country ] ; 
rr:objectMap [ rr:column "Country" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant DB:city ] ; rr:objectMap 
[ rr:column "City" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant DB:street ] ; 
rr:objectMap [ rr:column "Street" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant DB:country_geo ] ; 
rr:objectMap [ rr:column "Country_geo" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant DB:dead ] ; rr:objectMap 
[ rr:column "Dead" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant DB:dead_date ] ; 
rr:objectMap [ rr:column "Dead_Date" ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant DB:patient_has_disease ] 
; rr:objectMap [ rr:termType rr:IRI ; rr:template 
"http://localhost:8890/emr/disease/Cause_Dead={Cause_Dead}"; ]; ] ;
rr:predicateObjectMap [ rr:predicateMap [ rr:constant DB:patient_of_diagnoses ] 
; rr:objectMap [ rr:parentTriplesMap <#TriplesMapDiagnoses>;  rr:joinCondition 
[ rr:child "ID" ; rr:parent "PatientID" ] ; ]; ] .
------------------------------------------------------------------------------
_______________________________________________
Virtuoso-users mailing list
Virtuoso-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/virtuoso-users

Reply via email to