bump owlapi versions to 3.4-SNAPSHOT

add .gitignore

add slf4j-api dependency

add metainf-services dependency

add sesame dependencies

avoid depending on junit in pom.xml by using dependencyManagement
add log4j.properties files for tests
typo in OWLManager javadoc
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
convert TurtleUTF8BOMTest to junit-4 and ignore test that is currently broken
add @Override annotations to AbstractOWLOntologyStorer
add java6 @Override to interface methods in OWLOntologyImpl

add null check in OWLOntologyImpl.equals
add IRI.create(org.openrdf.model.URI)
use maven properties file to fetch the current version

avoid synchronising static method for singleton creation
javadoc OWLRDFVocabulary so full URIs show up as tooltips in IDE
javadoc OWLRDFVocabulary.BUILT_IN_ANNOTATION_PROPERTY_IRIS
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
3516742 : consolidate RDF related classes into a single location
3521488 : switch to java.util.ServiceLoader for ParserFactory implementations

single location for OntologyFormat classes so they can be discovered

implement OntologyStorerFactoryRegistry and change references to formats

move TurtleOntologyFormat that was missed before

move default ontology format

add slf4j-api and logging configuration to api and apibinding so that during tests, service loading failures are displayed

add missing compile scope dependencies that aren't being passed through by owlapi-apibinding with runtime dependency scopes

update assembly plugin and add metaInf-services descriptor handler to merge services files in distribution

make dlsyntax a runtime dependency of owlapi-apibinding

constrain to only catch Error's that jump out of the KRSS parser

add test for OWLOntologyStorerFactoryRegistry

add note in AbstractServiceLoader to print the number of loaded services to the log

remove unnecessary circular reference between OWLOntologyFormat and PrefixOWLOntologyFormat

as... methods are actually simpler done as casts, as are instanceof calls

add specific getKey method to OWLOntologyFormat

fix tests

close output stream

reduce logging

fix hashcode in DefaultOntologyFormat

fix registry test tearDown

check if test ontology loaded properly by checking its axiom count

this has been failing tests with obscure errors due to relative comparisons that assume the ontology always loads properly

lower debugging level

allow cases with only annotations

remove explicit classloader from serviceloader call as it causes tests to fail in my openjdk-7 install

remove tests and references to the static instance

fix RDF/XML and OWLXML bug where OWLXML was being used to parse RDF/XML without error due to the lack of ordering for parsers in the SPI implementation

lower debug level

OWLManager changes

add new OWLManager method to enable use of custom ontology storer registries

extend ParsableOWLOntologyFactory to allow custom parser registries to be used

avoid NullPointerException and return Collections.emptyList() instead

implement OWLReasonerFactoryRegistry

make ontology storer factory registry test immune to changes in the SPI dependencies by clearing the registry before each run

move new OBOOntologyFormat direct dependencies into owlapi-api module

fix ConcurrentMap logic in AbstractServiceLoader

use OWLOntologyManagerFactoryRegistry instead of OWLManager

OWLOntologyManagerFactoryRegistry is a service provider interface front to track OWLManagerFactory instances using META-INF/services property files which can in turn provide OWLManager instances.

fix message

note in OWLReasonerFactoryRegistry that static instance is not mandatory

add compareTo for OWLOntologyFormat based on key string compareTo

make formats backwards compatible for instanceof, equals, and compareTo

work on compatibility so new interfaces are geared towards o.s.o.formats.*

move OWLManager from apibinding to impl to match its dependencies

move OWLFunctionalSyntaxFactory from apibinding to functional

uses service provider interface now, so the previous hard requirement on OWLManager is not present

api module now a runtime dependency for apibinding, as the tests are compiled using the runtime scope

remove metainf-services dependency in apibinding as OWLManager is gone

add SPI for concrete subclasses of OWLOntologyFormat along with Registry

Factory classes are needed as OWLOntologyFormat instances are allowed to be mutable, and all uses of OWLOntologyFormat so far is using "new XYZOntologyFormat()"

add RioRDFOntologyFormat and NTriplesOntologyFormat

migrate RDFXMLOntologyFormat and TurtleOntologyFormat so they are backwards compatible and can be used with the rio storer and parser in future

reform AbstractServiceLoader.get to explicitly use .equals instead of either .equals or .hashcode based on the implementation
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

only code addition so far is changing ontologyIRIs to be a List so that insertion order is preserved
3536150 : add RuntimeException hack to make getOntology consistent with createOntology
3535332 : ignore uncommon UTF8-BOM case
3535332 : ignoring turtle blank node test that can randomly fail if nodes are processed in a different order

root cause for failure is a misunderstanding of the RDF specification w.r.t blank nodes, as their identifiers mean nothing and cannot be persisted. If you want persistent identifiers using URI/IRIs