Делать заявления о заявлениях, которые не являются
Простите, если я неправильно использую некоторые термины, я просто знакомлюсь с RDF и, в частности, с овеществлением.
Я пытаюсь понять, если / как вы можете сделать заявление о том, что вы не контролируете и которое на самом деле не настроено как rdf:Statement
(или любой другой ресурс, т.е. реифицированный).
Например, если какой-то семантический сайт делает заявление:
ex:elvis-presley
ex:is-alive "true"^^xsd:boolean .
Есть неявное rdf:Statement
ресурс здесь:
_:x
a rdf:Statement ;
rdf:subject ex:elvis-presley ;
rdf:predicate ex:is-alive ;
rdf:object ex:true "true"^^xsd:boolean .
Теперь предположим, что у меня есть свой семантический веб-сайт, и я хотел бы опровергнуть это утверждение, или подтвердить его, или сделать любой другой вид мета-утверждения относительно этого утверждения. Ресурс оператора не имеет глобального идентификатора, поэтому я не могу ссылаться на него.
Есть ли способ справиться с этим, или вы можете делать заявления только о заявлениях, которые явно сформированы как идентифицированные ресурсы сами по себе?
2 ответа
Я думаю, что овеществление - это тема, которая изначально кажется более полезной, чем на самом деле. Вы можете иметь тройку на графике:
s p o .
и вы можете иметь четыре тройки на графике:
x a rdf:Statement .
x rdf:subject s .
x rdf:preficate p .
x rdf:object o .
но это об этом. Если у кого-то есть четыре тройки второй формы, и x
случается, URI, а затем вы пишете о x
, Если это пустой узел, то у вас нет способа сослаться на него. В любом случае, x
Говорят, что это овеществление тройной s p o
, Это означает, что вопрос
Можете ли вы только подтвердить утверждения, которые явно сформированы как идентифицированные ресурсы сами по себе?
не имеет большого смысла. Утверждение заявления s p o
это ресурс x
это имеет связанные свойства. "Чтобы овеществить s p o
"на самом деле ничего не значит, кроме" выбрать x
и утверждать соответствующие тройки об этом ".
Маловероятно, что кто-либо пытается утверждать s p o
написал бы вторую форму. Вторая форма имеет тенденцию появляться, если вы пытаетесь представить некоторые утверждения о тройках, например, "Джон говорит x . Xa rdf:Statement . …".
Если вы хотите опровергнуть чье-то утверждение о том, что Элвис живет, вы, вероятно, просто сделаете
:elvisLives a rdf:Statement ;
rdf:subject ex:elvis-presley ;
rdf:predicate ex:is-alive ;
rdf:object true ;
:claimedBy <http://example.org/whoeverSaidIt> ;
:hasValue false .
В качестве альтернативы, если вы находитесь в области OWL, вы можете использовать отрицательное утверждение свойства:
NegativeDataPropertyAssertion( ex:lives ex:elvis-presley "true"^^xsd:boolean )
Представление RDF будет выглядеть
_:x rdf:type owl:NegativePropertyAssertion .
_:x owl:sourceIndividual ex:elvis-presley .
_:x owl:assertionProperty ex:lives .
_:x owl:targetValue true .
Вы можете увидеть сходство между двумя подходами. OWL включает в себя своего рода словарный запас owl:sourceIndividual
, owl:assertionProperty
а также owl:targetValue
,
Недавно предложенный подход, названный синглтоном, является именно тем, что вам нужно. Этот подход формально описан в этой статье "Не нравится RDF Reification? Делать заявления о заявлениях, используя свойство Singleton". http://www.slideshare.net/ntkimvinh7/www2014-singleton-propertyfinal
В вашем примере, вместо использования reification, тройка может быть представлена с использованием подхода одноэлементного свойства, такого как
ex:elvis-presley ex:is-alive#1 "верно"^^xsd: логическое значение.
ex: is-alive # 1 rdf: singletonPropertyOf ex: is-alive.
Если вы хотите оспорить этот факт, вы можете использовать одноэлементное свойство ex: is-alive # 1, поскольку оно может быть глобально уникальным, если вы используете UUID вместо #1.