Question

considérer une phrase comme:

John Smith s'est rendu à Washington.

Un nom de nom de nom identifierait une bonne journée, "John Smith" en tant que personne et "Washington" comme lieu.Toutefois, sans autre preuve, il ne peut pas dire lequel de tous les possibles «John Smith's dans le monde, voire lesquels des divers» Washington's, c'est.

Finalement, un processus de résolution pourrait décider, sur la base d'autres éléments de preuve.Jusqu'à ce moment-là, cependant, quelle est une bonne pratique pour représenter ces références dans RDF?Attribuez-leur des identifiants uniques inventés dans certains espaces de noms?Faire des tuples vierges (par exemple, une personne nommée John Smith a été référencée dans le document D '.)?Une autre alternative?Un livre que j'ai donne un exemple impliquant des stations météorologiques anonymes, mais je ne vois pas tout à fait comment leur exemple convient à tout le reste sur RDF étant décrit.

Était-ce utile?

La solution

Attribuez-leur des identificateurs uniques dans votre propre espace de noms.Si vous découvrez plus tard que cette "Washington" est la même chose que http://dbpedia.org/resource/Washington,_d.c ., Ou quoi que ce soit, vous pouvez ajouter un hibou: Samas pour affirmer cela.

Autres conseils

Tout d'abord, il existe des services de bons services existants que vous pouvez utiliser pour une reconnaissance d'entité telle que OpenCalais , Zemanta et Alchemy .

Pour être plus précis, oui simplement "Mint" vos propres URIS (identificateurs) pour chaque chose, alors en parlant d'eux - d'offrir une représentation pour ces informations dans 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 .

Et si vous les assumez plus tard, vous pouvez utiliser Hibou: Sameas comme Glenn McDonald mentionne.

peut être pertinent pour que vous puissiez lire comment Apache Stanbol le fait: HTTP: //stanbol.apache.org/docs/trunk/Components/enhanancer/fenhanthanthancstructure.html

Vous pouvez accompagner votre propre URI comme indiqué ci-dessus ou utiliser un nœud blanc. Il y a des avantages et des inconvénients pour les deux approches:

Uri a une identité externe, vous pouvez donc expliquer explicitement à votre concept dans les requêtes futures qui peuvent faire des questions beaucoup plus simples; Mais vous avez une identité externe, l'algorithme que vous utilisez pour construire l'URI devient une partie critique de votre infrastructure et vous devez garantir qu'ils sont à la fois stables et uniques. Cela peut être trivial au début, mais lorsque vous commencez à traiter de multiples documents retraités à des moments différents, souvent en parallèle et sur des systèmes distribués, il cesse assez rapidement d'être droit.

Les nœuds en blanc ont été inclus spécifiquement pour résoudre ce problème, leur unicité est garantie par leur cadrage; Mais, si vous aurez besoin de vous référer à un nœud blanc dans une requête explicitement, vous devrez utiliser une extension non standard ou trouver un moyen de caractériser le nœud.

Dans les deux cas, mais surtout si vous utilisez un nœud blanc, vous devez inclure des déclarations de provenance pour la caractériser quand même.

@ Nathan's Exemple est un bon pour avoir l'idée.

Un exemple en utilisant des nœuds en blanc pourrait être:

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

Remarque L'utilisation des identificateurs de texte RFC5147 / fragment ordinaire pour identifier de manière unique le fichier en cours de traitement, cela vous fournit une flexibilité quant à la manière dont vous souhaitez identifier les courses individuelles. L'alternative consiste à capturer tout cela dans l'URI pour la racine de document ou à abandonner la provenance.

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

Vous noterez que FOAF: Nom a une gamme de hibou: chose, elle peut donc être appliquée à n'importe quoi. Une alternative peut utiliser Skos: concept et RDFS: étiquette pour les noms appropriés.

Un dernier examen du noeud blanc vs. URI est que tout datarstore que vous utilisez devra finalement stocker n'importe quel URI que vous utilisez, et cela peut avoir des implications sur les performances si vous utilisez de très grands ensembles de données.

En fin de compte si j'allais publier les informations de provenance dans le graphique avec les entités finales unifiées, je serais enclins à aller avec des nœuds vierges et à allouer des URI aux concepts que j'ai finalement uniformise des entités avec.

Si toutefois, je ne vais pas suivre la provenance des déductions, ce n'est qu'un laissez-passer dans un pipeline qui éliminera finalement les résultats intermédiaires, je ne ferais que Mint Uris en utilisant une sorte de documentation hachage, horodatage , et id et être fait avec elle.

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top