class ForwardRuleReasonerEL extends TransitiveReasoner

This rule-based forward chaining reasoner implementation is based on the paper

'Pushing the EL envelope' by Baader, Brandt, Lutz. IJCAI. Vol. 5. 2005.

The paper does not cover the whole OWL 2 EL profile and makes some assumptions w.r.t. the allowed axioms. Given the set BC that contains

- owl:Thing - all concept names - all nominals { a } (with just one individual!) - concrete domain descriptions p(f1, ..., fk) (not used here)

The allowed general concept inclusions are the following (with C1, C2 \in BC, D \in BC \cup { owl:Nothin }):

- C1 \sqsubseteq D - C1 \sqcap C2 \sqsubseteq D - C1 \sqsubseteq \exists r.C2 - \exists r.C1 \sqsubseteq D

Role inclusions may be of the form

- r \sqsubseteq s , or - r1 o r2 \sqsubseteq s

We implemented the completion rules that were feasible in our setting.

Naming conventions: - C, C1, C2 --> class names, or nominals (with just one individual), or owl:Thing - D, D1, D2 --> class names, or nominals (with just one individual), owl:Thing, or owl:Nothing

Linear Supertypes
TransitiveReasoner, ForwardRuleReasoner, Profiler, Logging, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ForwardRuleReasonerEL
  2. TransitiveReasoner
  3. ForwardRuleReasoner
  4. Profiler
  5. Logging
  6. AnyRef
  7. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new ForwardRuleReasonerEL(sc: SparkContext, parallelism: Int = 2)

    sc

    The Spark context

    parallelism

    The degreee of parallelism (mainly used to derive the number of partitions for RDD.distinct(parallelism) calls)

