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

Following OWL 2 Web Ontology Language Structural Specification and Functional-Style Syntax Documentation #89

Open
Demirrr opened this issue Oct 30, 2024 · 2 comments
Assignees

Comments

@Demirrr
Copy link
Member

Demirrr commented Oct 30, 2024

The interface of owlapy should strictily follow OWL 2 Web Ontology Language Structural Specification and Functional-Style Syntax .
This would help increase the user satisfaction, e.g., less time in learning how the library works.

For instance, I guess owlapy.class_expression should follow the structure of Class Expressions section.
The Class Expression definition provided in the recommendation

ClassExpression :=
    Class |
    ObjectIntersectionOf | ObjectUnionOf | ObjectComplementOf | ObjectOneOf |
    ObjectSomeValuesFrom | ObjectAllValuesFrom | ObjectHasValue | ObjectHasSelf |
    ObjectMinCardinality | ObjectMaxCardinality | ObjectExactCardinality |
    DataSomeValuesFrom | DataAllValuesFrom | DataHasValue |
    DataMinCardinality | DataMaxCardinality | DataExactCardinality

would lead to the following

from owlapy.class_expression import OWLClass, ObjectIntersectionOf, ObjectUnionOf, ObjectComplementOf, ObjectOneOf, ObjectSomeValuesFrom, ObjectAllValuesFrom, ObjectHasValue, ObjectHasSelf, ObjectMinCardinality, ObjectMaxCardinality, ObjectExactCardinality, DataSomeValuesFrom, DataAllValuesFrom, DataHasValue, DataMinCardinality, DataMaxCardinality, DataExactCardinality

Is there any downside of this ? @alkidbaci @LckyLke ?

@alkidbaci
Copy link
Collaborator

As much as we have tried to adhere to the architecture in OWL 2 Specification, it becomes a problem if we strictly follow it. If we were to have the exact inheritance hierarchy that is used there it will certainly lead to circular import issues. The diagrams there intersect with each other making it even more difficult to represent the exact structure in code and at the same time have them separated in different modules (which again, will lead to circular import issues). I think the structure can be slightly changed to cohere with OWL 2 Specification architecture a little bit more but not exactly the same.

@Demirrr
Copy link
Member Author

Demirrr commented Oct 30, 2024

Alrighty. I will take care of it

@Demirrr Demirrr self-assigned this Oct 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants