Hi all, … I am coming around to the idea that others have suggested that the @Context mechanism deserves more attention as a possible way forward on modules and namespaces. Agreed. This is less flexible than the XML namespace prefixing system, since it doesn't allow you to remap the namespace to a different prefix. However, it would let us lock down the use of particular JSON term names in a standardized way. I believe compact IRIs
https://json-ld.org/spec/latest/json-ld/#compact-iris provide a mapping for IRIs to prefixes, by using @context to hold prefix-IRI bindings. For example, given the context { @context : { gl : urn:oasis:names:tc:xliff:glossary:2.0:glossary } } a prefixed name “gl:glossary” in the corpus means urn:oasis:names:tc:xliff:glossary:2.0:glossary:glossary” as per JSON-LD semantics. In other words, JSON-LD normalizes “gl:glossary” into an expanded form with the URI and without the “gl” prefix. This means that we do not need to lock down a specific prefix as any prefix defined in the @context will do. This looks a pretty simple approach if we want to go that route. JSON-LD seems to follow document-oriented concepts found in XML, which is good because it supports XLIFF-JLIFF compatibility with respect to modules and extensions. Thinking XML prefixes simply translate to JSON-LD @context entries and back. So we’re coming back to the discussion of colons in names, which JSON-LD supports. We can’t escape that if we use parts of JSON-LD, because of the inherent JSON-LD semantics and uses of colons. It would feel nicer to be able to use gl:term , but as has been pointed out, this makes the JSON a problem to manipulate in _javascript_, which surely must be an important use case. This should not be a problem in _javascript_ or in any other PL or JSON API, because we simply use properties by string instead of by name in _javascript_ such as object[ urn:oasis:names:tc:xliff:glossary:2.0:glossary:glossary”], after “gl:glossary” is normalized to urn:oasis:names:tc:xliff:glossary:2.0:glossary:glossary” in the JSON corpus. Some pre-processing is needed for the normalization by a library (off the shelf?), but this is not too steep a price to pay to use JSON-LD contexts IMO. Dr. Robert van Engelen, CEO/CTO Genivia Inc. voice: (850) 270 6179 ext 104 fax: (850) 270 6179 mobile: (850) 264 2676
engelen@genivia.com On Oct 7, 2017, at 3:05 PM, Chase Tingley <
chase@spartansoftwareinc.com > wrote: Hi all, Picking this thread up after a long while. I've also been looking at JSON-LD more closely. I am coming around to the idea that others have suggested that the @Context mechanism deserves more attention as a possible way forward on modules and namespaces. One key observation about @Context is that it's not really a method for handling namespace prefixes. Instead, it maps terms to IRIs. But since most modules are relatively limited in the number of elements they use, @Context could simply predefine them. For example, the glossary module could be predefined like this: { @context : { gl_glossary : urn:oasis:names:tc:xliff:glossary:2.0:glossary:glossary , gl_glossEntry : urn:oasis:names:tc:xliff:glossary:2.0:glossary:glossEntry , gl_term : urn:oasis:names:tc:xliff:glossary:2.0:glossary:term , gl_translation : urn:oasis:names:tc:xliff:glossary:2.0:glossary:translation , gl_definition : urn:oasis:names:tc:xliff:glossary:2.0:glossary:definition } } This would map the official URIs for the XLIFF 2.x concepts to JSON terms using a standard prefix (in my example, gl_ ). This example only covers glossary, but it would be easy to build a context block for all of the core elements (for completeness) as well as the elements in the standard modules. This would be a meaty block of JSON-LD, but it can be included by @context reference at top of the JLIFF document from a standard location, or even included via Link HTTP header . The @context declaration could also serve as a de facto type statement for the document, if the existing jliff element was now felt to be rendant. For example, assuming a hypotehtical jsonld document produced by this TC: { @context :
http://docs.oasis-open.org/xliff-omos/jliff/v2.1/jliff-v2.1.jsonld , srcLang : en , tgtLang : fr , .... } Since multiple contexts can be declared in a document , 3rd party modules could be supported via additional @context declarations (although this may need more thought). This is less flexible than the XML namespace prefixing system, since it doesn't allow you to remap the namespace to a different prefix. However, it would let us lock down the use of particular JSON term names in a standardized way. This doesn't resolve the other question of a namespace prefix character. I've used '_' above, which I've said on calls I don't like. It would feel nicer to be able to use gl:term , but as has been pointed out, this makes the JSON a problem to manipulate in _javascript_, which surely must be an important use case. ct On Tue, Jun 27, 2017 at 12:27 PM, Phil Ritchie <
phil.ritchie@vistatec.com > wrote: All Sorry ignore me, it’s been a long day. We have the text-element so everything makes sense. Phil Phil Ritchie Chief Technology Officer Vistatec Vistatec House, 700 South Circular Road, Kilmainham, Dublin 8, Ireland. Tel: +353 1 416 8000 Direct: +353 1 416 8024 Email:
phil.ritchie@vistatec.com www.vistatec.com ISO 9001 ISO 13485 ISO 17100 Think Global From:
xliff-omos@lists.oasis-open. org [mailto: xliff-omos@lists. oasis-open.org ] On Behalf Of Phil Ritchie Sent: 27 June 2017 17:55 To: Robert van Engelen <
engelen@genivia.com >; Yves Savourel <
ysavourel@enlaso.com > Cc: XLIFF OMOS TC <
xliff-omos@lists.oasis-open. org > Subject: RE: [xliff-omos] Modules and extensions In 0.9.4 the text property of the element-xx objects has been removed. It made serialization nice and easy and simplified the model. Was it deemed unnecessary? Phil Ritchie Chief Technology Officer Vistatec Vistatec House, 700 South Circular Road, Kilmainham, Dublin 8, Ireland. Tel: +353 1 416 8000 Direct: +353 1 416 8024 Email:
phil.ritchie@vistatec.com www.vistatec.com ISO 9001 ISO 13485 ISO 17100 Think Global From:
xliff-omos@lists.oasis-open. org [ mailto:xliff-omos@lists. oasis-open.org ] On Behalf Of Robert van Engelen Sent: 20 June 2017 19:18 To: Yves Savourel <
ysavourel@enlaso.com > Cc: XLIFF OMOS TC <
xliff-omos@lists.oasis-open. org > Subject: Re: [xliff-omos] Modules and extensions Yves, Chase, Felix, David and other TC members, I have made the changes to the JLIFF draft schema 0.9.4 and the three examples, as we discussed in the meeting last week. Let me know if this looks OK. I am working on examples of extensions based on JSON-LD. Thanks. Dr. Robert van Engelen, CEO/CTO Genivia Inc. voice: (850) 270 6179 ext 104 fax: (850) 270 6179 mobile: (850) 264 2676
engelen@genivia.com On May 25, 2017, at 8:27 AM, Yves Savourel <
ysavourel@enlaso.com > wrote: Thanks for the reminder Felix. Like Phil, I’m just wondering about the cost of JSON-LD when various namespaces are mixed in the same object. Looking at examples such as those here:
https://json-ld.org/ spec/latest/json-ld-api-best- practices/#dfn-json-ld-context , the resolution of the namespaces seems relatively complicated and changes the object structure. But I’m probably missing a lot. Cheers, -yves Yves Savourel Localization Solutions Architect t: 303.951.4523 f: 303.516.1701 ENLASO ® From: Felix Sasaki [ mailto:
felix@sasakiatcf.com ] Sent: Thursday, May 25, 2017 12:55 AM To: Yves Savourel <
ysavourel@enlaso.com > Cc: XLIFF OMOS TC <
xliff-omos@lists.oasis-open. org > Subject: Re: [xliff-omos] Modules and extensions Hi Yves, all, previously in this thread people said they are worried about ad hoc created namespace resolution systems. I understand the worry about json-ld complexity, but at least it is a standard solution, with many libraries available. Just my two cent ... (I understand that it is likely that people won't go the json-ld path, this is just my last attempt to mention this approach) - Felix 2017-05-25 4:28 GMT+02:00 Yves Savourel <
ysavourel@enlaso.com >: Hi Robert, all, Ø I’m inclined to stick to _ to separate prefix from name, assuming _ are forbidden in prefixes and names by self-imposed JLIFF conventions. Underscore is at least widely supported in variable names. A ‘_’ would be fine with me. I was just under the impression ‘$’ was the preference for you (and maybe others). I just wanted to be sure it would work with _javascript_. Ø Other programming languages may not accept $ in hard-coded property/variable names… Quite right. But I wonder if it matters: Languages other than _javascript_ are likely to go through some kind of marshalling of the JSON data into their own data structures and have ways to address such issue. Actually _javascript_ is probably a special case: the more I work on JLIFF, the more I think it’d be quite hard for most languages to just rely on default automated mapping mechanism to get the proper input/output. But hopefully I’m wrong. Cheers, -yves From: Robert van Engelen [mailto:
engelen@genivia.com ] Sent: Tuesday, May 23, 2017 11:11 AM To: Yves Savourel <
ysavourel@enlaso.com > Cc: XLIFF OMOS TC <
xliff-omos@lists.oasis-open. org > Subject: Re: [xliff-omos] Modules and extensions I’m inclined to stick to _ to separate prefix from name, assuming _ are forbidden in prefixes and names by self-imposed JLIFF conventions. Underscore is at least widely supported in variable names. Other programming languages may not accept $ in hard-coded property/variable names (i.e. console.log(x.name.b) is hard-coded and so is console.log(x[“name.b”]) also hard-coded, but with a period in the property name that requires quotes). - Robert Dr. Robert van Engelen, CEO/CTO Genivia Inc. voice: (850) 270 6179 ext 104 fax: (850) 270 6179 mobile: (850) 264 2676
engelen@genivia.com On May 23, 2017, at 1:03 PM, Yves Savourel <
ysavourel@enlaso.com > wrote: Regarding separator, from quick tests: Dollar-sign would work, but not period, IMO: var x = { name$b : text }; console.log( x.name $b); à ok var x = { name.b : text }; console.log(x.name.b); à error More tests are probably needed. cheers, -yves