- From: Kevin Smathers <kevin.smathers@hp.com>
- Date: Mon, 13 Oct 2003 10:34:13 -0700
- To: "Butler, Mark" <Mark_Butler@hplb.hpl.hp.com>
- Cc: "'www-rdf-dspace@w3.org'" <www-rdf-dspace@w3.org>
Butler, Mark wrote: >Hi Kevin, > > > >>>Kevin writes in regard to Andy's suggestion >>> >>> > > > >>Creating an class for Person is fine, but combining multiple schemas >>into the same Person object I think is an error. >> >> > >then later you say > > > >>in other words, instead of extending Person with the >>contents >>of each new corpus, each new corpus can maintain its own >>Person class, >>each with its own meaning, >> >> > >I don't think this is a problem, because RDF supports multiple inheritance, >so each new corpus can still maintain its own Person class. We have a single >URI, that represents the concept of Leonardo da Vinci, and this can be an >instance of several different classes concurrently, with the properties >necessary to be members of each class. The important point is identifying >these instances apply to the same individual, and indicating that via the >URI. This is what your SoundExSimilarPerson and GettyULANPerson classes are >doing, right? We also get deconflict automatically as the properties are in >different namespaces. > >To put it another way, > >objectA >[ >rdf:type typeB >rdf:type typeC >b:propertyD "value1" >c:propertyE "value2" >] > >is equivalent to > >objectD >[ >rdf:type typeB >b:propertyD "value1" >b:sameAs objectE >] > >objectE >[ >rdf:type typeC >c:propertyE "value2" >c:sameAs objectD >] > >right? > I agree that the two cases that you show are of equivalently expressive, but I wasn't talking about multiple classification. In cases where objectA and objectB are independently developed, the semantic value of some propertyB is likely to vary even when referring to the same property. Andy proposes moving the discordant element into an new property that is a schema-specific identifier, but the way I would model it is that the instances remain seperate, in other words: objectA [ rdf:type typeA b:propertyB "Yin" c:propertyC "valuec" ] objectB [ rdf:type typeB b:propertyB "Yang" d:propertyD "valued" ] objectC [ rdf:type someEquivalenceType :equivalent <objectA> :equivalent <objectB> ] In your example objectA is inextricably both typeB and typeC. Thus in your example instances of typeB can be equivalent to instances of typeC for only one sense of equivalence -- there can't be any conflicts (one references Getty, another references some homebrew canonical transformation), nor can objectA take one equivalence with different objects depending on the context of the equivalence. > > > >>Rather than replace the original meaning, what you >>need is to apply an adaptor pattern to adjust the meaning to a new >>context; >> >> > >By adaptor pattern, do you invisage an ontology (OWL) or RDFS document, or >do you mean a programmatic description? > Here I'm trying to develop a theory for handling opposing theories of classification. Again, Andy's approach, if I understand correctly, is to rationalize the opposing views -- that is to choose a dominant view, and relegate sub-dominant views to historical references. By using an adaptor pattern what I propose is that each data source should be able to maintain its own dominant view, with adaptive extensions to allow it to be queried in the opposing domain. In other words, a library that, for example, indexes its collections in Library of Congress should continue to see the Library of Congress identifier as the primary identifier of its records, but those records could be mapped for use interlibrary to a library that indexes using Dewey Decimal identifiers by an adaptive wrapper around the original instance. The adaptive wrapper adds flexibility in the mapping and can conceivably be instantiated differently for each peer that would like to see Dewey Decimal numbers. (Feel free to replace LOC, or Dewey with e.g URL's, ISBN, or UPC numbers.) > >One reason we might want to use an adaptor pattern is it allows us to >normalize the data. We are used to the idea of normalizing data in >relational databases, but the idea is also applicable to XML - see [1] and >[2] - and I hypothesise RDF. It seems counterintuitive to talk about >normalization in RDF, because if we pick our first class entities correctly, >we get normalization for free, but I guess by thinking about (RDF) models >from a normalization perspective we can check how well designed a model is. > > I'm not sure that there is any 'correct' set of first class entities that can be determined a-priori. Philosophically this is is a question of episteme; the root assumptions provide the context within which to select the first class entities, but those first class entities will of necessity be different from the classes chosen by people operating in a distinct paradigm. Certain epistemological systems have shown great durability in the face of change, but specialized contexts will always require specialized classification which can be of value to the users of that system even when its classifications seem absurd or nonsensical in the context of one of the common durable systems. >When we map between corpori, and come up with representations of individuals >that combine multiple vocabularies similar to those above, we can consider >normalization also. Clearly an instance having multiple properties, >associated with different namespaces, that contains duplicates of the same >value is a bad idea. Where there is a consistent duplication, we could omit >properties and use inference and subproperty relations instead. > >However compound relations are more complicated e.g. in Andy's example there >is a relation between artstorID and familyName, givenName, dateOfBirth, >dateOfDeath. In the subsequent discussion, let's call the latter the >galleryCard representation (because its similar to vCard but we have DOB/DOD >also). The relationship between artstorID and the galleryCard representation >is more complicated one way than the other: to go from artstorID to >galleryCard we have to do some kind of tokenization, which is potentially >unreliable. However to move from the galleryCard to artstorID is easier >because we just aggregate. > >Therefore to perform normalization, it seems attractive to take artstorID at >ingest, break it in to galleryCard, and then implement some kind of viewer >to aggregate back to the artstorID representation. We can represent both >relations between the galleryCard properties and artstorID programmatically, >but I don't think we can indicate such relations using languages like OWL - >perhaps an OWL expert can correct me here if I'm wrong? > >However I think there is another design principle here that overrides the >need for normalization. Historians talk about primary and secondary sources, >so the problem with using the split at ingest / reaggregate is we have >thrown away a primary source and are rebuilding it using a secondary source. >Despite the need for normalization, this seems a bad idea. So I think it is >okay to split to galleryCard at ingest, but I'm keen for us to keep the >original "Leonardo,da Vinci,1452-1519" as well. > It is sometimes very difficult to talk about this without sounding absurd, but consider the following if you can. Suppose there is a school of the occult that teaches that every soul goes through multiple incarnations, and just for the sake of argument, let's suppose that they had through some divine means determined that J.S. Bach, and Elvis happened to be the same person (qua soul). So they diligently enter that 'fact' into their database. While that representation undoubtably might have value to the school of the occult, it is unlikely that most other schools would have any use for that information. Clearly, even though the epistemological systems interact, they must not inadvertently pollute the other systems. The decision of the occult school to join together those records should be available but ignored unless you are working in the context of the occult. My argument is that things like this occur to a lesser degree all the time. Equivalence shouldn't be expressed by multiple classification because it is too final; rather equivalence should be expressed by indexing where the index can be maintained by the organizations that are interested. > >[1] Normalizing XML, part 1, Will Provost, XML.com >http://www.xml.com/pub/a/2002/11/13/normalizing.html > >[2] Normalizing XML, part 2, Will Provost, XML.com, >http://www.xml.com/pub/a/2002/12/04/normalizing.html > >Dr Mark H. Butler >Research Scientist HP Labs Bristol >mark-h_butler@hp.com >Internet: http://www-uk.hpl.hp.com/people/marbut/ > > -- ======================================================== Kevin Smathers kevin.smathers@hp.com Hewlett-Packard kevin@ank.com Palo Alto Research Lab 1501 Page Mill Rd. 650-857-4477 work M/S 1135 650-852-8186 fax Palo Alto, CA 94304 510-247-1031 home ======================================================== use "Standard::Disclaimer"; carp("This message was printed on 100% recycled bits.");
Received on Monday, 13 October 2003 13:35:30 UTC