From GK@Dial.pipex.com Mon Jan 1 13:07:11 2001 Date: Mon, 01 Jan 2001 13:07:11 +0000 From: Graham Klyne GK@Dial.pipex.com Subject: [RDF] Re: Authorization Craig, This little exchange highlights something that I think may be one of the next important steps (beyond initial implementation) for research using your RDF-driven expert system. #g -- Jonas, I've lost the context for this so my responses may be incomplete... I think the whole area of trust modelling is a key application for RDF, and one that I plan to explore over the coming months. Skip to [**] below for some (few) thoughts on this. At 12:12 AM 12/29/00 +0100, Jonas Liljegren wrote: >Graham Klyne writes: > > > Suppose I wish to use RDF to model a security access scheme. Suppose > > access controls are defined in terms of (a) a resource that may be > > accessed, (b) an actor who may gain some access to the resource, and > > (c) an operation type that describes the kind of access granted. (In > > case this seems unduly artificial, this is exactly the access control > > framework proposed for the IMXP instant messaging proposal [1].) > > > > How is such a system to be modelled in RDF? I present the following > > as a reasonably obvious and direct way: > > > > [ACE] --rdf:type---> [AccessControlElement] > > [ ] --actor------> [AccessorIdent] > > [ ] --resource---> [AccessedResource] > > [ ] --operation--> [AccessGranted] > >Have you done more on this? Not the RDF stuff: that bit was entirely speculative. >What are the possible types of operations? Is the actor and resource >specified as types, collections or something else? As far as the IMXP (to be renamed APEX) work is concerned, they're just strings. Actors and resources are identified by email address like strings: >Who has the right to state these rules about this? The access rules are under control of the administrative domain to which they refer. The whole security model here involves an idea of "each domain keeping its own house in order". The remaining points I shall comment on without reference to IMXP/APEX... >I and Stefan have thought and talked alot about systems there you only >add information, and that lets anybody say anything. (I think that is >a oart of the semantic web.) That fits my mental model, too. >This means that you can say that a previous stating is false. In your >context, the statement is false. But others may not trust you and may >regard the statement as true. Yup. This is one of the ideas that started me thinking about contexts. >This leads to the question on what type of statements can be trusted >from diffrent staters. Take for example a list of persons with phone >numbers. There may be a number of people you trust on giving accurate >information. Those persons would in a closed system been given >administration access to the database. [**] I think that this is all information that has to be coded in some way. An RDF-based trust assessment framework should also describe its own trust model, I think. I don't think there are any universal answers (though there probably will be some useful trust models that will be commonly used). >But you will also want to trust information that people gives about >themself, as long as you know that they are who they say they are. >How do you model that? I haven't got there yet, but I am hoping that within 2-3 months we'll have some software that will allow us to model and experiment with these ideas. >And what happens if two trusted statings disagree? Same problem. Same answer ([**] above) >What other types of authorization criterions could there bee? Without limit. Again, see [**] above. #g ------------ Graham Klyne (GK@ACM.ORG) From GK@Dial.pipex.com Mon Jan 1 13:05:21 2001 Date: Mon, 01 Jan 2001 13:05:21 +0000 From: Graham Klyne GK@Dial.pipex.com Subject: [RDF] Re: Authorization Jonas, I've lost the context for this so my responses may be incomplete... I think the whole area of trust modelling is a key application for RDF, and one that I plan to explore over the coming months. Skip to [**] below for some (few) thoughts on this. At 12:12 AM 12/29/00 +0100, Jonas Liljegren wrote: >Graham Klyne writes: > > > Suppose I wish to use RDF to model a security access scheme. Suppose > > access controls are defined in terms of (a) a resource that may be > > accessed, (b) an actor who may gain some access to the resource, and > > (c) an operation type that describes the kind of access granted. (In > > case this seems unduly artificial, this is exactly the access control > > framework proposed for the IMXP instant messaging proposal [1].) > > > > How is such a system to be modelled in RDF? I present the following > > as a reasonably obvious and direct way: > > > > [ACE] --rdf:type---> [AccessControlElement] > > [ ] --actor------> [AccessorIdent] > > [ ] --resource---> [AccessedResource] > > [ ] --operation--> [AccessGranted] > >Have you done more on this? Not the RDF stuff: that bit was entirely speculative. >What are the possible types of operations? Is the actor and resource >specified as types, collections or something else? As far as the IMXP (to be renamed APEX) work is concerned, they're just strings. Actors and resources are identified by email address like strings: >Who has the right to state these rules about this? The access rules are under control of the administrative domain to which they refer. The whole security model here involves an idea of "each domain keeping its own house in order". The remaining points I shall comment on without reference to IMXP/APEX... >I and Stefan have thought and talked alot about systems there you only >add information, and that lets anybody say anything. (I think that is >a oart of the semantic web.) That fits my mental model, too. >This means that you can say that a previous stating is false. In your >context, the statement is false. But others may not trust you and may >regard the statement as true. Yup. This is one of the ideas that started me thinking about contexts. >This leads to the question on what type of statements can be trusted >from diffrent staters. Take for example a list of persons with phone >numbers. There may be a number of people you trust on giving accurate >information. Those persons would in a closed system been given >administration access to the database. [**] I think that this is all information that has to be coded in some way. An RDF-based trust assessment framework should also describe its own trust model, I think. I don't think there are any universal answers (though there probably will be some useful trust models that will be commonly used). >But you will also want to trust information that people gives about >themself, as long as you know that they are who they say they are. >How do you model that? I haven't got there yet, but I am hoping that within 2-3 months we'll have some software that will allow us to model and experiment with these ideas. >And what happens if two trusted statings disagree? Same problem. Same answer ([**] above) >What other types of authorization criterions could there bee? Without limit. Again, see [**] above. #g ------------ Graham Klyne (GK@ACM.ORG) From jonas@liljegren.org Mon Jan 1 16:36:58 2001 Date: 01 Jan 2001 17:36:58 +0100 From: Jonas Liljegren jonas@liljegren.org Subject: [RDF] Re: Authorization Graham Klyne writes: > I've lost the context for this so my responses may be incomplete... > > I think the whole area of trust modelling is a key application for > RDF, and one that I plan to explore over the coming months. Skip to > [**] below for some (few) thoughts on this. I just want to think a little about what direction this should take, so that it will fit with the other parts developed in perallell. > >I and Stefan have thought and talked alot about systems there you only > >add information, and that lets anybody say anything. (I think that is > >a part of the semantic web.) > > That fits my mental model, too. > > >This means that you can say that a previous stating is false. In your > >context, the statement is false. But others may not trust you and may > >regard the statement as true. > > Yup. This is one of the ideas that started me thinking about contexts. > > >This leads to the question on what type of statements can be trusted > >from diffrent staters. Take for example a list of persons with phone > >numbers. There may be a number of people you trust on giving accurate > >information. Those persons would in a closed system been given > >administration access to the database. > > [**] > > I think that this is all information that has to be coded in some way. > An RDF-based trust assessment framework should also describe its own > trust model, I think. I don't think there are any universal answers > (though there probably will be some useful trust models that will be > commonly used). Yes. I want to find one useful general model suitable for the type of system I am aiming at. That is: The versioning system and the trust system are two aspects of the same thing. To trust or not to trust is just one view. Other views is to see what is stated in diffrent times or from diffrent perspecives or scenarios. I am searching for a clean and simple way to implement: a) Content in diffrent languages b) Diffrent levels of quality c) Diffrent groups of staters And it should wor well with diffrent types of statemets (or groups of statements) that is suppoesed to override previous ones. a) Statement for a diffrent time b) Statement for a diffrent perspecitve c) Statement as a correction for a previous one And I want this to be the same thing as the standard information queries. That is; a request for information includes a context for the request. The answer to the request is given within the context. This is my definition for context withing Wraf. The context is used as the base for a information request. It's sot of part of the request. It contains your preferences used to select the wanted language, timeframe, version, inormation source, and more. The context is a hierarchy of contexts. It starts with the session, defining the time and place for the conversation. Here we identifies the requestor agent and the service. A specific request adds to the context. There can be a series of questions and counter-questions, all within the context. The basis for this is implemented in Wraf. But not yet developed. The thing here is that the trust model and the other things is part of the preferences in the context. The preferences of the agent is overrided by the session preferences and later overrided by the explicit preferences for the specific request. So what could we use for model as a testcase for this? Something simple and useful for a typical community database. Maby a use of ratings to sorting or filtering discussion entries, a little like slashdot, but simpler? You could register yourself to diffrent types of groups and the classification and ratings would belong to those groups. -- / Jonas - http://jonas.liljegren.org/myself/en/index.html From GK@Dial.pipex.com Mon Jan 1 17:50:35 2001 Date: Mon, 01 Jan 2001 17:50:35 +0000 From: Graham Klyne GK@Dial.pipex.com Subject: [RDF] Re: Klyne Contexts: 3. Statements sets in RDF At 12:36 AM 12/29/00 +0100, Jonas Liljegren wrote: >Graham Klyne writes: > > > It seems to me that, given an RDF graph, I should be able to extract > > an arbitrary subgraph (i.e. a subset of the statements) and still have > > a valid RDF graph. The RDF approach to containers doesn't permit > > this, because (I think) the following is not valid per RDF M&S: > > > > [Foo] --rdf:type--> [rdf:Bag] > > [ ] --rdf:_1----> [Member1] > > [ ] --rdf:_3----> [Member3] > >I say that it must be valid. I would even allow: > > [Foo] --rdf:type--> [rdf:Bag] > [ ] --rdf:_1----> [Member1] > [ ] --rdf:_1----> [OtherMember1] > [ ] --rdf:_3----> [Member3] > > >This because anyone can say anything about everything. Look at RDF M&S, send of section 5. It states that the ordinal properties must be used sequentially starting with rdf:_1. This is why I think RDFM&S collections are broken when, as you say, "anyone can say anything about everything". >Nobody can stop me if I feel like renumbering the properties of a >bag. But it should be clear that the new statements is not the >original ones. True, but I think that introduces horrible scalability problems for web-wide collation of information. > > >1. With special methods for conatiner handling, you will not have to > > > bother about the present content. Wraf will give each container > > > the dynamic property 'size', and methods for adding and quering the > > > container without knowing each propertys number. > > > > This assumes that your implementation knows about all of the members. > > I think that's a kind of closed-world view. > >No. The size statement has a source. Other sources can have another >idea about the size of the container. The statement will belong to a >model and that model will have data about the scope of the known world. My biggest objection to all this is that I believe all this extra logic is simply unnecessary. It is possible to use base RDF to define container structures that just don't have these problems. If you want to add extra structures to facilitate your own internal processing then that should be your choice as an implementer, not something that has to be done to overcome problems with the standard container structures. #g ------------ Graham Klyne (GK@ACM.ORG) From GK@Dial.pipex.com Mon Jan 1 19:32:12 2001 Date: Mon, 01 Jan 2001 19:32:12 +0000 From: Graham Klyne GK@Dial.pipex.com Subject: [RDF] Re: Authorization At 05:36 PM 1/1/01 +0100, Jonas Liljegren wrote: > > I think that this is all information that has to be coded in some way. > > An RDF-based trust assessment framework should also describe its own > > trust model, I think. I don't think there are any universal answers > > (though there probably will be some useful trust models that will be > > commonly used). > >Yes. I want to find one useful general model suitable for the type of >system I am aiming at. That is: > >The versioning system and the trust system are two aspects of the same >thing. To trust or not to trust is just one view. Other views is to >see what is stated in diffrent times or from diffrent perspecives or >scenarios. Hmmm... at one level I agree with this, but I was trying to suggest that no single model will fit all cases. Rather, I see in RDF the potential to describe and integrate multiple models, without prejudice. So, in a sense, RDF is your 'general model'? [...] >And I want this to be the same thing as the standard information >queries. That is; a request for information includes a context for the >request. The answer to the request is given within the context. > >This is my definition for context withing Wraf. The context is used >as the base for a information request. It's sot of part of the >request. It contains your preferences used to select the wanted >language, timeframe, version, inormation source, and more. > >The context is a hierarchy of contexts. It starts with the session, >defining the time and place for the conversation. Here we identifies >the requestor agent and the service. A specific request adds to the >context. There can be a series of questions and counter-questions, >all within the context. Sounds reasonable. Your hierarchy of contexts is consistent with McCarthy/Guha's work, in that any statement is asserted within a 'nest' of contexts. However, I think that this doesn't necessarily mean that contexts always form a strict hierarchy. >The thing here is that the trust model and the other things is part of >the preferences in the context. The preferences of the agent is >overrided by the session preferences and later overrided by the >explicit preferences for the specific request. Ah, I see. My view of contexts is much more general, but this is certainly a valid application. >So what could we use for model as a testcase for this? Something >simple and useful for a typical community database. Maby a use of >ratings to sorting or filtering discussion entries, a little like >slashdot, but simpler? I feel that there is more groundwork to be done before I can seriously address some of these questions. OTOH, if you have a well-specified use-case, maybe we can work together to try and model it? #g ------------ Graham Klyne (GK@ACM.ORG) From jonas@rit.se Fri Jan 5 15:59:49 2001 Date: 05 Jan 2001 16:59:49 +0100 From: Jonas Liljegren jonas@rit.se Subject: [RDF] Working on Wraf dokumentation Well. This is not a announcement of dokumentation. I just want to say that I have started writing. You could say the documentation is pre-alpha. :-) I am posting a link for those who would like to come with suggestions on what I have missed and thing like that. I am going to announce the dokumentation then it's a little more complete. It's mainly saying what I have planned. It's not saying how or what works in the 0.0401 release. The link goes to one of my working directories. http://jonas.liljegren.org/perl/proj/rdf/RDF-Service/doc/html/wraf.html -- / Jonas Liljegren The Wraf project http://www.uxn.nu/wraf/ Sponsored by http://www.rit.se/ From jonas@rit.se Mon Jan 8 00:25:14 2001 Date: 08 Jan 2001 01:25:14 +0100 From: Jonas Liljegren jonas@rit.se Subject: [RDF] Re: Statements/Reified statements Dave Beckett writes: > Jonas, you have obviously thought about this stuff a lot but I have a > terrible time trying to understand what you are describing. To show > what I mean, I'm going to take one of your emails and show your > assumptions that I can't follow, but want to! :-) Ok. I have spent some time, trying to write down what I hope to do with Wraf. I will now try to answer you questions by pointing to the documentation pages: http://www.uxn.nu/wraf/RDF-Service/doc/html/ I have probably failed in giving clear explanations. I would welcome your help in pointing out what I should explain better. > >>>Jonas Liljegren said: > >=20 > > Graham Klyne writes: > >=20 > > > At 09:51 AM 11/23/00 +0100, Jonas Liljegren wrote: > > > > > > >This means that instead of four, we have five: > > > > > > > >{ uri, pred, subj, obj, model } > > >=20 > > > I considered that approach for [1], but have preferred to use > > > properties to create the association between statement-resource and > > > context (model). The above approach allows a given statement to be > > > associated with only one context/model, where properties allow a > > > given statement-resource to be incorporated into any number of > > > contexts/models. That seems very much more in line with the RDF > > > philosophy of "anyone can say anything about anything". > >=20 > > This depends on if you look at it as a statement or a stating. > > Anybody can state a specific statement but every stating is unique. >=20 > statement, stating - what do *you* mean about these things, the word > 'statement' is what the problem is about. Other words such as > occurrance, fact should also be avoided. A statement is just a triple. I would say that Wraf only deals with statings: http://www.uxn.nu/wraf/RDF-Service/doc/html/stating.html The statement occure in a model. I don't use the 'fact' thing. It's all about trusting statings. http://www.uxn.nu/wraf/RDF-Service/doc/html/trust.html > > There are three special cases: >=20 > insert here - "of statements in different models ..." >=20 > Of course that depends on what a model is defined as, see below. > > > 1. Two URIs for the same statement: > > S1: [A] --B--> [C] (M1) > > S2: [A] --B--> [C] (M2) > >=20 > > 2. The same URI for diffrent statements: > > S1: [A] --B--> [C] (M1) > > S1: [D] --E--> [F] (M2) > >=20 > > 3. The same URI for the same statement: > > S1: [A] --B--> [C] (M1) > > S1: [A] --B--> [C] (M2) >=20 > You do not say what S1, S2, M1, M2 are or what this form of thing > means: > ..: [.] --.--> [.] (..) >=20 > now I *assume* the thing before the : is a URI for the thing that > follows (you don't say that). And it is pretty obvious the > [.] --.--> [.] are the triples so we get: > statement URI: [subject] --predicate--> [object] > but what is the the (..) ?? A 'model' containing the statements? Yes. Exactly. See: I didn't have to spell that out. ;-) > What is your definition of model - a set of statements? An RDF > collection such as rdf:bag of statements? Is that how you would > create it? The model is a core part of Wraf. I can model it as a bag of statements. But internally, it will be handled as a special case. http://www.uxn.nu/wraf/RDF-Service/doc/html/model.html > > This means that neither the triple, nor the URI can be used as the > > unique key in the storage of RDF. In the Wraf [2] DBI, I uses the > > combination of model and URI as the key. >=20 > That's a database way of thinking, not generally relevant. You mean > the primary key of a table you use is (statement URI, model URI) Yes... And the database storage is separated from the internal workings. This is explaind in the text about nodes: http://www.uxn.nu/wraf/RDF-Service/doc/html/node.html > > What is the most efficiant way of storing data, while still allowing > > any combinations? > >=20 > > I think that the most practical thing is to view the reified > > statements as statings. Since they are stated in diffrent models, > > they will probably have diffrent URIs. The common case will therefore > > be that a statement belongs to just one model. >=20 > terms statings, models used again. Introduced a new one 'stated'. > When a 'statement' is 'stated' in a 'model' do you get a 'stating' as > well as a 'statement' or just a 'stating'? Just statings. There are no isolated statements. They either exist as a stating or they doesn't exist at all. > > The Wraf is resource centric. A resource has dynamic and static > > properties. Also the statements are properties. Every resource is > > said to belong to exactly one model. This means that I will have to > > represent the special cases 2 and 3 by expanding the statements to > > their reification. >=20 > you say: > "resource is said to belong to exactly one model." >=20 > RDF says resources are identified by URIs so any model can have any > resource in it. How can you justify the above sentence? That's how I have have done it in Wraf. I name it the "normal single representation": http://www.uxn.nu/wraf/RDF-Service/doc/html/stating.html Any model can say things about any resource. But in Wraf, the resource stands for explicit and implicit statings, and those will normally only belong to one model. But other models can still 'cite' those statings: http://www.uxn.nu/wraf/RDF-Service/doc/html/citation.html > > A previous version (alpha 3) allowed multipple models. That solved > > case 3, but not case 2. In addition: what should I do if one of the > > models changed and the other didn't? This consideration led me to > > conclude that it would be more efficient to just have one model and > > group all the nasty cases together for special handling. (The same > > thing goes for literals and some other things.) >=20 > What do you mean by multiple models? (or model). In your head, > everything is one model, but in technology terms, models are > scattered around the world, web. You can't get away from the fact > that I will have models of RDF content and so will you. Wraf connects a large amount of diffrent models. http://www.uxn.nu/wraf/RDF-Service/doc/html/interface.html But what I meant was that a stating will usually have a unique URI. Two models can contain the same statement, but the resource representing the reified statemnent will not have the same URI as that of the same statement in another model. They cold, but Wraf will treat that as a special case. > > Even if I store statements as {uri, pred, subj, obj, model}, they have > > an implicit representation in the RDF graph. They are drawn as > > reified statements contained in a model container. Another > > representation is to give the statement the property model. (Wraf > > will infere a lot of properties from other properties.)=20=20 >=20 >=20 > "give the statement the property model" >=20 > That's too much shorthand. I suspect you mean attach a property to a > statement resource/node, the property/arc is called wraf:model or > somesuch but what does it point to?. You need to then say what that > means. Correct. It points to the Model object. And that object is of type Model that is subClassOf Container. The model object will contain the stating. > > Case 2, above, has to be spelled out to the point there every URI only > > belongs to one model. Here, we prefix generated URIs with G: >=20 > "every URI only belongs to one model" >=20 > !!! What? I think that's have been explaind by now. > > G1: [S1] --type--> [Statement] (M1) > > G2: [S1] --subject--> [A] (M1) > > G3: [S1] --predicate--> [B] (M1) > > G4: [S1] --object--> [C] (M1) >=20 > a break here would be clearer to show they are in different models, > or are they? Different models but same storage? >=20 > > G5: [S1] --type--> [Statement] (M2) > > G6: [S1] --subject--> [D] (M2) > > G7: [S1] --predicate--> [E] (M2) > > G8: [S1] --object--> [F] (M2) >=20 >=20 >=20 > > Quoting statements and the question of truth > > -------------------------------------------- > >=20 > > Instead of having a boolean for each statement, indicating if the > > statement is a fact or just a reified statement, we could use models > > and selections for denoting truth. >=20 > New term 'selection' - what is that? Selections: http://www.uxn.nu/wraf/RDF-Service/doc/html/selection.html=20=20= =20=20=20 > > The idea is that nonfact statements are placed in another model, or > > is given a special property saying that the statement is not > > endorsed. Let's say model M1 has statements serialized as: >=20 > "nonfact statements" >=20 > please define. And not by saying 'statements that are not facts' - > what kind of thing is that? The M&S says that reified statements are not considered facts. A nonfact statement is a statement that only exist as a reified statement and not as a statement. This has to do with citations: http://www.uxn.nu/wraf/RDF-Service/doc/html/citation.html > > [S1] --type--> [Statement] > > [S1] --subject--> [A] > > [S1] --predicate--> [B] > > [S1] --object--> [C] > > [D] --E--> [S1] > >=20 > > ( Could be drawn as { D E { A B C } }. ) > >=20 > > One thought I had was to store like this: > >=20 > > S1: [A] --B--> [C] (G1) > > G2: [D] --E--> [S1] (M1) > > G3: [G1] --type--> [Model] (G1) > > G4: [G1] --quotedIn--> [M1] (G1) > >=20 > >=20 > > Models will have a bunch of metadata about the origin, date and other > > things. One model could include other models. But the here invented > > 'quotedIn' can be used to remember that the statement was explicitly > > included in the model. The 'quotedIn' property is of no importance > > for the reasoning. But it can be used to recreate the model in > > serialized XML. >=20 >=20 > Now that does make sense; I had already decided for Redland to add > extra statements (real statements, not "non-fact" ones) to my storage > to describe the model (set of statements) and provide a place for > administrative information to go, provenance etc. But these would > appear in the model like other statements. Infered and implicit statements can be placed in other models and thus not interfereing with the original model. > > What's considered to be true will depend on what model's you trust. >=20 > Yes. So I guess I can now work out that you store multiple models in > one storage system. Why not just use rdf:bag to enclose models in > one storage? Huh? > > Aliases > > ------- > >=20 > > Another question is that of resource aliases. G2 above may be >=20 >=20 > Which G2? You define 2 of them. >=20 > What is a resource alias? This sounds like the resource/URI black hole. http://www.uxn.nu/wraf/RDF-Service/doc/html/aliases.html Maby I'm not exactly clear on this. What is the resource/URI black hole? > > refering to the same statement as another URI. If it's infered that > > it's indeed the same *stating*, this will be marked up as that it's=A0an > > alias to the 'real' name. Let's look at an example of one model with > > the original stating and another model quoting that statement, without > > knowing the stating URI: > >=20 > > S1: [A] --B--> [C] (M1) > >=20 > > S2: [A] --B--> [C] (M2) > > S3: [D] --E--> [S2] (M2) > >=20 > > The context of this may let the application infere that S1 and S2 are > > indeed the same stating, thus adding: > >=20 > > S4: [S2] --aliasFor--> [S1] (G1) > >=20 > > G1 is here the context depending on the inference rule and the > > involved models. > >=20 > >=20 > >=20 > >=20 > > Am I right in thinking that you probably thinking that I make all this > > much more complicated than it ought to be? ;-) >=20 > Yes, sorry! I have a habit of dreaming of large complete systems. I have only documented a small portion of all the things I have thought about. But I have also thought about how to implement it in a reasonable timescale, taking one step at the time. --=20 / Jonas Liljegren The Wraf project http://www.uxn.nu/wraf/ Sponsored by http://www.rit.se/ From jonas@rit.se Mon Jan 8 23:06:12 2001 Date: 09 Jan 2001 00:06:12 +0100 From: Jonas Liljegren jonas@rit.se Subject: [RDF] Re: Poll: RDF Use Cases "McBride, Brian" writes: > One of the things which struck me lately during one of > our lengthier discussions was the idea that many of our > disagreements may be based on different assumptions > about the applications we have in mind RDF being used > for. Ok. I have started trying to describe Wraf. My intended use for it is a virtual community aimed at gathering, structuring and refining knowledge in a web of related topics. It will provide tools accumulating discussion entries and harvesting every useful sentence thereof. The result will be a growing hypertext encyclopedia and guide to find the people you search for. And, of course, some other things: http://www.uxn.nu/wraf/RDF-Service/doc/html/wraf.html The above link is a request for helpful contributions. A work in progress. Share the dream in rdf@uxn.nu -- / Jonas Liljegren The Wraf project http://www.uxn.nu/wraf/ Sponsored by http://www.rit.se/ From jonas@rit.se Tue Jan 9 16:32:11 2001 Date: 09 Jan 2001 17:32:11 +0100 From: Jonas Liljegren jonas@rit.se Subject: [RDF] Re: WRAF, HDC : similar projects "Bernard Vatant" writes: > At present time, I'm working in the frame of Topic Maps XTM universe. In > the air is some convergence between XTM and RDF, and I think we badly need > such convergences, both on syntactic and semantic grounds. HDC is primarly an isolated thing. RDF is the internal data format. Wraf neither imports or exports XML documents. Interoperability is part of the plan. Thats an important reason for using RDF. But it's a later stage. > My thought line at the moment is the "bottom-up" construction of the > semantic web. Various projects are emerging everywhere, they have to > be linked and interoperative, but not merged in a single huge > unique-thought picture. I suppose you know also > http://www-db.stanford.edu/SKC/ , the Bootstrap Institute, OIL, etc > ... going somehow in the same direction. To take the "global brain" > image, neurones are there, we have to build effective synapses.=20 Yes. I vision the internet as one large thinking entity with data and rules. A question can be answerd by forwarding parts of it to many specialized services and gathering the responses. some of them as plain data and other produced by using inference rules. None of the services will be complete or able to give correct answers by themself. The intelligence will come from the quantity. The web could primarly consist of exceptions rather than rules. > Looking forward for any form of link to your project. The HDC can be integrated with library databases, Open Directory Project and other databases on the web that can give more data about certain types of topics. And the internal data can be exported wth appropriate schemas. --=20 jonas@rit.se RIT AB http://www.rit.se Box 70, 428 21 K=E5llered Bes=F6k: G:a Riksv=E4gen 36 Tel: +46 (0)31 751 8600 Fax: +46 (0)31 751 8609 From jonas@liljegren.org Thu Jan 11 19:45:42 2001 Date: 11 Jan 2001 20:45:42 +0100 From: Jonas Liljegren jonas@liljegren.org Subject: [RDF] Re: Authorization Graham Klyne writes: > At 05:36 PM 1/1/01 +0100, Jonas Liljegren wrote: > > >The versioning system and the trust system are two aspects of the same > >thing. To trust or not to trust is just one view. Other views is to > >see what is stated in diffrent times or from diffrent perspecives or > >scenarios. > > Hmmm... at one level I agree with this, but I was trying to suggest that no > single model will fit all cases. Rather, I see in RDF the potential to > describe and integrate multiple models, without prejudice. So, in a sense, > RDF is your 'general model'? Yes of course. But in Wraf, I want to provide an flexible infrastructure on which to build service applications. That's why I introduce RDFS-classes to represent sessions, uesers, information requests and more. The versioning and trust system should be implemented in a way that you can replace it with another, better suited to your needs. But I will in any case create one system flexible enough to use for the application i created Wraf to create. http://jonas.rit.se/project/RDF-Service/doc/html/hdc.html It should support multipple languages. Multipple versions. And the user should see the version blessed by the administrators. > >The context is a hierarchy of contexts. It starts with the session, > >defining the time and place for the conversation. Here we identifies > >the requestor agent and the service. A specific request adds to the > >context. There can be a series of questions and counter-questions, > >all within the context. > > Sounds reasonable. Your hierarchy of contexts is consistent with > McCarthy/Guha's work, in that any statement is asserted within a 'nest' of > contexts. However, I think that this doesn't necessarily mean that contexts > always form a strict hierarchy. No. Rather I mean that the context of a request includes who the requestor is. Metadata about the requestor can be used to get implicit criterions for the request. One such criterion would be the prefered language of the response. The heiarchy was a thought about how to handle contradicting data. Let's say that you usually like your HTML pages formatted with heavy graphics and stuff. But for this session, you have asked for smaller faster pages, because you are using a handheld mobile device. The statements in the session should have precedence over the general preference for more graaphics. I could think about several ways to make this happen. One such tactic would be to looking in the session metadata before the person metadata and don't look futher if the specific preference was found there. Hmm... Another would be to use exceptions. The logic could be to make a statement and say that it should override over such statements, but only for the current session. -- Yes. That sounds right. It would be the same infrastructure as that used for version handling. http://jonas.rit.se/project/RDF-Service/doc/html/context.html > >So what could we use for model as a testcase for this? Something > >simple and useful for a typical community database. Maby a use of > >ratings to sorting or filtering discussion entries, a little like > >slashdot, but simpler? > > I feel that there is more groundwork to be done before I can seriously address > some of these questions. OTOH, if you have a well-specified use-case, maybe > we can work together to try and model it? I think that it's important to include this functionality into Wraf as soon as possible. But in order to build test cases, I will ned basic presentation functions. That will be the next step. http://jonas.rit.se/project/RDF-Service/doc/html/presentation.html -- / Jonas - http://jonas.liljegren.org/myself/en/index.html From jonas@rit.se Thu Jan 11 20:48:14 2001 Date: 11 Jan 2001 21:48:14 +0100 From: Jonas Liljegren jonas@rit.se Subject: [RDF] Re: Authorization Oups. Those links will not work. I should have linked to the UXN site... Jonas Liljegren writes: > http://jonas.rit.se/project/RDF-Service/doc/html/hdc.html Should be: http://www.uxn.nu/wraf/RDF-Service/doc/html/hdc.html The same for the other links... -- / Jonas Liljegren The Wraf project http://www.uxn.nu/wraf/ Sponsored by http://www.rit.se/ From jonas@rit.se Fri Feb 2 21:44:22 2001 From: jonas@rit.se (Jonas Liljegren) Date: 02 Feb 2001 22:44:22 +0100 Subject: [RDF] ANNOUNCE: RDF::Service 0.0404 Message-ID: <878znokbex.fsf@jonas.rit.se> RDF::Service 0.0404 from the Wraf project has been released http://www.uxn.nu/wraf/ CHANGES * Lots of documentation * some changes and bugfixes DESCRIPTION Wraf implements a RDF Perl API that hopes to realize the Semantic Web. The framework uses RDF for data, user interface, modules and object methods. It uses interfaces to other sources in order to integrate all data in one enviroment, regardless of storage form. The homepage for Wraf is http://www.uxn.nu/wraf/ there you can find the developers mailinglist and more background information. Please send any comments to the developer mailinglist. -- / Jonas Liljegren The Wraf project http://www.uxn.nu/wraf/ Sponsored by http://www.rit.se/ From csheldon@spoint.com Wed Feb 7 01:41:03 2001 From: csheldon@spoint.com (Chuck Sheldon) Date: Tue, 6 Feb 2001 17:41:03 -0800 Subject: [RDF] ODP Schema Message-ID: Hi, I am trying to locate the ODP Schema (RDF-compliant Open Directory Project Schema). Does Wraf include code or templates for handling ODP? If so, can you tell me where to find the ODP Schema? I would be very grateful if you could. If not, can you direct me to any Perl code that does parse ODP dumps? Thanks! Chuck P.S. I am asking you because in: http: //dmoz.org/Computers/Internet/Searching/Directories/ Open_Directory_Project/Use_of_ODP_Data/Upload_Tools/ the entry: Perl and the ODP - Free script that converts RDF dumps into HTML pages, without the use of any database software. The parsing is done through "raw" perl regular expression (no use of any XML parser) and HTML files are directly generated for the selected categories. points to the non-existant location http://perlodp.cjb.net and I can't find anything closer in CPAN or elsewhere. From jonas@rit.se Wed Feb 7 08:28:36 2001 From: jonas@rit.se (Jonas Liljegren) Date: 07 Feb 2001 09:28:36 +0100 Subject: [RDF] ODP Schema In-Reply-To: References: Message-ID: <87bssex5fv.fsf@jonas.rit.se> "Chuck Sheldon" writes: > I am trying to locate the ODP Schema > (RDF-compliant Open Directory Project Schema). I don't have it. I don't think there is a ODP Schema. Just use the examples. > Does Wraf include code or templates for handling ODP? No. -- / Jonas Liljegren The Wraf project http://www.uxn.nu/wraf/ Sponsored by http://www.rit.se/ From vdv@dyomedea.com Wed Feb 7 08:53:51 2001 From: vdv@dyomedea.com (Eric van der Vlist) Date: Wed, 07 Feb 2001 09:53:51 +0100 Subject: [RDF] ODP Schema References: <87bssex5fv.fsf@jonas.rit.se> Message-ID: <3A810D1F.8CA34C6D@dyomedea.com> Jonas Liljegren wrote: > > "Chuck Sheldon" writes: > > > I am trying to locate the ODP Schema > > (RDF-compliant Open Directory Project Schema). > > I don't have it. I don't think there is a ODP Schema. Just use the > examples. One should also note that the ODP format has been defined before the RDF syntax went rec and that it is ***not*** RDF compliant. Some (most?) of the RDF tools provide the option to read these dumps, though. Eric > > Does Wraf include code or templates for handling ODP? > > No. > > -- > / Jonas Liljegren > > The Wraf project http://www.uxn.nu/wraf/ > Sponsored by http://www.rit.se/ > > _______________________________________________ > RDF mailing list > RDF@uxn.nu > http://www.uxn.nu/cgi-bin/mailman/listinfo/rdf -- See you in Austin (Knowledge Technologies 2001) http://www.gca.org/attend/2001_conferences/kt_2001/mon.htm ------------------------------------------------------------------------ Eric van der Vlist Dyomedea http://dyomedea.com http://xmlfr.org http://4xt.org http://ducotede.com ------------------------------------------------------------------------ From dave.beckett@bristol.ac.uk Wed Feb 7 09:52:54 2001 From: dave.beckett@bristol.ac.uk (Dave Beckett) Date: Wed, 07 Feb 2001 09:52:54 +0000 Subject: [RDF] ODP Schema In-Reply-To: Message from Eric van der Vlist of "Wed, 07 Feb 2001 09:53:51 +0100." <3A810D1F.8CA34C6D@dyomedea.com> Message-ID: <20538.981539574@tatooine.ilrt.bris.ac.uk> >>>Eric van der Vlist said: > One should also note that the ODP format has been defined before the RDF > syntax went rec and that it is ***not*** RDF compliant. > > Some (most?) of the RDF tools provide the option to read these dumps, > though. I played with the tools from Sergey Melnik, tidied them and tried them on recent dumps; late last year. I found that not only are the dumps not RDF, they are not even XML or UTF-8 - so all the XML parsers died with illegal character dumps somewhere around line 10,000,000 in processing :-) Maybe I should write rdf-tidy? Dave From vdv@dyomedea.com Wed Feb 7 10:23:30 2001 From: vdv@dyomedea.com (Eric van der Vlist) Date: Wed, 07 Feb 2001 11:23:30 +0100 Subject: [RDF] ODP Schema References: <20538.981539574@tatooine.ilrt.bris.ac.uk> Message-ID: <3A812222.1D07B12D@dyomedea.com> Dave Beckett wrote: > > >>>Eric van der Vlist said: > > One should also note that the ODP format has been defined before the RDF > > syntax went rec and that it is ***not*** RDF compliant. > > > > Some (most?) of the RDF tools provide the option to read these dumps, > > though. > > I played with the tools from Sergey Melnik, tidied them and tried > them on recent dumps; late last year. I found that not only are the > dumps not RDF, they are not even XML or UTF-8 - so all the XML > parsers died with illegal character dumps somewhere around line > 10,000,000 in processing :-) Yes, when you say it it rings a bell, I got the same problem trying to parse them with a simple SAX parser. > Maybe I should write rdf-tidy? Should be made before parsing then ! Maybe we should notify the ODP about the character issue first ;=) Eric > Dave > > _______________________________________________ > RDF mailing list > RDF@uxn.nu > http://www.uxn.nu/cgi-bin/mailman/listinfo/rdf -- See you in Austin (Knowledge Technologies 2001) http://www.gca.org/attend/2001_conferences/kt_2001/mon.htm ------------------------------------------------------------------------ Eric van der Vlist Dyomedea http://dyomedea.com http://xmlfr.org http://4xt.org http://ducotede.com ------------------------------------------------------------------------ From csheldon@spoint.com Thu Feb 8 15:48:59 2001 From: csheldon@spoint.com (Chuck Sheldon) Date: Thu, 8 Feb 2001 07:48:59 -0800 Subject: [RDF] ODP Schema Message-ID: Hi, My deep thanks to you three for your concise and immediate responses about the ODP Schema: Dave Beckett Jonas Liljegren Eric van der Vlist The information you provided was *very* helpful in our effort to find a good RDF-based standard for tree output. We are now evaluating better defined (at least Candidate) standards, such as RDDL. Chuck Sheldon Salient Point, Inc. From jonas@rit.se Thu Feb 15 11:06:44 2001 From: jonas@rit.se (Jonas Liljegren) Date: 15 Feb 2001 12:06:44 +0100 Subject: [RDF] Wraf and Perl6 In-Reply-To: References: Message-ID: <871yt0dx2z.fsf@jonas.rit.se> I'm switching from swedish to english, because this should go to the Wraf list.. About authenticating the modules used by Perl code: If it exist in the path, it's trusted. and you have the taintcheck mode and the seldome used "safe" mode. You could overload the use() and/or require() to check for a signature and verifying it. And then there should be some way to tell who you trust. That is; the diffrence between authentication and authorization. (As I learned from the Apache architecture.) About a wrapper module: That's easy. There is a fun module that automaticly loads a module then a function is used, even if you didn't required that module. And with the CPAN module, you could even download and install the missing module. But then you would have to have a network connection. And it's not all modules that have a fully automate3d installation. And I think that some modules expects you to install as root. Remote execution is another thing. I find some SOAP things: http://www.soaplite.com/ I haven't decided on how Wraf will do it. But we can have many interfaces and one of them cold be SOAP. About abbrevations: That's now part of the latest CVS version of Wraf. http://uxn.nu/wraf/RDF-Service/doc/html/abbrevation.html I used the word 'aliases' for stating that two URIs represent the same thing. With abbrevations, every session can set up it's own abbrevations, that can be used in place of the full URI. This could be done by importing models with defined namespaces using xmlns. But for now, I'm using simple one-step declaration of abbrevations. Example: $session_res->set_abbrev( { fn =3D> NS_LD.'/Property#first_name', ln =3D> NS_LD.'/Property#last_name', agent =3D> NS_LS.'#agent', updated =3D> NS_LS.'#updated', }); And this allows the abbrevations to be used as method names. Previously (in 0.0404) we had to write (using Template Toolkit) for displaying the first and last name of a person: [% person.arc_obj("${NS_LD}/Property#first_name").li.value %] [% person.arc_obj("${NS_LD}/Property#last_name").li.value %] The current (CVS) version has changed this to: [% person.fn.li.value %] [% person.ln.li.value %] The li() part says that we want a single object (list item). And value() says that we want the scalar (literal) value of that object. This will later be condensed to: [% person.fn.value %] [% person.ln.value %] I hesitated a bit about how to implement the abbrevations, because it would introduce yet another step in the dispatching of a method. But then I came to think that this actually saves the object lookup, that otherwise would have to be done either by the calling program or in the called method. Now we look up the abbrevated resource in advance. (ie, translate the URI to a perl object reference) And this lookup is only done on the API level (level 0). The internal code uses the more direct notation. I'm happy with this. It's a big step towards v0.05. :-) I also have done some other things to the API. But more about that later. --=20 jonas@rit.se RIT AB http://www.rit.se Box 70, 428 21 K=E5llered Bes=F6k: G:a Riksv=E4gen 36 Tel: +46 (0)31 751 8600 Fax: +46 (0)31 751 8609 From Stefan.Andersson@ullmans.com Thu Feb 15 12:15:08 2001 From: Stefan.Andersson@ullmans.com (Stefan Andersson) Date: Thu, 15 Feb 2001 13:15:08 +0100 Subject: [RDF] SV: Wraf and Perl6 Message-ID: "You could overload the use() and/or require() to check for a signature and verifying it." Ummm... how about Use "http://www.uxn.nu/rpm/Math/Complex.pm" as Math::Complex; or just Use "http://www.uxn.nu/rpm/Math/Complex.pm"; :-D "And then there should be some way to tell who you trust. That is; the diffrence between authentication and authorization. (As I learned from the Apache architecture.)" Doesn't the 'use' clause represent an explicit trust relation? "http://www.soaplite.com/" Cool! "I haven't decided on how Wraf will do it. But we can have many interfaces and one of them cold be SOAP." Would there be a shortcut in making a generalized perl module interface? Something that mapped metadata about the modules to metadata about WRAF Interfaces? Hmm.. got to think a bit about that. "http://uxn.nu/wraf/RDF-Service/doc/html/abbrevation.html" "[% person.fn.li.value %]" Now you're talking! /Stefan From jonas@rit.se Thu Feb 15 13:09:54 2001 From: jonas@rit.se (Jonas Liljegren) Date: 15 Feb 2001 14:09:54 +0100 Subject: [RDF] Re: Wraf and Perl6 References: Message-ID: <87n1bocct9.fsf@jonas.rit.se> Removed goteborg.pm from the cc list... Stefan Andersson writes: > "You could overload the use() and/or require() to check for a signature a= nd > verifying it." >=20 > Ummm... how about >=20 > Use "http://www.uxn.nu/rpm/Math/Complex.pm"; Yes. That could work. And we already have (in perl) a recommended way to say what we want to import from a module. But most modules uses an OO interface. You should do something like: my $obj =3D new http://www.uxn.nu/rpm/Math/Complex.pm; But I'm sure that the Perl6 stuff will be good. > "And then there should be some way to tell who you > trust. That is; the diffrence between authentication and > authorization. (As I learned from the Apache architecture.)" >=20 > Doesn't the 'use' clause represent an explicit trust relation? It depends on if you are stating the implementation or the function you want to use. And maby there is someone else who wants to import the module. The users choise has to be approved by the sysadmin. > "I haven't decided on how Wraf will do it. But we can have many > interfaces and one of them cold be SOAP." >=20 > Would there be a shortcut in making a generalized perl module interface? > Something that mapped metadata about the modules to metadata about WRAF > Interfaces? I'm mainly thinking about connections to other RDF services. And that all Wraf interfaces should be extendable and upgradable through Wraf itself. The embedded version numbers in the interface module names is a step on the they to eventually store the interface inside Wraf. RDF::Service::Interface::DBI::V01 He. Another moment 22. How do I connect to the DBI interface if it's stored in the DBI interface? :-) and this will have two types of interfaces. The local interfaces that transparently gets downloaded and installed. And the remote interfaces that use another Service on another server. The SOAP thing would be just like having an interface to retrieve resource properties. Nothing complicated here... > "http://uxn.nu/wraf/RDF-Service/doc/html/abbrevation.html" >=20 > "[% person.fn.li.value %]" >=20 > Now you're talking! Yes. :-) And to get the second first name you had in 1980: [% person.fn( date =3D 1980 ).li(2).value %] But that's not implemented yet... RDFS:label Now I must continue hacking. I have a stupid resource that doen't want to be saved. It should be because i have put a label on it, and that label should be preserved... labels being one of the special cases. Maby it shouldn't be a special case. Probably shouldn't... But it forces me to sort out entrypoints for implicit properties. And that will be used by infered properties. So this is sort of a small step toward that. http://uxn.nu/wraf/RDF-Service/doc/html/dynamic.html --=20 jonas@rit.se RIT AB http://www.rit.se Box 70, 428 21 K=E5llered Bes=F6k: G:a Riksv=E4gen 36 Tel: +46 (0)31 751 8600 Fax: +46 (0)31 751 8609 From Stefan.Andersson@ullmans.com Thu Feb 15 13:18:23 2001 From: Stefan.Andersson@ullmans.com (Stefan Andersson) Date: Thu, 15 Feb 2001 14:18:23 +0100 Subject: SV: [RDF] Re: Wraf and Perl6 Message-ID: Will you upgrade the Demo to reflect the new possibilities? /Stefan > -----Ursprungligt meddelande----- > Fr=E5n: rdf-admin@uxn.nu [mailto:rdf-admin@uxn.nu]F=F6r Jonas = Liljegren > Skickat: den 15 februari 2001 14:10 > Till: Stefan Andersson > Kopia: 'masters@rit.se'; 'Wraf development' > =C4mne: [RDF] Re: Wraf and Perl6 >=20 >=20 > Removed goteborg.pm from the cc list... >=20 >=20 > Stefan Andersson writes: >=20 > > "You could overload the use() and/or require() to check for=20 > a signature and > > verifying it." > >=20 > > Ummm... how about > >=20 > > Use "http://www.uxn.nu/rpm/Math/Complex.pm"; >=20 > Yes. That could work. And we already have (in perl) a recommended = way > to say what we want to import from a module. But most modules uses > an OO interface. You should do something like: >=20 > my $obj =3D new http://www.uxn.nu/rpm/Math/Complex.pm; >=20 >=20 > But I'm sure that the Perl6 stuff will be good. >=20 >=20 > > "And then there should be some way to tell who you > > trust. That is; the diffrence between authentication and > > authorization. (As I learned from the Apache architecture.)" > >=20 > > Doesn't the 'use' clause represent an explicit trust relation? >=20 > It depends on if you are stating the implementation or the function > you want to use. And maby there is someone else who wants to import > the module. The users choise has to be approved by the sysadmin. >=20 >=20 >=20 > > "I haven't decided on how Wraf will do it. But we can have many > > interfaces and one of them cold be SOAP." > >=20 > > Would there be a shortcut in making a generalized perl=20 > module interface? > > Something that mapped metadata about the modules to=20 > metadata about WRAF > > Interfaces? >=20 > I'm mainly thinking about connections to other RDF services. And = that > all Wraf interfaces should be extendable and upgradable through Wraf > itself. >=20 > The embedded version numbers in the interface module names is a step > on the they to eventually store the interface inside Wraf. >=20 > RDF::Service::Interface::DBI::V01 >=20 > He. Another moment 22. How do I connect to the DBI interface if it's > stored in the DBI interface? :-) >=20 >=20 > and this will have two types of interfaces. The local interfaces = that > transparently gets downloaded and installed. And the remote > interfaces that use another Service on another server. >=20 >=20 > The SOAP thing would be just like having an interface to retrieve > resource properties. Nothing complicated here... >=20 >=20 >=20 > > "http://uxn.nu/wraf/RDF-Service/doc/html/abbrevation.html" > >=20 > > "[% person.fn.li.value %]" > >=20 > > Now you're talking! >=20 > Yes. :-) >=20 > And to get the second first name you had in 1980: >=20 > [% person.fn( date =3D 1980 ).li(2).value %] >=20 >=20 > But that's not implemented yet... >=20 >=20 >=20 >=20 >=20 >=20 > RDFS:label >=20 > Now I must continue hacking. I have a stupid resource that doen't > want to be saved. It should be because i have put a label on it, and > that label should be preserved... >=20 > labels being one of the special cases. Maby it shouldn't be a = special > case. Probably shouldn't... But it forces me to sort out = entrypoints > for implicit properties. And that will be used by infered properties. > So this is sort of a small step toward that. >=20 > http://uxn.nu/wraf/RDF-Service/doc/html/dynamic.html >=20 >=20 > --=20 > jonas@rit.se RIT AB http://www.rit.se > Box 70, 428 21 K=E5llered Bes=F6k: G:a Riksv=E4gen 36 > Tel: +46 (0)31 751 8600 Fax: +46 (0)31 751 8609 >=20 >=20 > _______________________________________________ > RDF mailing list > RDF@uxn.nu > http://www.uxn.nu/cgi-bin/mailman/listinfo/rdf >=20 From jonas@rit.se Thu Feb 15 14:03:24 2001 From: jonas@rit.se (Jonas Liljegren) Date: 15 Feb 2001 15:03:24 +0100 Subject: [RDF] Replication and fault tolerance Message-ID: <87itmccac3.fsf@jonas.rit.se> I have been daydreaming a little about how to handle larger amounts of data, with regard to caching and inferencing. Caching In real life, you are most of the time using the expiration technique. You can get information about something from a computer. But then you leave the computer, you don't know if the informaiton is still current. We can't demand that the information is allways current. The system should be able to automaticly handle and recover from faulty information. About diffrent strategies to use current information 1. We know it never changes 2. We check the information on demand and expect it not to change before we use the infromation 3. Potential information users are contacted then the information changes 4. The used information is validated against the source before it gets commited 5. A transitional period is used there the previus information is still valid. The user can use expiration date without the risk of using faulty information 6. An exact time for the transition could be announced a period in advace 7. Changed information can be discoverd and used to correct previuos data and maby undo actions Fault tolerance I don't want a minimalistic approach. The same information can be stored in many ways. hooks will be set up to relate dependent information. But mych related information will not have a connection because you don't know that the information is related until you have tried it for the relation. The system will have to handle contradicting information and to prioritize and sort out things. The process of finding connectins and sort out unwanted data is done in the pricess of dreaming. Dreams A sleep cycle consist of the deep sleep and the dream sleep. In the deep sleap, the system is normalized. Unreferenced resources gets flushed out. Equivalent resources gets merged. Containers gets reorderd. Stuff like that. The dream sleep is the process of trying out scenarios. A lot of new connections between the new memories from the day and all things thought about is tried. New useful connections is kept. The deep sleep cleans up after the dream. The result from the previous dream period is used as inut for the next cycle. Intresing scenarios gets repeated in search for more connections. Replication Who should we go to for service then Wraf is sleeping? Two services could talk to each other. They would be individuals even if they worked with the same data. Changes would continously be transferd between the systems to keep them in sync regarding the intresting matters. But the important thing is that tey aren't exactly the same. They will probably be given the same desires. Their dreams will naturally be similar because they work with the same stuff. But they will not be identical. In the morning (or after a vacation) the system will catch up with what has happend. It will have to resolve problems. Some things maby has to be undone. The actual update could in itself turn up faults that will have to be corrected. Isn't this fun? :-) -- / Jonas Liljegren The Wraf project http://www.uxn.nu/wraf/ Sponsored by http://www.rit.se/ From jonas@rit.se Thu Feb 15 14:12:43 2001 From: jonas@rit.se (Jonas Liljegren) Date: 15 Feb 2001 15:12:43 +0100 Subject: SV: [RDF] Re: Wraf and Perl6 In-Reply-To: References: Message-ID: <87d7ckc9wk.fsf@jonas.rit.se> Stefan Andersson writes: > Will you upgrade the Demo to reflect the new possibilities? :-) Hmm... I haven't changed the version number... I will test out my current version, bump up the version number and make a pre-release as 0.0451. It will include the search form and the abbrevations. -- / Jonas Liljegren The Wraf project http://www.uxn.nu/wraf/ Sponsored by http://www.rit.se/ From jonas@rit.se Thu Feb 15 14:55:15 2001 From: jonas@rit.se (Jonas Liljegren) Date: 15 Feb 2001 15:55:15 +0100 Subject: [RDF] Wraf v0.0451 In-Reply-To: References: Message-ID: <87zofoatd8.fsf@jonas.rit.se> Ok. I have now tagged Release-v0_0451 and checked it out to the Wraf demo. The demo is moved to a demo directory and there is a start to another demo parallell to the person demo. The templates for the person demo is here: http://uxn.nu/wraf/RDF-Service/demo/pers1/bin/tmpl/ -- / Jonas Liljegren The Wraf project http://www.uxn.nu/wraf/ Sponsored by http://www.rit.se/ From jonas@rit.se Mon Feb 19 13:01:36 2001 From: jonas@rit.se (Jonas Liljegren) Date: 19 Feb 2001 14:01:36 +0100 Subject: [RDF] Sorting selections Message-ID: <87vgq66d3j.fsf@jonas.rit.se> I started this message two weeks ago. I have prosponed this topic, but may as well send out this now. I was thinking about how to sort selections. Let's say we have four interfaces and asks for resources with a specific property. If there are a lot of resources that match the criterion, it would generate a very large selection. But we may only want to list the first five. In order to save time and memory, we only put the criterion in the selection and doesn't compute the result. Then li($n) is called to get the $n entry, the selection entry is expanded. If the selection comes from only one interface, we could let the interface directly return the $n resource. But because several interfaces is onvolved, none of the interface know which enty is number $n. We have to get one by one until we get to $n. If the ordering isn't important, we could return the objects from one interface after another. If we request numer 248, and a size() request to the first interface gives 235, we continue with the next interface. But a size() should not have to count all resources if the point is to know in which interface number 248 resides in. Dynamic properties could be computed based on many things. If we want all objects of a specific type, we cant let the backend only retrieve those resources. anotther interface could say that another class is a subClassOf that type. It could be very complicated. many selections would have to be done. If the order is significant, we have to build an internal list of resources in the container. If the conteiner is very larg, we don't want to have the whole list in memory. We could do some sorts of partial sorting. For example, if we only want the top three items, we wouldn't have to sort the bottom 9997 items. -- / Jonas Liljegren The Wraf project http://www.uxn.nu/wraf/ Sponsored by http://www.rit.se/ From Stefan.Andersson@ullmans.com Mon Feb 19 13:31:31 2001 From: Stefan.Andersson@ullmans.com (Stefan Andersson) Date: Mon, 19 Feb 2001 14:31:31 +0100 Subject: SV: [RDF] Sorting selections Message-ID: Yo! Actually, I have been thinking about this issue for some time. I haven't read anything, though, so supposedly somebody somewhere already have solved the problem. Oh, well. That won't stop me from thinking loudly for myself: I was wondering whether this actually is a problem of defining exactly _what_ you want, not how to pick a certain number more or less randomly. So, when you say 'I just want _one_ occurence', what do you _really_ say, i.e. _why_ do you just want one occurence? And, implicitly, what should we do with the rest of them? Ok. Maybe banal, maybe naive, but I think resolving the question is so complex, maybe what you would want to do, is redefine the _question_? And I have a hunch that the 'dialogue' approach is one way of solving this... Just my ha'penny. /Stefan > -----Ursprungligt meddelande----- > Fran: rdf-admin@uxn.nu [mailto:rdf-admin@uxn.nu]For Jonas Liljegren > Skickat: den 19 februari 2001 14:02 > Till: Wraf development > Amne: [RDF] Sorting selections > > > I started this message two weeks ago. I have prosponed this topic, > but may as well send out this now. > > > I was thinking about how to sort selections. > > Let's say we have four interfaces and asks for resources with a > specific property. > > If there are a lot of resources that match the criterion, it would > generate a very large selection. But we may only want to list the > first five. > > In order to save time and memory, we only put the criterion in the > selection and doesn't compute the result. Then li($n) is called to > get the $n entry, the selection entry is expanded. > > If the selection comes from only one interface, we could let the > interface directly return the $n resource. But because several > interfaces is onvolved, none of the interface know which enty is > number $n. We have to get one by one until we get to $n. > > If the ordering isn't important, we could return the objects from one > interface after another. If we request numer 248, and a size() > request to the first interface gives 235, we continue with the next > interface. > > But a size() should not have to count all resources if the point is to > know in which interface number 248 resides in. > > > Dynamic properties could be computed based on many things. If we want > all objects of a specific type, we cant let the backend only retrieve > those resources. anotther interface could say that another class is a > subClassOf that type. It could be very complicated. many selections > would have to be done. > > > If the order is significant, we have to build an internal list of > resources in the container. If the conteiner is very larg, we don't > want to have the whole list in memory. > > We could do some sorts of partial sorting. For example, if we only > want the top three items, we wouldn't have to sort the bottom 9997 > items. > > > -- > / Jonas Liljegren > > The Wraf project http://www.uxn.nu/wraf/ > Sponsored by http://www.rit.se/ > > _______________________________________________ > RDF mailing list > RDF@uxn.nu > http://www.uxn.nu/cgi-bin/mailman/listinfo/rdf > From jonas@rit.se Fri Feb 23 21:36:05 2001 From: jonas@rit.se (Jonas Liljegren) Date: 23 Feb 2001 22:36:05 +0100 Subject: [RDF] Progres report Message-ID: <87r90pt73u.fsf@jonas.rit.se> I have woked full time on Wraf for some time now. The system continues to evolve. I find it relatively easy to discover the existence of bugs in the system. To find the source of the bugs can, on the other hand be, quite time consuming. But the system feels stable. And thats nice, considering the chaos that's going on inside. I have restructured the jumptables by extracting the dynamic properties. The value of LS:size and LS:level now looks like ordinary properties, but are in fact calculated by functions provided by interfaces. The RDFS:subClassOf should also be a dynamic propertu, but that's not done yet. The RDFS:label predicate became a testcase for the connection between the core and the interface. The DBI interface stores the label in a special field, apart from other properties. But the core (now) handles RDFS:label the same as other properties. This wa an important test, since you should be able to construct an interface using a custom database for your data. This change led to some restructuring and simplification of the declaration and storage system. I think the number of methods has decreased. And this should also result in some speed increase. The latest CVS commit is tagged as Release-v0_0452 -- / Jonas Liljegren The Wraf project http://www.uxn.nu/wraf/ Sponsored by http://www.rit.se/ From jonas@rit.se Fri Feb 23 22:26:04 2001 From: jonas@rit.se (Jonas Liljegren) Date: 23 Feb 2001 23:26:04 +0100 Subject: [RDF] The model of dynamic properties Message-ID: <87n1bdt4sj.fsf@jonas.rit.se> The latest bug in Wraf is the reason for this post. It manifests as an undefined value of LS:level in the Person Demo. LS:level is a dynamic property. It was previously a method provided by the Base interface: http://uxn.nu/wraf/RDF-Service/doc/html/api/RDF/Service/Interface/Base/V01.html#level() The problem occures during the schema initialization (triggerd by a link in the Demo). It defines the Person to be a class: sub do_initiate_db { my $model = $s->get_model(NS_LD.'#M1'); $model->get(NS_LD.'/Class#Person')->set( [NS_RDFS.'Class'] ); $model->get(NS_LD.'/Property#first_name')->set( [NS_RDF.'Property'] ); $model->get(NS_LD.'/Property#last_name')->set( [NS_RDF.'Property'] ); return "DB initiated"; } The set() method completely defines the resource. If the resource currently has other properties, they are removed. but properties defined in other models should not be removed. During the process of set(), the Person resource is initialized (ie, set up with the properties returned from the interfaces). The LS:level property is initialized to '1'. But this propery is shortly after removed, because it's not specified by set(). (The Person set() above only sets the type to RDFS:Class.) This is allowed since the statement is created in the working model (ie, LD:#M1). Of, course, you should never be allowed to remove dynamic properties. They should only be modified by their dependencies. But now for the 'question' .......................... This raised for me the question of what the model for the dynamic properties should be. Who is stating the statement? It's a combination of: - The model of the program code - The model of all data used as input My previous thought, if I remember, was to create a custom model for the specific combination, and put the data about the involved models as metadata for that model. I think that the agent property of the model will be used as a base for trust. For dynamic properties, a group could be used as agent. The first time the group is encounterd, we could check each agent. But then we could trust the group. That would mean that the agent would be a bag of agents. Should every dynamic property be placed in a unique model? Or should we group properties that has identical metadata, maby within the same session? But the session doesn't have a clear connection to the dynamic properties, other than maby as the model for a part of the source data. Ah, thats it! A new session results in a new source model and a new dynamic model. Thank you for your time! ;-) -- / Jonas Liljegren The Wraf project http://www.uxn.nu/wraf/ Sponsored by http://www.rit.se/ From jonas@rit.se Mon Feb 26 10:37:20 2001 From: jonas@rit.se (Jonas Liljegren) Date: 26 Feb 2001 11:37:20 +0100 Subject: [RDF] v0.0453 Message-ID: <877l2dzq5b.fsf@jonas.rit.se> I have optimized the storage a bit. The node LOCAL slot remebers uniquely generated URIs thats guaranteed not to have information in interfaces. There is also a check during storage to not access the interfaces if there isn't anything that needs to be stored. This reduces the amount of DBI access. I have introduced a Dynamic_Model to place all dynamic properties in. Until the time we implement the full metadata for dynamic models. The autorization check for edit and delete seems to be broken... The demo uses 0.0453 now. For some reason, the demo wasn't running resently. i couldn't find an error in the log. If you manage to crach it, please report what you did. :) Or I will increase the debug level to 3 or 4... My plan for v0.05 is to have a little more search functionality and maby implement the dependency check for the dynamic properties. -- / Jonas Liljegren The Wraf project http://www.uxn.nu/wraf/ Sponsored by http://www.rit.se/ From jonas@rit.se Thu Mar 1 11:35:00 2001 From: jonas@rit.se (Jonas Liljegren) Date: 01 Mar 2001 12:35:00 +0100 Subject: [RDF] DAML+OIL for queries Message-ID: <87lmqp90yj.fsf@jonas.rit.se> Can DAML+OIL be used for declaring wanted resources? Maby by defining a class, and saying that it's members must have specific properties? Or that it should have either this or that property, but not both? I am now looking back on some thoughts on how to represent questions in RDF. I am inclined to use the model of asking questions by describing the thing you search for. You describe X by its properties and types. You may say that it's either this or that. Let's say you are describing a trafic light. You say that X is a thing that is either red or green or yellow (in Sweden). This is a description of a thing with a colour property that alterate over time. It would be another thing to talk about something there the property is constant, but you are not sure on it. X is a ball and it is either red or blue. A RDF service should answer the question by saying that the thing described has the same properties as this list of resources. The list will be diffrent if you are searching for things that has=A0one of the properties (as the ball), or things that could have all of the properties (as with the trafic light). And you could also say things that it will not have. Maby you describe two colours of the thing and imples that it does not have more than those two colours. What I want to say: A question can also be a description using a bag of statements. The description could be about a hypothetical object, or it could be about a collection of objects. By letting the service find aliases, you don't have to use any type of variables. Has anyone here a suggestions on how to write those descriptions? You basicly have to insert a way to add ORs and NOTs. AND is the default. Is it a good idea to use DAML+OIL for this? --=20 / Jonas Liljegren The Wraf project http://www.uxn.nu/wraf/ Sponsored by http://www.rit.se/ From jonas@rit.se Thu Mar 1 18:35:55 2001 From: jonas@rit.se (Jonas Liljegren) Date: 01 Mar 2001 19:35:55 +0100 Subject: [RDF] Cookie problem Message-ID: <87snkxcp6c.fsf@jonas.rit.se> I think I know what the problem is. The cookie is set by the usertrack apach module. It will set the cookie with the return of the first page. But if that first page was expecting the cookie, it would not get it. I guess that means that we must set the usertrack cookie ourself... -- / Jonas Liljegren The Wraf project http://www.uxn.nu/wraf/ Sponsored by http://www.rit.se/ From der@hplb.hpl.hp.com Fri Mar 2 13:42:15 2001 From: der@hplb.hpl.hp.com (Dave Reynolds) Date: Fri, 02 Mar 2001 13:42:15 +0000 Subject: [RDF] Re: DAML+OIL for queries References: <87lmqp90yj.fsf@jonas.rit.se> Message-ID: <3A9FA337.BF7EC8FD@hplb.hpl.hp.com> > Can DAML+OIL be used for declaring wanted resources? I believe so. In particular DAML+OIL are based on the notion of description logics and there has been work done in using description logics to specify queries in deductive database systems. A good overview paper that I found helpful in understanding the area was "Description Logics in Data Management", Alex Borgida, IEEE Trans Knowledge and Data Eng, 7, #5, Oct 95. Doubtless there is more recent work in the area. > Has anyone here a suggestions on how to write those descriptions? You > basicly have to insert a way to add ORs and NOTs. AND is the > default. I may be misunderstanding the question but while "AND" is sort-of the default for the RDF assertions, DAML+OIL is richer. Taking the approach of treating DAML+OIL as specifying descriptions then the unionOf, intersectionOf, complementOf properties give you AND, OR and NOT. You could generate a description of the things you are trying to retrieve using these properties and then have a reasoner/database retrieve those objects which are instances of your specified class. I confess to being new to description logics and DAML so if my assumptions that it all fits together this way are wrong then please correct me! Dave ------------------------------------------------------------------ Hewlett-Packard Laboratories | Phone: +44-117-3128165 Filton Road, Stoke Gifford | FAX: +44-117-3128925 Bristol BS34 8QZ, UK | dave_reynolds@hpl.hp.com From jonas@rit.se Fri Mar 2 18:15:32 2001 From: jonas@rit.se (Jonas Liljegren) Date: 02 Mar 2001 19:15:32 +0100 Subject: [RDF] Re: DAML+OIL for queries References: <87lmqp90yj.fsf@jonas.rit.se> <3A9FA337.BF7EC8FD@hplb.hpl.hp.com> Message-ID: <87ae74avgb.fsf@jonas.rit.se> I would first like to apology for my confused posting. I should have hold back one day more. My understanding of DAML is now much better. I have now found that searches can be done by defining a class. The search result will be the resources belonging to that class. One search form I am experimenting with is intended for finding object bleonging to one or more of the selected classes. In hidden fields in the search form, I put statements equivalent of: And the list of searchable classes, using Template Toolkit (for Perl), simplified: [% FOREACH type = types %]

