Разбор Turtle (RDF) из строки в массив

Как я могу анализировать RDF-контент (в сериализации Turtle) с помощью EasyRDF? Например, что-то вроде этого:

$rdf  = '<subject>  <predicate>  "object0"@en .' ;
$rdf .= "\n" ;
$rdf .= '<subject>  <predicate>  "object1"@en .' ;
$array = turtle_decode(rdf) ;
if ($array["subject"]["predicate"][0]["value"]=="object0")

person Dani-Br    schedule 01.07.2015    source источник
comment
Эта функция имеет неправильное описание.   -  person Dani-Br    schedule 01.07.2015
comment
Цитата: public integer parse(object $graph, string $data, string $format, string $baseUri) Но он не ожидает объекта в качестве первого параметра и уведомляет о какой-то странной ошибке.   -  person Dani-Br    schedule 01.07.2015
comment
вы цитируете не то, на что я ссылался. Я дал ссылку на один с описанием: public integer parse(string $data, string $format = null, string $uri = null) Разобрать некоторые данные RDF в объект графа. ** Похоже, что он должен считывать содержимое RDF из строки в любом формате, который вы укажете, и, возможно, используя uri как базовый URI, если необходимо.   -  person Joshua Taylor    schedule 01.07.2015


Ответы (1)


Использование PHP и EasyRDF:

<?php
require 'vendor/autoload.php';

$data  = '<http://rdf.freebase.com/ns/g.11vjz1ynm> <http://rdf.freebase.com/ns/measurement_unit.dated_percentage.date> "2001-02"^^<http://www.w3.org/2001/XMLSchema#gYearMonth>  .' .PHP_EOL;
$data .= '<http://rdf.freebase.com/ns/g.11vjz1ynm>  <http://rdf.freebase.com/ns/measurement_unit.dated_percentage.source> <http://rdf.freebase.com/ns/g.11x1gf2m6>  .' .PHP_EOL;
$data .= '<http://rdf.freebase.com/ns/g.11vjz1ynm>  <http://rdf.freebase.com/ns/type.object.type> <http://rdf.freebase.com/ns/measurement_unit.dated_percentage>  .' .PHP_EOL;
$data .= '<http://rdf.freebase.com/ns/g.11vjz1ynm>  <http://rdf.freebase.com/ns/measurement_unit.dated_percentage.rate> 4.5 .' .PHP_EOL;
$data .= '<http://rdf.freebase.com/ns/g.11vjz1ynm>  <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://rdf.freebase.com/ns/measurement_unit.dated_percentage>  .' .PHP_EOL;

$graph = new EasyRdf_Graph();
$graph->parse($data,'turtle');
$array = $graph->toRdfPhp();
unset($graph);

print_r($array);
person Dani-Br    schedule 01.07.2015
comment
Хотя я все еще думаю, что ответ было достаточно легко найти в документации, что этот вопрос, вероятно, не должен быть в Stack Overflow, это достаточно хороший ответ, который содержит полный рабочий код. Обязательно примите его по истечении установленного времени. - person Joshua Taylor; 02.07.2015