---
name: "RDF::aREF::Query"
section: "3pm"
platform: "linux"
package: "librdf-aref-perl"
version: "0.28-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/RDF::aREF::Query"
---

# RDF::aREF::Query(3pm)

aREF query expression

## NAME

RDF::aREF::Query - aREF query expression

## SYNOPSIS

```
    my $rdf = {
        'http://example.org/book' => {
            dct_creator => [
                'http://example.org/alice',
                'http://example.org/bob'
            ]
        },
        'http://example.org/alice' => {
            foaf_name => "Alice"
        },
        'http://example.org/bob' => {
            foaf_name => "Bob"
        }
    };
    my $getnames = RDF::aREF::Query->new(
        query => 'dct_creator.foaf_name'
    );
    my @names = $getnames->apply( $rdf, 'http://example.org/boo' );
    $getnames->query; # 'dct_creator.foaf_name'
    use RDF::aREF qw(aref_query_map);
    my $record = aref_query_map( $rdf, $publication, {
        'dct_creator@' => 'creator',
        'dct_creator.foaf_name' => 'creator',
    });
```

## DESCRIPTION

Implements aREF query \<http://gbv.github.io/aREF/aREF.html#aref-query\>, a query language to access strings and nodes from agiven RDF graph.

See also functions `"aref_query"` and `"aref_query_map"` in RDF::aREF for convenient application.

## CONFIGURATION

The constructor expects the following options:

- query

  aREF query \<http://gbv.github.io/aREF/aREF.html#aref-query\> expression

- decoder

  Instance of RDF::aREF::Decoder to map qNames to URIs. A new instance is created unless given.

- ns

  Optional namespace map (RDF::NS), passed to the constructor of RDF::aREF::Decoder if no decoder is given.

## METHODS

## apply( $graph \[, $origin \] )

Perform the query on a given RDF graph. The graph can be given as aREF structure (subject map or predicate map) or as instance of RDF::Trine::Model. An origin subject node must be provided unless the RDF graph is provided as predicate map \<http://gbv.github.io/aREF/aREF.html#predicate-maps\>.

## query

Returns the aREF query expression

## SEE ALSO

Use SPARQL for more complex queries, e.g. with RDF::Trine::Store::SPARQL.
