On 12/24/15 1:03 PM, Eng.Bassam wrote: > sorry to send again, forget the attachment :D > > thanks again > waiting a fix a problem > if you want more simple example (dept & emp) it's in attachment file > also, as you will see the file has R2RML not same as W3 example > at http://www.w3.org/TR/r2rml/ > > if apply the emp & dept example on virtuoso and to get RDF graph, we > will see the emp triple has reference to department (it's right) but > also the dept has triples for it's emloyees (wrong sure there is no > key in DB from Dept to employee) > > I wish it's clear description and thanks a lot to answer me :)
While we look into this confusing generated syntax matter, here are some R2RML docs used in my live RDF Views over ODBC Data Source demos [1]: [1] http://kidehen.blogspot.com/2015/07/conceptual-data-virtualization-across.html [2] http://kingsley.idehen.net/public_home/kidehen/Public/R2RML%20Demos/oracle_hr_rdf_views_r2rml.ttl -- Oracle Demo HR . Kingsley > > > On Thu, Dec 24, 2015 at 5:36 PM, Kingsley Idehen > <kide...@openlinksw.com <mailto:kide...@openlinksw.com>> wrote: > > On 12/23/15 11:49 PM, Eng.Bassam wrote: >> Mr. Kingsley >> another description about my confusing :) : >> >> the parent table here in my example is Patient which has ID >> primary Key >> the child table is the Diagnoses which has foreign key is Patient ID >> >> now the R2RML must make a join condition to link child table >> (Diagnoses) with it's parent (Patient) >> the condition is in sql ( Diagnoses,PatientID = Patient.ID) >> >> but in generated R2RML by virtuoso is make the child -->parent >> and make parent-->child > > We have a issue that we need fix here as the generated R2RML > shouldn't be confusing, which is the case right now. > > The issue is being looked into. > > Kingsley >>> rr:joinCondition [ r*r:child "ID" ; rr:parent "PatientID" *] ; ]; ] >>> i.e I think the generated r2rml must be opposite: >>> rr:child "PatientID" --- not ID >>> rr:parent "ID" ---- not PatientID >>> because the PatientID is a column in child table(diagnoses) and >>> ID is a column in Parent table (Patient). >>> right??? >>> this what I have understood >>> from http://www.w3.org/TR/r2rml/#example-fk >>> >>> sorry again about long questions and thanks :) >> >> >> >> On Wed, Dec 23, 2015 at 10:33 PM, Kingsley Idehen >> <kide...@openlinksw.com <mailto:kide...@openlinksw.com>> wrote: >> >> On 12/23/15 2:59 PM, Eng.Bassam wrote: >>> yes Kingsley >>> to be my question more clear :) >>> >>> Patient (ID, name, country....) -- ID is PK >>> Diagnose (DiagnosesID, DiseaseID, PatientID,....) >>> DiagnosesID is PK , PatientID is FK to patient table >>> >>> the r2rml is >>> rr:predicateObjectMap [ rr:predicateMap [ rr:constant >>> DB:patient_of_diagnoses ] ; rr:objectMap [ >>> rr:parentTriplesMap <#TriplesMapDiagnoses>; >>> rr:joinCondition [ r*r:child "ID" ; rr:parent >>> "PatientID" *] ; ]; ] >>> >>> I understand the patient is parent and the diagnose is child >>> but In r2rml I have noted the opposite make ID column in >>> patient table is child (r*r:child "ID"*) and make the >>> PatientID Fk in diagnose is parent (*rr:parent "PatientID"*) >>> I don't know if I have misunderstood of this syntax >>> wish it's clear and thanks again :) >> The product of Patient..ID and Diagnose..ParentID will >> produce a projection of the records that constitute the >> parent/child relation. That's what's important i.e., rr:child >> "ID" and rr:parent "PatientID" clearly identified for use in >> SQL join. >> >> If the projection from the query join is incorrect, then we >> have a problem. >> >> Kingsley >>> >>> On Wed, Dec 23, 2015 at 9:49 PM, Kingsley Idehen >>> <kide...@openlinksw.com <mailto:kide...@openlinksw.com>> wrote: >>> >>> On 12/23/15 9:51 AM, Eng.Bassam wrote: >>>> 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 >>> >>> >>> Given: >>> >>> Patient (ID, name, country....) -- ID is PK >>> Diagnose (DiagnosesID, DiseaseID, PatientID,....) >>> DiagnosesID is PK , PatientID is FK to patient table >>> >>> Diagnose is the child while Patient is the parent i.e., >>> one Patient Table Record uniquely identified by ID (the >>> PK) is associated with many records in Diagnose Table >>> with PatientID as FK. >>> >>> Hence: >>> >>> rr:predicateObjectMap [ rr:predicateMap [ rr:constant >>> DB:patient_of_diagnoses ] ; rr:objectMap [ >>> rr:parentTriplesMap <#TriplesMapDiagnoses>; >>> rr:joinCondition [ r*r:child "ID" ; rr:parent >>> "PatientID" *] ; ]; ] >>> >>> >>> Kingsley >>>> >>>> >>>> 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. >>>> >>>> >>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> >>>> >>>> _______________________________________________ >>>> Virtuoso-users mailing list >>>> Virtuoso-users@lists.sourceforge.net >>>> <mailto:Virtuoso-users@lists.sourceforge.net> >>>> https://lists.sourceforge.net/lists/listinfo/virtuoso-users >>> >>> >>> -- >>> Regards, >>> >>> Kingsley Idehen >>> Founder & CEO >>> OpenLink Software >>> Company Web: http://www.openlinksw.com >>> Personal Weblog 1: http://kidehen.blogspot.com >>> Personal Weblog 2: http://www.openlinksw.com/blog/~kidehen >>> <http://www.openlinksw.com/blog/%7Ekidehen> >>> Twitter Profile: https://twitter.com/kidehen >>> Google+ Profile: https://plus.google.com/+KingsleyIdehen/about >>> LinkedIn Profile: http://www.linkedin.com/in/kidehen >>> Personal WebID: >>> http://kingsley.idehen.net/dataspace/person/kidehen#this >>> >>> >>> >>> ------------------------------------------------------------------------------ >>> >>> _______________________________________________ >>> Virtuoso-users mailing list >>> Virtuoso-users@lists.sourceforge.net >>> <mailto:Virtuoso-users@lists.sourceforge.net> >>> https://lists.sourceforge.net/lists/listinfo/virtuoso-users >>> >>> >>> >>> >>> -- >>> ----------------------------------- >>> > Eng.Bassam Najeeb. >>> >Software Engineer. >>> >> >> >> -- >> Regards, >> >> Kingsley Idehen >> Founder & CEO >> OpenLink Software >> Company Web: http://www.openlinksw.com >> Personal Weblog 1: http://kidehen.blogspot.com >> Personal Weblog 2: http://www.openlinksw.com/blog/~kidehen >> <http://www.openlinksw.com/blog/%7Ekidehen> >> Twitter Profile: https://twitter.com/kidehen >> Google+ Profile: https://plus.google.com/+KingsleyIdehen/about >> LinkedIn Profile: http://www.linkedin.com/in/kidehen >> Personal WebID: >> http://kingsley.idehen.net/dataspace/person/kidehen#this >> >> >> >> >> -- >> ----------------------------------- >> > Eng.Bassam Najeeb. >> >Software Engineer. >> >> >> >> >> ------------------------------------------------------------------------------ >> >> >> _______________________________________________ >> Virtuoso-users mailing list >> Virtuoso-users@lists.sourceforge.net >> <mailto:Virtuoso-users@lists.sourceforge.net> >> https://lists.sourceforge.net/lists/listinfo/virtuoso-users > > > -- > Regards, > > Kingsley Idehen > Founder & CEO > OpenLink Software > Company Web: http://www.openlinksw.com > Personal Weblog 1: http://kidehen.blogspot.com > Personal Weblog 2: http://www.openlinksw.com/blog/~kidehen > <http://www.openlinksw.com/blog/%7Ekidehen> > Twitter Profile: https://twitter.com/kidehen > Google+ Profile: https://plus.google.com/+KingsleyIdehen/about > LinkedIn Profile: http://www.linkedin.com/in/kidehen > Personal WebID: http://kingsley.idehen.net/dataspace/person/kidehen#this > > > > ------------------------------------------------------------------------------ > > _______________________________________________ > Virtuoso-users mailing list > Virtuoso-users@lists.sourceforge.net > <mailto:Virtuoso-users@lists.sourceforge.net> > https://lists.sourceforge.net/lists/listinfo/virtuoso-users > > > > > -- > ----------------------------------- > > Eng.Bassam Najeeb. > >Software Engineer. > -- Regards, Kingsley Idehen Founder & CEO OpenLink Software Company Web: http://www.openlinksw.com Personal Weblog 1: http://kidehen.blogspot.com Personal Weblog 2: http://www.openlinksw.com/blog/~kidehen Twitter Profile: https://twitter.com/kidehen Google+ Profile: https://plus.google.com/+KingsleyIdehen/about LinkedIn Profile: http://www.linkedin.com/in/kidehen Personal WebID: http://kingsley.idehen.net/dataspace/person/kidehen#this
smime.p7s
Description: S/MIME Cryptographic Signature
------------------------------------------------------------------------------
_______________________________________________ Virtuoso-users mailing list Virtuoso-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/virtuoso-users