- From: Fang Wei <fwei@informatik.uni-freiburg.de>
- Date: Thu, 29 Jul 1999 11:47:37 +0000
- To: www-rdf-comments@w3.org
Hi! We developed a parser (based on SiRPAC) to parse the RDF to F-logic (a DOOD prototype). Instead of standard triple model in SiRPAC, we transform RDF to the following format: Subject[Predicate->Object]. Further, for containers like bag, seq and alt, we have the following: ----------------------------------------- * RDF code ----------------------------------------- <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:s="http://purl.org/dc/elements/1.0/"> <rdf:Description about="http://mycollege.edu/courses/6.001"> <s:students> <rdf:Bag> <rdf:li resource="http://mycollege.edu/students/Amy"/> <rdf:li resource="http://mycollege.edu/students/Tim"/> </rdf:Bag> </s:students> </rdf:Description> </rdf:RDF> ------------------------------------------ * SiRPAC translation ------------------------------------------ triple("http://www.w3.org/1999/02/22-rdf-syntax-ns#type","file:test2.rdf#genid2","http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag"). triple("http://www.w3.org/1999/02/22-rdf-syntax-ns#_1","file:test2.rdf#genid2","http://mycollege.edu/students/Amy"). triple("http://www.w3.org/1999/02/22-rdf-syntax-ns#_2","file:test2.rdf#genid2","http://mycollege.edu/students/Tim"). triple("http://purl.org/dc/elements/1.0/students","http://mycollege.edu/courses/6.001","file:test2.rdf#genid2"). ------------------------------------------ * F-logic translation ------------------------------------------ "http://mycollege.edu/courses/6.001"["http://purl.org/dc/elements/1.0/students"->bag("http://mycollege.edu/courses/6.001", "http://purl.org/dc/elements/1.0/students")]. bag("http://mycollege.edu/courses/6.001", "http://purl.org/dc/elements/1.0/students"):bag_collection. bag("http://mycollege.edu/courses/6.001", "http://purl.org/dc/elements/1.0/students")[bag_value->cons("http://mycollege.edu/students/Tim",cons("http://mycollege.edu/students/Amy",nil))]. We can define the signatures of 'bag_collection' as: bag_collection[hasElement@(string)=>int]. We can define the rules of bag_collection as: X[hasElement(Y) -> C] :- X[bag_value->Z], count(Y,Z,C), X:bag_collection. if C =0 , means there is no such element in the bag if C>=1 , means there is(are) such element in the bag, C is the number of this element ( Duplicate values are permitted) The schema part of RDF can be expressed in F-logic in a elegant way too, like subClassOf ... (ongoing) Any comments? Fang
Received on Thursday, 29 July 1999 05:43:23 UTC