Principalmente estoy usando Ruby para hacer esto, pero mi plan de ataque hasta el momento es de la siguiente manera:¿Cuál es la mejor manera de analizar RDFa, Microdatos, etc., almacenar y mostrar información utilizando un esquema/vocabulario uniforme (por ejemplo, schema.org)
Utilice las gemas rdf, rdf-rdfa, y rdf-microdata o mida para analizar los datos dados cualquier URI. Creo que sería mejor para asignar a un esquema uniforme como schema.org, por ejemplo, adoptar este archivo yaml que intenta describir la conversión entre datos vocabulario y OpenGraph a Schema.org:
# Schema X to schema.org conversion
#data-vocabulary
DV:
name:name
street-address:streetAddress
region:addressRegion
locality:addressLocality
photo:image
country-name:addressCountry
postal-code:postalCode
tel:telephone
latitude:latitude
longitude:longitude
type:type
#opengraph
OG:
title:name
type:type
image:image
site_name:site_name
description:description
latitude:latitude
longitude:longitude
street-address:streetAddress
locality:addressLocality
region:addressRegion
postal-code:postalCode
country-name:addressCountry
phone_number:telephone
email:email
que pueda a continuación, almacene la información encontrada en un formato y vuelva a mostrarlos con la sintaxis de schema.org.
La otra parte es tipo determinante. Me gustaría modelar mis tablas después de schema.org y me gustaría saber el tipo de 'Cosa' (Thing) que sería un registro. Entonces, si analizo un tipo de gráfico abierto de 'barra', lo almacenaré como 'BarOrPub' (BarOrPub).
¿Hay una mejor manera de hacerlo? Algo automatizado? Una solución ya disponible? Cualquier entrada apreciada.
EDIT:
Así que estoy encontrando que este analiza bastante bien (donde all_tags incluye las etiquetas que me interesa como claves y equivalentes schema.org como el valor):
RDF::RDFa::Reader.open(url) do |reader|
reader.each_statement do |statement|
tag = statement.predicate.to_s.split('/')[-1].split('#')[-1]
Rails.logger.debug "rdf tag: #{tag}"
Rails.logger.debug "rdf predicate: #{statement.predicate}"
if all_tags.keys.include? tag
Rails.logger.debug "Found mapping for #{statement.predicate} and #{all_tags[tag]}"
results[all_tags[tag]] = statement.object.to_s.strip
end
end
end
Gracias por la validación! El enfoque alternativo suena como el más limpio y confiable. – imorsi