[% type.label.value %]

[% END %] On Submit, the new statements is inserted in the RDF space. The container content is determined by the chosed checkboxes. The search result page simply views the objects for the class #gen1, simplified:
    [% FOREACH object = query.rev_type.list %]
  • [% object.label.value %]
  • [% END %]
I guess that this will work for any type of search criterions. I think that I can find a way to include substring searches by just creating dynamic substring properties for the resources. All this, within the Wraf project: http://uxn.nu/wraf/ The templates above are a temporary solution. We will later crate a presentation layer in RDF using semantic presentation components, as a part of the agent/server conversation (session) context. Dave Reynolds writes: > > Has anyone here a suggestions on how to write those descriptions? > > You basicly have to insert a way to add ORs and NOTs. AND is the > > default. > > I may be misunderstanding the question but while "AND" is sort-of the > default for the RDF assertions, DAML+OIL is richer. It seems to me that AND is default also for DAML+OIL. I read about boolean combinations in: http://www.daml.org/2000/12/reference.html#Class The class C must be equivalent to the class defined by each of the boolean class expression, I would have prefered this to be clearer. But I guess that this means that if I have: it would be equivalent to: Is this correct? > Taking the approach of treating DAML+OIL as specifying descriptions > then the unionOf, intersectionOf, complementOf properties give you > AND, OR and NOT. You could generate a description of the things you > are trying to retrieve using these properties and then have a > reasoner/database retrieve those objects which are instances of your > specified class. Yes. That's what I found out after I actually read the documents and examples. :-) -- / Jonas Liljegren The Wraf project http://www.uxn.nu/wraf/ Sponsored by http://www.rit.se/ From timbl@w3.org Wed Mar 7 04:12:36 2001 From: timbl@w3.org (Tim Berners-Lee) Date: Tue, 6 Mar 2001 23:12:36 -0500 Subject: [RDF] Re: DAML+OIL for queries References: <87lmqp90yj.fsf@jonas.rit.se> <3A9FA337.BF7EC8FD@hplb.hpl.hp.com> <87ae74avgb.fsf@jonas.rit.se> Message-ID: <01f401c0a6bc$e314d670$c1defea9@CREST> What N3 does is to use RDF (including RDF+OIL) as queries. A simple query, as you suggest, can be just a DAML expression to match. You need a way of clarifying which are variables. More comples queries need plain DAML to be extended to contain nested formulae. The N3 experiment was aimed at seeing whther you could smoothly integrate forumlae on top of DAML and it seems to work. But you might decide you prefer to switch to lisplike syntax as it gets more formula-like and less data-like. tim ----- Original Message ----- From: "Jonas Liljegren" To: "Dave Reynolds" Cc: ; "Wraf development" Sent: Friday, March 02, 2001 1:15 PM Subject: Re: DAML+OIL for queries > I would first like to apology for my confused posting. I should have > hold back one day more. My understanding of DAML is now much better. > > > > I have now found that searches can be done by defining a class. The > search result will be the resources belonging to that class. > > > One search form I am experimenting with is intended for finding object > bleonging to one or more of the selected classes. > > In hidden fields in the search form, I put statements equivalent of: > > > > > And the list of searchable classes, using Template Toolkit (for Perl), > simplified: > > > [% FOREACH type = types %] >

