The main shortcoming of owl:imports is well known: whole, potentially huge ontologies need to be imported even if one would like to reuse only one or two of its definitions. I understand that a certain number of papers and proposals have been written in the last years to address this problem. What I would like to know is, are there any solutions that have surfaced recently, or are we still stuck with copy-pasting? (Importing a 50 MB OWL file over the web is out of the question.) How does the "cream" of the SW community get over this?
I have heard of rdfex.org which is a nice idea but it does not seem to be working (and does not seem to be a very scalable solution either, but that is another issue).
Importing a 50 MB OWL file over the web is out of the question.
Here's my controversial opinion: large monolithic ontologies are a bad design, especially for the Web.
The core problem here is the presence of 50MB ontologies, not the inability to import parts of them. Much like software, ontologies should be kept modular. Of course there is a large body of work on a posteriori modularisation of ontologies, but I don't see why ontologies can't be made modular by design and not after the fact. In other words, if 50 people want to use parts of a 50MB ontology, why should they, between them, modularise the ontology 50 times?
So as a controversial answer to your question, the state of the art for this problem is to not create a 50MB ontology.
As the original developer of http://rdfex.org I agree it's a shame it's down right now :) - as a commercial company we simply had to decide on priorities and this fell through the cracks. The URL-based mechanism and functionality still works within TopBraid though.
I believe it would be a great open source project for someone to rebuild this in a clean way and host it somewhere - it may become a useful hub of the Semantic Web infrastructure. As part of a clean redesign it could support additional patterns to keep the URLs short, e.g. a mechanism to download a class plus all its properties.
A solution I rather like is to just not do imports.
Instead, if the ontology you want to reuse is available as linked data and/or through a SPARQL endpoint, you can just reference concepts that you wish to reuse (that's what URIs are intended for after all) directly, and either use simple HTTP GET requests (in the case of linked data) or a simple SPARQL (DESCRIBE) query to look up the concept definition.