- From: Dan Connolly <connolly@w3.org>
- Date: Mon, 11 Jul 2005 14:54:39 -0500
- To: jos.deroo@agfa.com
- Cc: kendall@monkeyfist.com, Amy Alford <aloomis@glue.umd.edu>, "Seaborne, Andy" <andy.seaborne@hp.com>, Eric Prud'hommeaux <eric@w3.org>, DAWG Mailing List <public-rdf-dawg@w3.org>, public-rdf-dawg-comments@w3.org, public-rdf-dawg-request@w3.org, Ron Alford <ronwalf@umd.edu>
On Mon, 2005-07-11 at 21:44 +0200, jos.deroo@agfa.com wrote: > That '!' is a forward path in n3 and :s!:p can be used to identify > a blank node > e.g. in the triple :s :p _:x that _:x can be written as :s!:p > > When :p is an owl:FunctionalProperty :s!:p stands for one resource > (I make quite some use of that to work with functional terms but > then the :s is mostly a rdf List) Yes, our work on diff/patch makes use of path expressions like that.. the syntax at the time was v.p and v^q ... [[ It is straightforward to pinpoint the parts of the graph that have changed when all nodes are named, but less so in the presence of anonymous nodes. ... To address robustness, we distinguish two types of RDF graph deltas: a weak delta gives enough information to apply it to exactly the graph it was computed from, but a strong delta specifies the changes in a context-independent manner. The difference is not in the patch file format, but in the information a particular patch gives. Returning to the bank example, if bank account numbers are globally unique, then the replacement pattern will bind ?x to a node identifying a particular bank account. In OWL[OWL] terms, if bank:accountNumber is an owl:InverseFunctionalProperty, then the node must be the owl:sameAs any other node with the same account number. In that case, the patch will be strong. If, however, many accounts can have the same number, applying that patch to another knowledge base may inadvertently alter the wrong account. The patch would be weak. In normal information processing, of course, numbers such as bank account numbers are used to avoid this confusion. Consider those graphs in which every blank node is in fact unambiguously identified by one functional or inverse functional property. Further, that property is invariant under any changes represented by the deltas. The pattern for terms goes as follows: Given a background ontology W and a graph G, if a blank node b in G is the object of a triple whose subject v is functionally ground and whose predicate p is an owl:FunctionalProperty according to W, then v.p is a functional term label for b in G with respect to W. Likewise, v\uparrow q is a functional term label for b if q is an owl:InverseFunctionalProperty, b is the subject, and v is the object. Recursively, v is functionally ground if it is a name (URI or literal) or a bnode with a functional term label. ]] -- http://www.w3.org/DesignIssues/Diff the tutorial section on these path expressions is http://www.w3.org/2000/10/swap/doc/Shortcuts -- Dan Connolly, W3C http://www.w3.org/People/Connolly/ D3C2 887B 0F92 6005 C541 0875 0F91 96DE 6E52 C29E
Received on Monday, 11 July 2005 19:54:44 UTC