name="li_subj #gen2" > value="[% type.uri %]" /> > > [% type.label.value %] >

> [% END %] > > > > On Submit, the new statements is inserted in the RDF space. The > container content is determined by the chosed checkboxes. > > > The search result page simply views the objects for the class #gen1, > simplified: > >
    > [% FOREACH object = query.rev_type.list %] >
  • > [% object.label.value %] >
  • > [% END %] >
> > > > > I guess that this will work for any type of search criterions. I > think that I can find a way to include substring searches by just > creating dynamic substring properties for the resources. > > > All this, within the Wraf project: > > http://uxn.nu/wraf/ > > > > The templates above are a temporary solution. We will later crate a > presentation layer in RDF using semantic presentation components, as a > part of the agent/server conversation (session) context. > > > > > Dave Reynolds writes: > > > > Has anyone here a suggestions on how to write those descriptions? > > > You basicly have to insert a way to add ORs and NOTs. AND is the > > > default. > > > > I may be misunderstanding the question but while "AND" is sort-of the > > default for the RDF assertions, DAML+OIL is richer. > > It seems to me that AND is default also for DAML+OIL. I read about > boolean combinations in: > http://www.daml.org/2000/12/reference.html#Class > > The class C must be equivalent to the class defined by each of the > boolean class expression, > > I would have prefered this to be clearer. But I guess that this means > that if I have: > > > > > > > > > > > > > it would be equivalent to: > > > > > > > > > > > > > > > > > > > > Is this correct? > > > > > > Taking the approach of treating DAML+OIL as specifying descriptions > > then the unionOf, intersectionOf, complementOf properties give you > > AND, OR and NOT. You could generate a description of the things you > > are trying to retrieve using these properties and then have a > > reasoner/database retrieve those objects which are instances of your > > specified class. > > Yes. That's what I found out after I actually read the documents and > examples. :-) > > -- > / Jonas Liljegren > > The Wraf project http://www.uxn.nu/wraf/ > Sponsored by http://www.rit.se/ > From jonas@rit.se Mon Mar 12 08:04:53 2001 From: jonas@rit.se (Jonas Liljegren) Date: 12 Mar 2001 09:04:53 +0100 Subject: [RDF] World modelling Message-ID: <87hf0z1kgq.fsf@jonas.rit.se> My intret in RDF is in part my intrest to model the world. This modelling is also done in classic RPGs and in games. This MUD has a kind of intresting model, talking about fractals and emergent behaviours. I'm reading this section: http://docs.FaerieMUD.org/bin/view/Dream/ThePattern It resembles a bit the the heiarcies described by Ken Wilber. And one author also talks about using WordNet... :) -- / Jonas Liljegren The Wraf project http://www.uxn.nu/wraf/ Sponsored by http://www.rit.se/ From jonas@rit.se Mon Mar 12 15:16:47 2001 From: jonas@rit.se (Jonas Liljegren) Date: 12 Mar 2001 16:16:47 +0100 Subject: [RDF] GET and POST RDF with HTML forms Message-ID: <87ae6r10gw.fsf@jonas.rit.se> In Wraf [1], we will build a presentation system there the presentation logic is stored in RDF. This builds on a concept for the session, that in turn builds on a query language. I have recently discussed this with Stefan, and I have also reviewd some earlier discussions on the subject from last year. The goal is to find a way to create a web application for a knowledge community: http://uxn.nu/wraf/RDF-Service/doc/html/hdc.html A generic session is any type of communication between two agents. But the focus here is the session that consists of people using web browsers to communicate with the service through a HTML interface. The session consists of information requests and information presentation. The 'user' will ask for specific information and many times also give information. The simplest way to request information is to just ask for a specific resource, as with a normal URL. The answer to the question depends on the context. The context will consist of HTTP request metadata and the session. The session will often hold the identity of the user and the users preferences. It tells the service to give the answer in HTML form and to give an answer of 'medium length'. We would like to use the semantics of http GET and POST. GET is for requesting information and POST is for submitting information. The PATH specifies the focus resource. The QUERYSTRING part can be used as a presentation modifier. We are here looking for a way to ask question using HTTP. Simple question should just use the URL. But what will more complex questions look like? Questions could maby look like: http://give.me/person/jonas_liljegren http://give.me/person/jonas_liljegren/intrests http://give.me/person/liljegren/intrest/RDF http://give.me/person/jonas/thoughts_about/RDF/related_to/AI http://give.me/AI/related_to/RDF/according_to/jonas http://give.me/liljegren_j.html http://give.me/persons?order_by=last_name http://give.me/liljegren_j?mode=edit The URL is here just a type of query. It has no relation to physical storage of the information. The actual information could even be stored on another server. But the server part says something about the authority of the answer. The point here is to let the service try to answer every GET request. The URLs should be easy to remember. Old URLs should work even after reorganisations of the material. The URL parser will mainly work by mapping path segments to resource labels. The focus resource is identified by the whole path. If the first segment is a predicate, the next segment is taken to be the object of the resource property. The remaining segments is parsed to add more restrictions to the query. If a segment is a class, the resource will be of that type. The following segment can be a subclass of the class or another class. The whole URL could also match a known resource URL. The request URL will create a new resource representing the answer to the parsed question. This resource could take the form of a DAML class, defining the criterions for class membership. The dot-extension will, if existing, be taken as the prefered response format. It could for example be html, xhtml, rdf or txt. The http ACCEPT metadata should also be used. The presentation of the answer will be formatted according to the number of matched resources, the specific criterions and the session context. With only one matching resource, it will probably be displayed in whole. With several matches, there will probably be a list of answers. If you ask for a person phone number, but the service finds two persons with the same name, the service will have to ask for more information about which person you are refering to. If the alternatives are few, this counterquestion is best put in the form of a list of options. For a larger amount of alternatives, a list of classes could be presented, or you could just be asked to give more specific criterions. This makes up the steps of refining a query; from list to item to subitem. The POST part has been detaild in a previous posting. It's basicly about submitting new statements. The statements could be said to be related to the URL if nothing else is explicitly specified. HTML FORMS Stefan proposed that the HTML form itself should be a resource that gives metadata for all the fields. Every time a form is to be filled out, it gets a unique resourse, as an instance of the specific form class. Each field is a resource containing data about what is valid data and how the field value will be inteprated. Some values could be translated to statements and other values could be used as metainformation for the submitted data. The fild names would be the URIs for the resources. The form data is stored as properties for the unique form resource. This data is translated into new statements by some "parser" specified by the metadata for the form class. In most cases, the original raw form data will soon expire into oblivion. [1] http://www.uxn.nu/wraf/ -- / Jonas Liljegren The Wraf project http://www.uxn.nu/wraf/ Sponsored by http://www.rit.se/ From jonas@rit.se Tue Mar 13 14:19:13 2001 From: jonas@rit.se (Jonas Liljegren) Date: 13 Mar 2001 15:19:13 +0100 Subject: [RDF] Comments on N3 and its use for writing rules In-Reply-To: <01f401c0a6bc$e314d670$c1defea9@CREST> References: <87lmqp90yj.fsf@jonas.rit.se> <3A9FA337.BF7EC8FD@hplb.hpl.hp.com> <87ae74avgb.fsf@jonas.rit.se> <01f401c0a6bc$e314d670$c1defea9@CREST> Message-ID: <87wv9tn44e.fsf_-_@jonas.rit.se> I have now read these pages of yours: http://www.w3.org/DesignIssues/Notation3.html http://www.w3.org/DesignIssues/Anonymous.html http://www.w3.org/2000/10/swap/Primer.html There is a lot on inconsistencys. Both <#g> and '#g' and :g is used. But <#g> is not defiend in the BNF. I guess you have replaced '' with <>. I also guess that the dot at the end inside {} is optional. EXPLOSION OF NESTED MODELS (I am using the word model[1], since I have put a diffrent meaning in the word context[7].) I would like to comment on the last part of the Primer: <> log:forAll :p, :q. { :p ont:inverse :q } log:implies { { { :x :p :y } log:implies { :y :q :x } } a log:Truth; log:forAll :x, :y. }. And Now blow it to pieces, using the format "Model Stating[2] Subject Predicate Object" (Triple, quad, whats next? penta something?) C00 S01 C00 log:forAll :p C00 S02 C00 log:forAll :q C01 S03 :p ont:inverse :q C02 S04 :x :p :y C03 S05 :y :q :x C04 S06 C02 log:implies C03 C05 S07 C04 rdf:type log:Truth C05 S08 C04 log:forAll :x C05 S09 C04 log:forAll :y C00 S10 C01 log:implies C05 That log:Truth statement got me thinking. Let's consider your first rule of models: "The statements are all independent, in that you can remove any of the statements and the rest are still true". What happens if we kill S07? We would still have the statements S08 and S09. Can't we implicitly say that C4 is true for all :x and :y? Ok. Maby not. Now, let us see this thing in action. We start by Inserting some seeds in the system. Here we declare our trust in the infered statements [3], here placed in L01: C11 S11 C00 rdf:type log:Truth C11 S12 :child ont:inverse :parent C11 S13 :agnus :child :bengt C11 S14 L01 rdf:type log:Truth And now press GO! R01 L01->imports( C11 ) R02 L01->imports( C00 ) R03 L01->state( :p, rdf:type, log:variable ) R04 L01->state( :q, rdf:type, log:variable ) R05 L02 = L01->eval( C01 ) R06 L01->find( *, ont:inverse, * ) R07 L01->state( :p, =, :child ) R08 L01->state( :q, =, :parent ) R09 L01->imports( C05 ) R10 L01->state( :x, rdf:type, log:variable ) R11 L01->state( :y, rdf:type, log:variable ) R12 L03 = L01->eval( C04 ) R13 L04 = L01->eval( C02 ) R14 L01->find( *, :child, * ) R15 L01->state( :x, =, :agnus ) R16 L01->state( :y, =, :bengt ) R17 L03->imports( C03 ) R18 L03->state( :bengt, :parent, :agnus ) R19 L01->imports( L03 ) Ok. That seems to work. :) This was just some pseudocode I invented as I wrote it. The L01-L04 is models produced by the inference function. R01-R19 are just row numbers. The L01->f() syntax is for specifying in which model the function operates. See the Wraf API [4]. I was trying to find out for myself if we could keep the models separated as in your example with an inner and outer model. In Wraf, I will mostly use inverse inference. I will start with the sought after property and determine its value. We just have to turn the logic functions outside in. BINDING QUANTIFIERS I don't think it's necessary to bind quantifiers to a specific model. All statings already are in a model. Look at S01 and S02 above. You don't have to say the same thing twice. log:forAll is not a binary predicate. I suggest we declare them as special types of variables: log:Variable rdf:type rdfs:Class. log:ForAll rdfs:subClassOf log:Variable. UNIVERSAL I don't think it is meaningful to say in what model a resource is a variable and in what model it isn't. The result would be the same if you said: <> log:forAll :p, :q, :x, :y. { :p ont:inverse :q } log:implies { { :x :p :y } log:implies { :y :q :x } }. Or, treating them as variables: my:revtype ont:inverse rdf:type. log:ForAll my:revtype :p, :q, :x, :y. { :p ont:inverse :q } log:implies { { :x :p :y } log:implies { :y :q :x } }. Hehe. And thats Yet Another Recursive Dependency (YARD). ;-) EXISTENTIAL So, what about log:forSome ? In the Notation3 page under #quoting, you give the example: { [x:firstname "Ora"] dc:wrote [dc:title "Moby Dick"] } a n3:falsehood . And you give this translation (model, stating, p, s, o ): #c1 #s1 n3:forSome #c1 #g1 #c1 #s2 x:firstname #g1 "Ora" #c1 #s3 n3:forSome #c1 #g2 #c1 #s4 dc:wrote #g1 #g2 #c1 #s5 dc:title #g2 "Moby Dick" doc #s6 n3:forSome doc #c1 doc #s7 n3:subExpression doc #c1 doc #s8 rdf:type #c1 n3:falsehood Hum... I don't agree with #s6. The model #c1 says that there exist some #g1 and #g2 such that #g1 wrote #g2. #s8 negates that. #s6 doesn't make sense. #c1 is an generated resource. But it's properties is fully defined. #c1 is not a variable. Futher, there is no need for #s7. We can write back the remaining statings in n3, using the method from above: n3:ForSome my:revtype :g1, :g2. :c1 = { :g1 x:firstname "Ora". :g1 dc:wrote :g2. :g2 dc:title "Moby Dick". } a n3:falsehood . BOTH UNIVERSAL AND EXISTENTIAL Notation3 page section #quantification gives this example: {{:g :loves :h} log:forSome :g} log:forAll :h. My nonattached version is ambigous: :g a log:ForSome. :h a log:forAll. :g :loves :h. :g and :h is variables. Let me rewrite a bit: :g a log:ForSome. :h a log:forAll. :h log:implies { :g :loves :h }. Now, that takes care of it. And for the other direction: :g a log:ForSome. :h a log:forAll. :g log:implies { :g :loves :h }. Now, a lone resource is here taken to mean "{ :g a rdfs:Resource}". But we would usually say something more about the resource. Probably this: :g a log:ForSome. :h a log:forAll. {:h a ont:Person} log:implies { :g :loves :h }. THE MODEL FOR INFERED STATINGS The Notation3 page introduces the log:parsesTo predicate. I don't like that name. The thing here is that we in some way declare our trust[5] in a) source data and b) a inference service[6]. When we ask the service to find some infered data for us, we tell it what sources we trust. We resulting statings is placed in a separate model. This resulting model should have metadata saying that it is infered data, and the inference service and source data used. The same source model can be used in many inference models and the same inference model can use many sources. Let the model with the infered statings declare its sources. If we wan't we can state the trust in the resulting data. [1] http://uxn.nu/wraf/RDF-Service/doc/html/model.html [2] http://uxn.nu/wraf/RDF-Service/doc/html/stating.html [3] http://uxn.nu/wraf/RDF-Service/doc/html/inference.html [4] http://uxn.nu/wraf/RDF-Service/doc/html/api.html [5] http://uxn.nu/wraf/RDF-Service/doc/html/trust.html [6] http://uxn.nu/wraf/RDF-Service/doc/html/service.html [7] http://uxn.nu/wraf/RDF-Service/doc/html/context.html -- / Jonas Liljegren The Wraf project http://www.uxn.nu/wraf/ Sponsored by http://www.rit.se/ From Stefan.Andersson@ullmans.com Tue Mar 13 15:25:21 2001 From: Stefan.Andersson@ullmans.com (Stefan Andersson) Date: Tue, 13 Mar 2001 16:25:21 +0100 Subject: SV: [RDF] World modelling Message-ID: Way! Have these guys [1] been smoking a lot of naughty herbs? /Stefan [1] http://docs.FaerieMUD.org/bin/view/Dream/ThePattern > -----Ursprungligt meddelande----- > Fran: rdf-admin@uxn.nu [mailto:rdf-admin@uxn.nu]For Jonas Liljegren > Skickat: den 12 mars 2001 09:05 > Till: Wraf development > Amne: [RDF] World modelling > > > My intret in RDF is in part my intrest to model the world. This > modelling is also done in classic RPGs and in games. > > This MUD has a kind of intresting model, talking about fractals and > emergent behaviours. I'm reading this section: > > http://docs.FaerieMUD.org/bin/view/Dream/ThePattern > > > It resembles a bit the the heiarcies described by Ken Wilber. > > > > And one author also talks about using WordNet... :) > > -- > / Jonas Liljegren > > The Wraf project http://www.uxn.nu/wraf/ > Sponsored by http://www.rit.se/ > > _______________________________________________ > RDF mailing list > RDF@uxn.nu > http://www.uxn.nu/cgi-bin/mailman/listinfo/rdf > From jonas@rit.se Wed Mar 14 14:27:35 2001 From: jonas@rit.se (Jonas Liljegren) Date: 14 Mar 2001 15:27:35 +0100 Subject: [RDF] Stand alone server Message-ID: <871ys0l92g.fsf@jonas.rit.se> For a implementation of the mapping of the URL path to resource queries, I think it would be better to don't use Apache at all. The two existing demos only packs the incomming data into a string and sends it over to the server. The client part doesn't know anything about RDF. Since the service will handle everything in a way diffrent from filebased web servers, I don't think we have much to win in using Apache. I haven't yet found hellper modules for this. But there should exist a perl HTTP server somewhere. The basic functionality is very easy to write. -- / Jonas Liljegren The Wraf project http://www.uxn.nu/wraf/ Sponsored by http://www.rit.se/ From christine@trafficmagnet.net Thu Mar 15 12:41:13 2001 From: christine@trafficmagnet.net (Christine Hall) Date: Thu, 15 Mar 2001 20:41:13 +0800 Subject: [RDF] UXN.NU Message-ID: <200103151241.UAA17033@ns2.trafficmagnet.net>

