- From: Sandro Hawke <sandro@w3.org>
- Date: Sat, 15 Dec 2001 16:55:20 -0500
- To: timbl@w3.org
- Cc: www-rdf-logic@w3.org
When I was writing my first n3 parser [1], I had it turn each { ... } structure (which you then called a Context and now call a Formula) into a Set of rdf:Statement objects, using an ontology for sets I made up. I no longer think that's quite the right modeling. Your current logic ontology [2] suggests the right thing is to use your log:conjunction predicate. You say its domain is a list of Formulas. (You call them "formulae," but I can't decide whether to say formulee or formuliy so I say formuluz.) If rdf:Statement is a subclass of log:Formula (as I think it ought to be), then we can simply say { <a> <b> <c>. } is an rdf:Statement with the usual rdf:subject, etc, information, and { <a> <b> <c>. <d> <e> <f>. } is the log:conjunction of a list of the two rdf:Statements given there. Is that what you had in mind? Does that seem right? The one odd thing I see is that log:conjunction doesn't assert its resulting formula, unlike log:implies. For them to match in style, it should be either # make a statement of implication, which is an unasserted object [ log:if { ... } log:then { ... } . ] or # assert all the statements in a list ( :stmt1, :stmt2 ) a log:trueConjunction. It's kind of a wash which way you go. "x={...}" lets you turn assertions back into an unasserted formula, and "x a log:Truth" lets you assert an unasserted formula. It just might be nice to have all the operators-on-formulas behave one way or the other. (This might help clear up some confusions [in my mind, at least] about log:forAll and log:forSome, too.) -- sandro [1] http://www.w3.org/2001/03/flaten3/ [2] http://www.w3.org/2000/10/swap/log
Received on Saturday, 15 December 2001 16:57:14 UTC