CS 6795 Semantic Web Techniques

Project 1: Modelling Semantic Search in j-DREW



Use the LP representation of RDF introduced in "Relationships Between Logic Programming and RDF" (http://www.dfki.uni-kl.de/~boley/rdfptalk.pdf ) to model a semantic search engine in j-DREW. For simplicity, let us initially only search for URIs uri01, uri02, ... as individual constants in j-DREW, and later – given a corresponding j-DREW extension – have these dereferenced to Web pages. Extend the bookstore examples or create your own e-business scenario for describing at least 20 URIs with Prolog facts such as location(uri01,fredericton), owns(uri01,uri02), etc. Try 'semantic queries' like location(What,fredericton), owns(What,uri02). Extend this by allowing RDF's multiple types via unary predicates such as in bookstore(uri01) and canadian(uri01). This allows semantic retrievals like bookstore(W), canadian(W), owns(W,uri02). Given the above, this finds the binding W = uri01. Extend this 'RDF level' with an 'RDFS level' by simulating an RDFS subclass relationship between types, e.g. representing "bookstore subClassOf shop", via a rule, e.g. shop(X) :- bookstore(X). Then try queries like shop(W), location(W,fredericton). Finally, simulate RDFS's subPropertyOf via rules. Test your Semantic Search Model with the 20-URI mini-Web scenario. Decide whether to use top-down or bottom-up j-DREW. Document queries and explain what aspects of a semantic search engine they are simulating. Show traces. In an appendix, list all your Prolog facts (for RDF) and rules (for RDFS).   



Maintained by Bruce Spencer