- From: Jindřich Mynarz <mynarzjindrich@gmail.com>
- Date: Fri, 20 Dec 2013 12:05:17 +0100
- To: Misty De Meo <mistydemeo@gmail.com>
- Cc: public-rdf-ruby@w3.org
- Message-ID: <CAE=8Bu_Z9rUieQ09_bhw+0q=hYB5cAJ3E0N+qY2OJMNbfexxnA@mail.gmail.com>
Hi Misty,
the solution would be to make each of the graph patterns optional (
http://www.w3.org/TR/sparql11-query/#optionals), which can be specified as
a param of the pattern method (
http://rubydoc.info/github/ruby-rdf/rdf/RDF/Query:pattern):
RDF::Query.new do
pattern [:concept, RDF.type, RDF::SKOS.Concept]
pattern [:concept, RDF::SKOS.prefLabel, :prefLabel]
pattern [:concept, RDF::SKOS.altLabel, :altLabel], optional: true
pattern [:concept, RDF::SKOS.broader, :broader], optional: true
pattern [:concept, RDF::SKOS.related, :related], optional: true
pattern [:concept, RDF::SKOS.scopeNote, :scopeNote], optional: true
end
If you don't want to enumerate all the optional properties a skos:Concept
might have, then you can retrieve them via SPARQL as well:
SELECT DISTINCT ?property
WHERE {
[] a skos:Concept ;
?property [] .
}
Then you can use the results to generate the above-mentioned query.
Best,
Jindřich
On Fri, Dec 20, 2013 at 5:08 AM, Misty De Meo <mistydemeo@gmail.com> wrote:
> Hi,
>
> I'm constructing a query to fetch SKOS concepts from a set of
> concepts. I'm looking to return each concept with all of its
> statements, e.g. prefLabel, altLabel, etc. I was using the following
> query, specifying the symbol mapping:
>
> RDF::Query.new concept: {
> RDF.type => RDF::SKOS.Concept,
> RDF::SKOS.prefLabel => :prefLabel,
> RDF::SKOS.altLabel => :altLabel,
> RDF::SKOS.broader => :broader,
> RDF::SKOS.related => :related,
> RDF::SKOS.scopeNote => :scopeNote
> }
>
> However, this only returns concepts which have *each* of those
> properties - it ignores, for example, concepts which have no `related`
> predicates. What would be the best query to use to fetch all concepts
> and their properties?
>
> Best,
> Misty De Meo
>
>
>
Received on Friday, 20 December 2013 11:06:08 UTC