You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jena.apache.org by Ján Mojžiš <ja...@gmail.com> on 2011/10/20 12:41:23 UTC

select coauthors

Hi there,
I have a following-type records:

<rdf:Description
rdf:about="http://www.w3.org/TR/xquery"><dc:identifier>www/org/w3/TR/xquery</dc:identifier><dc:date>2002-01-03</dc:date><rdf:type
rdf:resource="http://sw.deri.org/~aharth/2004/07/dblp/dblp.owl#Www"/>
<editor><foaf:Person rdf:nodeID="DonaldDChamberlin"><foaf:name>Donald D.
Chamberlin</foaf:name></foaf:Person></editor>
<editor><foaf:Person rdf:nodeID="DanielaFlorescu"><foaf:name>Daniela
Florescu</foaf:name></foaf:Person></editor>
<editor><foaf:Person rdf:nodeID="JonathanRobie"><foaf:name>Jonathan
Robie</foaf:name></foaf:Person></editor>
<editor><foaf:Person
rdf:nodeID="J&#xE9;r&#xF4;meSim&#xE9;on"><foaf:name>J&#xE9;r&#xF4;me
Sim&#xE9;on</foaf:name></foaf:Person></editor>
<editor><foaf:Person rdf:nodeID="MugurStefanescu"><foaf:name>Mugur
Stefanescu</foaf:name></foaf:Person></editor>
<dc:title rdf:parseType="Literal">XQuery: A Query Language for
XML</dc:title>
<year>2001</year>

They are books or publications, where each one can have multiple authors
(co-authors).

First I search books based on foaf:person - one author. To get his
publications. My working query is:

PREFIX foaf:<http://xmlns.com/foaf/0.1/>
PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>    #type
PREFIX dc:<http://purl.org/dc/elements/1.1/>     # identifier, date,
creator, title
SELECT ?name ?title
 {
    ?s dc:title ?title.
    ?o foaf:name ?name.
    ?o foaf:name "Donald D. Chamberlin"
 }
LIMIT 5

It returns
------------------------------------------------------------------------------------------------------
| name                   |
title
======================================================================================================
| "Donald D. Chamberlin" | "PRPL: A Database Workload Specification
Language, v1.3."^^rdf:XMLLiteral
| "Donald D. Chamberlin" | "Efficient View Maintenance at Data
Warehouses."^^rdf:XMLLiteral
| "Donald D. Chamberlin" | "Self-organizing
Map"^^rdf:XMLLiteral
| "Donald D. Chamberlin" | "Beowulf Project at
CESDIS"^^rdf:XMLLiteral
| "Donald D. Chamberlin" | "The MPEG Home
Page"^^rdf:XMLLiteral
------------------------------------------------------------------------------------------------------

But also I want co-authors of each found match! NOW how to get co-authors? I
have spent many hours trying to get co-authors in single query, with no
success.
Please be so kind to help.

Many thanks
Jan

Re: select coauthors

Posted by Ján Mojžiš <ja...@gmail.com>.
Thank you again Brian.
>>Essentially you are doing two queries anyway, if this works.  Why does it
matter if you two queries or one?  Or is this an academic exercise?
No, I am just newbie lol..I learn how to do stuff for our team. I had a
speed performance issues, till I figured, that the order of statements in
query can have critical impact on speed.

Sincerely
Jan


2011/10/21 Brian McBride <br...@epimorphics.com>

