Re: Empty @typeof

But is typeof="" even valid? If it isn't, then surely we don't have to  
define it.

The datatype for typeof says it is a list of CURIEs, but doesn't say if it  
is one or more, or zero or more. I had always assumed one or more.

Of course if typeof="" is a useful use-case, then we can define it, but I  
am not in favour of defining semantics for incorrect markup, because it is  
a neverending process. What happens with typeof="foo:bar:bla" or  
type-of="bla", etc, etc.

Steven


On Sun, 07 Sep 2008 21:48:33 +0200, Mark Birbeck  
<mark.birbeck@webbackplane.com> wrote:

> Hi Micah/Toby,
>
> I haven't had chance to check the wording, but Micah is right. :)
>
> A similar issue came up in relation to @rel and @rev (spotted by Ben
> and Ivan, I believe), which we fixed. It's a shame that we didn't spot
> the related @typeof issue at the same time.
>
> Anyway, the core idea is that there are a number of different ways
> that you might end up with an 'empty' value, not just one that is
> literally empty.
>
> For example, if you have @typeof="foo", and "foo" is not a known
> token, then the default graph will contain no representation of the
> type of the bnode. To all intents and purposes, the @typeof is
> 'empty'.
>
> But since the specification allows other graphs to be created, there
> may be some other graph that contains:
>
>   _:bnode a <whatever foo is> .
>
> So if we want to tie two graphs together, we need to know the bonde  
> value.
>
> This means that when we see a @typeof we need to create the bnode,
> regardless of whether the @typeof itself contains anything for our
> graph, because we cannot tell the difference when parsing between
> this:
>
>   typeof=""
>
> and this:
>
>   typeof="notforus"
>
> I.e., we need to unconditionally create the bnode.
>
> Regards,
>
> Mark
>
> On Sun, Sep 7, 2008 at 6:36 PM, Micah Dubinko
> <Micah.Dubinko@marklogic.com> wrote:
>>
>> This is an interesting case.
>>
>> My impl produces this:
>>
>> _:bnode dc:title "xyzzy"
>>
>> Which I think might actually be right.
>>
>> The mere presence of @typeof triggers creating a new bnode.
>> But since it doesn't have a valid CURIE, there is no generated triple  
>> with
>> rdf:type.
>>
>> Agree that a minor editorial clarification would be nice.
>>
>> -m
>>
>>
>> On 9/7/08 2:30 AM, "Toby A Inkster" <tai@g5n.co.uk> wrote:
>>
>>>
>>> What is the meaning of this?
>>>
>>>    <div about="#foo">
>>>      <div typeof="">
>>>        <span property="dc:title">xyzzy</span>
>>>      </div>
>>>    </div>
>>>
>>> Is "xyzzy" the title of "#foo" or the title of a BNode created by the
>>> second <div>?
>>>
>>> Step #4 and #5 in the processing sequence say "if @typeof is present"
>>> then typeof sets a new subject. However, step #6 says of @typeof: "if
>>> present, the attribute must contain one or more URIs" (i.e. not zero
>>> or more).
>>>
>>> Can an empty typeof set a new subject, or is it invalid and thus
>>> ignored? It would be nice if the syntax document could be clarified.
>>>
>>> Yes, I know it would be helpful if I'd raised this issue before RDFa
>>> reached PR stage, but I've only just noticed it.
>>
>>
>>
>
>
>

Received on Thursday, 11 September 2008 13:55:46 UTC