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