Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proposal for design goals and guidelines - part 1 #2446

Merged
merged 3 commits into from
Nov 23, 2016

Conversation

imagico
Copy link
Collaborator

@imagico imagico commented Nov 17, 2016

I have started with a draft of putting together some design principles for this style that hopefully help contributors in the future to better understand the direction of development.

This first part contains two of three sections i structured this into. These two are the description of the style purposes and a list of the main goals derived from these. I plan to supplement this with a section with more specific guidelines on style decisions with - from my side - subsections on colors and zoom levels - which can be supplemented by others on further subjects like for example icon design.

This structure is meant to show that the specific principles listed are not arbitrary but are meant to serve the described goals which are followed to make the style serve its purposes.

Mostly i tried to put together ideas that i hope we can mostly agree upon. But there are also a few things that might be more controversial. The most significant probably is that i put the goals into an order which - as i put it at the moment, is quite a bit different from the current priorities. In my eyes point 5 and 6 currently have a much higher priority while point 3 is often less important.

To give an example (just an example, not meant to reopen the discussion) the decision to close #1853 was based on the maintainability aspect although in my eyes the change was a significant improvement regarding at least goal 2 and 3.

I am open to changing this order based on arguments discussed here, alternatively we can also make this an unordered list but an order of the goals would of course make priorities clearer for potential contributors.

The ordering as i put it for the moment represents the priorities the different goals would have for me - but of course we should ultimately put them in the order that represents actual practice.


## Legibility
4. **Clarity** - This is strongly and directly related to legibility but more specifically means the map should be readable with as little effort as possible and be pleasant to look at both with high and low levels of interest and concentration.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see 4. as a subset of 1. - maybe it needs just some rewording to show how it is different (and worth different item)? "Pleasant to look" might be this difference, but the name of this item suggests something else.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, you can consider this part of legibility. My idea was that 1. just means the map can be read and understood by the user while 4. aims for this being easy and possible without much effort. This is much harder to achieve and usually does not play much of a role here.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Map which can't be understood wouldn't make much sense, I read "intuitively readable" from 1. exactly as "can be easily understood".

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Intuitively does not mean easily - it just means you don't need additional information to figure it out, it might still take a lot of effort.

In general i think we should do this based on suggestions. If you think something should be changed make a suggestion to change it. This way we'd make better progress than by arguing about the meaning of words.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, sure. My proposition for now is that 4. should be removed and "pleasant to look" moved to 1.

@matthijsmelissen
Copy link
Collaborator

Looking good!

I think you're interpreting legibility too narrow. For example, the old Luxembourg bus map is perfectly intuitively understandable, but very hard too read. In comparison, the new Luxembourg bus map is much easier to read.

Perhaps under Diversity, or as a separate point, you could also add that the map does not cater to one specific type of user (car drivers, cyclists etc.) but tries to be useful for all?

@imagico
Copy link
Collaborator Author

imagico commented Nov 17, 2016

I think you're interpreting legibility too narrow.

My idea was that the top goal that stands above all others is the basic legibility. Ease of use is more what i had in mind with the Clarity goal. But if preferred we can combine them and put them on top as general legibility including ease of use. Currently however my impression is that being easy to read often does not have priority over mapper feedback - we would do more geometry processing then for example.

Perhaps under Diversity, or as a separate point, you could also add that the map does not cater to one specific type of user (car drivers, cyclists etc.) but tries to be useful for all?

Maybe just add or to special thematic interests of users at the end of the diversity goal? Alternatively feel free to add it as you see fit, the idea in general is very good.

@matthijsmelissen
Copy link
Collaborator

To be honest I'm a bit skeptic about us being able to order the goals in terms of priority. Otherwise we'd end up having to block big progress in one area because it would mean a small regression in another area. I'd be more comfortable with an unranked list.

* It's an important feedback mechanism for mappers to validate their edits.
* It's a major part of the public face of OpenStreetMap, for many people the map on osm.org rendered with this style _is_ OpenStreetMap.
* It's used in many map applications as a general purpose map.
* It's an examplar stylesheet for rendering OSM data.
Copy link
Contributor

