Re: "Language-tagged strings Re: Toward easier RDF: a proposal"

On Fri, Nov 23, 2018 at 02:03:07PM +0000, Andy Seaborne wrote:
> 
> 
> On 23/11/2018 12:03, Hugh Glaser wrote:
> > Ah, good topic.
> > 
> > So another thing I don't understand (:-)) is why we have to have language tags on strings at all, and indeed datatypes.
> 
> As someone who works with a product that is used by users in different
> geographies, I can say that language tags matter.
> 
> And I live near "cymru"@cy.
> 
> > (OK, it's because of XML heritage or something, I guess.)
> > But we have a perfectly good way of representing knowledge about things.
> > It is a real pain to create these 3 component literals and to query for different languages and datatypes in SPARQL.
> > And worse still, if you want to query for strings that may or may not have language tags on, you need to do some real messing about.
> 
> STR(?var) in SPARQL.
> 
> xsd:string("abc"@en) if you are lucky.
> 
> > I often end up adding @en to all the strings, or removing region tags etc., just so I can do things more easily, which is surely a Bad Thing.
> > 
> > Surely languages and datatypes should simply be RDF properties of Literals, which are 1 component things?
> > Much easier to explain to developers, and for them to use.
> > (If indeed they want to use raw RDF.)
> 
> As in:
> 
>   "chat" rdf:lang "en" .
> 
> ?
> 
> That would make all occurrences of "chat" @en.
> 
> They really are different literals.

My gut feeling is that this isn't an isolated pathological case, that in fact most uses of literal subjects are statements you wouldn't want to let out of your dirty^h^h^hpragmantic private store.

Theoretically, there's no reason to favor arcs-out modeling, so it's OK to say:
[[
  "43"^^xsd:integer :adultShoeSizeOf <http://...ericP> . # christmas presents welcome
]]

In practice, :hasFoo properties seem to dwarf :isFooOf properties, in RDF, JSON, XML, YAML. It's simpler and more predictable to have Foo's description encapsulate Foo's properties. If, following that, we only make a few, universally-recognized assertions with literals subjects, they may as well be entailments and we don't have much need of literals as subjects in syntaxes.


>     Andy
> 
> 
> > 
> > > On 23 Nov 2018, at 11:48, Andy Seaborne <andy@seaborne.org> wrote:
> > > 
> > > The RDF 1.1 WG did spend some time of this - both on putting the langtag into the lexical space and putting the lang tag into the datatype.  Both are not so easy; in the end the rdf@langString at least meant all literals had a datatype.
> > > 
> > > With the lexical form is a pair (string, lang) and squeezing that into a single string, it gets a bit unintuitive when strlen("hello@en") is 8, not 5. SeeAlso rdf:plainLiteral.
> > > 
> > > For datatypes, language tags have their own structure and hierarchy (lang-script-region-...) for their requirements which does not really fit with datatype subtyping very well.
> > > 
> > > I don't think changes would simplify.
> > > 
> > > We have what we have and people have been explaining to the wider community (i.e. it's not just people on this list affected). So "technically better" isn't the criterion, it should be "unlocks potential that is currently, provably blocked".
> > > 
> > >     Andy
> > > 
> > > On 23/11/2018 08:42, Wouter Beek wrote:
> > > > Dear David, others,
> > > > As another attempt at simplifying RDF, would it be possible to do away
> > > > with the special status of language-tagged strings?
> > > > In RDF 1.1 literals consist of 3 components: lexical form, datatype
> > > > IRI, and language tag.  The last component is only used in
> > > > language-tagged strings.  Would it be possible to define
> > > > `rdf:langString' as a regular datatype IRI and have literals consist
> > > > of 2 components instead?
> > > > RDF 1.1 Concepts and Abstract Syntax currently contains many caveats
> > > > to accommodate the idiosyncratic nature of language-tagged strings,
> > > > e.g.,:
> > > > > Language-tagged strings have the datatype IRI http://www.w3.org/1999/02/22-rdf-syntax-ns#langString. No datatype is formally defined for this IRI because the definition of datatypes does not accommodate language tags in the lexical space. The value space associated with this datatype IRI is the set of all pairs of strings and language tags.
> > > > Would it be possible to define a regular lexical space, e.g.,
> > > > containing "hello@en"^^rdf:langString, together with a value-2-lexical
> > > > and a lexical-2-value mapping?
> > > > The N3 and SPARQL notation "hello"@en will of course still be
> > > > available, and will be syntactic sugar for "hello@en"^^rdf:langString.
> > > > ---
> > > > Best regards,
> > > > Wouter Beek.
> > > > Email: w.g.j.beek@vu.nl
> > > > WWW: https://wouterbeek.org
> > > > Tel: +31647674624
> > > 
> > 
> 

-- 
-eric

office: +1.617.258.5741 32-G528, MIT, Cambridge, MA 02144 USA
mobile: +1.617.599.3509

(eric@w3.org)
Feel free to forward this message to any list for any purpose other than
email address distribution.

Received on Friday, 23 November 2018 14:49:23 UTC