- 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