W3C home > Mailing lists > Public > public-data-shapes-wg@w3.org > January 2015

Re: Terminology: How to call "IRI or blank node"?

From: Peter F. Patel-Schneider <pfpschneider@gmail.com>
Date: Fri, 02 Jan 2015 11:19:34 -0800
Message-ID: <54A6EF46.2090003@gmail.com>
To: Irene Polikoff <irene@topquadrant.com>, kcoyle@kcoyle.net, public-data-shapes-wg@w3.org
I have no evidence that the unfortunate choice of "resource" has caused 
problems.  Some of the documents about Jena and Sesame do confuse resources 
and IRIs. 
is an example.)  The on-line Jena documentation at 
even goes so far as to state that instances of the API class Resource are RDF 
resources, which is completely wrong.

In many situations it is possible to conflate the two without causing 
problems, but not in all cases.  There was a long-running effort to tease 
apart resources and their IRIs that was under consideration by the W3C TAG.


On 12/23/2014 08:46 AM, Irene Polikoff wrote:
> I agree.
> To add to this, even if we said this use in APIs represented a conflation, it would only prove that there is no harm from it. Developers have been using Jena and Sesame APIs. Both APIs use Resource to mean a union of IRIs and blank nodes. This caused no problems in building applications. I don’t think anyone ever expected to get a "real resource" by using the APIs, only the data structures.
> Further, this happened notwithstanding the precise writing in the specification. I believe because the developers implementing the specification needed a word to use for an important concept - something that can be a subject of a triple. People teaching and learning RDF also needed such a word. Specs didn't provide this term because it didn’t take into account the needs of the audience. Instead, it made points about resources being something different from the data which was a superfluous and strange thing to point out, so most people just blocked it out.
> To me, understanding and addressing well the key needs of the audience in a standard and in the description of the standard is much more important than anything else.
> Irene
> -----Original Message-----
> From: Karen Coyle [mailto:kcoyle@kcoyle.net]
> Sent: Tuesday, December 23, 2014 10:48 AM
> To: public-data-shapes-wg@w3.org
> Subject: Re: Terminology: How to call "IRI or blank node"?
> On 12/22/14 7:25 PM, Peter F. Patel-Schneider wrote:
>> Agreed.  I did not provide any examples concerning problems that such
>> misconceptions have caused.
>> How about the recent discussion concerning "resource" in resource
>> shapes as a proximate example?  How about the difference between
>> "resource" in RDF and "resource" in several RDF APIs?
> The difference we've been discussing, as I've understood it, is between rdfs:Resource and "resource". The former is formally defined and one should abide by that definition when using rdfs:Resource. The latter is a general term in English with a less precise meaning, and, AFAIK, anyone can give it a meaning in their own API. There is no reason to assume that it means the same as rdfs:Resource. Nor that the word "thing" means the same as owl:Thing. I admit that I use the terms "resource" and "thing" frequently without intending their RDF meanings; in particular, "resource" is commonly used in libraries and archives to mean "the created resource which we are describing."
> It might be a good idea to avoid using "resource" in an RDF-related context in a way that might be confused with rdfs:Resource. It depends, as Irene says, on whether users in that context with be confused. I could definitely imagine using "resource" in a user interface for metadata creation, or a user display. My users will be totally unaware of the existence of rdfs:Resource. "Resource shapes" works for me. I'm not comfortable with a re-defining of rdfs:Resource to mean "an IRI or a blank node" because it already has a precise definition that is different from that. I don't know what the use is in the APIs, but it's possible that the use of "resource" does not cause confusion.
> kc
>> peter
>> On 12/22/2014 07:18 PM, Irene Polikoff wrote:
>>> Peter,
>>> This is a an abstract theoretical statement not supported by any
>>> specific real practical examples.
>>> We have had many years of practice. By "we" I mean software
>>> professionals. In practice, multiple data models have been in use for
>>> a long periods of time - for example XML and relational databases to
>>> name the most popular ones. These models do not make a point to talk
>>> about the distinction between the data structures and things in the
>>> world the data represents. Their lack of attention to this
>>> distinction has not prevented them from being hugely successful and
>>> used in pretty much every piece of software today.
>>> Further, I am not aware of any software professional who have ever
>>> confused the data structures with the things they represent. Every
>>> one understands clearly and unambiguously that the information space
>>> is just that - information. A graph with data about Dick Chaney is
>>> just data, not the person. To my knowledge, no one have ever had a
>>> misconception about it. Based on the experience to date, the
>>> probability of anyone having such misconception in the future is
>>> extremely low.
>>> I am certain there are challenges in creating a useful standard
>>> specification, but this one seems to be the least of the issues.
>>> If you have examples of the real (not a casual colloquial speech)
>>> confusion between RDF nodes as data and resources in the world as
>>> things, I'd like to hear about them and learn about the problems they
>>> have caused.
>>> Irene
>>>> On Dec 22, 2014, at 8:31 PM, "Peter F. Patel-Schneider"
>>>> <pfpschneider@gmail.com> wrote:
>>>> The danger is that one talks about a node when one means to talk
>>>> about a resource, or vice versa.  This can be benign, if the
>>>> misconception either is not important or can be easily fixed, or
>>>> serious, if the misconception matters and is not easy to fix.
>>>> When one is writing specifications, the only safe assumption is that
>>>> misconceptions are matter and are not easy to fix, because one does
>>>> not know the contexts in which one's terminology will be used.
>>>> peter
>>>>> On 12/22/2014 04:59 PM, Irene Polikoff wrote:
>>>>> So, let's say there is a theory and meta theory and even several
>>>>> layers of it. There used to be a joke slogan in the OO community,
>>>>> btw, "Anything you can do, I can do meta". And let's say, these get
>>>>> conflated.
>>>>> Who and what will such conflation impact negatively? What systems
>>>>> and applications get broken? How will it change what people who are
>>>>> using the standards to build solutions are doing and how they are
>>>>> putting the technologies to work?
>>>>> In other words why is this important and what parts are important?
>>>>> Irene
>>>>> Sent from my iPhone
>>>>>> On Dec 22, 2014, at 12:28 PM, "Peter F. Patel-Schneider"
>>>>>> <pfpschneider@gmail.com> wrote:
>>>>>> Being the same is a concept that needs clarification here.
>>>>>> Yes, "2"^^xs:integer is a literal and ex:two is a URI.  These
>>>>>> cannot be the same in RDF because URIs, blank nodes, literals are
>>>>>> disjoint.  However, ex:two can be required to denote an integer,
>>>>>> which is a literal value.
>>>>>> Yes, there is no atomic name in the metatheory of RDF that stands
>>>>>> for those nodes in an RDF graph that can be the subject of a
>>>>>> triple in an RDF graph. But why does there have to be?  One can
>>>>>> always say "IRI or blank node".
>>>>>> One could create such an atomic name.  One might use "entity" for
>>>>>> this purpose.  However, one should *not* use rdf:Entity, as that
>>>>>> would conflate the RDF theory (where one has names like
>>>>>> rdf:Property, rdfs:Resource, and xs:Integer) and the RDF
>>>>>> metatheory (where one has names like resource, RDF graph, IRI, and
>>>>>> property).   Well, if rdf:Entity was not an IRI, then there might
>>>>>> not be a conflation, but there would be other problems.
>>>>>> peter
>>>>>>> On 12/22/2014 07:49 AM, Irene Polikoff wrote:
>>>>>>> At some point in the discussion we have agreed not to talk about
>>>>>>> resources when discussing RDF graphs and, instead, talk about nodes.
>>>>>>> I am talking about literal nodes.
>>>>>>> Given the following triples
>>>>>>> ex:house ex:number "2"^^xs:integer ex:two rdf:type xsd:Integer
>>>>>>> ex:house ex:number ex:two
>>>>>>> There will be two different nodes for the number 2. The first one
>>>>>>> is the literal node. The second one is an IRI node. They will
>>>>>>> never be the same and the graph represented by the first triple
>>>>>>> is not the same graph as the graph represented by the two last triples.
>>>>>>> The fact that ex:two may stand for the "real world" resource that
>>>>>>> philosophically is the same is irrelevant here as we are talking
>>>>>>> about data structures and their processing.
>>>>>>> The vocabulary term that is missing is the one that identifies
>>>>>>> RDF terms that can be subjects of a triple. In the context of
>>>>>>> this working group, this is an important concept that needs its
>>>>>>> own name. I propose rdf:Entity.
>>>>>>> Irene
>>>>>>> Sent from my iPhone
>>>>>>>> On Dec 22, 2014, at 10:10 AM, "Peter F. Patel-Schneider"
>>>>>>>> <pfpschneider@gmail.com> wrote:
>>>>>>>> There are a number of intertwined issues here.
>>>>>>>> Are literal values resources in RDF?  Yes, a literal value
>>>>>>>> (e.g., the number 2) is a resource.  This is just abiding by the
>>>>>>>> principles of resources in the Semantic Web.
>>>>>>>> Can literal values have property values in RDF?  Yes, a literal
>>>>>>>> value (e.g., the number 2) can have property values.
>>>>>>>> Can URIs denote literal values in RDF?  Yes, a URI (e.g.,
>>>>>>>> ex:two) can denote a literal value (e.g., the number 2).  This
>>>>>>>> is just abiding by the principles of IRIs in the Semantic Web.
>>>>>>>> Is it possible in RDFS to make a URI to denote a literal value
>>>>>>>> without causing a contradiction?  Yes, via something like
>>>>>>>> ex:two rdf:type xsd:Integer.
>>>>>>>> Is it possible in RDFS to state that some literal value has a
>>>>>>>> property value without causing a contradiction?  Yes, via
>>>>>>>> something like ex:two rdf:type xsd:Integer. ex:two ex:prime
>>>>>>>> xsd:true.
>>>>>>>> Is it possible in RDFS to directly state that a particular
>>>>>>>> literal value has a property value?  No, because literals cannot
>>>>>>>> be the subject of RDF triples.
>>>>>>>> Is it possible in RDF to get close to stating that a particular
>>>>>>>> literal value has a property value?  Yes, you can use
>>>>>>>> reification as in  _:a rdf:subject 2. _:a rdf:predicate
>>>>>>>> ex:prime. _:a rdf:object xsd:true.
>>>>>>>> peter
>>>>>>>>> On 12/22/2014 06:39 AM, Irene Polikoff wrote:
>>>>>>>>> RDF specification clearly says that there are 3 types of RDF
>>>>>>>>> nodes: IRI, blank node and literal. Each has its own
>>>>>>>>> unique/different characteristics including, for example, that
>>>>>>>>> literal can only be an object of a triple and blank node can't
>>>>>>>>> be a predicate of a triple.
>>>>>>>>> I believe the specification makes it clear that these  three
>>>>>>>>> node types are disjoint. Thus, ex:two can not be a literal node
>>>>>>>>> as it is an IRI. I also thought we were discussing here RDF
>>>>>>>>> nodes, not abstract concepts of literals.
>>>>>>>>> I remember hearing that there were some discussions in the RDF
>>>>>>>>> working group about letting literals be subjects, but this
>>>>>>>>> proposal was rejected, wasn't it?
>>>>>>>>> Irene
>>>>>>>>> Sent from my iPhone
>>>>>>>>>> On Dec 22, 2014, at 8:49 AM, "Peter F. Patel-Schneider"
>>>>>>>>>> <pfpschneider@gmail.com> wrote:
>>>>>>>>>>>> On 12/22/2014 01:45 AM, ☮ elf Pavlik ☮ wrote:
>>>>>>>>>>>> On 12/21/2014 01:38 AM, Peter F. Patel-Schneider wrote:
>>>>>>>>>>>> In RDF all resources can have property values, even literal
>>>>>>>>>>>> values.
>>>>>>>>>>>> peter
>>>>>>>>>>> Hi Peter :)
>>>>>>>>>>> Could you please explain it little more and if possible share
>>>>>>>>>>> links to relevant references?
>>>>>>>>>>> Thanks!
>>>>>>>>>> The original version of RDF, as described in the RDF Model and
>>>>>>>>>> Syntax Specification
>>>>>>>>>> http://www.w3.org/TR/1999/REC-rdf-syntax-19990222/, talks
>>>>>>>>>> about Resources and Literals, but does not indicate directly
>>>>>>>>>> whether they are disjoint.  However, there is already the idea
>>>>>>>>>> that anything is a resource and that anything can described by
>>>>>>>>>> a URI.  See Section 2
>>>>>>>>>> http://www.w3.org/TR/1999/REC-rdf-syntax-19990222/#basic and
>>>>>>>>>> Section 5
>>>>>>>>>> http://www.w3.org/TR/1999/REC-rdf-syntax-19990222/#model for
>>>>>>>>>> more information.
>>>>>>>>>> The original version of RDFS,
>>>>>>>>>> http://www.w3.org/TR/1998/WD-rdf-schema/, which never became a
>>>>>>>>>> full W3C recommendation, has the initial class hierarchy,
>>>>>>>>>> including rdfs:Resource, rdfs:Literal, rdfs:Class, and
>>>>>>>>>> rdf:Property in Figure 2.   In this figure, rdfs:Resource is
>>>>>>>>>> the universal class, with rdfs:Class, rdf:Property, and
>>>>>>>>>> rdfs:Literal all as subclasses.  Here is the first direct
>>>>>>>>>> requirement that literal values are resources.
>>>>>>>>>> The first formal treatment of RDF is in RDF Semantics
>>>>>>>>>> http://www.w3.org/TR/2004/REC-rdf-mt-20040210/.  Here
>>>>>>>>>> interpretations for RDF are first defined, in Section 1.3
>>>>>>>>>> http://www.w3.org/TR/2004/REC-rdf-mt-20040210/#interp, with
>>>>>>>>>> the domain of an interpretation being the set of resources and
>>>>>>>>>> a subset of the resources being literal values, as in the
>>>>>>>>>> original version of RDFS.  Properties are another subset of
>>>>>>>>>> the resources, which are linked to their extent, which is a
>>>>>>>>>> set of pairs over the resources.  There is no requirement here
>>>>>>>>>> that literals cannot be the first element of a property pair.
>>>>>>>>>> One might argue that the formal treatment is a misreading of
>>>>>>>>>> the informal 1999 description of RDF, but the ability for
>>>>>>>>>> literals to have property values has definitely been in RDF
>>>>>>>>>> since at least 2004.  This stance is also consistent with the
>>>>>>>>>> dictum that URIs can identify anything, which includes literal
>>>>>>>>>> values.
>>>>>>>>>> For example, one can say in RDF
>>>>>>>>>> ex:two rdf:type xsd:Integer .
>>>>>>>>>> ex:two ex:prime xsd:true .
>>>>>>>>>> Peter F. Patel-Schneider
>>>>>>>>>> Nuance Communications
> --
> Karen Coyle
> kcoyle@kcoyle.net http://kcoyle.net
> m: 1-510-435-8234
> skype: kcoylenet/+1-510-984-3600
Received on Friday, 2 January 2015 19:20:04 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 20:02:09 UTC