Re: Blank Nodes Re: Toward easier RDF: a proposal

Hi, yes, using a blank node is not like a record in a DB without a
primary key. Say you have a Turtle document:

:ID123 :name "John" ; :location [ :country :USA ] .

Which might as well be a table row:

| PersonID | Country |
| 123      | USA     |

The intention most probably was to express "John is at *a* location in
USA" (which someone might want to refer to or expand on later), not
"There exists one or more locations in USA where John is located", the
latter being what the the Turtle document is actually expressing.
I think blank nodes are misused in overwhelming majority of cases.

One thing to make RDF easier would be to make URI creation easier (by
tooling?) and blank node usage harder.

I'm starting to believe an idea of separating the existential quantifier
(blank node) logic from RDF itself to a separate semantic extension on
top of RDF should be explored. As evidenced by this discussion it is
difficult to understand and talk about. If separate, it could be
expanded by negation to have the full power of FOL as Pat suggested. If
such separation was possible and made the basic operations (merges,
canonicalization) on RDF data sets easier to reason about and implement,
it would be of quite beneficial.

Going on a bit of a tangent, having a vocabulary and semantics for
forwards compatible introduction of new semantic extensions could be
nice too (imagine in worst case of compatibility a tool alert "The
loaded document uses OWL-23-XYZ features which are not supported. Do you
still wish to proceed?").


On 11/25/18 5:35 PM, Hugh Glaser wrote:
> I have feeling that it is *not* like DB tables without primary keys - and that that is part of the point that Pat is making.
> And that is why it feels weird.
>> On 25 Nov 2018, at 16:26, Thomas Passin <> wrote:
>> On 11/25/2018 9:38 AM, Hugh Glaser wrote:
>>> I only meant weird in the sense that someone wants to assert existence, and gets very specific about what that thing is.
>>> But still doesn't apparently want it to be identifiable by someone naming it later.
>>> It is not weird RDF, it is weird to want it :-)
>> Well, again, it's much like having a database tables without primary keys.  There are a lot of them out there.  Good data modelers turn up their noses, but they have their place.  I think they (i.e., blank nodes) are especially useful in preliminary data modeling, when you don't really know what the right model is anyway.  Being able to work with unlabeled nodes can help move the work along briskly.  There are some examples in my paper from Extreme Markup at
>> (some people seem to have think that the point of the paper is the little DSL I created, but it's really about how RDF made the preliminary modeling much easier).
>>> Yeah, on your last paragraph - and Pat and others have views, eg
>> Right.
>>>> On 25 Nov 2018, at 14:30, Thomas Passin <> wrote:
>>>> On 11/25/2018 8:28 AM, Hugh Glaser wrote:
>>>>> :foo
>>>>>   :address [
>>>>>       :number  123;
>>>>>       :street  “Acacia Avenue” ]
>>>>> I understand that this is saying that :foo has something that is related to it by the :address property.
>>>>> But it is a bit weird that it then goes on to be very specific about that something.
>>>> The whole thing could also be expressed as
>>>> :foo :address _:x1.
>>>> _:x1 :number 123.
>>>> _:x1 :street "Acacia Avenue".
>>>> This aligns closely with what you said:
>>>>> I see it is also saying there exists something that has two properties:
>>>>>   :number  123;
>>>>>           :street  “Acacia Avenue”
>>>> I don't see the weirdness there...  You could in the future add something like this for clarification if you happen to learn that there is a type ex:streetAddress (or an inference system could possibly add it) -
>>>> _:x1 rdf:type ex:streetAddress.
>>>> To me, none of this seems weird.  There wouldn't be much point to adding an identifier to the address unless someone might want to refer to it later.  OTOH, since you don't know how someone else might want to use it later, it seems like it would be good for there to be an unambiguous way to create an identifier to support such other uses.  To me, I tend to think it would be useful to know that these identifiers had been made up for formal purposes, so maybe there could be an reserved protocol scheme for them.  Maybe like "rdf-blank:asdn-2354-8756".
>>>>> Because of the way this is then interpreted (I think) for the two bnodes to have the same bnode identifier,
>>>>> it is saying that there exists something that has all those properties.

Received on Sunday, 25 November 2018 17:33:16 UTC