GITHUB : bump owlapi versions to 3.5-SNAPSHOT

switch to com.github.ansell.owlapi as package to differentiate from upstream

add .gitignore

add slf4j-api dependency

add metainf-services dependency

add sesame dependencies

add commons-io test dependency to contract

avoid depending on junit and mockito in pom.xml by using dependencyManagement
GITHUB : switch the URL in the generated by message to this github fork
GITHUB : README.md : Differences from com.github.ansell.owlapi to net.sourceforge.owlapi
use maven properties file to fetch the current version

avoid synchronising static method for singleton creation
add log4j.properties files for tests
javadoc OWLRDFVocabulary so full URIs show up as tooltips in IDE
javadoc OWLRDFVocabulary.BUILT_IN_ANNOTATION_PROPERTY_IRIS
REPORTED : SF-3521809 : catch KRSS Error that can be thrown in ParsableOWLOntologyFactory
convert OWLOntologyManagerImpl to use ConcurrentMap and volatile variables

use concurrentmap in OWLOntologyManagerImpl for potential increased throughput internally as it is used everywhere in the api to track ontologies and their closures

make non-final variables in OWLOntologyManagerImpl volatile
convert OWLOntologyManagerImpl.autoGeneratedURICounter to use AtomicInteger
REPORTED : SF-3577999 : extend Namespaces enum with common prefixes

common prefixes are virtually never changed or assigned in any other way, without making them mandatory

also provide transformation to the OpenRDF Namespace class

add inUse boolean parameter to Namespaces to avoid legacy namespaces
REPORTED : SF-3535332 : IRI extensions to support org.openrdf.model.URI
REPORTED : SF-3535332 : OWLOntologyID extensions including support for org.openrdf.model.URI
add new helper constructor in SetOntologyID
add method of removing ontology from OWLOntologyManager using an OWLOntologyID

using this method ontologies can be easily removed even without pulling in the ontology, if the ontology is not in memory for instance
rework OWLObjectImpl.equals and OWLObjectImpl.hashCode

add note about OWLObjectImpl.hashCode being a source of errors in mutable objects and hashtables

includes an implementation of equals for OWLFacetRestriction that previously relied on the equals implementation in OWLObjectImpl that was broken by design, as it was only ever supposed to be a stub

fixed the bug for the future by ensuring that any class which overrides OWLObjectImpl overrides .equals and that they still have access to the stub equals implementation using super.owlObjectImplEquals(other) to avoid recoding it

fixed the hashcode implementation if objects are mutable, which they definitely are, as previously the hashcode on the first call to hashCode stayed even if the state changed, which would have caused very hard to find bugs

expand logic in OWLObjectImpl.equals and make owlObjectImplEquals non-abstract so it can be called from immediate subclasses

add calls to super.owlObjectImplEquals at the end of calls where previously there were calls to .equals at the start

should be more efficient this way as the most specific information, ie, the most specific interface is being checked straight after the null and this equals checks

fix bug in OWLObjectInverseOfImpl

remove some details from OWLFacetRestrictionImpl

remove another equality test that was added in the previous change that broke something
REPORTED : SF-3516742 : consolidate RDF related classes into a single location
REPORTED : SF-3521488 : switch to java.util.ServiceLoader for ParserFactory implementations
REPORTED : SF-3536150 : fix bug with ontologyIRI and versionIRI loading ontology multiple times

before the patch, TypeOntologyHandler and TPVersionIRIHandler both overwrite existing values in the OWLOntologyID for the ontology

after the patch, TypeOntologyHandler and TPVersionIRIHandler both only set the values of ontologyIRI and versionIRI in the OWLOntologyID if they did not exist previously, so the first setting wins, instead of the current scenario where the last setting sometimes wins...

work on another case where the ontologyIRI in the ontologyID does not match the ontology document, and it is desirable to keep the ontologyIRI in the ontologyID instead of replacing it with the one in the document
REPORTED : SF-3566810 and SF-3536150 : add RuntimeException hack to make getOntology consistent with createOntology

OWLOntologyManager containsVersion and getOntologyIDsByVersion