RDFStore::Model - An implementation of the Model RDF API using tied hashes and implementing free-text search on literals
use RDFStore::NodeFactory; my $factory= new RDFStore::NodeFactory(); my $statement = $factory->createStatement( $factory->createResource('http://perl.org'), $factory->createResource('http://iscool.org/schema/1.0/','label'), $factory->createLiteral('Cool Web site') ); my $statement1 = $factory->createStatement( $factory->createResource("http://www.altavista.com"), $factory->createResource("http://pen.jrc.it/schema/1.0/','author'), $factory->createLiteral("Who? :-)") ); my $statement2 = $factory->createStatement( $factory->createUniqueResource(), $factory->createUniqueResource(), $factory->createLiteral("") ); use RDFStore::Model; my $model = new RDFStore::Model( Name => 'store', FreeText => 1 ); $model->add($statement); $model->add($statement1); $model->add($statement2); my $model1 = $model->duplicate(); print $model1->getDigest->equals( $model1->getDigest ); print $model1->getDigest->hashCode; my $found = $model->find($statement2->subject,undef,undef); my $found1 = $model->find(undef,undef,undef,undef,'Cool'); #free-text search on literals :) #get Statements foreach ( @{$found->elements} ) { print $_->getLabel(),"\n"; }; #or faster my $fetch; foreach ( @{$found->elements} ) { my $fetch=$_; #avoid too many fetches from RDFStore::Model::Statements print $fetch->getLabel(),"\n"; }; #or my($statements)=$found1->elements; for ( 0..$#{$statements} ) { print $statements->[$_]->getLabel(),"\n"; }; #get RDFNodes foreach ( keys %{$found->elements}) { print $found->elements->{$_}->getLabel(),"\n"; }; # set operations my $set = new RDFStore::Model( Name => 'setmodel' ); $set=$set->interset($other_model); $set=$set->unite($other_model); $set=$set->subtract($other_model);
An RDFStore::Model implementation using RDFStore(3) to store triplets.
The following methods construct/tie RDFStore::Model storages and objects:
Create an new RDFStore::Model object and tie up the RDFStore(3). The %whateveryoulikeit hash contains a set of configuration options about how and where store actual data.
Possible additional options are the following:
This is a label used to identify a Persistent storage by name. It might correspond to a physical file system directory containing the indexes DBs. By default if no Name option is given the storage is assumed to be in-memory (e.g. RDFStore::Storage::find method return result sets as in-memory models by default unless specified differently). For local persistent storages a directory named liek this option is created in the current working directory with mode 0666)
Sync the RDFStore::Model with the underling Data::MagciTie GDS after each add() or remove().
Enable free text searching on literals over a model (see find)
Digest(3) RDFStore(3) RDFStore::Digest::Digestable(3) RDFStore::Digest(3) RDFStore::RDFNode(3) RDFStore::Resource(3)
Alberto Reggiori <areggiori@webweaving.org>
2 POD Errors
The following errors were encountered while parsing the POD:
'=item' outside of any '=over'
You forgot a '=back' before '=head1'
To install RDFStore, copy and paste the appropriate command in to your terminal.
cpanm
cpanm RDFStore
CPAN shell
perl -MCPAN -e shell install RDFStore
For more information on module installation, please visit the detailed CPAN module installation guide.