Repository: pykeen/pykeen
Issue: Link prediction with NodePiece, Inductive Ability?
Root cause: Unimplemented Feature Gap

**Please also take a look at the main discussion on inductive link prediction at https://github.com/pykeen/pykeen/issues/720**

---

### What is your question

The original NodePiece algorithm "represents each node as a set of top-k nearest anchor nodes and m unique relation types around the node. Anchors and relation types are encoded to a node representation that can be used in any downstream task for any entity, including those unseen during training". 

During an attempt to test how NodePiece make predictions for unseen nodes, I found that the pykeen's NodePiece model can not make prediction for an unseen node (for example, predicting where an unseen node connects in the graph). Is it the expected behavior in the implementation?

Training pipeline
```python
if model_label == "RGCN":
    training_kwargs=dict(sampler="schlichtkrull", num_epochs=50),
    result = pipeline(
        training=train_data,
        validation=valid_data,
        testing=test_data,
        ##dataset_kwargs={'create_inverse_triples': True},
        training_kwargs=training_kwargs,
        model=model_label,
        evaluator='RankBasedEvaluator',
        training_loop='sLCWA',
        lr_scheduler='ExponentialLR',
        lr_scheduler_kwargs=dict(
            gamma=0.99,
        ),
        device='cuda:%d' % gpu_id,
        epochs=50,
    )
```

Please share any other model implemented in pykeen that is capable of such predictions for unseen nodes.

### Environment

| Key             | Value                      |
|-----------------|----------------------------|
| OS              | posix                      |
| Platform        | Linux                      |
| Release         | 3.10.0-514.21.1.el7.x86_64 |
| Time            | Thu Jan  6 14:22:33 2022   |
| Python          | 3.8.12                     |
| PyKEEN          | 1.6.1-dev                  |
| PyKEEN Hash     | UNHASHED                   |
| PyKEEN Branch   |                            |
| PyTorch         | 1.10.1+cu102               |
| CUDA Available? | true                       |
| CUDA Version    | 10.2                       |
| cuDNN Version   | 7605                       |

### Issue Template Checks

- [X] This is not a bug report (use a different issue template if it is)
- [X] This is not a feature request (use a different issue template if it is)
- [X] I've read the text explaining why including environment information is important and understand if I omit this information that my issue will be dismissed

Correct, PyKEEN does not (currently) implement the inductive version of NodePiece (nor any model). Between NodePiece and StarE published by Michael and Mehdi (respectively) our team has some experience in the game, but the issue is time. Would you be interested in working with us to make an implementation?


NodePiece author here - bringing inductive reasoning into PyKEEN would require significant improvement of TripleFactories since in the inductive case the validation and/or test graphs can be totally new graphs (ie, their own TripleFactories) and it would need some proper handling of those factories in the training and evaluation steps. That said, I do have the first ugly implementation of inductive NodePiece with PyKEEN interfaces (with which we've done original experiments), let me prepare a PR such that Charlie won't need to call an ambulance seeing such an ugliness :) 

Inductive NodePiece was added in https://github.com/pykeen/pykeen/pull/722. We'll make a 1.8 release soon!