usc-isi-i2 / Web-Karma

Information Integration Tool
http://www.isi.edu/integration/karma/
Apache License 2.0
588 stars 196 forks source link

rr:joinCondition #421

Open Maatary opened 5 years ago

Maatary commented 5 years ago

Hi, the following paper by @jasonslepicka says that Karma do not support rr:joinCondition.

I was just wondering, is there a way in Karma to deal with foreign Keys ? Mean i have two tables where Table A represent an entity and Table B represent another one, and Table A has a foreign key toward Table B.

I want to make sure that URI of the Foreign Key in A correspond to the URI of the Primary Key of B.

More generally Is there anyway to verify that when generating mappings, that the entities they generate actually link well ?

GreatYYX commented 5 years ago

If you construct URIs of primary and foreign key in the same way, then yes, they are linked together.

To verify, upload triples to a triple store or use RDF graph library like rdflib (python) or Jena (java), then do sparql queries.

Maatary commented 5 years ago

Thanks for the answer. What you describe is what we do at the moment, we verify connectivity once the data is loaded in the Triple-store. This approach can be problematic, because when we have a lot of table to map mistakes happen, when those table generate several millions of triple each, the approach becomes a bit annoying, because it requires to restart expensive processes.

To understand that, one has to put himself in the context of a pipeline that load huge amount of data producing billions of triples. The pipeline reads the mapping models connect to the source and produce the RDF. The appraoch of waiting the data to hit the triple store, can significantly be slow as a process, as it requires to restart several materialization of the RDF produce depending if the mapping connect or not.

I was hoping to verify things directly at the mapping file level, just making sure that the template used where there is a joincondition is the same between primary and foreign key.