tibonto / aeon

The Academic Event Ontology (AEON) can be used to represent information regarding academic events.
https://tibonto.github.io/aeon/
Creative Commons Attribution 4.0 International
14 stars 4 forks source link

write logical validation tests in github actions #109

Closed andrecastro0o closed 3 years ago

andrecastro0o commented 3 years ago

In order to write logical validation tests to github actions, I am trying to reproduce the logical errors previously detected and later corrected in AEON

@StroemPhi can you helping me by pointing in the commits' log what was the commit where aeon had logical inconsistencies? I think it might be the commit before #104 was merge, so probably 5aadc985fd7428af96f3f9aac2222137b354514c

Also if you could point the ROBOT command you used to test would be great. I think it might be robot reason but i see it outputting an owl. And i would like to it to output the error + exit code

StroemPhi commented 3 years ago

@andrecastro0o it definitely was introduced with v0.4.0 and fixed with v0.4.1. Will write here once I have the exact axiom & commit that cuased it. But maybe you can check with ROBOT comparing those two versions.

The command to use for the validation is: http://robot.obolibrary.org/validate-profile

andrecastro0o commented 3 years ago

On the topic of what what validting profile to use:

DL: robot validate-profile --profile DL --input aeon.ttl Passes: OWL 2 DL Profile Report: [Ontology and imports closure in profile]

EL:

robot validate-profile --profile EL --input aeon.ttl

