1:- module(
2 rdf_prefix,
3 [
4 assert_prefixes/1, 5 6 rdf_prefix/1, 7 8 9 rdf_prefix_append/2, 10 rdf_prefix_append/3, 11 12 rdf_prefix_iri/3, 13 rdf_prefix_map/1, 14 rdf_prefix_maplist/2, 15 rdf_prefix_maplist/3, 16 rdf_prefix_maplist/4, 17 rdf_prefix_member/2, 18 rdf_prefix_memberchk/2, 19 rdf_prefix_selectchk/3, 20 21 rdf_register_prefix/1, 22 23 24 rdf_register_prefixes/0
25 ]
26). 27:- reexport(library(semweb/rdf_db), [
28 rdf_equal/2
29 ]). 30:- reexport(library(semweb/rdf_prefixes), [
31 rdf_current_prefix/2 as rdf_prefix,
32 rdf_global_id/2 as rdf_prefix_iri,
33 rdf_global_object/2 as rdf_prefix_term,
34 rdf_global_term/2 as rdf_prefix_any,
35 rdf_register_prefix/2,
36 rdf_register_prefix/3,
37 (rdf_meta)/1,
38 op(1150, fx, (rdf_meta))
39 ]).
49:- use_module(library(aggregate)). 50:- use_module(library(apply)). 51:- use_module(library(assoc)). 52:- use_module(library(error)). 53:- use_module(library(uri)). 54:- use_module(library(yall)). 55
56:- use_module(library(dcg)). 57:- use_module(library(file_ext)). 58
59:- initialization
60 init_rdf_prefix. 61
62:- meta_predicate
63 rdf_prefix_maplist(1, +),
64 rdf_prefix_maplist(2, +, +),
65 rdf_prefix_maplist(3, +, +, +). 66
67:- rdf_meta
68 rdf_prefix_append(t, t), rdf_prefix_append(t, t, t), rdf_prefix_maplist(:, t), rdf_prefix_maplist(:, t, t), rdf_prefix_maplist(:, t, t, t), rdf_prefix_member(t, t), rdf_prefix_memberchk(t, t), rdf_prefix_selectchk(t, t, t).
86assert_prefixes(File) :-
87 read_from_file(File, assert_prefixes_).
88
89assert_prefixes_(In) :-
90 repeat,
91 read_line_to_string(In, String),
92 ( String == end_of_file
93 -> !, fail
94 ; once(string_phrase(prefix_declaration_(Alias, Prefix), String)),
95 rdf_register_prefix(Alias, Prefix)
96 -> fail
97 ; string_phrase(whites, String)
98 -> fail
99 ; !, true
100 ).
101
102prefix_declaration_(Alias, Prefix) -->
103 whites,
104 "prefix",
105 whites,
106 '...'(Codes1),
107 ":", !,
108 {atom_codes(Alias, Codes1)},
109 whites,
110 "<",
111 '...'(Codes2),
112 ">", !,
113 {atom_codes(Prefix, Codes2)}.
120rdf_prefix(Alias) :-
121 rdf_prefix(Alias, _).
128rdf_prefix_append(Ls, L) :-
129 append(Ls, L).
130
131
132rdf_prefix_append(L1, L2, L) :-
133 append(L1, L2, L).
143rdf_prefix_iri(Alias, Local0, Iri) :-
144 ( var(Local0)
145 -> Local = Local0
146 ; atom(Local0)
147 -> Local = Local0
148 ; atomic_list_concat(Local0, /, Local)
149 ),
150 rdf_prefix_iri(Alias:Local, Iri).
156rdf_prefix_map(Alias2Prefix) :-
157 aggregate_all(
158 set(Alias-Prefix),
159 rdf_prefix(Alias, Prefix),
160 Pairs
161 ),
162 ord_list_to_assoc(Pairs, Alias2Prefix).
170rdf_prefix_maplist(Goal_1, L1) :-
171 maplist(Goal_1, L1).
172
173
174rdf_prefix_maplist(Goal_2, L1, L2) :-
175 maplist(Goal_2, L1, L2).
176
177
178rdf_prefix_maplist(Goal_3, L1, L2, L3) :-
179 maplist(Goal_3, L1, L2, L3).
187rdf_prefix_member(Elem, L) :-
188 member(Elem, L).
196rdf_prefix_memberchk(Elem, L) :-
197 memberchk(Elem, L).
205rdf_prefix_selectchk(Elem, L, Rest) :-
206 selectchk(Elem, L, Rest).
216rdf_register_prefix(Alias-Prefix) :- !,
217 rdf_register_prefix(Alias, Prefix).
218rdf_register_prefix(Alias) :-
219 prefix_(Alias, Prefix),
220 rdf_register_prefix(Alias-Prefix).
229rdf_register_prefixes :-
230 rdf_register_dbpedia_prefixes,
231 forall(prefix_(Alias,Iri), rdf_register_prefix(Alias, Iri)).
232
233rdf_register_dbpedia_prefixes :-
234 forall(ltag_(LTag), rdf_register_dbpedia_prefixes(LTag)).
235
236rdf_register_dbpedia_prefixes(LTag) :-
237 atomic_list_concat([LTag,dbpedia,org], ., DBpediaAuthority),
238 239 atomic_list_concat([LTag,dbc], ., Alias1),
240 uri_components(Uri1, uri_components(http,DBpediaAuthority,'/resource/Category:',_,_)),
241 rdf_register_prefix(Alias1, Uri1),
242 243 atomic_list_concat([LTag,dbp], ., Alias2),
244 uri_components(Uri2, uri_components(http,DBpediaAuthority,'/property/',_,_)),
245 rdf_register_prefix(Alias2, Uri2),
246 247 atomic_list_concat([LTag,dbr], ., Alias3),
248 uri_components(Uri3, uri_components(http,DBpediaAuthority,'/resource/',_,_)),
249 rdf_register_prefix(Alias3, Uri3),
250 251 atomic_list_concat([LTag,wikidata], ., Alias4),
252 atomic_list_concat([LTag,wikipedia,org], ., WikidataAuthority),
253 uri_components(Uri4, uri_components(http,WikidataAuthority,'/wiki/',_,_)),
254 rdf_register_prefix(Alias4, Uri4).
255
256
257
258
259
261
262ltag_(ab).
263ltag_(ace).
264ltag_(af).
265ltag_(als).
266ltag_(am).
267ltag_(an).
268ltag_(ang).
269ltag_(ar).
270ltag_(arc).
271ltag_(arz).
272ltag_(as).
273ltag_(ast).
274ltag_(av).
275ltag_(ay).
276ltag_(az).
277ltag_(ba).
278ltag_(bar).
279ltag_('bat-smg').
280ltag_(bat_smg).
281ltag_(bcl).
282ltag_(bcl_smg).
283ltag_(be).
284ltag_('be-x-old').
285ltag_(be_x_old).
286ltag_(bg).
287ltag_(bi).
288ltag_(bjn).
289ltag_(bm).
290ltag_(bn).
291ltag_(bo).
292ltag_(bpy).
293ltag_(br).
294ltag_(bs).
295ltag_(bxr).
296ltag_(ca).
297ltag_(cdo).
298ltag_(ce).
299ltag_(ceb).
300ltag_(chr).
301ltag_(chy).
302ltag_(ckb).
303ltag_(co).
304ltag_(commons).
305ltag_(cr).
306ltag_(crh).
307ltag_(cs).
308ltag_(csb).
309ltag_(cv).
310ltag_(cy).
311ltag_(da).
312ltag_(de).
313ltag_(diq).
314ltag_(dv).
315ltag_(ee).
316ltag_(el).
317ltag_(en).
318ltag_(eo).
319ltag_(es).
320ltag_(et).
321ltag_(ext).
322ltag_(eu).
323ltag_(fa).
324ltag_(fi).
325ltag_(fiu).
326ltag_(fiu_vro).
327ltag_(fj).
328ltag_(fo).
329ltag_(fr).
330ltag_(frp).
331ltag_(frr).
332ltag_(fy).
333ltag_(ga).
334ltag_(gan).
335ltag_(gd).
336ltag_(gl).
337ltag_(gn).
338ltag_(got).
339ltag_(gu).
340ltag_(gv).
341ltag_(ha).
342ltag_(hak).
343ltag_(he).
344ltag_(hi).
345ltag_(hif).
346ltag_(hr).
347ltag_(hsb).
348ltag_(ht).
349ltag_(hu).
350ltag_(hy).
351ltag_(ia).
352ltag_(id).
353ltag_(ig).
354ltag_(ilo).
355ltag_(io).
356ltag_(is).
357ltag_(it).
358ltag_(ja).
359ltag_(jbo).
360ltag_(jv).
361ltag_(ka).
362ltag_(kaa).
363ltag_(kab).
364ltag_(kbd).
365ltag_(ki).
366ltag_(kk).
367ltag_(kl).
368ltag_(km).
369ltag_(kn).
370ltag_(ko).
371ltag_(koi).
372ltag_(ks).
373ltag_(ku).
374ltag_(kv).
375ltag_(ky).
376ltag_(la).
377ltag_(lb).
378ltag_(lbe).
379ltag_(lez).
380ltag_(li).
381ltag_(lmo).
382ltag_(ln).
383ltag_(lt).
384ltag_(lv).
385ltag_(map_bms).
386ltag_(mg).
387ltag_(mhr).
388ltag_(mk).
389ltag_(ml).
390ltag_(mn).
391ltag_(mr).
392ltag_(mrj).
393ltag_(ms).
394ltag_(my).
395ltag_(na).
396ltag_(nah).
397ltag_(nap).
398ltag_(nds).
399ltag_(nds_nl).
400ltag_(ne).
401ltag_(new).
402ltag_(nl).
403ltag_(nn).
404ltag_(no).
405ltag_(nrm).
406ltag_(nv).
407ltag_(oc).
408ltag_(or).
409ltag_(pa).
410ltag_(pam).
411ltag_(pcd).
412ltag_(pms).
413ltag_(pnb).
414ltag_(pl).
415ltag_(pt).
416ltag_(qu).
417ltag_(ro).
418ltag_('roa-rup').
419ltag_(ru).
420ltag_(rw).
421ltag_(sa).
422ltag_(sah).
423ltag_(scn).
424ltag_(sco).
425ltag_(se).
426ltag_(sh).
427ltag_(si).
428ltag_(simple).
429ltag_(sk).
430ltag_(sl).
431ltag_(sm).
432ltag_(sn).
433ltag_(so).
434ltag_(sq).
435ltag_(sr).
436ltag_(srn).
437ltag_(su).
438ltag_(sv).
439ltag_(sw).
440ltag_(szl).
441ltag_(ta).
442ltag_(te).
443ltag_(tg).
444ltag_(th).
445ltag_(tl).
446ltag_(to).
447ltag_(tpi).
448ltag_(tr).
449ltag_(tt).
450ltag_(tum).
451ltag_(udm).
452ltag_(ug).
453ltag_(uk).
454ltag_(ur).
455ltag_(uz).
456ltag_(vec).
457ltag_(vi).
458ltag_(vo).
459ltag_(vls).
460ltag_(wa).
461ltag_(war).
462ltag_(wo).
463ltag_(wuu).
464ltag_(xal).
465ltag_(yi).
466ltag_(yo).
467ltag_(yoh).
468ltag_(zh).
469ltag_('zh-min-nan').
470ltag_(zh_min_nan).
471ltag_('zh-yue').
472ltag_(zh_yue).
473
474
475
476
477
479
480prefix_(Alias, Prefix) :-
481 rdf_db:ns(Alias, Prefix).
482prefix_(aat, 'http://vocab.getty.edu/aat/').
483prefix_(bag, 'https://bag2.basisregistraties.overheid.nl/bag/def/').
484prefix_(bgt, 'https://bgt.basisregistraties.overheid.nl/bgt/def/').
485prefix_(bibframe, 'http://id.loc.gov/ontologies/bibframe/').
486prefix_(bibo, 'http://purl.org/ontology/bibo/').
487prefix_(bnode, 'https://lodlaundromat.org/.well-known/genid/').
488prefix_(cms, 'http://SemanticCMS.cc/vocab/').
489prefix_(crs, 'http://www.opengis.net/def/crs/OGC/1.3/').
490prefix_(csvw, 'http://www.w3.org/ns/csvw#').
491prefix_(cyc, 'http://sw.opencyc.org/concept/').
492prefix_(dawgt, 'http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#').
493prefix_(dbc, 'http://dbpedia.org/resource/Category:').
494prefix_(dbd, 'http://dbpedia.org/datatype/').
495prefix_(dbo, 'http://dbpedia.org/ontology/').
496prefix_(dbp, 'http://dbpedia.org/property/').
497prefix_(dbr, 'http://dbpedia.org/resource/').
498prefix_(dby, 'http://dbpedia.org/class/yago/').
499prefix_(dcat, 'http://www.w3.org/ns/dcat#').
500prefix_(dce, 'http://purl.org/dc/elements/1.1/').
501prefix_(dcm, 'http://purl.org/dc/dcmitype/').
502prefix_(dct, 'http://purl.org/dc/terms/').
503prefix_(dolce, 'http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#').
504prefix_(dqv, 'http://www.w3.org/ns/dqv#').
505prefix_(earl, 'http://www.w3.org/ns/earl#').
506prefix_(ex, 'https://example.org/').
507prefix_(fabio, 'http://purl.org/spar/fabio/').
508prefix_(fb, 'http://ogp.me/ns/fb#').
510prefix_(freebase, 'http://rdf.freebase.com/ns/').
511prefix_(fn, 'http://www.w3.org/2005/xpath-functions#').
512prefix_(formats, 'http://www.w3.org/ns/formats/').
513prefix_(geo, 'http://www.opengis.net/ont/geosparql#').
514prefix_(geof, 'http://www.opengis.net/def/function/geosparql/').
515prefix_(geonames, 'http://sws.geonames.org/').
516prefix_(geor, 'http://www.opengis.net/def/rule/geosparql/').
517prefix_(gg, 'http://www.gemeentegeschiedenis.nl/gg-schema#').
518prefix_(gml, 'http://www.opengis.net/ont/gml#').
519prefix_(gr, 'http://purl.org/goodrelations/v1#').
520prefix_(grddl, 'http://www.w3.org/2003/g/data-view#').
521prefix_(gvp, 'http://vocab.getty.edu/ontology#').
522prefix_(http, 'http://www.w3.org/2011/http#').
523prefix_(hydra, 'http://www.w3.org/ns/hydra/core#').
524prefix_(ical, 'http://www.w3.org/2002/12/cal/icaltzd#').
525prefix_(iolite, 'http://www.ontologydesignpatterns.org/ont/dul/IOLite.owl#').
526prefix_(ldm, 'https://ldm.cc/').
527prefix_(lexvo, 'http://lexvo.org/ontology#').
528prefix_(ll, 'https://lodlaundromat.org/def/').
529prefix_(lmm1, 'http://www.ontologydesignpatterns.org/ont/lmm/LMM_L1.owl#').
530prefix_(ma, 'http://www.w3.org/ns/ma-ont#').
531prefix_(mf, 'http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#').
532prefix_(nen3610, 'http://definities.geostandaarden.nl/def/nen3610#').
533prefix_(nyt, 'http://data.nytimes.com/').
534prefix_(ontopic, 'http://www.ontologydesignpatterns.org/ont/dul/ontopic.owl#').
535prefix_(openlinks, 'http://www.openlinksw.com/schemas/virtrdf#').
536prefix_(orcid, 'http://orcid.org/').
537prefix_(org, 'http://www.w3.org/ns/org#').
539prefix_(own16, 'http://www.ontologydesignpatterns.org.it/ont/own/own16.owl#').
540prefix_(pnv, 'https://w3id.org/pnv#').
541prefix_(prov, 'http://www.w3.org/ns/prov#').
542prefix_(qb, 'http://purl.org/linked-data/cube#').
543prefix_(qsim, 'https://krr.triply.cc/webqr/qsim/def/').
544prefix_(qt, 'http://www.w3.org/2001/sw/DataAccess/tests/test-query#').
546prefix_(rdfa, 'http://www.w3.org/ns/rdfa#').
548prefix_(rdft, 'http://www.w3.org/ns/rdftest#').
551prefix_(rel, 'http://id.loc.gov/vocabulary/relators/').
552prefix_(rif, 'http://www.w3.org/2007/rif#').
553prefix_(role, 'http://www.w3.org/1999/xhtml/vocab#role').
554prefix_(rr, 'http://www.w3.org/ns/r2rml#').
555prefix_(sd, 'http://www.w3.org/ns/sparql-service-description#').
556prefix_(sdo, 'https://schema.org/').
557prefix_(sf, 'http://www.opengis.net/ont/sf#').
558prefix_(sfn, ' http://www.w3.org/ns/sparql#').
559prefix_(sh, 'http://www.w3.org/ns/shacl#').
560prefix_(sioc, 'http://rdfs.org/sioc/ns#').
562prefix_(spitfire, 'http://spitfire-project.eu/ontology/ns/').
563prefix_(skosxl, 'http://www.w3.org/2008/05/skos-xl#').
564prefix_(time, 'http://www.w3.org/2006/time#').
565prefix_(umbel, 'http://umbel.org/umbel#').
566prefix_(uom, 'http://www.opengis.net/def/uom/OGC/1.0/').
567prefix_(vann, 'http://purl.org/vocab/vann/').
568prefix_(vcard, 'http://www.w3.org/2006/vcard/ns#').
569prefix_(vo, 'http://open.vocab.org/terms/').
571prefix_(wde, 'http://www.wikidata.org/entity/').
572prefix_(wdp, 'http://www.wikidata.org/prop/direct/').
573prefix_(wdr, 'http://www.w3.org/2007/05/powder#').
574prefix_(wdrs, 'http://www.w3.org/2007/05/powder-s#').
575prefix_(wgs84, 'http://www.w3.org/2003/01/geo/wgs84_pos#').
576prefix_(wv, 'http://vocab.org/waiver/terms/norms').
577prefix_(xhv, 'http://www.w3.org/1999/xhtml/vocab#').
578prefix_(xml, 'http://www.w3.org/XML/1998/namespace').
580prefix_(yago, 'http://yago-knowledge.org/resource/').
581
582
583
584
585
593init_rdf_prefix :-
594 maplist(
595 [Alias0]>>ignore(retract(rdf_db:ns(Alias0,_))),
596 [dc,dcterms,eor,serql]
597 )
RDF prefix support
This module extends module `rdf_prefixes' that is part of the standards SWI-Prolog distribution.