Hello,

I visited uxn.nu and I noticed that you are not listed on some search engines. I am sure you can increase the number of people who visit uxn.nu . Do you know TrafficMagnet? TrafficMagnet is a unique technology that automatically submits your web site to over 300,000+ search engines and directories every month. This is a very low-cost and effective way of advertising your site.

To check our prices and submit uxn.nu to 300,000+ search engines, go to TrafficMagnet.net

I would love to hear from you.

Best Regards,
Christine Hall
Sales & Marketing
www.TrafficMagnet.net

   

From timbl@w3.org Fri Mar 16 22:37:24 2001 From: timbl@w3.org (Tim Berners-Lee) Date: Fri, 16 Mar 2001 17:37:24 -0500 Subject: [RDF] Re: Comments on N3 and its use for writing rules References: <87lmqp90yj.fsf@jonas.rit.se> <3A9FA337.BF7EC8FD@hplb.hpl.hp.com><87ae74avgb.fsf@jonas.rit.se> <01f401c0a6bc$e314d670$c1defea9@CREST> <87wv9tn44e.fsf_-_@jonas.rit.se> Message-ID: <043201c0ae69$ac7ce800$84001d12@w3.org> ----- Original Message ----- From: "Jonas Liljegren" To: "Tim Berners-Lee" Cc: "Dave Reynolds" ; ; "Wraf development" Sent: Tuesday, March 13, 2001 9:19 AM Subject: Comments on N3 and its use for writing rules > I have now read these pages of yours: > http://www.w3.org/DesignIssues/Notation3.html > http://www.w3.org/DesignIssues/Anonymous.html > http://www.w3.org/2000/10/swap/Primer.html > > There is a lot on inconsistencys. Both <#g> and '#g' and :g is used. > But <#g> is not defiend in the BNF. I guess you have replaced '' with > <>. Ooops. Excuse me. I changed '' to <> a long time ago but eth BNF is still wrong It should 9and now does) read: uri-ref2 qname < URI-Reference > > I also guess that the dot at the end inside {} is optional. True. In the production for statementlist the dot is used as a separtor. It isn't introdued that way in the primer. There are many ways yu can write N3 which are not introduced in the primer, as the primer's goal is to get people unconfused and expressing themselves as fast as possible. > > > > > EXPLOSION OF NESTED MODELS > > (I am using the word model[1], since I have put a diffrent meaning in > the word context[7].) OK > I would like to comment on the last part of the Primer: > > <> log:forAll :p, :q. > { :p ont:inverse :q } log:implies > { > { > { :x :p :y } log:implies { :y :q :x } > } a log:Truth; log:forAll :x, :y. > }. > > And Now blow it to pieces, using the format "Model Stating[2] > Subject Predicate Object" (Triple, quad, whats next? penta something?) > > C00 S01 C00 log:forAll :p > C00 S02 C00 log:forAll :q > C01 S03 :p ont:inverse :q > C02 S04 :x :p :y > C03 S05 :y :q :x > C04 S06 C02 log:implies C03 > C05 S07 C04 rdf:type log:Truth > C05 S08 C04 log:forAll :x > C05 S09 C04 log:forAll :y > C00 S10 C01 log:implies C05 > > > That log:Truth statement got me thinking. Let's consider your first > rule of models: "The statements are all independent, in that you can > remove any of the statements and the rest are still true". That only applies to models which are true. It is a property of "and" which is the operator connecting the statements. It does not hold in a negated model or a model on the left hand side of an implication, or a formula in general. > What happens if we kill S07? We would still have the statements S08 > and S09. Can't we implicitly say that C4 is true for all :x and :y? No, that is not the way I defined forAll, as for example I don't want to imply truth in a condition on the left of log:implies. > Ok. Maby not. > > > > Now, let us see this thing in action. We start by Inserting some > seeds in the system. Here we declare our trust in the infered > statements [3], here placed in L01: > > C11 S11 C00 rdf:type log:Truth > C11 S12 :child ont:inverse :parent > C11 S13 :agnus :child :bengt > C11 S14 L01 rdf:type log:Truth > > > And now press GO! > > R01 L01->imports( C11 ) > R02 L01->imports( C00 ) > R03 L01->state( :p, rdf:type, log:variable ) > R04 L01->state( :q, rdf:type, log:variable ) > R05 L02 = L01->eval( C01 ) > R06 L01->find( *, ont:inverse, * ) > R07 L01->state( :p, =, :child ) > R08 L01->state( :q, =, :parent ) > R09 L01->imports( C05 ) > R10 L01->state( :x, rdf:type, log:variable ) > R11 L01->state( :y, rdf:type, log:variable ) > R12 L03 = L01->eval( C04 ) > R13 L04 = L01->eval( C02 ) > R14 L01->find( *, :child, * ) > R15 L01->state( :x, =, :agnus ) > R16 L01->state( :y, =, :bengt ) > R17 L03->imports( C03 ) > R18 L03->state( :bengt, :parent, :agnus ) > R19 L01->imports( L03 ) > > Ok. That seems to work. :) > > This was just some pseudocode I invented as I wrote it. The L01-L04 is > models produced by the inference function. R01-R19 are just row > numbers. The L01->f() syntax is for specifying in which model the > function operates. See the Wraf API [4]. > > I was trying to find out for myself if we could keep the models > separated as in your example with an inner and outer model. > > > In Wraf, I will mostly use inverse inference. I will start with the > sought after property and determine its value. We just have to turn > the logic functions outside in. yes. That will be interesting to see the same rules being used in forward chaining and backward chaining. > BINDING QUANTIFIERS > > I don't think it's necessary to bind quantifiers to a specific > model. All statings already are in a model. Look at S01 and > S02 above. You don't have to say the same thing twice. log:forAll is > not a binary predicate. On the contrary, you must specify the scope of a quantifier. Compare (in lispy syntax): (exists (x) (forall (y) (loves x y))) with: (forall (y) (exists (x) (loves x y))) The type of quantification going on is the same in each case but the scoping is different and the mean ing is quite different (There is somebody who loves everybody, vs every person is loved by someone) > I suggest we declare them as special types of variables: > > log:Variable rdf:type rdfs:Class. > log:ForAll rdfs:subClassOf log:Variable. If you use type, and you don't use a special property which links to the context, then you are saying something about the thing, not the variable. It doesn't work. You need to break out of the logic, adding something new. You can't overload type with this. > > UNIVERSAL > > I don't think it is meaningful to say in what model a resource is a > variable and in what model it isn't. The result would be the same > if you said: > > <> log:forAll :p, :q, :x, :y. > { :p ont:inverse :q } log:implies > { > { :x :p :y } log:implies { :y :q :x } > }. Yes, it would. My software would not (I think) do the right thing with this - I haven't written code to handle left over universals in the conclusion. @@ > Or, treating them as variables: > > my:revtype ont:inverse rdf:type. > log:ForAll my:revtype :p, :q, :x, :y. > { :p ont:inverse :q } log:implies > { > { :x :p :y } log:implies { :y :q :x } > }. > > Hehe. And thats Yet Another Recursive Dependency (YARD). ;-) > > > > EXISTENTIAL le me say straight off thatthere is a bug with the tripples representation I use for forSome. > So, what about log:forSome ? In the Notation3 page under #quoting, > you give the example: > > { > [x:firstname "Ora"] dc:wrote [dc:title "Moby Dick"] > } a n3:falsehood . > > And you give this translation (model, stating, p, s, o ): > > #c1 #s1 n3:forSome #c1 #g1 > #c1 #s2 x:firstname #g1 "Ora" > #c1 #s3 n3:forSome #c1 #g2 > #c1 #s4 dc:wrote #g1 #g2 > #c1 #s5 dc:title #g2 "Moby Dick" > doc #s6 n3:forSome doc #c1 > doc #s7 n3:subExpression doc #c1 > doc #s8 rdf:type #c1 n3:falsehood > > > Hum... I don't agree with #s6. The model #c1 says that there exist > some #g1 and #g2 such that #g1 wrote #g2. #s8 negates that. #s6 > doesn't make sense. #c1 is an generated resource. But it's properties > is fully defined. #c1 is not a variable. Yes, that "forSome" statement was put there to tell the code that c1 was a variable, existentially qualified, with scope doc. > Futher, there is no need for #s7. True, that has been removed from the code and that page now. Thanks for pointing it out. > We can write back the remaining statings in n3, using the method from > above: > > n3:ForSome my:revtype :g1, :g2. [[[ yes .. I keep wanting revtype. You know you can say in N3 n3:ForSome is rdf:type of :g1 , :g2. The reverse syntax was introduced just for this. I'm also toying with introducing comma-separated lists in the subject or even predicate fields: :g1, :g2 rdf:type n3:ForSome . Of couse n3:ForSome is your invention I still maintain doesn't work for reasons given above. End syntax diversional]]] > :c1 = > { > :g1 x:firstname "Ora". > :g1 dc:wrote :g2. > :g2 dc:title "Moby Dick". > } a n3:falsehood . When you don't state something has been given a name which is arbitrary then you can never make it anonymous again. > BOTH UNIVERSAL AND EXISTENTIAL > > Notation3 page section #quantification gives this example: > > {{:g :loves :h} log:forSome :g} log:forAll :h. > > My nonattached version is ambigous: > > :g a log:ForSome. > :h a log:forAll. > :g :loves :h. > > :g and :h is variables. Let me rewrite a bit: > > :g a log:ForSome. > :h a log:forAll. > :h log:implies { :g :loves :h }. That I don't understand - you have some new meaning for log:implies. You can't do that - its my term. I tink you mean a relationship between h the context, which is probably my forAll relation. > Now, that takes care of it. And for the other direction: > > :g a log:ForSome. > :h a log:forAll. > :g log:implies { :g :loves :h }. > > Now, a lone resource is here taken to mean "{ :g a rdfs:Resource}". You mean [ :g a rdfs:Resource ] . ? True for any :g. > But we would usually say something more about the resource. Probably > this: > > :g a log:ForSome. > :h a log:forAll. > {:h a ont:Person} log:implies { :g :loves :h }. > _________________________ I had to leave at this point Tim > > > THE MODEL FOR INFERED STATINGS > > The Notation3 page introduces the log:parsesTo predicate. I don't > like that name. > > The thing here is that we in some way declare our trust[5] in a) source > data and b) a inference service[6]. When we ask the service to find some > infered data for us, we tell it what sources we trust. We resulting > statings is placed in a separate model. > > This resulting model should have metadata saying that it is infered > data, and the inference service and source data used. The same source > model can be used in many inference models and the same inference > model can use many sources. > > Let the model with the infered statings declare its sources. If we > wan't we can state the trust in the resulting data. > > > > [1] http://uxn.nu/wraf/RDF-Service/doc/html/model.html > [2] http://uxn.nu/wraf/RDF-Service/doc/html/stating.html > [3] http://uxn.nu/wraf/RDF-Service/doc/html/inference.html > [4] http://uxn.nu/wraf/RDF-Service/doc/html/api.html > [5] http://uxn.nu/wraf/RDF-Service/doc/html/trust.html > [6] http://uxn.nu/wraf/RDF-Service/doc/html/service.html > [7] http://uxn.nu/wraf/RDF-Service/doc/html/context.html > > -- > / Jonas Liljegren > > The Wraf project http://www.uxn.nu/wraf/ > Sponsored by http://www.rit.se/ > From jonas@rit.se Mon Mar 19 19:51:46 2001 From: jonas@rit.se (Jonas Liljegren) Date: 19 Mar 2001 20:51:46 +0100 Subject: [RDF] HTML forms for RDF data manipulation Message-ID: <87n1ahpmel.fsf@jonas.rit.se> I have thought about how to manipulate RDF data usin HTML forms. The current system only allows creation of statements by encoding them in fields and hidden fields. What I want to do is to have control over how the existing data in controlled by the form data. The schema should be used for determining the expected properties for a resource, based on the class. And for validating the value of a resource properties. But, apart from that, we want to explain the logic of a certain widget in a form. Two widgets could possible manipulate the sama data, but in diffrent ways. The specific problem I wanted to solve was to have a list of checkboxes coupled to a container. Each checkd box will place the corresponding resource in the container. If the container exist, it will be cleared from resources not among the checked boxes. If no boxes is checked, the container will be completely removed along with the property that points at it. This logic will be encoded by a 'field type' resource: :fa a :Field; :field_type :Container; :trim_value :truth; :connection daml:unionOf; :remove_if_empty :truth. Something like that. The connection explains how the widget is coupled to the resource that is suppouesd to be modified. The form will specify: a. The field resorce abouve b. The resource having this proerty c. The availible values in the form For a spelled out list of checkboxes, 'a' and 'b' will be repeated for each availible value. This is my preliminary thought. I will try this tomorrow. -- / Jonas Liljegren The Wraf project http://www.uxn.nu/wraf/ Sponsored by http://www.rit.se/ From jonas@rit.se Thu Mar 29 10:59:20 2001 From: jonas@rit.se (Jonas Liljegren) Date: 29 Mar 2001 11:59:20 +0200 Subject: [RDF] Re: DAML+OIL (March 2001) released References: <200103280648.BAA24464@cam-mbx1.bbn.com> <87r8zixmht.fsf@jonas.rit.se> <3AC1E8C3.DE97603A@w3.org> Message-ID: <87g0fwx5dz.fsf@jonas.rit.se> Reply to http://lists.w3.org/Archives/Public/www-rdf-logic/2001Mar/0105.html And now some comments on this text about the datatype extension: http://www.daml.org/2001/03/differences-daml+oil.html > The idea behind DAML+OIL (March 2001) is to extend DAML+OIL > (December 2000) with arbitrary datatypes from the XML Schema type > system (http://www.w3.org/TR/xmlschema-2/#typesystem), while still > retaining the desirable properties of the ontology language, in > particular its (relative) simplicity and its well defined semantics. That is OK. > This is achieved by maintaining a clear separation between instances > of "object" classes (those defined using our ontology language) and > instances of datatypes (defined using the XML Schema type > system). In particular, it is assumed that the domain of > interpretation of object classes is disjoint from the domain of > interpretation of datatypes, so that an instance of an object class > (e.g., Leo the Lion) can never have the same interpretation as a > value of a datatype (e.g., the integer 5), and that the set of > object properties (which map individuals to individuals) is disjoint > from the set of datatype properties (which map individuals to > datatype values). This solution is not in the spirit of RDF. Of course the resources is disjoint from the actual literals. And that goes also for how to validate them. * The datatype tells something about the content of a literal. * The schema tells something about the properties of a resource. There is no need to split up the rdfs:Class or rdfs:Property. RDFS already has this distinction in the rdfs:Literal class. Datatype properties are recognised by having Datatype as range. Datatype is recognised by being subClassOf rdfs:Literal. The classes daml:ObjectProperty, daml:DatatypeProperty and daml:Class should go away. I can see that the property classes are a result from the need to declare that we are pointing into the XML Schema domain. And daml:Class is used for asserting that daml will not be used for doing logic with the datatypes. You can't isolate DAML from the rest of the world. What about the next expansion? Will DAML subclass more RDFS classes and properties, just to make certain that it can not be used with anything except itself? Why should we not be able to use DAML for adding cardinality information to a class defined in a non-DAML schema? We must be able to represent the datatypes in the RDF graph. That doesn't mean that all the datatypes should be included in the DAML schema. There is probably a difference between daml:unionOf and xsd:union. But that is not a problem. Let XSD define it's xsd:union. RDFS should probably not be used for the RDF representation of XSD, since xsd isn't talking about resources. The actual mapping to RDF is trivial. It will almost suffice to enclose the schema with a RDF tag. The important thing here is to make { xsd:element rdfs:subClassOf rdfs:Literal }. That's the way to integrate XML schema into RDF. No need for alienating DAML or use those extra property types. > The disjointness of object and datatype domains is motivated by both > philosophical and pragmatic considerations: > > 1. Datatypes are considered to be already sufficiently structured > by the built-in predicates; therefore, it is not appropriate to > form new classes of datatype values using the ontology language. What built-in predicates? > 2. The simplicity and compactness of the ontology language are not > compromised; even enumerating all the XML Schema datatypes would > add greatly to its complexity, while adding a theory for each > datatype, even if it were possible, would lead to a language of > monumental proportions. Why the need to encapsulate DAML? This is the same thing as with all those imported terms from RDF/RDFS. Thats not the way to do it. Were you planning to introduce XML schema datatypes to RDF, but *only* for those using DAML? The datatypes should be in a separate schema. It should be a simple mapping to the xmlschema typesystem. The logic lies in the xmlschema spec. > 3. The semantic integrity of the language is not compromised; > defining theories for all the XML Schema datatypes would be > difficult or impossible without extending the language in > directions whose semantics may be difficult to capture in the > existing framework. What existing framework? Treat DAML as a confined language if you must. But DAML and xmlschema should both be part of the bigger RDF network. > 4.The "implementatibility" of the language is not compromised; > applications (including reasoners) can simply exploit the services > of XML Schema type checker/validater (assuming that such a > component exists, or soon will exist). The soon to exist xmlschema validators can still be used. We are just talking about a RDF representation of the datatypes and it's relationship to the Literal class. The committee lists both Ora Lassila and Tim Berners-Lee. How can it be that they haven't objected to this new version? We have discussed this thing many times on the list in the past. It seems like the authors hasn't got the big picture here. >From "Issues Raised in the RDF Interest Group": http://www-uk.hpl.hp.com/people/bwm/rdf/issues.htm * Unifying Literals and Resources * Typing Literals * URI References/Mime-Types and Resources Some of my previous thoughts: http://jonas.liljegren.org/perl/proj/rdf/schema_editor/letters/literals_2.txt http://jonas.liljegren.org/perl/proj/rdf/schema_editor/letters/literals_3.txt -- / Jonas Liljegren The Wraf project http://www.uxn.nu/wraf/ Sponsored by http://www.rit.se/ From connolly@w3.org Thu Mar 29 15:32:29 2001 From: connolly@w3.org (Dan Connolly) Date: Thu, 29 Mar 2001 08:32:29 -0600 Subject: [RDF] Re: DAML+OIL (March 2001) released References: <200103280648.BAA24464@cam-mbx1.bbn.com> <87r8zixmht.fsf@jonas.rit.se> <3AC1E8C3.DE97603A@w3.org> <87g0fwx5dz.fsf@jonas.rit.se> Message-ID: <3AC3477D.CC07A161@w3.org> Jonas Liljegren wrote: > > Reply to http://lists.w3.org/Archives/Public/www-rdf-logic/2001Mar/0105.html > > And now some comments on this text about the datatype extension: > http://www.daml.org/2001/03/differences-daml+oil.html [...] > > This is achieved by maintaining a clear separation between instances > > of "object" classes (those defined using our ontology language) and > > instances of datatypes (defined using the XML Schema type > > system). [...] > > This solution is not in the spirit of RDF. Yes, it's far from ideal. [...] > The committee lists both Ora Lassila and Tim Berners-Lee. How can it > be that they haven't objected to this new version? I argued (with Tim) against splitting the domains; but tools like OILed require the split in order to do efficient reasoning, and while I eventually want to get beyond that requirement, the group agreed it's worth keeping for at least a little while longer; but we agreed to note that it's a stop-gap solution: [[[ RESOLVED: We will release an updated language release incorporating the current proposal, acknowledge the outstanding issues and concerns, and solicit feedback from the larger community. ]]] -- Joint Committee Minutes 20 February 2001 http://www.daml.org/committee/minutes/2001-02-20.html Ian, Frank, Peter, where is the acknowledgement that some folks in the group don't like the split? -- Dan Connolly, W3C http://www.w3.org/People/Connolly/ From jonas@rit.se Thu Mar 29 18:00:49 2001 From: jonas@rit.se (Jonas Liljegren) Date: 29 Mar 2001 19:00:49 +0200 Subject: [RDF] Re: Comments on N3 and its use for writing rules References: <87lmqp90yj.fsf@jonas.rit.se> <3A9FA337.BF7EC8FD@hplb.hpl.hp.com> <87ae74avgb.fsf@jonas.rit.se> <01f401c0a6bc$e314d670$c1defea9@CREST> <87wv9tn44e.fsf_-_@jonas.rit.se> <043201c0ae69$ac7ce800$84001d12@w3.org> Message-ID: <87puf0tsqm.fsf@jonas.rit.se> This is a reply to http://lists.w3.org/Archives/Public/www-rdf-logic/2001Mar/0080.html Ouch. I was trying to suggest an alternative to the log:forAll, log:forSome properties. But I may have ended up making things more complicated. > > BOTH UNIVERSAL AND EXISTENTIAL > > > > Notation3 page section #quantification gives this example: > > > > {{:g :loves :h} log:forSome :g} log:forAll :h. My objection against this is that the resources :g and :h can be used in many contexts, each giving it diffrent propertis. I look at :g and :h as a special type of resources, namely variables. Variables is resources that can be aliases to other resources. That is done by using an alias property, stated in a specific context. That's why I was trying to find another way to express the same thing, without binding variables to contexts, making the variables global. :g a log:ForSome. :h a log:forAll. {:h a rdfs:Resource} log:implies { :g :loves :h }. This is written for how I could imagine the inference engine work. :h is an alias for all known resources. :g is an alias for one unspecified resource. The inference enginge works by stating those aliases in the specific context. ... But I think I will give up on this. At least for now. > > THE MODEL FOR INFERED STATINGS > > > > The Notation3 page introduces the log:parsesTo predicate. I don't > > like that name. > > > > The thing here is that we in some way declare our trust[5] in a) source > > data and b) a inference service[6]. When we ask the service to find some > > infered data for us, we tell it what sources we trust. We resulting > > statings is placed in a separate model. > > > > This resulting model should have metadata saying that it is infered > > data, and the inference service and source data used. The same source > > model can be used in many inference models and the same inference > > model can use many sources. > > > > Let the model with the infered statings declare its sources. If we > > wan't we can state the trust in the resulting data. > > > > > > [5] http://uxn.nu/wraf/RDF-Service/doc/html/trust.html > > [6] http://uxn.nu/wraf/RDF-Service/doc/html/service.html -- / Jonas Liljegren The Wraf project http://www.uxn.nu/wraf/ Sponsored by http://www.rit.se/ From jonas@rit.se Fri Mar 30 13:32:12 2001 From: jonas@rit.se (Jonas Liljegren) Date: 30 Mar 2001 14:32:12 +0200 Subject: [RDF] Re: Aside - Re: Question: DAML cardinality restrictions In-Reply-To: References: Message-ID: <87k857v3n7.fsf@jonas.rit.se> Peter Crowther writes: > > From: Jan Grant [mailto:Jan.Grant@bristol.ac.uk] > > > > I can't help feeling a little worried by these examples. Yes, I know > > they're "only" examples. But the model of the world they present is > > broken - will DAML be good for describing the real world or just > > mathematical arenas and EDI? Is it even wise to try the former - or > > should the examples be rewritten to be less contentious? I look at the schema as a view on what is normal. The real world is modeld as nodes and arcs and must not follow any specific schema. For me (in Wraf [1]), the schema will serve as a template for requesting information. The schema forms the expectation of what to find. A larger service (in the semantic web) will probably have numerous conflicting schemas. That is a reflection of our own conflicting views on the reality. A service could maby jump from schema to schema, using the one that best fit the current needs. RDF was built to accept exceptions. If some data goes beyond a specific schema, a service could perform an analysis and maby request help (from agents or users) to resolv the situation. That could result in additional statings saying that this is a known contradiction, or maby by adding another rule explaining the situation. > A second problem, especially for concrete datatypes, is the unit problem. > What do you measure shoe size in? Inches? Abstract units (see below)? Is > that speed in miles per hour, kilometres per hour, metres per second, or > furlongs per fortnight? So a second source of contention is from > underspecified examples; this can be reduced by being more explicit about > your units, but I don't see anything in XML Schema that aids this [a pet > peeve of mine]. Yes. Units should be part of the RDF handling of datatypes. The RDF spec gives an suggestion on how to do that. That unit could also be infered by various rules. [1] http://www.uxn.nu/wraf/ -- / Jonas Liljegren The Wraf project http://www.uxn.nu/wraf/ Sponsored by http://www.rit.se/ From jonas@rit.se Fri Apr 6 13:12:25 2001 From: jonas@rit.se (Jonas Liljegren) Date: 06 Apr 2001 14:12:25 +0200 Subject: [RDF] Domains Message-ID: <87snjmfcra.fsf@jonas.rit.se> rdf.nu and wraf.org now points at http://uxn.nu/wraf/ No meaning in having rdf.nu as a separate domain unitl there is anything useful on it. wraf.org was tegistred because some name snatching corps registred wraf.net and wraf.com... -- / Jonas Liljegren The Wraf project http://www.uxn.nu/wraf/ Sponsored by http://www.rit.se/ From jonas@rit.se Mon Apr 9 09:56:35 2001 From: jonas@rit.se (Jonas Liljegren) Date: 09 Apr 2001 10:56:35 +0200 Subject: [RDF] Views Message-ID: <87zodqmoxo.fsf@jonas.rit.se> I find that I shouldn't go futher without resolving the issue of getting views to work: http://uxn.nu/wraf/RDF-Service/doc/html/views.html Ok. I will go futher. But the solving of this will require some rewriting of the code. My current solution is to have statings i two levels. In the primary layer (primary cache) all statements are stored pointing at their model. The secondary cahce will be selection containers of the resources meeting the context criterions. The default criterion will be to retrieve true statings. I now came to think about the dynamic properties. The dynamic statings will differ depending on which other properties are considered true. That means that I can't just initialize all dynamic properties into the primary cache. I have previously decided on how to relate the information used for a infereced (dynamic) property to that property. The created statings will be marked with the information needed to decide if it should be included in a view. Every initialization of a dynamic property will have to be done within a context. The context key (used for reusing previous selections) will be stored along with the properties for remember for which contexts the dynamic property has been initialized. The problem I seen now is that dynamic properties are used for dynamic types, deciding which interface functions are availible. The current jumptables will have to be replaced by ones that incorporate the context keys. The plan is to find a direct way to find context keys based on the current context. A selections context key will consist of the criterions actually used, not all criterions. But how do we match the current context with the keys? Can we compile the conditions in order to speed up future matches? It may involve iterating through the key parts looking for corresponding values in the context. -- / Jonas Liljegren The Wraf project http://www.uxn.nu/wraf/ Sponsored by http://www.rit.se/ From jonas@rit.se Wed Apr 11 10:22:59 2001 From: jonas@rit.se (Jonas Liljegren) Date: 11 Apr 2001 11:22:59 +0200 Subject: [RDF] Views In-Reply-To: <87zodqmoxo.fsf@jonas.rit.se> References: <87zodqmoxo.fsf@jonas.rit.se> Message-ID: <87g0fflrik.fsf@jonas.rit.se> I found it! Jonas Liljegren writes: > The plan is to find a direct way to find context keys based on the > current context. A selections context key will consist of the > criterions actually used, not all criterions. > > But how do we match the current context with the keys? Ok. This is the main idea: The agent retrieves a specific resource. This resouce comes in many diffrent views. The resource knows what properties is used for decide the view. Create a key from the combination of those criterions. Match those against a table in the context from the criterion key to the context key. If none exist, create it (with dependencies). The value is the view key and can be used to find the right view in a lookup table in the resource. (I hade to write this down just to remember it.) I previously saw each view as a separate resource. They are separate, but they have to be grouped in a way that separates the context criterions from primary criterions. The primary criterion are the inclusive part of the search. The other part, that gives the view, is the filtering part. Ok. This i vague. But i believe that I have find the right path. The details will have to waite. Now it's time to continue experimenting with dependency registration. -- / Jonas Liljegren The Wraf project http://www.uxn.nu/wraf/ Sponsored by http://www.rit.se/ From hahaha@sexyfun.net Fri Apr 13 17:31:19 2001 From: hahaha@sexyfun.net (Hahaha) Date: Fri, 13 Apr 2001 18:31:19 +0200 Subject: [RDF] Snowhite and the Seven Dwarfs - The REAL story! Message-ID: ----VEXQRCL6FC1U3856VGDI7W5 Content-Type: text/plain; charset="us-ascii" Today, Snowhite was turning 18. The 7 Dwarfs always where very educated and polite with Snowhite. When they go out work at mornign, they promissed a *huge* surprise. Snowhite was anxious. Suddlently, the door open, and the Seven Dwarfs enter... ----VEXQRCL6FC1U3856VGDI7W5 Content-Type: application/octet-stream; name="dwarf4you.exe" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="dwarf4you.exe" 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 EHMIi1UQ6BkAAACNlfj+///oDgAAAP9F+P9N/HnaYcnCEACQjb14////M8CJB4lHBIlHCIlHDIlH EIlHFIlHGIlHHIlHIIlHJIlHKIlHLIlHMIlHNIlHOIlHPIlHQIlHRIlHSIlHTIlHUIlHVIlHWIlH XIlHYIlHZIlHaIlHbIlHcIlHdIlHeIlHfI2F+P7//+gCAgAAh9vRJ9FXBNFXCNFXDNFXENFXFNFX GNFXHNFXINFXJNFXKNFXLNFXMNFXNNFXONFXPNFXQNFXRNFXSNFXTNFXUNFXVNFXWNFXXNFXYNFX ZNFXaNFXbNFXcNFXdNFXeNFXfOisAQAAjYX4/v//D6MYD4PFAAAAiwKLSgQBBxFPBItCCItKDBFH CBFPDItCEItKFBFHEBFPFItCGItKHBFHGBFPHItCIItKJBFHIBFPJItCKItKLBFHKBFPLItCMItK NBFHMBFPNItCOItKPBFHOBFPPItCQItKRBFHQBFPRItCSItKTBFHSBFPTItCUItKVBFHUBFPVItC WItKXBFHWBFPXItCYItKZBFHYBFPZItCaItKbBFHaBFPbItCcItKdBFHcBFPdItCeItKfBFHeBFP fOjaAAAAh9tLD4nB/v//iweLXwSLTwiLdwyJAolaBIlKCIlyDItHEItfFItPGIt3HIlCEIlaFIlK GIlyHItHIItfJItPKIt3LIlCIIlaJIlKKIlyLItHMItfNItPOIt3PIlCMIlaNIlKOIlyPItHQItf RItPSIt3TIlCQIlaRIlKSIlyTItHUItfVItPWIt3XIlCUIlaVIlKWIlyXItHYItfZItPaIt3bIlC YIlaZIlKaIlybItHcItfdItPeIt3fIlCcIladIlKeIlyfMOH27v/AwAAD6MYcgNLdfjDh9uLdQiL R3yLTnw7wXLwD4c1AgAAi0d4i054O8Fy4A+HJQIAAItHdItOdDvBctAPhxUCAACLR3CLTnA7wXLA D4cFAgAAi0dsi05sO8FysA+H9QEAAItHaItOaDvBcqAPh+UBAACLR2SLTmQ7wXKQD4fVAQAAi0dg i05gO8EPgnz///8Ph8EBAACLR1yLTlw7wQ+CaP///w+HrQEAAItHWItOWDvBD4JU////D4eZAQAA i0dUi05UO8EPgkD///8Ph4UBAACLR1CLTlA7wQ+CLP///w+HcQEAAItHTItOTDvBD4IY////D4dd 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 mE8d6qLASaSQTfZFidn/a25uKtalUsGLmIz0pkV68Hlasw2yeZ88dsFXFlBjo12Hr6sXphJFUduo FlMrUcZIGVgln+Au6nIwrLEclBQvXyx2EVeUr3jH3xpQrUihEObcsT2CP/i7CzPz9q4XH64YUlms NasRKcYMOm0tWn4o4PJ+01XroNuU35jZfG2Q+nwnznOoTcsbC2C5TdKVfqSEspnCKi7qOUNmdoY3 YAihm32TRu4290bK/vcf4yo1XnQLfkHBEZhgjyX8fY+YCbuRdflvsJZql5cjW/coBQC9AZlRUPxc /DSXvJhpe6lNcjnKKlT7wqxINfehnYqDvbJ5O29T0mxyXF6H1gmbs1LmrTLZmLcF96nMDf47NUZz ZXJ2AgAAADADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAADhwAAAAAAAAMHAAAAAAAAAAAAAATHAAAABwAAAAAAAAAAAAAAAAAAAAAAAA AAAAADhwAAAAAAAAEQFHZXRNb2R1bGVIYW5kbGVBAABLRVJORUwzMi5kbGwAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA ----VEXQRCL6FC1U3856VGDI7W5-- From danny@panlanka.net Wed Apr 18 19:37:42 2001 From: danny@panlanka.net (Danny Ayers) Date: Thu, 19 Apr 2001 00:37:42 +0600 Subject: [RDF] WRAFish Message-ID: you may be interested in http://www.isacat.net/citnames/2001/04/rpp.htm --- Danny Ayers http://www.isacat.net From jonas@rit.se Fri Apr 20 16:40:09 2001 From: jonas@rit.se (Jonas Liljegren) Date: 20 Apr 2001 17:40:09 +0200 Subject: [RDF] Re: Perl RDF parser In-Reply-To: <311.987775940@tatooine.ilrt.bris.ac.uk> References: <311.987775940@tatooine.ilrt.bris.ac.uk> Message-ID: <87lmov4m1y.fsf@jonas.rit.se> I am searching for a RDF parser to use with Wraf. http://uxn.nu/wraf/ Dave Beckett writes: > Redland (C) reading from a Perl file handle. Cross-language stuff > like that is *hard* to do portably. I'm presently working out how to > do perl calling C calling perl in order to do callbacks. And change > perl to python, tcl, java ... Ok. I guess that I will just have to wait for a pure Perl RDF parser wrapper module. It should be able to parse diffrent syntaxes or source types. > I'm considering making Redland run on CPAN but won't grab any top > level RDF:: modules since there is no agreement on their interface. For just a parser wrapper, it would be enough to just have a good interface. It could be extended to work with several types of interfaces. We will never reach agreement on their interface. The only way this will be done is by someone going ahead and doing it. > If you just want the parser interface, tough, Redland is more than > just a parser. I could write a perl wrapper for Rapier, maybe I'll > look at. I would like Rapier to be a plugin for the general RDF parser wrapper module. The Redland perl parser wrapper works ok. But it's not just a parser. It's not fully integrated with other CPAN modules. And it comes bundled with the rest of Redland. My test program looks like this: #!/usr/bin/perl -w use strict; use lib ( "redland-0.9.9/perl/blib/lib", "redland-0.9.9/perl/blib/arch" ); use RDF; my $source_uri = new RDF::URI("file:test.rdf"); my $base_uri = $source_uri; my $parser= new RDF::Parser("repat"); # One of several parsers my $stream = $parser->parse_as_stream($source_uri, $base_uri) while( not $stream->end ) { my $statement = $stream->next; my $pred = $statement->predicate; print "Pred : ", $pred->uri->as_string, "\n"; my $subj = $statement->subject; print "Subj : ", $subj->uri->as_string, "\n"; my $obj = $statement->object; if( $obj->type eq $RDF::Node::Type_Literal ) { print "Literal: ", $obj->literal_value_as_latin1, "\n"; } else { print "Obj : ", $obj->uri->as_string, "\n"; } print "\n"; } __END__ Would anybody like to do a pure Perl RDF parser wrapper module, in the style of DBI? -- / Jonas Liljegren The Wraf project http://www.uxn.nu/wraf/ Sponsored by http://www.rit.se/ From jonas@paranormal.se Tue May 29 08:42:33 2001 From: jonas@paranormal.se (Jonas Liljegren) Date: 29 May 2001 09:42:33 +0200 Subject: [RDF] keywords idea Message-ID: <8766ekob2u.fsf@jonas.rit.se> --=-=-= Something to comment on... --=-=-= Content-Type: message/rfc822 Content-Disposition: inline Path: tobix.suptra.org!not-for-mail From: Tobias Brox Newsgroups: comp.infosystems.search,comp.databases,comp.programming Subject: Searching, indexing and scoring; call for comments Followup-To: comp.databases,comp.infosystems.search Date: 3 May 2001 11:04:22 +0200 Organization: Bestumvn 35, annen etage Lines: 139 Message-ID: NNTP-Posting-Host: tobiasb.tobix.suptra.org.invalid X-Trace: tobiasb.invalid 988880662 2381 127.0.0.1 (3 May 2001 09:04:22 GMT) X-Complaints-To: newsmaster@suptra.org NNTP-Posting-Date: 3 May 2001 09:04:22 GMT Summary: Some thoughts about how a general purpose system for searching, indexing and scoring should look Keywords: score,scoring,scoring system,fuzzy,fuzzy logic,fuzzy ai,indexing,search engine,data mining,jukebox,mail sorting,file organizer User-Agent: tin/1.5.8-20010221 ("Blue Water") (UNIX) (Linux/2.2.16-22 (i586)) Xref: tobix.suptra.org comp.infosystems.search:17 comp.databases:116 comp.programming:296 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Follow-ups goes to comp.databases ... unless somebody have better suggestions? I'd like to discuss some design on a indexing/scoring software module I eventually want to write (see also news:kbswmodule1@tobiasb.suptra.org). The system should be able to run stand-alone, i.e. like an internet search engine, but it should also be possible to incorporate it into applications, like mail readers, jukebox systems, etc. The main idea is that it some human beeing that wants to find one or more objects - it might be music, images, software documentation ... just anything. The person might search for something specific, i.e. a mail he got in the mailbox some weeks ago - or it might be something unspecific, i.e. an interessting film or some good music to listen to. First I want to discuss how this system should ideally should be designed to make it possible to find just excactly what somebody might be searching for. I've been thinking a bit about how to make a solution that actually can work and scale, and also about how to present it to the user - but let's postpone discussing details. I've been thinking very hard - so I really want some feedback. Am I a genious, or should I rather report to the nearest hospital for mentally ill people? Does anybody understand my thoughts at all? Or is this article just too long and boring to read? - Simple system with hierarchical keywords The system should contain a lot of fixed keywords in the database. Those keywords are administrated by some intelligent person/group. Keywords are assigned to relevant articles/URLs/whatever either automaticly, semiautomaticly or manually. The keywords are hierachically sorted, making it easy for a user to navigate through them, select the apropriate, and find what he is looking for. The keywords might tell not only about content, but about anything else as well - language, content type, etc. Some administration is needed to keep a bit of quality and consistancy at the keywords, and to keep the hierarchy in order. A person that wants to do a search, can select some keywords and get up some results. If there are too many results, he can constrain the search by adding more keywords, or he can loosen up by deleting some keywords from the search. - Networked keywords Often it will be uncertain where in the hierarchy to put keywords - and where to search for them. One keyword might often fall into more than two categories, so every keyword can have more parents. - Scoring/voting Sometimes it's a bit fuzzy if a keyword fits or not. I.e., some music are beeing played in a pub, and one person says: "This sounds like blues to me". The second person says "Blues? Not at all!". The third has never considered it to be blues, but he might agree a bit. This can be solved through scoring. I think we should have a voting system where the users can give an integer vote (i.e. between -16 to 16) where a negative value means "I disagree" and a positive value means "I agree". Then either the sum of the votes or the average vote can be used to determinate whether it's blues or not. - Integer keyword assignment Sometimes it makes sense searching for the right number rather than just the right keywords. I.e., some radio host might want to search for a piece of music that is exactly 4'15" long to fill up the last gap in his program before the news. Or somebody might want to filter out all emails that are bigger than 30k. Or they might want to buy some car that costs less than 5k$. I guess we can keep one integer to all keyword assignments, where the number either can be a score or a vote. - Votings on the keywords and keyword links themselves Instead of having some administration that looks through that the system only contains sane keywords, and that the links between the keywords are sane, we can just as well let the users themselves handle it. Let people vote on new keywords and new keyword links. The links and keywords that gets a negative score, might be wiped away from the system after a while - the same with keywords and links that nobody uses. - Combination of keywords Let's say that "Persons/By Name/Tobias Brox" is one keyword in the system, while "Metainformation/Author" is another keyword. How to find all articles where Tobias Brox is the author through this system? I can see two alternatives, either having a keyword "Tobias Brox as Author" that can have both "Metainformation/Author" and "Persons/By Name/Tobias Brox" as the parents, or we can put a reference to "Tobias Brox" when assigning the "Metainformation/Author" keyword to the article. - Rules Sometimes it might be needed to do complex searches, like "those keywords, but not this one or this other one". One alternative might be to let the user create new keywords defined by a rule. I once made a weird system for sorting my mail, where all keywords (they were flat; a list of ~100 keywords) were automaticly assigned and scored through rules; most of it was rules about headers, regexps from the message body, etc, but at last I wanted to select mail by applying only one keyword. I made a system where it was possible to apply some few rules based on two keywords A and B; "If A then B" "If not A, then B" "If A, then not B" "If not A, then not B" "B = A xor B" By specifying the order of those rules, it was actually possible to specify any kind of logic, and - as a result - fetch out any collection of mail I wanted by choosing only one keyword. - Distribution It would be nice to have some standard way of exchanging and sharing smart keywords between different systems, and at the same time enforce that the truely local keywords stay local. -- Tobias Brox - freelancer for hire! Programming, system administration, etc +47 98660706 / tobiasb@suptra.org --=-=-= -- / Jonas - http://jonas.liljegren.org/myself/en/index.html --=-=-=-- From jonas@paranormal.se Tue May 29 09:24:58 2001 From: jonas@paranormal.se (Jonas Liljegren) Date: 29 May 2001 10:24:58 +0200 Subject: [RDF] Project In-Reply-To: References: Message-ID: <87wv70mujp.fsf@jonas.rit.se> Tobias Brox writes: > > I will try to remember that during the next rewrite of it. It's much > > more important to just work on it. > > True! > > It can be possible to employ skilled people here in St.Petersburg > for as little as $100 for each month (!), so I'm seriously > considering to find one good idea, stick to it, and pay some > assistants even from my own pocket. I guess it's an open source > project, it should be possible to find really a lot of commercial > spin-offs. Same here. :-) I'm totaly dedicated to Wraf. I don't have money to hire someone. But I will do what I have to just to keep working on it. And my current work on a small ISP is a good place to be. :) > In almost all aspects of projects - web sites, programming projects, > etc, I see the need of "something better" than the current > technology, and I've started realizing that there must be something > common between all those projects. Exactly my thoghts! In many, many years, I have felt that all the technology is incredably primitive. I would love to live in a world with a real hypertext system. I read about Artificial Intelligence then I was young. I learned to program Prolog (describing the world i rules). I started using BBS'es and FidonNet and had many ideas about how to collect all the inspiration from the discussions. What if we could store each written thought with the right keywords, we would have a knowledge system that would be incredibly useful! [1] I was intrested in role playing games and computer text adventures. It was a way to thought about ways to modelling the world. I now see the computers of StarTrek (TNG) as an inspiering illustration of how it should work. Ted Nelson is my hero! [2] And I love the vision of Tim Berners-Lee. [3] Still, in 1993, I haden't start using the internet. But I knew what I wanted to do. [4] And now I'm determined to to finaly do this thing so that I can start living in it! [5] [1] http://jonas.liljegren.org/future/en/my_project.html [2] http://www.wired.com/wired/archive/3.06/xanadu.html [3] http://www.w3.org/DesignIssues/Semantic.html [4] (swedish) http://jonas.liljegren.org/future/vision.html [5] http://uxn.nu/wraf/ > > HDC - Hypertext Documentation > > Community > > > > This will be a virtual community aimed at gathering, structuring > > and refining knowledge in a web of related topics. > > *nod*. This makes sense to me, at least. > > > We have to mix automatic classifications > > systems with collaborative filtering and normal classification > > systems. > > Exactly my thought, too. > > -- > Tobias Brox - freelancer for hire! > Programming, system administration, etc > +7 812 4827090 / tobiasb@suptra.org -- / Jonas - http://jonas.liljegren.org/myself/en/index.html From alberto.reggiori@jrc.it Fri Jun 1 09:34:20 2001 From: alberto.reggiori@jrc.it (Alberto Reggiori) Date: Fri, 01 Jun 2001 10:34:20 +0200 Subject: [RDF] Re: model vs. triple References: <20010529090505.B21521@taller.pscl.cwru.edu> <3B13A48B.98E9F65A@jrc.it> <20010529100128.B21838@taller.pscl.cwru.edu> <3B13CC4D.E423E3ED@jrc.it> <3B15FC24.BD689331@jrc.it> <20010531174046.A23741@taller.pscl.cwru.edu> Message-ID: <3B17538C.FD46830A@jrc.it> Devon Smith wrote: > > I agree that writing my own API is a bad idea. > but i do think that the existing API's are a little too limiting. > i also don't have time right now to wait for an API convergence. Hello Devon (I hope you do not mind if I cc this message to redland, wraf and eric) I think writing your API is not too bad but it worries me because there is a big risk to duplicate work and make people confusing. > to further the cause of convergence, i will make my API available > for you, and anyone else, to look at and comment on. > http://socwww.cwru.edu/~devon/rdf > this is just the start, so don't hesitate to be critical. > let me know what you think is missing and what you think needs > to be added. i can't promise that i'll make all the changes requested > or that i'll make changes in a timely manner, but i'll definitely > keep track of them. I quickly looked through it and looks interesting. But without any method name/signature on the classes I can not see very much difference from the Stanford/RDFStore API. The only bit added to it seems the Property class to make the api "resource centric" (ala Jena) I would be interested instead to start a kind of collaborate effort (at least on the perl side) to implement something together and possibly using a more general and flexible model. I am definitively open to suggestions and concrete proposals like your :-) A suggestion: do not "pollute" the perl RDF:: package namespace I will send you more later Yours Alberto From danbri@w3.org Fri Jun 1 09:53:30 2001 From: danbri@w3.org (Dan Brickley) Date: Fri, 1 Jun 2001 04:53:30 -0400 (EDT) Subject: [RDF] Re: [redland] Re: model vs. triple In-Reply-To: <3B17538C.FD46830A@jrc.it> Message-ID: Hi all On Fri, 1 Jun 2001, Alberto Reggiori wrote: > Devon Smith wrote: > > > > I agree that writing my own API is a bad idea. > > but i do think that the existing API's are a little too limiting. > > i also don't have time right now to wait for an API convergence. > > Hello Devon > > (I hope you do not mind if I cc this message to redland, wraf and eric) > > I think writing your API is not too bad but it worries me because there > is a > big risk to duplicate work and make people confusing. > > > to further the cause of convergence, i will make my API available > > for you, and anyone else, to look at and comment on. > > http://socwww.cwru.edu/~devon/rdf > > this is just the start, so don't hesitate to be critical. > > let me know what you think is missing and what you think needs > > to be added. i can't promise that i'll make all the changes requested > > or that i'll make changes in a timely manner, but i'll definitely > > keep track of them. > > I quickly looked through it and looks interesting. But without any > method name/signature > on the classes I can not see very much difference from the > Stanford/RDFStore API. The > only bit added to it seems the Property class to make the api "resource > centric" (ala Jena) Having a "resource centric" view of one's RDF data turns out to be really nice, particularly in more dynamic languages like Perl where there's the potential to rid application code of all the RDF-specific words. I have an implementation in Perl that tries to push the node-centric idea as far as it can go; this API is complementary to (and sits on top of) Mozilla-like graph/datasource APIs (Redland etc). > I would be interested instead to start a kind of collaborate effort (at > least on the perl side) to implement something together and possibly > using a more general and flexible model. I am definitively open to > suggestions and concrete proposals like your :-) Cool! I intend to make a concrete proposal (with running code) to the RDF lists. I've no interest in building the One True Implementation of it, but having played around a bit I'm happy its a useful technique that copmlements existing APIs. A quick preview: # (skipping a bunch of use statements) my $mem = new RDF::RDFWeb::MemDB; # register some useful namespaces with $mem my $RSS = ns $mem 'RSS', 'http://purl.org/rss/1.0/'; my $DC = ns $mem 'DC', 'http://purl.org/dc/elements/1.1/'; my $RDF = ns $mem 'RDF', 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'; # ...fill mem with some triples. and then query the data. # skipping the parser stuff...: foreach my $c ( $mem->GetSources($RSS.'channel', $RDF.'type')) { # (aside: these args are in the wrong order) my $channel = new RDF::API::Node ( $c, $mem ); # need to rename module. # a node has a context db. # note lack of "RDF" buzzwords in code from here on... print "\n[ An rss channel, $channel ] \nTitle: ", rss_title $channel, "\nDescription: ", rss_description $channel, "\n"; print sprintf ("publisher: %s \nrights: %s ", dc_publisher $channel, dc_rights $channel); } IMHO things can't get much simpler than this. There are some issues to work out: currently I return strings instead of further Node objects, for eg., and I suspect that's wrong. But the general approach I like. > A suggestion: do not "pollute" the perl RDF:: package namespace Good plan. I'm using RDF::RDFWeb for new stuff now; if I can have that corner to "pollute" I'll be happy! Dan > > I will send you more later > > Yours > > Alberto > > To unsubscribe from this group, send an email to: > redland-unsubscribe@egroups.com > > > > Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/ > > From skokkeli@mathematik.uni-osnabrueck.de Fri Jun 1 10:39:51 2001 From: skokkeli@mathematik.uni-osnabrueck.de (Stefan Kokkelink) Date: Fri, 01 Jun 2001 11:39:51 +0200 Subject: [RDF] Re: [redland] Re: model vs. triple References: <20010529090505.B21521@taller.pscl.cwru.edu> <3B13A48B.98E9F65A@jrc.it> <20010529100128.B21838@taller.pscl.cwru.edu> <3B13CC4D.E423E3ED@jrc.it> <3B15FC24.BD689331@jrc.it> <20010531174046.A23741@taller.pscl.cwru.edu> <3B17538C.FD46830A@jrc.it> Message-ID: <3B1762E6.B4E5A1AB@mathematik.uni-osnabrueck.de> Alberto Reggiori wrote: > > I would be interested instead to start a kind of collaborate effort (at > least on the perl side) to implement something together and possibly > using a more general and flexible model. What about starting an egroup discussion about the design of an RDF API? Someone interested in setting this up? > I am definitively open to > suggestions and concrete proposals like your :-) My first suggestion: a statement(triple) is no resource! (A reified statement or a reification is a resource.) This causes problems with a resource-centric API! The RDF spec: There are sets called Resources, Properties,Literals and Statements. It isn't said that Statements is a subset of Resources. Second suggestion: It should be a requirement for an RDF API to support statement-centric *and* node-centric methods. Regards, Stefan From alberto.reggiori@jrc.it Fri Jun 1 11:45:56 2001 From: alberto.reggiori@jrc.it (Alberto Reggiori) Date: Fri, 01 Jun 2001 12:45:56 +0200 Subject: [RDF] Re: model vs. triple Message-ID: <3B177264.10CD94EA@jrc.it> Dan Brickley wrote: > > > Hi all Hello Dan > Having a "resource centric" view of one's RDF data turns out to be really > nice, particularly in more dynamic languages like Perl where there's the > potential to rid application code of all the RDF-specific words. I have an > implementation in Perl that tries to push the node-centric idea as far as > it can go; this API is complementary to (and sits on top of) Mozilla-like > graph/datasource APIs (Redland etc). As more I write code using my API as more I see its limitations; in most cases I need "atoms" and not statements/models as perl vars. I am currently on the way to implement a perl-style "node centric" api (see below) > Cool! I intend to make a concrete proposal (with running code) to the RDF > lists. I've no interest in building the One True Implementation of it, but > having played around a bit I'm happy its a useful technique that > copmlements existing APIs. +1 for the proposal (I got running code too) > IMHO things can't get much simpler than this. There are some issues to > work out: currently I return strings instead of further Node objects, for > eg., and I suspect that's wrong. But the general approach I like. As a perl mother tongue I sketched a perl tie interface over properties, resources, literals and statements. I.e. tie $a, "RDFStore::Literal"; $a = 'A nice literal'; #utf8 string tie $b, "RDFStore::Litaral"; $b={ a => 'a nicer literal' }; # a blob #create an anonymous resource tie %resource,"RDFStore::Resource"; # add property 'email' with object literal 'foo@bar.com' $resource{email} = "foo@bar.com"; #no default namespace. delete $resource{email}; use DC; $resource{$DC::title} = "The Semantic Web?"; #create an anonymous resource in a model tie %resource,"RDFStore::Resource",new RDFStore::Model( Style => DBMS, Host => foo.com ); my $classification = tie %classification,"RDFStore::Resource", "http://etbdemo.jrc.it/thesaurus/eurydice/da/Baskien"; $resource{'http://dublincore.org/2000/03/13-dces#subject'} = $classification; print $resource->toStrawmanRDF; use RDF; tie @bag, "RDFStore::Resource",$RDF::Bag; push @bag, new RDFStore::Resource($DC::title); #'sort @bag' would croak tie @seq, "RDFStore::Resource",$RDF::Seq; push @seq,@bag; tie %statement, RDFStore::Statement; $statement{subject}=$bag[0]; $statement{predicate}=$seq[3]; $statement{object}=$a; #...and so on :) > > A suggestion: do not "pollute" the perl RDF:: package namespace > > Good plan. I'm using RDF::RDFWeb for new stuff now; if I can have that > corner to "pollute" I'll be happy! I have my small corner too but I would really like to see the CPAN RDF:: namespace populated at some stage. Yours Alberto From alberto.reggiori@jrc.it Fri Jun 1 16:40:46 2001 From: alberto.reggiori@jrc.it (Alberto Reggiori) Date: Fri, 01 Jun 2001 17:40:46 +0200 Subject: [RDF] Re: [redland] Re: model vs. triple References: <20010529090505.B21521@taller.pscl.cwru.edu> <3B13A48B.98E9F65A@jrc.it> <20010529100128.B21838@taller.pscl.cwru.edu> <3B13CC4D.E423E3ED@jrc.it> <3B15FC24.BD689331@jrc.it> <20010531174046.A23741@taller.pscl.cwru.edu> <3B17538C.FD46830A@jrc.it> <3B1762E6.B4E5A1AB@mathematik.uni-osnabrueck.de> Message-ID: <3B17B77E.B8E65C38@jrc.it> Stefan Kokkelink wrote: > Hi! > What about starting an egroup discussion about > the design of an RDF API? Someone interested > in setting this up? It seems we have got an rdfapi_perl egroup. Anybody working on perl RDF is invited join at http://groups.yahoo.com/group/rdfapi_perl regards Alberto From jonas@liljegren.org Fri Jun 1 18:55:22 2001 From: jonas@liljegren.org (Jonas Liljegren) Date: 01 Jun 2001 19:55:22 +0200 Subject: [RDF] Mail sent to rdfapi_perl@yahoogroups.com Message-ID: <87r8x43x11.fsf@jonas.rit.se> Hi. This is jonas, the man behind the incomperhincible project Wraf. ;) Well. It works. But it need more work until it can be viewed as useful. The demo uses Template Toolkit. (The best template system for perl! ;) http://www.tt2.org/ This is a simplified template listing a selected person. (I removed all exception handling from the template.): [% person =3D s.get(cgi.param('r_person')) %]

