- From: Eric Prud'hommeaux <eric@w3.org>
- Date: Mon, 22 Dec 2008 21:26:34 -0500
- To: Stasinos Konstantopoulos <konstant@iit.demokritos.gr>
- Cc: Phil Archer <phil@philarcher.org>, Bjoern Hoehrmann <derhoermi@gmx.net>, Public POWDER <public-powderwg@w3.org>, Ivan Herman <ivan@w3.org>, Ralph Swick <swick@w3.org>
- Message-ID: <20081223022634.GH5544@w3.org>
* Stasinos Konstantopoulos <konstant@iit.demokritos.gr> [2008-12-21 07:14+0200] > > On Dec 20, 2008, at 6:38 PM, Eric Prud'hommeaux wrote: > >> * Stasinos Konstantopoulos <konstant@iit.demokritos.gr> [2008-12-18 >> 08:06+0200] >>> >>> On Dec 16, 2008, at 8:13 PM, Eric Prud'hommeaux wrote: >>>> An unextended RDF parser, database, and SPARQL query engine can >>>> parse, >>>> store and return assertions like: >>>> _:redRestriction wdrs:matchesregex "^http://foo.example/ >>>> redStuff.*" . >>>> <http://foo.example/redStuff/redShoe> wdrs:matchesregex >>>> "^http://foo.example/redStuff.*" . >>> >>> Exactly. >>> >>>> Telling people that they require an extended RDF is misleading. >>> >>> Telling people otherwise would be misleading. The extension is >>> necessary >>> in order to >>> have the wdrs:matchesregex triples that the query engine or OWL >>> reasoner >>> will retrieve >>> and act upon. >> >> I'm not sure which of the following you are arguing: >> 1 "Extends RDF" could not be interpreted as "extends the RDF data >> model" >> 2 my proposed clarification is incorrect >> 3 my proposed clarification is not an improvement > > #2 OK, here is the proposed wording: "POWDER-S uses an <a href= "http://www.w3.org/TR/2004/REC-owl-semantics-20040210/syntax.html#owl_DatatypeProperty_syntax" >OWL DatatypeProperty</a> to relate a resource to a regular expression which that resource matches. While POWDER-S uses OWL classes to group resources, any engine determining if a resource belonged in one of these OWL classes would need to be able to test a resource against a regular expression." What are you arguing is incorrect? >>> Note how in Section 4.3 of the Formal doc a pair <u,re> >>> is >>> in the >>> extension of wdrs:matchesregex IFF the string representation of the >>> IRI >>> identifier of >>> resource <u> matches regular expression <re>; there is no requirement >>> that anything >>> has been explicitly asserted for wdrs:matchesregex to have <u,re> in >>> its >>> extension. >>> >>> Of course one is welcome to manually assert wdrs:matchesregex >>> triples, >>> as long as >>> this is done consistently with the requirements of the definition in >>> Section 4.3. In this >>> case one has become a wetware implementation of the extension. >> >> I was just pointing out that the expression of the restriction, as >> well >> as its conclusions, are compatible with the conventional RDF data >> model. > > Of course they are; we are extending RDF rather than replacing it. > > POWDER-S is valid RDF, but only extended RDF machinery will get the > full meaning of POWDER-S documents. Vanilla RDF machinery will > get the bits that use rdf: vocabulary but loose the meaning of the wdrs: > vocabulary that establishes the connection between a resource and the > regexps that match (or do not match) the string representation of its > reference. > > Machinery further up the application stack (RDFS and OWL reasoners) > can remain happily ignorant about what's happening underneath. Ahh, I believe it is customary to treat DatatypeProperies like wdrs:matchesregex or my:isEvenInteger as extensions to the inference layer. >>>> I also noticed >>>> <owl:intersectionOf rdf:parseType="Collection"> >>>> <owl:Restriction> >>>> ... >>>> </owl:Restriction> >>>> </owl:intersectionOf> >>>> >>>> which is an intersection of one class. How about this instead? >>>> >>>> <owl:Restriction> >>>> ... >>>> </owl:Restriction> >>> >>> The two are semantically equivalent, and the Formal doc explicitly >>> allows your implementation >>> to use either or any other syntactic variation. >> >> Equivalent, sure, but it's distracting for the reader because the >> they start looking for an intersection where there is none, and. > > As already noted, there are good technical reasons for this > inconvenience. The main reason I see for this is that the xml representation expresses intersections, but not other logical constructs such as unions or complements. I expect this represents the far majority of use cases, as regular expressions can already express both unions and if you feel like compiling them into a regex, complements. Thus, all patterns can be reduced to a pure conjunction, so there's less pressure for working group to include a step for simplification. > The reader is warned in Section 3.1 [1], right after the first > occurrence of > a singleton intersection. > >> Concearned that some OWL implementations may not be complete with >> respect to this corner case, I found that that Positive Entailment >> Test 006 >> http://www.w3.org/TR/owl-test/byFunction#cardinality-006 >> has a conclusion >> http://www.w3.org/2002/03owlt/cardinality/conclusions006 >> with a single constraint (a restriction) inside an intersectionOf. >> That's something I'd stick in an issues list as it's the sort of >> issue that others may raise. > > My turn to not be sure what it is you're arguing; surely appearing in > the conclusions of a positive entailment test cannot mean that a > construct is not supported. I was just thinking that these details could go into an issues list. As editor, I found the value of the issues list was not just to document outstanding issues, but to serve as a bit of a FAQ. It's possible that others besides me will be struck by the complexity and search for the design decision. > Either way, OWL syntax explicitly permits zero or more arguments > for intersectionOf [2]: > > description ::= classID > | restriction > | 'unionOf(' { description } ')' > | 'intersectionOf(' { description } ')' > | 'complementOf(' description ')' > | 'oneOf(' { individualID } ')' > > OWL semantics [3] seems to require one or more arguments for something > like EC(c_1) \cup ... \cup EC(c_n) to be meaningful, but I see no > requirement > that n > 1. I agree with this, just wanted to write your point down somewhere. >> Is this actually a "reference implementation", does it provide the >> authoritative record of the transformation of the algorithm? I think >> that means that all implementations have to be bug-compatible, which >> is unusual. I assume then that any algorithm expressed in words would >> be not significantly clearer than powderBase2powderS. I suppose that >> errata and updates can apply just as well to the XSLT code. I wish >> you good luck and an easy path. > > We consider singleton intersections neither a bug nor an error in the > document, > but a design choice and, in fact, a wise one. I'm not saying that this in particular is a bug, but that when you call something a "reference implementation", any other implementation must exhibit the same behavior, bugs included. > But, since you asked, only the text is normative. The XSLT scripts are > consistent > with the normative text in this document, but their syntactic specifics > are not > normative. Ahh, then I'd call it an "example implementation". > A POWDER processor MAY use different transforms to produce > syntactically different but semantically equivalent OWL/RDF [4]. > >> I wish you good luck and an easy path. > > cheers, > s > > > [1] http://www.w3.org/TR/2008/WD-powder-formal-20081114/#multiDRsemantics > [2] http://www.w3.org/TR/2004/REC-owl-semantics-20040210/syntax.html#2.3.2.2 > [3] http://www.w3.org/TR/owl-semantics/direct.html#description-interpretations > [4] http://www.w3.org/TR/2008/WD-powder-formal-20081114/#intro -- -eric office: +1.617.258.5741 32-G528, MIT, Cambridge, MA 02144 USA mobile: +1.617.599.3509 (eric@w3.org) Feel free to forward this message to any list for any purpose other than email address distribution.
Received on Tuesday, 23 December 2008 02:28:08 UTC