ProVRML is Prolog library to handle VRML code. The library consists of modules to handle the tokenising, that is breaking the VRML code into smaller parts that can be analysed further. The further analysis will be the parsing. This is a complex part of the library and consists of several modules to handle errors and value check. When the parsing is done we have the Prolog terms of the VRML code. The terms are quite similar to the origin VRML code and can easily be read if you recognise that syntax.

This Prolog terms of the VRML code is then possible to use for analysis, reconstruction, reverse enginering, building blocks for automatic generation of VRML code. There are several possibilities and these are only some of them.

When you are done with the Prolog terms for the code, you would probably want to reverse the action and return to VRML code. This is done with the code generation modules. These are built up in more or less the same manner as the parser modules.

Description: Given a address to a VRML-document on the Internet, the predicate will return the prolog-terms.

Call and exit should be compatible with:+WEBAddress is an atom.
(basic_props:atm/1)
-Terms is a string (a list of character codes).
(basic_props:string/1)

PREDICATE:vrml_file_to_terms/2:

Usage 1:vrml_file_to_terms(+FileName, -Term)

Description: Given a filename containing a VRML-file the predicate returns the prolog terms corresponding.

Call and exit should be compatible with:+FileName is an atom.
(basic_props:atm/1)
-Term is an atom.
(basic_props:atm/1)

Usage 2:vrml_file_to_terms(+FileName, +Terms)

Description: Given a filename containing a VRML-file and a filename, the predicate write the prolog terms corresponding to the filename.

Call and exit should be compatible with:+FileName is an atom.
(basic_props:atm/1)
+Terms is an atom.
(basic_props:atm/1)

PREDICATE:vrml_web_to_terms_file/2:

Usage:vrml_web_to_terms_file(+WEBAddress, +FileName)

Description: Given a address to a VRML-document on the Internet and a filename, the predicate will write the prolog_terms to the file.

Call and exit should be compatible with:+WEBAddress is an atom.
(basic_props:atm/1)
+FileName is an atom.
(basic_props:atm/1)

PREDICATE:vrml_file_to_terms_file/2:

No further documentation available for this predicate.

PREDICATE:terms_file_to_vrml/2:

Usage:terms_file_to_vrml(+FileName, -List)

Description: From a given filename with prologterms on the special format, the predicate returns the corresponding VRML-code.

Call and exit should be compatible with:+FileName is an atom.
(basic_props:atm/1)
-List is a string (a list of character codes).
(basic_props:string/1)

PREDICATE:terms_file_to_vrml_file/2:

Usage:terms_file_to_vrml_file(+Atom, +Atom)

Description: From a given filename with prologterms on the special format, the predicate writes the corresponding VRML-code to second filename.

Call and exit should be compatible with:+Atom is an atom.
(basic_props:atm/1)
+Atom is an atom.
(basic_props:atm/1)

PREDICATE:terms_to_vrml_file/2:

Usage:terms_to_vrml_file(+Term, +FileName)

Description: Given prolog-terms the predicate writes the corresponding VRML-code to the given file.

Call and exit should be compatible with:+Term is an atom.
(basic_props:atm/1)
+FileName is an atom.
(basic_props:atm/1)

PREDICATE:terms_to_vrml/2:

Usage:terms_to_vrml(+Term, -VRMLCode)

Description: Given prolog-terms the predicate returns a list with the corresponding VRML-code.

Call and exit should be compatible with:+Term is an atom.
(basic_props:atm/1)
-VRMLCode is a string (a list of character codes).
(basic_props:string/1)

PREDICATE:vrml_to_terms/2:

Usage:vrml_to_terms(+VRMLCode, -Terms)

Description: Given a list with VRML-code the predicate will return the corresponding prolog-terms.

Call and exit should be compatible with:+VRMLCode is a string (a list of character codes).
(basic_props:string/1)
-Terms is an atom.
(basic_props:atm/1)

PREDICATE:vrml_in_out/2:

Usage:vrml_in_out(+FileName, +FileName)

Description: This is a controll-predicate that given a filename to a VRML-file and a filename, the predicate will read the VRML-code. Transform it to prolog-terms and then transform it back to VRRML-code and write it to the latter file.

Call and exit should be compatible with:+FileName is an atom.
(basic_props:atm/1)
+FileName is an atom.
(basic_props:atm/1)

PREDICATE:vrml_http_access/2:

Usage:vrml_http_access(+ReadFilename, +BaseFilename)

Description: Given a web-address to a VRML-file the predicate will load the code, write it first to the second argument with extension '_first.wrl'. Then it transform the code to prolog terms and write it with the extension '.term'. Transform it back to VRML-code and write it to the filename with '.wrl. A good test-predicate.

Call and exit should be compatible with:+ReadFilename is an atom.
(basic_props:atm/1)
+BaseFilename is an atom.
(basic_props:atm/1)