liveontologies / elk-reasoner

A Java-based OWL 2 EL reasoner
Apache License 2.0
94 stars 26 forks source link

Protege console: plugin document could not be loaded due to a network error #58

Open rwynne opened 5 years ago

rwynne commented 5 years ago

When starting Protégé, the following message is written to the console. I assume this is how Protege checks if there are updates?

        Checking http://elk.semanticweb.org/maven/latest/elk-distribution/resources/p5.update.properties
            The plugin document could not be loaded due to a network error: ConnectException, Connection timed out: connect
            Processing http://elk.semanticweb.org/maven/latest/elk-distribution/resources/p5.update.properties as a plugin registry
                Cannot read plugin registry at http://elk.semanticweb.org/maven/latest/elk-distribution/resources/p5.update.properties.  Reason: Connection timed out: connect

I’m unable to ping semanticweb.org. Is it down, or should I try reinstalling if the maven location moved?

csnyulas commented 5 years ago

This is a problem for me, too, and I assume that all Protege users will encounter a very slow response when they will check for plugin updates because of this.

I don't know when the semanticweb.org site will be live again, and if the original entry in the Protege plugin registry for ELK will be available again or not, but wouldn't it make sense to update the Protege auto update registry (https://github.com/protegeproject/autoupdate/blob/master/update-info/5.0.0/plugins.repository) to point to

https://raw.githubusercontent.com/liveontologies/elk-reasoner/master/elk-distribution-parent/elk-distribution-protege/p5.update.properties

instead of

http://elk.semanticweb.org/maven/latest/elk-distribution/resources/p5.update.properties

?

If you like this solution, please make sure that the version number and Download link in the p5.update.properties file point to the latest release (not a snapshot). So, currently the download link could be set to point to something like

https://github.com/liveontologies/elk-reasoner/releases/download/v0.4.3/elk-distribution-0.4.3-protege-plugin.zip

or

http://repo1.maven.org/maven2/org/semanticweb/elk/elk-distribution/0.4.3/elk-distribution-0.4.3-protege-plugin.zip
ykazakov commented 5 years ago

I made an enquiry about semanticweb.org. Apparently, the server has been moved to another machine, and the dns entry for the subdomain elk.semanticweb.org was not correctly updated. The site semanticweb.org is not down by has some problems with ssl certificates. I don't know when this problem will be fixed (if at all).

The workaround with updating p5.update.properties in the Protege registry will help only to those who do not have ELK installed. Otherwise Protege looks at p5.update.properties of the installed plugin. In general, I think it would be useful to disable auto-updates in Protege on a plugin basis. This could also help in situations when the new versions of purlins have problems and should not be updated automatically.

csnyulas commented 5 years ago

Thank you for trying to fix this @ykazakov. I hope the website will be up and running again, soon.

Interesting idea about controlling the auto-update for individual plug-ins. It would be also cool if Protégé users could specify custom plug-in repository locations that they would like checked, in addition to the main P5 plugins.repository.

BTW, I think that when a "check for plugins" action is executed (either explicitly through File -> Check for plugins... menu or automatically every day you first open Protégé), Protégé will check the update.properties files listed in Protege 5.5 plugin repository, not the ones included in the plugins themselves (BTW, I don't think the ELK plugin .jar file includes an update.properties file). So, if I am not mistaken, we have control over what plug-ins are checked for updates, and at what location, even for installed plug-ins.

ykazakov commented 5 years ago

It would be also cool if Protégé users could specify custom plug-in repository locations that they would like checked, in addition to the main P5 plugins.repository.

Are there any other repositories available?

So, if I am not mistaken, we have control over what plug-ins are checked for updates, and at what location, even for installed plug-ins.

Protege plugins provide update-url in MANIFEST.MF which is used for checking for updates. So it is possible to check for updates even plugins not listed in the Protege plugin repository (b.t.w., see protegeproject/protege#743).

For example, ELK 0.4.3 contains the following entry:

Update-Url: http://elk.semanticweb.org/maven/latest/elk-distribution/resources/p5.update.properties

I would be surprised if these settings are overridden from the settings in the Protege plugin repository.

rwynne commented 5 years ago

@ykazakov For OWL API developers such as myself using 0.5.0 via Maven, is there an alternative/mirrored location to the dependency?

<dependency> 
       <groupId>org.semanticweb.elk</groupId> 
       <artifactId>elk-owlapi5</artifactId> 
       <version>0.5.0-SNAPSHOT</version> 
</dependency>

https://maven.apache.org/guides/mini/guide-mirror-settings.html

rwynne commented 5 years ago

This is documented on the wiki and I didn't see it until now. For dev snapshots, I needed to add the following to my pom:

   <repository>
      <id>sonatype-nexus-snapshots</id>
      <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
      <releases>
         <enabled>false</enabled>
      </releases>
      <snapshots>
         <enabled>true</enabled>
      </snapshots>
   </repository>
</repositories>
ykazakov commented 5 years ago

@rwynn please do not confuse protege plugins and maven dependencies

matthewhorridge commented 5 years ago

I've implemented a temporary workaround for those that do not have ELK installed. The registry now points to https://raw.githubusercontent.com/protegeproject/autoupdate/master/elk/0.4.3/update.properties. This points to the 0.4.3 github release.