Proposal: .cv2 syntax [via CV 2.0 - Global Resume Community Group]

This post is a proposal on parts of the .cv2 syntax for the CV 2.0. Things will
still be missing and we need to discuss more in order to create a specification,
so feel free to join in on the discussion via the mailing list.
Syntax Signs
\\ 2 backslashes for section start
\\ Personal
...

\\ Professional
...

\\ Education
...

\\ Skills
...

\\ Personal
...

Additional information for a section can be added anywhere into the .cv2. The
parser will recognize everything from a beginning \\ to the next \\ as one
section. If two sections are the same, the properties will be recognized as
belonging to the same section. Newer (i.e. further down in the file) values will
replace older values if they address the same tag, much like cascading
stylesheets.

/* comments */
As usual in many programming languages, comments can be added in between a
slash, asterisk - asterisk, slash combination. Example:
/* comments optional - filename: john_doe_timestamp.cv2 */
 

\{} Special Characters and Escaping Characters
/* a name with umlaut as an example of how to escape characters */
fullname: John D\{"o}e

The above example syntax is borrowed from LaTeX, although Umlauts and other
symbols should be recognized since .cv2 will have UTF-8 encoding as requirement
in our specification, so there should only be the need to escape, for example,
company names with two backslashes in them or other names that interfere with
our .cv2 syntax which should happen rarely if at all. Anything that is input via
a form needs to be sanitized and escaped correctly. This is a main security
point in our specification.

"Values spanning

several lines"
As newline is our ending character, we need a sign to tell the parser that
a value spans several lines. Example:
j1.description: "this text spans several lines and is rendered similar
to the pre tag in HTML - preserving line breaks"
[] Enumerations and Value Ranges
Enumerations and value ranges are important for custom tags that are defined by
the user and have no defined meaning as well as value ranges for skills in order
to create visualizations and charts. Example:
\\ Skills
CSS AS css
Java AS java
Project Managemenet AS pm
 
scale1: [0-100]
scale2: [Beginner, Intermediate, Expert]
 
css.level: \{scale1:67}
css.category: markup languages
 
java.level: \{scale1:85}
java.category: programming languages
 
pm.level: \{scale2:Expert}
pm.category: organizational

Enumerations and value ranges are created using name: [x-y] for value ranges or
name: [a, b, c, d, …] for enumerations and must be created before their first
reference. They can be addressed via the usual escaping/referencing syntax:
\{name:value}
Tag Names
We will still have to define most tag names. Some tag names are suggested in
the Notes post, such as:
fullname, faoname, email, birthDate, birthLocation, citizenship, name,
dateStart, dateEnd, role, description, degree, level, category, …

faoname stands for "For Attention Of" as used in letters and is used to
designate the proper salutation. We cannot use first and last name since many
cultures around the world use a different concept and people need their full
name on their resume as well as some option to tell how they would prefer to be
addressed.
Multi-Tag Properties
Some properties have multiple tags, such as jobs and education. The choice is to
either group them in parentheses, making them harder to separate or concatenate
anywhere else in the document and also harder to read eventually. So the
approach is to treat them similarly to objects in a programming language,
addressing the property followed by a dot and the tag. Example:
j1.name: Some Company Name

Aliases
The Alias concept has been borrowed from SQL and can be used for any multi-tag
properties. Aliases must be created for user-defined properties such as skills
or custom tags. Example:
job1 AS j1

j1.name: Some Company Name
j1.dateStart: date in format dd.mm.yyyy

Cross-References
Cross-referencing is very important for the visualizations so additional links
can be clearly shown and visualized in various ways, for examples skills can be
linked to jobs or jobs to education, etc. Example:
j2.description: "created blah, e-mail me: \{email}"
j2.additionalInfo: some more blah, had a contract for \{j1} while doing this
The syntax for cross-references is \{tagname} including the cross-referenced tag
name in the curly brackets.
URLs and External Files
URLs and external files like pictures and logos can be added to a .cv2 using
\{externaltag} where "externaltag" for now only has the options of url:,
mailto:, and file:. Example:
j2.description: "created \{url:http://blabla.org} in this job,
email to \{mailto:myaddress@here.com} for questions"
FYI
According to the charter (section Decision Process), we need a group consensus
or at least a 2/3 majority vote on this proposal where agreement as well as
silence implies consensus.

If no objections arrive by October 11th 2015, this proposal is regarded as
accepted. A small reminder: if you agree, please reply to the public mailing
list - if all participants agree or disagree before the 11th of October, we can
already move forward with our work. Thank you!



----------

This post sent on CV 2.0 - Global Resume Community Group



'Proposal: .cv2 syntax'

https://www.w3.org/community/cv2/2015/09/30/proposal-cv2-syntax/



Learn more about the CV 2.0 - Global Resume Community Group: 

https://www.w3.org/community/cv2

Received on Wednesday, 30 September 2015 21:50:25 UTC