>
>
> On 20/10/2011 14:31, Ján Mojžiš wrote:
>
>> thanx very much Brian!
>> I figured it out.
>>
> Excellent.
>
>  If you could tell me whether it is possible to get COUNT also.
>>
> Yes - see http://www.w3.org/TR/sparql11-**query/#aggregates<http://www.w3.org/TR/sparql11-query/#aggregates>
>
>
>   I mean, in
>> one query with SELECT something.
>> It doesnt need to be this query, just imaginary query, SELECT something,
>> and
>> get the count. I want to use it in conjunction with LIMIT. LIMIT to 10 for
>> instance and get the remaining COUNT (those that were not selected).
>>
> I don't know how to do that or if you can do that.  You may need two
> queries - one to get the first 10 results,
> and another  to count the total number of results if there are 10 or more.
>
> Hmm - maybe you could express it with two subselects:
>
> SELECT ?some ?all
> WHERE {
>    # count all the results
>    SELECT COUNT(?all) AS ?totalCount
>    WHERE {
>       # select the things you wish to count as ?all
>    }
>
>    # get the first 10
>    SELECT ?some {
>        WHERE {
>            # select the things you wish to count as ?some
>         } limit 10
> }
>
> Essentially you are doing two queries anyway, if this works.  Why does it
> matter if you two queries or one?  Or is this an academic exercise?
> Brian
>
>  Would like to help, I am thankful.
>> Jan
>>
>> 2011/10/20 Brian McBride<br...@epimorphics.com>
>>
>>  So your query is:
>>>
>>> [[
>>>
>>>
>>> SELECT ?name ?title
>>>  {
>>>    ?s dc:title ?title.
>>>    ?o foaf:name ?name.
>>>    ?o foaf:name "Donald D. Chamberlin"
>>>  }
>>> LIMIT 5
>>>
>>> ]]
>>>
>>> That doesn't do what you think it does, because it does relate ?o to ?s.
>>> ?o
>>> can be anything with a foaf:name property of "Donald D. Chamberlin" and
>>> ?name will return all the values for the foaf:name property for that
>>> resource - there is only one - "Donald D. Chamberlin".
>>>
>>> What you need to do is get a query that will return the other authors of
>>> the publication, e.g.
>>>
>>> SELECT ?coauthorName ?title
>>> WHERE {
>>> ?author foaf:name "Donald D. Chamberlin" . # put first as its most
>>> restrictive
>>> ?publication<editor>  ?author . # now select all the publications with
>>> that
>>> author as editor
>>> # you didn't provide a namespace for the editor property
>>> ?title dc:title ?title # get the title of the publication
>>> ?publication<editor>  ?coauthor . # now find all the authors of that
>>> publication
>>> FILTER (?coauthor != ?author) # eliminate the original author specified
>>> ?coauthor foaf:name ?coauthorName # get the name of the coauthor
>>>
>>> # done
>>>
>>> }
>>>
>>> On 20/10/2011 11:41, Ján Mojžiš wrote:
>>>
>>>  Hi there,
>>>> I have a following-type records:
>>>>
>>>> <rdf:Description
>>>> rdf:about="http://www.w3.org/****TR/xquery<http://www.w3.org/**TR/xquery>
>>>> <http://www.w3.org/**TR/xquery <http://www.w3.org/TR/xquery>>
>>>> "><dc:identifier>www/**org/w3/**TR/xquery</dc:**
>>>> identifier><dc:date>2002-01-****03</dc:date><rdf:type
>>>> rdf:resource="http://sw.deri.****org/~aharth/2004/07/dblp/**
>>>> dblp.**owl#Www<http://sw.deri.**org/%7Eaharth/2004/07/dblp/**
>>>> dblp.owl#Www <http://sw.deri.org/%7Eaharth/2004/07/dblp/dblp.owl#Www>>
>>>> "/>
>>>> <editor><foaf:Person rdf:nodeID="DonaldDChamberlin"**
>>>> **><foaf:name>Donald
>>>> D.
>>>> Chamberlin</foaf:name></foaf:****Person></editor>
>>>> <editor><foaf:Person rdf:nodeID="DanielaFlorescu"><**
>>>> **foaf:name>Daniela
>>>> Florescu</foaf:name></foaf:****Person></editor>
>>>> <editor><foaf:Person rdf:nodeID="JonathanRobie"><****foaf:name>Jonathan
>>>> Robie</foaf:name></foaf:****Person></editor>
>>>> <editor><foaf:Person
>>>> rdf:nodeID="J&#xE9;r&#xF4;****meSim&#xE9;on"><foaf:name>J&#***
>>>> *xE9;r&#xF4;me
>>>> Sim&#xE9;on</foaf:name></foaf:****Person></editor>
>>>> <editor><foaf:Person rdf:nodeID="MugurStefanescu"><****foaf:name>Mugur
>>>> Stefanescu</foaf:name></foaf:****Person></editor>
>>>> <dc:title rdf:parseType="Literal">****XQuery: A Query Language for
>>>>
>>>> XML</dc:title>
>>>> <year>2001</year>
>>>>
>>>> They are books or publications, where each one can have multiple authors
>>>> (co-authors).
>>>>
>>>> First I search books based on foaf:person - one author. To get his
>>>> publications. My working query is:
>>>>
>>>> PREFIX foaf:<http://xmlns.com/foaf/0.****1/<http://xmlns.com/foaf/0.**1/>
>>>> <http://xmlns.com/foaf/0.**1/ <http://xmlns.com/foaf/0.1/>>>
>>>> PREFIX rdf:<http://www.w3.org/1999/****02/22-rdf-syntax-ns#<http://www.w3.org/1999/**02/22-rdf-syntax-ns#>
>>>> <http://**www.w3.org/1999/02/22-rdf-**syntax-ns#<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
>>>> >>
>>>>     #type
>>>> PREFIX dc:<http://purl.org/dc/****elements/1.1/<http://purl.org/dc/**elements/1.1/>
>>>> <http://purl.org/**dc/elements/1.1/ <http://purl.org/dc/elements/1.1/>
>>>> >>
>>>>
>>>>      # identifier, date,
>>>> creator, title
>>>> SELECT ?name ?title
>>>>  {
>>>>     ?s dc:title ?title.
>>>>     ?o foaf:name ?name.
>>>>     ?o foaf:name "Donald D. Chamberlin"
>>>>  }
>>>> LIMIT 5
>>>>
>>>> It returns
>>>> ------------------------------****----------------------------**--**
>>>> ------------------------------****------------
>>>> | name                   |
>>>> title
>>>> ==============================****============================**==**
>>>> ==============================****============
>>>>
>>>> | "Donald D. Chamberlin" | "PRPL: A Database Workload Specification
>>>> Language, v1.3."^^rdf:XMLLiteral
>>>> | "Donald D. Chamberlin" | "Efficient View Maintenance at Data
>>>> Warehouses."^^rdf:XMLLiteral
>>>> | "Donald D. Chamberlin" | "Self-organizing
>>>> Map"^^rdf:XMLLiteral
>>>> | "Donald D. Chamberlin" | "Beowulf Project at
>>>> CESDIS"^^rdf:XMLLiteral
>>>> | "Donald D. Chamberlin" | "The MPEG Home
>>>> Page"^^rdf:XMLLiteral
>>>> ------------------------------****----------------------------**--**
>>>> ------------------------------****------------
>>>>
>>>>
>>>> But also I want co-authors of each found match! NOW how to get
>>>> co-authors?
>>>> I
>>>> have spent many hours trying to get co-authors in single query, with no
>>>> success.
>>>> Please be so kind to help.
>>>>
>>>> Many thanks
>>>> Jan
>>>>
>>>>
>>>>

Re: select coauthors

Posted by Brian McBride <br...@epimorphics.com>.

On 20/10/2011 14:31, Ján Mojžiš wrote:
> thanx very much Brian!
> I figured it out.
Excellent.
> If you could tell me whether it is possible to get COUNT also.
Yes - see http://www.w3.org/TR/sparql11-query/#aggregates

>   I mean, in
> one query with SELECT something.
> It doesnt need to be this query, just imaginary query, SELECT something, and
> get the count. I want to use it in conjunction with LIMIT. LIMIT to 10 for
> instance and get the remaining COUNT (those that were not selected).
I don't know how to do that or if you can do that.  You may need two 
queries - one to get the first 10 results,
and another  to count the total number of results if there are 10 or more.

Hmm - maybe you could express it with two subselects:

SELECT ?some ?all
WHERE {
     # count all the results
     SELECT COUNT(?all) AS ?totalCount
     WHERE {
        # select the things you wish to count as ?all
     }

     # get the first 10
     SELECT ?some {
         WHERE {
             # select the things you wish to count as ?some
          } limit 10
}

Essentially you are doing two queries anyway, if this works.  Why does 
it matter if you two queries or one?  Or is this an academic exercise?
Brian

> Would like to help, I am thankful.
> Jan
>
> 2011/10/20 Brian McBride<br...@epimorphics.com>
>
>> So your query is:
>>
>> [[
>>
>>
>> SELECT ?name ?title
>>   {
>>     ?s dc:title ?title.
>>     ?o foaf:name ?name.
>>     ?o foaf:name "Donald D. Chamberlin"
>>   }
>> LIMIT 5
>>
>> ]]
>>
>> That doesn't do what you think it does, because it does relate ?o to ?s. ?o
>> can be anything with a foaf:name property of "Donald D. Chamberlin" and
>> ?name will return all the values for the foaf:name property for that
>> resource - there is only one - "Donald D. Chamberlin".
>>
>> What you need to do is get a query that will return the other authors of
>> the publication, e.g.
>>
>> SELECT ?coauthorName ?title
>> WHERE {
>> ?author foaf:name "Donald D. Chamberlin" . # put first as its most
>> restrictive
>> ?publication<editor>  ?author . # now select all the publications with that
>> author as editor
>> # you didn't provide a namespace for the editor property
>> ?title dc:title ?title # get the title of the publication
>> ?publication<editor>  ?coauthor . # now find all the authors of that
>> publication
>> FILTER (?coauthor != ?author) # eliminate the original author specified
>> ?coauthor foaf:name ?coauthorName # get the name of the coauthor
>>
>> # done
>>
>> }
>>
>> On 20/10/2011 11:41, Ján Mojžiš wrote:
>>
>>> Hi there,
>>> I have a following-type records:
>>>
>>> <rdf:Description
>>> rdf:about="http://www.w3.org/**TR/xquery<http://www.w3.org/TR/xquery>
>>> "><dc:identifier>www/**org/w3/TR/xquery</dc:**
>>> identifier><dc:date>2002-01-**03</dc:date><rdf:type
>>> rdf:resource="http://sw.deri.**org/~aharth/2004/07/dblp/dblp.**owl#Www<http://sw.deri.org/%7Eaharth/2004/07/dblp/dblp.owl#Www>
>>> "/>
>>> <editor><foaf:Person rdf:nodeID="DonaldDChamberlin"**><foaf:name>Donald
>>> D.
>>> Chamberlin</foaf:name></foaf:**Person></editor>
>>> <editor><foaf:Person rdf:nodeID="DanielaFlorescu"><**foaf:name>Daniela
>>> Florescu</foaf:name></foaf:**Person></editor>
>>> <editor><foaf:Person rdf:nodeID="JonathanRobie"><**foaf:name>Jonathan
>>> Robie</foaf:name></foaf:**Person></editor>
>>> <editor><foaf:Person
>>> rdf:nodeID="J&#xE9;r&#xF4;**meSim&#xE9;on"><foaf:name>J&#**xE9;r&#xF4;me
>>> Sim&#xE9;on</foaf:name></foaf:**Person></editor>
>>> <editor><foaf:Person rdf:nodeID="MugurStefanescu"><**foaf:name>Mugur
>>> Stefanescu</foaf:name></foaf:**Person></editor>
>>> <dc:title rdf:parseType="Literal">**XQuery: A Query Language for
>>> XML</dc:title>
>>> <year>2001</year>
>>>
>>> They are books or publications, where each one can have multiple authors
>>> (co-authors).
>>>
>>> First I search books based on foaf:person - one author. To get his
>>> publications. My working query is:
>>>
>>> PREFIX foaf:<http://xmlns.com/foaf/0.**1/<http://xmlns.com/foaf/0.1/>>
>>> PREFIX rdf:<http://www.w3.org/1999/**02/22-rdf-syntax-ns#<http://www.w3.org/1999/02/22-rdf-syntax-ns#>>
>>>      #type
>>> PREFIX dc:<http://purl.org/dc/**elements/1.1/<http://purl.org/dc/elements/1.1/>>
>>>       # identifier, date,
>>> creator, title
>>> SELECT ?name ?title
>>>   {
>>>      ?s dc:title ?title.
>>>      ?o foaf:name ?name.
>>>      ?o foaf:name "Donald D. Chamberlin"
>>>   }
>>> LIMIT 5
>>>
>>> It returns
>>> ------------------------------**------------------------------**
>>> ------------------------------**------------
>>> | name                   |
>>> title
>>> ==============================**==============================**
>>> ==============================**============
>>> | "Donald D. Chamberlin" | "PRPL: A Database Workload Specification
>>> Language, v1.3."^^rdf:XMLLiteral
>>> | "Donald D. Chamberlin" | "Efficient View Maintenance at Data
>>> Warehouses."^^rdf:XMLLiteral
>>> | "Donald D. Chamberlin" | "Self-organizing
>>> Map"^^rdf:XMLLiteral
>>> | "Donald D. Chamberlin" | "Beowulf Project at
>>> CESDIS"^^rdf:XMLLiteral
>>> | "Donald D. Chamberlin" | "The MPEG Home
>>> Page"^^rdf:XMLLiteral
>>> ------------------------------**------------------------------**
>>> ------------------------------**------------
>>>
>>> But also I want co-authors of each found match! NOW how to get co-authors?
>>> I
>>> have spent many hours trying to get co-authors in single query, with no
>>> success.
>>> Please be so kind to help.
>>>
>>> Many thanks
>>> Jan
>>>
>>>

Re: select coauthors

Posted by Ján Mojžiš <ja...@gmail.com>.
thanx very much Brian!
I figured it out.

If you could tell me whether it is possible to get COUNT also. I mean, in
one query with SELECT something.
It doesnt need to be this query, just imaginary query, SELECT something, and
get the count. I want to use it in conjunction with LIMIT. LIMIT to 10 for
instance and get the remaining COUNT (those that were not selected).

Would like to help, I am thankful.
Jan

2011/10/20 Brian McBride <br...@epimorphics.com>

> So your query is:
>
> [[
>
>
> SELECT ?name ?title
>  {
>    ?s dc:title ?title.
>    ?o foaf:name ?name.
>    ?o foaf:name "Donald D. Chamberlin"
>  }
> LIMIT 5
>
> ]]
>
> That doesn't do what you think it does, because it does relate ?o to ?s. ?o
> can be anything with a foaf:name property of "Donald D. Chamberlin" and
> ?name will return all the values for the foaf:name property for that
> resource - there is only one - "Donald D. Chamberlin".
>
> What you need to do is get a query that will return the other authors of
> the publication, e.g.
>
> SELECT ?coauthorName ?title
> WHERE {
> ?author foaf:name "Donald D. Chamberlin" . # put first as its most
> restrictive
> ?publication <editor> ?author . # now select all the publications with that
> author as editor
> # you didn't provide a namespace for the editor property
> ?title dc:title ?title # get the title of the publication
> ?publication <editor> ?coauthor . # now find all the authors of that
> publication
> FILTER (?coauthor != ?author) # eliminate the original author specified
> ?coauthor foaf:name ?coauthorName # get the name of the coauthor
>
> # done
>
> }
>
> On 20/10/2011 11:41, Ján Mojžiš wrote:
>
>> Hi there,
>> I have a following-type records:
>>
>> <rdf:Description
>> rdf:about="http://www.w3.org/**TR/xquery <http://www.w3.org/TR/xquery>
>> "><dc:identifier>www/**org/w3/TR/xquery</dc:**
>> identifier><dc:date>2002-01-**03</dc:date><rdf:type
>> rdf:resource="http://sw.deri.**org/~aharth/2004/07/dblp/dblp.**owl#Www<http://sw.deri.org/%7Eaharth/2004/07/dblp/dblp.owl#Www>
>> "/>
>> <editor><foaf:Person rdf:nodeID="DonaldDChamberlin"**><foaf:name>Donald
>> D.
>> Chamberlin</foaf:name></foaf:**Person></editor>
>> <editor><foaf:Person rdf:nodeID="DanielaFlorescu"><**foaf:name>Daniela
>> Florescu</foaf:name></foaf:**Person></editor>
>> <editor><foaf:Person rdf:nodeID="JonathanRobie"><**foaf:name>Jonathan
>> Robie</foaf:name></foaf:**Person></editor>
>> <editor><foaf:Person
>> rdf:nodeID="J&#xE9;r&#xF4;**meSim&#xE9;on"><foaf:name>J&#**xE9;r&#xF4;me
>> Sim&#xE9;on</foaf:name></foaf:**Person></editor>
>> <editor><foaf:Person rdf:nodeID="MugurStefanescu"><**foaf:name>Mugur
>> Stefanescu</foaf:name></foaf:**Person></editor>
>> <dc:title rdf:parseType="Literal">**XQuery: A Query Language for
>> XML</dc:title>
>> <year>2001</year>
>>
>> They are books or publications, where each one can have multiple authors
>> (co-authors).
>>
>> First I search books based on foaf:person - one author. To get his
>> publications. My working query is:
>>
>> PREFIX foaf:<http://xmlns.com/foaf/0.**1/ <http://xmlns.com/foaf/0.1/>>
>> PREFIX rdf:<http://www.w3.org/1999/**02/22-rdf-syntax-ns#<http://www.w3.org/1999/02/22-rdf-syntax-ns#>>
>>     #type
>> PREFIX dc:<http://purl.org/dc/**elements/1.1/<http://purl.org/dc/elements/1.1/>>
>>      # identifier, date,
>> creator, title
>> SELECT ?name ?title
>>  {
>>     ?s dc:title ?title.
>>     ?o foaf:name ?name.
>>     ?o foaf:name "Donald D. Chamberlin"
>>  }
>> LIMIT 5
>>
>> It returns
>> ------------------------------**------------------------------**
>> ------------------------------**------------
>> | name                   |
>> title
>> ==============================**==============================**
>> ==============================**============
>> | "Donald D. Chamberlin" | "PRPL: A Database Workload Specification
>> Language, v1.3."^^rdf:XMLLiteral
>> | "Donald D. Chamberlin" | "Efficient View Maintenance at Data
>> Warehouses."^^rdf:XMLLiteral
>> | "Donald D. Chamberlin" | "Self-organizing
>> Map"^^rdf:XMLLiteral
>> | "Donald D. Chamberlin" | "Beowulf Project at
>> CESDIS"^^rdf:XMLLiteral
>> | "Donald D. Chamberlin" | "The MPEG Home
>> Page"^^rdf:XMLLiteral
>> ------------------------------**------------------------------**
>> ------------------------------**------------
>>
>> But also I want co-authors of each found match! NOW how to get co-authors?
>> I
>> have spent many hours trying to get co-authors in single query, with no
>> success.
>> Please be so kind to help.
>>
>> Many thanks
>> Jan
>>
>>

Re: select coauthors

Posted by Brian McBride <br...@epimorphics.com>.
So your query is:

[[

SELECT ?name ?title
  {
     ?s dc:title ?title.
     ?o foaf:name ?name.
     ?o foaf:name "Donald D. Chamberlin"
  }
LIMIT 5

]]

That doesn't do what you think it does, because it does relate ?o to ?s. 
?o can be anything with a foaf:name property of "Donald D. Chamberlin" 
and ?name will return all the values for the foaf:name property for that 
resource - there is only one - "Donald D. Chamberlin".

What you need to do is get a query that will return the other authors of 
the publication, e.g.

SELECT ?coauthorName ?title
WHERE {
?author foaf:name "Donald D. Chamberlin" . # put first as its most 
restrictive
?publication <editor> ?author . # now select all the publications with 
that author as editor
# you didn't provide a namespace for the editor property
?title dc:title ?title # get the title of the publication
?publication <editor> ?coauthor . # now find all the authors of that 
publication
FILTER (?coauthor != ?author) # eliminate the original author specified
?coauthor foaf:name ?coauthorName # get the name of the coauthor

# done
}

On 20/10/2011 11:41, Ján Mojžiš wrote:
> Hi there,
> I have a following-type records:
>
> <rdf:Description
> rdf:about="http://www.w3.org/TR/xquery"><dc:identifier>www/org/w3/TR/xquery</dc:identifier><dc:date>2002-01-03</dc:date><rdf:type
> rdf:resource="http://sw.deri.org/~aharth/2004/07/dblp/dblp.owl#Www"/>
> <editor><foaf:Person rdf:nodeID="DonaldDChamberlin"><foaf:name>Donald D.
> Chamberlin</foaf:name></foaf:Person></editor>
> <editor><foaf:Person rdf:nodeID="DanielaFlorescu"><foaf:name>Daniela
> Florescu</foaf:name></foaf:Person></editor>
> <editor><foaf:Person rdf:nodeID="JonathanRobie"><foaf:name>Jonathan
> Robie</foaf:name></foaf:Person></editor>
> <editor><foaf:Person
> rdf:nodeID="J&#xE9;r&#xF4;meSim&#xE9;on"><foaf:name>J&#xE9;r&#xF4;me
> Sim&#xE9;on</foaf:name></foaf:Person></editor>
> <editor><foaf:Person rdf:nodeID="MugurStefanescu"><foaf:name>Mugur
> Stefanescu</foaf:name></foaf:Person></editor>
> <dc:title rdf:parseType="Literal">XQuery: A Query Language for
> XML</dc:title>
> <year>2001</year>
>
> They are books or publications, where each one can have multiple authors
> (co-authors).
>
> First I search books based on foaf:person - one author. To get his
> publications. My working query is:
>
> PREFIX foaf:<http://xmlns.com/foaf/0.1/>
> PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>     #type
> PREFIX dc:<http://purl.org/dc/elements/1.1/>      # identifier, date,
> creator, title
> SELECT ?name ?title
>   {
>      ?s dc:title ?title.
>      ?o foaf:name ?name.
>      ?o foaf:name "Donald D. Chamberlin"
>   }
> LIMIT 5
>
> It returns
> ------------------------------------------------------------------------------------------------------
> | name                   |
> title
> ======================================================================================================
> | "Donald D. Chamberlin" | "PRPL: A Database Workload Specification
> Language, v1.3."^^rdf:XMLLiteral
> | "Donald D. Chamberlin" | "Efficient View Maintenance at Data
> Warehouses."^^rdf:XMLLiteral
> | "Donald D. Chamberlin" | "Self-organizing
> Map"^^rdf:XMLLiteral
> | "Donald D. Chamberlin" | "Beowulf Project at
> CESDIS"^^rdf:XMLLiteral
> | "Donald D. Chamberlin" | "The MPEG Home
> Page"^^rdf:XMLLiteral
> ------------------------------------------------------------------------------------------------------
>
> But also I want co-authors of each found match! NOW how to get co-authors? I
> have spent many hours trying to get co-authors in single query, with no
> success.
> Please be so kind to help.
>
> Many thanks
> Jan
>