[% person.fn.li.value %] [% person.ln.li.value %]

[% FOREACH pred =3D person.arc_pred.list %]
[% pred.desig %]
    [% FOREACH arc =3D person.arc(pred).list %]
  1. $arc.obj.desig
    • Date: [% arc.model.updated.li.value %]
    • Agent:=20 [% agent =3D arc.model.agent.li %] [% agent.fn.li.value %] [% agent.ln.li.value %]
  2. [% END %]
[% END %]
--- And here is a link directly to the demo for this page: http://uxn.nu/wraf/RDF-Service/demo/pers1/cgi-bin/client.cgi?r_pers= on=3Dhttp%3A%2F%2Fuxn.nu%2Frdf%2F2000%2F09%2F19%2Flocal-data%2320010523T183= 615-001&handler=3Dperson_view But the entry to the demo is here: http://uxn.nu/wraf/RDF-Service/demo/pers1/cgi-bin/demo.html The subject of cachning is at the heart of Wraf. Then it's done, most things should go much faster. The 'fn' and 'ln'=A0above are abbrevations. Set up before parsing the template. NS_LD is a constant holding the URI of the local namespace. $session_res->set_abbrev( { fn =3D> NS_LD.'Person/first_name', ln =3D> NS_LD.'Person/last_name', } This is a function for giving a resource some properties. In this case, its the first and last name entered in a HTML form: sub do_person_add { my $model =3D $s; my $person =3D $model->get(); my $r_fn =3D $q->param('r_fn') or die "No first name specified"; my $r_ln =3D $q->param('r_ln') or die "No last name specified"; my $types =3D [NS_LD.'Class#Person']; my $props =3D { NS_LD.'Property#first_name' =3D> [\$r_fn], NS_LD.'Property#last_name' =3D> [\$r_ln], }; $person->set( $types, $props ); return "Person created"; } And this is from another test program. It's a page for viewing a search result. The search is specified as a DAML class. the search restrictions are class restrictions: [% query =3D s.get(cgi.param('focus')) %] [% FOREACH object =3D query.rev_type.list %] =20 [% END %]
[%- object.label.li.value %]
Wraf is something of the dream of the ultimate limitless computer system. Read more about it here: http://uxn.nu/wraf/ --=20 / Jonas - http://jonas.liljegren.org/myself/en/index.html From jonas@rit.se Thu Jun 7 17:54:20 2001 From: jonas@rit.se (Jonas Liljegren) Date: 07 Jun 2001 18:54:20 +0200 Subject: [RDF] Notes Message-ID: <87ae3kdydf.fsf@jonas.rit.se> I have spent a few days with LDAP. I want to create a person database that can be viewd as an LDAP entry, vCard entry, P3P entry and still have some extra info. I think I will create a custom LDAP schema for some basic data and creata an LDAP interface for Wraf. It should work fine to combine it with P3P with some translation rules, either in RDF or maby in the LDAP schema. As for vCard, I found an RDF version just now: http://www.w3.org/TR/vcard-rdf#5 I'm a little frustrated that there is no realy complete standard for representing persons. Most existing schemas tend to describe persons in the context of their workplace. -- / Jonas Liljegren The Wraf project http://www.uxn.nu/wraf/ Sponsored by http://www.rit.se/ From jonas@rit.se Fri Jun 8 17:05:35 2001 From: jonas@rit.se (Jonas Liljegren) Date: 08 Jun 2001 18:05:35 +0200 Subject: [RDF] Re: [rdfapi_perl] Reworked API In-Reply-To: <3B20E6A5.87F88890@jrc.it> References: <20010601165531.E1481@taller.pscl.cwru.edu> <3B1CCF7E.ECB5D65A@mathematik.uni-osnabrueck.de> <20010605132113.B22922@taller.pscl.cwru.edu> <3B1FA73A.64DB3097@jrc.it> <3B1FB574.DDE9CF34@mathematik.uni-osnabrueck.de> <3B20E6A5.87F88890@jrc.it> Message-ID: <8766e7lzxs.fsf@jonas.rit.se> Alberto Reggiori writes: > > UseCases: > > > > 1. if i want to write callbacks for a parser, i would like > > to use > > > > $bundle->add($sub,$pred,$obj) > > > > for each triple generated by the parser. > > > > 2. if I have a given RDF graph and a given > > resource $res I would like to be able > > to use something like > > > > $res->add(dc:title,"the title")->add(dc:creator,"me"); > > Yep exactly! :) > > or even something more baroque like > > $bundle->find($subject,$predicate,$value)->elements->add($dcq::created,time()); > > where find() would work on bundled models while add() on resources Or like how you currently can do it in Wraf: $bundle -> sel({ pred => $predicate, subj => $subject, obj => $object }) -> li -> declare_add_prop($dcq::created,\time()); Ok. That could be shorter. declare_add_prop() should probably have add() as an abbrevation. The reason why sel() looks like it does is that I haven't yet needed a general find() function. Everything in {} is called a criterion and can be anything. sel() adds a criterion on a container of resources. In this case a container of arcs, represented by $bundle. The {} holds a list of properties that the resources should have. In one place in Wraf (connected to the DAML search funtion) I use this code: my $arc = $focus->arc({ pred => $connection, obj => { NS_FORM.'controlled_by' => $self, } })->list->[0]; $focus is a specific resouce. arc() finds the arcs that has $focus as subject, $connection as predicate and the object should be another resource that has a 'controlled_by' property with the value $self. arc() returns a "selection" container. list() turns that container to an array. list->[0] is similar to li(), that expects the container to have only one item. Ok. I will, in Wraf, probably support the syntax: $bundle->find($predicate, $subject, $object)->li->add($dcq::created,\time()); And that would add the property to the selected arc. If I would leave out the li(), the property would be added to the new container returned by find(). -- / Jonas Liljegren The Wraf project http://www.uxn.nu/wraf/ Sponsored by http://www.rit.se/ From Peter_Snell@prenhall.com Thu Jul 26 19:31:54 2001 From: Peter_Snell@prenhall.com (Peter_Snell@prenhall.com) Date: 26 Jul 2001 14:31:54 -0400 Subject: [RDF] Wraf Message-ID: <"/GUID:QmEAYxFuB1RGUdQAQSwm4bg*/G=Peter/S=Snell/OU=exchange/O=pearsontc/PRMD=pearson/ADMD=telemail/C=us/"@MHS> Charles F. Goldfarb and Paul Prescod, authors of the forthcoming Prentice Hall book, "The XML Handbook, Fourth Edition," would like to include the documentation and code for Wraf on the CD-ROM accompanying the book. We would very much appreciate hearing from you on this matter via return e-mail prior to August 9. Please direct your response to Peter S. Snell at peter_snell@prenhall.com. If you are not the appropriate person to consider this request, I would be grateful if you would direct this message to that person and notify me so that I can update our records. Thank you in advance. ____________________________________________________________ TO: Charles F. Goldfarb and Paul Prescod c/o Peter S. Snell - Prentice Hall Publishers I(we) grant you permission to include documentation and code for Wraf in the book "The XML Handbook, Fourth Edition" to be published by Prentice Hall publishers in the Charles F. Goldfarb Series on Open Information Management, and grant you non-exclusive worldwide distribution rights. I(we) also grant you permission to include documentation and code for Wraf on any future book in the Charles F. Goldfarb Series on Open Information Management published by Prentice Hall Publishers, and grant you non-exclusive worldwide distribution rights. Peter S. Snell peter_snell@prenhall.com PTR Production Pearson Education 1 Lake Street Upper Saddle River, NJ 07458 *********************** Peter S. Snell Prentice Hall PTR One Lake Street Upper Saddle River, NJ 07458 Tel (201) 236-7860 Fax (201 236-7123 *********************** From Christine Hall"

