Re: Considerations on RDF presentation

From: Emmanuel Pietriga <Emmanuel.Pietriga_at_lri.fr>
Date: Tue, 03 May 2005 11:24:08 +0200

Back to the discussion about the intermediate tree representation. There
has been a few rough draft proposals, and I'm trying to propose
something based on this.

First, the requirements:
a) the tree should be mainstream XML, so as to be easy to process with
XML/tree-world tools (XSLT, template languages, CSS,...)

b) the tree should contain information about what each element
represents (e.g. a property label, a property value,...) as this
information is important for the styling phase

c) Chris would like to be able to express RDF-ish styling rules on this
tree, such as "color in red all foaf:Person instances that have a
foaf:surname equal to 'Smith'". Depending on whether foaf:surname was
selected by the lens as a property to show or not, this information
might or might not be present in the tree. The absence of foaf:surname
info in the tree should not prevent us from expressing conditions such
as the one above. Besides, it should still be possible (but not
necessary) to express these conditions from an RDF model/graph perspective.

Considering these requirements, I propose to have a fairly simple
XML-ish intermediate tree representation with simple hooks to the source
RDF model using URIs that can be used by applications that want to
exploit knowledge contained in the source RDF model (but not necessarily
present in the intermediate tree) in the styling phase.


Chris' proposal was:

>><foaf:person uri=ex:stefano>
>> <foaf:name fresnel:label="Name: ">Stefano</foaf:name>
>> <foaf:depict>http://idontknow.org/image.gif</foaf:depict>
>> <foaf:homepage fresnel:label="Person's Homepage:
>>">http://idontknow.org</foaf:depict>
>> <foaf:homepage fresnel:label="Person's Homepage:
>>">http://idontknow3.org</foaf:depict>
>></foaf:person>

Stefano's was:

> <div class="items">
> <div class="item">
> <div class="title">Blah</div>
> <div class="author">
> <div class="label">author</div>
> <div class="value">Joe Random</div>
> </div>
> ...
> </div>
> ...
> </div>
>
> this is *completely* equivalent to
>
> <items>
> <item>
> <title>Blah</title>
> <author>
> <label>author</label>
> <value>Joe Random</value>
> </author>
> ...
> </item>
> ...
> </items>


Both have advantages and drawbacks, and do not meet all of the
above-mentioned requirements. The following is a new attempt based on these.

The source data:
foo:EP rdf:type foaf:Person ;
        foaf:surname "Pietriga" ;
        foaf:firstName "Emmanuel" ;
        foaf:mbox <mailto:emmanuel.pietriga_at_inria.fr> ;
        ex:age "28" ;
        foaf:depiction <http://example.org/id.jpg>.


The lens:
:fpLens rdf:type fresnel:Lens;
         fresnel:lensDomain foaf:Person;
         fresnel:showProperties (
           foaf:firstName
           foaf:surname
           foaf:depiction
         ).


The output tree:
<foaf:Person uri="foo:EP">
   <foaf:firstName class="property">Emmanuel</foaf:firstName>
   <foaf:surname class="property">Pietriga</foaf:surname>
   <foaf:depiction class="property">
     <fresnel:g uri="http://example.org/id.jpg" />
   </foaf:depiction>
</foaf:Person>

The tree can then be further enriched with presentation information such
as fresnel:label and contentBefore/After/etc. attributes:

<foaf:Person uri="foo:EP">
   <foaf:firstName class="property" label="Firstname">
     Emmanuel
   </foaf:firstName>
   <foaf:surname class="property" label="Surname">
     Pietriga
   </foaf:surname>
   <foaf:depiction class="property" label="none">
     <fresnel:g uri="http://example.org/id.jpg" />
   </foaf:depiction>
</foaf:Person>

XSLT or template languages could take as input either the first tree or
this enriched version depending on what Fresnel modules are supported.
Or the tree could be further enriched with styling instructions.


Some issues:
- I'm using class information as XML element names for elements that are
resources. What do we do when no such information is available? We can
have some kind of default name in the fresnel namespace (I've used
fresnel:g in the example). What if a resource is an instance of multiple
classes?
- is the class="property" really necessary?


-- 
Emmanuel Pietriga
INRIA Futurs - Projet In Situ    tel : +33 1 69 15 34 66
Bat 490, Université Paris-Sud    fax : +33 1 69 15 65 86
91405 ORSAY Cedex            http://www.lri.fr/~pietriga
Received on Tue May 03 2005 - 09:25:12 EDT

This archive was generated by hypermail 2.3.0 : Thu Aug 09 2012 - 16:39:18 EDT