SUO: RE: Re: W3C approves RDF and OWL as recommendations
> In English, we have the word "parent", which we can
> use in talking about the set of parents. And we
> can add the preposition "of" to talk about the
> "parent of" relation. We do that with just one
> noun and the option of adding a preposition.
> We can use that same option with many other words,
> such as "child", "employee", "client", etc.
>
> That sounds rather simple. Why not do the same
> in our notations for logic?
My machine can already parse Notation 3, which uses simple position to
distinguish between subject, predicate and object. After the suggestion that
'parent' couldn't be used a property as well as a class in RDF, I couldn't
resist testing the theory.
So here's some knowledge (which I saved in the file bears.n3) :
-----------------------------------------------------------
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix olo: <http://obscure-low-ontology.org/ns#>.
@prefix owl: <http://www.w3.org/2002/07/owl#>.
# the class "parent"
olo:parent rdfs:subClassOf olo:Animal.
olo:parent owl:inverseOf olo:child.
# the relation "parent"
olo:parent a rdf:Property.
olo:parent rdfs:domain olo:Animal.
olo:parent rdfs:range olo:Animal.
# details of the bear family
:mother_bear a olo:parent.
:mother_bear olo:parent :baby_bear.
----------------------------------------
These statements are hypothetical (in ask.n3) :
--------------------------------------------------
@prefix olo: <http://obscure-low-ontology.org/ns#>.
:baby_bear a olo:Animal.
:baby_bear olo:child :mother_bear.
----------------------------------
I then ran Jos De Roo's Euler proof engine on these files, also providing
the facts and rules of RDF, RDFS and OWL at the same time :
C:\euler>java -cp . Euler --think owl-facts.n3 owl-rules.n3 rdfs-facts.n3
rdfs-r
ules.n3 rdf-rules.n3 bears.n3 ask.n3
the result trace is below, it ends:
# Proof found for file:/euler/ask.n3 in 370178 steps (60006 steps/sec) using
1 engine
In this case RDF/OWL has handled the same term used as a class and property
rather well.
Cheers,
Danny.
C:\euler>java -cp . Euler --think owl-facts.n3 owl-rules.n3 rdfs-facts.n3
rdfs-r
ules.n3 rdf-rules.n3 bears.n3 ask.n3
# Generated with http://www.agfa.com/w3c/euler/#R3680 on 16 Feb 2004
21:00:25 GM
T
{
(
<file:/euler/owl-facts.n3>.<http://www.w3.org/2000/10/swap/log#semantics>
<file:/euler/owl-rules.n3>.<http://www.w3.org/2000/10/swap/log#semantics>
<file:/euler/rdfs-facts.n3>.<http://www.w3.org/2000/10/swap/log#semantics>
<file:/euler/rdfs-rules.n3>.<http://www.w3.org/2000/10/swap/log#semantics>
<file:/euler/rdf-rules.n3>.<http://www.w3.org/2000/10/swap/log#semantics>
<file:/euler/bears.n3>.<http://www.w3.org/2000/10/swap/log#semantics>
).<http://www.w3.org/2000/10/swap/log#conjunction> =>
<file:/euler/ask.n3>.<http://www.w3.org/2000/10/swap/log#semantics>
}
<http://www.w3.org/2000/10/swap/reason#because>
{
@prefix ns3: <file:/euler/rdf-rules#>.
@prefix str: <http://www.w3.org/2000/10/swap/string#>.
@prefix ns0: <file:/euler/owl-rules#>.
@prefix olo: <http://obscure-low-ontology.org/ns#>.
@prefix ns2: <file:/euler/rdfs-rules#>.
@prefix xsd: <http://www.w3.org/2001/XMLSchema#>.
@prefix : <file:/euler/owl-facts#>.
@prefix log: <http://www.w3.org/2000/10/swap/log#>.
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix ns1: <file:/euler/rdfs-facts#>.
@prefix math: <http://www.w3.org/2000/10/swap/math#>.
@prefix mt: <http://www.w3.org/TR/rdf-mt/#>.
@prefix owl: <http://www.w3.org/2002/07/owl#>.
@prefix iw: <http://www.ksl.stanford.edu/software/IW/spec/iw#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
{
ns0:owl1i1 log:racine [iw:Variable "?LR"; = <file:/euler/owl-rules>].
[iw:Variable "?P"; = olo:parent] owl:inverseOf olo:child.
[iw:Variable "?S"; = ns3:mother_bear] [iw:Variable "?P"; = olo:parent]
[iw:Var
iable "?O"; = ns3:baby_bear]} =>
{ns3:baby_bear olo:child ns3:mother_bear}.
{
ns2:rdfs3 log:racine [iw:Variable "?LR"; = <file:/euler/rdfs-rules>].
[iw:Variable "?P"; = olo:parent] rdfs:range [iw:Variable "?C"; =
olo:Animal].
[iw:Variable "?S"; = ns3:mother_bear] [iw:Variable "?P"; = olo:parent]
[iw:Var
iable "?O"; = ns3:baby_bear]} =>
{ns3:baby_bear a olo:Animal}.
<file:/euler/owl-facts#m> <http://www.w3.org/2002/07/owl#sameAs>
<file:/euler/ow
l-facts#o>.
<file:/euler/owl-facts#j> <http://www.w3.org/2002/07/owl#sameAs>
<file:/euler/ow
l-facts#i>.
_:16795905_1 <http://www.w3.org/2002/07/owl#sameAs> _:11533424_1.
_:28904249_1 <http://www.w3.org/2002/07/owl#sameAs> _:31866429_1.
_:20876681_1 <http://www.w3.org/2002/07/owl#sameAs> _:16795905_1.
_:29240677_1 <http://www.w3.org/2002/07/owl#sameAs> _:28904249_1.
_:12115735_1 <http://www.w3.org/2002/07/owl#sameAs> _:23065739_1.
<file:/euler/owl-facts#n> <http://www.w3.org/2002/07/owl#sameAs>
<file:/euler/ow
l-facts#o>.
# Proof found for file:/euler/ask.n3 in 370178 steps (60006 steps/sec) using
1 e
ngine
}.