On Jan 16, 2018 10:07 AM, "Richard Light" <rich...@light.demon.co.uk> wrote:


I think the principle is valid, but rdfs:label is a property, not a class,
so I think that "rdfs:label" should be replaced by "rdf:literal" (or
possibly "rdf:plainLiteral"[1]) in the above text.  The point I assume that
Martin is making is that the value of a *P1_is_identified_by *property can
be finessed into a string if you have nothing more interesting to say about
that value.


Some brief  RDF / RDFS / OWL notes:

1:  The IRI rdf:Literal refers to the set of all possible concrete data
values (e.g.


   -

   the real number [1]
   -

   the floating point value [1]
   -

   the temperature [1°C]
   -

   the string (sequence of characters)   ['o','n','e'], or ['1']
   -

   a string with an associated natural language tag [<["one"] , ["en"]>] or
   [<["one"], ["de"]>]
   -

   the English word [*one*]


It is the top datatype in OWL, and can be used to restrict a property's
range in rdfs; however it is usually possible to specify a more precise
type.

2: RDF 1.1 removed the concept of Plain Literals (which were literals in an
RDF document that had no specified  datatype, and which may or may not have
a language tag).  The type rdf:PlainLiteral was introduced by the OWL
working group (at a time when there was no RDF working group), which was
mostly ignored when the RDF 1.1 working group was formed.

RDF 1.1 added a new datatype, rdf:langString, which (sort of) denotes the
set of all strings with an associated  language tag. A langString MUST have
a non-empty language tag. PlainLiteral can be approximated as the union of
xsd:string and rdf:langString.

The values of langString (and appropriate subset of PlainLiteral) are pairs
of strings; there is an extra level of interpretation required to turn them
into natural language utterances, but this can be as simple as displaying
the string to a user.  There need not be a valid interpretation (e.g. the
string may not correspond to an utterance in the indicated language).

If the range of a property is intended to be interpretable as natural
language utterances then langString (or a defined  OWL datatype restricting
PlainLiteral to have a non-empty language tag) is usually a good choice.

If a property has  string  values that do not correspond to a natural
language utterance, then using a range of xsd:string is appropriate.

If a property can have values which are strings that  may or may not have
language tags, then PlainLiteral may be appropriate; however this does not
distinguish between strings in an unknown or unspecified natural language,
and strings which are Just Strings.
In situations like this it may be useful to define objects to serve as
value holders. Doing so can also allow for more detailed restrictions in
OWL (e.g. requiring the preferred label for a Concept in a given KOS to be
unique for a given language).

3: rdfs:label is an annotation property, which means that it should be used
to add metadata describing things in an ontology document, rather than the
things the ontology is about. As a consequence of this, any rdfs:label
assertions are completely ignored by OWL direct semantics ; there are only
three axioms that can be used when defining annotation properties
(subproperty, domain, and range). Even these are invisible to a direct
semantics reasoner (though they can be used by editors and other tools).

4: Simple Literals...  orz

Reply via email to