OpenCalais возвращает URI лиц для связанных данных вместо фактического имени человека

Я использую сервис OpenCalais Semantic Web и получаю ответ "Приложение /JSON" на мой отправленный контент. Когда я смотрю на сущность Цитата, OpenCalais отправляет цитату человека, но имя человека - это не имя человека, а URI "Связанные данные". Например, для человека по имени Тайип Эрдоган:

http://d.opencalais.com/pershash-1/a7077bd6-bcc9-3419-b75e-c44e1b2eb693

Мне нужно имя человека, а не URI. OpenCalais также отправляет URI вместо имени человека в сущности PersonCareer. Я не хочу читать html DOM URI и извлекать имя человека, так как это замедлит все. Есть ли решение?

Описание объекта цитаты: http://www.opencalais.com/documentation/calais-web-service-api/api-metadata/entity-index-and-definitions)

1 ответ

Решение

Оказывается, существует способ доступа к этим URI-адресам людей, кроме HTML; и это путем анализа RDF. Любая ссылка URI на ресурс связанных данных, предоставленный OpenCalais, также может использоваться как RDF. Просто измените URI с.html на.rdf, и вы получите всю информацию об этом ресурсе в формате RDF.

Например, для человека по имени Тайип Эрдоган:

http://d.opencalais.com/pershash-1/a7077bd6-bcc9-3419-b75e-c44e1b2eb693.rdf

Следующий код использует библиотеку file_get_dom, вы также можете использовать любую встроенную функцию для получения содержимого файла. Это просто подход, который я использовал для извлечения имен людей из полученного содержимого RDF из веб-службы. Я уверен, что вы можете придумать лучшее решение.

public function get_persons_from_pershash($url)
{   
    //Gets RDF of the person URI
    @$person_html = file_get_dom($url);

    if(!empty($person_html))
    {
        //Get position of name tag and extract the name
        $strpos_start = strpos($person_html, '<c:name>') + 8;
        $strpos_end = strpos($person_html, '</c:name>');
        $str_name_length = $strpos_end - $strpos_start;
        $extracted_name = trim(substr($person_html, $strpos_start, $str_name_length));

        return $extracted_name;
    }
    return '';      
}

Когда вы измените URL-адрес на.rdf, вам будет предложено сохранить файл rdf.

Я хотел разобрать это программно, поэтому я так и сделал!

Надеюсь, кто-то найдет это полезным!

Ура!

Другие вопросы по тегам