Leonard; See http://workingontologist.org/
> i.e. reasoning with blank nodes and
restrictions via SPARQL
No such thing as reasoning with blank nodes.
Parsing through the bnode structure of the RDF representation of
OWL is an unfortunate complication. But in the end you can
substitute named nodes for all bnodes and the queries will be
exactly the same. The RDF representation of OWL uses bnodes
because each restriction is a unique entity, and creating a unique
name would be difficult and unnecessary.
OWL is just a small corner case for SPARQL and RDF. You'll rarely
see models that use such structures, unless they implement OWL.
-- Scott
On 7/5/11 9:41 PM, Leonard Jacuzzo wrote:
Dean,
I am honored by your response.
Is there a place where we can list errata in your second
edition?
Also, I was fairly disappointed by the paucity of this sort
of information, i.e., reasoning with blank nodes and
restrictions via SPARQL. It would have been a great edition to
the explanation of OWL that carried over from the first edition.
Other than that, it is the only book that is readily
understandable for a neophyte and has helped me a great deal.
Best wishes,
Leonard
On Tue, Jul 5, 2011 at 2:42 PM, Dean
Allemang <[email protected]>
wrote:
That blog entry was about owl 2 RL, not really any
other profile (not DL, either). I didn't really want to
look up which of DL, EL and QL supported this, but I was
sure Full did.
They are not available in OWL 2 RL, which is the point
of that article.
Sent from my iPhone
Hi Irene,
I was just looking over those helpful links.
In the second, I noticed that Dean seemed to be
asserting that using data range expressions is not
possible in Owl 2.
This is one passage I had in mind:
OWL-Full allows something called Data Range Expressions,
in which you can define a range to be a set of
values
Is it true that OWL2 DL does not provide for
these constructs? From what I was reading it
seemed that it did.
Best wishes,
Leonard
On Tue, Apr 19, 2011 at 3:56 PM, Irene Polikoff <[email protected]>
wrote:
Leonard,
A reasoner
that supports all of OWL 2 will be able
to make this inference. However, there
are serious performance issues with
supporting the entire spec. Because of
these issues, OWL 2 profiles we created.
Here is a link
to a presentation from Ian Horrocks that
goes into a lot of details about OWL 2 http://www.comlab.ox.ac.uk/ian.horrocks/Seminars/download/OWL2-overview.ppt.
I will point
out a couple of slides that are most
important to this discussion:
On slide 28,
you will see the following as a
motivation for defining profiles:
•
OWL
only useful in practice if we
can deal with large ontologies and/or
large data sets
•
Unfortunately,
OWL is worst case highly intractable
–
OWL
2 ontology satisfiability is 2NEXPTIME-complete
•
Possible
solution is profiles: language
subsets with useful computational
properties
•
OWL
defined one such profile: OWL Lite
–
Unfortunately,
it isn’t tractable either!
(EXPTIME-complete)
Slide 29 lists
the profiles defined for OWL 2:
•
OWL
2 defines three different tractable
profiles:
–
EL: polynomial
time reasoning for schema and data
•
Useful
for ontologies with large conceptual
part
–
QL: fast
(logspace) query answering using RDBMs
via SQL
•
Useful
for large datasets already stored in
RDBs
–
RL: fast
(polynomial) query answering using
rule-extended DBs
•
Useful
for large datasets stored as RDF triples
OWL RL and OWL
QL are recommended profiles for use when
you need to work with realistic
datasets.
We have
implemented OWL RL profile in SPIN.
Other people, such as Ontotext with
OWLIM, implemented OWL RL profile as
well.
But, reasoning
over mininclusive and maxinclusive is
not officially a part of OWL RL (or OWL
QL). I don’t believe this has to do with
the computational properties. Rather it
has to do with the type and extent of
reasoning that could be done once you
include mininclusive and maxinclusive
into a profile.
In any case,
since OWL RL is rules, you can extend
the standard OWL RL rule set to add a
rule to address the type of inference
you need.
Scott’s
suggestion is very specific to what you
are wanting to do with age. In addition
to it, here is a pretty detailed example
with screenshots showing how you can add
a more generic rule: http://dallemang.typepad.com/my_weblog/2010/08/extending-owl-rl-.html
Regards,
Irene Polikoff
However I
wonder, when you wrote that OWL
reasoners will not make this
inference, were you intending "No
OWL reasoner will make this
inference" or "No OWL reasoner
bundled with TBC will make this
inference"?
I ask because if
no OWL reasoners will make this
inference, then I am left wondering
why everyone is so geeked on OWL.
On Tue, Apr 19,
2011 at 1:06 AM, Scott Henninger
<[email protected]>
wrote:
Hello Leonard;
I'm not sure what was going on with
your model that had
it running for days at a time. I
expect you have something like the
following in the equivalentClass of
:child:
:hasAge some xsd:integer[>= 1 ,
<= 18]
...and want something like the
following to be classified as a
member
of :child:
:Mikey :hasAge "18"^^xsd:integer
I researched this a bit and have
concluded that OWL reasoners will
not
make that kind of inference. The
Pellet reasoner we have is old
(their license does not allow us to
include it in our distribution)
and OWLIM needs updating as well.
Bother are OWL 1.x reasoners. You
can get OWL 2 RL profile reasoning
by choosing the Profile tab in the
ontology home. Then configure
inference for TopSPIN. Again, the
above inference is not made with
this profile.
My suggestion is to use SPIN. This
is a SPARQL-based reasoner that
applies rules to all members of a
class and its subClassOf
entailments. The OWL 2 RL profile
is in fact specified by a set of
W3C rules implemented in SPARQL.
Then your problem becomes a simple
one. Create a model that imports
the spin.rdf ontology (New...
RDF/OWL/SPIN file) and define the
following rule for the Patients
class:
CONSTRUCT {?this a :child }
WHERE
{ ?this :hasAge ?age .
FILTER (?age >= 1 &&
?age <= 18)
}
This will infer members of :child
per your criteria. It really is a
higher-level than RDF and you can
guold other abstractions through
SPIN functions and templates, etc.
-- Scott
On Apr 18, 3:50 pm, Leonard
Jacuzzo <[email protected]>
wrote:
> Hello list,
>
> Thanks for all of your help
in the past.
>
> I have a question that is a
follow up to my question
regarding defining a
> class in terms of
restrictions using mininclusive,
max inclusive etc.
>
> I have created an ontology
that is meant to be useful for
determining
> whether or not a set of
individuals is a member of a
given class as well as
> which individuals are
members of which class.
>
> For example, Imagine that I
have a set of instance data
about a group of
> patients and I want to
determine which of those
patients are adults, which
> are children, which are
elderly etc. In this case I have
information about
> the ages of these patients
and I have an Ontology that
defines "adult",
> "child, "elder" etc. in
terms of restrictions on the
datatype property for
> "hasAge" in terms of
maxinclusive, mininclusive etc.
Basically, a child
> would be defined as a
person that hasAge some
minInclusive 1 and
> maxExclusive 18.
>
> So my question is, how can
I use the capability of TBC M.E.
to determine of
> a such a group of patients
which patients are instances of
which classes.
>
> I tried "inferencing" with
SWIFT OWLIM and it did not make
the inference. (I
> am certain that my OWL
_expression_ is correct, but I can
send an example if
> necessary)
>
> I tried Pellet and after
about 2days (using only 1
instance) I gave up. It
> got as far a "realizing"
after about a day and got 3/4s
of the way through
> realizing.
> I tried the built in Jena
reasoner and it hung up for an
hour while
> "querying triple 1240900"
So I shut it down.
>
> So I am wondering how does
one use native OWL logic to
perform such a feat?
>
> I am sure I can use a
SPARQL query, but I would like
to move beyond simple
> RDF and take advantage of
the capabilities of OWL.
>
> Maybe it is pointless?
>
> Any help will be greatly
appreciated.
>
> Best wishes,
> Leonard
--
You received this message because
you are subscribed to the Google
Group "TopBraid Suite Users", the
topics of which include TopBraid
Composer,
TopBraid Live, TopBraid Ensemble,
SPARQLMotion and SPIN.
To post to this group, send email to
[email protected]
To unsubscribe from this group, send
email to
[email protected]
For more options, visit this group
at
http://groups.google.com/group/topbraid-users?hl=en
--
--
--
--
You received this message because you are subscribed to the Google
Group "TopBraid Suite Users", the topics of which include TopBraid
Composer,
TopBraid Live, TopBraid Ensemble, SPARQLMotion and SPIN.
To post to this group, send email to
[email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/topbraid-users?hl=en
--
You received this message because you are subscribed to the Google
Group "TopBraid Suite Users", the topics of which include TopBraid Composer,
TopBraid Live, TopBraid Ensemble, SPARQLMotion and SPIN.
To post to this group, send email to
[email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/topbraid-users?hl=en
|