Skip to content

Disallowing literals and blank nodes in predicate position makes logic incomplete #2

@doerthe

Description

@doerthe

By not allowing literals and blank nodes in predicate position we get the problem that the we can write rules and triples which in "traditional n3" get a result while in this implementation they don't.
Consider the triples:
:a :b "c". :a :b _:x.
and the rule
{:a ?b ?c}=>{?:a ?c ?b}.

This is all valid N3. But applying this rule to the triples would lead to
:a "c" :b. :a _:x :b.
Which could not be parsed by carl.

To guarantee that all output of EYE can be parsed by carl we either need to adapt the semantics of N3 as supported by the reasoner or allow those cases in carl.

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions