Pregunta

Considerar una oración como:

John Smith viajó a Washington.

Un nombre Tagger identificaría, en un buen día, 'John Smith' como persona, y 'Washington' como un lugar.Sin embargo, sin otra evidencia, no puede decir cuál de todos los posibles 'John Smith's en el mundo, o incluso cuál de los distintos' de Washington, tiene.

Finalmente, algún proceso de resolución podría decidir, en función de otras pruebas.Sin embargo, hasta ese momento, ¿cuál es una buena práctica para representar estas referencias en RDF?¿Asignarlos identificadores únicos de maquillaje en algún espacio de nombres?Hacer tupores en blanco (por ejemplo, a una persona llamada John Smith fue referenciada en el documento D '.)?Alguna otra alternativa?Un libro que he dado un ejemplo que involucra a las estaciones meteorológicas anónimas, pero no estoy siguiendo de manera que su ejemplo encaja con todo lo demás que se describe.

¿Fue útil?

Solución

Asigna identificadores únicos en su propio espacio de nombres.Si luego descubrió que este "Washington" es el mismo que http://dbpedia.org/resource/ Washingington._d.c ., O lo que sea, puede agregar un búho: Samés para afirmar que.

Otros consejos

En primer lugar, hay buenos servicios existentes que puede usar para el reconocimiento de entidades, como opencalais , zemanta y Alquimia .

Para ser más específico, sin embargo, sí, simplemente 'menta' sus propios uris (identificadores) por cada cosa, luego hablando de ellos, para ofrecer una representación para esta información en Turtle

@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 .

Y si más tarde los coincide, puede usar el búho: Sameas como Menciones Glenn McDonald.

Puede ser relevante para que lea cómo lo hace Apache Stanbol: http://stanbol.apache.org/docs/trunk/components/enhancer/enhancementstructure.html

Puede acumular su propio URI como se discutió anteriormente, o use un nodo en blanco. Hay ventajas y contras para ambos enfoques:

URI tiene una identidad externa, por lo que puede referirse explícitamente a su concepto en futuras consultas que pueden hacer que algunas consultas sean mucho más simples; Pero, usted tienen una identidad externa, por lo que el algoritmo que usa para construir el URI se convierte en una parte crítica de su infraestructura y debe garantizar que sean estables y únicos. Esto puede ser trivial al principio, pero cuando comienza a lidiar con múltiples documentos que se reprocan en momentos diferentes, a menudo en paralelo, y en sistemas distribuidos, deja de ser bastante rápido de ser directo.

Los nodos en blanco se incluyeron específicamente para resolver este problema, su singularidad está garantizada por su alcance; Pero, si va a necesitar referirse a un nodo en blanco en una consulta explícitamente, tendrá que usar una extensión no estándar, o encontrar alguna forma de caracterizar el nodo.

En ambos casos, pero especialmente en caso de que use un nodo en blanco, debe incluir las declaraciones de procedencia para caracterizarlo de todos modos.

@ El ejemplo de Nathan es una buena para obtener la idea.

por lo que un ejemplo que usa los nodos en blanco puede ser:

@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 .

Nota El uso de identificadores de texto / fragmentos de texto RFC5147 para identificar de manera única al proceso que se está procesando, esto le proporciona flexibilidad sobre cómo desea identificar las carreras individuales. La alternativa es capturar todo esto en la URI para la raíz del documento, o abandonar la procedencia por completo.

@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 .

Notarás que FOAF: El nombre tiene una gama de búho: cosa, por lo que se puede aplicar a cualquier cosa. Una alternativa podría usar Skos: Concept y RDFS: Etiqueta para los sustantivos adecuados.

Una consideración final para el nodo en blanco frente a URI es que cualquier almacén de datos que use finalmente tendrá que almacenar cualquier URI que utilice, y esto puede tener implicaciones con respecto al rendimiento si está utilizando conjuntos de datos muy grandes.

En última instancia, si iba a publicar la información de procedencia en el gráfico junto con las entidades unificadas finales, me inclinaría a ir con los nodos en blanco y asignar a los URI a los conceptos con los conceptos que finalmente unifique las entidades.

Si, sin embargo, no voy a rastrear la procedencia de las inferencias, y esto es solo un paso de muchos en una tubería que finalmente descartará los resultados intermedios, simplemente menta URIS usando algún tipo de hash de documentos, marca de tiempo , y la identificación y hágalo con eso.

@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 .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top