Ejemplo simple de reificación en RDF.
reification (3)
"Tolkien escribió El señor de los anillos" se puede expresar como una declaración simple (sujeto, predicado, objeto) como esta:
:Tolkien :wrote :LordOfTheRings .
Por cierto, esto está usando la notación de Turtle para RDF. Hay tools línea para convertirlo a RDF / XML.
Al usar la reification , puede tener un recurso separado que represente una declaración para poder declarar cosas adicionales sobre la declaración en sí, como "Wikipedia dijo eso":
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
_:x rdf:type rdf:Statement .
_:x rdf:subject :Tolkien .
_:x rdf:predicate :wrote .
_:x rdf:object :LordOfTheRings .
_:x :said :Wikipedia .
En la vida real, querría usar vocabularios compartidos, para que quienquiera o lo que sea que esté consumiendo el RDF tenga que hablar sobre ese Tolkien y ese LOTR:
<http://dbpedia.org/resource/The_Lord_of_the_Rings> <http://dbpedia.org/property/author> <http://dbpedia.org/resource/dbppedia/J._R._R._Tolkien> .
¿Podría alguien ser tan amable de darme un ejemplo simple de reificación en RDF? Quiero ver si lo entendí correctamente.
Por ejemplo, propongo el siguiente caso.
Tolkien -> wrote -> Lord of the rings
/|/
|
Wikipedia said that
¿Cómo lo escribiría con y sin reificación (es decir, como una simple declaración RDF sin necesidad de reificación)?
Desafortunadamente, hasta ahora, las instancias de relaciones, es decir, lo que los documentos del W3C llaman elementos de la extensión de la relación, o lo que en matemáticas llamarían los pares, que son los elementos de la relación, no se consideran de primera clase. los ciudadanos.
El ecosistema de la web semántica reivindica el eslogan AAA, de que cualquiera puede decir algo sobre cualquier cosa. Pero esto no es cierto, si el primer "cualquier cosa" aquí es un borde único del gráfico. Incluso, si RDF en sí tiene los medios para expresar el conocimiento sobre un solo borde, el documento semántico RDF de W3C hace todo lo posible, no para apoyar esta expresividad.
Básicamente, hay 4 enfoques para decir algo acerca de un borde: - las declaraciones RDF impopulares e inflados de forma holgada - propiedad singletons - declaración única llamada gráficos (el cuarto elemento en un quad es un ID de gráfico) - nodos de asociación (de manera análoga a las clases de asociación UML )
Los singletons de propiedad son definitivamente la solución más simple al problema, ya que no agregan nada; simplemente está evitando cometer el error de [re] usar un identificador de propiedad de nivel de clase para los bordes de instancia una y otra vez. Otros ecosistemas de modelado, que tienen un claro entendimiento del metamodelo (MOF, por ejemplo), están mucho menos tentados a cometer tal error. Los bordes de nivel de clase conectan los nodos de nivel de clase y los bordes de nivel de instancia conectan los nodos de nivel de instancia. Eso es.
Si lo haces bien (como lo proponen Vinh y sus colegas), estás en el razonamiento de los razonadores, que están codificados a lo largo del documento semántico RDF del W3C.
Puede sortear esto temporalmente (siempre y cuando el W3C aún no haya estandarizado los singletons de propiedad) haciendo otra falla de diseño e implemente los singletons de su propiedad como subpropertyOf-s de la propiedad de nivel de clase [en lugar de convertirlos en instancias de él]. Entonces, un razonador RDFS presente concluiría de una etiqueta: my_label_0815 rdfs: subPropertyOf rdfs:. : some_node: my_label_0815 "some_string". que: some_node rdfs: label "some_string". Esta es una solución sucia, ya que rompe la separación clara de los metaniveles.
Tenemos muchos modelos terriblemente diseñados, solo porque no tenemos una forma sencilla de decir algo sobre referencias (bordes de nivel de instancia).
Una mejor manera de hacerlo, es utilizar el enfoque de propiedades singleton.
Por ejemplo, crea una propiedad singleton para representar esta declaración como:
Tolkien wrote#1 "Lord of the rings" .
wrote#1 rdf:singletonPropertyOf wrote .
wrote#1 asserted_by Wikipedia .
Si lo desea, puede leer más sobre esto en el documento "¿No me gusta la reificación RDF? Hacer declaraciones sobre declaraciones usando propiedades singleton" o sus diapositivas en http://www.slideshare.net/ntkimvinh7/www2014-singleton-propertyfinal .. .