@nebulon42 nebulon42 Nov 17, 2016

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would add here that openstreetmap-carto plays an important part in tag usage behaviour of mappers and in tag hygiene.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think that is separate from the mapper feedback purpose but it could make sense to rephrase that point to make it clearer - any suggestions?

@nebulon42
Copy link
Contributor

Very good work and very good starting point. Yes, a ranking is maybe a bit hard to obey. But on the other hand things like feedback-loop/feature-richness and clarity/aesthetics always get us into trouble. A ranking would help to indicate a general direction. This could be also indicated at the end of a unordered list. A long term goal should be to reduce the central importance of openstreetmap-carto for OSM by having more different main styles. But this might require basic changes to the rendering infrastructure and is of course out of scope here.

@imagico
Copy link
Collaborator Author

imagico commented Nov 17, 2016

Keep in mind the purpose of this is not to set constraints for us to obey - we set the goals, we can also change them. The main purpose is to help contributors understand what the basis is of the design decisions we make. So if the goals have an order of priorities for us we should document that, even if practically this ordering is very weak.

Maybe we could just collect a set of opinions from the maintainers if and how the different goals have priorities for them - like 'all the same importance to me', '2 is most important but the rest is all the same to me', '1,4 and 7 are slightly more important than 2,3,5 and 6' or a fully sorted list. But before we do that we might better think about if we missed any important goals.

@kocio-pl
Copy link
Collaborator

A bit off topic, because we lack place to discuss general things (do we want to have one?): I've just found a journey planner which uses osm-carto with different colors, that's an example of 7. (adaptability).

@matthijsmelissen
Copy link
Collaborator

matthijsmelissen commented Nov 18, 2016

I think the performance of the rendering is also one of the design goals. Making style changes gets harder and harder the longer stylesheet parsing takes.

@matthijsmelissen
Copy link
Collaborator

matthijsmelissen commented Nov 19, 2016

I've just found a journey planner which uses osm-carto with different colors, that's an example of 7. (adaptability).

I think this journey planner (or at least the polish version e-podróżnik) is around longer than osm-carto, so it's more likely based on the style preceding osm-carto.

@kocio-pl
Copy link
Collaborator

