public function testAttachValueNode()
 {
     $vocab = new RdfVocabulary('http://acme.com/item/', 'http://acme.com/data/');
     $snakWriter = new NTriplesRdfWriter();
     $snakWriter->prefix('www', "http://www/");
     $snakWriter->prefix(RdfVocabulary::NSP_CLAIM_VALUE, "http://acme/statement/value/");
     $snakWriter->prefix(RdfVocabulary::NS_VALUE, "http://acme/value/");
     $valueWriter = new NTriplesRdfWriter();
     $valueWriter->prefix(RdfVocabulary::NS_VALUE, "http://acme/value/");
     $valueWriter->prefix(RdfVocabulary::NS_ONTOLOGY, "http://acme/onto/");
     $helper = new ComplexValueRdfHelper($vocab, $valueWriter, new HashDedupeBag());
     // check we get the correct value writer
     $this->assertSame($valueWriter, $helper->getValueNodeWriter());
     $snakWriter->start();
     $snakWriter->about('www', 'Q1');
     $valueWriter->start();
     // attach a value node
     $value = new StringValue('http://en.wikipedia.org/wiki/Wikidata');
     $lvalue = $helper->attachValueNode($snakWriter, RdfVocabulary::NSP_CLAIM_STATEMENT, 'testing', 'DUMMY', $value);
     $this->assertEquals('e93b68fef814eb52e813bb72e6867432', $lvalue);
     // do it again, tests dedupe
     $snakWriter->about('www', 'Q2');
     $lvalue = $helper->attachValueNode($snakWriter, RdfVocabulary::NSP_CLAIM_STATEMENT, 'testing', 'DUMMY', $value);
     $this->assertNull($lvalue, 'lvalue produced by adding a value a second time should be null');
     // check the triples written to the snak writer
     $expected = array('<http://www/Q1> <http://acme/statement/value/testing> <http://acme/value/e93b68fef814eb52e813bb72e6867432> .', '<http://www/Q2> <http://acme/statement/value/testing> <http://acme/value/e93b68fef814eb52e813bb72e6867432> .');
     $this->helper->assertNTriplesEquals($expected, $snakWriter->drain());
     // check the triples written to the value writer
     $expected = '<http://acme/value/e93b68fef814eb52e813bb72e6867432> ' . '<http://www.w3.org/1999/02/22-rdf-syntax-ns#type> ' . '<http://acme/onto/StringValue> .';
     $this->helper->assertNTriplesEquals($expected, $valueWriter->drain());
 }
 /**
  * @dataProvider provideAddValue
  */
 public function testAddValue($typeBase, $typeLocal, PropertyValueSnak $snak, $expected)
 {
     $builder = new LiteralValueRdfBuilder($typeBase, $typeLocal);
     $writer = new NTriplesRdfWriter();
     $writer->prefix('www', "http://www/");
     $writer->prefix('acme', "http://acme/");
     $writer->prefix($typeBase, "http://{$typeBase}/");
     $writer->start();
     $writer->about('www', 'Q1');
     $builder->addValue($writer, 'acme', 'testing', 'DUMMY', $snak);
     $this->helper->assertNTriplesEquals($expected, $writer->drain());
 }
 public function testAddValue()
 {
     $vocab = new RdfVocabulary('http://test/item/', 'http://test/data/');
     $builder = new EntityIdRdfBuilder($vocab, new NullEntityMentionListener());
     $writer = new NTriplesRdfWriter();
     $writer->prefix('www', "http://www/");
     $writer->prefix('acme', "http://acme/");
     $writer->prefix(RdfVocabulary::NS_ENTITY, 'http://test/item/');
     $writer->start();
     $writer->about('www', 'Q1');
     $snak = new PropertyValueSnak(new PropertyId('P1'), new EntityIdValue(new ItemId('Q23')));
     $builder->addValue($writer, 'acme', 'testing', 'DUMMY', $snak);
     $expected = '<http://www/Q1> <http://acme/testing> <http://test/item/Q23> .';
     $this->helper->assertNTriplesEquals($expected, $writer->drain());
 }
 public function testAddValue()
 {
     $builder = new ObjectUriRdfBuilder();
     $writer = new NTriplesRdfWriter();
     $writer->prefix('www', "http://www/");
     $writer->prefix('acme', "http://acme/");
     $writer->start();
     $writer->about('www', 'Q1');
     $snak = new PropertyValueSnak(new PropertyId('P1'), new StringValue('http://en.wikipedia.org/wiki/Wikidata'));
     $builder->addValue($writer, 'acme', 'testing', 'DUMMY', $snak);
     $expected = '<http://www/Q1> <http://acme/testing> <http://en.wikipedia.org/wiki/Wikidata> .';
     $this->helper->assertNTriplesEquals($expected, $writer->drain());
 }
 public function testAddValue()
 {
     $builder = new MonolingualTextRdfBuilder();
     $writer = new NTriplesRdfWriter();
     $writer->prefix('www', "http://www/");
     $writer->prefix('acme', "http://acme/");
     $writer->start();
     $writer->about('www', 'Q1');
     $snak = new PropertyValueSnak(new PropertyId('P1'), new MonolingualTextValue('de', 'Hallo Welt'));
     $builder->addValue($writer, 'acme', 'testing', 'DUMMY', $snak);
     $expected = '<http://www/Q1> <http://acme/testing> "Hallo Welt"@de .';
     $this->helper->assertNTriplesEquals($expected, $writer->drain());
 }
 public function testAddValue()
 {
     $vocab = new RdfVocabulary('http://test/item/', 'http://test/data/');
     $builder = new CommonsMediaRdfBuilder($vocab);
     $writer = new NTriplesRdfWriter();
     $writer->prefix('www', "http://www/");
     $writer->prefix('acme', "http://acme/");
     $writer->start();
     $writer->about('www', 'Q1');
     $snak = new PropertyValueSnak(new PropertyId('P1'), new StringValue('Bunny.jpg'));
     $builder->addValue($writer, 'acme', 'testing', 'DUMMY', $snak);
     $expected = '<http://www/Q1> <http://acme/testing> <http://commons.wikimedia.org/wiki/Special:FilePath/Bunny.jpg> .';
     $this->helper->assertNTriplesEquals($expected, $writer->drain());
 }
