[Mulgara-general] Two Database instances in the same process?
Paul Gearon
gearon at ieee.org
Mon Sep 28 00:52:05 UTC 2009
On Sun, Sep 27, 2009 at 6:54 PM, Karsten Huneycutt <kph at skuld.us> wrote:
<snip/>
>> Unfortunately, no. It's mostly there, but there are a few static
>> variables that remain. I always wanted to fix this, but I've never
>> tried to track it all down, because until now no one ever asked for
>> it.
>
> If I have more time, I may try to track this down -- having two
> processes for this is really sub-optimal for my needs.
It would be much appreciated if you did. :-)
<snip/>
> I did it that way (staging entailments graph) because I wasn't sure if
> any invalid inferences would be removed from the entailments graph
> during the reasoning process -- eg, if the source graph contains:
>
> A subclassOf B
> A subclassOf C
> B subclassOf D
> C subclassOf E
>
> the reasoner would then assert in the entailments graph:
>
> A subclassOf D
> A subclassOf E
>
> If the original assertion A subclassOf C is removed from the source
> graph, would the reasoner remove A subclassOf E from the entailments
> graph without the entailments graph being cleared first?
No. RDF/RDFS/OWL are all monotonic, and the reasoner works with this
assumption. Of course, in reality we need to remove data, but the
reasoner is built around the theoretic framework rather than the
pragmatic.
> On another note, I'm seeing some weird behavior. I'm using rdfs-
> krule.rdf (with krule.owl), and the reasoner is asserting things like
>
> "literal value here"^^<xsd:string> rdf:type rdfs:Literal
> "literal value here"^^<xsd:string> rdf:type rdfs:Resource
>
> or
>
> "another literal"^^<xsd:string> rdf:type xsd:string
> "another literal"^^<xsd:string> rdf:type rdfs:Resource
>
> That's clearly not valid RDF, and is causing problems trying to get
> the data exported. Is that expected, or is there something in the
> source graphs that could be causing this? The same thing happens with
> rdfs.dl, too.
It's not *supposed* to happen, and it never used to. I'll check this out.
These things are in fact correct assertions. However, RDF has an
artificial restriction that literals cannot be subjects. (The
restriction comes about because it's not possible to encode literal
subjects in RDF/XML, which was the first dialect and had a lot of
influence over the design of RDF).
The reasoner is supposed to look for literal subjects and filter them
out (you might see rules in rdfs.dl which include ~Literal). I thought
it was working, but apparently something is wrong. I'll look at it
tomorrow.
Paul
More information about the Mulgara-general
mailing list