### Prolog built-ins -- Jos De Roo
###
### Usage: (arguments) prolog:relation_name true_or_false.
###        (arguments) prolog:function_name function_value.
###
### See also http://www.swi-prolog.org/pldoc/man?section=builtin
### For test cases see http://eulersharp.sourceforge.net/2007/07test/biP.n3

# Notation of Predicate Descriptions:
# +	Argument must be fully instantiated to a term that satisfies the required argument type. Think of the argument as input.
# -	Argument must be unbound. Think of the argument as output.
# ?	Argument must be bound to a partial term of the indicated type. Note that a variable is a partial term for any type. Think of the argument as either input or output or both input and output.
# :	Argument is a meta-argument. Implies +.
# @	Argument is not further instantiated. Typically used for type tests.
# !	Argument contains a mutable structure that may be modified using setarg/3 or nb_setarg/3.


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix owl: <http://www.w3.org/2002/07/owl#>.
@prefix e: <http://eulersharp.sourceforge.net/2003/03swap/log-rules#>.
@prefix prolog: <http://eulersharp.sourceforge.net/2003/03swap/prolog#>.

<http://eulersharp.sourceforge.net/2003/03swap/prolog> rdfs:seeAlso <http://www.swi-prolog.org/pldoc/man?section=builtin>.

