Tôi chủ yếu sử dụng Ruby để thực hiện điều này. như sau:Cách tốt nhất để phân tích cú pháp RDFa, Microdata, vv, lưu trữ và hiển thị thông tin bằng cách sử dụng lược đồ/từ vựng thống nhất (ví dụ schema.org)
Sử dụng đá quý rdf, rdf-rdfa và rdf-microdata hoặc mida để phân tích cú pháp dữ liệu được cung cấp cho bất kỳ URI nào. Tôi nghĩ rằng nó sẽ là tốt nhất để ánh xạ một giản đồ đồng phục như schema.org, ví dụ mất tập tin yaml này mà cố gắng để mô tả việc chuyển đổi giữa dữ liệu từ vựng và opengraph để 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
tôi có thể sau đó lưu trữ thông tin được tìm thấy ở một định dạng và hiển thị lại chúng với cú pháp schema.org.
Phần khác là xác định loại. Tôi muốn mô hình hóa các bảng của tôi sau schema.org và tôi muốn biết loại bản ghi 'Thing' (Thing). Vì vậy, nếu tôi phân tích một loại opengraph của 'bar', tôi muốn lưu trữ nó là 'BarOrPub' (BarOrPub).
Có cách nào tốt hơn để thực hiện việc này không? Một cái gì đó tự động? Một giải pháp đã ra khỏi đó? Bất kỳ đầu vào nào được đánh giá cao.
EDIT:
Vì vậy, tôi thấy rằng này phân tích khá tốt (nơi all_tags bao gồm các thẻ tôi quan tâm đến như chìa khóa và schema.org tương đương như giá trị):
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
Cảm ơn bạn đã xác thực! Cách tiếp cận thay thế có vẻ như sạch sẽ và đáng tin cậy nhất. – imorsi