Print

Print


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-blank-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