Re: [HTTP-in-RDF] "Simplified" approach

Johannes Koch wrote:
>
> http:MessageHeader
> |- http:fieldName (rdfs:Literal)
> |- http:headerName (predefined httph:HeaderName resource)
> |- http:fieldValue (rdfs:Literal or http:HeaderElement)
>
> httph:HeaderName [with predefined resources for each registered header]
>
> http:HeaderElement
> |- http:elementName (rdfs:Literal)
> |- http:elementValue (rdfs:Literal)
> |- http:param (http:Param)

That is starting to look cleaner and simpler to me, but I have a
couple of questions:

1. You state "httph:HeaderName" - is "httph:" a typo or a new namespace?

2. Should "http:fieldValue" be "rdfs:Literal or http:HeaderElement"?
This forces the document producer to choose between two alternative
formats that don't have a ready semantic equivalence test. Would it
not be better to allow both a literal value and a formalised
decomposition? That way, the document consumer can choose which to
use, e.g. (where http:headerValues is a new invention):

<http:MessageHeader>
  <http:fieldName>Accept</http:fieldName>
  <http:fieldValue>application/xhtml+xml, text/html; q=0.9,
*/*</http:fieldValue>
  <http:headerName rdf:resource="http://www.w3.org/2006/http-header#accept"/>
  <http:headerValues rdf:parseType="Collection">
    <http:HeaderElement>
      <http:elementName>application/xhtml+xml</http:elementName>
      <http:param>
        <http:Param>
          <http:paramName>q</http:paramName>
          <http:paramValue>1.0</http:paramValue>
        </http:Param>
      </http:param>
    </http:HeaderElement>
    <http:HeaderElement>
      <http:elementName>text/html</http:elementName>
      <http:param>
        <http:Param>
          <http:paramName>q</http:paramName>
          <http:paramValue>0.9</http:paramValue>
        </http:Param>
      </http:param>
    </http:HeaderElement>
    <http:HeaderElement>
      <http:elementName>*/*</http:elementName>
      <http:param>
        <http:Param>
          <http:paramName>q</http:paramName>
          <http:paramValue>1.0</http:paramValue>
        </http:Param>
      </http:param>
    </http:HeaderElement>
  </http:headerValues>
</http:MessageHeader>

This way, if you want raw output, just seek the http:fieldName /
http:fieldValue pair but if you want formalization and decomposition,
seek the http:headerName / http:headerValues pair.

Further, if a document producer only emitted:

<http:MessageHeader>
  <http:fieldName>Accept</http:fieldName>
  <http:fieldValue>application/xhtml+xml, text/html; q=0.9,
*/*</http:fieldValue>
</http:MessageHeader>

... then an intermediary could easily extend the document with the
formalization and decomposition without having to overwrite the
original raw data.

Regards,
Alan Dean
http://thoughtpad.net/alan-dean

Received on Tuesday, 29 May 2007 12:53:24 UTC