18.10.2014 Views

An inference engine for RDF - Agfa

An inference engine for RDF - Agfa

An inference engine for RDF - Agfa

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>An</strong> <strong>inference</strong> <strong>engine</strong> <strong>for</strong> <strong>RDF</strong><br />

The Semantic Web is a very new field of research. This makes it necessary to<br />

test a lot in order to avoid ending with theoretic constructions that are not usable<br />

in daily practice. This makes testcases a very important subject.<br />

I will discuss here the most important testcases. Pieces of source code will be<br />

given in <strong>RDF</strong>Prolog syntax. The full original sources are given in appendix 3.<br />

5.17.2. Gedcom<br />

Gedcom is a system that was developed to provide a flexible, uni<strong>for</strong>m <strong>for</strong>mat <strong>for</strong><br />

exchanging computerized genealogical data. The gedcom testcase of De Roo<br />

[DEROO] gives a file with rules and file with facts. A query can then be done.<br />

This testcase is very good <strong>for</strong> testing a more complex chaining of rules; also <strong>for</strong><br />

testing with a large set of data.<br />

Example rule:<br />

gc:parent(Child, Parent),gc:sex(Parent, male) :> gc:father(Child, Parent).<br />

Two facts:<br />

gc:parent(frank, guido),gc:sex(guido, male).<br />

The query:<br />

gc:father(Who, guido)<br />

will give as solution:<br />

gc:father(frank, guido).<br />

5.17.3. The subClassOf testcase<br />

This testcase is an example where a general rule (with a variable predicate) will<br />

cause looping if there is no anti-looping mechanism available.<br />

It contains following facts and rules:<br />

a(rdfs:subClassOf, owl:TransitiveProperty)<br />

a(P, owl:TransitiveProperty), P(C1, C2), P(C2, C3) :> P(C1, C3).<br />

Given the facts:<br />

rdfs:subClassOf (mammalia, vertebrae).<br />

rdfs:subClassOf (rodentia, mammalia)<br />

and the query:<br />

rdfs:subClassOf(What, vertebrae).<br />

The result will be:<br />

rdfs:subClassOf(mammalia, vertebrae).<br />

rdfs:subClassOf(rodentia, vertebrae).<br />

5.17.4. <strong>An</strong> Alpine club<br />

Following example was taken from [CLUB].<br />

Brahma, Vishnu and Siva are members of an Alpine club.<br />

102

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!