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

Implementation of SWRL Rules for Time Ontology #1434

Open
mdebellis opened this issue Sep 8, 2023 · 9 comments
Open

Implementation of SWRL Rules for Time Ontology #1434

mdebellis opened this issue Sep 8, 2023 · 9 comments

Comments

@mdebellis
Copy link

I haven't used Github much so I'm not sure if this is really an issue. I just wanted people to know that I've built some SWRL rules to automate the reasoning in the Time Ontology. I also created some sample instants and intervals (based on US military history, that was the quickest way I could think of some examples of events that overlapped, contained, etc.) I'll probably write a short paper on this at some point. I've also added SWRL rules to automate the Temporal Reasoning in the Basic Formal Ontology and once I had done it for BFO it was trivial to copy/paste the test data and rules into the Time ontology. The resulting ontology can be found here: DeBellis Github Time Ontology With SWRL If you have questions or comments please email me at: mdebellissf@gmail.com

@rob-metalinkage
Copy link
Contributor

Will discuss with my OGC colleagues @dr-shorthair and @avillar about setting up formal CI/CT git actions for example validation.

@dr-shorthair already defined SHACL cases we are planning to implement this way.

We are also exploring online playgrounds linking json schema, json-ld and SHACL validation with a plugin for other validators.

If you have an opensource SWRL validation tool chain in mind please drop a comment here.

@dr-shorthair
Copy link
Collaborator

dr-shorthair commented Sep 11, 2023

@mdebellis thank you.

I created a set of test-cases for the relations in Time Ontology in OWL three years ago, but did not proceed to implement tests in SWRL or SHACL.
The test cases are here: https://github.com/w3c/sdw/tree/gh-pages/time/test-suite

A test suite for the proposed Extensions to the OWL-Time Ontology - entity relations is available here: https://github.com/w3c/sdw/tree/gh-pages/time-entity-relations/test-suite

@mdebellis
Copy link
Author

mdebellis commented Sep 11, 2023 via email

@rob-metalinkage
Copy link
Contributor

The SPIN community seems to have migrated to SHACL as an approach, and the OGC has git actions toolkits we can set up to validate examples using pySHACL. This doesnt mean we cant use other rules languages, but we'd need a git action as an example to integrate this into our workflows. Alternatively can SHACL be used?

NB Reasoning/entailment preprocessing is feasible - SHACL-AF can be used for this.

@mdebellis
Copy link
Author

mdebellis commented Sep 12, 2023 via email

@mdebellis
Copy link
Author

mdebellis commented Sep 13, 2023 via email

@dr-shorthair
Copy link
Collaborator

When we revised the 2006 OWL-Time for the 2017 version, switching to xsd:dateTimeStamp was considered to be a very useful step forward. The reasons are obvious - without timezone information, none of the topological relationships between temporal entities in the same 24 hour period can be determined. Clearly the tools have not kept up, but the requirement is clear. The datatype builds it into the language infrastructure. If the datatype was relaxed to xsd:dateTime then there would need to be external checks.

@mdebellis
Copy link
Author

When we revised the 2006 OWL-Time for the 2017 version, switching to xsd:dateTimeStamp was considered to be a very useful step forward. The reasons are obvious - without timezone information, none of the topological relationships between temporal entities in the same 24 hour period can be determined. Clearly the tools have not kept up, but the requirement is clear. The datatype builds it into the language infrastructure. If the datatype was relaxed to xsd:dateTime then there would need to be external checks.

I wanted to think about this for a bit but just for the record I disagree with this decision. First, I agree that it is kind of ridiculous that SWRL doesn't support xsd:dateTimeStamp but even if it did I would still disagree with this decision. The reason is that IMO these vocabularies should be all about reuse. So if you want to do reuse you don't want to impose your design decisions on the users. I don't know what your real world experience with ontologies has been but in my experience I have to deal with all sorts of existing requirements that don't make sense but can't be changed. I.e., it is quite possible that someone may want to use the Time ontology and have to work in a system that uses xsd:dateTime because there is some other database that uses that datatype and the datatype can't be changed without breaking existing code. So is it really rational to say to such people:
"well sucks to be you, you should design your systems better"?? I see the point about time zones and agree they are a good thing but you can still use them with xsd:dateTime, they just aren't mandatory. So you put a warning in the documentation and the ontology that says: make sure you use time zones if you use xsd:dateTime. A while ago I studied some of the design documents around SKOS and one thing I loved that I think many vocabularies (e.g., BFO and in this case the Time ontology) ignore is something that Tom Gruber coined in a short paper called I think "the principle of least ontological commitment" The point was that an ontology language (and in the opinion of the SKOS designers and me also a vocabulary) should try to be as minimal on design decisions as possible. Leave those things to the user, those are their decisions. Reusable assets should be as open and free of such commitments as possible. Anyway, just my opinion.

@dr-shorthair
Copy link
Collaborator

Let's continue the datatype discussion in #1435

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

3 participants