- From: Pierre-Yves Vandenbussche <pierre-yves.vandenbussche@mondeca.com>
- Date: Wed, 5 Aug 2009 17:48:33 +0200
- To: Danny Ayers <danny.ayers@gmail.com>
- Cc: semantic-web@w3.org
- Message-ID: <debd55cf0908050848s78b3233k57d6dadb56b18ec7@mail.gmail.com>
Thank you very much for your replies
If I try to summarize all possibilities I have, I discern 3 solutions in
order to express dynamic instances of a class based on a query:
1-define a dataitem to store the query, in any particular rule language.
Then we need to have a special reasoner / engine to execute this query to
obtain instances for this class
*assets*: full query expressivity (depending on rule language)
*drawbacks*: query as a literal is not understandable by a OWL reasoner.
2-define a complete class which by the mean of restrictions, union,
disjunctions, represent the query.
*assets*: rule is understood by the OWL resaoner.
*drawbacks*: query expressivity is limited by OWL expression.
3-refer to external resource which represent the result set constructed by
the query
*assets*: full query expressivity (depending on rule language)
*drawbacks*: query is not visible, no reasoning possible. Problem for
dynamic datasets
Thank you Alan for the syntax using OWL2. It exists a lot of romantic
composers between 1800 and 1900 (if someone interested, I give the SPARQL
query which corresponds to Alan class definition:
http://dbpedia.org/sparql
SELECT distinct ?x
WHERE
{
?c dbpprop:birthPlace ?x.
?c a <http://dbpedia.org/class/yago/RomanticComposers>.
?c dbpprop:birth ?b.
?c dbpprop:death ?d.
FILTER (?b >'1700'^^xsd:date).
FILTER (?d <'1900'^^xsd:date).
}
)
Pierre-Yves.
http://sites.google.com/site/pierreyvesvandenbussche/
On Wed, Aug 5, 2009 at 4:15 PM, Danny Ayers <danny.ayers@gmail.com> wrote:
> An alternative might be to put the query online, treat it as a
> resource, and give it a URI. If the dataset is constant then you could
> give the result set a URI.
>
> 2009/8/4 Pierre-Yves Vandenbussche <pierre-yves.vandenbussche@mondeca.com
> >:
> >
> > Hello,
> >
> > I'm currently working on dynamic collection definition and try to express
> it
> > in OWL format.
> >
> > I would like to specify a class for which all instances are defined in
> > intention by a query. The only way I found is to put a property "query"
> > which has a literal value and contained the query.
> > As far as i know, this representation, by the mean of OWL restriction, is
> > not possible (i may be wrong) .
> >
> > Example : The class of native places of 19th century romantic composers,
> as
> > retrieved by the following SPARQL Query on dbpedia
> >
> > SELECT ?x
> > WHERE
> > {
> > ?c dbpprop:birthPlace ?x.
> > ?c a <http://dbpedia.org/class/yago/RomanticComposers>.
> > ?c dbpprop:birth ?b.
> > ?c dbpprop:death ?d.
> > FILTER (?b > 1800)
> > FILTER (?d <1900)
> > }
> >
> >
> > Is there a way to define in OWL, membership of a class with a query ?
> >
> > Thank you,
> >
> > Pierre-Yves.
> >
>
>
>
> --
> http://danny.ayers.name
>
Received on Wednesday, 5 August 2009 15:49:33 UTC