|
[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: A Systematic Approach to using Simple XML Vocabularies to
BTW, that's also called a 'stored procedure'. Yes, links/relationships that aren't hardwired to particular instance values can be functions or queries. In many applications, that can be what the URI identifies. A table schema IS a simple vocabulary. That's what normalization is all about. It isn't that magic isn't useful; it is that it is so unreliable and seldom necessary. len From: Roger L. Costello [mailto:costello@m...] So properties are things that can be aggregated, typed, and related to other objects ... dynamically. In a large, dynamic system this agility is crucial (I assert). This is called "opportunistic composition and relationships". In my last message I issued a challenge: how can simple vocabularies be used to construct an Invoice for the purchase of a Book. Here's how to implement the Invoice using Naz's approach: <bag id="RLC"> <is-a instanceOf="PostalAddress"/> <has property="Addressee">Roger L. Costello</has> <has property="Street">38 Boylston St.</has> <has property="City">Boston</has> <has property="State">MA</has> <has property="Zipcode">01320</has> <refersTo xlink:role="purchased" xlink:href="#Bach"/> </bag> <bag id="Bach"> <is-a instanceOf="Book"/> <has property="Title">Illusions</has> <has property="Author">Richard Bach</has> <has property="Date">1977</has> <has property="ISBN">0-440-34319-4</has> <has property="Publisher">Dell Publishing Co.</has> <refersTo xlink:role="purchased-by" xlink:href="#RLC"/> </bag> <bag> <is-a instanceOf="Invoice"/> <refersTo xlink:role="contains" xlink:href="#RLC"/> <refersTo xlink:role="contains" xlink:href="#RLC"/> </bag> The advantages of the Bag approach are: 1. Opportunistic composition and relationships. 2. Highly scalable. 3. Well-suited in cross-domains. 4. Well-suited in evolving systems. 5. A flexible, dynamic Web of data is created. The disadvantages of the Bag approach are: 1. It requires more skill to build applications because properties and relationships are not fixed. We are all comfortable with writing applications that can process this: <Person> <Name>Roger L. Costello</Bag> <Age>39</Age> <SSN>310-60-1234</SSN> </Person> But it is much more challenging to write an application that can process a {Name, Age, SSN} collection which in one part of the system represents a Person, in another part of the system represents an Employee, etc. Further, the relationships between this object and other objects may dynamically change (see observation #6 above). 2. A flexible query and navigation language is required. The language must allow navigation based upon dynamically established relationships. For example, "[From the Person object] Navigate to the "driving" object." See Observation #6 above. Unfortunately, XPath provides a fixed (static) set of navigation capabilities - child, ancestor, preceding-sibling, etc. [I assert] These are inadequate in a large, dynamic system. Comments? /Roger
|
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
|
|||||||||

Cart








