On 12/24/15 2:00 PM, Eng.Bassam wrote:
> Kingsley, 
> 1- : the second link need a login, can I get the file without account
> I try login via facebook but it fail.

Changed the content-type to text plain so that redirection no longer
takes you to a service that requires authentication.

> 2- Do you mean there is really a problem in auto generated virtuoso
> r2rml or not  ???

There is a problem with the R2RML being generated. That doesn't
necessarily lead to bad results from the SQL producing the final RDF. It
just means that the aforementioned SQL could have Tables ordered in
suboptimal fashion e.g., scanning children to match parents instead of
scanning parents to match children.

We are going to fix the generated R2RML, but in the meantime to can just
fix this by hand if it adversely affects what you are doing.

Kingsley
>
> thanks
>
> On Thu, Dec 24, 2015 at 8:53 PM, Kingsley Idehen
> <kide...@openlinksw.com <mailto:kide...@openlinksw.com>> wrote:
>
>     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
>     <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.
>


-- 
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

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

------------------------------------------------------------------------------
_______________________________________________
Virtuoso-users mailing list
Virtuoso-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/virtuoso-users

Reply via email to