Lists Home |
Date Index |
Thanks Joshua [more below -- to anyone]
Joshua Allen wrote:
> OK, I'll give some more detailed example. One of the things that
> Chandler, WinFS, and many other systems store is a "Person" item. The
> Person can be used as a contact in an address book, as an entry in the
> IM client, and so on. Another possible thing would be a "Picture" item,
> which represents a media file.
> So the basic data model is this -- you have "items", "properties", and
> "item" - a thing like "Person" or "Picture", about which you can make
> statements. The same as RDF "subject".
> "property" - a named aspect of an item, such as "PhoneNumber" or
> "PictureDate". The same as RDF "predicate".
> "value" - the value you are asserting for the property, can be a literal
> or even another "item". The same as RDF "object".
> One name that programmers use for this data model is "property bag".
> Basically you can assign property values by name, and stick whatever you
> want on the property bag. For example:
> Person p = new Person();
> p["PhoneNumber"] = "+1-425-882-8080";
> p["someRandomPropertyIMadeUp"] = "fooBar";
> p["Depiction"] = new Picture("foo.jpg");
> This is a really common pattern for systems which have a lot of
> variability in schema. For example, this is how MS Exchange and Lotus
> notes have modeled messages for at least a decade. You can stick new
> properties on a message without problems. This is essentially the model
> of LDAP and ADSI as well, since objects in a directory could have all
> sorts of important properties that vary by organization. This is also a
> natural way to model a media file, since you have things like "album",
> "composer", "length", "dimensions" -- metadata which may not always be
> available, or availability which may change in the future, or metadata
> which may be sourced from multiple locations (imdb, musicbrainz, etc).
> SO, the question is, are these scenarios best suited to XML? Obviously
> there have been XML formats developed for interchange of these formats
> (like DSML for directories, iCard for contact info, etc.)
> The XML you demonstrated is not bad. Basically you are saying that
> elements always maps to items, attributes always map to predicates, and
> attribute values map to values. You also have some implicit property
> (maybe named "children") to which child elements map. This is a bit
> different from Mark Baker's example, where elements mapped to items, but
> child elements mapped to properties (and I assume this alternates; which
> is known as "striping" in RDF, and the source of much distaste). But
> maybe you are seeing the issue with XML. With XML, you have to have a
> convention for which stuff maps to (s, p, o), where with RDF it isn't a
> matter of choice.
OK, 'striping' is the term I guess I have been missing. It seems to
mean: provide an appropriate container element when making a hierarchy.
I believe I have that by using a schema and even more so with our gui
tool. Is the XML I posted basically equal to striped RDF?
Why is there distaste for striping, as you mentioned?
It seems to me striped RDF is basically a formalized XML hierarchy, as
you wrote. If that is correct and it is a valid approach, why are people
saying hierarchies are bad? Or is it just that informal hierarchies are
bad? I guess I have been concerned about all the 'hierarchies suck'
statements; I have been assuming a striping syntax.
I googled 'striping rdf' (without quotes). What I saw did not show a
distaste for striping. It seemed like people where saying it was
necessary. I came up with the w3 description (there could be a much
better RDF example):
, a post to xml-dev by Len Bullard:
"Tools that could provide
assistance to striping the RDF into the XML open
up a lot of content to the SemWeb processors without
asking producers to spend a lot of effort understanding
and then John Cowan followed up a few posts down with:
"As for misinterpretation, a better term would be
interpretation that is inappropriate: if the strict alternation of
resource/property/resource/property striping is not maintained, you
may get junk assertions that mix up resources and properties.
That's why I said that semanticless container elements should be
avoided if RDF interpretation is desirable."
But if a schema and a tool enforces the relationships, all is good, right?
thanks for explaining,
>>From: Robert Koberg [mailto:firstname.lastname@example.org]
>>Sent: Friday, June 04, 2004 10:11 AM
>>To: Joshua Allen
>>Cc: XML Developers List
>>Subject: Re: [xml-dev] Semantic Web permathread, iteration
>>n+1 (was Re: [xml-dev] InfoWorld agrees with Elliote Rusty Harold)
>>Joshua Allen wrote:
>>>scenarios. OSAF Chandler is based on "triples", as is
>>I am trying to get a handle on this issue. Can you post an
>>example or link of WinFS XML(?) or triples? I have googled
>>around but only find blog entries with no examples.
>>Specifically, what does a 'folder' within a 'folder' look
>>like? Is a page the end, or in other words is it the content?
>>For me, it is easier to represent it as a light hierarchy and
>>pull in extra metadata/content when needed. I keep minimal
>>metadata in the hierarchy and then more metadata/content for
>>each node is kept in a separate file. The extra metadata
>>further references the content assigned in a region element
>>-- so a page is basically a 'folder' of content pieces
>>(content assigned at the folder level cascades down to the
>>pages in that folder). For example here is the hierarchical
>><site xmlns="http://livestoryboard.com/schemas/lsb" generate="1"
>> id="demo_root" css="default.css" xsl="default" name="DEMO"
>> <page generate="1" id="site_ind" label="Welcome"
>> <folder generate="1" label="Destinations" id="f1034364271"
>> name="Destinations" index_page="p1958461133">
>> <page generate="1" id="p1958461133" label="Introduction
>>to Destinations" name="destinations.html"/>
>> <folder generate="1" label="Sailing" id="f611591524" onnav="1"
>> <page generate="1" id="p1211385515"
>>label="Introduction to Sailing" name="sailing.html"/>
>> <topic label="content_root" id="t339321861" xsl="topics"
>> <content label="homepromo" id="c682201793" name="tester.html"/>
>> <content label="placeholder" id="c780459541"
>> <content label="right" id="c807589041" name="c807589041.html"/>
>> <topic id="t235257654" label="Test Topic"
>> onnav="1" xsl="topics">
>> <content id="c408766032" label="Article 1" name="Article1.html"
>> generate="1" onnav="1"/>
>>And here is extra metadata from a single page above (named
>> created="2004-03-28T09:22:57" creator="rkoberg"
>> modified="2004-05-03T09:51:54" status="editorial">
>> <title>A longer title than the label</title>
>> <description>All about cool sailing destinations.</description>
>> <region name="narrowColumn">
>> <content ref="c408766032"/>
>> <region name="wideColumn">
>> <content ref="c780459541"/>
>> <content ref="c682201793"/>
>> <property name="somename">some value</property> </md-page>