Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] Reasoner fails to validate when integer is present in ontology IRI #1229

Open
rusdobr opened this issue Aug 26, 2024 · 1 comment
Open
Labels
Status: Unable to Reproduce Used for issues that are bug reports that cannot be reproduced

Comments

@rusdobr
Copy link

rusdobr commented Aug 26, 2024

Reasoner.fails.to.validate.when.integer.is.present.in.ontology.IRI.mp4

Protégé version: 5.6.4
PELLET Reasoner: 2.2.0
OWL API RDF Library: 3.3..
Os: MacOS
Summary:

This issue addresses an issue where the reasoner fails to properly validate ontologies when the ontology IRI contains integer values within the domain or path. The issue appears to specifically affect scenarios where the IRI includes an integer, leading to unexpected behavior in some reasoners, such as failing to detect violations of functional data properties.

Details:

Problem: Ontologies with IRIs that contain integers, particularly in the domain or subpath (e.g., http://www.semanticweb.org/sample/1/sample), may not be correctly validated by certain reasoners. This issue was observed with functional data properties where multiple values were not flagged as errors, despite the properties being marked as functional.

Cause: While the exact cause is not fully understood, it appears that reasoners might have trouble parsing or processing IRIs that include numeric segments in certain positions. This could be due to internal parsing logic or a conflict with how numeric values are treated within the IRI.

Solution: To address this, the recommendation is to avoid using numeric segments in the domain or critical path portions of the IRI. For instance, instead of http://www.semanticweb.org/sample/1/sample, use [http://www.semanticweb.org/sample/sample] . Additionally, the underlying reasoner and OWL API might need updates to better handle such cases without failure.

Steps to Reproduce:

Create an ontology with an IRI that contains an integer in the domain or path, such as http://www.semanticweb.org/sample/1/sample.
Define a class with a functional data property and assign multiple values of different types (e.g., an integer and a string) to this property.
Run the reasoner and observe that the expected validation error (multiple values for a functional property) is not flagged.

Proposed Changes:

Update documentation to recommend avoiding numeric segments in IRIs, particularly in the domain or path portions.
Investigate and potentially update reasoner or OWL API logic to handle numeric IRIs more robustly.

Impact:

This change will help ensure that reasoners correctly validate ontologies, even when IRIs contain numeric segments, thereby avoiding silent failures in validation. It also provides guidance to users to avoid potential pitfalls with their ontology IRIs.

Testing:

Ontologies with and without numeric IRIs should be tested to ensure consistent and correct validation behavior.
Consider adding test cases specifically designed to include numeric IRIs and verify that they are handled appropriately by reasoners.

Additional Notes:

It would be helpful to understand if this issue is specific to certain reasoners or if it affects the OWL API more broadly.
User feedback suggests that this problem can lead to undetected issues in ontologies, which may cause significant downstream effects.

Ontology example is attached
sample.owx.zip

@protegeproject protegeproject deleted a comment Aug 26, 2024
@gouttegd gouttegd added Status: Needs Reproducing Assigned to things that are bugs, but that have not been checked Status: Unable to Reproduce Used for issues that are bug reports that cannot be reproduced and removed Status: Needs Reproducing Assigned to things that are bugs, but that have not been checked labels Aug 26, 2024
@rusdobr
Copy link
Author

rusdobr commented Aug 28, 2024

Hi guys, I updated description with the short video how issue to be reproduced

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Status: Unable to Reproduce Used for issues that are bug reports that cannot be reproduced
Projects
None yet
Development

No branches or pull requests

2 participants