Re: Empty @typeof

The problem is @typeof might have a value, but that value might be an 
INVALID curie.  An INVALID curie would map to "", so at that point you 
need a rule for what the behavior is.

Steven Pemberton wrote:
>
> 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.
>>>
>>>
>>>
>>
>>
>>
>
>

-- 
Shane P. McCarron                          Phone: +1 763 786-8160 x120
Managing Director                            Fax: +1 763 786-8180
ApTest Minnesota                            Inet: shane@aptest.com

Received on Thursday, 11 September 2008 16:02:26 UTC