daniel added a comment.

In https://phabricator.wikimedia.org/T93207#1133747, @mkroetzsch wrote:

> @daniel: Have you wondered why XML Schema decided against changing their 
> URIs? It is by far the most disruptive thing that you could possibly do.


Besides a breaking change in the interpretation, the meaning of a URI.

> Ontologies don't work like software libraries where you download a new 
> version and build your tool against it, changing identifiers as required. 
> Changing all URIs of an ontology (even if only on a major version increment) 
> will break third-party applications and established usage patterns in a 
> single step. There is no mechanism in place to do this smoothly.


If you make a breaking change to the data model, third-party applications will 
break anyway when they try to consume the data. Better give them a way to tell.

> You never want to do this. Even changing a single URI can be very costly, and 
> is probably not what you want if the breaking change affects only a 
> diminishing part of your users (How many BCE dates are there in XSD files? 
> How many of those were already assuming the ISO reading anyway?).


If the affected group is //very// small, maybe. As to the ISO reading: in ISO 
8601:1998, -1 is 1 BCE. in ISO 8601:2004, -1 is 2 BCE, see 
https://en.wikipedia.org/wiki/0_%28year%29#ISO_8601. And who is using the old 
interpretation anyway? Well, the Java standard libraries for example, at least 
according to the docs: 
https://docs.oracle.com/javase/1.5.0/docs/api/javax/xml/datatype/XMLGregorianCalendar.html
 says it's 1.0. That's also what BlazeGraph uses.

Sure, there will be a lot less negative dates out there than positive. But this 
change //broke all of them// without //any// way to know which interpretation 
is intended when you see an xsd:date in a document.

So, which spec should we use for generating our output, xsd 1.0 / ISO 8601:1998 
or xsd 1.1 / ISO 8601:2004?

> Having a version number in URLs does not solve the problem of versioning: it 
> just creates an obligation for you to change *all* URIs whenever you update 
> the ontology.


Well, you change the base URI, yea.

> If you really ever want to make a breaking change to one URI, then you just 
> create a new URI for this purpose and keep the old one defined as it was. 

>  Then you stop using the old one in the data. Clean, easy, and usually 
> without any disruption to 99% of the users (depending on which URI you 
> changed of course ;-).


That's exactly what having a version number in the URI does.

I would have preferred if XSD had just introduced a new data type, 
xsd:astroDate or something. That would have avoided the breaking change.

> This introduction of new names is completely independent of your ontology 
> document version.


Now I'm confused. To me the introduction of new names //is// the new ontology 
version.

> Besides all this, breaking changes are extremely rare. The example you gave 
> (changing the meaning of an XML Schema datatype) does not apply to us, since 
> we cannot do such things in our ontology.


We don't? We may very well define our own data type for dates, since even for 
the gregorian calendar model, xsd:date doesn't cover all our needs.

> In essence, our ontology is just a declaration of technical vocabulary. Most 
> changes you could make do not cause any incompatibility -- the Semantic Web 
> is built on an open-world assumption so that additions of information to the 
> ontology never are breaking anything. 

>  The only potentially breaking change to an ontology is when you delete some 
> information, but even there it is hard to see how it should break a specific 
> application.


Well, you can introduce a contradiction, that would "break" the ontology 
internally.

But worse, you can change the //interpretation// of the terms in the ontology, 
which will break //applications//, if produce and consumer of the data do not 
agree on the interpretation.

> Summing up, the only breaking change to an ontology is to change an important 
> URI that many people rely on. The current proposal is to introduce a 
> mechanism for doing exactly this.


There is two dicussions here:

1. change the ontology URI to reflect the fact that it is a wikibase ontology, 
not a wikidata ontology.
2. include a version number in the ontology uri.

This ticket is about (1). Your arguments seem to be concerned mostly with (2), 
perhaps we should have a separate ticket for that. Do I understand you 
correctly that you agree that we //should// change the base URI to refer to 
wikibase, and do it very soon?


TASK DETAIL
  https://phabricator.wikimedia.org/T93207

REPLY HANDLER ACTIONS
  Reply to comment or attach files, or !close, !claim, !unsubscribe or !assign 
<username>.

EMAIL PREFERENCES
  https://phabricator.wikimedia.org/settings/panel/emailpreferences/

To: daniel
Cc: adrianheine, Manybubbles, Smalyshev, mkroetzsch, Denny, Lydia_Pintscher, 
Aklapper, daniel, Wikidata-bugs, aude, Krenair, Dzahn



_______________________________________________
Wikidata-bugs mailing list
Wikidata-bugs@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikidata-bugs

Reply via email to