packages-semweb icon indicating copy to clipboard operation
packages-semweb copied to clipboard

Reimplement RDFS module using sound backward chaining

Open wouterbeek opened this issue 9 years ago • 0 comments

Made a first attempt that is not very performant. There seems to be some looping.

Proposed API:

  • rdf_mt(?S, ?P, ?O)
  • rdf_mt(?S, ?P, ?O, -Tree)
  • rdf_property(?P)
  • rdfs_class(?C)
  • rdfs_instance(?I, ?C)
  • rdfs_property(?P)
  • rdfs_subclass(?C, ?D)
  • rdfs_subproperty(?P, ?Q)

Improvements WRT rdfs.pl:

  • rdf_mt/3 allows all entailment results to be generated, not only sublclass, subproperty and instanace relations. (The class/property/instance predicates are all implemented as simple wrappers of rdf_mt/3.)
  • rdf_mt/4 gives a proof tree for each match.
  • Rename "individual" -> "instance"
  • rdfs:domain and rdfs:range are not used by the instance-of relation.
  • Interactions between rdfs:subPropertyOf are other entailment rules are not supported.

Two possible solutions for the looping:

  • Tabling
  • TMS

wouterbeek avatar May 27 '16 13:05 wouterbeek