OWL 2 EL Profile Report: Ontology and imports closure NOT in profile. The following violations are present:
Axiom type not allowed in profile [InverseObjectProperties(<https://github.com/tibonto/aeon#AEON_0000053> <https://github.com/tibonto/aeon#contact_person_of>) in OntologyID(OntologyIRI(<https://github.com/tibonto/aeon>) VersionIRI(<https://github.com/tibonto/aeon/releases/tag/v0.4.1>))]
Axiom type not allowed in profile [InverseObjectProperties(<https://github.com/tibonto/aeon#AEON_0000054> <https://github.com/tibonto/aeon#holds_keynote_at>) in OntologyID(OntologyIRI(<https://github.com/tibonto/aeon>) VersionIRI(<https://github.com/tibonto/aeon/releases/tag/v0.4.1>))]
Class expressions not allowed in profile: ObjectAllValuesFrom [SubClassOf(<http://purl.obolibrary.org/obo/BFO_0000015> ObjectAllValuesFrom(<http://purl.obolibrary.org/obo/RO_0002012> <http://purl.obolibrary.org/obo/BFO_0000015>)) in OntologyID(OntologyIRI(<https://github.com/tibonto/aeon>) VersionIRI(<https://github.com/tibonto/aeon/releases/tag/v0.4.1>))]
Axiom type not allowed in profile [InverseObjectProperties(<https://github.com/tibonto/aeon#AEON_0000041> <https://github.com/tibonto/aeon#topic_of>) in OntologyID(OntologyIRI(<https://github.com/tibonto/aeon>) VersionIRI(<https://github.com/tibonto/aeon/releases/tag/v0.4.1>))]
Axiom type not allowed in profile [InverseObjectProperties(<https://github.com/tibonto/aeon#AEON_0000032> <https://github.com/tibonto/aeon#academic_event_type_of>) in OntologyID(OntologyIRI(<https://github.com/tibonto/aeon>) VersionIRI(<https://github.com/tibonto/aeon/releases/tag/v0.4.1>))]
Axiom type not allowed in profile [InverseObjectProperties(<https://github.com/tibonto/aeon#AEON_0000047> <https://github.com/tibonto/aeon#moderates_at>) in OntologyID(OntologyIRI(<https://github.com/tibonto/aeon>) VersionIRI(<https://github.com/tibonto/aeon/releases/tag/v0.4.1>))]
Axiom type not allowed in profile [InverseObjectProperties(<http://purl.obolibrary.org/obo/RO_0000081> <http://purl.obolibrary.org/obo/RO_0000087>) in OntologyID(OntologyIRI(<https://github.com/tibonto/aeon>) VersionIRI(<https://github.com/tibonto/aeon/releases/tag/v0.4.1>))]
Axiom type not allowed in profile [InverseObjectProperties(<http://purl.obolibrary.org/obo/IAO_0000219> <http://purl.obolibrary.org/obo/IAO_0000235>) in OntologyID(OntologyIRI(<https://github.com/tibonto/aeon>) VersionIRI(<https://github.com/tibonto/aeon/releases/tag/v0.4.1>))]
Axiom type not allowed in profile [InverseObjectProperties(<https://github.com/tibonto/aeon#AEON_0000082> <https://github.com/tibonto/aeon#has_collocated_event>) in OntologyID(OntologyIRI(<https://github.com/tibonto/aeon>) VersionIRI(<https://github.com/tibonto/aeon/releases/tag/v0.4.1>))]
Axiom type not allowed in profile [InverseObjectProperties(<https://github.com/tibonto/aeon#AEON_0000045> <https://github.com/tibonto/aeon#contibutes_to>) in OntologyID(OntologyIRI(<https://github.com/tibonto/aeon>) VersionIRI(<https://github.com/tibonto/aeon/releases/tag/v0.4.1>))]
Class expressions not allowed in profile: ObjectUnionOf [ObjectPropertyDomain(<https://github.com/tibonto/aeon#has_WikiCFP_ID> ObjectUnionOf(<https://github.com/tibonto/aeon#AEON_0000001> <https://github.com/tibonto/aeon#AEON_0000002>)) in OntologyID(OntologyIRI(<https://github.com/tibonto/aeon>) VersionIRI(<https://github.com/tibonto/aeon/releases/tag/v0.4.1>))]
Use of DataOneOf with multiple literals DataOneOf("as scheduled" "canceled" "delayed" "planned" "postponed" ) [DataPropertyRange(<https://github.com/tibonto/aeon#event_status> DataOneOf("as scheduled" "canceled" "delayed" "planned" "postponed" )) in OntologyID(OntologyIRI(<https://github.com/tibonto/aeon>) VersionIRI(<https://github.com/tibonto/aeon/releases/tag/v0.4.1>))]
Axiom type not allowed in profile [InverseObjectProperties(<https://github.com/tibonto/aeon#AEON_0000051> <https://github.com/tibonto/aeon#sponsors>) in OntologyID(OntologyIRI(<https://github.com/tibonto/aeon>) VersionIRI(<https://github.com/tibonto/aeon/releases/tag/v0.4.1>))]
Axiom type not allowed in profile [InverseObjectProperties(<http://purl.obolibrary.org/obo/BFO_0000054> <http://purl.obolibrary.org/obo/BFO_0000055>) in OntologyID(OntologyIRI(<https://github.com/tibonto/aeon>) VersionIRI(<https://github.com/tibonto/aeon/releases/tag/v0.4.1>))]
Axiom type not allowed in profile [InverseObjectProperties(<http://purl.obolibrary.org/obo/BFO_0000050> <http://purl.obolibrary.org/obo/BFO_0000051>) in OntologyID(OntologyIRI(<https://github.com/tibonto/aeon>) VersionIRI(<https://github.com/tibonto/aeon/releases/tag/v0.4.1>))]
Axiom type not allowed in profile [InverseObjectProperties(<https://github.com/tibonto/aeon#AEON_0000085> <https://github.com/tibonto/aeon#has_umbrella_event>) in OntologyID(OntologyIRI(<https://github.com/tibonto/aeon>) VersionIRI(<https://github.com/tibonto/aeon/releases/tag/v0.4.1>))]
Axiom type not allowed in profile [InverseObjectProperties(<https://github.com/tibonto/aeon#AEON_0000081> <https://github.com/tibonto/aeon#AEON_0000084>) in OntologyID(OntologyIRI(<https://github.com/tibonto/aeon>) VersionIRI(<https://github.com/tibonto/aeon/releases/tag/v0.4.1>))]
Last property in chain not in imposed data range for data range: ObjectPropertyRange(<http://purl.obolibrary.org/obo/RO_0000057> <http://purl.obolibrary.org/obo/BFO_0000002>) [SubObjectPropertyOf(ObjectPropertyChain( <http://purl.obolibrary.org/obo/BFO_0000051> <http://purl.obolibrary.org/obo/BFO_0000055> <http://purl.obolibrary.org/obo/RO_0000052> ) <http://purl.obolibrary.org/obo/RO_0000057>) in OntologyID(OntologyIRI(<https://github.com/tibonto/aeon>) VersionIRI(<https://github.com/tibonto/aeon/releases/tag/v0.4.1>))]
Axiom type not allowed in profile [InverseObjectProperties(<http://purl.obolibrary.org/obo/RO_0000056> <http://purl.obolibrary.org/obo/RO_0000057>) in OntologyID(OntologyIRI(<https://github.com/tibonto/aeon>) VersionIRI(<https://github.com/tibonto/aeon/releases/tag/v0.4.1>))]
Axiom type not allowed in profile [InverseObjectProperties(<https://github.com/tibonto/aeon#AEON_0000048> <https://github.com/tibonto/aeon#organizes>) in OntologyID(OntologyIRI(<https://github.com/tibonto/aeon>) VersionIRI(<https://github.com/tibonto/aeon/releases/tag/v0.4.1>))]
Class expressions not allowed in profile: ObjectAllValuesFrom [EquivalentClasses(<http://purl.obolibrary.org/obo/IAO_0020015> ObjectIntersectionOf(<http://purl.obolibrary.org/obo/IAO_0020000> ObjectAllValuesFrom(<http://purl.obolibrary.org/obo/IAO_0000219> <http://purl.obolibrary.org/obo/NCBITaxon_9606>)) ) in OntologyID(OntologyIRI(<https://github.com/tibonto/aeon>) VersionIRI(<https://github.com/tibonto/aeon/releases/tag/v0.4.1>))]
Axiom type not allowed in profile [InverseObjectProperties(<https://github.com/tibonto/aeon#AEON_0000052> <https://github.com/tibonto/aeon#committee_member_in>) in OntologyID(OntologyIRI(<https://github.com/tibonto/aeon>) VersionIRI(<https://github.com/tibonto/aeon/releases/tag/v0.4.1>))]
Axiom type not allowed in profile [InverseObjectProperties(<http://purl.obolibrary.org/obo/RO_0000052> <http://purl.obolibrary.org/obo/RO_0000053>) in OntologyID(OntologyIRI(<https://github.com/tibonto/aeon>) VersionIRI(<https://github.com/tibonto/aeon/releases/tag/v0.4.1>))]
Class expressions not allowed in profile: ObjectUnionOf [ObjectPropertyDomain(<https://github.com/tibonto/aeon#AEON_0000077> ObjectUnionOf(<http://purl.obolibrary.org/obo/NCBITaxon_9606> <http://purl.obolibrary.org/obo/OBI_0000245>)) in OntologyID(OntologyIRI(<https://github.com/tibonto/aeon>) VersionIRI(<https://github.com/tibonto/aeon/releases/tag/v0.4.1>))]
Class expressions not allowed in profile: ObjectUnionOf [SubClassOf(<http://purl.obolibrary.org/obo/BFO_0000035> ObjectAllValuesFrom(<http://purl.obolibrary.org/obo/RO_0002012> ObjectUnionOf(<http://purl.obolibrary.org/obo/BFO_0000015> <http://purl.obolibrary.org/obo/BFO_0000035>))) in OntologyID(OntologyIRI(<https://github.com/tibonto/aeon>) VersionIRI(<https://github.com/tibonto/aeon/releases/tag/v0.4.1>))]
Class expressions not allowed in profile: ObjectUnionOf [EquivalentClasses(<https://github.com/tibonto/aeon#contributor> ObjectIntersectionOf(ObjectUnionOf(<http://purl.obolibrary.org/obo/NCBITaxon_9606> <http://purl.obolibrary.org/obo/OBI_0000245>) ObjectSomeValuesFrom(<http://purl.obolibrary.org/obo/RO_0000087> ObjectIntersectionOf(<https://github.com/tibonto/aeon#AEON_0000005> ObjectSomeValuesFrom(<http://purl.obolibrary.org/obo/BFO_0000054> <http://purl.obolibrary.org/obo/OBI_0000011>)))) ) in OntologyID(OntologyIRI(<https://github.com/tibonto/aeon>) VersionIRI(<https://github.com/tibonto/aeon/releases/tag/v0.4.1>))]
Class expressions not allowed in profile: ObjectAllValuesFrom [SubClassOf(<http://purl.obolibrary.org/obo/BFO_0000035> ObjectAllValuesFrom(<http://purl.obolibrary.org/obo/RO_0002012> ObjectUnionOf(<http://purl.obolibrary.org/obo/BFO_0000015> <http://purl.obolibrary.org/obo/BFO_0000035>))) in OntologyID(OntologyIRI(<https://github.com/tibonto/aeon>) VersionIRI(<https://github.com/tibonto/aeon/releases/tag/v0.4.1>))]
Axiom type not allowed in profile [InverseObjectProperties(<https://github.com/tibonto/aeon#AEON_0000049> <https://github.com/tibonto/aeon#reviews_at>) in OntologyID(OntologyIRI(<https://github.com/tibonto/aeon>) VersionIRI(<https://github.com/tibonto/aeon/releases/tag/v0.4.1>))]
Axiom type not allowed in profile [InverseObjectProperties(<https://github.com/tibonto/aeon#AEON_0000050> <https://github.com/tibonto/aeon#speaks_at>) in OntologyID(OntologyIRI(<https://github.com/tibonto/aeon>) VersionIRI(<https://github.com/tibonto/aeon/releases/tag/v0.4.1>))]
Axiom type not allowed in profile [InverseObjectProperties(<https://github.com/tibonto/aeon#AEON_0000040> <https://github.com/tibonto/aeon#academic_field_of>) in OntologyID(OntologyIRI(<https://github.com/tibonto/aeon>) VersionIRI(<https://github.com/tibonto/aeon/releases/tag/v0.4.1>))]
Axiom type not allowed in profile [InverseObjectProperties(<https://github.com/tibonto/aeon#AEON_0000046> <https://github.com/tibonto/aeon#attends_at>) in OntologyID(OntologyIRI(<https://github.com/tibonto/aeon>) VersionIRI(<https://github.com/tibonto/aeon/releases/tag/v0.4.1>))]
Axiom type not allowed in profile [InverseObjectProperties(<http://purl.obolibrary.org/obo/BFO_0000066> <http://purl.obolibrary.org/obo/BFO_0000067>) in OntologyID(OntologyIRI(<https://github.com/tibonto/aeon>) VersionIRI(<https://github.com/tibonto/aeon/releases/tag/v0.4.1>))]
Axiom type not allowed in profile [InverseObjectProperties(<https://github.com/tibonto/aeon#AEON_0000055> <https://github.com/tibonto/aeon#committee_chair_in>) in OntologyID(OntologyIRI(<https://github.com/tibonto/aeon>) VersionIRI(<https://github.com/tibonto/aeon/releases/tag/v0.4.1>))]
Axiom type not allowed in profile [InverseObjectProperties(<https://github.com/tibonto/aeon#AEON_0000083> <https://github.com/tibonto/aeon#has_joint_event>) in OntologyID(OntologyIRI(<https://github.com/tibonto/aeon>) VersionIRI(<https://github.com/tibonto/aeon/releases/tag/v0.4.1>))]

PROFILE VIOLATION ERROR https://github.com/tibonto/aeon violates profile EL
For details see: http://robot.obolibrary.org/validate-profile#profile-violation-error
Use the -vvv option to show the stack trace.
Use the --help option to see usage information.

This means that we have to use DL, as EL does not allow for expression certain axioms, such as:

andrecastro0o commented 3 years ago

Hence we will use DL And if want to test failure we can temporary add EL as profile