prolog:abolish				a rdf:Property, e:Builtin; rdfs:comment "abolish(:PredicateIndicator)"; rdfs:comment "abolish(+Name, +Arity)".
prolog:abort				a rdf:Property, e:Builtin; rdfs:comment "abort".
prolog:abs				a owl:FunctionalProperty, e:Builtin; rdfs:comment "abs(+Expr)".
prolog:absolute_file_name		a rdf:Property, e:Builtin; rdfs:comment "absolute_file_name(+File, -Absolute)"; rdfs:comment "absolute_file_name(+Spec, -Absolute, +Options)".
prolog:acos				a owl:FunctionalProperty, e:Builtin; rdfs:comment "acos(+Expr)".
prolog:acosh				a owl:FunctionalProperty, e:Builtin; rdfs:comment "acosh(+Expr)".
prolog:acyclic_term			a rdf:Property, e:Builtin; rdfs:comment "acyclic_term(@Term)".
prolog:alarm				a rdf:Property, e:Builtin; rdfs:comment "alarm(+Time, :Callable, -Id)"; rdfs:comment "alarm(+Time, :Callable, -Id, +Options)".
prolog:append				a rdf:Property, e:Builtin; rdfs:comment "append(+ListOfLists, ?List)"; rdfs:comment "append(?List1, ?List2, ?List1AndList2)".
prolog:arg				a rdf:Property, e:Builtin; rdfs:comment "arg(?Arg, +Term, ?Value)".
prolog:arithmetic_equal			a rdf:Property, e:Builtin; rdfs:comment "+Expr1 =:= +Expr2".
prolog:arithmetic_greater_than		a rdf:Property, e:Builtin; rdfs:comment "+Expr1 > +Expr2".
prolog:arithmetic_greater_than_or_equal	a rdf:Property, e:Builtin; rdfs:comment "+Expr1 >= +Expr2".
prolog:arithmetic_less_than		a rdf:Property, e:Builtin; rdfs:comment "+Expr1 < +Expr2".
prolog:arithmetic_less_than_or_equal	a rdf:Property, e:Builtin; rdfs:comment "+Expr1 =< +Expr2".
prolog:arithmetic_not_equal		a rdf:Property, e:Builtin; rdfs:comment "+Expr1 =\\= +Expr2".
prolog:asin				a owl:FunctionalProperty, e:Builtin; rdfs:comment "asin(+Expr)".
prolog:asinh				a owl:FunctionalProperty, e:Builtin; rdfs:comment "asinh(+Expr)".
prolog:assert				a rdf:Property, e:Builtin; rdfs:comment "assert(+Term)"; rdfs:comment "assert(+Term, -Reference)".
prolog:asserta				a rdf:Property, e:Builtin; rdfs:comment "asserta(+Term)"; rdfs:comment "asserta(+Term, -Reference)".
prolog:assertz				a rdf:Property, e:Builtin; rdfs:comment "assertz(+Term)"; rdfs:comment "assertz(+Term, -Reference)".
prolog:at_end_of_stream			a rdf:Property, e:Builtin; rdfs:comment "at_end_of_stream"; rdfs:comment "at_end_of_stream(+Stream)".
prolog:atan				a owl:FunctionalProperty, e:Builtin; rdfs:comment "atan(+Expr)"; rdfs:comment "atan(+YExpr, +XExpr)".
prolog:atan2				a owl:FunctionalProperty, e:Builtin; rdfs:comment "atan2(+YExpr, +XExpr)".
prolog:atanh				a owl:FunctionalProperty, e:Builtin; rdfs:comment "atanh(+Expr)".
prolog:atom				a rdf:Property, e:Builtin, rdfs:Datatype; rdfs:comment "atom(@Term)".
prolog:atom_chars			a rdf:Property, e:Builtin; rdfs:comment "atom_chars(?Atom, ?CharList)".
prolog:atom_codes			a rdf:Property, e:Builtin; rdfs:comment "atom_codes(?Atom, ?String)".
prolog:atom_concat			a rdf:Property, e:Builtin; rdfs:comment "atom_concat(?Atom1, ?Atom2, ?Atom3)".
prolog:atom_length			a rdf:Property, e:Builtin; rdfs:comment "atom_length(+Atom, -Length)".
prolog:atom_number			a rdf:Property, e:Builtin; rdfs:comment "atom_number(?Atom, ?Number)".
prolog:atomic				a rdf:Property, e:Builtin; rdfs:comment "atomic(@Term)".
prolog:atomic_concat			a rdf:Property, e:Builtin; rdfs:comment "atomic_concat(+Atomic1, +Atomic2, -Atom)".
prolog:atomic_list_concat		a rdf:Property, e:Builtin; rdfs:comment "atomic_list_concat(+List, -Atom)"; rdfs:comment "atomic_list_concat(+List, +Separator, -Atom)".
prolog:b_getval				a rdf:Property, e:Builtin; rdfs:comment "b_getval(+Name, -Value)".
prolog:b_setval				a rdf:Property, e:Builtin; rdfs:comment "b_setval(+Name, +Value)".
prolog:bagof				a rdf:Property, e:Builtin; rdfs:comment "bagof(+Template, :Goal, -Bag)".
prolog:between				a rdf:Property, e:Builtin; rdfs:comment "between(+Low, +High, ?Value)".
prolog:break				a rdf:Property, e:Builtin; rdfs:comment "break".
prolog:call				a rdf:Property, e:Builtin; rdfs:comment "call(:Goal)"; rdfs:comment "call(:Goal, +ExtraArg1, ...)".
prolog:call_residue_vars		a rdf:Property, e:Builtin; rdfs:comment "call_residue_vars(:Goal, -Vars)".
prolog:callable				a rdf:Property, e:Builtin; rdfs:comment "callable(@Term)".
prolog:catch				a rdf:Property, e:Builtin; rdfs:comment "catch(:Goal, +Catcher, :Recover)".
prolog:ceiling				a owl:FunctionalProperty, e:Builtin; rdfs:comment "ceiling(+Expr)".
prolog:char_code			a rdf:Property, e:Builtin; rdfs:comment "char_code(?Atom, ?Code)".
prolog:char_conversion			a rdf:Property, e:Builtin; rdfs:comment "char_conversion(+CharIn, +CharOut)".
prolog:char_type			a rdf:Property, e:Builtin; rdfs:comment "char_type(?Char, ?Type)".
prolog:character_count			a rdf:Property, e:Builtin; rdfs:comment "character_count(+Stream, -Count)".
prolog:clause				a rdf:Property, e:Builtin; rdfs:comment "clause(:Head, ?Body)"; rdfs:comment "clause(:Head, ?Body, ?Reference)".
prolog:close				a rdf:Property, e:Builtin; rdfs:comment "close(+Stream)"; rdfs:comment "close(+Stream, +Options)".
prolog:code_type			a rdf:Property, e:Builtin; rdfs:comment "code_type(?Code, ?Type)".
prolog:compare				a rdf:Property, e:Builtin; rdfs:comment "compare(?Order, @Term1, @Term2)".
prolog:compound				a rdf:Property, e:Builtin; rdfs:comment "compound(@Term)".
prolog:conjunction			a rdf:Property, e:Builtin; rdfs:comment ":Goal1 , :Goal2".
prolog:copy_term			a rdf:Property, e:Builtin; rdfs:comment "copy_term(+In, -Out)"; rdfs:comment "copy_term(+Term, -Copy, -Gs)".
prolog:copy_term_nat			a rdf:Property, e:Builtin; rdfs:comment "copy_term_nat(+In, -Out)".
prolog:cos				a owl:FunctionalProperty, e:Builtin; rdfs:comment "cos(+Expr)".
prolog:cosh				a owl:FunctionalProperty, e:Builtin; rdfs:comment "cosh(+Expr)".
prolog:cputime				a owl:FunctionalProperty, e:Builtin; rdfs:comment "cputime".
prolog:create_mutable			a rdf:Property, e:Builtin; rdfs:comment "create_mutable(?Value, -Mutable)".
prolog:create_prolog_flag		a rdf:Property, e:Builtin; rdfs:comment "create_prolog_flag(+Key, +Value, +Options)".
prolog:current_atom			a rdf:Property, e:Builtin; rdfs:comment "current_atom(-Atom)".
prolog:current_char_conversion		a rdf:Property, e:Builtin; rdfs:comment "current_char_conversion(?CharIn, ?CharOut)".
prolog:current_input			a rdf:Property, e:Builtin; rdfs:comment "current_input(-Stream)".
prolog:current_key			a rdf:Property, e:Builtin; rdfs:comment "current_key(-Key)".
prolog:current_module			a rdf:Property, e:Builtin; rdfs:comment "current_module(?Module)".
prolog:current_op			a rdf:Property, e:Builtin; rdfs:comment "current_op(?Precedence, ?Type, ?:Name)".
prolog:current_output			a rdf:Property, e:Builtin; rdfs:comment "current_output(-Stream)".
prolog:current_predicate		a rdf:Property, e:Builtin; rdfs:comment "current_predicate(:PredicateIndicator)"; rdfs:comment "current_predicate(?Name, :Head)".
prolog:current_prolog_flag		a rdf:Property, e:Builtin; rdfs:comment "current_prolog_flag(?Key, -Value)".
prolog:cut				a rdf:Property, e:Builtin; rdfs:comment "!".
prolog:cyclic_term			a rdf:Property, e:Builtin; rdfs:comment "cyclic_term(@Term)".
prolog:date_time_stamp			a rdf:Property, e:Builtin; rdfs:comment "date_time_stamp(+DateTime, -TimeStamp)".
prolog:date_time_value			a rdf:Property, e:Builtin; rdfs:comment "date_time_value(?Key, +DateTime, ?Value)".
prolog:day_of_the_week			a rdf:Property, e:Builtin; rdfs:comment "day_of_the_week(+Date, -DayOfTheWeek)".
prolog:delete				a rdf:Property, e:Builtin; rdfs:comment "delete(+List1, @Elem, -List2)".
prolog:dif				a rdf:Property, e:Builtin; rdfs:comment "dif(@A, @B)".
prolog:discontiguous			a rdf:Property, e:Builtin; rdfs:comment "discontiguous(:PredicateIndicator)".
prolog:disjunction			a rdf:Property, e:Builtin; rdfs:comment ":Goal1 ; :Goal2".
prolog:display				a rdf:Property, e:Builtin; rdfs:comment "display(+Term)"; rdfs:comment "display(+Stream, +Term)".
prolog:div				a owl:FunctionalProperty, e:Builtin; rdfs:comment "div(+IntExpr1, +IntExpr2)".
prolog:duplicate_term			a rdf:Property, e:Builtin; rdfs:comment "duplicate_term(+In, -Out)".
prolog:dynamic				a rdf:Property, e:Builtin; rdfs:comment "dynamic(:PredicateIndicator)".
prolog:e				a owl:FunctionalProperty, e:Builtin; rdfs:comment "e".
prolog:ensure_loaded			a rdf:Property, e:Builtin; rdfs:comment "ensure_loaded(:File)".
prolog:environ				a rdf:Property, e:Builtin; rdfs:comment "environ(?Name, ?Value)".
prolog:epsilon				a owl:FunctionalProperty, e:Builtin; rdfs:comment "epsilon".
prolog:erase				a rdf:Property, e:Builtin; rdfs:comment "erase(+Reference)".
prolog:erf				a owl:FunctionalProperty, e:Builtin; rdfs:comment "erf(+Expr)".
prolog:erfc				a owl:FunctionalProperty, e:Builtin; rdfs:comment "erfc(+Expr)".
prolog:exception			a rdf:Property, e:Builtin; rdfs:comment "exception(+Exception, +Context, -Action)".
prolog:exists				a rdf:Property, e:Builtin; rdfs:comment "exists(+File)".
prolog:exp				a owl:FunctionalProperty, e:Builtin; rdfs:comment "exp(+Expr)".
prolog:fail				a rdf:Property, e:Builtin; rdfs:comment "fail".
prolog:false				a rdf:Property, e:Builtin; rdfs:comment "false".
prolog:file_base_name			a rdf:Property, e:Builtin; rdfs:comment "file_base_name(+File, -BaseName)".
prolog:file_name_extension		a rdf:Property, e:Builtin; rdfs:comment "file_name_extension(?Base, ?Extension, ?Name)".
prolog:findall				a rdf:Property, e:Builtin; rdfs:comment "findall(+Template, :Goal, -Bag)"; rdfs:comment "findall(+Template, :Goal, -Bag, +Tail)".
prolog:flatten				a rdf:Property, e:Builtin; rdfs:comment "flatten(+List1, ?List2)".
prolog:float				a rdf:Property, e:Builtin; rdfs:comment "float(@Term)".
prolog:float_fractional_part		a owl:FunctionalProperty, e:Builtin; rdfs:comment "float_fractional_part(+Expr)".
prolog:float_function			a owl:FunctionalProperty, e:Builtin; rdfs:comment "float(+Expr)".
prolog:float_integer_part		a owl:FunctionalProperty, e:Builtin; rdfs:comment "float_integer_part(+Expr)".
prolog:floor				a owl:FunctionalProperty, e:Builtin; rdfs:comment "floor(+Expr)".
prolog:flush_output			a rdf:Property, e:Builtin; rdfs:comment "flush_output"; rdfs:comment "flush_output(+Stream)".
prolog:forall				a rdf:Property, e:Builtin; rdfs:comment "forall(:Cond, :Action)".
prolog:format				a rdf:Property, e:Builtin; rdfs:comment "format(+Format)"; rdfs:comment "format(+Format, :Arguments)"; rdfs:comment "format(+Output, +Format, :Arguments)".
prolog:format_time			a rdf:Property, e:Builtin; rdfs:comment "format_time(+Out, +Format, +StampOrDateTime)"; rdfs:comment "format_time(+Out, +Format, +StampOrDateTime, +Locale)".
prolog:freeze				a rdf:Property, e:Builtin; rdfs:comment "freeze(+Var, :Goal)".
prolog:frozen				a rdf:Property, e:Builtin; rdfs:comment "frozen(@Var, -Goal)".
prolog:functor				a rdf:Property, e:Builtin; rdfs:comment "functor(?Term, ?Name, ?Arity)".
prolog:garbage_collect			a rdf:Property, e:Builtin; rdfs:comment "garbage_collect".
prolog:garbage_collect_atoms		a rdf:Property, e:Builtin; rdfs:comment "garbage_collect_atoms".
prolog:gc				a rdf:Property, e:Builtin; rdfs:comment "gc".
prolog:gcd				a owl:FunctionalProperty, e:Builtin; rdfs:comment "gcd(+IntExpr1, +IntExpr2)".
prolog:get				a rdf:Property, e:Builtin; rdfs:comment "get(-Char)"; rdfs:comment "get(+Stream, -Char)".
prolog:get_byte				a rdf:Property, e:Builtin; rdfs:comment "get_byte(-Byte)"; rdfs:comment "get_byte(+Stream, -Byte)".
prolog:get_char				a rdf:Property, e:Builtin; rdfs:comment "get_char(-Char)"; rdfs:comment "get_char(+Stream, -Char)".
prolog:get_code				a rdf:Property, e:Builtin; rdfs:comment "get_code(-Code)"; rdfs:comment "get_code(+Stream, -Code)".
prolog:get_mutable			a rdf:Property, e:Builtin; rdfs:comment "get_mutable(?Value, +Mutable)".
prolog:get_time				a rdf:Property, e:Builtin; rdfs:comment "get_time(-TimeStamp)".
prolog:get0				a rdf:Property, e:Builtin; rdfs:comment "get0(-Char)"; rdfs:comment "get0(+Stream, -Char)".
prolog:getcwd				a rdf:Property, e:Builtin; rdfs:comment "getcwd(-Dir)".
prolog:ground				a rdf:Property, e:Builtin; rdfs:comment "ground(@Term)".
prolog:halt				a rdf:Property, e:Builtin; rdfs:comment "halt"; rdfs:comment "halt(+Status)".
prolog:if				a rdf:Property, e:Builtin; rdfs:comment ":Condition *-> :Action ; :Else"; rdfs:comment "if(?G, ?H, ?I)".
prolog:if_then				a rdf:Property, e:Builtin; rdfs:comment ":Condition -> :Action".
prolog:if_then_else			a rdf:Property, e:Builtin; rdfs:comment ":Condition -> :Action ; :Else".
prolog:ignore				a rdf:Property, e:Builtin; rdfs:comment "ignore(:Goal)".
prolog:include				a rdf:Property, e:Builtin; rdfs:comment "include(+File)".
prolog:initialization			a rdf:Property, e:Builtin; rdfs:comment "initialization(:Goal)"; rdfs:comment "initialization(:Goal, +When)".
prolog:instance				a rdf:Property, e:Builtin; rdfs:comment "instance(+Reference, -Term)".
prolog:integer				a rdf:Property, e:Builtin; rdfs:comment "integer(@Term)".
prolog:integer_conjunction		a owl:FunctionalProperty, e:Builtin; rdfs:comment "+IntExpr1 /\\ +IntExpr2".
prolog:integer_disjunction		a owl:FunctionalProperty, e:Builtin; rdfs:comment "+IntExpr1 \\/ +IntExpr2".
prolog:integer_exclusive_disjunction	a owl:FunctionalProperty, e:Builtin; rdfs:comment "+IntExpr1 xor +IntExpr2".
prolog:integer_function			a owl:FunctionalProperty, e:Builtin; rdfs:comment "integer(+Expr)".
prolog:integer_left_logical_shift	a owl:FunctionalProperty, e:Builtin; rdfs:comment "+IntExpr1 << +IntExpr2".
prolog:integer_negation			a owl:FunctionalProperty, e:Builtin; rdfs:comment "\\ +IntExpr".
prolog:integer_power			a owl:FunctionalProperty, e:Builtin; rdfs:comment "+IntExpr1 ^ +IntExpr2".
prolog:integer_quotient			a owl:FunctionalProperty, e:Builtin; rdfs:comment "+IntExpr1 // +IntExpr2".
prolog:integer_right_logical_shift	a owl:FunctionalProperty, e:Builtin; rdfs:comment "+IntExpr1 >> +IntExpr2".
prolog:is				a rdf:Property, e:Builtin; rdfs:comment "-Number is +Expr".
prolog:is_list				a rdf:Property, e:Builtin; rdfs:comment "is_list(+Term)".
prolog:is_stream			a rdf:Property, e:Builtin; rdfs:comment "is_stream(+Term)".
prolog:keysort				a rdf:Property, e:Builtin; rdfs:comment "keysort(+List, -Sorted)".
prolog:last				a rdf:Property, e:Builtin; rdfs:comment "last(?List, ?Last)".
prolog:length				a rdf:Property, e:Builtin; rdfs:comment "length(?List, ?Int)".
prolog:lgamma				a owl:FunctionalProperty, e:Builtin; rdfs:comment "lgamma(+Expr)".
prolog:line_count			a rdf:Property, e:Builtin; rdfs:comment "line_count(+Stream, -Count)".
prolog:line_position			a rdf:Property, e:Builtin; rdfs:comment "line_position(+Stream, -Count)".
prolog:listing				a rdf:Property, e:Builtin; rdfs:comment "listing"; rdfs:comment "listing(:Pred)".
prolog:log				a owl:FunctionalProperty, e:Builtin; rdfs:comment "log(+Expr)".
prolog:log10				a owl:FunctionalProperty, e:Builtin; rdfs:comment "log10(+Expr)".
prolog:lsb				a owl:FunctionalProperty, e:Builtin; rdfs:comment "lsb(+IntExpr)".
prolog:max				a owl:FunctionalProperty, e:Builtin; rdfs:comment "max(+Expr1, +Expr2)".
prolog:max_list				a rdf:Property, e:Builtin; rdfs:comment "max_list(+List:list(number), -Max:number)".
prolog:member				a rdf:Property, e:Builtin; rdfs:comment "member(?Elem, ?List)".
prolog:memberchk			a rdf:Property, e:Builtin; rdfs:comment "memberchk(?Elem, +List)".
prolog:message_to_string		a rdf:Property, e:Builtin; rdfs:comment "message_to_string(+Term, -String)".
prolog:min				a owl:FunctionalProperty, e:Builtin; rdfs:comment "min(+Expr1, +Expr2)".
prolog:min_list				a rdf:Property, e:Builtin; rdfs:comment "min_list(+List:list(number), -Min:number)".
prolog:minus				a owl:FunctionalProperty, e:Builtin; rdfs:comment "- +Expr"; rdfs:comment "+Expr1 - +Expr2".
prolog:mod				a owl:FunctionalProperty, e:Builtin; rdfs:comment "+IntExpr1 mod +IntExpr2".
prolog:msb				a owl:FunctionalProperty, e:Builtin; rdfs:comment "msb(+IntExpr)".
prolog:multifile			a rdf:Property, e:Builtin; rdfs:comment "multifile(:PredicateIndicator)".
prolog:name				a rdf:Property, e:Builtin; rdfs:comment "name(?Atomic, ?CodeList)".
prolog:nb_current			a rdf:Property, e:Builtin; rdfs:comment "nb_current(?Name, ?Value)".
prolog:nb_delete			a rdf:Property, e:Builtin; rdfs:comment "nb_delete(+Name)".
prolog:nb_getval			a rdf:Property, e:Builtin; rdfs:comment "nb_getval(+Name, -Value)".
prolog:nb_linkarg			a rdf:Property, e:Builtin; rdfs:comment "nb_linkarg(+Arg, +Term, +Value)".
prolog:nb_linkval			a rdf:Property, e:Builtin; rdfs:comment "nb_linkval(+Name, +Value)".
prolog:nb_setarg			a rdf:Property, e:Builtin; rdfs:comment "nb_setarg(+Arg, +Term, +Value)".
prolog:nb_setval			a rdf:Property, e:Builtin; rdfs:comment "nb_setval(+Name, +Value)".
prolog:nl				a rdf:Property, e:Builtin; rdfs:comment "nl"; rdfs:comment "nl(+Stream)".
prolog:nonvar				a rdf:Property, e:Builtin; rdfs:comment "nonvar(@Term)".
prolog:not_provable			a rdf:Property, e:Builtin; rdfs:comment "\\+ +Goal".
prolog:not_unifiable			a rdf:Property, e:Builtin; rdfs:comment "@Term1 \\= @Term1".
prolog:nth				a rdf:Property, e:Builtin; rdfs:comment "nth(?Index, ?List, ?Element)".
prolog:nth_clause			a rdf:Property, e:Builtin; rdfs:comment "nth_clause(?Pred, ?Index, ?Reference)".
prolog:nth0				a rdf:Property, e:Builtin; rdfs:comment "nth0(?Index, ?List, ?Elem)"; rdfs:comment "nth0(?N, ?List, ?Elem, ?Rest)".
prolog:nth1				a rdf:Property, e:Builtin; rdfs:comment "nth1(?Index, ?List, ?Elem)"; rdfs:comment "nth1(?N, ?List, ?Elem, ?Rest)".
prolog:number				a rdf:Property, e:Builtin; rdfs:comment "number(@Term)".
prolog:number_chars			a rdf:Property, e:Builtin; rdfs:comment "number_chars(?Number, ?CharList)".
prolog:number_codes			a rdf:Property, e:Builtin; rdfs:comment "number_codes(?Number, ?CodeList)".
prolog:numbervars			a rdf:Property, e:Builtin; rdfs:comment "numbervars(+Term, +Start, -End)".
prolog:numlist				a rdf:Property, e:Builtin; rdfs:comment "numlist(+Low, +High, -List)".
prolog:on_signal			a rdf:Property, e:Builtin; rdfs:comment "on_signal(+Signal, -Old, :New)".
prolog:once				a rdf:Property, e:Builtin; rdfs:comment "once(:Goal)".
prolog:op				a rdf:Property, e:Builtin; rdfs:comment "op(+Precedence, +Type, :Name)".
prolog:open				a rdf:Property, e:Builtin; rdfs:comment "open(+SrcDest, +Mode, ?Stream)"; rdfs:comment "open(+SrcDest, +Mode, -Stream, +Options)".
prolog:parse_time			a rdf:Property, e:Builtin; rdfs:comment "parse_time(+Text, -Stamp)"; rdfs:comment "parse_time(+Text, ?Format, -Stamp)".
prolog:peek_byte			a rdf:Property, e:Builtin; rdfs:comment "peek_byte(-Byte)"; rdfs:comment "peek_byte(+Stream, -Byte)".
prolog:peek_char			a rdf:Property, e:Builtin; rdfs:comment "peek_char(-Char)"; rdfs:comment "peek_char(+Stream, -Char)".
prolog:peek_code			a rdf:Property, e:Builtin; rdfs:comment "peek_code(-Code)"; rdfs:comment "peek_code(+Stream, -Code)".
prolog:permutation			a rdf:Property, e:Builtin; rdfs:comment "permutation(?Xs, ?Ys)".
prolog:pi				a owl:FunctionalProperty, e:Builtin; rdfs:comment "pi".
prolog:plus				a rdf:Property, e:Builtin; rdfs:comment "plus(?Int1, ?Int2, ?Int3)".
prolog:plus_function			a owl:FunctionalProperty, e:Builtin; rdfs:comment "+ +Expr"; rdfs:comment "+Expr1 + +Expr2".
prolog:popcount				a owl:FunctionalProperty, e:Builtin; rdfs:comment "popcount(+IntExpr)".
prolog:portray_clause			a rdf:Property, e:Builtin; rdfs:comment "portray_clause(+Clause)"; rdfs:comment "portray_clause(+Out:stream, +Clause)"; rdfs:comment "portray_clause(+Out:stream, +Clause, +Options)".
prolog:power				a owl:FunctionalProperty, e:Builtin; rdfs:comment "+Expr1 ** +Expr2".
prolog:predicate_property		a rdf:Property, e:Builtin; rdfs:comment "predicate_property(:Head, ?Property)".
prolog:predsort				a rdf:Property, e:Builtin; rdfs:comment "predsort(+Pred, +List, -Sorted)".
prolog:print				a rdf:Property, e:Builtin; rdfs:comment "print(+Term)"; rdfs:comment "print(+Stream, +Term)".
prolog:print_message			a rdf:Property, e:Builtin; rdfs:comment "print_message(+Kind, +Term)".
prolog:print_message_lines		a rdf:Property, e:Builtin; rdfs:comment "print_message_lines(+Stream, +Prefix, +Lines)".
prolog:product				a owl:FunctionalProperty, e:Builtin; rdfs:comment "+Expr1 * +Expr2".
prolog:prolog_flag			a rdf:Property, e:Builtin; rdfs:comment "prolog_flag(+Flag, -Value)"; rdfs:comment "prolog_flag(+Flag, -Old, +New)".
prolog:prolog_load_context		a rdf:Property, e:Builtin; rdfs:comment "prolog_load_context(?Key, ?Value)".
prolog:prompt				a rdf:Property, e:Builtin; rdfs:comment "prompt(-Old, +New)".
prolog:put				a rdf:Property, e:Builtin; rdfs:comment "put(+Char)"; rdfs:comment "put(+Stream, +Char)".
prolog:put_byte				a rdf:Property, e:Builtin; rdfs:comment "put_byte(+Byte)"; rdfs:comment "put_byte(+Stream, +Byte)".
prolog:put_char				a rdf:Property, e:Builtin; rdfs:comment "put_char(+Char)"; rdfs:comment "put_char(+Stream, +Char)".
prolog:put_code				a rdf:Property, e:Builtin; rdfs:comment "put_code(+Code)"; rdfs:comment "put_code(+Stream, +Code)".
prolog:quotient				a owl:FunctionalProperty, e:Builtin; rdfs:comment "+Expr1 / +Expr2".
prolog:random				a owl:FunctionalProperty, e:Builtin; rdfs:comment "random(+IntExpr)".
prolog:rational				a rdf:Property, e:Builtin; rdfs:comment "rational(@Term)".
prolog:rational_function		a owl:FunctionalProperty, e:Builtin; rdfs:comment "rational(+Expr)".
prolog:rationalize			a owl:FunctionalProperty, e:Builtin; rdfs:comment "rationalize(+Expr)".
prolog:read				a rdf:Property, e:Builtin; rdfs:comment "read(-Term)"; rdfs:comment "read(+Stream, -Term)".
prolog:read_term			a rdf:Property, e:Builtin; rdfs:comment "read_term(-Term, +Options)"; rdfs:comment "read_term(+Stream, -Term, +Options)".
prolog:recorda				a rdf:Property, e:Builtin; rdfs:comment "recorda(+Key, +Term, -Reference)".
prolog:recorded				a rdf:Property, e:Builtin; rdfs:comment "recorded(?Key, ?Term, ?Reference)".
prolog:recordz				a rdf:Property, e:Builtin; rdfs:comment "recordz(+Key, +Term, -Reference)".
prolog:rem				a owl:FunctionalProperty, e:Builtin; rdfs:comment "+IntExpr1 rem +IntExpr2".
prolog:rename_file			a rdf:Property, e:Builtin; rdfs:comment "rename_file(+File1, +File2)".
prolog:repeat				a rdf:Property, e:Builtin; rdfs:comment "repeat".
prolog:retract				a rdf:Property, e:Builtin; rdfs:comment "retract(+Term)".
prolog:retractall			a rdf:Property, e:Builtin; rdfs:comment "retractall(+Head)".
prolog:reverse				a rdf:Property, e:Builtin; rdfs:comment "reverse(?List1, ?List2)".
prolog:round				a owl:FunctionalProperty, e:Builtin; rdfs:comment "round(+Expr)".
prolog:same_length			a rdf:Property, e:Builtin; rdfs:comment "same_length(?List1, ?List2)".
prolog:see				a rdf:Property, e:Builtin; rdfs:comment "see(+SrcDest)".
prolog:seeing				a rdf:Property, e:Builtin; rdfs:comment "seeing(?SrcDest)".
prolog:seen				a rdf:Property, e:Builtin; rdfs:comment "seen".
prolog:select				a rdf:Property, e:Builtin; rdfs:comment "select(?Elem, ?List1, ?List2)".
prolog:selectchk			a rdf:Property, e:Builtin; rdfs:comment "selectchk(+Elem, +List, -Rest)".
prolog:set_input			a rdf:Property, e:Builtin; rdfs:comment "set_input(+Stream)".
prolog:set_output			a rdf:Property, e:Builtin; rdfs:comment "set_output(+Stream)".
prolog:set_prolog_flag			a rdf:Property, e:Builtin; rdfs:comment "set_prolog_flag(:Key, +Value)".
prolog:set_stream_position		a rdf:Property, e:Builtin; rdfs:comment "set_stream_position(+Stream, +Pos)".
prolog:setarg				a rdf:Property, e:Builtin; rdfs:comment "setarg(+Arg, +Term, +Value)".
prolog:setof				a rdf:Property, e:Builtin; rdfs:comment "setof(+Template, +Goal, -Set)".
prolog:set_random			a rdf:Property, e:Builtin; rdfs:comment "set_random(+Option)".
prolog:sign				a owl:FunctionalProperty, e:Builtin; rdfs:comment "sign(+Expr)".
prolog:simple				a rdf:Property, e:Builtin; rdfs:comment "simple(@Term)".
prolog:sin				a owl:FunctionalProperty, e:Builtin; rdfs:comment "sin(+Expr)".
prolog:sinh				a owl:FunctionalProperty, e:Builtin; rdfs:comment "sinh(+Expr)".
prolog:skip				a rdf:Property, e:Builtin; rdfs:comment "skip(+Code)"; rdfs:comment "skip(+Stream, +Code)".
prolog:sort				a rdf:Property, e:Builtin; rdfs:comment "sort(+List, -Sorted)".
prolog:source_file			a rdf:Property, e:Builtin; rdfs:comment "source_file(?File)"; rdfs:comment "source_file(?Pred, ?File)".
prolog:source_location			a rdf:Property, e:Builtin; rdfs:comment "source_location(-FileName, -Line)".
prolog:sqrt				a owl:FunctionalProperty, e:Builtin; rdfs:comment "sqrt(+Expr)".
prolog:stamp_date_time			a rdf:Property, e:Builtin; rdfs:comment "stamp_date_time(+TimeStamp, -DateTime, +TimeZone)".
prolog:statistics			a rdf:Property, e:Builtin; rdfs:comment "statistics"; rdfs:comment "statistics(+Key, -Value)".
prolog:stream_position			a rdf:Property, e:Builtin; rdfs:comment "stream_position(+Stream, -Old, +New)".
prolog:stream_position_data		a rdf:Property, e:Builtin; rdfs:comment "stream_position_data(?Field, +Pos, -Data)".
prolog:stream_property			a rdf:Property, e:Builtin; rdfs:comment "stream_property(?Stream, ?StreamProperty)".
prolog:sub_atom				a rdf:Property, e:Builtin; rdfs:comment "sub_atom(+Atom, ?Before, ?Len, ?After, ?Sub)".
prolog:sublist				a rdf:Property, e:Builtin; rdfs:comment "sublist(?Sub, +List)".
prolog:subsumes_term			a rdf:Property, e:Builtin; rdfs:comment "subsumes_term(@Generic, @Specific)".
prolog:succ				a rdf:Property, e:Builtin; rdfs:comment "succ(?Int1, ?Int2)".
prolog:sum_list				a rdf:Property, e:Builtin; rdfs:comment "sum_list(+List, -Sum)".
prolog:tab				a rdf:Property, e:Builtin; rdfs:comment "tab(+Amount)"; rdfs:comment "tab(+Stream, +Amount)".
prolog:tan				a owl:FunctionalProperty, e:Builtin; rdfs:comment "tan(+Expr)".
prolog:tanh				a owl:FunctionalProperty, e:Builtin; rdfs:comment "tanh(+Expr)".
prolog:tell				a rdf:Property, e:Builtin; rdfs:comment "tell(+SrcDest)".
prolog:telling				a rdf:Property, e:Builtin; rdfs:comment "telling(?SrcDest)".
prolog:term_greater_than		a rdf:Property, e:Builtin; rdfs:comment "@Term1 @> @Term2".
prolog:term_greater_than_or_equal	a rdf:Property, e:Builtin; rdfs:comment "@Term1 @>= @Term2".
prolog:term_hash			a rdf:Property, e:Builtin; rdfs:comment "term_hash(+Term, -HashKey)"; rdfs:comment "term_hash(+Term, +Depth, +Range, -HashKey)".
prolog:term_identical			a rdf:Property, e:Builtin; rdfs:comment "@Term1 == @Term2".
prolog:term_less_than			a rdf:Property, e:Builtin; rdfs:comment "@Term1 @< @Term2".
prolog:term_less_than_or_equal		a rdf:Property, e:Builtin; rdfs:comment "@Term1 @=< @Term2".
prolog:term_not_identical		a rdf:Property, e:Builtin; rdfs:comment "@Term1 \\== @Term2".
prolog:term_to_atom			a rdf:Property, e:Builtin; rdfs:comment "term_to_atom(?Term, ?Atom)".
prolog:term_variables			a rdf:Property, e:Builtin; rdfs:comment "term_variables(+Term, -List)".
prolog:throw				a rdf:Property, e:Builtin; rdfs:comment "throw(+Exception)".
prolog:time				a rdf:Property, e:Builtin; rdfs:comment "time(:Goal)".
prolog:time_file			a rdf:Property, e:Builtin; rdfs:comment "time_file(+File, -Time)".
prolog:told				a rdf:Property, e:Builtin; rdfs:comment "told".
prolog:true				a rdf:Property, e:Builtin; rdfs:comment "true".
prolog:truncate				a owl:FunctionalProperty, e:Builtin; rdfs:comment "truncate(+Expr)".
prolog:unifiable			a rdf:Property, e:Builtin; rdfs:comment "unifiable(@X, @Y, -Unifier)".
prolog:unify				a rdf:Property, e:Builtin; rdfs:comment "?Term1 = ?Term2".
prolog:unify_with_occurs_check		a rdf:Property, e:Builtin; rdfs:comment "unify_with_occurs_check(+Term1, +Term2)".
prolog:univ				a rdf:Property, e:Builtin; rdfs:comment "?Term =.. ?List".
prolog:unknown				a rdf:Property, e:Builtin; rdfs:comment "unknown(-Old, +New)".
prolog:update_mutable			a rdf:Property, e:Builtin; rdfs:comment "update_mutable(?Value, !Mutable)".
prolog:var				a rdf:Property, e:Builtin; rdfs:comment "var(@Term)".
prolog:variant				a rdf:Property, e:Builtin; rdfs:comment "variant(@Term1, @Term2)"; rdfs:comment "+Term1 =@= +Term2".
prolog:version				a rdf:Property, e:Builtin; rdfs:comment "version"; rdfs:comment "version(+Message)".
prolog:when				a rdf:Property, e:Builtin; rdfs:comment "when(@Condition, :Goal)".
prolog:with_output_to			a rdf:Property, e:Builtin; rdfs:comment "with_output_to(+Output, :Goal)".
prolog:write				a rdf:Property, e:Builtin; rdfs:comment "write(+Term)"; rdfs:comment "write(+Stream, +Term)".
prolog:write_canonical			a rdf:Property, e:Builtin; rdfs:comment "write_canonical(+Term)"; rdfs:comment "write_canonical(+Stream, +Term)".
prolog:write_term			a rdf:Property, e:Builtin; rdfs:comment "write_term(+Term, +Options)"; rdfs:comment "write_term(+Stream, +Term, +Options)".
prolog:writeln				a rdf:Property, e:Builtin; rdfs:comment "writeln(+Term)".
prolog:writeq				a rdf:Property, e:Builtin; rdfs:comment "writeq(+Term)"; rdfs:comment "writeq(+Stream, +Term)".