Затем я иногда вижу «связи» в наборе данных, которые по существу соединяют один конкретный ресурс с аналогичным ресурсом в другом наборе данных, который имеет свою собственную онтологию. то есть у linkedmdb есть owl:sameAs, но, похоже, это не то, что люди имеют в виду, применяя онтологии к данным.
Это может быть не обязательно owl:sameAs
, но я думаю, что это, вероятно, своего рода то, что вы ищете. Используя RDFS или OWL, вы можете делать различные утверждения о свойствах и классах таким образом, что после небольшого рассуждения у вас появится новое «представление» о ваших данных. Например, скажем, одна онтология определяет некоторые классы и свойства:
o1:Film a rdfs:Class .
o1:Actor a rdfs:Class .
o1:hasActor a rdf:Property .
rdfs:domain o1:Film .
rdfs:range o1:Actor .
Другая онтология определяет некоторые другие:
o2:Movie a rdfs:Class .
o2:Person a rdfs:Class .
o2:Character a rdfs:Class .
o2:hasCharacter a rdf:Property ;
rdfs:domain o2:Movie ;
rdfs:range o2:Character .
o2:playsRole a rdf:Property ;
rdfs:domain o2:Actor ;
rdfs:range o2:Character .
Теперь, если у вас есть данные, выраженные в соответствии с одной онтологией, вы можете использовать некоторые аксиомы, подобные этим, чтобы получить некоторую информацию в терминах другой:
o2:Movie rdfs:subClassOf o1:Film .
o1:Film rdfs:subClassOf o2:Movie .
o1:Actor rdfs:subClassOf o2:Person .
Это всего лишь небольшая часть информации, но с помощью RDFS-рассуждения вы внезапно узнаете о множестве экземпляров. Если вы используете более выразительный язык онтологии, чем RDFS, скажем, OWL, то вы можете использовать некоторые более выразительные аксиомы, например,
Фильм Фильм
Актер Человек
hasActor hasRole o (обратная играет роль)
В частности, с этой последней аксиомой вы обнаружите, что любой, кто играет роль в фильме, является актером в фильме. OWL также позволит вам сделать гораздо больше, но это, если общая идея отображения онтологии или схемы. Чтобы использовать такой подход, вам нужно определить свои аксиомы отображения и применить алгоритм рассуждений к их объединению и исходному набору данных.
Вы также можете сделать больше с рассуждениями на основе правил. Например, вместо объявления третьей аксиомы OWL, приведенной выше, вы можете написать правило:
hasRole(?фильм,?роль) gamesRole(?актер,?роль) hasActor(?фильм,?актер)
Хотя применение правил — это просто еще один вид рассуждений, он имеет более тесную связь со SPARQL, поскольку вы можете использовать запросы SPARQL construct
для получения данных в терминах онтологии в результате запросов к данным с использованием другого. Например, вы можете сделать:
construct {
?movie :hasActor ?actor
}
where {
?movie :hasRole ?role .
?actor :playsRole ?role .
}
Однако вы правы в том, что идея совместимости данных иногда немного преувеличена или, по крайней мере, звучит немного проще и привлекательнее, чем она есть на самом деле. В общем, чтобы использовать данные, вам нужно ознакомиться со словарем, в котором они выражены. Если вы хотите получить новые данные, используя другой словарь, основанный на исходных данных, вам нужно будет понять отношения между этими словарями довольно хорошо, и вам нужно будет применить какой-то перевод (часто это будет своего рода RDF или OWL).
person
Joshua Taylor
schedule
23.01.2014