Re: use case: Accountants, companies, and customers.

On Wed, Mar 24, 2004 at 03:07:15PM -0800, Rob Shearer wrote:
> 
> (Just realized we don't yet have use cases demonstrated complex graphs
> or disjunction.)

FatAnnotationQuery (in the message Subject: EP-1 - EP-4 including
promised general metadata query) has a disjuntion dealing with the
fact that dublin core changed namespace but is the semantics are
conflatable (identical, really) for the purposes of the queryying
application. an excerpt:
 ...
 <http://example.com/annot1>  a:context   ?context.
 ( <http://example.com/annot1>  dc0:creator ?creator ||
   <http://example.com/annot1>  dc1:creator ?creator )
 ?creator                     a:E-mail    ?email.
 ...
Perhaps I should split those queries out into separate messages.

> There exists an RDF repository containing accounting firms, companies,
> and their customers, related via properties "accountsFor" and
> "hasCustomer" (let's ignore any inheritance relations for the moment):
> 
> _:pwc hasName "PriceWaterhouseCoopers"^^xsd:string
> _:boe hasName "Boeing"^^xsd:string
> _:mil hasName "US Military"^^xsd:string
> _:pwd accountsFor _:boe
> _:boe hasCustomer _:mil
> 
> a) The user wants to retrieve the names of all firms which do accounts
> for suppliers of the military.
> 
> b) The user wants to retrieve the names of all the firms which either do
> accounts for suppliers of the military, or do accounts for the military
> itself.
> 
> 
> I'm sure there are much better demonstrations of the point, but the
> situation of users interested in more than just properties within one
> hop of a query node is very very common. (A use case demonstrating more
> sophisticated graph constructs might be useful.)
> The ability to use disjunction or union is also a pretty big deal;
> requiring users to join their own results pretty much guarantees that
> our query language is confined to programmatic interfaces as parts of
> large systems. Real users will want to be able to do this kind of thing
> (and get easily-interpretable results) without writing any custom code.

agreed.

Relational DBs also lean heavily on outter joins (which correspond
pretty closely to optional triples) and something I think called safe
negotiation (ala don't tell me about the solutions where _:pwd is
bound to FredCo). I'll submit a couple in a *separate message*.
(/me learns from his mistakes)
-- 
-eric

office: +81.466.49.1170 W3C, Keio Research Institute at SFC,
                        Shonan Fujisawa Campus, Keio University,
                        5322 Endo, Fujisawa, Kanagawa 252-8520
                        JAPAN
        +1.617.258.5741 NE43-344, MIT, Cambridge, MA 02144 USA
cell:   +1.857.222.5741 (does not work in Asia)

(eric@w3.org)
Feel free to forward this message to any list for any purpose other than
email address distribution.

Received on Thursday, 25 March 2004 11:46:08 UTC