Hello,

I visited www.uxn.nu and I noticed that you are not listed on some search engines. I am sure you can increase the number of people who visit www.uxn.nu . Do you know TrafficMagnet? TrafficMagnet is a unique technology that instantly submits your web site to over 300,000+ search engines and directories every month. This is a very low-cost and effective way of advertising your site.

To check our prices and submit www.uxn.nu to 300,000+ search engines, go to TrafficMagnet.net

I would love to hear from you.

Best Regards,
Christine Hall
Sales & Marketing
www.TrafficMagnet.net

   

From D Sat Sep 8 02:29:19 2001 From: D (D) Date: Fri, 7 Sep 2001 21:29:19 -0400 Subject: [RDF] Earn MILLIONS selling SEX..... LEGALY!! Message-ID: Earn MILLIONS selling SEX, .....LEGALY!! Unbelivable?? For free info send a BLANK e-mail: Digipimps@SexMagnet.com >>> Note: If you have ANY COMPLAINTS, please contact Digipimps@SexMagnet.com with 'Remove' or 'Complaint' in the subject heading and we will respond accordingly. IF YOU ARE NOT INTERESTED, DO NOT SEND A BLANK E-MAIL or you will receive a REQUESTED e-mail by us! NO OTHER PARTY IS RESPONSIBLE FOR THIS E-MAIL!! We apologize for any disturbances. : ) From JunkMail@itsbest.com Thu Sep 13 03:20:29 2001 From: JunkMail@itsbest.com (JunkMail@itsbest.com) Date: Wed, 12 Sep 2001 22:20:29 -0400 Subject: [RDF] Dear Friends & Future Millionaire: Message-ID: ÐÏࡱá!!! I found this posted in a newsgroup and thought I'd try it just for a laugh. Guess what? I'm laughing the whole way to the bank. I already earned $4,500 in almost 3 weeks! Following is that original post. Take a minute to read it. I'm telling you--I'm a very skeptical, but even a skeptic likes to make money. And the initial investment is insignificant....LESS THAN $30.00!!! Awhile back, I was browsing a newsgroup, and came across an article similar to this that said you could make thousands of dollars within weeks with only an initial investment of $25.00 plus stamps! So I thought, "Yeah, right, this must be a scam!" But like most of us I was curious and kept reading. It said that if you send $5.00 to each of the 5 names and addresses listed in the article, you could make thousands in a very short period of time. You then place your own name and address at the bottom of the list at #5, and post the article to at least 200 newsgroups or send at least 5.000 mails. (There are about 32,000 of them out there and that's quite a large market pool). No catch, that was it. Even though the investment was a measly $25, I had three questions that needed to be answered before I could get involved in this sort of thing. 1. IS THIS REALLY LEGAL?? I called a lawyer first. The lawyer was a little sceptical that I would actually make any money but he said it WAS LEGAL if I wanted to try it. I told him it sounded a lot like a chain letter but the details of the system (SEE BELOW) actually made it a legitimate legal business. 2. IS OK WITH THE POST OFFICE OR IS IT MAIL FRAUD?....I called them: 1-800-725-2161 and they confirmed THIS IS ABSOLUTELY LEGAL! (See Title18, h sections1302 NS 1341 of Postal Lottery Laws). This clarifies the program of collecting names and addresses for a mailing list. 3. IS IT MORAL? Well, everyone who sends me $5 has a good chance of getting A LOT of money ... a much better chance than buying a lottery ticket!!! So, having these questions answered, I invested EXACTLY $26.92 ... five $5.00 bills and five 32 cent postage stamps ... and boy am I glad I did!!! Within 7 days, I started getting money in the mail! I was shocked! I figured it would end soon and didn't give it another thought. But the money continued coming in. In my first week I made between $40 to $60. By the end of the second week I had a made a total of $1,000.00. In the third week I had over $10,000.00 and it was still growing. This is now my fourth week and I have made a total of just over $42,000 and it's still coming in ..... It's certainly worth $25.00 and 5 stamps !!! Also, make sure you print a copy of this article NOW, so you can get the information off of it as you need it. I promise you that if you follow the directions exactly, that you will start making more money than you thought possible by doing something so easy! Suggestion: Read this entire message carefully! (print it out or download it.) Follow the simple directions and watch the money come in! It's easy. It's legal. And, your investment is only $25.00 (Plus postage) IMPORTANT: This is not a rip-off; it is not indecent; it is not illegal; and it is virtually no risk - it really works!!!! If all of the following instructions are adhered to, you will receive extraordinary dividends. PLEASE NOTE: Please follow these directions EXACTLY, and $50,000 or more can be yours in 20 to 60 days. This program remains successful because of the honesty and integrity of the participants. Please continue its success by carefully adhering to the instructions. You will now become part of the Mail Order business. In this business your product is not solid and tangible, it's a service. You are in the business of developing Mailing Lists. Many large corporations are happy to pay big bucks for quality lists. However, the money made from the mailing lists is secondary to the income which is made from people like you and me asking to be included in that list. HERE ARE 4 EASY STEPS TO SUCCESS: --------------------------------- STEP 1: Get 5 separate pieces of paper and write the following on each piece of paper "PLEASE PUT ME ON YOUR MAILING LIST." Now get 5 US $5.00 bills and place ONE inside EACH of the 5 pieces of paper so the bill will not be seen through the envelope (to prevent thievery). Next, place one paper in each of the 5 envelopes and seal them. You should now have 5 sealed envelopes, each with a piece of paper stating the above phrase, your name and address, and a $5.00 bill. What you are doing is creating a service. THIS IS ABSOLUTELY LEGAL! You are requesting a legitimate service and you are paying for it! Like most of us I was a little skeptical and a little worried about the legal aspects of it all. So I checked it out with the U.S. Post Office (1-800-725-2161) and they confirmed that it is indeed legal! Mail the 5 envelopes to the following addresses: REPORT # 1: 'The Insider's Guide to Advertising for Free on the Net F. J., 853 Huntclub Blvd., Auburn Hills, MI 48326 USA ________________________________________________________ REPORT # 2: The Insider's Guide to Sending Bulk e-mail on the Net B. Z., 1501 S. Black Ave. Bozeman, Mt. 59715 USA _________________________________________________________________ REPORT # 3: Secret to Multilevel marketing on the net S. D. 3624 Bluebird Road Wyoming, MI. 49509 USA ______________________________________________________________ REPORT # 4: How to become a millionaire utilizing MLM & the Net S. Z. 6311 Danube Road Richmond B.C. V7C 3H8 Canada ________________________________________________________________ REPORT #5: How to send out 0ne Million emails for free G. A. Bower 2769 N. Hillbrier Cir. Plano, TX 75075 USA STEP 2: Now take the #1 name off the list that you see above, move the other names up (5 becomes 4,4 becomes 3 etc...) and add YOUR Name as number 5 on the list. STEP 3: Change anything you need to, but try to keep this article as close to original as possible. STEP 4: Now, send this article to 5000 people or post your amended article to at least 200 newsgroups. (I think there are close to 32,000 groups) All you need is 200, but remember, the more you send or post, the more money you make! This is perfectly legal! If you have any doubts, refer to Title 18 Sec. 1302 & 1341 of the Postal lottery laws. Keep a copy of these steps for yourself and, whenever you need money, you can use it again, and again. PLEASE REMEMBER that this program remains successful because of the honesty and integrity of the participants and by their carefully adhering to the directions. Look at it this way. If you are a person of integrity, the program will continue and the money that so many others have received will come your way. NOTE: You may want to retain every name and address sent to you, either on a computer or hard copy and keep the notes people send you. This VERIFIES that you are truly providing a service. (Also, it might be a good idea to wrap the $5 bill in dark paper to reduce the risk of mail theft.) So, as each post is downloaded and the directions carefully followed, five members will be reimbursed for their participation as a List Developer with five dollars each. Your name will move up the list geometrically so that when your name reaches the #1 position you will be receiving thousands of dollars in CASH!!! What an opportunity for only $25.00 ($5.00 for each of the first five people listed above) Send it now, add your own name to the list and you're in business! =================================================================== --- DIRECTIONS --- FOR HOW TO POST TO NEWSGROUPS --- DIRECTIONS --- =================================================================== Step 1) You do not need to re-type this entire letter to do your own posting. Simply put your cursor at the beginning of this letter and drag your cursor to the bottom of this document, and select 'copy' from the edit menu. This will copy the entire letter into the computer's memory. Step 2) Open a blank 'notepad' file and place your cursor at the top of the blank page. From the 'edit' menu select 'paste'. This will paste a copy of the letter into notepad so that you can add your name to the list. Step 3) Save your new notepad file as a .txt file. If you want to do your postings in different settings, you'll always have this file to go back to. Step 4) Use Netscape or Internet explorer and try searching for various newsgroups (on-line forums, message boards, chat sites, discussions.) Step 5) Visit these message boards and post this article as a new message by highlighting the text of this letter and selecting paste from the edit menu. Fill in the Subject, this will be the header that everyone sees as they scroll through the list of postings in a particular group, click the post message button. You're done with your first one! Congratulations...THAT'S IT! All you have to do is jump to different newsgroups and post away, after you get the hang of it, it will take about 30 seconds for each newsgroup! **REMEMBER, THE MORE NEWSGROUPS YOU POST IN, THE MORE MONEY YOU WILL MAKE!! BUT YOU HAVE TO POST A MINIMUM OF 200** That's it! You will begin receiving money from around the world within days! You may eventually want to rent a P.O.Box due to the large amount of mail you will receive. If you wish to stay anonymous, you can invent a name to use, as long as the postman will deliver it. **JUST MAKE SURE ALL THE ADDRESSES ARE CORRECT.** Now the WHY part:Let's say that you decide to start small, just to see how it goes, and we will assume You and those involved send out only 5,000 e-mails each. Let's also assume that the mailing receive only a 0.2% response (the response could be much better but lets just say it is only 0.2% . Also many people will send out hundreds of thousands e-mails instead of only 5,000 each). Continuing with this example, you send out only 5,000 e-mails. With a 0.2% response, that is only 10 orders for report # 1.Those 10 people responded by sending out 5,000 e-mail each for a total of 50,000. Out of those 50,000 e-mails only 0.2% responded with orders. That's = 100 people responded and ordered Report # 2. Those 100 people mail out 5,000 e-mails each for a total of 500,000 e-mails. The 0.2% response to that is 1000 orders for Report # 3. Those 1000 people send out 5,000 e-mails each for a total of 5 million e-mails sent out. The 0.2% response to that is 10,000 orders for Report # 4. Those 10,000 people send out 5,000 e-mails each for a total of 50,000,000 (50 million) e-mails. The 0.2% response to that is 100,000 orders for Report #5. THAT'S 100,000 ORDERS TIMES $5 EACH = $500,000.00 (half million). Your total income in this example is: 1..... $50 + 2..... $500 + 3..... $5,000 + 4..... $50,000 + 5..... $500,000 ......... Grand Total = $555,550.00 NUMBERS DO NOT LIE. GET A PENCIL & PAPER AND FIGURE OUT THE WORST POSSIBLE RESPONSES AND NO MATTER HOW YOU CALCULATE IT, YOU WILL STILL MAKE A LOT OF MONEY! -------------------------------------------------------------------------- REMEMBER FRIEND, THIS IS ASSUMING ONLY 10 PEOPLE ORDERING OUT OF 5,000 YOU MAILED TO. Dare to think for a moment what would happen if everyone, or half or even one 4th of those people mailed 100,000 e-mails each or more? There are over 150 million people on the Internet worldwide and counting. Believe me, any people will do just that, and more! When your name is no longer on the list, you just take the latest posting in the newsgroups, and send out another $25.00 to names on the list, putting your name at number 5 again. And start posting again. The thing to remember is: do you realize that thousands of people all over the world are joining the internet and reading these articles everyday?, JUST LIKE YOU are now!! So, can you afford $25.00 and see if it really works?? I think so... People have said, "what if the plan is played out and no one sends you the money? So what! What are the chances of that happening when there are tons of new honest users and new honest people who are joining the internet and newsgroups everyday and are willing to give it a try? Estimates are at 20,000 to 50,000 new users, every day, with thousands of those joining the actual internet. Remember, play FAIRLY and HONESTLY and this will really work. ** By the way, if you try to deceive people by posting the messages with your name in the list and not sending the money to the rest of the people already on the list, you will NOT get as much. Someone I talked to knew someone who did that and he only made about $150.00, and that's after seven or eight weeks! Then he sent the 5 $5.00 bills, people added him to their lists, and in 4-5 weeks he had over $10k. This is the fairest and most honest way I have ever seen to share the wealth of the world without costing anything but our time!!! You also may want to buy mailing and e-mail lists for future dollars. Make sure you print this article out RIGHT NOW! Also, try to keep a list of everyone that sends you money and always keep an eye on the newsgroups to make sure everyone is playing fairly. Remember, HONESTY IS THE BEST POLICY. You don't need to cheat the basic idea to make the money!! GOOD LUCK to all and please play fairly and reap the huge rewards from this, which is tons of extra CASH. Please remember to declare your extra income. Thanks once again... LEGAL ? ? ? (Comments from Bob Novak who started this new version.) "People have asked me if this is really legal. Well, it is! You are using the Internet to advertise your business. What is that business? You are assembling a mailing list of people who are interested in home based computer and online business and methods of generating income at home. Remember, people send you a small fee to be added to your mailing list. It is legal. what will you do with your list of thousands of names? That's up to you." So, build your mailing list, keep good accounts, declare the income and pay your taxes. By doing this you prove your business intentions. Keep an eye on the newsgroups and when the cash has stopped coming (that means your name is no longer on the list), you just take the latest posting at the newsgroups, send another $25.00 to the names stated on the list, make your corrections (put your name at #5) and start posting again. ======================================================================= NOTES: * 1. In some countries, the export of the country's exchange is illegal. But you can get the license to do this from the post office, explaining the above statements (that you have an online business, etc. You may have to pay an extra tax, but that's OK, the amount of the incoming money is HUGE! And as I said, a few countries have that restriction. *2. You may want it.buy mailing and e-mail lists for future dollars. (Or Database or Spreadsheet software.) *3. If you're really not sure or still think this can't be for real, please print a copy of this article and pass it along to someone who really needs the money, and see what happens. *4. You will start getting responses within 1-2 weeks, it depends. ________________________________________________________________________ ***ALSO REMEMBER*** INSIDE EACH PIECE OF PARPER, SEND YOUR $5 OUT TO EVERYONE ON THE LIST, EVEN IF THEY ARE NOT FROM THE U.S. WHAT ARE YOU WAITING FOR??? GOOD LUCK!!! -------------------------------------------------------------------- --- Give It a try. ***Invest*** It's not a big loss From frankob2@hotmail.com Sun Sep 23 08:00:39 2001 From: frankob2@hotmail.com (frankob2@hotmail.com) Date: Sun, 23 Sep 2001 03:00:39 -0400 Subject: [RDF] The Website your boss doesn’t want you to know about! (pssst...it's FREE!) Message-ID: mlmpros@diversifieddirectmarketing

