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