{"id":142,"date":"2015-09-30T20:00:54","date_gmt":"2015-09-30T20:00:54","guid":{"rendered":"https:\/\/www.w3.org\/community\/cv2\/?p=142"},"modified":"2015-09-30T21:50:22","modified_gmt":"2015-09-30T21:50:22","slug":"proposal-cv2-syntax","status":"publish","type":"post","link":"https:\/\/www.w3.org\/community\/cv2\/2015\/09\/30\/proposal-cv2-syntax\/","title":{"rendered":"Proposal: .cv2 syntax"},"content":{"rendered":"<p>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.<\/p>\n<h2>Syntax Signs<\/h2>\n<p><mark>\\\\ 2 backslashes for section start<\/mark><\/p>\n<pre style=\"background: #fffef5;padding: 25px\">\\\\ Personal\r\n...\r\n\r\n\\\\ Professional\r\n...\r\n\r\n\\\\ Education\r\n...\r\n\r\n\\\\ Skills\r\n...\r\n\r\n\\\\ Personal\r\n...\r\n<\/pre>\n<p>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.<\/p>\n<p><mark>\/* comments *\/<\/mark><br \/>\nAs usual in many programming languages, comments can be added in between a slash, asterisk &#8211; asterisk, slash combination. Example:<\/p>\n<pre style=\"background: #fffef5;padding: 25px\">\/* comments optional - filename: john_doe_timestamp.cv2 *\/<\/pre>\n<p>&nbsp;<\/p>\n<p><mark>\\{} Special Characters and Escaping Characters<\/mark><\/p>\n<pre style=\"background: #fffef5;padding: 25px\">\/* a name with umlaut as an example of how to escape characters *\/\r\nfullname: John D\\{\"o}e\r\n<\/pre>\n<p>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.<\/p>\n<p><mark>&#8220;Values spanning<\/mark><\/p>\n<p><mark>several lines&#8221;<\/mark><br \/>\nAs newline is our ending character, we need a sign to tell the parser that a\u00a0value spans several lines. Example:<\/p>\n<pre style=\"background: #fffef5;padding: 25px\">j1.description: \"this text spans several lines and is rendered similar\r\nto the pre tag in HTML - preserving line breaks\"<\/pre>\n<p><mark>[] Enumerations and Value Ranges<\/mark><br \/>\nEnumerations 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:<\/p>\n<pre style=\"background: #fffef5;padding: 25px\">\\\\ Skills\r\nCSS AS css\r\nJava AS java\r\nProject Managemenet AS pm\r\n \r\nscale1: [0-100]\r\nscale2: [Beginner, Intermediate, Expert]\r\n \r\ncss.level: \\{scale1:67}\r\ncss.category: markup languages\r\n \r\njava.level: \\{scale1:85}\r\njava.category: programming languages\r\n \r\npm.level: \\{scale2:Expert}\r\npm.category: organizational\r\n<\/pre>\n<p>Enumerations and value ranges are created using <mark>name: [x-y]<\/mark> for value ranges or <mark>name: [a, b, c, d, \u2026]<\/mark>\u00a0for enumerations and must be created before their first reference. They can be addressed via the usual escaping\/referencing syntax: <mark>\\{name:value}<\/mark><\/p>\n<h2>Tag Names<\/h2>\n<p>We will still have to define most tag names. Some tag names are suggested in the\u00a0<a href=\"https:\/\/www.w3.org\/community\/cv2\/2015\/09\/18\/notes-cv2-syntax\/\">Notes<\/a>\u00a0post, such as:<br \/>\nfullname, faoname, email, birthDate, birthLocation, citizenship, name, dateStart, dateEnd, role, description, degree, level, category, \u2026<\/p>\n<p><strong>faoname<\/strong> stands for &#8220;For Attention Of&#8221; 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.<\/p>\n<h2>Multi-Tag Properties<\/h2>\n<p>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:<\/p>\n<pre style=\"background: #fffef5;padding: 25px\">j1.name: Some Company Name\r\n<\/pre>\n<h2>Aliases<\/h2>\n<p>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:<\/p>\n<pre style=\"background: #fffef5;padding: 25px\">job1 AS j1\r\n\r\nj1.name: Some Company Name\r\nj1.dateStart: date in format dd.mm.yyyy\r\n<\/pre>\n<h2>Cross-References<\/h2>\n<p>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:<\/p>\n<pre style=\"background: #fffef5;padding: 25px\">j2.description: \"created blah, e-mail me: \\{email}\"\r\nj2.additionalInfo: some more blah, had a contract for \\{j1} while doing this<\/pre>\n<p>The syntax for cross-references is <mark>\\{tagname}<\/mark> including the cross-referenced tag name in the curly brackets.<\/p>\n<h2>URLs and External Files<\/h2>\n<p>URLs and external files like pictures and logos can be added to a .cv2 using <mark>\\{externaltag}<\/mark> where &#8220;externaltag&#8221; for now only has the options of <mark>url:<\/mark>, <mark>mailto:<\/mark>, and <mark>file:<\/mark>. Example:<\/p>\n<pre style=\"background: #fffef5;padding: 25px\">j2.description: \"created \\{url:http:\/\/blabla.org} in this job,\r\nemail to \\{mailto:myaddress@here.com} for questions\"<\/pre>\n<h2>FYI<\/h2>\n<p>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.<\/p>\n<p>If no objections arrive by <strong>October 11<sup>th<\/sup> 2015<\/strong>, this proposal is regarded as accepted. A small reminder: if you agree, please reply to the public mailing list &#8211; if all participants agree or disagree\u00a0before the 11<sup>th<\/sup> of October, we can already move forward with our work. Thank you!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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 &hellip; <a href=\"https:\/\/www.w3.org\/community\/cv2\/2015\/09\/30\/proposal-cv2-syntax\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":8971,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_s2mail":"yes","footnotes":""},"categories":[5],"tags":[],"class_list":["post-142","post","type-post","status-publish","format-standard","hentry","category-discussion"],"_links":{"self":[{"href":"https:\/\/www.w3.org\/community\/cv2\/wp-json\/wp\/v2\/posts\/142","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.w3.org\/community\/cv2\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.w3.org\/community\/cv2\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.w3.org\/community\/cv2\/wp-json\/wp\/v2\/users\/8971"}],"replies":[{"embeddable":true,"href":"https:\/\/www.w3.org\/community\/cv2\/wp-json\/wp\/v2\/comments?post=142"}],"version-history":[{"count":2,"href":"https:\/\/www.w3.org\/community\/cv2\/wp-json\/wp\/v2\/posts\/142\/revisions"}],"predecessor-version":[{"id":144,"href":"https:\/\/www.w3.org\/community\/cv2\/wp-json\/wp\/v2\/posts\/142\/revisions\/144"}],"wp:attachment":[{"href":"https:\/\/www.w3.org\/community\/cv2\/wp-json\/wp\/v2\/media?parent=142"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.w3.org\/community\/cv2\/wp-json\/wp\/v2\/categories?post=142"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.w3.org\/community\/cv2\/wp-json\/wp\/v2\/tags?post=142"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}