Re: Views and Lenses (+ SVN repository access)

From: Emmanuel Pietriga <>
Date: Fri, 22 Oct 2004 09:38:31 +0200

Chris Bizer wrote:

> As a first step, I have added a lens:View class to the vocab, which allows
> you to link sequences of lenses to specific contexts. See attached files. I
> guess defining what exactly a context is and which context properties are
> useful should be left to the different applications/browsers.
> lens:view rdf:type rdfs.Class
> Usage Example:
> :ProjectParticipantsView rdf:type lens:View ;
> rdfs:label "Project Participant View" ;
> lens:viewDomain foaf:Person ;
> lens:viewContext :work ;
> lens:showLenses [ rdf:type rdf:Seq ;
> rdf:_1 :StandardLens ;
> rdf:_2 :ContactLens ;
> rdf:_3 :PersonsProjectsLens ] .
> An alternative approach would be to have views a special kind of lens.
> Meaning that a view modelled using lens which has sublenses and a extra
> context property. This would avoid the extra class lens:view which is nice
> if we try to be minimalist but would be a little bit hacky.
> Any opinions if we should include views as an additional concept?
> About the modelling?
> Another question here is: If we call a group of lenses a view. How to we
> call the different "display modes" of a view, e.g. if the view is displayed
> as text or as a IsaViz like graphic?
> We seam to run out of terms here a bit ;-)

A "display mode" might be called a "representation". You'd have a
"{graphical, visual} representation", a "textual representation". It
might sound slightly too generic a term though...

> > - interaction: the act of capturing user events and translate them
> > into further selection or adaptation
> This sounds like a job for the browser (e.g. user selects a view, collapses
> a lens, drills down) and we only have to indirectly care for it when
> writing
> the vocabs e.g. by providing the browser with hints how lenses are related
> (lens:additionalInformationFor or :moreDetailsFor) or which view might be
> appropriate for a specific context.

Definitely agree with that. It is tempting to go further in some way,
but I don't think it is a good idea (this would bring a lot of complexity).

> I also updated the lens vocab with some earlier proposals of the
> discussion.
> + I added :propertySeq and :propertyBag again
> + added :hideProperties for specifying what not to show
> + added :_X for handling rdf:Bag and rdf:Seq
> + the view vocabulary as described abouve
> The updated lens vocab is attached together with the updated FOAF example.

I've made some modifications to the lens vocab slightly (there were
some typos and wrong namespace assignments that showed up when
visualizing the graph (e.g. "rdf" vs. "rdfs" or "rdf" vs. "lens")).

I've attached the new version to this mail, but it would definitely be
much better to use the svn repository (this way modifications from one
version to the other would be obvious). However, I can't seem to be able
to commit anything there. I suppose there is some kind of authentication
mechanism to setup. Could people outside MIT be somehow allowed to commit ?


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  

_at_prefix rdf: <> .
_at_prefix rdfs: <> .
_at_prefix dc: <> .
_at_prefix dtype: <> .
_at_prefix style: <> .

# Lens Namespace
_at_prefix : <> .

# -----------------------------------------------
# About this document
<> rdfs:comment "Lens Vocabulary (0.2a)" ;
   dc:description "Vocabulary for defining and relating lenses on RDF resources." ;
   dc:date "2004-10-22" ;
   dc:format "RDF" ;
   dc:identifier <> ;

# --------------------------------------------------------------
# Lens Vocabulary (0.2a)
# --------------------------------------------------------------
# The lens vocabulary is used for defining which properties of an
# RDF resources are displayed.
# It also allows you to relate lenses, e.g. a general and a more detailed
# lens for instances of the same class. This informtion can be used by a
# browser to selecting lenses or for offering display options to the user.
# For specifying the actual appearance of an RDF resource the lens vocabulary
# is combined with a style vocabulary.
# Contents:
# 1. Lens Vocabulary
# 2. Lens Relation and View Vocabulary
# 3. Property Vocabulary
# 4. Property Sets

# -----------------------------------------------
# 1. Lens Vocabulary
# -----------------------------------------------

:Lens rdf:type rdfs:Class ;
                                        rdfs:label "Lens" ;
                                    rdfs:comment "A lens defines a set of properties to be displayed."
:showProperties rdf:type rdf:Property ;
                                        rdfs:label "show properties" ;
                                      rdfs:comment "Sequence of all properties which should be shown." ;
                                        rdfs:domain :Lens
                            # rdfs:range rdf:Seq or rdf:Property or RDFPath expression
:hideProperties rdf:type rdf:Property ;
                                        rdfs:label "hide properties" ;
                                      rdfs:comment "Sequence of all properties which should be hidden.
                                                      Has to be used together with showProperties lens:otherProperties or lens:allProperties" ;
                                        rdfs:domain :Lens
                            # rdfs:range rdf:Bag or rdf:Property or RDFPath expression
:lensDomain rdf:type rdf:Property ;
                                        rdfs:label "useable for" ;
                                    rdfs:comment "The lens is usable for the specified class and it's subclasses." ;
                                        rdfs:domain :Lens;
                            rdfs:range rdfs:Class .

# -----------------------------------------------
# Special purpose lenses
# -----------------------------------------------
:StandardLens rdf:type rdfs:Class ;
                                        rdfs:label "Standard Lens" ;
                                        rdfs:comment "This lens should be used to display the instance if nothing else if known." ;
                                        rdfs:subClassOf :Lens
