Re: Semantic Web permathread, iteration n+1 (was Re:
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 > "values". > "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"); > p.Save(); > > 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 [expletive deleted]' 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): http://www.w3.org/2001/10/stripes/ , a post to xml-dev by Len Bullard: http://lists.xml.org/archives/xml-dev/200208/msg01314.html "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 RDF." and then John Cowan followed up a few posts down with: http://lists.xml.org/archives/xml-dev/200208/msg01319.html "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, -Rob > > > >>-----Original Message----- >>From: Robert Koberg [mailto:rob@k...] >>Sent: Friday, June 04, 2004 10:11 AM >>To: Joshua Allen >>Cc: XML Developers List >>Subject: Re: Semantic Web permathread, iteration >>n+1 (was Re: InfoWorld agrees with Elliote Rusty Harold) >> >>Joshua Allen wrote: >> >> >>>scenarios. OSAF Chandler is based on "triples", as is >> >>Longhorn's WinFS. >> >>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 >>representation: >> >><site xmlns="http://livestoryboard.com/schemas/lsb" generate="1" >>label="Home" >> id="demo_root" css="default.css" xsl="default" name="DEMO" >>index_page="site_ind"> >> <page generate="1" id="site_ind" label="Welcome" >>name="Welcome.html"/> >> <folder generate="1" label="Destinations" id="f1034364271" >>onnav="1" >> 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" >>name="Sailing" index_page="p1211385515"> >> <page generate="1" id="p1211385515" >>label="Introduction to Sailing" name="sailing.html"/> >> </folder> >> </folder> >> <topic label="content_root" id="t339321861" xsl="topics" >>name="t339321861"> >> <content label="homepromo" id="c682201793" name="tester.html"/> >> <content label="placeholder" id="c780459541" >>name="placeholder.html"/> >> <content label="right" id="c807589041" name="c807589041.html"/> >> <topic id="t235257654" label="Test Topic" >>name="TestTopic" generate="1" >> onnav="1" xsl="topics"> >> <content id="c408766032" label="Article 1" name="Article1.html" >> generate="1" onnav="1"/> >> </topic> >> </topic> >></site> >> >>And here is extra metadata from a single page above (named >>p1958461133.xml): >> >><md-page xmlns="http://livestoryboard.com/schemas/lsb" >> created="2004-03-28T09:22:57" creator="rkoberg" >>last_mod_by="ikoberg" >> modified="2004-05-03T09:51:54" status="editorial"> >> <title>A longer title than the label</title> >> <description>All about cool sailing destinations.</description> >> <regions> >> <region name="narrowColumn"> >> <content ref="c408766032"/> >> </region> >> <region name="wideColumn"> >> <content ref="c780459541"/> >> <content ref="c682201793"/> >> </region> >> </regions> >> <property name="somename">some value</property> </md-page> >> >>best, >>-Rob >> >> >> >> > >
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format