- From: Sandro Hawke <sandro@w3.org>
- Date: Tue, 17 Mar 2009 15:13:52 -0400
- To: Alan Ruttenberg <alanruttenberg@gmail.com>
- cc: W3C OWL Working Group <public-owl-wg@w3.org>
> Here is how I propose handling labels in Manchester Syntax. > > Assume we augment the syntax with: > > labels :: 'Labels:' labelAnnotationProperties [ '@' labelLangPattern ] > labelAnnotationProperties ::= { labelAnnotationPropertyIRI } > labelAnnotationPropertyIRI ::= annotationPropertyIRI > labelLangPattern ::= a valid value for the facet langPattern > > quotedlabel := 'a finite sequence of characters in which ' (U+27) and > \ (U+5C) occur only in pairs of the form \' (U+27, U+5C) and \\ (U+22, > U+22), enclosed in a pair of ' (U+27) characters' > > Then the frame productions are modified like this one: > > individual ::= individualIRI | nodeID | quotedLabel > > That there is a choice of labels is due to a request by Alan Rector. > The motivation for a choice of language should be clear. > > Potential associations between labels and IRIs (the association > LabelToIRI) are found in annotations of frames whose > annotationProperty are from the list of > labelAnnotationProperties and whose identifier is an IRI(i.e. not a > quotedLabel). Associations for each document are found in that > document as well as in any ontology it imports, based on the "Labels:" > statement the given document. Thus there is a distinct LabelToIRI > association used for parsing each document. > > Labels with highest precedence are associated with IRIs by being added > to LabelToIRI. The order of precedence is: > > Associations made within the ontology document have precedence over > associations made in the imports closure. > > Among associations selected by the above, associations of labels that > are targets of annotation properties earlier in the > labelAnnotationProperties list take precedence over later ones. > > Among associations selected by the above, If labelLangPattern is > present, associations of language tagged literals to IRIs take > precedence over association of plain literals. > > A new production, quotedLabel is introduced, a string surrounded by > single quotes. quotedLabel becomes an alternative to IRI and (in the > case of individuals) nodeID. > > In the transformation from Manchester to Functional Syntax, > quotedLabels are replaced by their mapped-to IRIs. In the case that > LabelToIRI doesn't have an association for a quotedLabel, or has 2 > different ones, the document is rejected as having a syntax error. I'm not sure I understand this. (It's hard for me to read stuff that goes straight into a spec, without examples or anything.) To see if I get it, let me paraphrase, removing some details and using more RDF-centric language. 1. Input documents may contain a "label" declaration, which selects some RDF property as the labeling property. 2. If such a property is declared, then all the RDF triples using that property (in all the imports and as gathering from the input document during processing) jointly form a LabelToIRI map. 3. During input processing, wherever an IRI could normally occur, a label can be used instead (indicated with some special syntax). A macro-style substitution occurs at that point, with the label being replaced by the associated IRI in the LabelToIRI map. If there is not exactly one such IRI, input processing fails. Is that the idea, more or less? I have three thoughts about this: 1. As a user, this label thing could be really nice. I don't know how else folks are supposed to work in plaintext with ontologies that chose their IRIs without thought to how they appear as qnames (or in a different natural language). Maybe one can make bridge ontologies which equate all the elements of the "real" ontology with usable names for them? 2. There is a very bad failure mode here, where my document imports two ontologies and they both change over the course of the time my document is in use. If one of them stops using some label, and the other starts using that label, then the meaning of my document will have changed, even though everyone behaved perfectly reasonably. No one would even detect something was amiss, unless they were keeping old copies and looking for this specific kind of change (which would be an odd and difficult thing to do). To be clear, it's true I can find myself in all sorts of other trouble if I do something as foolhardy as to import an ontology :-) , but I think asking ontology maintainers to be as careful about changing their labels as they are about changing their ontology axioms, well, ... that's something new. 3. I believe this could be done in a macro-pre-processor (processing Manchester Syntax documents but knowing almost nothing about the Manchester Syntax) or in a post-processor (operating on RDF graphs). (It has already been noted this can be done in UIs, like Protege.) This orthogonality is nice, but it means users can get this feature without us putting it in the Manchester Syntax. Taken together, my sense right now is that it's better to leave this out of the Manchester Syntax. - Sandro
Received on Tuesday, 17 March 2009 19:14:02 UTC