Looking at some osm-carto specific problems (#688) their style has been updated at some point.

@imagico
Copy link
Collaborator Author

imagico commented Nov 19, 2016

Regarding performance - this in my eyes has three components:

  • the constraint that we can't put too much additional load on the OSMF servers with style changes. I don't think this should be part of the design goals since this is an absolute external contraint like the database schema and (to some extent) the software used. It might make sense to list these in a separate document of course to help new contributors understand what they can and cannot do on a technical level.
  • the internal performance needs regarding our work - this should be part of maintainability i think.
  • the goal to keep the style not too demanding on tile serving infrastructure so others can use it fairly easily - this is kind of related to the adaptability goal.

Technically the first and last points are mostly about style rendering performance while the second is more about code complexity and parsing performance. We could acknowledge these goals with the following additions:

  1. Maintainability - The implementation of this style should not be too hard to maintain. This refers to both the volume and complexity of the code and how fast the style can be parsed when rendering it, which is very important for efficient development work. So the amount of code should be kept small and complex and fragile interdependencies should be avoided. If the code is difficult to maintain this would ultimately seriously affect all of the above goals.
  2. Adaptability and ease of use - The style should be easy to customize, like for creating localized or special purpose maps. It is also important to keep demands on rendering infrastructure for serving the style low so it is not too difficult and costly to set up a tile server for this style or a specialized variant of it.

@matthijsmelissen
Copy link
Collaborator

Sounds good to me.

@pnorman
Copy link
Collaborator

pnorman commented Nov 20, 2016

Our meeting of the goals needs to balance them against each other. An unordered list might make this clearer.

@pnorman
Copy link
Collaborator

pnorman commented Nov 20, 2016

This might belong in a follow up discussion and PR, but these are thoughts I've been having on what we render. Features should be

  • useful to someone looking for something on a map remotely;
  • used to understand the general character of an area;
  • used for finding something when you're in the area;
  • used for orienting yourself when in an area; or
  • commonly rendered on many maps.

So a specialized shop not of general interest would not need its own icon, but somewhere to eat does.

@Ircama
Copy link
Contributor

Ircama commented Nov 20, 2016

IMHO, the order proposed by @imagico looks appropriate and there are principles of a certain depth.

I would also suggest, when possible, that the standard style should tend to give more priority to features with wide social and cultural relevance and to basic topographic features (meaning the ones that are of common usage and that can be usually found on generic maps to physically describe the territory) rather than business elements (like shops, malls or factories).

@imagico
Copy link
Collaborator Author

imagico commented Nov 20, 2016

I made a change with the following modifications:

  • since there has been no clear voice in support of an order of priorities for the goals from any other maintainer the goals are now in an unordered list.
  • since without an order of priorities it does not matter anyway i combined the clarity goal with legibility.
  • the last two goals are modified as indicated
  • i tried to integrate the suggestion from @nebulon42 into the mapper feedback purpose.

From my side this would be a reasonable first version but subsequent adjustments will of course likely be necessary. Also some proof reading regarding language and orthography would likely be good.

I still think it would be good to have an idea where the maintainers stand regarding the priorities of the different goals even if we don't want to define such an order for the project. But i don't want to push this. Please speak up if you think we should do this.

Regarding decisions on what to render and what not to render - i have a few considerations on this in my notes for more specific guidelines i will put in a supplement proposal. But in general this is fairly difficult, especially if it goes into subjective concepts like usefulness.

@Ircama - relevance is a problematic concept here - this is always highly subjective. I try to concentrate on things here that are at least to some extent objective so contributors can check their idea aginst these goals and guidelines without the inevitable frustration that would occur if you consider something highly relevant but find out that the maintainers do not.

There will of course always also be subjective decisions but we can at least try to document the basis for those which are not.

@imagico
Copy link
Collaborator Author

imagico commented Nov 22, 2016

I have a first version of the second part ready now - i can add it here but it might be better to merge this first and start a new PR.

@pnorman
Copy link
Collaborator

pnorman commented Nov 22, 2016

I have a first version of the second part ready now - i can add it here but it might be better to merge this first and start a new PR.

👍

If none of the other maintainers merge it, I'll have a last read through in the morning when I've had more sleep.

Copy link
Contributor

@nebulon42 nebulon42 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had some syntactical remarks (spaces), but Markdown won't render them anyway. Some remarks that can also be addressed after merging.


## Purposes
This is an attempt to outline the goals of this style and the principles under
which the maintainers make decisions. These rules are not set in stone, they
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Extra space between sentences.

This is an attempt to outline the goals of this style and the principles under
which the maintainers make decisions. These rules are not set in stone, they
can change and they may not be followed in all cases but contributors should
be able to expect they are generally the guiding principles design wise.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

expect that they are generally


Firstly, this is a map, not merely a colourful 2-dimensional visualisation of the database. Colours should be chosen based on their effectiveness and to make things look nice, not chosen for distinctiveness.
There is no ranking of these purposes. To allow serving all of them and to
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Extra space between sentences


Colour definitions should, where useful, be put into variables at the top of the file, to enable easier customisation.
The following goals need to be balanced against each other to serve the purposes
above. There is no fixed order of priorities. Apart from these goals there are
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Extra spaces between sentences.

* **Legibility and clarity** - The map should be intuitively readable by users with some general experience using maps without a map key, preferrably with relatively little effort. A map key or more extensive experience using this map style can be required for clearly identifying minor differences or the exact meaning of certain features but in broad strokes orientation and identification of map elements should be possible on an intuitive level. We also aim for the map appearance to be esthetically pleasing.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Extra spaces between sentences.

* **Legibility and clarity** - The map should be intuitively readable by users with some general experience using maps without a map key, preferrably with relatively little effort. A map key or more extensive experience using this map style can be required for clearly identifying minor differences or the exact meaning of certain features but in broad strokes orientation and identification of map elements should be possible on an intuitive level. We also aim for the map appearance to be esthetically pleasing.
* **Being understandable and supportive for the mappers** - To serve as feedback for mappers and encourage correct mapping this style needs to render the data in a way that allows mappers to understand how the data produces a certain rendering result based on basic observation without in depth understanding how map rendering works or looking at the style implementation.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would leave out the in the mappers. ... supportive for mappers

* **Legibility and clarity** - The map should be intuitively readable by users with some general experience using maps without a map key, preferrably with relatively little effort. A map key or more extensive experience using this map style can be required for clearly identifying minor differences or the exact meaning of certain features but in broad strokes orientation and identification of map elements should be possible on an intuitive level. We also aim for the map appearance to be esthetically pleasing.
* **Being understandable and supportive for the mappers** - To serve as feedback for mappers and encourage correct mapping this style needs to render the data in a way that allows mappers to understand how the data produces a certain rendering result based on basic observation without in depth understanding how map rendering works or looking at the style implementation.
* **Diversity** - The style should represent the diversity of the OSM community and geography in general. The most obvious element to serve this goal is showing the local names everywhere on earth in their respective scripts. This goal however goes beyond labels. Both physical and cultural geography differs a lot globally and the aim is to represent this variety with equal determination - well mapped areas are not supposed to have more weight here than less mapped parts of the world. This also means the target map user is the potential global map user and no special consideration is given to the current geographic distribution of actual map use.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Extra spaces.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe worth clarifying that diversity does not mean that we render the same things differently in different parts of the world e.g. street colours.

* **Being understandable and supportive for the mappers** - To serve as feedback for mappers and encourage correct mapping this style needs to render the data in a way that allows mappers to understand how the data produces a certain rendering result based on basic observation without in depth understanding how map rendering works or looking at the style implementation.
* **Diversity** - The style should represent the diversity of the OSM community and geography in general. The most obvious element to serve this goal is showing the local names everywhere on earth in their respective scripts. This goal however goes beyond labels. Both physical and cultural geography differs a lot globally and the aim is to represent this variety with equal determination - well mapped areas are not supposed to have more weight here than less mapped parts of the world. This also means the target map user is the potential global map user and no special consideration is given to the current geographic distribution of actual map use.
* **A rich map** - This style deliberately creating a fairly rich map showing a significant number of different features. This way it shows the richness of OSM data and gives a broad recognition to the mappers' work. The aim is not however to show all or even most of the OSM data.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Extra spaces.

* **Diversity** - The style should represent the diversity of the OSM community and geography in general. The most obvious element to serve this goal is showing the local names everywhere on earth in their respective scripts. This goal however goes beyond labels. Both physical and cultural geography differs a lot globally and the aim is to represent this variety with equal determination - well mapped areas are not supposed to have more weight here than less mapped parts of the world. This also means the target map user is the potential global map user and no special consideration is given to the current geographic distribution of actual map use.
* **A rich map** - This style deliberately creating a fairly rich map showing a significant number of different features. This way it shows the richness of OSM data and gives a broad recognition to the mappers' work. The aim is not however to show all or even most of the OSM data.
* **Maintainability** - The implementation of this style should not be too hard to maintain. This refers to both the volume and complexity of the code and how fast the style can be parsed when rendering it, which is very important for efficient development work. So the amount of code should be kept small and complex and fragile interdependencies should be avoided. If the code is difficult to maintain this would ultimately seriously affect all of the above goals.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A theme that comes up frequently is that it should not be too hard for new contributors to get started. Worth mentioning?

@imagico
Copy link
Collaborator Author

imagico commented Nov 23, 2016

Changed some formulations based on suggestions by @nebulon42. What i did not change is

  • sentence spacing - i am old fashioned, see https://en.wikipedia.org/wiki/Sentence_spacing.
  • on locally differentiated rendering - that would belong in the more specific guidelines to follow.
  • being easy for new contributors - While this is an important goal for the project in general i don't think this should be a cartographic goal. We should help newcomers in learning to contribute productively but this is not an education project that adjusts its design goals and standards to the knowledge base of potential contributors.

@nebulon42 nebulon42 merged commit cfb2ac2 into gravitystorm:master Nov 23, 2016
@imagico
Copy link
Collaborator Author

imagico commented Nov 23, 2016

Thanks - part 2 is in #2462.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants