Menu

assertion of individuals, object- and data properties

Help
2016-06-21
2016-07-07
  • Stephan Lapoehn

    Stephan Lapoehn - 2016-06-21

    Hello Mikhail,

    thank you for your work on owlcpp. I try to use it for high frequent ABox
    reasoning (topic related to robotics). Therefore I need to

    a) load the ontology

    b) clean ABox
    c) add new instance, data-property and object-property assertion axioms
    d) classify / realize via fact++
    e) retrieve all individuals with the inferred assertions
    f ) return to b)

    a) and d) are covered by the tutorial article and work. I don't get b), c) and e) working. Could you show an example for them ? I'm using owlcpp v0.3.4 on Windows 7 x64, msvc10.

     
  • Stephan Lapoehn

    Stephan Lapoehn - 2016-07-01

    Hi,

    is there no way to accomplish this or is there already a documentation somewhere that I've missed ? I would really appreciate any help on this topic.

     
  • M Levin

    M Levin - 2016-07-05

    Hello Stephan,

    You can do b and c either by using owlcpp::Triple_store API (triples) or FaCT++ ReasoningKernel API (axioms).

    If you use Triple_store, see find_triple(), insert(), and erase() methods.

    For retrieving inferred individuals you will have to use the ReasoningKernel API (FaCT++-src-v1.6.4/src/Kernel/Kernel.h).

    Best

    Mikhail

     
    • Yves Teissier

      Yves Teissier - 2017-10-05

      Hi Mikhail,

      Are there example of usage of FaCT++ for inferred triple retreiving ?
      I saw the Kernel class. But I don't know exactly how to retreive inferred triple after ontology submission.
      My ontology is consistent and all classes are satisfiables. FaCT++ have generated some axioms.

      Best regards,
      Yves

       
  • Stephan Lapoehn

    Stephan Lapoehn - 2016-07-07

    Hello Mikhail,

    thank you for pointing me to the this direction. I don't know much about the conversion of triples to axioms and worked with OWL API and Pellet before. I already tried some of the methods you mentioned. Some aspects were not clear to me, like the insertion of data properties.

    I tried this:
    owlcpp::Node_id subj = store.insert_node_iri(ontoPrefix + "#"+ peter);
    owlcpp::Node_id pred = store.insert_node_iri(ontoPrefix + "#"+ hasAge);
    owlcpp::Node_id obj = store.insert_node_iri("5^^xsd:integer"); // syntax correct ?

    After reading https://www.w3.org/TR/owl-mapping-to-rdf/#Parsing_of_Axioms I reckon that there is more to do (e.g. :x rdf:type owl:DatatypeProperty) to generate the desired axioms later. Currently it's hard to proof the correctness of the ontology after alteration, because there is no possibility to write the graph back to rdf/xml (and check with Protege).

    However, based on you comment it makes more sense to me to not add individuals and their props as triples that I convert to axioms later, but create the axioms directly with the ReasoningKernel API.

    Thank you a lot.

    regards,
    Stephan

     

Log in to post a comment.