[esip-semantictech] [EXTERNAL] Re: Importing SWEET into Protege

Mcgibbney, Lewis J (398M) lewis.j.mcgibbney at jpl.nasa.gov
Mon Jul 15 19:23:01 EDT 2019


CC'ing esip-semtech mailing list

I built Protégé from source at https://github.com/protegeproject/protege.git

Once I load data from URL, this leads to the following stack trace

org.semanticweb.owlapi.io.OWLOntologyCreationIOException: Server returned HTTP response code: 403 for URL: http://sweetontology.net/sweetAll
	at uk.ac.manchester.cs.owl.owlapi.OWLOntologyFactoryImpl.loadOWLOntology(OWLOntologyFactoryImpl.java:231) ~[na:na]
	at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.actualParse(OWLOntologyManagerImpl.java:1293) ~[na:na]
	at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntology(OWLOntologyManagerImpl.java:1233) ~[na:na]
	at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntologyFromOntologyDocument(OWLOntologyManagerImpl.java:1190) ~[na:na]
	at org.protege.editor.owl.model.io.OntologyLoader.loadOntologyInternal(OntologyLoader.java:116) ~[na:na]
	at org.protege.editor.owl.model.io.OntologyLoader.lambda$loadOntologyInOtherThread$0(OntologyLoader.java:68) ~[na:na]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:1.8.0_191]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_191]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_191]
	at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_191]
Caused by: java.io.IOException: Server returned HTTP response code: 403 for URL: http://sweetontology.net/sweetAll
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_191]
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_191]
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_191]
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_191]
	at sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1944) ~[na:1.8.0_191]
	at sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1939) ~[na:1.8.0_191]
	at java.security.AccessController.doPrivileged(Native Method) ~[na:1.8.0_191]
	at sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1938) ~[na:1.8.0_191]
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1508) ~[na:1.8.0_191]
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1492) ~[na:1.8.0_191]
	at org.semanticweb.owlapi.io.AbstractOWLParser.getInputStreamFromContentEncoding(AbstractOWLParser.java:176) ~[na:na]
	at org.semanticweb.owlapi.io.AbstractOWLParser.getInputStream(AbstractOWLParser.java:138) ~[na:na]
	at org.semanticweb.owlapi.io.AbstractOWLParser.getInputSource(AbstractOWLParser.java:273) ~[na:na]
	at org.semanticweb.owlapi.rdf.rdfxml.parser.RDFXMLParser.parse(RDFXMLParser.java:72) ~[na:na]
	at uk.ac.manchester.cs.owl.owlapi.OWLOntologyFactoryImpl.loadOWLOntology(OWLOntologyFactoryImpl.java:221) ~[na:na]
	... 9 common frames omitted
Caused by: java.io.IOException: Server returned HTTP response code: 403 for URL: http://sweetontology.net/sweetAll
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1894) ~[na:1.8.0_191]
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1492) ~[na:1.8.0_191]
	at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480) ~[na:1.8.0_191]
	at org.semanticweb.owlapi.io.AbstractOWLParser.getInputStream(AbstractOWLParser.java:112) ~[na:na]
	... 12 common frames omitted

Once I navigate to OntologyLoader.java I can see that the OWLOntologyLoaderConfiguration provides an .setFollowRedirects(boolean) method. Once I set this to true as follows

        OWLOntologyLoaderConfiguration configuration = new OWLOntologyLoaderConfiguration();
        configuration = configuration
                .setMissingImportHandlingStrategy(MissingImportHandlingStrategy.SILENT)
                .setFollowRedirects(true);
        IRIDocumentSource documentSource = new IRIDocumentSource(IRI.create(documentURI));
        ontology = loadingManager.loadOntologyFromOntologyDocument(documentSource, configuration);

... I still get the same error. I stepped through the source right down to the owlapi level but I am not yet able to see the source of the issue.

In short, I *think* that Protégé definitely has issues following redirects within input IRI's. I'm going to work this with the protégé users community in a bid to get to the bottom of this.
Lewis


On 7/15/19, 4:12 PM, "Carlos Rueda" <carueda at mbari.org> wrote:

    Ditto, thanks Simon for the tests!
    
    Carlos
    
    
    ----- Original Message -----
    > From: "brandon whitehead" <brandonnodnarb at gmail.com>
    > To: "Simon Cox" <Simon.Cox at csiro.au>, "Carlos Rueda" <carueda at mbari.org>
    > Sent: Monday, July 15, 2019 4:03:08 PM
    > Subject: Re: [esip-semantictech] Importing SWEET into Protege
    
    > Interesting.  Thanks for testing, Simon.
    > /Brandon
    > 
    > On 15/07/19 10:54 PM, Cox, Simon (L&W, Clayton) wrote:
    >> I have just loaded in TopBraid 6.2 from the URI
    >> http://sweetontology.net/sweetAll as a straight web-import.
    >> But I also can't load in Protégé.
    >> 
    >> -----Original Message-----
    >> From: esip-semanticweb <esip-semanticweb-bounces at lists.esipfed.org> On Behalf Of
    >> brandon whitehead via esip-semanticweb
    >> Sent: Monday, 15 July, 2019 14:44
    >> To: Carlos Rueda <carueda at mbari.org>; esip-semanticweb
    >> <esip-semanticweb at lists.esipfed.org>
    >> Subject: Re: [esip-semantictech] Importing SWEET into Protege
    >> 
    >> Hi Carlos,
    >> 
    >> Many thanks for the reply.  More below.
    >> 
    >> On 15/07/19 10:05 PM, Carlos Rueda wrote:
    >>>      [Fatal Error] :1:50: White spaces are required between publicID and
    >>>      systemID.
    >>>
    >>>      I've been digging around in my protege log file, but it doesn't
    >>>      actually show up there (the previous output is from the command line).
    >>>
    >>>      For further context, the page successfully redirects if I hit it in a
    >>>      browser.  If I try to load one of the ontology files, for example
    >>>      http://sweetontology.net/humanAgriculture, in a browser it pushes me to
    >>>      the COR page as expected.  I can curl the URL and get a valid response
    >>>      (full turtle file), but if I try the same thing via Protege (loading
    >>>      that specific ttl file via URL instead of a local copy) I get a 403
    >>>      error --- the same issue Lewis described.
    >>>
    >>>
    >>> Same here.  I just did a few tests using HTTPie with variations of the
    >>> basic http://sweetontology.net/sweetAll request, and all responded as
    >>> expected, except when trying the relevant ones in Protege (resulting
    >>> in 403), eg:
    >>>
    >>> http://sweetontology.net/sweetAll  --Protege should prefer an RDF
    >>> representation via content negotiation)
    >>>
    >>> http://sweetontology.net/sweetAll.rdf  -- explicit preference for RDF
    >>> via filename extension
    >>>
    >>> My HTTPie based tests suggest that the 403 error is not being
    >>> generated from the sweetontology.net proxy-pass nor from the COR
    >>> service.  So perhaps worth re-trying all of this with a newer Protege
    >>> version(?).
    >> 
    >> Interesting.  Protege 5.5 is the newest stable version.  I've not tried buidling
    >> from source via git and testing.  However, the response/error is the same in
    >> TopBraid Composer (5.3) as was described in Protege so it's a bigger issue.
    >> Perhaps OWLAPI?
    >> 
    >> Cheers,
    >> /Brandon
    
    



More information about the esip-semanticweb mailing list