Index of /2001/04/pl

[ICO]NameLast modifiedSizeDescription

[PARENTDIR]Parent Directory  -  
[   ]Makefile2001-05-23 16:26 131  
[   ]README2001-04-24 19:25 51  
[TXT]README.html2001-05-08 17:30 2.5K 
[TXT]aristotle-1.n32001-05-21 16:09 333  
[TXT]aristotle-2.n32001-05-21 16:09 333  
[TXT]aristotle-3.n32001-05-21 16:09 716  
[TXT]ctype.P2001-06-05 12:23 7.7K 
[TXT]ctype_generator.c2001-05-23 16:26 468  
[TXT]horntest1.n32001-04-24 19:25 1.3K 
[TXT]ht2.n32001-04-25 21:18 1.5K 
[TXT]lib.P2001-04-24 19:25 2.8K 
[TXT]logic_demo1.n32001-04-24 19:25 942  
[TXT]n3_syntax.P2001-06-05 12:21 1.7K 
[TXT]n3table.P2001-04-24 19:25 1.9K 
[TXT]rule.n32001-04-24 19:25 1.1K 
[TXT]semweb.P2001-05-21 23:36 12K 
[TXT]set.n32001-04-24 19:25 893  
[TXT]style.css2001-04-25 16:43 1.0K 
[TXT]swid.n32001-04-24 19:25 382  
[TXT]template.n32001-04-24 19:25 620  
[TXT]tut.P2001-04-24 19:52 2.6K 
[TXT]uri_syntax.P2001-05-23 17:59 4.4K 
[TXT]write_n3.P2001-05-21 21:57 257  
[TXT]xmlrec_bnf_syntax.P2001-06-02 21:41 6.2K 

RDF and XSB: Experimental Code

RDF and XSB: Experimental Code

Status

Just playing around.

Issues

How does RDF Knowledge appear in Prolog?

It is funneled through property(subjectID, predicateID, objectID). This is a compiled relation, however, so if you want to use dynamic data (assert/retract), there must be a rule which turns that dynamic data into property/3 facts.

The standard for this is asserted_property/3, but others like asserted_dataset/4 are appropriate in some cases; one must simply provide a rule to property/3 from them. These are input relations.

Output facts, like dataset(datasetID, subjectID, predicateID, objectID) (corresponding to n3 contexts) can be deduced from property/3 (and thus in turn from all the input facts).

Perhaps better names would be "dyn_property" or "dyn_rdf" or "rdf_in" or something. This naming should be coordinated with naming conventions for predicates relating (in each direction) prolog structures and RDF descriptions of structions (like lists).

What about identifiers?

The ID terms are RDF identifiers for resources, literals, and arguably anonymous nodes (existential variables) and universal variables. Some options:

  1. structures like rdf(identifier-type, identifier) where identifier-type might be "resource" or "literal" and identifier is... ? an atom for resources and an array of bytes for literals?

  2. atoms in URI form, with literals turned data:, strings.

  3. atoms are resource URIs, strings (arrays of numbers) are literals, structures can be used for variables if needed.

How to put vocabulary terms in one place

Use the prolog database:

vocab(thingID, convenient-name-atom)

and maybe some namespace functions?

Or just use the atoms themselves -- it's certainly faster. Or does --> -- compiling take care of that?!


Sandro Hawke
$Date: 2001/05/08 17:30:31 $