[Q to implementers] Equivalence between N3 formulas and Triple mo dels

Hello,

I'm working on the implementation of a query-engine/reasonner
in PHP. My reasonner now works quite well (I will announce the
soon to come release on this list).

In order to simplify the construction of the perspective (what
i take from the SW) to query, i use the concept of models.
There are two types of models:
	- metadata models (which are factual models)
	- rule set definitions instance models

Those last models are in fact instances of skolem models as
defined by Triple. Skolem models are forall quantified with
some model variables (the arguments). When you write rules
for a skolem model you may refers to what is asserted in the
arguments with the '@' operator.

I'm now looking for the equivalence between N3 formulas and
Triple skolem models, as i want to integrate a N3 parser.
It seems that the 'log:includes' property plays in N3 the
same role as the '@' operator in Triple. Am i wrong?

It also seems that i can quantify formulas with variables that
are also models.

My problem is how do i refer to the instanciation of a given
formula for some variables. The only mean i found is to create
a predicate that relates the input model and the ouput model.
Here is a simple example that copies all the statements:

<n3>
# The property to relates the two models

:modelCopy a rdf:Property.

# The model definition

{ this log:forAll :model, :modelWithMT.

	{
		{ this log:forAll :s, :p, :o.

			{ :model log:includes { :s :p :o } }
			log:implies { :modelCopy log:includes { :s :p :o } }
		}.
	}
	log:implies { :model :modelCopy :modelWithMT }
}

# An all-statements query

{ this log:forAll :s, :p, :o.
	{ [ is :modelCopy of [ is log:semantics of <toto.rdf>] ]
	  log:includes { :s :p :o }
	} log:implies { }
}
</n3>

Is this a correct peace of code ???
Thanks for your help. Didier.

Received on Tuesday, 11 June 2002 10:19:14 UTC