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
|