Supporting Knowledge Sharing and Re-use

Dr Philippe Martin   (

Supertasks (applications): supporting cooperation and information retrieval/comparison


1993-1996 (PhD): CGKAT

Easing the edition, interconnection and combination of
knowledge representations and documents elements

1993-1996 (PhD): CGKAT

Some of the lessons I learned:


1997-1999 (researcher): WebKB-1

Easing the creation and exploitation of
knowledge representations and queries within Web documents

Example 1.     Example 2.         Interface and other examples.


2000-now (senior researcher/lecturer): WebKB-2

Enabling the collaborative building of a large semantic network (within a KB or across KBs)

Expliciting (detected) semantic conflicts and redundancies

Core ideas:

Conclusions: - the users are encouraged to tightly interconnect their knowledge
                      without having to discuss and agree on terminology or beliefs
                    - this approach works on semi-formal KBs too and could be a solution to
                      some problems of wikis
                    - this is a loss-less information integration approach.
Applications: collaboratively-built states of the art, corporate memories, catalogs,
                    learning resources, etc.; e-learning, e-government, e-science, etc.


Expliciting (detected) semantic conflicts and redundancies

no bird can be               at least 1 bird can
agent of a flight ########## be agent of a flight
 75% of birds can be           |
  agent of a flight            |
    |                          |
    |                      2 birds can be 
    |                      agent of a flight 
 any bird can be          /
 agent of a flight       /
             \          /
              \        /
               \      /
            Tweety can be
            agent of a flight


The next two slides show alignment examples.

Approach for integrating OntoWordNet

        /            |       |
       /s            |s      |s(subtype)
      /              |       |
dolce#quality        |      dolce#region
          |       wn#color        |
          |        /    |         |
          |s      /s    |s        |i(instance)
          |      /      |         |
         own#color     wn#red     |
          |           /  |   |    |
          |s         /s  |s  |i   |
          |         /    |   |    |
                         |        |
                    wn#dark_red   |
                         |        |
                         |i       |sub-region
                         |        |

Example of mapping between OCHRE and DOLCE

  part: excl{(metaOchre#PT metaOchre#P metaOchre#F metaOchre#C metaOchre#A metaOchre#SI
        excl{(metaDolce#ED metaDolce#PD metaDolce#Q metaDolce#T metaDolce#T metaDolce#P_2
              metaDolce#P_3 metaDolce#K metaDolce#PC metaDolce#qt metaDolce#ql)};

metaOchre#PT (^non-empty set of "particulars"^)  interpetation of: ochre#PT;
[memberOf(?x,metaOchre#PT) <=> ochre#PT(?x)];

metaOchre#TH (^non-empty set of "perdurants"^)  interpetation of: ochre#TH;
[memberOf(?x,metaOchre#TH) <=> AND{memberOf(?x,metaOchre#PT), ochre#TH(?x)}];

metaOchre#TK (^non-empty set of "perdurants"^)  interpetation of: ochre#TK;
[memberOf(?x,metaOchre#TK) <=> AND{memberOf(?x,metaOchre#PT), ochre#TK(?x)}];

metaDolce#ED (^non-empty set of "endurants"^)  interpetation of: dolce#ED__endurant,
  = metaOchre#TH  (^Dod1^);
[memberOf(?x,metaDolce#ED) <=> dolce#ED(?x)];

metaDolce#PD (^non-empty set of "perdurants"^) interpetation of: dolce#PD__perdurant;
[memberOf(?x,metaDolce#PD) <=> dolce#PD(?x)];
[memberOf(?x,metaDolce#PD) <=> AND{memberOf(?tk,metaOchre#TK), memberOf(?tk,?x)}]  (^Dod2^);


Collaboratively valuating knowledge and knowledge sources

Current approaches: associating comments, averaging numerical attributes, generating consensual sub-KBs.
Here is a template for a more precise approach to evaluate/encourage precision, originality and veracity.

Let each user relate statements - e.g., (counter-)arguments - to statements.   (example)
Let each user personalize the default valuation of the usefulness of a statement
  based on its "weighted average interest" and, if the statement is not a definition, its
  "state of confirmation". Let each user use this criteria in its filtering and display specifications.


Knowledge comparison

A "scalable" way to show a comparison of a set of objects

> compare pm#WebKB-2 km#Ontolingua on 
    (support of: a is#IR_task, output_language: a km#KR_notation,
     part: a is#user_interface), maxdepth 5

                                               WebKB-2         Ontolingua 
support of: 
  is#IR_task                                      +                 + 
    is#lexical_search                             +                 + 
      is#regular_expression_based_search          +                 . 
    km#knowledge_retrieval_task                   +                 . 
      km#generalization_structural_retrieval      +                 . 
  km#KR_notation                                  +                 + 
    (expressivity: km#FOL)                        +                 + 
      km#FCG                                      +                 . 
      km#KIF                                      .                 + 
    km#XML-based notation                         +                 . 
      km#RDF                                      +                 - 


Collecting and refining knowledge representation guidelines

Goal: encouraging normalisation and precision to permit knowledge retrieval and scalability

Examples of best practices encouraged by the proposed notations (FCG, FE, FL)

Collecting and refining knowledge representation guidelines

Examples of other best practices advised in WebKB-2


A counter-example?

The Semantic Web Topics Ontology of ISWC 2006 is an ontology of "topics", "techniques"
and "projects", built via Protege and a wiki, for document indexation purposes.

Extract (translated from RDF+OWL to FL):

  topic_usesTechnique: neural_networks  heuristic_question_answering,
  topic_usedIn: "library classification" "information processing",
  topic_relatedTo: Knowledge_Discovery
                      topic_supports: Web_Services_Composition,
                      topic_usedIn: "Pattern Recognition" "Computer Vision",
                      topic_subtopic: Machine_Learning);


Readable, concise, expressive and normalising textual notations

    Necessary for visualizing, browsing and editing realistic amounts of knowledge.

    Most formal notations (KIF, RDF, ...) are not readable, expressive and normalising.
    Examples without expliciting the creators of the categories:

En: According to John, any human_body is a body and has at most 1 head and 2 arms.
    According to Jack, any human_body has exactly 1 head.
    According to Jo, as interpreted by Jack, any head is part of 1 human_body.
    According to Jo, male_body and female_body are exclusive subtypes of human_body.

FE: `Any human_body is a body and has for part {at most 1 head, at most 2 arms}'(John).
    `Any human_body has for part 1 head'(Jack).
    `Any head is part of 1 human_body'(Jo(Jack)).
    `Human_body has for subtype excl{male_body, female_body}'(Jo).

FL: human_body  supertype:  body (John),
                part     :  head (any->0..1(John), any->1(Jack), 1<-any(Jo(Jack)))
                            arm  (any->0..2(John)),                             
                subtype  :  excl{male_body female_body}(Jo);

Readable, concise, expressive and normalising textual notations

    The full translation in KIF of the 3 lines in FL:

(believer '(forall ((?b human_body))  (body ?b)) John)
(believer '(forall ((?b human_body))  (atMostN  1 '?a head (part ?b '?a))) John)
(believer '(forall ((?b human_body))  (atMostN  2 '?a arm  (part ?b '?a))) John)
(believer '(forall ((?b human_body))  (exactlyN 1 '?a head (part ?b '?a))) Jack)
(believer '(forall ((?a head))        (atMostN  1 '?b human_body (part '?b ?a)))  John)
(believer '(forall ((?a head))        (exactlyN 1 '?b human_body (part '?b ?a)))  Jack)
(believer '(forall ((?b male_body))   (and (human_body) (not (female_body ?b))))  Jo)
(believer '(forall ((?b female_body)) (and (human_body) (not (male_body ?b))))    Jo)


(defrelation atMostN (?num ?var ?type ?predicate) :=
  (exists ((?s set)(?n)) (and (size ?s ?n) (=< ?n ?num)
    (truth ^(forall (,?var) (=> (member ,?var ,?s)
                                (and (,?type ,?var) ,?predicate)))))))

Readable, concise, expressive and normalising textual notations

    Full (but ad-hoc) translation in RDF+OWL of the 3 lines in FL:

<rdf:Property rdf:ID="armPart"><rdfs:subPropertyOf rdf:resource="Part"/>
                               <owl:inverseOf rdf:ID="armPartOf"/>
                               <rdfs:range rdf:resource="Arm"/></rdf:Property>
<rdf:Property rdf:ID="headPart"><rdfs:subPropertyOf rdf:resource="Part"/>
                               <owl:inverseOf rdf:ID="headPartOf"/>
                               <rdfs:range rdf:resource="Head"/></rdf:Property>

<owl:Class rdf:about="HumanBody"><rdfs:subClassOf rdf:resource="Body" dc:creator="John"/>
  <rdfs:subClassOf><owl:Restriction><owl:onProperty rdf:resource="#headPart"/>
        <owl:cardinality rdf:datatype="&xsd;nonNegativeInteger" dc:creator="Jack">1
        </owl:cardinality></owl:Restriction> </rdfs:subClassOf>
  <rdfs:subClassOf><owl:Restriction><owl:onProperty rdf:resource="#headPart"/>
        <owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger" dc:creator="John">1
        </owl:maxCardinality></owl:Restriction> </rdfs:subClassOf>
  <rdfs:subClassOf><owl:Restriction><owl:onProperty rdf:resource="#armPart"/>
        <owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger" dc:creator="John">2
        </owl:maxCardinality></owl:Restriction> </rdfs:subClassOf> </owl:Class>
<owl:Class rdf:about="Head">
  <rdfs:subClassOf><owl:Restriction><owl:onProperty rdf:resource="#headPartOf"/>
        <owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger" dc:creator="Jack">1
        </owl:maxCardinality></owl:Restriction> </rdfs:subClassOf> </owl:Class>

<owl:Class rdf:about="MaleBody"><rdfs:subClassOf rdf:resource="Body" dc:creator="Jo"/>
        <owl:disjointWith rdf:resource="FemaleBody" dc:creator="Jo"/> </owl:Class>
<owl:Class rdf:about="FemaleBody"><rdfs:subClassOf rdf:resource="Body" dc:creator="Jo"/>
        <owl:disjointWith rdf:resource="MaleBody" dc:creator="Jo"/> </owl:Class>

Readable, concise, expressive and normalising textual notations

    FL and the "best practices" can also be used for structured discussions

"knowledge_sharing_with_an_XML-based_language is advantageous"
   generalization: "knowledge_sharing_with_an_XML-based_language
                                is possible" (pm),
   argument: - "XML is a standard" (pm)
             - ("knowledge_management_with_classic_XML_tools is possible"
                     "syntactic_knowledge_management_with_classic_XML_tools is possible" (pm)
   argument: "the use of URIs and Unicode is possible in XML"
             (fg, objection: "the use of URIs and Unicode can easily be made possible in
                              most syntaxes" (tbl, pm)
   objection: - ("the use_of_XML_by_KBSs implies several tasks to manage"
                    argument: "the internal_model_of_KBSs is rarely XML" (pm)
              - ` "an increase of the number of tasks *t to_manage" has for consequence
                  "an increase of the difficulty to develop a sofware to manage *t" '(pm),
   objection: - "knowledge_sharing_with_an_XML-based_language will force
                 many persons (developpers, specialists, etc.) to understand
                 complex_XML-based_knowledge_representations" (pm)
              - ("understanding complex_XML-based_knowledge_representations is difficult"
                   argument: "XML is verbose" (pm)

Click here for more extensive but not yet "normalized" examples

T.O.C.   Valuation

Proposing a large default ontology

The "Multi-Source Ontology" was voted a "candidate material" by the IEEE SUO.

It is a loss-less integration of


An approach to combine distribution and centralization

It should not matter which KB a user or agent chooses to query or update first:
  updates should be replicated into all relevant KBs
  and queries should be forwarded to relevant KB servers when needed.

One approach to achieve this, on the Web with public KB servers
  or within a peer-to-peer network (for example with one KB server per user):