Вопрос

Рассмотрим предложение, такое как:

Джон Смит путешествовал в Вашингтон.

Имя Tagger будет идентифицировать, в хороший день, «Джон Смит» как человек, и «Вашингтон» как место.Однако без других доказательств он не может сказать, какой из всех возможных «Джона Смита в мире» или даже какой из различных «Вашингтона, он получил.

В конце концов, какой-то процесс разрешения может решить, основанный на других доказательствах.Однако до этого момента, что такое хорошая практика для представления этих ссылок в RDF?Назначьте их приготовленные уникальные идентификаторы в некотором пространстве имен?Сделайте пустые кортежи (например, некоторые лица, названные Джоном Смитом, ссылались в документе D '.)?Какая-то другая альтернатива?Книга у меня есть пример, включающий анонимные метеорологические станции, но я не совсем следую, как их пример вписывается во все остальное о описании RDF.

Это было полезно?

Решение

Назначьте им уникальные идентификаторы в вашем собственном пространстве имен.Если вы позже обнаружите, что этот «Вашингтон» такой же, как http://dbpedia.org/resource/Washington ,_d.ch . Или что-то еще, вы можете добавить сову: Sameas утверждать, что.

Другие советы

Прежде всего, есть существующие хорошие услуги, которые вы можете использовать для распознавания объектов, таких как OpenCalais href="http://www.zemanta.com/" rel="nofollow noreferrer"> Zemanta и Алхимия .

Быть более конкретным, хотя, да, просто «мята» свои собственные УРИ (идентификаторы) для каждой вещи, а затем говорить о них - предложить представление для этой информации в черепахе

@prefix : <http://yourdomain.com/data/> .
@prefix myont: <http://yourdomain.com/ontology/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix dbpedia-owl: <http://dbpedia.org/ontology/Place>.
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

:John_Smith#d rdf:type foaf:Person ;
  foaf:name "John Smith"@en .

:Washington#d rdf:type dbpedia-owl:Place ;
  rdfs:label "Washington"@en .

:John_Smith#d myont:travelled_to :Washington#d .

<http://yourdomain.com/some-doc#this> rdf:type foaf:Document ;
  dcterms:references :John_Smith#d, :Washington#d .
.

И если вы позже сопоставьте их, то вы можете использовать сову: Sameas AS Glenn McDonald упоминает.

может быть уместно, чтобы вы прочитали, как apache Stanbol делает это: http://stanbol.apache.org/docs/trunk/components/enhancer/enhancementStructure.html

Вы можете либо войти на свой собственный URI, как обсуждалось выше, либо используйте пустой узел. Есть плюсы и минусы для обоих подходов:

У URI есть внешняя идентичность, поэтому вы можете явно ссылаться на вашу концепцию в будущих запросах, которые могут сделать некоторые запросы намного проще; Но у вас есть внешняя идентичность, поэтому алгоритм, который вы используете для построения URI, становится критической частью вашей инфраструктуры, и вы должны гарантировать, что они являются стабильными, так и уникальными. Это может быть в первую очередь тривиальна, но когда вы начинаете разбираться с несколькими документами, которые перерабатываются в разные времена, часто параллельно, а также на распределенные системы, она довольно быстро перестает быть прямой.

Пустые узлы были включены специально для решения этой проблемы, их уникальность гарантируется их навесом; Но, если вам нужно будет обратиться к пустому узлу в запросе явно, вам нужно использовать либо нестандартное расширение, либо найдите какой-то способ, чтобы охарактеризовать узел.

В обоих случаях, но особенно следует использовать пустое узел, вы должны включить заявления о происхождении для его характеристики.

@ Пример Натана - хороший, чтобы получить идею.

Так что пример, используя пустые узлы:

@prefix my: <http://yourdomain.com/2010/07/20/conceptmap#> .
@prefix proc: <http://yourdomain.com/2010/07/20/processing#> .
@prefix prg: <http://yourdomain.com/processors#> .

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.example.org/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix doc: <http://yourdomain.com/doc-path/> .

_:1 rdf:type proc:ProcessRun ; 
    proc:parser prg:tagger ;
    proc:version "1.0.2" ;
    proc:time "2010-07-03 20:35:45"^^<xsd:Timestamp> ;
    proc:host prg:hostname-of-processing-node ;
    proc:file doc:some-doc#line=1,;md5=md5_sum_goes_here,mime-charset_goes_here ;

_:2 rdf:type foaf:Person ;
    foaf:name "John Smith"@en ;
    proc:identifiedBy _:1 ;
    proc:atLocation doc:some-doc#char=0,9 .


_:3 rdf:type owl:Thing ;
    foaf:name "Washington"@en ;
    proc:identifiedBy _:1 ;
    proc:atLocation doc:some-doc#char=24,33 .

<http://yourdomain.com/some-doc#this> rdf:type foaf:Document ;
                                      dcterms:references _:2, _:3 .
.

Примечание. Использование идентификаторов текстовых фрагментов RFC5147. Альтернативой состоит в том, чтобы запечатлеть все это в URI для корня документа, или полностью отказаться от происхождения.

@prefix : <http://yourdomain.com/ProcessRun/parser=tagger/version=1.0.2/time=2010-07-03+20:35:45/host=hostname-of-processing-node/file=http%3A%2F%2Fyourdomain.com%2Fdoc-path%2Fsome-doc%23line%3D1%2C%3Bmd5%3Dmd5_sum_goes_here%2Cmime-charset_goes_here/$gt; .

@prefix my: <http://yourdomain.com/2010/07/20/conceptmap#> .
@prefix proc: <http://yourdomain.com/2010/07/20/processing#> .
@prefix prg: <http://yourdomain.com/processors#> .

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.example.org/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix doc: <http://yourdomain.com/doc-path/some-doc#> .

:1 rdf:type proc:ProcessRun ; 
    proc:parser prg:tagger ;
    proc:version "1.0.2" ;
    proc:time "2010-07-03 20:35:45"^^<xsd:Timestamp> ;
    proc:host prg:hostname-of-processing-node ;
    proc:file doc:some-doc#line=1,;md5=md5_sum_goes_here,mime-charset_goes_here ;

:2 rdf:type foaf:Person ;
    foaf:name "John Smith"@en ;
    proc:identifiedBy :1 ;
    proc:atLocation doc:some-doc#char=0,9 .


:3 rdf:type owl:Thing ;
    foaf:name "Washington"@en ;
    proc:identifiedBy :1 ;
    proc:atLocation doc:some-doc#char=24,33 .

<http://yourdomain.com/some-doc#this> rdf:type foaf:Document ;
                                      dcterms:references :2, :3 .
.

Вы отметите, что Foaf: имя имеет ряд совы: вещь, поэтому его можно наносить на что-либо. Альтернатива может использовать SKOS: концепция и RDFS: этикетка для правильных существительных.

Одно окончательное рассмотрение для Blank-node vs. URI заключается в том, что любой используемый вами хранилище данных в конечном итоге должен хранить любую использование URI, и это может иметь последствия относительно производительности, если вы используете очень большие наборы данных.

В конечном итоге, если я собирался опубликовать информацию о происхождении на графике вместе с окончательными унифицированными организациями, я был бы склонен идти с пустыми узлами и выделить URI к понятиям, с которыми я в конечном итоге объединил сущности.

Если, однако, я не собираюсь отслеживать происхождение выводов, и это всего лишь один проход многих в трубопроводе, который в конечном итоге откажется от промежуточных результатов, я бы просто мошенничество УРИ, используя какую-то хэш-память и удостоверение личности и сделать с этим.

@prefix : <http://yourdomain.com/entities#> .
@prefix my: <http://yourdomain.com/2010/07/20/conceptmap#> .

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .

:filename_timestamp_1 rdf:type foaf:Person ;
                      foaf:name "John Smith"@en .

:filename_timestamp_2 rdf:type owl:Thing ;
    foaf:name "Washington"@en .

<http://yourdomain.com/some-doc#this> rdf:type foaf:Document ;
                                      dcterms:references :2, :3 .
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top