:LabelLens rdf:type rdfs:Class ;
                                        rdfs:label "Label Lens" ;
                                        rdfs:comment "Lens for displaying the label of a resource ." ;
                                        rdfs:subClassOf :Lens .

# -----------------------------------------------
# 2. Lens Relation and View Vocabulary
# -----------------------------------------------

# -----------------------------------------------
# 2.1 Lens Relation Vocabulary
# -----------------------------------------------

# The lens relation vocabulary gives the browser hints which lenses might be displayed together.

:additionalInformationFor rdf:type rdf:Property ;
                                        rdfs:label "additional information for" ;
                                        rdfs:comment "The lens provides additional information for another lens. It's a good idea to display both lenses together." ;
                                        rdfs:domain :Lens ;
                                rdfs:range :Lens .
:moreDetailsFor rdf:type rdf:Property ;
                                        rdfs:label "more details for" ;
                                     rdfs:comment "The lens provides more details about an instance than the nother lens. Good for drill-down." ;
                                        rdfs:domain :Lens;
                             rdfs:range :Lens .

# -----------------------------------------------
# 2.2 View Vocabulary
# -----------------------------------------------
# A view is a combination of lenses, which is useful for displaying resources for a given context.
# Some browsers might want to support views, other might just support lenses.
:View rdf:type rdfs:Class ;
                                        rdfs:label "View" ;
                                    rdfs:comment "A view is a combination of lenses, which is useful for displaying resources for a given context."
:showLenses rdf:type rdf:Property ;
                                        rdfs:label "show lenses" ;
                                      rdfs:comment "Sequence of all lenses which should be shown." ;
                                        rdfs:domain :View ;
                            rdfs:range rdf:Seq
:viewDomain rdf:type rdf:Property ;
                                        rdfs:label "useable for" ;
                                    rdfs:comment "The view is usable for the specified class and it's subclasses." ;
                                        rdfs:domain :view;
                            rdfs:range rdfs:Class .

:viewContext rdf:type rdf:Property ;
                                        rdfs:label "view context" ;
                                    rdfs:comment "The view is usable for the specified class and it's subclasses." ;
                                        rdfs:domain :view;
                            rdfs:range rdfs:Class .
:Context rdf:type rdfs:Class ;
                                        rdfs:label "Context" ;
                                    rdfs:comment "Context description in which a specific view might be appropriate. This still needs some work!"
# -----------------------------------------------
# 3. Lens Property
# -----------------------------------------------

# More detailed description of a property, e.g. for specifing a sublens or necessary closures.

:Property rdf:type rdfs:Class ;
                                        rdfs:label "Lens Property" ;
                                        rdfs:comment "More detailed description of the property, e.g. for specifing sublens or closure." .
:property rdf:type rdf:Property ;
                                        rdfs:label "property" ;
                                    rdfs:comment "RDF property." ;
                                        rdfs:domain :Property
                            # rdfs:range rdf:Property or RDFPath expression
:sublens rdf:type rdf:Property ;
                                        rdfs:label "sublens" ;
                                    rdfs:comment "Sublens which should be used for displaying property values." ;
                                        rdfs:domain :Property ;
                            rdfs:range :Lens
:closure rdf:type rdf:Property ;
                                        rdfs:label "closure" ;
                                    rdfs:comment "Closure if lenses are recursively used." ;
                                        rdfs:domain :Property ;
                            rdfs:range rdf:Literal

:displayStyle rdf:type rdf:Property ;
                                        rdfs:label "style" ;
                                    rdfs:comment "Explicit definition of a style:DisplayStyle that should be used to display the property.
                                                      This might be useful in some cases, but shouldn't be used too much." ;
                                        rdfs:domain :Property ;
                            rdfs:range style:DisplayStyle
:PropertySeq rdf:type rdfs:Class ;
                                        rdfs:label "Property Seq" ;
                                    rdfs:comment "Defines a sequence of alterntive properties that are used if a property is missing.";
                                    rdfs:subClassOf rdf:Seq ;
                                        rdfs:subClassOf :Property
:PropertyBag rdf:type rdfs:Class ;
                                        rdfs:label "Property Bag" ;
                                    rdfs:comment "The values of all properties in the lens:PropertyBag are displayed as one set of property values.";
                                    rdfs:subClassOf rdf:Bag ;
                                        rdfs:subClassOf :Property
# -----------------------------------------------
# 4. Property Sets
# -----------------------------------------------

:PropertySet rdf:type rdfs:Class ;
                                        rdfs:label "Abstract class of property sets." .

:AllProperties rdf:type :PropertySet ;
                                        rdfs:label "Set of all properties of a class.
                                                    Usage: :showProperties :allProperties ;
                                                                       :hideProperties rdf:Seq" .
:OtherProperties rdf:type :PropertySet ;
                                        rdfs:label "Set of all properties that are not already displayed by another lens.
                                                    Usage: :showProperties :otherProperties ;
                                                                       :hideProperties rdf:Seq" .
:_X rdf:type :PropertySet ;
                                        rdfs:label "Set of all rdf:_1, rdf:_2, ... properties.
                                                    Needed for displaying rdf:Seq and rdf:Alt" .
Received on Fri Oct 22 2004 - 07:38:40 EDT

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