Re: Semantic Web archaeology

On 28/06/2019 12:12, Antoine Zimmermann wrote:
> Graham,
>
> (your message was sent off list, not sure it was intentional)

Not intentional :/  Going back on-list for this reply.

>
> I understand the rationale behind the separation, but the implementation is
> quite arbitrary. In the end, the early RDFS spec defines *all* the terms in rdf:
> and rdfs: regardless, and does not provide any explanation, any form of
> segregation between the two sets of terms. It goes from one term in the rdf: NS
> to another in the rdfs: NS without transition and justification.
>
> It's doubtless that it was intended that the range of rdf:predicate is
> rdf:Property, just as much as the range of rdf:type is rdfs:Class. This explains
> nothing.
>
> When the RDFS spec started to materialise, it should have become obvious that
> the separation of namespaces was a crazy idea. I'd like to know the reasons (if
> there are any) why the group stubbornly kept the idea 'till the end.

In agree that from today's perspective, it all seems inconsistent and arbitrary. 
  My response is in the spirit of "archaeology" rather than justification.

At the time, there wasn't so much experience with vocabulary URIs.  The 
available experience was mainly with XML namespace URIs.  As I recall There was 
a general feeling that vocabulary URIs would change as specs were updated (FOAF 
from about the same period still has a 0.1 in its namespace URI).

Then I guess that people realized that these were getting baked into loads of 
software and data, and the pain of changing was too much for the perceived 
consistency benefit.  So, I suggest, that it "became obvious" too late for the 
perceived cost of making the change.

#g
--


>
> Best,
> --AZ
>
> On 28/06/2019 12:51, Graham Klyne wrote:
>> Hmmm... rdf:Property is an odd case.  The 1999 RDF schema spec says it is
>> introduced in the model and syntax spec.  Yet when I can't see it actually
>> mentioned there.
>>
>> What the 1999 model/syntax spec does define are rdf:Statement, rdf:subject,
>> rdf:predicate, rdf:object, which are used in the definition of reification.
>>
>> At this point, I can only guess: maybe the intent was that the object of an
>> rdf:predicate statement would be an rdf:Property.  The accompanying section 5
>> text suggests an intent along those lines.  And the schema doc written with
>> that in mind.  The person to ask would be Dan Brickley.
>>
>> But, originally, I think the rationale was that terms defined in model and
>> syntax were "rdf" namespace, and those defined in schema were "rdfs".  This
>> distinction became less clear in later documents when some elements (notably
>> reification) were moved from model to schema.
>>
>> #g
>> --
>>
>>
>>
>> On 28/06/2019 10:53, Antoine Zimmermann wrote:
>>> Thanks Stian, but I know this. My question is why some terms have been put in
>>> the rdf: namespace rather than rdfs: and vice versa. For instance:
>>>
>>> rdf:Property seems to play a role similar to rdfs:Class. When it's used, e.g.:
>>>
>>>   foaf:knows  a  rdf:Property .
>>>
>>> it's totally describing the vocabulary, just like:
>>>
>>>   foaf:Person a  rdfs:Class .
>>>
>>> But strangely, one is in rdf: the other in rdfs:.
>>>
>>> Also, when one writes:
>>>
>>>   ex:something  a  rdfs:Resource .
>>>
>>> It's very much what is expected in the instance description, not the vocabulary
>>> (by the way, I avoid using "schema", because RDFS is really not describing
>>> schemas at all - very bad name).
>>>
>>> I've seen *many* people confusingly use "rdf:Resource" instead, and I've seen
>>> sometimes people using rdfs:Property as well.
>>>
>>> Also: rdfs:label, rdfs:comment, rdfs:seeAlso? how is it specific to the
>>> vocabulary definition?
>>>
>>> The spec at https://www.w3.org/TR/PR-rdf-schema/ shows diagrams where every
>>> terms are in rdfs: except rdf:Property and rdf:type (Fig.1 and Fig.2), without
>>> any explanation. A beginner may think this is a typo.
>>>
>>> There is another question too: why two namespaces after all, considering that,
>>> apparently, not everyone wanted the 2 namespaces at first?
>>>
>>>
>>> --AZ
>>>
>>> Le 28/06/2019 à 10:50, Stian Soiland-Reyes a écrit :
>>>> On Fri, 28 Jun 2019 09:55:50 +0200, Antoine Zimmermann
>>>> <antoine.zimmermann@emse.fr> wrote:
>>>>> Recently on Stack Overflow, there was a question asking "Why rdf:Seq and
>>>>> not rdfs:Seq?" [1]. I tried to answer the best I could, by digging in
>>>>> the old RDF mailing lists, but I am still puzzled about how some terms
>>>>> ended up in the rdf: namespace rather than rdfs: (and vice versa). Can
>>>>> someone involved in the early days of RDF enlighten us about this?
>>>>
>>>> Not involved at time, but rdfs: is all about the schema, *describing*
>>>> properties and types. It is a mini-ontology-language.  rdf: is about
>>>> using the language.
>>>>
>>>> Here is how rdf was introduced in 1999
>>>> https://www.w3.org/TR/1999/REC-rdf-syntax-19990222/
>>>>
>>>> ..which links to rdfs draft https://www.w3.org/TR/PR-rdf-schema/
>>>> co-developed separately, but rdfs took significantly more time to
>>>> formalize.
>>>>
>>>> Dan Brickley may be able to fill me in, but I believe it was the
>>>> intention a that using rdfs was optional? (you could mint
>>>> http://example.com/vocab#property5 and just have a HTML page about it)
>>>>
>>>> rdf:Seq is a data construct, so part of rdf like Bag and List
>>>> (BTW, describing use of rdf:Seq in rdfs is difficult, as you cannot say
>>>> what elements are expected in the seq.)
>>>>
>>>> So you could say rdfs: is at "meta" level, describing what *could* be
>>>> used in RDF instances (or more like, what do the terms mean), while rdf:
>>>> is a practitioner level, properties and types you may use in regular RDF
>>>> "instance-level" documents.
>>>>
>>>>
>>>
>

Received on Friday, 28 June 2019 12:59:51 UTC