6 #ifndef KNOWROB_SEMWEB_PROPERTY_H 
    7 #define KNOWROB_SEMWEB_PROPERTY_H 
   13 #include "knowrob/terms/IRIAtom.h" 
   40     class Property : 
public Resource, 
public std::enable_shared_from_this<Property> {
 
   50         void addDirectParent(
const std::shared_ptr<Property> &directParent, std::optional<std::string_view> graph);
 
   56         void removeDirectParent(
const std::shared_ptr<Property> &directParent, std::optional<std::string_view> graph);
 
  121         bool isSubPropertyOf(
const std::shared_ptr<Property> &parent, 
bool includeSelf = 
true);
 
  163             bool operator()(
const std::shared_ptr<Property> &lhs, 
const std::shared_ptr<Property> &rhs) 
const;
 
  167         std::map<std::shared_ptr<Property>,
 
  168                 std::set<AtomPtr, AtomComparator>,
 
void removeDirectParent(const std::shared_ptr< Property > &directParent, std::optional< std::string_view > graph)
static knowrob::IRIAtomPtr unReifiedIRI(std::string_view iri)
bool isAnnotationProperty() const
Property(const IRIAtomPtr &iri)
bool isSymmetricProperty() const
void addDirectParent(const std::shared_ptr< Property > &directParent, std::optional< std::string_view > graph)
std::shared_ptr< Property > inverse_
bool hasFlag(PropertyFlag flag) const
static knowrob::IRIAtomPtr reifiedIRI(std::string_view iri)
bool isDatatypeProperty() const
bool isReflexiveProperty() const
const auto & directParents() const
std::shared_ptr< Class > reification_
bool isObjectProperty() const
void forallParents(const PropertyVisitor &visitor, bool includeSelf=true, bool skipDuplicates=true)
void setFlag(PropertyFlag flag)
std::set< std::shared_ptr< Property >, PropertyComparator > directChildren_
bool isSubPropertyOf(const std::shared_ptr< Property > &parent, bool includeSelf=true)
bool isTransitiveProperty() const
Property(std::string_view iri)
void setInverse(const std::shared_ptr< Property > &inverse)
void forallChildren(const PropertyTupleVisitor &visitor, bool skipDuplicates=true)
bool hasFlag(PropertyFlag flag) const
const auto & inverse() const
std::map< std::shared_ptr< Property >, std::set< AtomPtr, AtomComparator >, PropertyComparator > directParents_
FunctionRule & function()
const IRIAtomPtr Property
std::function< void(Property &)> PropertyVisitor
std::shared_ptr< Property > PropertyPtr
std::function< void(Property &, Property &)> PropertyTupleVisitor
std::shared_ptr< IRIAtom > IRIAtomPtr
bool operator()(const std::shared_ptr< Property > &lhs, const std::shared_ptr< Property > &rhs) const