- From: Ivan Herman <ivan@w3.org>
- Date: Thu, 17 Feb 2011 13:45:44 +0100
- To: Alexandre Bertails <bertails@w3.org>
- Cc: Juan Sequeda <juanfederico@gmail.com>, RDB2RDF WG <public-rdb2rdf-wg@w3.org>, "ericP@w3.org Prud'hommeaux" <ericp@w3.org>
- Message-Id: <E8D276FA-3469-4BAD-BBA9-3FE578E6E6F9@w3.org>
Hi Alex, On Feb 16, 2011, at 20:26 , Alexandre Bertails wrote: [snip] > I suggest you follow [2] instead of what you found in the current draft. > This is an updated version (far simpler and much more complete) and I'll > be happy to help you going through it. > > Alexandre Bertails. > > [2] http://www.w3.org/2011/02/16-DM-denotational-rdf-semantics I went through the text and found some issues in reading the text. They may come from my own non-understanding, though... See them below. There some undefined things at the 'bottom', so to say, but these can be completed easily, like the definition of url_encode. But, overall, it looks fairly complete to me and is certainly (in my view) publishing ready and worthwhile... Of course, what I did until now is to read through the stuff and, I think, I understand it. Next I should take some specific cases and run a mental program to see if it does what I think it does:-). Actually, the nice thing would be if somebody did _another_ implementation (hm, possibly not in scala:-) to prove that the definition is complete. No, I will not do this, I do not think I would have the time now:-) A specific technical question and this probably shows my lack of sql knowledge. The DM document talks about primary keys as possibly a multi-column primary keys (eg, section 2.2). Your description says primaryKey : Table → {s:Set(CandidateKey) | size(s) ≤ 1} ie, a specific primary key for a table cannot be multi-column, right? There seems to be a discrepancy. Small comments ============== There is a superfluous '(' in value : ({r:Row} → {a:ColumnName | a ∈ r} → CellValue ------------- There is no definition for LexicalValue in CellValue ::= LexicalValue | NULL and that also backfires in the definition of: lexicals : {r:Row} → List({a:ColumnName | a ∈ r}) → List(LexicalValue) ------------- I understand the intention, but I am not sure I fully understand the mathematical formalism in, say, references : {t:Table} → {r:Row | r ∈ t} → Set(ForeignKey) The formalism you use for accessor functions like bla : {a:Set1} → {b:Set2} seems to indicate that this is a function so that bla(a) yields b. But I am not sure what the value of references(t) is... Shouldn't it be references : {t:Table} → {r:Row | r ∈ t} → { f:Set(ForeignKey) | (cn,v) ∈ r | (cn,t1,c1) ∈ r} or something like that? (The same issue with 'lexicals' and 'scalars'.) --------------- It is a notational thing, but the usage of '+' is a bit strange to me in ⟦r⟧ row φ. Instead of +, wouldn't it be cleaner to use a set union for {(s, rdf:type, ue(tablename(table(r))))} --------------- In the definition of ⟦r, fk⟧ ref φ you refer to the function 'dereference', but that is not defined anywhere else. I did not spend time to try to reproduce the definition... IN the same function you also refer to let p = ⟦table(r), pk⟧col but what is 'pk' here? ---- Ivan Herman, W3C Semantic Web Activity Lead Home: http://www.w3.org/People/Ivan/ mobile: +31-641044153 PGP Key: http://www.ivan-herman.net/pgpkey.html FOAF: http://www.ivan-herman.net/foaf.rdf
Attachments
- application/pkcs7-signature attachment: smime.p7s
Received on Thursday, 17 February 2011 12:44:49 UTC