Имам въпрос: В sparql какво прави @prefix:
@префикс : http://example.org/animals/
и защо да пиша така?
Имам въпрос: В sparql какво прави @prefix:
@префикс : http://example.org/animals/
и защо да пиша така?
Отговорът на Jeen Broekstra е правилен; @prefix <...>
не е легален синтаксис на SPARQL и само ще генерира синтактични грешки вместо вас. Въпреки това, има подобна конструкция в Turtle и N3 сериализациите на RDF. В тези синтаксиси кодът
@prefix animals: <http://example.org/animals/>.
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
animals:Moose rdfs:subClasof animals:Animal
е графиката с единичната тройка:
<http://example.org/animals/Moose> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://example.org/animals/Animal>
Редовете @prefix
дефинират префикси, които улесняват справянето с IRI в сериализацията на графиката. SPARQL също има декларации на префикс, но синтаксисът е малко по-различен. В SPARQL заявка няма @
в началото на реда и няма .
в края на реда. Така че, продължавайки примера по-горе, можете да направите заявка за всички неща от подкласове на animal:Animal
със следната заявка:
prefix an: <http://example.org/animals/>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
select ?subclass where {
?subclass rdfs:subClassOf an:Animal
}
Имайте предвид, че при първата сериализация използвахме animals:
, но в SPARQL заявката използвахме an:
със същия префикс. Конкретният префикс няма значение, стига действителният (част от) URI адрес, до който се разширява, да е същият. Строго погледнато, префиксите са за удобство на хората; те не са строго необходими.
"@PREFIX" не прави нищо в SPARQL, освен евентуално генериране на синтактична грешка.
"PREFIX" обаче (без "@") е инструкцията SPARQL за декларация на префикс на пространство от имена. Позволява ви да пишете имена с префикс в заявки, вместо да се налага да използвате пълни URI навсякъде. Така че това е механизъм за удобство на синтаксиса за по-кратки, по-лесни за четене (и писане) заявки.
@prefix <...>
не е нищо друго освен синтактична грешка в SPARQL. В коментар за този отговор вие споменавате да правите нещо с Protégé. Ако можете да сте по-конкретни относно това, което правите в Protégé и къде сте срещнали@prefix <...>
(може би с екранни снимки от Protégé), може да успеете да получите някои отговори, по-скоро в съответствие с това, което искате. - person Joshua Taylor   schedule 18.08.2013