Exemplo n.º 7
0
 /**
  * Returns a new NTriplesRdfWriter, with vocabulary namespaces registered.
  *
  * @param bool $start whether to call start() on the writer.
  *
  * @return NTriplesRdfWriter
  */
 public function getNTriplesWriter($start = true)
 {
     $writer = new NTriplesRdfWriter();
     foreach ($this->getVocabulary()->getNamespaces() as $ns => $uri) {
         $writer->prefix($ns, $uri);
     }
     if ($start) {
         $writer->start();
     }
     return $writer;
 }
 /**
  * @dataProvider provideAddValue
  */
 public function testAddValue(PropertyValueSnak $snak, $complex, array $expected)
 {
     $vocab = new RdfVocabulary('http://acme.com/item/', 'http://acme.com/data/');
     $snakWriter = new NTriplesRdfWriter();
     $snakWriter->prefix('www', "http://www/");
     $snakWriter->prefix('acme', "http://acme/");
     $snakWriter->prefix(RdfVocabulary::NSP_CLAIM_VALUE, "http://acme/statement/value/");
     $snakWriter->prefix(RdfVocabulary::NSP_CLAIM_STATEMENT, "http://acme/statement/");
     $snakWriter->prefix(RdfVocabulary::NS_VALUE, "http://acme/value/");
     $snakWriter->prefix(RdfVocabulary::NS_ONTOLOGY, "http://acme/onto/");
     if ($complex) {
         $valueWriter = $snakWriter->sub();
         $helper = new ComplexValueRdfHelper($vocab, $valueWriter, new HashDedupeBag());
     } else {
         $helper = null;
     }
     $builder = new QuantityRdfBuilder($helper);
     $snakWriter->start();
     $snakWriter->about('www', 'Q1');
     $builder->addValue($snakWriter, RdfVocabulary::NSP_CLAIM_STATEMENT, $vocab->getEntityLName($snak->getPropertyid()), 'DUMMY', $snak);
     $triples = trim($snakWriter->drain());
     $this->assertEquals(join("\n", $expected), $triples);
 }