Search code examples
rdftriplestorepelletallegrograph

"Unsupported axiom" when using Pellet Reasoner on AllegroGraph RDF Triple Store


I created an RDF triple store in AllegroGraph. Now I want to run a reasoner on it using the Java API. I decided to use Pellet Reasoner (download-link). It works with the koala.owl (link).

When applying it to AllegroGraph triple store I get the following ERROR:

org.mindswap.pellet.jena.graph.loader.DefaultGraphLoader addUnsupportedFeature
WARNING: Unsupported axiom: Ignoring literal value used with ObjectProperty : 

What is the problem?

Thanks a lot!

EDIT

Actually I got the same problem with every triple in my database. (All of the triples were created in TopBraid Composer.)

A few more examples:

WARNING: Unsupported axiom: Ignoring triple with unknown property from RDF 
namespace: owl:M80x2 @rdf:majorDiameterMax 
"79.96"^^http://www.w3.org/2001/XMLSchema#string



WARNING: Unsupported axiom: Ignoring triple with unknown term from OWL 
namespace: owl:1102 @rdf:type owl:Part


WARNING: Unsupported axiom: Ignoring literal value used with ObjectProperty : 
http://www.ontologyportal.org/SUMO.owl#FrenchFrancCoin 
@http://www.ontologyportal.org/SUMO.owl#externalImage 
"http://upload.wikimedia.org/wikipedia/en/6/69/France_03.gif"^^xsd:anyURI

WARNING: Unsupported axiom: Ignoring triple with unknown term from OWL 
namespace: owl:SG_45 @rdf:type owl:Module

Solution

  • You get this warning because you are using literals as objects of triples that have an object property in the predicate position. When you write:

    sumo:FrenchFrancCoin  sumo:externalImage  "http://..."^^xsd:anyURI .
    

    you are saying that the external image of sumo:FrenchFrancCoin is the sequence of characters h, t, t, p, :, /, /, ... which is not an image. What you probably want to say is:

    sumo:FrenchFrancCoin  sumo:externalImage  <http://...> .
    

    that is, the image of sumo:FrrenchFrancCoin is the thing denoted by <http://...>, which is quite possibly an image, not a sequence of characters.

    Furthermore, you are using IRIs having the owl: namespace to define classes and instances, which is not allowed by the OWL 2 specification. All IRIs that start with the owl: prefix are in the reserved vocabulary of OWL 2 DL (the logic that Pellet reasons with). You must not use the reserved vocabulary to define classes, individuals, properties, datatypes, or ontologies.