In this query you ask for the value of variable ?p, but there is no ?p in your expression. If you asked "SELECT ?s ?o", or simply "SELECT *", your query would return all nodes in the dataset that are linked with the bf:providerName predicate. In this particular example, it would return the URIs for _:genid4 and _:genid5.
Your first query should return the URI for _:genid4 as a value of the variable ?subject and the string "Morrow" as a value for the variable ?label. What happened when you ran it?
Asgeir Rekkavik
Deichmanske bibliotek
--
-----Opprinnelig melding-----
Fra: Bibliographic Framework Transition Initiative Forum [mailto:[log in to unmask]] På vegne av Karen Coyle
Sendt: 14. juli 2014 18:32
Til: [log in to unmask]
Emne: Re: [BIBFRAME] SPARQL question
WEll, duh, just try it (why didn't I think of that sooner?):
PREFIX bf: <http://bibframe.org/vocab/>
SELECT ?s ?p ?o
WHERE {
?s bf:providerName ?o .
}
They aren't bnodes.
kc
On 7/14/14, 8:59 AM, Karen Coyle wrote:
> Thanks, Kevin.
>
> Interestingly, it works on the file (which is the one I created....
> and you found) in RDF/XML, but after a Rapper transform to TTL or N3,
> it gets the same results that I get in Protege (no output). So now
> there's another factor: Rapper vs. Openlink transform to triples
> (since SPARQL goes against triples). I can't see the OPenlink
> documentation (I just get an error when I click on the links on that
> page - I guess you need to be a customer). I wonder if the Openlink
> transformation creates URIs rather than blank nodes as a way to
> facilitate searching?
>
> I guess another question is whether you intend for those to be blank
> nodes. Giving them an actual URI would avoid the blank node problems
> (which seem less evident in the XML form).
>
> kc
>
> On 7/14/14, 8:18 AM, Ford, Kevin wrote:
>> Dear Karen,
>>
>> Follow these steps:
>>
>>
>> 1) Go to this website:
>>
>> http://demo.openlinksw.com/sparql
>>
>>
>> 2) Enter this URL in the "Default Graph URI" field:
>>
>> http://bibframe.org/resources/Ahx1405278232/bibframe.rdf
>>
>>
>> 3) Paste (your) query into the "Query Text" field:
>>
>> PREFIX bf: <http://bibframe.org/vocab/>
>> SELECT ?subject ?label
>> WHERE {
>> ?subject bf:providerName ?bnode .
>> ?bnode bf:label ?label .
>> }
>>
>>
>> 4) Select "Run Query"
>>
>>
>> I get the expected results, so your SPARQL query seems fine (I merely
>> added a PREFIX declaration). Is it possible this is a problem
>> specific to Protege?
>>
>> Cordially,
>> Kevin
>>
>>
>> On 07/14/2014 10:52 AM, Karen Coyle wrote:
>>> I'm hoping someone on this list has the quick answer that will end
>>> my frustration ;-).
>>>
>>> I loaded some BIBFRAME records into Protege (desktop, 5.0, because
>>> earlier versions have problems in the RDF->OWL transform). I have
>>> this
>>> data:
>>>
>>> _:genid4 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
>>> <http://bibframe.org/vocab/Provider> .
>>> _:genid5 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
>>> <http://bibframe.org/vocab/Organization> .
>>> _:genid5 <http://bibframe.org/vocab/label> "Morrow" .
>>> _:genid4 <http://bibframe.org/vocab/providerName> _:genid5 .
>>> <http://bibframe.org/resources/Ahx1405278232/566369instance27>
>>> <http://bibframe.org/vocab/publication> _:genid4
>>>
>>> [more readable version]
>>>
>>> :instance27 bf:publication _:genid4 .
>>> _:genid4 bf:providerName _:genid5 .
>>> _:genid5 bf:label "Morrow" .
>>>
>>> I want to create a SPARQL query that will select the labels for
>>> bf:providerName. I thought it would be:
>>>
>>> SELECT ?subject ?label
>>> WHERE { ?subject bf:providerName ?bnode .
>>> ?bnode bf:label ?label . }
>>>
>>> But it turns out that this doesn't work. As I understand it, it is
>>> because blank nodes are "unnamed" and therefore do not identify a
>>> particular entity, and cannot be used more than once in a query. See:
>>> [1][2]
>>>
>>> I've hit a dead-end, but surely there is a solution -- possibly
>>> right in front of me but I'm not seeing it.
>>>
>>> Thanks,
>>> kc
>>>
>>>
>>> [1]
>>> http://answers.semanticweb.com/questions/1673/skolem-syntax-for-blan
>>> k-nodes-in-sparql
>>>
>>>
>>> [2]
>>> http://stackoverflow.com/questions/20629437/sparql-query-with-blank-
>>> node-can-be-complex
>>>
>>>
>>>
>
--
Karen Coyle
[log in to unmask] http://kcoyle.net
m: 1-510-435-8234
skype: kcoylenet
|