EYE

RDF Surfaces aka BLOGIC

The EYE reasoner provides an implementation of RDF Surfaces, a sublanguage of Notation3 to express a revised RDF logic as envisoned by Pat Hayes in his 2009 ISWC Invited Talk: BLOGIC.

RDF Surfaces provides the capabilities to:

In order to run a RDF Surfaces script the EYE reasoner needs to be started with the --no-bnode-relabeling command line option:

eye --quiet --nope --no-bnode-relabeling socrates.n3s

Note that for running RDF Surfaces scripts no query arguments need to be provided to the EYE reasoner. All queries are defined in the RDF surfaces language itself.

The listing socrates.n3s below implements the Socrate example in RDF surfaces:

@prefix log: <http://www.w3.org/2000/10/swap/log#>.
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix : <http://example.org/socrates#>.

:Socrates a :Human.
:Human rdfs:subClassOf :Mortal.

(_:S _:A _:B) log:onNegativeSurface {
    _:S a _:A .
    _:A rdfs:subClassOf _:B . 

    () log:onNegativeSurface {
        _:S a _:B .
    } .
} .

# Define what to send to the output
(_:S _:O) log:onNegativeSurface {
    _:S a _:O .
    (_:S _:O) log:onNegativeAnswerSurface {
        _:S a _:O .
    } .
} .

When running the EYE reasoner on this script the result should be:

@prefix log: <http://www.w3.org/2000/10/swap/log#>.
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix : <http://example.org/socrates#>.

:Socrates a :Human .
:Socrates a :Mortal .

More RDF Surfaces examples