2009-03-26 7 views
1

Я пытаюсь выбрать идентификатор rdf: ID объекта с sparql (внутри Protege), и я не могу получить идентификатор rdf: ID. Кто-нибудь видел эту проблему. Запрос SPARQL я использую это:SPARQL select RDF: ID

Select * where (?element rdf:id ?id)

Следующая также не работает:

Select * where (?element rdfs:label ?id)

принял предложение, но все-таки это не идут:

Select * where (?element rdfs:about ?id)

Но это:

Select * where (?element rdfs:comment ?id)

Все, что я получаю, это «Нет совпадений». Поэтому я могу выбрать комментарий, но не thelabel ... идеи?

UPDATE :: После того, как еще некоторые исследования, выбирая следующее:

Select ?subject ?property ?object where (?subject ?property ?object)

Не приходит с какой-либо из свойств ИСС. Мне что-то не хватает? (Я могу выбрать его с помощью rdfs: comment, но это тоже не отображается ...

ответ

4

Если вы ищете URI всех субъектов RDF, вы должны запускать:

SELECT ?subject WHERE { ?subject ?predicate ?object }

Обратите внимание, что вам нужно фигурные скобки, а не круглые скобки. Также обратите внимание, что дело имеет значение в RDF, поэтому будьте очень осторожны в написании и капитализации ваших URI (и префиксов/локальных имен).

К вопросу о причинах, связанных с даджобей (предполагаемые тройки), rdfs:label является свойством аннотации OWL и будет игнорироваться инференсерами, если вы не включите свои собственные правила и/или конструкции OWL. Другими словами, если вы только начинаете работать с RDF, я был бы удивлен, если бы рассудитель предположил, что троек с rdfs:label в качестве предиката.

0

Я предполагаю, что ваш идентификатор rdf: ID (локальная ссылка в вашем документе rdf) будет разрешен с использованием xml: base и преобразован в РДФ: около

6

во-первых РДФ:.. ID не существует в модели данных - РФР граф тройки «rdf:ID» это термин синтаксиса, используемый в одном из синтаксиса, RDF/XML, но не появляется в тройках Аналогичны rdf:about является синтаксис.

Относительно того, почему sparql протеже не будет работать здесь - и я не использовал Protege - я полагаю, что тройки, которые вы пытаетесь найти, выведены двигателем вывода и, следовательно, не обязательно находятся в базе r df график.

Не совсем понятно, что вы пытаетесь сделать. Вам нужен объект URI [некоторой тройки]? Как вы определяете эту тройку?

-1

Следующий запрос получает мне rdf:ID для индивидуального типа pref:class

select * where { 
?id rdf:type pref:class 
} 
+2

Вашего запрос будет возвращать полный URI для любых лиц, которые соответствуют, с каждым человеком, связанным с переменным с именем «ID». Это не то же самое, что и идентификатор rdf: ID (подробнее см. Http://www.w3.org/TR/rdf-primer/#newresources). –