Yes, querying the DC identifier will work but I'd really prefer not to
build that assumption into my application.
One of the reasons I'm experimenting with FC's Resource Index Search API
is that iTQL has an *'order by'* clause unlike the REST API's
*'findObjects'* method. If the REST API provided an *'order by'* clause,
I probably wouldn't need to use iTQL.
Thanks for your suggestion, though.
Janna
Steve Bayliss wrote:
I think using
and $object <dc:identifier> 'demo*' in <#ri-fullText>
in the full-text part of your where clause should work (ie the
equivalent of has-pid is to search for the dc:identifier). Obviously
this depends on what values you are actually putting in dc:identifier
in the DC datastream; I'm assuming from your earlier examples that you
are just putting the PID in this field.
NB you need to make sure you have turned on full-text indexing.
-----Original Message-----
*From:* Janna Wemekamp [mailto:[email protected]]
*Sent:* 14 April 2009 02:20
*To:* Steve Bayliss
*Cc:* [email protected]; 'Gramsbergen, Egbert'
*Subject:* Re: [Fedora-commons-users] Questions re iTQL queries
involving PIDs
Hi all,
Thanks very much Steve; your comments did help!
I had mis-interpreted the Mulgara documentation on <mulgara:is>
which states that it requires a non-variable value as its object.
I had assumed the non-variable value had to be a literal.
(My apologies to Egbert who indicated that earlier.)
Still unresolved is the more general query I posed in the original
posting:
select $object, $label, $identifier
from <#ri>
where $object <fedora-model:label> $label
and $object <dc:identifier> $identifier
and $object <has_pid> 'demo*' in <#ri-fullText>
How does one specify the <has_pid> predicate/property in this query?
I suspect it's not possible - anyone able to confirm that?
Cheers!
Janna
Steve Bayliss wrote:
You've got a mistake still in your query
> /and $object <mulgara:is> 'info:fedora/demo:10' /
You should be specifying your Fedora object identifier as a URI,
not a literal, ie
//
/and $object <mulgara:is> <info:fedora/demo:10> /
There's no such thing as "the '$object' concept" - $object is
simply a variable; you can substitue $object with $x (or $pid)
and get the same results.
NB for debugging, it's sometimes useful to show all relationships
for a particular object, so that you can see what triples
actually exist whilst debugging a query, for this you can use
something like
select $s $p $o
from <#ri>
where
$s $p $o
and
$s <mulgara:is> <info:fedora/demo:10>
Hope that helps
Steve
-----Original Message-----
*From:* Janna Wemekamp [mailto:[email protected]]
*Sent:* 09 April 2009 04:31
*To:* Gramsbergen, Egbert
*Cc:* [email protected]
<mailto:[email protected]>
*Subject:* Re: [Fedora-commons-users] Questions re iTQL
queries involving PIDs
Thanks for the responses.
However, the query
/select $object $label $identifier $state
from <#ri>
where $object <fedora-model:label> $label
and $object <dc:identifier> $identifier
and $object <fedora-model:state> $state
and $object <mulgara:is> 'info:fedora/demo:10'/
doesn't return any results either. (Yes, there is an object
with pid demo:10.)
I'm beginning to wonder whether '$object' and 'pid' are
considered quite
different beasties by FedoraCommons even though they 'look'
the same in a query
result...
(And, I have read the documentation on the mulgara web-site
several times. It
doesn't define the '$object' concept.)
Cheers.
Janna Wemekamp
Gramsbergen, Egbert wrote:
Back to the original question: try with
$object <mulgara:is> <info:fedora/demo:10>
That should work.
Success,
Egbert Gramsbergen
-----Original Message-----
From: arne anka [mailto:[email protected]]
Sent: Wed 4/8/2009 12:37 PM
To: [email protected]
<mailto:[email protected]>
Subject: Re: [Fedora-commons-users] Questions re iTQL
queries involving PIDs
fighting with itql since yesterday again ...
> (1) The query:
>
> select $object from <#ri> where $object <mulgara:is>
'demo'
>
> returns a single element:
>
> <result>
> <object>demo</object>
> </result>
>
> even though there is no object in the repository with this
PID.
of course it does -- you defined that $object _is_ 'demo'.
so, that's what you get.
> I'd like to be able to issue queries like:
>
> select $object $label $identifier $state
> from <#ri>
> where $object <fedora-model:label> $label
> and $object <dc:identifier> $identifier
> and $object <fedora-model:state> $state
> and $object <mulgara:is> 'demo:10'
>
> This query returns no results even though the PID
'demo:10' exists.
> What am I doing wrong?
you never really got $object -- what you do is saying that
$object has the
model $label.
but since $label is never assigned a value ...
> (2) I'd also like to perform wild-card searches on PIDs;
for example
>
> select $object, $label, $identifier
> from <#ri>
> where $object <fedora-model:label> $label
> and $object <dc:identifier> $identifier
> and $object <has_pid> 'demo*' in <#ri-fullText>
>
> How does one specify the <has_pid> predicate/property in
this query?
you might be able to taht with 'having'
> The following works quite happily but I'd not like to
assume that the DC
> identifier always matched the PID.
>
> select $object $label $identifier
> from <#ri>
> where $object <fedora-model:label> $label
> and $object <fedora-model:ownerId> $ownerId
> and $object <dc:identifier> $identifier
> and $object <dc:identifier> 'demo*' in <#ri-fullText>
>
well, basically, $object should be your id -- what you are
doing wrong is
getting $object at all.
imo it has to go like that:
select $object $label $identifier from <#ri> where $object
<fedora-model:hasModel> <info:fedora/my:model> and ...
or for your label (untested) something like:
select $object $label $identifier from <#ri> where $object
<fedora-model:label> 'a label name' and ...
see http://docs.mulgara.org/itqlcommands/select.html
------------------------------------------------------------------------------
This SF.net email is sponsored by:
High Quality Requirements in a Collaborative Environment.
Download a free trial of Rational Requirements Composer Now!
http://p.sf.net/sfu/www-ibm-com
_______________________________________________
Fedora-commons-users mailing list
[email protected]
<mailto:[email protected]>
https://lists.sourceforge.net/lists/listinfo/fedora-commons-users
------------------------------------------------------------------------------
This SF.net email is sponsored by:
High Quality Requirements in a Collaborative Environment.
Download a free trial of Rational Requirements Composer Now!
http://p.sf.net/sfu/www-ibm-com
_______________________________________________
Fedora-commons-users mailing list
[email protected]
<mailto:[email protected]>
https://lists.sourceforge.net/lists/listinfo/fedora-commons-users
------------------------------------------------------------------------------
This SF.net email is sponsored by:
High Quality Requirements in a Collaborative Environment.
Download a free trial of Rational Requirements Composer Now!
http://p.sf.net/sfu/www-ibm-com
_______________________________________________
Fedora-commons-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/fedora-commons-users