Type Members

  1. case class Rule(name: String, getInferredTriples: (RDD[Triple]) ⇒ RDD[Triple]) extends Product with Serializable

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def addTransitivePairs[A, B](s: Set[(A, B)]): Set[(A, B)]
    Definition Classes
    TransitiveReasoner
  5. def apply(graph: RDFGraph): RDFGraph

    Applies forward chaining to the given RDF graph and returns a new RDF graph that contains all additional triples based on the underlying set of rules.

    Applies forward chaining to the given RDF graph and returns a new RDF graph that contains all additional triples based on the underlying set of rules.

    graph

    the RDF graph

    returns

    the materialized RDF graph

    Definition Classes
    ForwardRuleReasonerELTransitiveReasonerForwardRuleReasoner
  6. def apply(triples: RDD[Triple]): RDD[Triple]

    Applies forward chaining to the given RDD of RDF triples and returns a new RDD of RDF triples that contains all additional triples based on the underlying set of rules.

    Applies forward chaining to the given RDD of RDF triples and returns a new RDD of RDF triples that contains all additional triples based on the underlying set of rules.

    triples

    the RDF triples

    returns

    the materialized set of RDF triples

    Definition Classes
    ForwardRuleReasoner
  7. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  8. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native() @HotSpotIntrinsicCandidate()
  9. def computeTransitiveClosure(edges: Dataset[Triple]): Dataset[Triple]

    Computes the transitive closure for a Dataframe of triples

    Computes the transitive closure for a Dataframe of triples

    edges

    the Dataframe of triples

    returns

    a Dataframe containing the transitive closure of the triples

    Definition Classes
    TransitiveReasoner
  10. def computeTransitiveClosure[A](edges: RDD[(A, A)])(implicit arg0: ClassTag[A]): RDD[(A, A)]

    Computes the transitive closure for an RDD of tuples

    Computes the transitive closure for an RDD of tuples

    edges

    the RDD of tuples

    returns

    an RDD containing the transitive closure of the tuples

    Definition Classes
    TransitiveReasoner
  11. def computeTransitiveClosure(triples: RDD[Triple], predicate: Node): RDD[Triple]

    Computes the transitive closure for the given predicate on an RDD of triples.

    Computes the transitive closure for the given predicate on an RDD of triples.

    triples

    the RDD of triples

    predicate

    the predicate

    returns

    an RDD containing the transitive closure of the triples

    Definition Classes
    TransitiveReasoner
  12. def computeTransitiveClosure(triples: RDD[Triple]): RDD[Triple]

    Computes the transitive closure on an RDD of triples.

    Computes the transitive closure on an RDD of triples. Note, that the assumption is that all triples do have the same predicate.

    triples

    the RDD of triples

    returns

    an RDD containing the transitive closure of the triples

    Definition Classes
    TransitiveReasoner
  13. def computeTransitiveClosure(triples: Set[Triple]): Set[Triple]

    Computes the transitive closure on a set of triples, i.e.

    Computes the transitive closure on a set of triples, i.e. it is computed in-memory by the driver. Note, that the assumption is that all triples do have the same predicate.

    triples

    the set of triples

    returns

    a set containing the transitive closure of the triples

    Definition Classes
    TransitiveReasoner
  14. def computeTransitiveClosurePairs[A, B](s: Set[(A, B)]): Set[(A, B)]
    Definition Classes
    TransitiveReasoner
  15. def computeTransitiveClosureSemiNaive[A](edges: RDD[(A, A)])(implicit arg0: ClassTag[A]): RDD[(A, A)]

    Semi-naive computation of the transitive closure T for an RDD of tuples R=(x,y).

    Semi-naive computation of the transitive closure T for an RDD of tuples R=(x,y).

    (1) T = R
    (2) ∆T = R
    (3) while ∆T != ∅ do
    (4) ∆T = ∆T ◦ R − T
    (5) T = T ∪ ∆T
    (6) end
    edges

    the RDD of tuples (x,y)

    returns

    an RDD containing the transitive closure of the tuples

    Definition Classes
    TransitiveReasoner
  16. val cr1: Rule

    CR1: C1 \sqsubseteq C2, C2 \sqsubseteq D => C1 \sqsubseteq D

  17. val cr10: Rule

    CR10: C \sqsubseteq \exists r.D, r \sqsubseteq s => C \sqsubseteq \exists s.D

  18. val cr11: Rule

    CR11: C \sqsubseteq \exists r1.D, D \sqsubseteq \exists r2.E, r1 o r2 \sqsubseteq r3 => C \sqsubseteq \exists r3.E

  19. val cr2: Rule

    CR2: C \sqsubseteq C1, C \sqsubseteq C2, C1 \sqcap C2 \sqsubseteq D => C \sqsubseteq D

  20. val cr3: Rule

    CR3: C1 \sqsubseteq C2, C2 \sqsubseteq \exists r.D => C1 \sqsubseteq \exists r.D

  21. val cr4: Rule

    CR4: C \sqsubseteq \exists r.D, D \sqsubseteq D2, \exists r.D2 \sqsubseteq E => C \sqsubseteq E

  22. val cr5: Rule

    CR5: C\sqsubseteq \exists r.D, D \sqsubseteq owl:Noting => C \sqsubseteq owl:Nothing

  23. def debug(msg: ⇒ String, o: Any, os: Any*): Unit
    Definition Classes
    Logging
  24. def debug(msg: ⇒ String, e: Throwable): Unit
    Definition Classes
    Logging
  25. def debug(msg: ⇒ String): Unit
    Definition Classes
    Logging
  26. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  27. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  28. def error(msg: ⇒ String, o: Any, os: Any*): Unit
    Definition Classes
    Logging
  29. def error(msg: ⇒ String, e: Throwable): Unit
    Definition Classes
    Logging
  30. def error(msg: ⇒ String): Unit
    Definition Classes
    Logging
  31. def extractTriples(triples: RDD[Triple], subject: Option[Node], predicate: Option[Node], obj: Option[Node]): RDD[Triple]

    Extracts all triples that match the given subject, predicate and object if defined.

    Extracts all triples that match the given subject, predicate and object if defined.

    triples

    the RDD of triples

    subject

    the subject

    predicate

    the predicate

    obj

    the object

    returns

    the RDD of triples that match

    Definition Classes
    ForwardRuleReasoner
  32. def extractTriples(triples: RDD[Triple], predicate: Node): RDD[Triple]

    Extracts all triples for the given predicate.

    Extracts all triples for the given predicate.

    triples

    the RDD of triples

    predicate

    the predicate

    returns

    the RDD of triples that contain the predicate

    Definition Classes
    ForwardRuleReasoner
  33. def extractTriples(triples: Set[Triple], predicate: Node): Set[Triple]

    Extracts all triples for the given predicate.

    Extracts all triples for the given predicate.

    triples

    the triples

    predicate

    the predicate

    returns

    the set of triples that contain the predicate

    Definition Classes
    ForwardRuleReasoner
  34. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  35. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  36. def info(msg: ⇒ String, o: Any, os: Any*): Unit
    Definition Classes
    Logging
  37. def info(msg: ⇒ String, e: Throwable): Unit
    Definition Classes
    Logging
  38. def info(msg: ⇒ String): Unit
    Definition Classes
    Logging
  39. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  40. def log: Logger
    Attributes
    protected
    Definition Classes
    Logging
  41. def logName: String
    Attributes
    protected
    Definition Classes
    Logging
  42. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  43. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  44. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  45. val parallelism: Int
    Definition Classes
    TransitiveReasoner
  46. def profile[R](block: ⇒ R): R
    Definition Classes
    Profiler
  47. val properties: Seq[Node]
    Definition Classes
    TransitiveReasoner
  48. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  49. def toString(): String
    Definition Classes
    AnyRef → Any
  50. def trace(msg: ⇒ String, o: Any, os: Any*): Unit
    Definition Classes
    Logging
  51. def trace(msg: ⇒ String, e: Throwable): Unit
    Definition Classes
    Logging
  52. def trace(msg: ⇒ String): Unit
    Definition Classes
    Logging
  53. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  54. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  55. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  56. def warn(msg: ⇒ String, o: Any, os: Any*): Unit
    Definition Classes
    Logging
  57. def warn(msg: ⇒ String, e: Throwable): Unit
    Definition Classes
    Logging
  58. def warn(msg: ⇒ String): Unit
    Definition Classes
    Logging

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] ) @Deprecated @deprecated
    Deprecated

    (Since version ) see corresponding Javadoc for more information.

Inherited from TransitiveReasoner

Inherited from ForwardRuleReasoner

Inherited from Profiler

Inherited from Logging

Inherited from AnyRef

Inherited from Any

Ungrouped