The Website your boss doesn’t want you to know about! (pssst...it's FREE!)
http://www.ezinfocenter.com/897189< o:p>

 

You are receiving this email because you have recently  requested information on home-based businesses, or because someone else has signed you up to receive this information. We do not support Spam in any form, and our subscriber list is not publicly accessible.

 

If you are receiving this in error and do not wish to be on our  mailing list, or if at any time you wish to cancel your subscription, please mlmpros@diversifieddirectmarketing.com with remove as the subject.

 

 

From Ian Richards" Hello Since the launch of www.yourarticle.net there has been a considerable uptake of registration from Editors, Journalists, PR Agencies, Corporate Press Offices and Authors throughout North America, Europe, Asia and the Pacific. The web site has now been further enhanced with the latest technology to facilitate ease of use in both downloading and uploading articles and now thanks to sponsorship its completely FREE TO USE - Just register on line. If you haven't already registered take a moment to do so at www.yourarticle.net and benefit from the foremost global portal for journalistic copy. Its completely FREE OF CHARGE, whether you're just looking for content or wish to upload an article or press release for others to view or use. We hope you find Your Article of benefit Ian Richards www.yourarticle.net Please forward this email to a colleague if you think it would be of interest to them If you have received this email in error or wish to have your email address removed from our data base, please send a blank email to remove@yourarticle.net and your email address will be immediately removed from our data base. From Crisha Wenston" This is a multi-part message in MIME format --=_NextPart_2relrfksadvnqindyw3nerasdf Content-Type: multipart/alternative; boundary="=_NextPart_2altrfkindysadvnqw3nerasdf" --=_NextPart_2altrfkindysadvnqw3nerasdf Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hey dear friend, Do you want to get maximum exposure for your website? Are you trying to introduce or sell your new product? Are you planning to present your new service or technology? Do you want to learn instant info about new service? Have you got enough time, energy and cost to spread your idea? You may have spent much on lots of ways to achieve these - search engine registrations, website promotions, press release, email sending ... Here Traffic BBS presents you a unique method economically and professionally converting a PC into personal message distribution center=21 Traffic BBS assists you to post your message or ad to over 12,000+ message boards on the web worldwide. Along with a hyperlink to your website or email address, a message of your business, product, service or offer will be promptly submitted to targeted bulletin boards. You can expect instant response=21 For more details please go to trafficbbs.com. Get your business, service, product or offer seen=21 Best Regards, Crisha Wenston Sales & Marketing www.trafficbbs.com --=_NextPart_2altrfkindysadvnqw3nerasdf Content-Type: text/html Content-Transfer-Encoding: quoted-printable =20 =20 =20
 =20 =20 =20 =20
Hello,

Do you want to get maximum exposure for your website?
Are you trying to introduce or sell your new product?
Are you planning to present your new service or technology?
Do you want to learn instant info about new service?
Have you got enough time, energy and cost to spread your idea?
=20 =20 =20

=20 You may have spent much on lots of ways to achieve these - search engine registrations, website promotions, press release, email sending=A1=AD Here Traffic BBS presents you a unique method economically and professionally converting a PC into personal message distribution center=21 Traffic BBS assists you to post your message or ad to over 12,000+ message boards on the web worldwide. Along with a hyperlink to your website or email address, a message of your business, product, service or offer will be promptly submitted to targeted bulletin boards. You can expect instant response=21 For more details please go to trafficbbs.com.

Get your business, service, product or offer seen=21

Best=20 Regards,
Crisha Wenston
Sales & Marketing
www.trafficbbs.com

=20 =20 =20 =20 =20 =20
=20 =20

=20
     
     
=20
--=_NextPart_2altrfkindysadvnqw3nerasdf-- --=_NextPart_2relrfksadvnqindyw3nerasdf Content-Type: application/octet-stream; name="letter_bg.jpg" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="letter_bg.jpg" Content-ID: letter_bg.jpg /9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAoHBwgHBgoICAgLCgoLDhgQDg0NDh0VFhEYIx8lJCIf IiEmKzcvJik0KSEiMEExNDk7Pj4+JS5ESUM8SDc9Pjv/2wBDAQoLCw4NDhwQEBw7KCIoOzs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozv/wAARCAFFAXUDASIA AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3 ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3 uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD2aiii gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiikZlUZYgD3NAC0VCbqHOAxY+igmk89 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 --=_NextPart_2relrfksadvnqindyw3nerasdf Content-Type: application/octet-stream; name="bbs_bottom.jpg" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="bbs_bottom.jpg" Content-ID: bbs_bottom.jpg /9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCABQAUYDASIA AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3 ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3 uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iii gBjqXjZRwSCK4i6KQTtDcL+BGQRXYXcvlxBd20vxuPYdzVW8vLOOxkRJImYLhVyOfamI4ovpAOPJ tf8Av3TPtGif3bP3+UVpC8hK4GjQj8ary3mhWRA1LSrS2iPPmNQBTNzondbT/vkUw3OiH+G0/wC+ RT5PEngpTgWds4/vKvWmr4h8Hyyon9mw4b+Ir0oAj+06J6Wf/fIpfO0j/njbf98VXvPFXhK0m2ro 8EuD1UU+T4j+HI4kY6NnJxgL0oAk83SP+eFr/wB+hTfN0j/nha/9+hSS/EXw5DydJBHrtpjfEvw4 vl/8SbO70XpQA8vpGP8AUW3/AH6o36T/AM+9t/36pT8RfD8ed2kBQBkEr1pp+JXh1WjX+yQd/cLw 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 --=_NextPart_2relrfksadvnqindyw3nerasdf Content-Type: application/octet-stream; name="letter_left01.jpg" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="letter_left01.jpg" Content-ID: letter_left01.jpg /9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAoHBwgHBgoICAgLCgoLDhgQDg0NDh0VFhEYIx8lJCIf IiEmKzcvJik0KSEiMEExNDk7Pj4+JS5ESUM8SDc9Pjv/2wBDAQoLCw4NDhwQEBw7KCIoOzs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozv/wAARCAC5AA4DASIA AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3 ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3 uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDpbSVp 9Ht5XOXeMFj713dp/wAekP8AuD+VcBp3/IAsz/0yFd/aDFpFn+4P5UAcBpnPh+z7/ulr0C3/AOPa L/cH8q8/0s/8U/Zf9clr0C3/AOPaL/cH8qAPPtJ/5F+x94l/pXoVv/x7Rf7g/lXnmk/8i/Yf9clr 0O3/AOPaL/cH8qAPPNHOfDun9/3S16Hb/wDHtF/uD+Ved6N/yLun/wDXJa9Et/8Aj2i/3B/KgDzr RefDunn/AKZLXotv/wAe0X+4P5V5zon/ACLunf8AXFa9Gt/+PaL/AHB/KgDznROfDunf9cVr0a3/ AOPaL/cH8q850T/kXtP7/uVr0a3/AOPaL/cH8qAPONE/5F7Tv+uS16Pb/wDHtF/uD+VecaJ/yL2n f9clr0e3/wCPeL/cH8qAPONE/wCRe0//AK4rXo8H/HvH/uD+VecaJ/yL2nf9clr0e3/494v9wfyo A830T/kXtO/65LXpFv8A8e0X+4P5V5von/Iv6d/1yWvSLf8A49ov9wfyoA830T/kX9O/65LXpFv/ AMe0X+4P5V5von/Iv6d/1yWvSLf/AI94v9wfyoA830XP/CP6f/1zWvSLf/j2i/3B/KvN9G/5AGn/ APXNa9It/wDj2i/3B/KgDzfRgf7C0/8A65LXpFv/AMe8X+4P5VwMH/HpB/uiu+t/+PaL/cH8qAP/ 2Q== --=_NextPart_2relrfksadvnqindyw3nerasdf Content-Type: application/octet-stream; name="img275.jpg" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="img275.jpg" Content-ID: Seekercenter_img275.jpg /9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsK CwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQU FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAC4AQADASIA AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3 ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3 uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9Dvh5 8OvCl38P/DM8/hjRpppdMtXeSTT4mZmMSkkkryT610H/AArLwf8A9Cpof/guh/8AiaX4a/8AJOfC v/YKtP8A0StdJQBzX/Cs/B//AEKmh/8Aguh/+JpP+FZeDj/zKeh/+C2H/wCJrpqKAOZ/4Vj4OH/M p6H/AOC2H/4mlPwy8Hnr4T0P/wAF0P8A8TXS0UAc1/wrLwfx/wAUpofH/UOh/wDiaP8AhWXg/H/I qaH/AOC6H/4mulooA5n/AIVj4O/6FPQ//BbD/wDE0p+GXg8n/kU9D/8ABdD/APE10tFAHNf8Ky8H f9Cnof8A4LYf/iaP+FZ+D/8AoVNE/wDBdD/8TXS0UAc1/wAKy8H/APQqaH/4Lof/AImj/hWXg/n/ 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 RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFU 9XBOm3GM529quVT1fjTZ/wDd/rQBj/DX/knPhX/sFWn/AKJWukrm/hp/yTnwr/2CbT/0StdJQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABVTV v+QdP/u/1q3VPVv+Qbcf7vagDH+GnHw58K/9gm0/9ErXSVzfw1/5Jz4V/wCwVaf+iVrpKACiiigA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKp6sM6d P9P61cqnq3/INn/3aAMf4a/8k58K/wDYKtP/AEStdJXN/DT/AJJz4V/7BNp/6JWukoAKKKKACiii gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACivh/wDaK/aw+JXwl+MvxY0ODWvCmkeH PC/glPFulHUtGnuJruR5I7ZLV3W5QAvcttVgv8agjgms3wt+1P8AF/xdp0d/ZeJPCP8AZei/DOLx 14s1BfDsrppt1cQy3FrYqovQxcwgMc4+WItkeYqqAfeVFfn5+zP+258U/jB47+FmmR3PhLxzb+I4 p5/FWm+HdGvLebwrEqsYZJrppniy+B8rKCSNi8srV6Vc/tmarqv7Z3hT4baDb6TL8PLu+1Lw/fap KSbyXVbSzNxKsQD/ACxIzRQ7mX5pFmAOEBoA+uaK+F/ip+1f8ULf9rjxT8G/BfiPwfb3sNra/wBi 2Op6FcTz3N7Lbef9nkkS5ULEsStI9xtwu5F2Enn7V8M3Wp33hvSbnWrJNN1ia0ikvbKKQSLbzlAZ Iw44YKxIyOuM0AadFFFABVTVv+QdP1+72+tW6qaqM6dP/u/1oAxvhp/yTjwr/wBgm0/9ErXSUUUA FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQBWu9Ss9P8A+Pq6gtv3bS/vpAnyKQGbk9AW UE9tw9aBqdoxhC3MTedK8Ee1wd0i7tyDHcbHyO20+lFFdqoxdJT6u/4J/wCRN9bDE1iwl1GTT0vb Z7+MbntVlUyqMA5K5yBgj8xVyiisq1NU3G3VJ/eNO588/Fv9jLw78ZPj9pvxO1vWLrNj4bl8PjRF hVreUs07JO5JyShuCyrjh442BBXnj9K/YRs/Av7K998HND+Il3og128/4nniWayjluNSidRCtsqu +Il2LBEApPyxkAZcmiisoLmkkwZMP2K9R8D6rZ+KPBvxZvfAmsReEYPDGuXtpo9u0GpRW0YSC7aF jtimijVVVxkqsagEAtuxtB/4J16XoN98JNT0PxbpulXvgaaK6fVNL8KWUN7rbpKx3XNwp3sGhYRn JbJzIcseCiq5V7NS87B1PQvgJ+y/H8PfiR4y+IOteNYPiLrPia8t9TF1LpFvB9iuEglhR4XRmIH2 a4aMAEfI567ya+h6KKVSKhNxQIKKKKzGFU9XGdNnH+z/AFoooA//2Q== --=_NextPart_2relrfksadvnqindyw3nerasdf Content-Type: application/octet-stream; name="letter_right01.jpg" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="letter_right01.jpg" Content-ID: letter_right01.jpg /9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAoHBwgHBgoICAgLCgoLDhgQDg0NDh0VFhEYIx8lJCIf IiEmKzcvJik0KSEiMEExNDk7Pj4+JS5ESUM8SDc9Pjv/2wBDAQoLCw4NDhwQEBw7KCIoOzs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozv/wAARCAC5AB8DASIA AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3 ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3 uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD2F7dG O5co395eKbumi++vmL/eUc/lRtmh+6fNT0PUfj3qSOVJRlTyOoPBFUITzEliYowIwa5q7YpG7LwQ a6OaFCGcZVgOSvGa5y7wYJPqP50vQDpY5VkyBkMOqnqKJIVc7gSrjow60SRLJg5KsOjDqKSOVt3l yjD9iOjU/NAMaVlRo5gASDtYdG/wNc7df8e8n1H866eUAxPkdjXMXf8Ax7yfUUhnTxyCQHAII6g9 RSuiyLtYcfypksbZ8yPhx+Texp0cgkTcMg9CD1Bo80IiZ2RGjlOSVO1v73/165y7P+jSfUfzrp5l VoW3DOBkfWuXvf8Aj1k+o/nQM6yoJVMT+cmcfxqO49frU9FCYEbsGgZlOQVJBrlr/wD49JP94fzr pG/cb4z9xwSnsfSuav8A/j0k/wB4fzoEddRRRSGRzoHhYN2GRXKah/x5y/7w/nXWS/6p/wDdNcnq H/HnL/vD+dMDr6KKKQDJf9U/+6a5LUP+POX/AHh/Outl/wBU/wDumuS1H/jyl/3h/OmB2FFFFIBk v+qf/dNcjqX/AB4zZH8Q/nXXS/6p/wDdNchqX/HhN/vD+dAHZUUUUAMl/wBU/wDumuP1L/jwl/3h /Ouwl/1T/wC6a4/Uf+QfN/vD+dAHZ0UUUAMl/wBS/wDumuP1LB0+X/eH867CX/Uv/umuO1Mf8S6b /eH86YHaUUUUgI5v9RJ/un+Vcdqf/IOm/wB5f512M3+ok/3T/KuN1P8A5Bs/1X+dMDtqKKKQDJv9 RJ/un+VcXqX/ACD5/wDeX+YrtJf9S/8AumuL1L/jwuP94fzFAHb0UUUAMl/1T/7pritS/wCPC4/3 l/mK7WX/AFT/AO6a5K4+4/1/rQB//9k= --=_NextPart_2relrfksadvnqindyw3nerasdf Content-Type: application/octet-stream; name="letter_top01.jpg" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="letter_top01.jpg" Content-ID: letter_top01.jpg /9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAoHBwgHBgoICAgLCgoLDhgQDg0NDh0VFhEYIx8lJCIf IiEmKzcvJik0KSEiMEExNDk7Pj4+JS5ESUM8SDc9Pjv/2wBDAQoLCw4NDhwQEBw7KCIoOzs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozv/wAARCAAPAUYDASIA AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3 ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3 uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD1/NzH 1Cyj24NKtzHnD5jPowxT4pUmXchyPpSsquMMAR71XqIWlqu0JiBaFymOSp5FZs+pXDuRE4QfSkM2 qKwftd9/z8n/AL5FH2u+/wCfk/8AfIpAb1FYP2u+/wCfk/8AfIo+133/AD8/+OigDeorB+133/Px /wCOik+2X3/Pf/x0UAb9FYBvb4f8t/8Ax0U0319/z8f+OigDoaK54397/wA/H/joo+333/Px/wCO igDoaK577fff8/H/AI6KT7fff89//HRQB0VFc79vv/8AnuP++RR/aF//AM9x/wB8igDoqK5z+0L/ AP57/wDjoqpdX3iFpQbSaHy8c7xzmgDrqK5O0vteXd9smi/2fLFWf7Qv8f679BQB0dFc5/aGof8A PYfkKT+0b89Jv/HRQB0lFc3/AGjqP/PcfkKQ6lqH/PcfkKAOlormf7S1D/nuP++RR/aWo5x54/75 FFgOmormf7T1H/nuP++RSHUtR6+eP++RQB09Fcv/AGlqP/PcfkKP7S1L/nuP++RQB1FFcv8A2nqX /Pcf98ik/tPUv+e4/wC+aAOporlv7S1P/nuP++aX+1NSA5mH5CgDqKK5y01y4S4RLg+ZG52k4wQa 6OgAooooAKKKKAP/2Q== --=_NextPart_2relrfksadvnqindyw3nerasdf-- From mlmpros@diversifieddirectmarketing.com Sun Nov 11 01:37:21 2001 From: mlmpros@diversifieddirectmarketing.com (mlmpros@diversifieddirectmarketing.com) Date: Sat, 10 Nov 2001 20:37:21 -0500 Subject: [RDF] $60000 IN 60 DAYS Message-ID: I'll make you a promise. READ THIS E-MAIL TO THE END! - follow what it says to the letter - and you will not worry whether a RECESSION is coming or not, who is President, or whether you keep your current job or not. Yes, I know what you are thinking. I never responded to one of these before either. One day though, something just said "you throw away $25.00 going to a movie for 2 hours with your wife". "What the heck." Believe me, no matter where you believe "those feelings" come from, I thank goodness every day that I had that feeling. I cannot imagine where I would be or what I would be doing had I not. Read on. It's true. Every word of it. It is legal. I checked. Simply because you are buying and selling something of value. AS SEEN ON NATIONAL TV: Making over half million dollars every 4 to 5 months from your home. THANK'S TO THE COMPUTER AGE AND THE INTERNET ! ================================================== BE AN INTERNET MILLIONAIRE LIKE OTHERS WITHIN A YEAR!!! Before you say ''Bull'', please read the following. This is the letter you have been hearing about on the news lately. Due to the popularity of this letter on the Internet, a national weekly news program recently devoted an entire show to the investigation of this program described below, to see if it really can make people money. The show also investigated whether or not the program was legal. Their findings proved once and for all that there are ''absolutely NO Laws prohibiting the participation in the program and if people can "follow the simple instruction" they are bound to make some mega bucks with only $25 out of pocket cost''. DUE TO THE RECENT INCREASE OF POPULARITY & RESPECT THIS PROGRAM HAS ATTAINED, IT IS CURRENTLY WORKING BETTER THAN EVER. This is what one had to say: '' Thanks to this profitable opportunity". I was approached many times before but each time I passed on it. I am so glad I finally joined just to see what one could expect in return for the minimal effort and money required. To my astonishment, I received a total $ 610,470.00 in 21 weeks, with money still coming in''. Pam Hedland, Fort Lee, New Jersey. ================================================== Another said: "this program has been around for a long time but I never believed in it. But one day when I received this again in the mail I decided to gamble my $25 on it. I followed the simple instructions and walaa ..... 3 weeks later the money started to come in. First month I only made $240.00 but the next 2 months after that I made a total of $290,000.00. So far, in the past 8 months by re-entering the program, I have made over $710,000.00 and I am playing it again. The key to success in this program is to follow the simple steps and NOT change anything.'' More testimonials later but first, ======= ==== PRINT THIS NOW FOR YOUR FUTURE REFERENCE ==== $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ If you would like to make at least $500,000 every 4 to 5 months easily and comfortably, please read the following...THEN READ IT AGAIN and AGAIN !!! $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ FOLLOW THE SIMPLE INSTRUCTION BELOW AND YOUR FINANCIAL DREAMS WILL COME TRUE, GUARANTEED! INSTRUCTIONS: =====Order all 5 reports shown on the list below ===== For each report, send $5 CASH, THE NAME & NUMBER OF THE REPORT YOU ARE ORDERING and YOUR E-MAIL ADDRESS to the person whose name appears ON THAT LIST next to the report. MAKE SURE YOUR RETURN ADDRESS IS ON YOUR ENVELOPE TOP LEFT CORNER in case of any mail problems. ===WHEN YOU PLACE YOUR ORDER, MAKE SURE === ===YOU ORDER EACH OF THE 5 REPORTS! === You will need all 5 reports so that you can save them on your computer and resell them. YOUR TOTAL COST $5 X 5 = $25.00. Within a few days you will receive, via e-mail, each of the 5 reports from these 5 different individuals. Save them on your computer so they will be accessible for you to send to the 1,000's of people who will order them from you. Also make a floppy of these reports and keep it on your desk in case something happens to your computer. IMPORTANT - DO NOT alter the names of the people who are listed next to each report, or their sequence on the list, in any way other than what is instructed below in step '' 1 through 6 '' or you will loose out on the majority of your profits. Once you understand the way this works, you will also see how it does not work if you change it. Remember, this method has been tested, and if you alter it, it will NOT work !!! People have tried to put their friends/relatives names on all five thinking they could get all the money. But it does not work this way. Believe us, some have tried to be greedy and then nothing happened. So Do Not try to change anything other than what is instructed. Because if you do, it will not work for you. Remember, honesty reaps the reward!!! This IS a legitimate BUSINESS. You are offering a product for sale and getting paid for it. Treat it as such and you will be VERY profitable in a short period of time. 1.. After you have ordered all 5 reports, take this advertisement and REMOVE the name & address of the person in REPORT # 5. This person has made it through the cycle and is no doubt counting their fortune. 2..Move the name & address in REPORT # 4 down TO REPORT # 5. 3.. Move the name & address in REPORT # 3 down TO REPORT # 4. 4.. Move the name & address in REPORT # 2 down TO REPORT # 3. 5.. Move the name & address in REPORT # 1 down TO REPORT # 2 6.... Insert YOUR name & address in the REPORT # 1 Position. PLEASE MAKE SURE you copy every name & address ACCURATELY! This is critical to YOUR success. ================================================== **** Take this entire letter, with the modified list of names, and save it on your computer. DO NOT MAKE ANY OTHER CHANGES. Save this on a disk as well just in case if you loose any data. To assist you with marketing your business on the internet, the 5 reports you purchase will provide you with invaluable marketing information which includes how to send bulk e-mails legally, where to find thousands of free classified ads and much more. There are 2 Primary methods to get this venture going: METHOD # 1: BY SENDING BULK E-MAIL LEGALLY ================================================== Let's say that you decide to start small, just to see how it goes, and we will assume You and those involved send out only 5,000 e-mails each. Let's also assume that the mailing receive only a 0.2% (2/10 of 1%) response (the response could be much better but lets just say it is only 0.2%). Also many people will send out hundreds of thousands e-mails instead of only 5,000 each). Continuing with this example, you send out only 5,000 e-mails. With a 0.2% response, that is only 10 orders for report # 1. Those 10 people responded by sending out 5,000 e-mail each for a total of 50,000. Out of those 50,000 e-mails only 0.2% responded with orders. That's=100 people responded and ordered Report # 2. Those 100 people mail out 5,000 e-mails each for a total of 500,000 e-mails. The 0.2% response to that is 1000 orders for Report # 3. Those 1000 people send 5,000 e-mail each for a total of 5 million e-mail sent out. The 0.2% response is 10,000 orders for Report # 4. Those 10,000 people send out 5,000 e-mails each for a total of 50,000,000 (50 million) e-mails. The 0.2% response to that is 100,000 orders for Report # 5. THAT'S 100,000 ORDERS TIMES $5 EACH = $500,000.00 (half a million dollars). Your total income in this example is: 1..... $50 + 2..... $500 + 3..... $5,000 + 4..... $50,000 + 5.... $500,000 .... Grand Total=$555,550.00 NUMBERS DO NOT LIE. GET A PENCIL & PAPER AND FIGURE OUT THE WORST POSSIBLE RESPONSES AND NO MATTER HOW YOU CALCULATE IT, YOU WILL STILL MAKE A LOT OF MONEY! ================================================== REMEMBER FRIEND, THIS IS ASSUMING ONLY 10 PEOPLE ORDERING OUT OF 5,000 YOU MAILED TO. Dare to think for a moment what would happen if everyone or half or even one 4th of those people mailed 100,000 e-mails each or more? There are over 150 million people on the Internet worldwide and counting, with thousands more coming on line every day. Believe me, many people will do just that, and more! METHOD # 2: BY PLACING FREE ADS ON THE INTERNET ================================================== Advertising on the net is very, very inexpensive and there are hundreds of FREE places to advertise. Placing a lot of free ads on the Internet will easily get a larger response. We strongly suggest you start with Method # 1 and add METHOD #2 as you go along. For every $5 you receive, all you must do is e-mail them the Report they ordered. That's it. Always provide same day service on all orders. This will guarantee that the e-mail they send out, with your name and address on it, will be prompt because they can not advertise until they receive the report. ===========AVAILABLE REPORTS ==================== The reason for the "cash" is not because this is illegal or somehow "wrong". It is simply about time. Time for checks or credit cards to be cleared or approved, etc. Concealing it is simply so no one can SEE there is money in the envelope and steal it before it gets to you. ORDER EACH REPORT BY ITS NUMBER & NAME ONLY. Notes: Always send $5 cash (U.S. CURRENCY) for each Report. Checks NOT accepted. Make sure the cash is concealed by wrapping it in at least 2 sheets of paper. On one of those sheets of paper, Write the NUMBER & the NAME of the Report you are ordering, YOUR E-MAIL ADDRESS and your name and postal address. PLACE YOUR ORDER FOR THESE REPORTS NOW : ==================================================== REPORT # 1: 'The Insider's Guide to Advertising for Free on the Net Order Report #1 from: F. B. 853 Huntclub Blvd. Auburn Hills, MI 48326 USA ________________________________________________________ REPORT # 2: The Insider's Guide to Sending Bulk e-mail on the Net Order Report # 2 from: B. Z. 1501 S. Black Ave. Bozeman, Mt. 59715 USA _________________________________________________________________ REPORT # 3: Secret to Multilevel marketing on the net Order Report # 3 from: S. D. 3624 Bluebird Road Wyoming, MI. 49509 USA ______________________________________________________________ REPORT # 4: How to become a millionaire utilizing MLM & the Net Order Report # 4 from: S. Z. 6311 Danube Road Richmond B.C. V7C 3H8 Canada ________________________________________________________________ REPORT #5: How to send out 0ne Million emails for free Order Report # 5 from: G. A. Bower 2769 N. Hillbrier Cir. Plano, TX 75075 USA __________________________________________________________________ ______ $$$$$$$$$ YOUR SUCCESS GUIDELINES $$$$$$$$$$$ Follow these guidelines to guarantee your success: === If you do not receive at least 10 orders for Report #1 within 2 weeks, continue sending e-mails until you do. === After you have received 10 orders, 2 to 3 weeks after that you should receive 100 orders or more for REPORT # 2. If you did not, continue advertising or sending e-mails until you do. **Once you have received 100 or more orders for Report # 2, YOU CAN RELAX, because the system is already working for you, and the cash will continue to roll in ! THIS IS IMPORTANT TO REMEMBER: Every time your name is moved down on the list, you are placed in front of a Different report. You can KEEP TRACK of your PROGRESS by watching which report people are ordering from you. IF YOU WANT TO GENERATE MORE INCOME SEND ANOTHER BATCH OF E-MAILS AND START THE WHOLE PROCESS AGAIN. There is NO LIMIT to the income you can generate from this business !!! ================================================= FOLLOWING IS A NOTE FROM THE ORIGINATOR OF THIS PROGRAM: You have just received information that can give you financial freedom for the rest of your life, with NO RISK and JUST A LITTLE BIT OF EFFORT. You can make more money in the next few weeks and months than you have ever imagined. Follow the program EXACTLY AS INSTRUCTED. Do Not change it in any way. It works exceedingly well as it is now. Remember to e-mail a copy of this exciting report after you have put your name and address in Report #1 and moved others to #2 .....# 5 as instructed above. One of the people you send this to may send out 100,000 ormore e-mails and your name will be on every one of them. Remember though, the more you send out the more potential customers you will reach. So my friend, I have given you the ideas, information, materials and opportunity to become financially independent. IT IS UP TO YOU NOW ! =============MORE TESTIMONIALS=============== '' My name is Mitchell. My wife, Jody and I live in Chicago. I am an accountant with a major U.S. Corporation and I make pretty good money. When I received this program I grumbled to Jody about receiving ''junk mail''. I made fun of the whole thing, spouting my knowledge of the population and percentages involved. I ''knew'' it wouldn't work. Jody totally ignored my supposed intelligence and few days later she jumped in with both feet. I made merciless fun of her, and was ready to lay the old ''I told you so'' on her when the thing didn't work. Well, the laugh was on me! Within 3 weeks she had received 50 responses. Within the next 45 days she had received total $ 147,200.00 ........ all cash! I was shocked. I have joined Jodyin her ''hobby''. Mitchell Wolf M.D., Chicago, Illinois ================================================ '' Not being the gambling type, it took me several weeks to make up my mind to participate in this plan. But conservative as I am, I decided that the initial investment was so little that there was just no way that I wouldn't get enough orders to at least get my money back''. '' I was surprised when I found my medium size post office box crammed with orders. I made $319,210.00 in the first 12 weeks. The nice thing about this deal is that it does not matter where people live. There simply isn't a better investment with a faster return and so big''. Dan Sondstrom, Alberta, Canada ================================================= '' I had received this program before. I deleted it, but later I wondered if I should have given it a try. Of course, I had no idea who to contact to get another copy, so I had to wait until I was e-mailed again by someone else.........11 months passed then it luckily came again...... I did not delete this one! I made more than $490,000 on my first try and all the money came within 22 weeks''. Susan De Suza, New York, N.Y. ================================================= '' It really is a great opportunity to make relatively easy money with little cost to you. I followed the simple instructions carefully and within 10 days the money started to come in. My first month I made $ 20, 560.00 and by the end of third month my total cash count was $ 362,840.00. Life is beautiful, Thanx to internet''. Fred Dellaca, Westport, New Zealand ================================================= ORDER YOUR REPORTS TODAY AND GET STARTED ON YOUR ROAD TO FINANCIAL FREEDOM ! If you have any questions regarding this great deal please email me at superblink69@hotmail.com. If you wish to be removed from the mailing list please send an email to sakst8@ziplip.com with the word REMOVE in the subject line. ================================================= If you have any questions of the legality of this program, contact the Office of Associate Director for Marketing Practices, Federal Trade Commission, Bureau of Consumer Protection, Washington, D.C. ================================================= ONE TIME MAILING, NO NEED TO REMOVE ================================================= This message is sent in compliance of the proposed bill SECTION 301, paragraph (a)(2)(C) of S. 1618. Further transmission to you by the sender of this email may be stopped at no cost to you by sending a reply to: sakst8@ziplip.com with the word REMOVE in the subject line. This message is not intended for residents in the State of Washington, screening of addresses has been done to the best of our technical ability. From liyan@lm365.com Wed Nov 14 16:37:43 2001 From: liyan@lm365.com (liyan@lm365.com) Date: Wed, 14 Nov 2001 17:37:43 +0100 Subject: [RDF] ±¬Ð¦Ê±ÊÂÂþ»­ 11-14 Message-ID: н¨ÍøÒ³ 1

2001Äê11ÔÂ13ÈÕ  Ãâ·Ñ¶©ÔÄ Ã¿ÈÕ·¢ËÍ

ÓÉÓʼþÓÉViaComic¶¯ÂþÍøÕ¾±à¼­³ö°æ£¬»¶Ó­ºÏ×÷

Email:zhouhaibo@via-sk.com

¡¡

ÒªÎÅ

ÃÀ¶í·å»á³É¹û×¿Öø ²¼Ê²Ðû²¼ÃÀ½«´ó·ùÏ÷¼õºËµ¯Í·

¡¡
¡¡¡¡ÃÀ¹ú×Üͳ²¼Ê²13ÈÕÔÚÓë¶íÂÞ˹×ÜͳÆÕ¾©»á̸½áÊøºó¾ÙÐеÄÁªºÏ¼ÇÕßÕдý»áÉÏÐû²¼£¬ÃÀ¹ú½«ÔÚ½ñºó10ÄêÄÚ°ÑÆäºËµ¯Í·ÊýÄ¿¼õÉÙµ½1700öÖÁ2200ö֮¼ä¡£ÆÕ¾©Ôò±íʾ£¬¶íÂÞ˹½«¶Ô´Ë×÷³ö¡°»ØÓ¦¡±¡£ ²¼Ê²Ëµ£¬ÔÚ´ó·ùÏ÷¼õºËµ¯Í·ÊýÄ¿ºó£¬ÃÀ¹úµÄºËµ¯Í·ÈÔ½«¿ÉÒÔ¡°ÍêÈ«ÊÊÓ¦ÃÀ¹úµÄ°²È«¡±ÐèÒª¡£ÃÀ¹úĿǰӵÓÐ7013öºËµ¯Í·£¬¶íÂÞ˹ӵÓÐ5858öºËµ¯Í·¡£

À´¡¼ViaComicʱʶ¯Âþ¡½£¬ä¯ÀÀ¶©Ôĸü¶àÄÚÈÝ

¿Æ¼¼

µ÷²éÏÔʾÊÖ»ú¶ÌÐųɴóѧÉúÎüÒýÒìÐÔµÄ×îÐÂÎäÆ÷

¡¡
¡¡¡¡Ó¢¹úѧÉúÒÆ¶¯µç»°ÍøÕ¾Studentmobile.comÈÕǰ¶ÔÓ¢¹ú25Ëù´óѧµÄ500ÃûѧÉú½øÐÐÁËÒ»´ÎÊÖ»úʹÓÃÇé¿öÃñÒâ²âÑéµ÷²é¡£µ÷²é·¢ÏÖ£¬Èý·ÖÖ®Ò»µÄѧÉúÔÚУѧϰÆÚ¼ä¶Ô¼ÒÏçµÄÄÐÓÑ»òÅ®ÓѱíÏÖ²»Öҳϡ£µ÷²é»¹·¢ÏÖ£¬ÊÖ»ú¶ÌÐÅÏ¢ÊÇѧÉúÓÕ»óÒìÐÔµÄ×îÐÂʽÎäÆ÷¡£¼¸ºõÓÐÈý·ÖÖ®Ò»µÄѧÉú˵£¬ËûÃÇÓйý¡°µç»°¼¤Ç顱£¬79%µÄѧÉú˵£¬ËûÃÇÓõ绰µ÷¹ýÇé¡£¸Ã¹«Ë¾µÄÓªÏú¾­Àí˵£¬ÎÒÃÇÖªµÀ£¬ÓÃÎı¾¶ÌÐÅÏ¢µ÷ÇéÔÚ´óѧÉúÖÐÊǺÜÁ÷Ðеġ£µ«ÊÇ£¬Õâ´Îµ÷²é·¢ÏÖ£¬ºÁÎÞÒÉÎÊ£¬ÓµÓÐÊÖ»úÄã¿ÉÒÔÏíÊܺܶࡰÒâÏë²»µ½¡±µÄÀÖȤ¡£

À´¡¼ViaComicʱʶ¯Âþ¡½£¬ä¯ÀÀ¶©Ôĸü¶àÄÚÈÝ

Éú»î

Çൺһ֤ȯ´óÌü·¢ÏÖ¿ÉÒɰü¹ü£¿ÊýÊ®¹ÉÃñ¶á·¶øÌÓ

¡¡
¡¡¡¡×òÌìÉÏÎ磬ij֤ȯ¹«Ë¾ÓªÒµÌüÄÚ£¬Ò»¸öÎÞÈËÈÏÁìµÄ±³°üÒýÆð´óÌüÄÚ¹ÉÃñµÄ¿Ö»Å£¬´ó¼Ò·×·×¶á·¶øÌÓ¡£½á¹ûÊÇÐ龪һ³¡¡£ µ±Ê±£¬±£°²·¢ÏÖ´óÌüÄÚÓÐÒ»¸öÂÌÉ«±³°üÎÞÈËÈÏÁì,±ãͨ¹ý¹ã²¥²»¶ÏÖØ¸´£º¡°Ë­µÄ±³°üÇëÄÃ×ß¡±£¬Ê®¶à·ÖÖÓ»¹ÊÇÎÞÈËÁìÈ¡¡£¡°²»»áÊÇ¡­¡­¡±²»ÖªÄĸö¹ÉÃñµÍÉù¹¾ßæÁËÒ»¾ä£¬»°Òô¸ÕÂ䣬¹ÉÃñÃÇ·×·×ÍùÍâÅÜ£¬´óÌüÀï¶Ùʱ»ìÂÒ¡£±£°²²»¸Ò´óÒ⣬Ïò¡°110¡±±¨Á˾¯¡£µ«Ã»¹ý¶à¾ÃʧÖ÷±ãǰÀ´ÈÏÁì¡£¾­²é£¬°üÄÚ³ýÁËһ̨СÐͺڰ׵çÊÓ»úÍ⣬װµÄÈ«ÊÇǯ×ÓµÈάÐÞ¹¤¾ß¡£

À´¡¼ViaComicʱʶ¯Âþ¡½£¬ä¯ÀÀ¶©Ôĸü¶àÄÚÈÝ

¡¡

¡¡

½üÆÚ¾«²ÊÄÚÈݻعË

2001-11-7 Âú¶íÖ§³ÖÃÀ¾üÊÂÐж¯ À­µÇÅɳöÅ®·ËÕ¨¶í½ÌÌÃ
2001-11-7 ¹ãµº¡±Ô­×Óµ¯Õ¨ÃÀ¹ú£¿À­µÇ³ÆÊ¥µ®·¢¶¯Ï®»÷
2001-11-7 ŦԼÊг¤ÊÕµ½È«ÃÀ¹ã²¥¹«Ë¾¼ÄÀ´µÄÌ¿¾Ò°ü¹ü
2001-11-6 ±±¾©ÊÐÃñ¿É´Ó¶¯ÎïÔ°ÈÏÑøÕä¹ó¶¯Îï

[µã»÷½øÈë¿´¸ü¶à]

¡¡

±¾¿¯ÎïËùÓÐÎÄÕ¼°ÄÚÈݰæÈ¨Îªwww.viacomic.com V¶¯ÂþÍøÕ¾ËùÓУ¬Î´¾­ÊéÃæÊÚȨÈκÎýÌå²»µÃ×ªÔØ

 
¡¡

From rose@flash.net Fri Nov 23 15:50:54 2001 From: rose@flash.net (rose@flash.net) Date: Fri, 23 Nov 2001 09:50:54 -0600 Subject: [RDF] DOT USA (.usa) Domains Available NOW!!! Message-ID:

.usa NOW AVAILABLE!!!

.usa NOW AVAILABLE!!!

.usa NOW AVAILABLE!!!

Don't miss out on this ONCE IN A LIFETIME OPPORTUNITY!!! Not only can you now support OUR economy, but also get THE URL that matches the format of the ENTIRE REST OF THE WORLD!!!The United States is the ONLY country with .com or .net as the STANDARD extensions for it's URL's!!! Canada (.ca), Korea (.kr), Cyprus (.cy), Taiwan (.tw)... FINALLY we have access to .usa!!!

ACT NOW!!! Get the URL you REALLY wanted!!! PROTECT YOUR CURRENT URL!!! In the INTERNATIONALLY RECOGNIZED format recognized by EVERY OTHER COUNTRY IN THE WORLD!!!

Just click here

Dot USA Domain Name Registrar

(it takes all of 3 minutes to register)!!!