2016-05-03 3 views
-1

Я хочу получить информацию из онтологии FOAF. Я попробовал следующий запрос SPARQL, но он не возвращает никаких результатов. Я попробовал этот запрос, чтобы познакомиться с FOAF, но я действительно хочу найти всех людей, которых знает конкретный человек ?x (используя свойство foaf:knows). Как мне это сделать?SPARQL Запрос FOAF не возвращает никакого результата

PREFIX foaf:<http://xmlns.com/foaf/0.1/> 
SELECT ?name ?mbox 
WHERE { ?x foaf:name ?name . 
     ?x foaf:mbox ?mbox . 
} 
+0

Вы запускаете запрос, по которому база знаний? Онтология FOAF сама по себе является лишь схемой. – AKSW

+0

Я использовал редактор Query Virtuoso SPARQL, и я поместил http://xmlns.com/foaf/0.1/ в набор данных по умолчанию. Я ошибаюсь ? @AKSW – Dihya

+0

С моей точки зрения, вы загрузили только слова FOAF, но не какие-либо данные экземпляра. – AKSW

ответ

1

Семантическая сеть состоит из различных компонентов.

Знания представлены как тройки RDF. Эти тройки описывают ресурсы на основе синтаксиса Subject - Predicate - Object. Например, "John is a Male" может быть представлен как тройной RDF.

В верхней части RDF мы можем использовать RDFS и OWL для указания ограничений и другой информации об этих данных. Благодаря RDFS я могу указать, что "Male is a subclass of Person", и поэтому можно сделать вывод, что "John is a Person". RDFS и OWL помогают определять онтологии. An онтология - это словарь (который может быть общим или специфичным для домена) для представления данных. Например, я могу создать онтологию CAT для представления данных о кошках.

В этом случае я бы создал свой словарь CAT, определяющий, что "Cat is a subclass of Animal" и "hasOwner is a property that links a cat to a Person" и некоторые другие свойства. Затем я могу создать экземпляр некоторых людей для создания данных о кошках. Например, говоря, что "Baccara is a Cat" и "Baccara hasOwner John".

FOAF - это в основном словарь для представления данных о людях и особенно связей между этими людьми. Словарь FOAF дает некоторые свойства и классы, чтобы легко обрабатывать информацию о людях. Но он не предоставляет никакой информации, только «структура»/«модель»/«схема» для организации информации. В наборе данных FOAF нет людей. Вот почему ваш запрос не возвращает результата. Поскольку в наборе данных FOAF нет людей, это нормально, что запрос ничего не возвращает.

Возможно, вам захочется создать собственный набор данных RDF на основе словаря FOAF. Для этого вы можете попробовать инструмент, например Protégé, или более легко с помощью текстового редактора, если вы знакомы с RDF/XML или Turtle.

В противном случае, если вам нужно только познакомиться с FOAF, вы можете запросить модель. Например, вы можете получить все подклассы Агент:

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX foaf: <http://xmlns.com/foaf/0.1/> 
SELECT distinct ?c 
WHERE { ?c rdfs:subClassOf foaf:Agent } 

Я рекомендую вам прочитать немного о семантических веб-компонентов (особенно RDF и RDFS, и различия между ними), прежде чем идти дальше в FOAF , Кроме того, хорошее упражнение для изучения SPARQL состоит в запросе DBpedia: http://dbpedia.org/sparql.

+1

Еще несколько полезных инструментов для обучения ... [OpenLink Structured Data Editor (OSDE)] (http://osde.openlinksw.com/) (используйте [live instance on URIBurner.com] (http://linkeddata.uriburner.com/rdf-editor/)) хорош для создания и редактирования документов данных RDF. Кроме того, [iSPARQL, Interactive SPARQL Query Builder] (http://oat.openlinksw.com/index.html?isparql), находится в [http://dbpedia.org/isparql/](http://dbpedia. org/isparql /), среди других мест. – TallTed

+0

Есть ли какая-либо база знаний, которая содержит экземпляры в соответствии с онтологией FOAF? Я использовал для примера dbpedia, чтобы получить «изображение» человека. И если я хочу, чтобы люди узнали, что один человек «знает», я не знаю, есть ли база знаний, которая может ответить на этот запрос? @TallTed – Dihya

+0

Нет базы знаний FOAF, как таковой. Тем не менее, многие наборы данных и источники включают данные на основе FOAF; например, вы можете запросить облачный кэш LOD (http://lod.openlinksw.com/sparql?default-graph-uri=&query=PREFIX++foaf%3A++%3Chttp%3A%2F%2Fxmlns.com% 2Ffoaf% 2F0.1% 2F% 3E% 0D% 0ASELECT + DISTINCT + +% 0D% 0AWHERE% 0D% 0A ++ {+% 3FS ++ FOAF% 3Aknows ++% 3Fo +} +% 0D% 0AORDER + BY +% 3FS +% 3Fo% 0D % 0ALIMIT + 1000 & should-sponge = & format = text% 2Fhtml & CXML_redir_for_subjs = 121 & CXML_redir_for_hrefs = & timeout = 30000 & debug = on), предоставленный моим работодателем, [OpenLink Software] (http://www.openlinksw.com/). – TallTed