-
We are running into performance issue with OnTop, where OnTop decided to treat data fields of a single table as each data field comes from a different tables with cross joins. Can you provide some pointers how we can mitigate this problem? Thank you! Yong Mapping target (only snippet) in Protege: :launch_support/{id} a aero_launch:Vehicle_Launch_Support ; Mapping source (only snippet) in Protege: select id, name, description, support_type_name from table SPARQL: select ?support_name ?support_description ?support_type where{ ?support a aero_launch:Vehicle_Launch_Support; } Intermediate Query: ans1(support_name,support_description,support_type) SQL translation ans1(support_name,support_description,support_type) |
Beta Was this translation helpful? Give feedback.
Replies: 4 comments 3 replies
-
Hi @jyh0710, it looks like you are missing a primary key/unique constraint on the If you have control over your data source, please try adding a primary key. Otherwise, you need to provide this information manually to Ontop, using either this legacy format or lenses. At the moment, these features are not supported by the Protégé plugin, so you would need to set the SPARQL endpoint using the CLI or the Docker image. Best, |
Beta Was this translation helpful? Give feedback.
-
Thank you very much for the quick response! We can't generate primary keys for these tables easily, because they are virtualized from web services via Denodo. Is the legacy format available for Protege Plugin, I am hoping to have a way to test out mappings before deployment? Speaking of lenses, can you provide us a link to OnTop 5.0.2? We run into the REPLACE SQL chain issue as well, and I couldn't find the jar on Maven repos. |
Beta Was this translation helpful? Give feedback.
-
Have you consider specifying the primary keys directly in Denodo? Regarding using the legacy constraint format, actually there is a way to use them: your file should have the same base name as the ontology and the mapping files, and use the suffix For 5.0.2, here is the snapshot of the CLI I built one week ago. For getting the snapshot on Maven, you need to add the Snapshot repository of Maven Central: <repositories>
<repository>
<id>central-snapshots</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories> |
Beta Was this translation helpful? Give feedback.
-
Thanks for the suggestion. We did end up specify keys in Denodo, and that did resolve self-join problem. |
Beta Was this translation helpful? Give feedback.
Hi @jyh0710, it looks like you are missing a primary key/unique constraint on the
id
column in your table.Because of that the self-joins cannot be eliminated and a DISTINCT is inserted to eliminate duplicates.
If you have control over your data source, please try adding a primary key.
Otherwise, you need to provide this information manually to Ontop, using either this legacy format or lenses. At the moment, these features are not supported by the Protégé plugin, so you would need to set the SPARQL endpoint using the CLI or the Docker image.
Best,
Benjamin