From 2d4748654719eb349d8cd9b068116df18666c550 Mon Sep 17 00:00:00 2001 From: Richard Eckart de Castilho Date: Wed, 17 Jul 2024 11:51:57 -0300 Subject: [PATCH 1/3] Issue #1145: Upgrade to RDF4J 5.x - Upgrade to RDF4J 5.0.1 - Fix issues preventing compilation - Remove redundant/outdated dependency declarations in distribution modules - Enhanced TestBase to allow printing the document at the start and end of the round trip --- .../owlapi/api/test/baseclasses/TestBase.java | 14 +- distribution/pom.xml | 2 +- osgidistribution/pom.xml | 23 +- pom.xml | 5 +- .../owlapi/rio/RioMemoryTripleSource.java | 214 ++++++++---------- 5 files changed, 124 insertions(+), 134 deletions(-) diff --git a/contract/src/test/java/org/semanticweb/owlapi/api/test/baseclasses/TestBase.java b/contract/src/test/java/org/semanticweb/owlapi/api/test/baseclasses/TestBase.java index 6b055a65ab..4533f044fc 100644 --- a/contract/src/test/java/org/semanticweb/owlapi/api/test/baseclasses/TestBase.java +++ b/contract/src/test/java/org/semanticweb/owlapi/api/test/baseclasses/TestBase.java @@ -638,9 +638,13 @@ public OWLOntology roundTripOntology(OWLOntology ont, OWLDocumentFormat format) format.setAddMissingTypes(addMissingTypes); } if (logger.isTraceEnabled()) { + logger.trace("TestBase.roundTripOntology() ontology originally"); + ont.getAxioms().forEach(ax -> logger.trace(ax.toString())); + logger.trace("Original document (begin) ================"); StringDocumentTarget targetForDebug = new StringDocumentTarget(); m.saveOntology(ont, format, targetForDebug); logger.trace(targetForDebug.toString()); + logger.trace("Original document (end) =================="); } m.saveOntology(ont, format, target); handleSaved(target, format); @@ -650,10 +654,12 @@ public OWLOntology roundTripOntology(OWLOntology ont, OWLDocumentFormat format) null), new OWLOntologyLoaderConfiguration().setReportStackTraces(true)); if (logger.isTraceEnabled()) { logger.trace("TestBase.roundTripOntology() ontology parsed"); - Set axioms = ont2.getAxioms(); - for (OWLAxiom ax : axioms) { - logger.trace(ax.toString()); - } + ont2.getAxioms().forEach(ax -> logger.trace(ax.toString())); + logger.trace("Parsed document (begin) ================="); + StringDocumentTarget targetForDebug = new StringDocumentTarget(); + ont2.saveOntology(format, targetForDebug); + logger.trace(targetForDebug.toString()); + logger.trace("Parsed document (end) ==================="); } equal(ont, ont2); return ont2; diff --git a/distribution/pom.xml b/distribution/pom.xml index f01eff2d21..d28b762174 100644 --- a/distribution/pom.xml +++ b/distribution/pom.xml @@ -47,7 +47,7 @@ org.eclipse.rdf4jrdf4j-rio-trix${inherited.rdf4j.version} org.eclipse.rdf4jrdf4j-rio-turtle${inherited.rdf4j.version} org.eclipse.rdf4jrdf4j-rio-trig${inherited.rdf4j.version} - org.eclipse.rdf4jrdf4j-util${inherited.rdf4j.version} + org.eclipse.rdf4jrdf4j-rio-hdt${inherited.rdf4j.version} com.github.jsonld-javajsonld-java0.13.6 diff --git a/osgidistribution/pom.xml b/osgidistribution/pom.xml index 5a3ccb7a88..17fcf88fdf 100644 --- a/osgidistribution/pom.xml +++ b/osgidistribution/pom.xml @@ -34,10 +34,14 @@ org.tukaanixz1.9 org.slf4jslf4j-api2.0.11 org.slf4jjcl-over-slf4j2.0.11 - org.eclipse.rdf4jrdf4j-model${inherited.rdf4j.version} - org.eclipse.rdf4jrdf4j-model-api${inherited.rdf4j.version} - org.eclipse.rdf4jrdf4j-model-vocabulary${inherited.rdf4j.version} - org.eclipse.rdf4jrdf4j-rio-api${inherited.rdf4j.version} + org.slf4jslf4j-api1.7.30 + org.slf4jjcl-over-slf4j1.7.30 + org.eclipse.rdf4jrdf4j-rio-api${inherited.rdf4j.version} + + javax.xml.bindjaxb-api + jakarta.xml.bindjakarta.xml.bind-api + + org.eclipse.rdf4jrdf4j-rio-languages${inherited.rdf4j.version} org.eclipse.rdf4jrdf4j-rio-datatypes${inherited.rdf4j.version} org.eclipse.rdf4jrdf4j-rio-binary${inherited.rdf4j.version} @@ -50,7 +54,16 @@ org.eclipse.rdf4jrdf4j-rio-trix${inherited.rdf4j.version} org.eclipse.rdf4jrdf4j-rio-turtle${inherited.rdf4j.version} org.eclipse.rdf4jrdf4j-rio-trig${inherited.rdf4j.version} - org.eclipse.rdf4jrdf4j-util${inherited.rdf4j.version} + org.eclipse.rdf4jrdf4j-rio-hdt${inherited.rdf4j.version} + org.eclipse.rdf4jrdf4j-common-annotation${inherited.rdf4j.version} + org.eclipse.rdf4jrdf4j-common-exception${inherited.rdf4j.version} + org.eclipse.rdf4jrdf4j-model-vocabulary${inherited.rdf4j.version} + org.eclipse.rdf4jrdf4j-model-api${inherited.rdf4j.version} + org.eclipse.rdf4jrdf4j-common-text${inherited.rdf4j.version} + org.eclipse.rdf4jrdf4j-common-io${inherited.rdf4j.version} + org.eclipse.rdf4jrdf4j-common-iterator${inherited.rdf4j.version} + org.eclipse.rdf4jrdf4j-model${inherited.rdf4j.version} + org.eclipse.rdf4jrdf4j-common-xml${inherited.rdf4j.version} com.github.jsonld-javajsonld-java0.13.6 org.apache.httpcomponentshttpclient4.5.14 org.apache.httpcomponentshttpclient-cache4.5.14 diff --git a/pom.xml b/pom.xml index dfd22f0878..3c7c741c76 100644 --- a/pom.xml +++ b/pom.xml @@ -24,8 +24,9 @@ UTF-8 - 3.7.7 - + 5.0.1 + false 4.0.0 diff --git a/rio/src/main/java/org/semanticweb/owlapi/rio/RioMemoryTripleSource.java b/rio/src/main/java/org/semanticweb/owlapi/rio/RioMemoryTripleSource.java index aa4e34b171..cc8ce99aea 100644 --- a/rio/src/main/java/org/semanticweb/owlapi/rio/RioMemoryTripleSource.java +++ b/rio/src/main/java/org/semanticweb/owlapi/rio/RioMemoryTripleSource.java @@ -1,33 +1,33 @@ /* * This file is part of the OWL API. - * + * * The contents of this file are subject to the LGPL License, Version 3.0. - * + * * Copyright (C) 2011, The University of Queensland - * + * * This program is free software: you can redistribute it and/or modify it under the terms of the * GNU General Public License as published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. - * + * * You should have received a copy of the GNU General Public License along with this program. If * not, see http://www.gnu.org/licenses/. - * - * + * + * * Alternatively, the contents of this file may be used under the terms of the Apache License, * Version 2.0 in which case, the provisions of the Apache License Version 2.0 are applicable * instead of those above. - * + * * Copyright 2011, The University of Queensland - * + * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software distributed under the License * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express * or implied. See the License for the specific language governing permissions and limitations under @@ -42,12 +42,7 @@ import java.util.Iterator; import java.util.LinkedHashMap; import java.util.Map; -import java.util.NoSuchElementException; import java.util.Set; - -import javax.annotation.Nonnull; - -import org.eclipse.rdf4j.OpenRDFException; import org.eclipse.rdf4j.common.iteration.CloseableIteration; import org.eclipse.rdf4j.model.Model; import org.eclipse.rdf4j.model.Namespace; @@ -57,55 +52,55 @@ import org.semanticweb.owlapi.io.OWLOntologyDocumentSourceBase; import org.semanticweb.owlapi.model.IRI; import org.semanticweb.owlapi.model.OWLDocumentFormat; -import org.semanticweb.owlapi.model.OWLRuntimeException; /** - * An implementation of the OWLOntologyDocumentSource interface that does not implement any of the - * InputStream, Reader, or IRI source retrieval methods. Instead it holds a reference to an iterator - * that will generate bare triples to be interpreted by a Sesame Rio based OWLParser implementation. - * + * An implementation of the OWLOntologyDocumentSource interface that does not + * implement any of the InputStream, Reader, or IRI source retrieval methods. + * Instead it holds a reference to an iterator that will generate bare triples + * to be interpreted by a Sesame Rio based OWLParser implementation. + * * @author Peter Ansell p_ansell@yahoo.com * @since 4.0.0 */ public class RioMemoryTripleSource implements OWLOntologyDocumentSource { private final Map namespaces = new LinkedHashMap<>(); - @Nonnull private final Iterator statementIterator; - @Nonnull private final IRI documentIRI; - /** - * Creates a RioMemoryTripleSource using an {@link Iterable} of {@link Statement} objects. - * + * Creates a RioMemoryTripleSource using an {@link Iterable} of + * {@link Statement} objects. + * * @param statements An {@link Iterator} of {@link Statement} objects that make up this source. */ - public RioMemoryTripleSource(@Nonnull Iterator statements) { + public RioMemoryTripleSource(Iterator statements) { documentIRI = OWLOntologyDocumentSourceBase.getNextDocumentIRI("rio-memory-triples:"); statementIterator = checkNotNull(statements, "statements cannot be null"); } /** - * Creates a RioMemoryTripleSource using an {@link Iterable} of {@link Statement} objects. - * + * Creates a RioMemoryTripleSource using an {@link Iterable} of + * {@link Statement} objects. + * * @param statements An {@link Iterator} of {@link Statement} objects that make up this source. * @param namespaces A Map of namespaces from prefix to full URI which are to be used by this - * source. + * source. */ - public RioMemoryTripleSource(@Nonnull Iterator statements, - @Nonnull Map namespaces) { + public RioMemoryTripleSource(Iterator statements, Map namespaces) { this(statements); this.namespaces.putAll(namespaces); } /** - * Creates a RioMemoryTripleSource using an {@link Iterable} of {@link Statement} objects.
- * If the Iterable is an instance of {@link Model}, the namespaces from the model are also used. - * + * Creates a RioMemoryTripleSource using an {@link Iterable} of + * {@link Statement} objects.
+ * If the Iterable is an instance of {@link Model}, the namespaces from the + * model are also used. + * * @param statements A {@link CloseableIteration} of {@link Statement} objects that make up this - * source. + * source. */ - public RioMemoryTripleSource(@Nonnull Iterable statements) { + public RioMemoryTripleSource(Iterable statements) { documentIRI = OWLOntologyDocumentSourceBase.getNextDocumentIRI("rio-memory-triples:"); statementIterator = statements.iterator(); if (statements instanceof Model) { @@ -114,81 +109,32 @@ public RioMemoryTripleSource(@Nonnull Iterable statements) { } /** - * Creates a RioMemoryTripleSource using a closeable iteration. Internally this wraps the - * statements as an Iterator, and hence all statements must be read for the iterator to be - * closed automatically. - * + * Creates a RioMemoryTripleSource using a closeable iteration. Internally + * this wraps the statements as an Iterator, and hence all statements must + * be read for the iterator to be closed automatically. + * * @param statements A {@link CloseableIteration} of {@link Statement} objects that make up this - * source. + * source. */ public RioMemoryTripleSource( - final CloseableIteration statements) { + final CloseableIteration statements) { documentIRI = OWLOntologyDocumentSourceBase.getNextDocumentIRI("rio-memory-triples:"); - statementIterator = new Iterator() { - - @Override - public void remove() { - throw new UnsupportedOperationException( - "Cannot remove statements using this iterator"); - } - - @Override - public Statement next() { - Statement nextStatement = null; - try { - nextStatement = statements.next(); - if (nextStatement != null) { - return nextStatement; - } else { - throw new NoSuchElementException("No more statements in this iterator"); - } - } catch (OpenRDFException e) { - throw new OWLRuntimeException("Found exception while iterating", e); - } finally { - if (nextStatement == null) { - try { - statements.close(); - } catch (OpenRDFException e) { - throw new OWLRuntimeException(e); - } - } - } - } - - @Override - public boolean hasNext() { - boolean result = false; - try { - result = statements.hasNext(); - return result; - } catch (OpenRDFException e) { - throw new OWLRuntimeException("Found exception while iterating", e); - } finally { - if (!result) { - try { - statements.close(); - } catch (OpenRDFException e) { - throw new OWLRuntimeException(e); - } - } - } - } - }; + statementIterator = new StatementIterator(statements); } /** - * Creates a RioMemoryTripleSource using a closeable iteration. Internally this wraps the - * statements as an Iterator, and hence all statements must be read for the iterator to be - * closed automatically. - * + * Creates a RioMemoryTripleSource using a closeable iteration. Internally + * this wraps the statements as an Iterator, and hence all statements must + * be read for the iterator to be closed automatically. + * * @param statements A {@link CloseableIteration} of {@link Statement} objects that make up this - * source. + * source. * @param namespaces A Map of namespaces from prefix to full URI which are to be used by this - * source. + * source. */ public RioMemoryTripleSource( - final CloseableIteration statements, - final Map namespaces) { + final CloseableIteration statements, + final Map namespaces) { this(statements); this.namespaces.putAll(namespaces); } @@ -201,7 +147,7 @@ public boolean isReaderAvailable() { @Override public Reader getReader() { throw new UnsupportedOperationException( - "No reader available for RioMemoryTripleSource, use isReaderAvailable() to check"); + "No reader available for RioMemoryTripleSource, use isReaderAvailable() to check"); } @Override @@ -212,12 +158,7 @@ public boolean isInputStreamAvailable() { @Override public InputStream getInputStream() { throw new UnsupportedOperationException( - "No input stream available for RioMemoryTripleSource, use isInputStreamAvailable() to check"); - } - - @Override - public IRI getDocumentIRI() { - return documentIRI; + "No input stream available for RioMemoryTripleSource, use isInputStreamAvailable() to check"); } @Override @@ -230,6 +171,11 @@ public OWLDocumentFormat getFormat() { return null; } + @Override + public IRI getDocumentIRI() { + return documentIRI; + } + /** * @return namespace map */ @@ -237,6 +183,24 @@ public Map getNamespaces() { return namespaces; } + /** + * @param nextNamespaces map of namespaces to set + */ + public void setNamespaces(Map nextNamespaces) { + namespaces.clear(); + namespaces.putAll(nextNamespaces); + } + + @Override + public String getMIMEType() { + return null; + } + + @Override + public boolean isMIMETypeKnown() { + return false; + } + /** * @return statements */ @@ -252,21 +216,27 @@ public void setNamespaces(Set nextNamespaces) { namespaces.putAll(Namespaces.asMap(nextNamespaces)); } - /** - * @param nextNamespaces map of namespaces to set - */ - public void setNamespaces(Map nextNamespaces) { - namespaces.clear(); - namespaces.putAll(nextNamespaces); - } + static final class StatementIterator implements Iterator { - @Override - public String getMIMEType() { - return null; - } + private final CloseableIteration statements; - @Override - public boolean isMIMETypeKnown() { - return false; + StatementIterator(CloseableIteration statements) { + this.statements = statements; + } + + @Override + public void remove() { + throw new UnsupportedOperationException("Cannot remove statements using this iterator"); + } + + @Override + public Statement next() { + return statements.next(); + } + + @Override + public boolean hasNext() { + return statements.hasNext(); + } } } From bf83722226a4d23ced620dfb4a58f6568ced2a20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ha=CC=8Avard=20Ottestad?= Date: Fri, 2 Aug 2024 23:00:02 +0200 Subject: [PATCH 2/3] GH-1145 update to RDF4J 5.0.2 and disable test case for handling of invalid json-ld --- .../org/semanticweb/owlapi/api/test/syntax/IRITestCase.java | 3 +++ pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/contract/src/test/java/org/semanticweb/owlapi/api/test/syntax/IRITestCase.java b/contract/src/test/java/org/semanticweb/owlapi/api/test/syntax/IRITestCase.java index c54d5e2371..5fb07bf183 100644 --- a/contract/src/test/java/org/semanticweb/owlapi/api/test/syntax/IRITestCase.java +++ b/contract/src/test/java/org/semanticweb/owlapi/api/test/syntax/IRITestCase.java @@ -3,6 +3,8 @@ import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; +import org.eclipse.rdf4j.rio.helpers.JSONLDSettings; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.semanticweb.owlapi.api.test.baseclasses.TestBase; import org.semanticweb.owlapi.formats.FunctionalSyntaxDocumentFormat; @@ -185,6 +187,7 @@ void shouldParseIRIAndSkipPrefixedSpaceRioTurtle() { } @Test + @Disabled("The correct behaviour for JSON-LD 1.1 is to skip invalid data, including IRIs that start with a space. A warning should be logged. To get an exception instead you can set JSONLDSettings.EXCEPTION_ON_WARNING.") void shouldParseIRIAndSkipPrefixedSpaceJSONLD() { roundTrip(new RDFJsonLDDocumentFormat(), BAD_JSON_LD); } diff --git a/pom.xml b/pom.xml index 3c7c741c76..54e8e6a466 100644 --- a/pom.xml +++ b/pom.xml @@ -24,8 +24,8 @@ UTF-8 - 5.0.1 - false From a2644c80e0db32bdf7df9fcb8ead396d62f46098 Mon Sep 17 00:00:00 2001 From: Jim Balhoff Date: Sun, 25 Jan 2026 13:00:07 -0500 Subject: [PATCH 3/3] Fixes for RDF4J 5. --- .../owlapi/rio/RioRendererTestCase.java | 6 +++--- .../owlapi/rio/RioUtilsTestCase.java | 14 ++++++------- .../owlapi/rio/OWLAPIRioTrixParser.java | 20 +++++++++---------- .../owlapi/rio/RioOWLRDFParser.java | 4 ++-- .../semanticweb/owlapi/rio/RioParserImpl.java | 4 ++-- .../semanticweb/owlapi/rio/RioRenderer.java | 11 ++-------- .../org/semanticweb/owlapi/rio/RioStorer.java | 4 ++-- .../owlapi/rio/utils/RioUtils.java | 18 ++++++++--------- 8 files changed, 37 insertions(+), 44 deletions(-) diff --git a/contract/src/test/java/org/semanticweb/owlapi/rio/RioRendererTestCase.java b/contract/src/test/java/org/semanticweb/owlapi/rio/RioRendererTestCase.java index 2f1c41791a..f0079464e4 100644 --- a/contract/src/test/java/org/semanticweb/owlapi/rio/RioRendererTestCase.java +++ b/contract/src/test/java/org/semanticweb/owlapi/rio/RioRendererTestCase.java @@ -15,7 +15,7 @@ import org.eclipse.rdf4j.model.Statement; import org.eclipse.rdf4j.model.ValueFactory; -import org.eclipse.rdf4j.model.impl.ValueFactoryImpl; +import org.eclipse.rdf4j.model.impl.SimpleValueFactory; import org.eclipse.rdf4j.model.vocabulary.OWL; import org.eclipse.rdf4j.model.vocabulary.RDF; import org.eclipse.rdf4j.rio.RDFFormat; @@ -54,7 +54,7 @@ class RioRendererTestCase extends TestBase { @BeforeEach void setUp() { - vf = new ValueFactoryImpl(); + vf = SimpleValueFactory.getInstance(); m.getOntologyStorers().set(new RioNTriplesStorerFactory(), new RioRDFXMLStorerFactory(), new RioTurtleStorerFactory()); testOntologyEmpty = create(testOntologyUri1); @@ -62,7 +62,7 @@ void setUp() { assertEquals(70, testOntologyKoala.getAxiomCount()); testHandlerStatementCollector = new StatementCollector(); testOntologyEmptyStatement = - vf.createStatement(vf.createURI("urn:test:ontology:uri:1"), RDF.TYPE, OWL.ONTOLOGY); + vf.createStatement(vf.createIRI("urn:test:ontology:uri:1"), RDF.TYPE, OWL.ONTOLOGY); testRdfXmlStringWriter = new StringWriter(); testRdfXmlRioWriter = Rio.createWriter(RDFFormat.RDFXML, testRdfXmlStringWriter); testTurtleStringWriter = new StringWriter(); diff --git a/contract/src/test/java/org/semanticweb/owlapi/rio/RioUtilsTestCase.java b/contract/src/test/java/org/semanticweb/owlapi/rio/RioUtilsTestCase.java index b907db8e16..daf82daaad 100644 --- a/contract/src/test/java/org/semanticweb/owlapi/rio/RioUtilsTestCase.java +++ b/contract/src/test/java/org/semanticweb/owlapi/rio/RioUtilsTestCase.java @@ -8,9 +8,9 @@ import org.eclipse.rdf4j.model.BNode; import org.eclipse.rdf4j.model.Literal; import org.eclipse.rdf4j.model.Statement; -import org.eclipse.rdf4j.model.URI; +import org.eclipse.rdf4j.model.IRI; import org.eclipse.rdf4j.model.ValueFactory; -import org.eclipse.rdf4j.model.impl.ValueFactoryImpl; +import org.eclipse.rdf4j.model.impl.SimpleValueFactory; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.BeforeEach; import org.semanticweb.owlapi.api.test.baseclasses.TestBase; @@ -26,7 +26,7 @@ class RioUtilsTestCase extends TestBase { private static final String TEST_LITERAL = "Test literal"; - private static final ValueFactory VF = ValueFactoryImpl.getInstance(); + private static final ValueFactory VF = SimpleValueFactory.getInstance(); private RDFTriple testOwlApiTripleAllIRI; private RDFTriple testOwlApiTriplePlainLiteral; private RDFTriple testOwlApiTripleLangLiteral; @@ -71,13 +71,13 @@ void setUp() { new RDFTriple(testOwlApiSubjectUri1, testOwlApiPredicateUri1, testOwlApiObjectBNode1); testOwlApiTripleSubjectObjectBNode = new RDFTriple(testOwlApiSubjectBNode1, testOwlApiPredicateUri1, testOwlApiObjectBNode1); - URI testSesameSubjectUri1 = VF.createURI("urn:test:subject:uri:1"); - URI testSesamePredicateUri1 = VF.createURI("urn:test:predicate:uri:1"); - URI testSesameObjectUri1 = VF.createURI("urn:test:object:uri:1"); + IRI testSesameSubjectUri1 = VF.createIRI("urn:test:subject:uri:1"); + IRI testSesamePredicateUri1 = VF.createIRI("urn:test:predicate:uri:1"); + IRI testSesameObjectUri1 = VF.createIRI("urn:test:object:uri:1"); Literal testSesameObjectPlainLiteral1 = VF.createLiteral(TEST_LITERAL); Literal testSesameObjectLangLiteral1 = VF.createLiteral(TEST_LITERAL, "en"); Literal testSesameObjectTypedLiteral1 = - VF.createLiteral(TEST_LITERAL, VF.createURI("urn:test:datatype:1")); + VF.createLiteral(TEST_LITERAL, VF.createIRI("urn:test:datatype:1")); BNode testSesameSubjectBNode1 = VF.createBNode("subjectBnode1"); BNode testSesameObjectBNode1 = VF.createBNode("objectBnode1"); testSesameTripleAllIRI = VF.createStatement(testSesameSubjectUri1, testSesamePredicateUri1, diff --git a/rio/src/main/java/org/semanticweb/owlapi/rio/OWLAPIRioTrixParser.java b/rio/src/main/java/org/semanticweb/owlapi/rio/OWLAPIRioTrixParser.java index 11e2cf27d2..57ed7ad666 100644 --- a/rio/src/main/java/org/semanticweb/owlapi/rio/OWLAPIRioTrixParser.java +++ b/rio/src/main/java/org/semanticweb/owlapi/rio/OWLAPIRioTrixParser.java @@ -42,11 +42,11 @@ import org.eclipse.rdf4j.model.Statement; import org.eclipse.rdf4j.model.Value; import org.eclipse.rdf4j.model.ValueFactory; -import org.eclipse.rdf4j.model.impl.ValueFactoryImpl; +import org.eclipse.rdf4j.model.impl.SimpleValueFactory; import org.eclipse.rdf4j.rio.RDFFormat; import org.eclipse.rdf4j.rio.RDFHandlerException; import org.eclipse.rdf4j.rio.RDFParseException; -import org.eclipse.rdf4j.rio.helpers.RDFParserBase; +import org.eclipse.rdf4j.rio.helpers.AbstractRDFParser; import org.eclipse.rdf4j.rio.helpers.TriXParserSettings; import org.semanticweb.owlapi.rio.utils.OWLAPISimpleSAXParser; import org.xml.sax.SAXException; @@ -59,14 +59,14 @@ * @author Arjohn Kampman Modified to install error handler by Simon Spero, because error handler. */ -class OWLAPIRioTrixParser extends RDFParserBase { +class OWLAPIRioTrixParser extends AbstractRDFParser { /*--------------* * Constructors * *--------------*/ /** - * Creates a new TriXParser that will use a {@link ValueFactoryImpl} to create objects for + * Creates a new TriXParser that will use a {@link SimpleValueFactory} to create objects for * resources, bNodes, literals and statements. */ public OWLAPIRioTrixParser() { @@ -180,7 +180,7 @@ public void startTag(String tagName, Map atts, String text) if (datatype == null) { reportError(DATATYPE_ATT + " attribute missing for typed literal", - TriXParserSettings.FAIL_ON_TRIX_MISSING_DATATYPE); + TriXParserSettings.FAIL_ON_MISSING_DATATYPE); valueList.add(createLiteral(text, null, null)); } else { IRI dtURI = createURI(datatype); @@ -193,11 +193,11 @@ public void startTag(String tagName, Map atts, String text) // context information if (valueList.size() > 1) { reportError("At most 1 resource can be specified for the context", - TriXParserSettings.FAIL_ON_TRIX_INVALID_STATEMENT); + TriXParserSettings.FAIL_ON_INVALID_STATEMENT); } else if (valueList.size() == 1) { if (!(valueList.get(0) instanceof Resource)) { reportError("Context identifier should be a URI or blank node", - TriXParserSettings.FAIL_ON_TRIX_INVALID_STATEMENT); + TriXParserSettings.FAIL_ON_INVALID_STATEMENT); } else { currentContext = (Resource) valueList.get(0); } @@ -234,17 +234,17 @@ private void reportStatement() throws RDFParseException, RDFHandlerException { try { if (valueList.size() != 3) { reportError("exactly 3 values are required for a triple", - TriXParserSettings.FAIL_ON_TRIX_INVALID_STATEMENT); + TriXParserSettings.FAIL_ON_INVALID_STATEMENT); return; } if (!(valueList.get(0) instanceof Resource)) { reportError("First value for a triple should be a URI or blank node", - TriXParserSettings.FAIL_ON_TRIX_INVALID_STATEMENT); + TriXParserSettings.FAIL_ON_INVALID_STATEMENT); return; } if (!(valueList.get(1) instanceof IRI)) { reportError("Second value for a triple should be a URI", - TriXParserSettings.FAIL_ON_TRIX_INVALID_STATEMENT); + TriXParserSettings.FAIL_ON_INVALID_STATEMENT); return; } diff --git a/rio/src/main/java/org/semanticweb/owlapi/rio/RioOWLRDFParser.java b/rio/src/main/java/org/semanticweb/owlapi/rio/RioOWLRDFParser.java index 01f90bd6d0..3ee4a1573d 100644 --- a/rio/src/main/java/org/semanticweb/owlapi/rio/RioOWLRDFParser.java +++ b/rio/src/main/java/org/semanticweb/owlapi/rio/RioOWLRDFParser.java @@ -48,7 +48,7 @@ import org.eclipse.rdf4j.model.ValueFactory; import org.eclipse.rdf4j.rio.RDFHandler; -import org.eclipse.rdf4j.rio.helpers.RDFParserBase; +import org.eclipse.rdf4j.rio.helpers.AbstractRDFParser; import org.semanticweb.owlapi.io.OWLOntologyDocumentSource; import org.semanticweb.owlapi.io.ReaderDocumentSource; import org.semanticweb.owlapi.io.StreamDocumentSource; @@ -65,7 +65,7 @@ * @author Peter Ansell p_ansell@yahoo.com * @since 4.0.0 */ -public class RioOWLRDFParser extends RDFParserBase { +public class RioOWLRDFParser extends AbstractRDFParser { private final OWLAPIRDFFormat owlFormat; private final Set ontologyManagerFactories = new HashSet<>(); diff --git a/rio/src/main/java/org/semanticweb/owlapi/rio/RioParserImpl.java b/rio/src/main/java/org/semanticweb/owlapi/rio/RioParserImpl.java index fed8c7b0dc..2284533982 100644 --- a/rio/src/main/java/org/semanticweb/owlapi/rio/RioParserImpl.java +++ b/rio/src/main/java/org/semanticweb/owlapi/rio/RioParserImpl.java @@ -57,7 +57,7 @@ import org.eclipse.rdf4j.model.Resource; import org.eclipse.rdf4j.model.Statement; import org.eclipse.rdf4j.model.ValueFactory; -import org.eclipse.rdf4j.model.impl.ValueFactoryImpl; +import org.eclipse.rdf4j.model.impl.SimpleValueFactory; import org.eclipse.rdf4j.model.vocabulary.RDF; import org.eclipse.rdf4j.rio.RDFHandler; import org.eclipse.rdf4j.rio.RDFHandlerException; @@ -278,7 +278,7 @@ private static class RioParserRDFHandler implements RDFHandler { private final RDFHandler consumer; private long owlParseStart; private final Set typedLists = new HashSet<>(); - private final ValueFactory vf = ValueFactoryImpl.getInstance(); + private final ValueFactory vf = SimpleValueFactory.getInstance(); RioParserRDFHandler(RDFHandler consumer) { this.consumer = consumer; diff --git a/rio/src/main/java/org/semanticweb/owlapi/rio/RioRenderer.java b/rio/src/main/java/org/semanticweb/owlapi/rio/RioRenderer.java index 259797a665..9fdfae8a5a 100644 --- a/rio/src/main/java/org/semanticweb/owlapi/rio/RioRenderer.java +++ b/rio/src/main/java/org/semanticweb/owlapi/rio/RioRenderer.java @@ -36,17 +36,10 @@ package org.semanticweb.owlapi.rio; import java.io.IOException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashSet; -import java.util.Iterator; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Set; +import java.util.*; import javax.annotation.Nonnull; -import org.eclipse.rdf4j.OpenRDFUtil; import org.eclipse.rdf4j.model.Resource; import org.eclipse.rdf4j.rio.RDFHandler; import org.eclipse.rdf4j.rio.RDFHandlerException; @@ -92,7 +85,7 @@ public class RioRenderer extends RDFRendererBase { public RioRenderer(@Nonnull final OWLOntology ontology, final RDFHandler writer, final OWLDocumentFormat format, final Resource... contexts) { super(ontology, format); - OpenRDFUtil.verifyContextNotNull(contexts); + Objects.requireNonNull(contexts); this.contexts = contexts; this.writer = writer; pm = new DefaultPrefixManager(); diff --git a/rio/src/main/java/org/semanticweb/owlapi/rio/RioStorer.java b/rio/src/main/java/org/semanticweb/owlapi/rio/RioStorer.java index 08e55224d1..5c6f302d37 100644 --- a/rio/src/main/java/org/semanticweb/owlapi/rio/RioStorer.java +++ b/rio/src/main/java/org/semanticweb/owlapi/rio/RioStorer.java @@ -44,11 +44,11 @@ import java.net.URISyntaxException; import java.util.Arrays; import java.util.Collection; +import java.util.Objects; import javax.annotation.Nonnull; import javax.annotation.Nullable; -import org.eclipse.rdf4j.OpenRDFUtil; import org.eclipse.rdf4j.model.Resource; import org.eclipse.rdf4j.model.impl.SimpleValueFactory; import org.eclipse.rdf4j.rio.RDFFormat; @@ -104,7 +104,7 @@ public RioStorer(OWLDocumentFormatFactory ontologyFormat, RDFHandler rioHandler, * @param contexts contexts */ public RioStorer(OWLDocumentFormatFactory ontologyFormat, Resource... contexts) { - OpenRDFUtil.verifyContextNotNull(contexts); + Objects.requireNonNull(contexts); ontFormat = ontologyFormat; this.contexts = contexts; } diff --git a/rio/src/main/java/org/semanticweb/owlapi/rio/utils/RioUtils.java b/rio/src/main/java/org/semanticweb/owlapi/rio/utils/RioUtils.java index 2065c50231..900495ac51 100644 --- a/rio/src/main/java/org/semanticweb/owlapi/rio/utils/RioUtils.java +++ b/rio/src/main/java/org/semanticweb/owlapi/rio/utils/RioUtils.java @@ -38,15 +38,15 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Collections; +import java.util.Objects; import javax.annotation.Nullable; -import org.eclipse.rdf4j.OpenRDFUtil; import org.eclipse.rdf4j.model.Resource; import org.eclipse.rdf4j.model.Statement; -import org.eclipse.rdf4j.model.URI; +import org.eclipse.rdf4j.model.IRI; import org.eclipse.rdf4j.model.Value; -import org.eclipse.rdf4j.model.impl.ValueFactoryImpl; +import org.eclipse.rdf4j.model.impl.SimpleValueFactory; import org.semanticweb.owlapi.io.RDFLiteral; import org.semanticweb.owlapi.io.RDFResourceIRI; import org.semanticweb.owlapi.io.RDFTriple; @@ -91,12 +91,12 @@ public static Statement tripleAsStatement(final RDFTriple triple) { */ public static Collection tripleAsStatements(final RDFTriple triple, final Resource... contexts) { - OpenRDFUtil.verifyContextNotNull(contexts); - final ValueFactoryImpl vf = ValueFactoryImpl.getInstance(); + Objects.requireNonNull(contexts); + final SimpleValueFactory vf = SimpleValueFactory.getInstance(); Resource subject; if (triple.getSubject() instanceof RDFResourceIRI) { try { - subject = vf.createURI(triple.getSubject().getIRI().toString()); + subject = vf.createIRI(triple.getSubject().getIRI().toString()); } catch (IllegalArgumentException iae) { LOGGER.error("Subject URI was invalid: {}", triple); return Collections.emptyList(); @@ -111,11 +111,11 @@ public static Collection tripleAsStatements(final RDFTriple triple, subject = vf.createBNode(triple.getSubject().getIRI().toString()); } } - URI predicate = vf.createURI(triple.getPredicate().getIRI().toString()); + IRI predicate = vf.createIRI(triple.getPredicate().getIRI().toString()); Value object; if (triple.getObject() instanceof RDFResourceIRI) { try { - object = vf.createURI(triple.getObject().getIRI().toString()); + object = vf.createIRI(triple.getObject().getIRI().toString()); } catch (IllegalArgumentException iae) { LOGGER.error("Object URI was invalid: {}", triple); return Collections.emptyList(); @@ -133,7 +133,7 @@ public static Collection tripleAsStatements(final RDFTriple triple, } } else { object = vf.createLiteral(literalObject.getLexicalValue(), - vf.createURI(literalObject.getDatatype().toString())); + vf.createIRI(literalObject.getDatatype().toString())); } } else { // FIXME: When blank nodes are no longer represented as IRIs