- From: Garret Wilson <garret@globalmentor.com>
- Date: Wed, 08 Aug 2007 09:15:09 -0700
- To: Bruce D'Arcus <bdarcus@gmail.com>
- CC: Ivan Herman <ivan@w3.org>, Semantic Web <semantic-web@w3.org>
Bruce, Your other suggestions for RDF Vista ;) are nice as well (although I would have a few clarification questions about dumping reification), so I'll skip back to how contextual properties would help vCard, below. Bruce D'Arcus wrote: > > I think it'd also make sense to add named graph support to RDF/XML; > namely, an rdf:about attribute to the root rdf:RDF node (though should > probably be changed to rdf:graph). Whoa! I hesitate to contemplate the implications of this, or where you would are wanting to go here. I could imagine named sub-graphs---would this lead to topic-map type scopes (something I'm not up to speed on)? http://www.topicmaps.org/xtm/index.html#desc-scope Well, any named graph by definition is a named sub-graph, so I perhaps one use of this would be contextual properties. Wow, this is a huge topic in itself. And I thought I came up with controversial topics. ;) Interesting, nonetheless. > > Finally, I've often seen suggestions we need support for provenance > and time baked into the model (who made a statement, and when is it > valid) beyond named graphs. That seems like it might be a good idea. Ah, http://www.ninebynine.org/RDFNotes/UsingContextsWithRDF.html . See, you're going way beyond what I'm proposing! Both named subgraphs and provenance are actually supersets of contextual property functionality. Sure, if you want to go there it will solve my problems as well... > > A lot of the examples you're presenting just don't rise to the level > of the above for me. Like I said---you're proposing a huge superset of what I proposed. I was trying to pick low-hanging grapes. > I don't really think your vCard example with telephone numbers and > names makes your case for contextual properties, for example. To > really model it the way you want to model it suggests you actually > model context yourself. > > <http://ex.net/1> a vcard:VCard ; > vx:context <http://ex.net/2> ; > vx:context <http://ex.net/3> . > > <http://ex.net/2> a context:Home ; > vcard:telephone tel:13-49813-94831 . > > <http://ex.net/3> a context:Work ; > vcard:telephone tel:11084-093184931 . > > Is there any reason that's not adequate and *requires* changing the > RDF model to get around? The above doesn't say what I'm wanting to, and it winds up with the same problem we had before: you're going to have to create as many context *types* as you would contextual properties, and it doesn't even relate those properties to the thing being described (the telephone number). Let me put this more concretely. (Note that I'm also following TBL's suggestion to talk in terms of describing a foaf:Person rather than some abstract vcard:VCard.) <foaf:Person rdf:about="http://example.com/person/John"> <vcard:tel> <rdf:Description rdf:about="tel:+1-123-456-7890"> <vcard:telType>home</vcard:telType> <vcard:telType>fax</vcard:telType> <vcard:preferred>true</vcard:preferred> </rdf:Description> </vcard:tel> </foaf:Person> <foaf:Person rdf:about="http://example.com/person/Jane"> <vcard:tel> <rdf:Description rdf:about="tel:+1-123-456-7890"> <vcard:telType>work</vcard:telType> <vcard:telType>fax</vcard:telType> </rdf:Description> </vcard:tel> </foaf:Person> Obviously when these statements get incorporated into the same graph, it says that <tel:+1-123-456-7890> is a work number (but really it's not a work number for John), and that the number is preferred (but really it's not preferred for Jane). If you had named subgraphs that were somehow separated (scope), that would take care of this; your suggestion of provenance would also cover this (e.g. "John considers <tel:+1-123-456-7890> his home telephone number.") But both of those are going *way* beyond what I was proposing. But if you want to go there, I'll follow along. I was just wanted something I could use sooner than later... :) My proposal would characterize the first "<vcard:telType>home</vcard:telType>" above like this: <foaf:Person rdf:about="http://example.com/person/John"> <rdf:context> <rdf:Statement> <rdf:of rdf:resource="&vcard;tel/> <rdf:subject rdf:resource="tel:+1-123-456-7890"/> <rdf:predicate rdf:resource="&vcard;telType/> <rdf:object>home</rdf:object> </rdf:Statement> </rdf:context> </foaf:Person> The semantics of rdf:context and rdf:of would say the exact same thing as giving <tel:+1-123-456-7890> a vcard:telType of "home"---but only in the context when <tel:+1-123-456-7890> is the vcard:tel of <http://example.com/person/John>. Querying would be done as normal---it's just that if you wanted to query for a contextual property, you'd need to also supply the contextual subject and contextual predicate in order to discover those properties. Note also that usually, if John has several phone numbers and Jane has several phone numbers, they usually have different orders of importance for those phone numbers---and suddenly we're back into the rdf:List debate. (Should we make every property value an rdf:List?) You'll note that the indirection involved with rdf:List is really just a way of externally imposing an order on resources without actually adding properties to those resources. This problem is solved if we simply have an rdf:order property that is contextual, like this: <foaf:Person rdf:about="http://example.com/person/John"> <vcard:tel> <rdf:Description rdf:about="tel:+1-123-456-8888" rdf:order="1"/> <rdf:Description rdf:about="tel:+1-123-456-9999" rdf:order="2"/> </vcard:tel> </foaf:Person> <foaf:Person rdf:about="http://example.com/person/Jane"> <vcard:tel> <rdf:Description rdf:about="tel:+1-123-456-8888" rdf:order="2"/> <rdf:Description rdf:about="tel:+1-123-456-9999" rdf:order="1"/> </vcard:tel> </foaf:Person> As long as rdf:order is considered contextual to the vcard:tel relationship between the foaf:Person and the telephone number, each person could have in essence its own "list" of telephone numbers---yet each telephone number could be queried just as a normal property in current RDF. Garret
Received on Wednesday, 8 August 2007 16:15:40 UTC