- From: Chris Mungall <cjmungall@lbl.gov>
- Date: Wed, 11 Mar 2015 10:56:25 -0700
- To: "Simon Spero" <sesuncedu@gmail.com>
- Cc: public-owl-dev@w3.org
If the goal is pretty-printing, then it needs to emit labels after ##s,
akin to obo format and the behavior of the owlapi rdf/xml writer. This
dictates behavior regarding newlines for closing parentheses.
E.g.
SubClassOf(
Annotation(
:IAO_0000232 ## curator note
"this is a text axiom"
)
:ZFA_0005587 ## nephron progenitor
ObjectSomeValuesFrom(
:BFO_0000050 ## part of
:ZFA_0000529 ## kidney
))
If only annotations were the final argument rather than the first.
Perhaps what we actually need is a new syntax designed from the ground
up with specific requirements in mind (e.g. layered on a sensible syntax
like yaml, no lingering traces of lisp, VCSable, readable, moderately
hackable in a text editor, incorporating @context ideas from JSON-LD).
On 11 Mar 2015, at 9:30, Simon Spero wrote:
> I've been doing a little work on improving parts of the OWLAPI
> rendering
> code in order to render things in order (this makes a huge difference
> for
> VCS).
>
> Now that this seems to be behaving, I'm feeling motivated to fix
> something
> that I've meant to poke at for a long time; the way that OWLAPI FSS
> renderers every axiom on a single line[1].
>
> Whenever I need to format an even moderately complicated line says, I
> end
> up copying it in to an emacs buffer, and inserting line breaks and
> indentation by hand.
>
> Sometimes this layout is formatting for a \verbatim or a slide.
> These
> cases are driven by space and aesthetic concerns, and are generally
> hand
> tweaked anyway.
>
> Generally I'm doing this to try and figure out what the difference is
> between two similar looking blobs of text (like a c-diff). This is a
> good
> fit with the needs of a VCS.
>
> There are a number of issues to consider when rendering. Some of this
> is a
> tension between minimizing the size of line diffs and minimizing the
> use of
> vertical space.
>
> For example:
>
> * Should there always be a line break after an axiom annotation? What
> about
> after an annotation annotation+
>
> * For axioms like EquivalentClasses, if all the class expressions will
> fit
> on a single line should they be rendered in a single line?
>
> * If any expressions are too long to fit the target width, should all
> expressions be followed by a line break?
>
> * If an axiom or expression is split over multiple lines, should
> closing
> parentheses be on their own line, like C/Java braces, or should they
> be
> grouped together, lisp-style?
>
> * the closing parenthesis for "Ontology(" traditionally appears on a
> line
> by itself. This seems to be a special case; are there other cases
> where
> this is idiomatic?
>
> The examples in the OWL 2 syntax specification are not uniform.
>
> Does anybody have strong preferences? Otherwise I am likely to err on
> the
> side of using more line breaks sake of simplicity.
>
> Simon
>
> [1] Except for literals that contain newlines.
Received on Wednesday, 11 March 2015 18:52:37 UTC