packages-semweb
packages-semweb copied to clipboard
Reimplement RDFS module using sound backward chaining
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/3allows all entailment results to be generated, not only sublclass, subproperty and instanace relations. (The class/property/instance predicates are all implemented as simple wrappers ofrdf_mt/3.)rdf_mt/4gives a proof tree for each match.- Rename "individual" -> "instance"
rdfs:domainandrdfs:rangeare not used by the instance-of relation.- Interactions between
rdfs:subPropertyOfare other entailment rules are not supported.
Two possible solutions for the looping:
- Tabling
- TMS